Array adalah tipe data bentukan yang berisi sekumpulan data dengan tipe data dan ukuran yang sama. Tiap data array dideklarasikan dengan batas indeks yang diapit dalam kurung "[...]". Misalnya, "array [0..5] of integer" adalah array yang berisi sekumpulan variabel dengan tipe data integer dengan indeks awal 0 dan indeks akhirnya adalah 5. Indeks array pada pascal bisa ditentukan awal dan akhirnya. Untuk lebih memahami tipe data array, perhatikan kode program berikut ini.
Jika kalian menggunakan compiler online (misal : ideone.com) ketikkan terlebih dahulu 3 baris angka di stdin / standar input sebelum menjalankan programnya. Berikan sebuah angka di masing masing baris, kemudian jalankan dg klik Run atau tombol dengan kegunaan sejenis yang berguna untuk melihat hasil dari program.
Jika kalian menggunakan IDE seperti lazarus atau compiler offline, segera jalankan setelah kode program disimpan, kemudian ketik angka dan tekan enter, ulangi sampai tampak hasilnya.
Pada contoh di atas, yang diubah adalah nilai indeks terakhir dari array dan nilai variabel n. Untuk memahami tiap bagian dari kode program coba ubah kode program tersebut.
Array 2 dimensi di atas tidak ada bedanya dengan array 1 dimensi karena indeks kelompok pertamanya hanya 1 sampai dengan 1, yang artinya isinya hanya ada 1 kelompok. Mari kita ubah jadi array yang terdiri dari 2 kelompok. Anggap saja array dua dimensi adalah dua barisan yang sama panjang. Di bawah ini kita akan mendeklarasikan 2 kelompok dengan panjang masing-masing kelompok adalah 3.
Dengan menggunakan array dua dimensi, kita seperti sudah menyimpan array dalam array. Penyimpanan dalam array dua dimensi bisa kita anggap seperti beberapa kolom penyimpanan dalam beberapa baris. Selain array 1 dimensi dan 2 dimensi, kita bisa menggunakan aray 3 dimensi atau lebih.
Di bawah ini adalah contoh terakhir dari saya untuk array dua dimensi. Compile dan jalankan programnya. Lalu masukkan angka sesuka kalian dengan menekan tombol enter hingga nilai-nilai yang sudah dimasukkan ditampilkan!
program arrayku;
uses crt;
var a:array[1..4] of integer=(1, 2, 3, 4);
begin
clrscr;
a[1]:=2;
a[2]:=3;
a[3]:=4;
write(a[1], ' ');
write(a[2], ' ');
write(a[3], ' ');
write(a[4], ' ');
readln
end.
Program di atas memberi nilai dari masing-masing data dalam array saat deklarasi variabel, dan mengubah isi array setelah program utama dieksekusi. Kemudian, data dalam array ditampilkan satu persatu dengan write berdasarkan indeksnya. Unuk mengubah nilai array, indeks array harus ditulis di dalam kurung [...] dan indeksnya tidak boleh lebih
atau kurang dari yang sudah ditentukan saat deklarasi variabelnya. Nilai yang menunjukkan indeks array bisa berupa angka atau variabel.
Jika
kalian menggunakan indeks yang melebihi rentang saat deklarasi, maka
akan terjadi error saat program dijalankan.
Nilai
Array bisa diubah satu persatu berdasarkan indeksnya dengan menggunakan
operator penugasan ( := ) atau dengan meminta masukkan dari pengguna.
Jika jumlah data dalam array cukup banyak lebih baik menggunakan
perulangan untuk meminta input atau mengisi nilainya.
program arrayku;
uses crt;
var i, n : integer;
a:array[1..3] of integer;
begin
clrscr;
n:=3;
for i:=1 to n do
begin
readln(a[i]);
end;
for i:=1 to n do
begin
write(a[i], ' ');
end;
readln
end.
Jika kalian menggunakan compiler online (misal : ideone.com) ketikkan terlebih dahulu 3 baris angka di stdin / standar input sebelum menjalankan programnya. Berikan sebuah angka di masing masing baris, kemudian jalankan dg klik Run atau tombol dengan kegunaan sejenis yang berguna untuk melihat hasil dari program.
Jika kalian menggunakan IDE seperti lazarus atau compiler offline, segera jalankan setelah kode program disimpan, kemudian ketik angka dan tekan enter, ulangi sampai tampak hasilnya.
Jika ingin mengubah ukuran array tersebut, ubah juga variabel dan nilai yang digunakan sebagai batas perulangan. Pastikan bahwa nilai dari variabel yang digunakan sebagai indeks tidak melebihi indeks array dalam deklarasi variabel arraynya. Misal :
program arrayku;
uses crt;
var i, n : integer;
a:array[1..5] of integer;
begin
clrscr;
n:=5;
for i:=1 to n do
begin
readln(a[i]);
end;
for i:=1 to n do
begin
write(a[i], ' ');
end;
readln
end.
Pada contoh di atas, yang diubah adalah nilai indeks terakhir dari array dan nilai variabel n. Untuk memahami tiap bagian dari kode program coba ubah kode program tersebut.
Array Multi-Dimensi.
Array bukan hanya berupa array satu dimensi seperti yang sudah kita pelajari sebelumnya. Array bisa berupa array di dalam array atau bisa juga disebut array multi dimensi. Array dua dimensi tiap dimensinya dideklarasikan dengan tanda koma(,). Karena saya orang yang suka belajar dengan langsung praktek, maka kita langsung saja belajar dari kode programnya.program arrayku;
uses crt;
var a :array[1..1, 1..3] of integer;
begin
clrscr;
a[1, 1]:=2;
a[1, 2]:=3;
a[1, 3]:=4;
write(a[1, 1], ' ');
write(a[1, 2], ' ');
write(a[1, 3], ' ');
readln;
end.
Array 2 dimensi di atas tidak ada bedanya dengan array 1 dimensi karena indeks kelompok pertamanya hanya 1 sampai dengan 1, yang artinya isinya hanya ada 1 kelompok. Mari kita ubah jadi array yang terdiri dari 2 kelompok. Anggap saja array dua dimensi adalah dua barisan yang sama panjang. Di bawah ini kita akan mendeklarasikan 2 kelompok dengan panjang masing-masing kelompok adalah 3.
program arrayku;
uses crt;
var a :array[1..2, 1..3] of integer;
begin
clrscr;
a[1, 1]:=2;
a[1, 2]:=3;
a[1, 3]:=4;
write(a[1, 1], ' ');
write(a[1, 2], ' ');
write(a[1, 3], ' ');
writeln;
a[2, 1]:=5;
a[2, 2]:=6;
a[2, 3]:=7;
write(a[2, 1], ' ');
write(a[2, 2], ' ');
write(a[2, 3], ' ');
readln;
end.
Dengan menggunakan array dua dimensi, kita seperti sudah menyimpan array dalam array. Penyimpanan dalam array dua dimensi bisa kita anggap seperti beberapa kolom penyimpanan dalam beberapa baris. Selain array 1 dimensi dan 2 dimensi, kita bisa menggunakan aray 3 dimensi atau lebih.
Di bawah ini adalah contoh terakhir dari saya untuk array dua dimensi. Compile dan jalankan programnya. Lalu masukkan angka sesuka kalian dengan menekan tombol enter hingga nilai-nilai yang sudah dimasukkan ditampilkan!
program arrayku;
uses crt;
var a:array[1..3, 1..3] of integer;
var x, y:integer;
begin
clrscr;
for y:=1 to 3 do
for x:=1 to 3 do
readln(a[x, y]);
for y:=1 to 3 do
begin
for x:=1 to 3 do write(a[x, y], ' ');
writeln;
end;
readln;
end.