๐ Daftar Isi
Array Dua Dimensi
Array yang telah kita bahas pada artikel sebelumnya merupakan artikel satu dimensi. Array yang memiliki dimensi lebih dari 1 disebut array multidimensi. Array yang memiliki 2 dimensi disebut dengan array 2 dimensi. Setiap elemen array dapat diakses menggunakan indeks[baris, kolom]
Misal kita mendeklarasikan array 2 dimensi sebagai berikut:
var
x:array[1..3,1..4] of integer;
Maka jumlah data yang disimpan pada variabel X adalah sebanyak baris kali kolom atau 3 x 4 = 12. Kira-kira memori akan menyimpan variabel X seperti berikut:
Baris/Kolom | 1 | 2 | 3 | 4 |
---|---|---|---|---|
1 | [1,1] | [1,2] | [1,3] | [1,4] |
2 | [2,1] | [2,2] | [2,3] | [2,4] |
3 | [3,1] | [3,2] | [3,3] | [3,4] |
Setiap elemen array dapat diakses menggunakan indeks[baris, kolom]. Misalnya:
Var X : array[1..3, 1..4] of integer;
Begin
X[1,3] := 10;
Writeln(X[1,3]); {output 10}
End.
Array dua dimensi biasa digunakan untuk keperluan pembuatan matriks.
Contoh lain, misalkan kita ingin mendefinisikan sebuah array untuk menyimpan data setiap 1000 mahasiswa dalam beberapa kurun waktu 10 tahun terakhir. Dalam hal ini kita dapat menggunakan definisi:
mhs:array[1..10] of array[1..1000] of integer;
atau
mhs:array[1..10,1..1000] of integer;
Di dalam komputer data mahasiswa tersebut akan disimpan dengan urutan sebagai berikut:
mhs[1,1] mhs [1,2] ... mhs[1,1000]
mhs[2,1] ... mhs[10,1000]
atau mhs[i,j] menyatakan mhs pada tahun ke-i urutan ke-j
Berikut ini adalah contoh kode untuk mencetak data mahasiswa dalam 10 tahun terakhir.
for i:=1 to 10 do
begin
for j:=1 to 1000 do
write(mhs[i,j],' ');
end;
Sebuah array juga dapat digunakan untuk menyimpan beberapa koonstanta, seperti padad contoh berikut:
const
bulan:array[1..12] of string[3]=('jan','feb','mar','apr','mei','jun','jul','agt','sep','okt','nov','des');
Array Multi Dimensi
Seringkali dibutuhkan suatu susunan struktur penyimpanan data dengan mendefinisikan suatu array dalam array. Hal ini dinamakan sebagai array multidimensi.
Contoh deklarasinya sebagai berikut:
var
x:array[1..3,1..3,1..3] of integer;
Maka variabel X memiliki elemen sebanyak 3 x 3 x 3 = 27 buah. Untuk mengakses tiap elemen, indeksnya sebanyak 3 seperti contoh berikut ini.
Var
X : array[1..3, 1..3, 1..3] of integer;
Begin
X[1,1,1] := 10;
Writeln(X[1,1,1]); {output 10}
End.
Terdapat 27 elemen pada X yaitu:
X[1,1,1] , X[1,2,1] , X[1,3,1], X[1,1,2] , X[1,2,2] , X[1,3,2],
X[1,1,3] , X[1,2,3] , X[1,3,3], X[2,1,1] , X[2,2,1] , X[2,3,1],
X[2,1,2] , X[2,2,2] , X[2,3,2], X[2,1,3] , X[2,2,3] , X[2,3,3],
X[3,1,1] , X[3,2,1] , X[3,3,1], X[3,1,2] , X[3,2,2] , X[3,3,2],
X[3,1,3] , X[3,2,3] , X[3,3,3]
Dapatkah anda bayangkan array 4 dimensi, 5 dimensi, dan seterusnya?
Array dapat juga kita nyatakan pada bagian type, untuk selanjutnya kita gunakan pada bagian var. Perhatikan contoh berikut:
Type
Matrix = array[1..3, 1..3] of real;
Var
A,B,C : Matrix;
Untuk array multidimensi terdapat cara lain untuk mengakses indeks elemen array selain menggunakan koma yaitu menggunakan kurung siku terpisah. Misalnya:
Var
X : array[1..3, 1..4] of integer;
Begin
X[1][3] := 10;
Writeln(X[1][3]); {output 10}
End.
Contoh Program
Program TransposeMatrik;
Uses crt;
Var
Matrik:array [1..10,1..10] of integer;
i,j,baris,kolom:integer;
begin
clrscr;
write('input jumlah baris: ');
readln(baris);
write('input jumlah kolom: ');
readln(kolom);
for i:=1 to baris do
for j:=1 to kolom do
begin
Write('Isi[',i,',',j,']:');
Readln(matrik[i,j]);
end;
writeln('hasil transposenya: ');
for i:=1 to kolom do
for j:=1 to baris do
Writeln('Isi[',i,',',j,']: ', matrik[j,i]);
Readln;
end.
Contoh output:
Materi Lengkap
Silakan baca juga beberapa artikel menarik kami tentang Array dan Record, daftar lengkapnya adalah sebagai berikut.