Array Multidimensi
Tujuan
- Mahasiswa mampu memahami konsep array 2 dimensi
- Mahasiswa mampu membuat program dengan menggunakan konsep array multidimensi.
Alat dan Bahan
- PC atau Laptop
- JDK
- NetBeans IDE
Uraian Teori
Array Dua Dimensi
Array yang telah kita pelajari sebelumnya adalah satu dimensi, yang hanya terdiri dari satu baris elemen. Biasanya untuk menyajikan sebuah data dalam bentuk tabel, dalam tabel tersebut disajikan dalam bentuk baris dan kolom. Hal ini yang menjadi ciri khas dari sebuah array 2 dimensi.
Sebagai contoh
- Buku tamu yang terdapat di perpustakaan untuk melakukan pencatatan kunjungan pengunjung, dimana dalam buku tamu tersebut terdapat informasi nim, nama, tanggal kunjungan, dan tanda tangan.
- Rating film yang dilakukan oleh penonton atau viewer. Masing-masing baris atau record diisi atau dirating oleh penonton, sedangkan pada bagian kolomnya adalah daftar judul film yang akan dilakukan rating. Visualisasi dapat dilihat pada tabel di bawah ini
judul_0 | judul_1 | judul_2 | |
---|---|---|---|
0 | 4 | 4 | 3 |
1 | 2 | 4 | 3 |
2 | 4 | 4 | 3 |
3 | 1 | 2 | 2 |
4 | 4 | 4 | 4 |
Tabel di atas menggambarkan bahwa setiap view akan melakukan rating terhadap 3 judul film, misalkan pada baris pertama
melakukan rating pada judul_0=4, judul_1=4, dan judul_2=3
.
Jadi Array 2 dimensi adalah sebuah array yang penomoran indeksnya menggunakan 2 angka yaitu satu untuk baris dan satu lagi untuk kolom, atau sebenarnya array 2 dimensi adalah kumpulan dari array 1 dimensi.
Cara Mendeklarasikan Array 2 dimensi
Untuk dapat mendeklarasikan array 2 dimensi mirip dengan 1 dimensi, perbedaanya adalah jumlah kurung siku []
atau
subskrip. Pada array 2 dimensi berarti menggunakan 2 kurung siku []
, pada java deklarasinya seperti di bawah ini
data_type[][] array_name = new data_type[x][y];
x = jumlah baris
Y = jumlah kolom
Contoh
int[][] arr = new int[10][20];
Selain contoh di atas, deklarasi yang lain juga dapat dilakukan seperti di bawah ini
tipe_data[][] nama_variabel
tipe_data [][]nama_variabel
tipe_data nama_variabel[][]
tipe_data []nama_variabel[]
Akan tetapi, yang sering kita jumpai atau sering digunakan adalah pada no.1 dan no.3, ketika menggunakan Java adalah seperti di bawah ini
int[][] ratings;
int [][]ratings;
int ratings[][];
int []ratings[];
Inisialisasi Array 2 Dimensi
Untuk memberikan nilai awal pada array 2 dimensi menggunakan operator assigment =
, ketika melakukan inisialisasi array
2 dimensi kolom pada setiap baris boleh berbeda seperti dicontohkan di bawah ini
int a[][]={
{1,2,3,4},
{5,6,7,8},
{7,8,9,6}
}
int b[][]={
{1},
{5,6,7,8},
{7,8,9}
}
Array yang pertama pada variabel a
kolomnya semua sama antar baris, sedangkan jika kita lihat pada array b
kolomnya
berbeda. Dalam array 2 multidimensi hal tersebut diperbolehkan. Ketika divisualisasikan ke dalam sebuah tabel seperti di
bawah ini
Visualisasi untuk array a
0 | 1 | 2 | 3 | |
---|---|---|---|---|
0 | 1[0,0] | 2[0,1] | 3[0,2] | 4[0,3] |
1 | 5[1,0] | 6[1,1] | 7[1,2] | 8[1,3] |
2 | 7[2,0] | 8[2,1] | 9[2,2] | 6[2,3] |
Visualisasi untuk array b
0 | 1 | 2 | 3 | |
---|---|---|---|---|
0 | 1[0,0] | |||
1 | 5[1,0] | 6[1,1] | 7[1,2] | 8[1,3] |
2 | 7[2,0] | 8[2,1] | 9[2,2] |
Ukuran Baris dan Kolom Array 2 Dimensi
Seriap array baik array 1 dimensi ataupun array 2 dimensi memiliki ukuran, jika pada array 2 dimensi berarti ukuran pada
baris atau kolom. Untuk mengetahui ukuran atau length, bisa menggunakan attribut length
pada array. Cara penggunaannya
adalah sebagai berikut
int[][] a = new int[3][4];
Ketika dipanggil a.length
maka hasilnya adalah 3(jumlah baris), sedangkan ketika dipanggil a[0].length
hasilnya
4(jumlah kolom)
Ketika menggunakan attribut length tentunya akan sangat menguntungkan, baik ketika akan menginputkan element atau menampilkan element menggunakan looping atau perulangan pada saat perubahan jumlah baris atau kolom. Kita tidak perlu mengubah kode yang ada di dalam looping untuk ukuran baris dan kolomnya.
Array Tiga Dimensi
Array 3 dimensi merupakan bentuk kompleks dari array multidimensi, seperti pada konsep sebelumnya array 2 dimensi adalah
kumpulan dari array 1 dimensi. Begitu juga dengan array 3 dimensi, yang merupakan kumpulan array 2 dimensi. Contoh
penerapan array 3 dimensi adalah pada gambar berwarna RGB(Red Green Blue)
. Visualisasinya adalah di bawah ini


