Menggunakan Tipe Data Array pada Pascal
Sebelumnya kita telah membahas tentang tipe data RECORD pada Pascal. Pada kesempatan kali ini kita akan membahas satu lagi data terstruktur dalam pascal yaitu ARRAY atau larik.
Pengertian ARRAY pada Pascal
Apa sih ARRAY itu?
ARRAY merupakan struktur data yang berisi sekumpulan data dengan tipe data yang sama. Data dalam ARRAY ini dapat diakses dengan menggunakan index.
Coba perhatikan kode program berikut
program BuatArray;
uses crt;
var
nama1, nama2, nama3, nama4, nama5: string;
begin
clrscr;
nama1 := 'adi';
nama2 := 'budi';
nama3 := 'putri';
nama4 := 'putra';
nama5 := 'ida';
writeln('nama1: ', nama1);
writeln('nama2: ', nama2);
writeln('nama3: ', nama3);
writeln('nama4: ', nama4);
writeln('nama5: ', nama5);
readln;
end.
Kita punya 5 variable mulai dari nama1 sampai nama5 dengan tipe data string. Setiap variable berisi nama seseorang. Kode tersebut terlihat normal saja bukan ?
Sekarang bagaimana kalau kita punya variable nama1 sampai nama100?
Menuliskan satu per satu nama variable menjadi kurang efektif dan kurang efisien. Di sinilah ARRAY dapat berperan. Dengan menggunakan ARRAY kita hanya cukup mendeklarasikan variable nama sebanyak 1 kali saja.
Penulisan ARRAY pada Pascal
Komponen dalam deklarasi ARRAY ada 3 yaitu panjang ARRAY, tipe data ARRAY, dan nama variable ARRAY. Untuk format penulisannya adalah sebagai berikut
var
nama-variable: array [batas-bawah..batas-atas] of tipe-data;
Batas bawah dan batas atas pada deklarasi ARRAY merupakan index awal dan akhir yang bisa diakses. Sedangkan tipe data merupakan tipe data yang akan disimpan dalam ARRAY.
Contoh kita ingin membuat variable nama bertipe string yang berisi 5 elemen. Kita bisa mendeklarasikannya sebagai berikut
var
nama: array [1..5] of string;
Lalu untuk mengakses elemen dalam ARRAY bisa kita gunakan yang namanya index.
Index merupakan nomor yang dituliskan setelah nama variable ARRAY. Nomor ini tidak boleh kurang dari batas bawah ARRAY, dan tidak boleh lebih dari batas atas ARRAY. Contohnya sebagai berikut
var
nama: array [1..5] of string; // ARRAY nama punya 5 elemen
begin
nama[1] := 'Budi'; // mengisi nilai pada indeks ke-1
nama[4] := 'Adi';
nama[6] := 'Ida'; // error karena ARRAY nama tidak punya elemen ke-12
nama[0] := 'Rani';
end.
Karena ARRAY juga termasuk sebagai tipe data, jadi kita bisa membuat sebuah ARRAY dengan tipe data ARRAY. Ini disebut sebagai ARRAY multidimensi. Contohnya:
var
matrix2D: array [1..2] of array [1..2] of integer; // array dengan tipe data array integer
Bagaimana cara mengakses elemen dari ARRAY multi dimensi?
Caranya kurang lebih sama seperti sebelumnya. Menggunakan index. Tetapi karena ARRAY ini mutidimensi, jadi pada saat mengakses index pertama, kita masih mendapatkan elemen berupa ARRAY. Untuk mendapatkan nilai pada ARRAY tersebut kita bisa menggunakan 2 kali pengaksesan Indeks
var
M: array [1..2] of array [1..2] of integer; // array dengan tipe data array integer
begin
M[1][1] := 1; // akses nilai pertama dari array pertama dari M
M[1][2] := 2;
M[2][1] := 3;
M[2][2] := 4;
end.
ARRAY tersebut dinamakan ARRAY 2 dimensi, karena pengaksesan indeksnya dilakukan 2 kali. Konsepnya sama seperti mengakses entry dalam matrix (menggunakan baris dan kolom).
ARRAY multidimensi tidak hanya terbatas pada 2 dimensi saja, tetapi juga bisa berlanjut sampai 3, 4, bahkan sampai n dimensi tergantung kebutuhan.
Menggunakan ARRAY dalam Perulangan
Keuntungan menggunakan ARRAY adalah dapat digunakan dengan perulangan. Mari kita coba membuat ulang kode yang ada di awal tutorial ini.
program BuatArray;
uses crt;
var
nama: array [1..5] of string; // menggunakan array
i: integer; // variable untuk perulangan
begin
clrscr;
nama[1] := 'adi';
nama[2] := 'budi';
nama[3] := 'putri';
nama[4] := 'putra';
nama[5] := 'ida';
// mencetak nama[1] sampai nama[5] dengan for loop
for i:=1 to length(nama) do writeln('nama[',i,']: ', nama[i]);
readln;
end.
Bisa kalian coba jalankan program tersebut. Kurang lebih outputnya akan tampak seperti ini:
nama[1]: adi
nama[2]: budi
nama[3]: putri
nama[4]: putra
nama[5]: ida
Sudah tidak perlu lagi memanggil variable nama1 sampai nama5 satu per satu. Dengan memanfaatkan fitur index pada ARRAY kita cukup menggunakan variable i sebagai indeksnya.
Ada satu perintah yang mungkin asing yaitu length()
.
Apa itu perintah length()
?
Perintah ini berfungsi untuk mengembalikan panjang dari ARRAY atau STRING. Jadi semisal kita punya ARRAY dengan batas bawah 1 dan batas atas 10, maka panjang ARRAY nya adalah 10.
Mengembalikan panjang STRING juga?
Iya, STRING sebenarnya juga merupakan ARRAY. Lebih tepatnya ARRAY of CHAR.
STRING merupakan tipe data standar pada Pascal yang memiliki nilai berupa kata atau kalimat. Nah, kata atau kalimat ini terdiri dari beberapa karakter huruf. Karakter huruf juga termasuk dalam tipe data standar Pascal yaitu CHAR.
Perlakuan dalam ARRAY juga bisa kita lakukan pada STRING.
var
kata: string;
i: integer;
begin
kata := 'Belajar pascal di invasikode';
for i := 1 to length(kata) do writeln('Huruf ke-',i,': ',kata[i]);
end.
Apabila dijalankan, kode tersebut akan mencetak output berupa huruf satu per-satu.
Penutup
Cukup sekian untuk tutorial kali ini, semoga bermanfaat
Pada tutorial selanjutnya kita akan coba belajar tentang pointer pada Pascal.