Dari visualisasi di atas terlihat setiap gambar memiliki 3 channel atau layer yaitu RGB(Red, Green, dan Blue), 3 channel tersebut yang merepresentasikan array 3 dimensi. Setiap channel, RGB direpresentasikan array 2 dimensi. Jadi sudah sesuai dengan konsep array 3 dimensi bahwa merupakan kumpulan dari array 2 dimensi.
Deklarasi Array 3 Dimensi
Untuk dapat mendeklarasikan array 3 dimensi yaitu dengan menambahkan kurung siku []
atau subskrip menjadi 3, [][][]
.
Secara umum deklarasinya adalah di bawah ini
data_type[][][] array_name = new data_type[x][y][z];
x = index array
y = baris
z = kolom
Contoh: int[][][] arr = new int[10][20][30];
Inisialisasi Array 3 Dimensi
Untuk memudahkan inisialisasi array 3D, bisa menggunakan representasi array 2D. Atau secara umum dapat digunakan dapat disajikan seperti di bawah ini
array_name[array_index][baris][kolom] = value;
contoh: arr[0][0][0] = 1;
data_type[][][] array_name = {
{
{valueA1B1C1, valueA1B1C2, ....},
{valueA1B2C1, valueA1B2C2, ....}
},
{
{valueA2B1C1, valueA2B1C2, ....},
{valueA2B2C1, valueA2B2C2, ....}
}
};
Keterangan
- A adalah indek array
- B adalah baris
- C adalah kolom
Ketika diimplementasikan menggunakan Java kurang lebih seperti di bawah ini
int[][][] a = {
{
{1,2},
{3,4}
},
{
{5,6},
{7,8}
}
};
Atau misalkan dilakukan visualisasi adalah seperti di bawah ini

Langkah Praktikum
Ikuti langkah-langkah praktikum berikut ini.
Praktikum 1
- Buka editor Netbeans.
- Buat file bernama
Arr1.java
- Buat array bertipe integer dengan nama
nilai
dengan kapasitas baris 2 elemen dan kolom 3 elemen.int [][] nilai=new int [2][3];
- Isi masing-masing elemen array sebagai berikut:
nilai[0][0]=12; nilai[0][1]=14; nilai[0][2]=34; nilai[1][0]=30; nilai[1][1]=21; nilai[1][2]=67;
- Tampilkan ke layar semua isi elemennya:
System.out.println(nilai[0][0]+" "+nilai[0][1]+" "+nilai[0][2]); System.out.println(nilai[1][0]+" "+nilai[1][1]+" "+nilai[1][2]);
- Cocokkan dan amati hasilnya dengan hasil berikut:
12 14 34 30 21 67
Praktikum 2
- Buat file baru beri nama
Arr2.java
- Buat array bertipe integer dengan nama
nilai
yang mempunyai kapasitas baris 2 elemen dan kolom 3 elemen.int [][] nilai=new int [2][3];
- Isi array tersebut dengan nilai sebaga berikut:
nilai[0][0]=12; nilai[0][1]=14; nilai[0][2]=34; nilai[1][0]=30; nilai[1][1]=21; nilai[1][2]=67;
- Dengan perulangan, tampilkan semua isi array
nilai
.for (int i=0; i<2; i++){ for (int j=0; j<3; j++){ System.out.print(nilai[i][j] +" "); } System.out.println(" "); }
- Cocokkan dan amati hasilnya dengan gambar berikut:
12 14 34 30 21 67
Pertanyaan
- Pada array di atas ada berapa kolom? silakan diubah jumlah kolomnya menjadi 4 serhingga deklarasi array menjadi
Kemudian silakan diisi dengan sembarang nilai terkait penambahan kolom tersebut. Jalankan kembali dan apakah yang terjadi?int [][] nilai=new int [2][4]
- Pada langkah ke-4 kode di atas silakan diubah menjadi seperti di bawah ini
Jalankan programnya setelah perubahan tersebut, apa yang terjadi?for (int i=0; i<nilai.length; i++){ for (int j=0; j<nilai[0].length; j++){ System.out.print(nilai[i][j] +" "); } System.out.println(" "); }
- Masih terkait untuk menampilkan semua element array, silakan kode untuk menampilkan diubah menjadi berikut ini
Jalankan hasilkan perubahan tersebut, apakah yang terjadi?for (int array1D[]: nilai){ for (int j : array1D){ System.out.print(j +" "); } System.out.println(" "); }
Praktikum 3
- Buat file baru beri nama
Arr3.java
Import dan deklarasikan
Scanner
untuk keperluan input.import java.util.Scanner; Scanner input=new Scanner(System.in);
Buat array bertipe integer dengan nama
nilai
dengan kapasitas baris 2 elemen dan kolom 3 elemen.int [][] nilai=new int [2][3];
- Menggunakan perulangan, buat input untuk mengisi elemen dari array
nilai
:for (int i=0; i<2; i++){ for (int j=0; j<3; j++){ System.out.print("Masukkan nilai ke-["+i+"]["+j+"] "); nilai[i][j]=input.nextInt(); } System.out.println("------------------------"); }
- Menggunakan perulangan, tampilkan semua isi elemen dari array
nilai
for (int i=0; i<2; i++){ for (int j=0; j<3; j++){ System.out.print(nilai[i][j]+" "); } System.out.println(); }
Cocokkan dan amati hasilnya dengan gambar berikut ini:
Lakukan perulangan soal 4 menggunakan
while
ataudo-while
!- Ganti kode untuk menampilkan array menjadi
foreach
! - Tambahkan kode untuk memasukan jumlah baris dan kolom secara dinamis, dimasukan melalui keyboard!
Praktikum 4
Pada praktikum ini, kita akan membuat program array dua dimensi dengan kapasitas elemen baris dan kolom menggunakan inputan keyboard.
- Buat file baru beri nama
Arr4.java
, jangan lupa untuk memembuatmethod main
. - Deklarasikan array seperti di bawah ini
int RGB[][][] = { { {2, 2, 3}, {5, 6, 7} }, { {6, 8, 5}, {5, 2, 6} } };
- Kemudian tampilkan array tersebut menggunakan potongan kode di bawah ini
Jalankan kode tersebut, sehingga akan menampilkan semua elemen array.for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++) { for (int k = 0; k < 3; k++) { System.out.print(RGB[i][j][k] + " "); } System.out.println(); } System.out.println(); }
Pertanyaan
- Pada langkah ke-1, ganti kode menjadi seperti di bawah ini
Jalankan kembali program Anda, apakah yang terjadi?int RGB[][][] = { { {2, 2, 3}, {5, 6, 7} }, { {6, 8, 5}, {5, 2} } };
- Potongan kode untuk menampilkan array silakan diganti menjadi berikut
Silakan jalankan, outputnya seperti apa?for (int i = 0; i < RGB.length; i++) { for (int j = 0; j < RGB[1].length; j++) { for (int k = 0; k < RGB[0][1].length; k++) { System.out.print(RGB[i][j][k] + " "); } System.out.println(); } System.out.println(); }
- Pada pertanyaan no.2, ubah menjadi seperti berikut
Jalankan hasil perubahan, bagaimana hasilnya?for (int array2D[][] : RGB) { for (int array1D[] : array2D) { for (int x : array1D) { System.out.print(x + " "); } System.out.println(); } System.out.println(); }
- Dari perubahan-perubahan tersebut untuk menampilkan array 3D, apakah yang dapat Anda simpulkan!
Tugas
Susun program untuk membuat dua buah array berikut isinya sebagai berikut. Array pertama adalah array satu dimensi
char KODE[10]
, berisi kode plat mobil. Array kedua, array dua dimensichar KOTA[10][12]
berisi nama kota yang berpasangan dengan kode plat mobil. Ilustrasi tampilan array tersebut adalah sebagai berikut :Buatlah program dengan tampilan di bawah ini
Ketentuan dari program di atas adalah
- Ukuran matriks ditentukan melalui keyboard
- Ada pengecekan ketika matriks A dan matriks B memiliki perbedaan ukuran
- Untuk menghitung nilai maksimal baris pada array, ukuran ditentukan melalui keyboard
Dengan menggunakan matriks 3 dimensi, selesaikan kasus seperti berikut ini
- Sebuah jurusan teknologi informasi pada politeknik terkenal di Malang, memiliki 5 kelas program studi D4 TI. Masing-masing kelas memiliki jumlah mahasiswa yang berbeda-beda.
- Sebuah jurusan teknologi informasi pada politeknik terkenal di Malang, memiliki 5 kelas program studi D4 TI. Masing-masing kelas memiliki jumlah mahasiswa yang dapat ditentukan di awal
- Seorang dosen matakuliah
Dasar Pemrograman
berkeinginan untuk menghitung nilai rata-rata setiap mahasiswa - nilai rata-rata didapatkan dari perhitungan nilai UTS, UAS, dan project.
- Buatlah programnya untuk kebutuhan tersebut!