Array dua dimensi adalah array yang membutuhkan dua index untuk mengidentifikasi elemen
tertentu. Array dua dimensi ini sering digunakan untuk merepresentasikan tabel dari nilai
yang terdiri dari informasi yang diatur berdasarkan baris dan kolom.
Selain itu, array dua dimensi ini juga dapat digunakan dalam matrix.
Syntax untuk mendeklarasikan array dua dimensi adalah :
elemenType[ ][ ] arrayRefVar;
Sebagai contoh, di bawah ini adalah 2 cara untuk mendeklarasikan array dua dimensi variabel
myArray dengan tipe int:
int [] [] myArray;
atau
int myArray[][]; Cara ini diperbolehkan tapi tidak direkomendasikan.
Kita dapat membuat array dua dimensi dengan ukuran 4-4, dan kemudian menetapkannya
pada variabel misalnya matrix dengan menggunakan syntax :
matrix = new int [4][4];
Dua subskrip digunakan dalam array dua dimensi, satu untuk baris dan satu lagi untuk kolom.
Seperti pada array satu dimensi, index dari setiap subskrip adalah tipe int dan index dimulai
dari 0.
Lihat gambar di bawah ini :
Membuat array dua dimensi dengan ukuran 4-4
Kita juga dapat menginisialisasi array dua dimensi dengan cara sebagai berikut :
Perhatikan bahwa :
int [ ] [ ] matrix {
{5, 8, 8, 6},
{9, 12, 5, 4},
{6, 8, 12, 2},
{9, 7, 6, 1}
};
Adalah sama dengan dengan :
int[][] matrix = new int[4][4];
matrix[0][0] = 5; matrix[0][1] = 8; matrix[0][2] = 8; matrix[0][3] = 6;
matrix[1][0] = 9; matrix[1][1] = 12; matrix[1][2] = 5; matrix[1][3] = 4;
matrix[2][0] = 6; matrix[2][1] = 8; matrix[2][2] = 12;matrix[2][3] = 2;
matrix[3][0] = 9; matrix[3][1] = 7; matrix[3][2] = 6; matrix [3][3] =1;
Contoh Penggunaan Array 2 Dimensi
Sebagai contoh, tabel di bawah ini merepresentasikan daftar kota dan jarak tempuh antar kota
tersebut :
Dari tabel tersebut di atas, maka data waktu tempuh antar kota disimpan dalam array
multidimensi, yaitu :
int [ ][ ] waktu = {
{0, 7, 8, 4, 6},
{7, 0, 2, 1, 8},
{8, 2, 0, 3, 5},
{4, 1, 3, 0, 15},
{6, 8, 5, 15, 0},
};
Secara kaidah koding Java, identifiers pertama adalah baris dan identifiers kedua adalah
kolom.
Memperoleh Length Array Dua Dimensi
Sebuah array dua dimensi sebenarnya adalah array dimana setiap elemen merupakan array
satu dimensi. Ukuran dari suatu array a adalah jumlah dari elemen dalam array yang dapat
diperoleh menggunakan a.length. a[0], a[1],…dan a[a.length-1] adalah merupakan array.
Sehingga length dari array tersebut dapat diperoleh dengan a[0].length, a[1].length,…, dan
a[a.length-1].length.
Sebagai contoh, misalkan a = new int [3][4];
a[0], a[1], dan a[2] adalah array satu dimensi dan setiap array tersebut memiliki empat
elemen.
Maka :
a.length adalah 3, dan
a[0].length, a[1].length, dan a[2].length adalah 4.
Array dua dimensi adalah array satu dimensi di mana setiap elemen merupakan array satu dimensi
lainnya
Percobaan 1
Mengetahui panjang baris dan kolom pada array dimensi dua.
public class Main {
public static void main(String args[]) {
String[][] data = new String[2][5];
System.out.println("Dimension 1: " + data.length);
System.out.println("Dimension 2: " + data[0].length); } }
Percobaan 2
public class Array2Dimensi {
public static void main(String[] args) {
// TODO code application logic here
int[][] nilai = {{10,12},{11,14}};
for (int i = 0; i < nilai.length; i++) {
for (int j = 0; j < nilai[i].length; j++) {
System.out.print(nilai[i][j]+"\t"); }
System.out.println();
}}}}
Percobaan 3
array dua dimensi non persegi panjang
public class twoDimension2{
public static void main(String[] args) {
int myArray[][] = { {1, 2 }, { 3 }, { 4, 5, 6 } };
for ( int i = 0; i < myArray.length; i++ ) {
System.out.println("Row number " + i + " has " + myArray[i].length + " columns." ); }
for ( int i = 0; i < myArray.length; i++ ) {
for ( int j = 0; j< myArray[i].length; j++ ) {
System.out.print(myArray[i][j]+” ”); }
System.out.println(""); } } }
Percobaan 4
import java.util.Scanner;
public class PassingArrayDuaDimensi {
public static void main (String [] args){
//Method buatArray akan mengembalikan array dua dimensi
//yang sudah dibuat dan myArray ditetapkan sebagai
//referensi dari array tersebut
int [][] myArray = buatArray();
//Kemudian jumlah semua elemen pada array tersebut dijumlahkan
//dengan menggunakan method jumlahElemen()
System.out.print("Jumlah total seluruh elemen adalah " +
jumlahElemen(myArray)); }
//Membuat array 5 x 5 yang diinisialisasi secara random
//Dengan elemen antara 0-9 menggunakan method buatArray()
public static int [][] buatArray(){
//Membuat array dua dimensi
int[][] array2D = new int[5][5];
//For loop bersarang untuk inisialisasi array
//outer loop
for (int baris = 0; baris < array2D.length; baris++) {
//inner loop
for (int kolom = 0; kolom < array2D[baris].length; kolom++) {
//Membuat elemen array dengan angka random
array2D[baris][kolom] = (int)(Math.random()*10);
//Menampilkan elemen array
System.out.print(array2D[baris][kolom] + "\t");
} System.out.println();
} return array2D;
}
//Membuat method untuk menjumlahkan semua elemen array
public static int jumlahElemen(int array2D [][]){
//inisialisasi jumlah awal
int jumlahAwal = 0;
//Gunakan for loop untuk menjumlahkan semua elemen
for (int baris = 0; baris < array2D.length; baris++) {
//inner loop
for (int kolom = 0; kolom < array2D[baris].length; kolom++) {
//Menjumlahkan total elemen array
jumlahAwal += array2D[baris][kolom];
}
} return jumlahAwal;
}
}
Contoh output:
2 4 6 1 4
3 2 7 8 6
6 3 2 3 4
0 8 2 6 4
0 0 0 4 5
Jumlah total seluruh elemen adalah 90
Percobaan 5
Output:
Menampilkan array 2D dengan for loop:
1234
5678
Menampilkan array 2D dengan method deepToString:
[[1, 2, 3, 4], [5, 6, 7, 8]]
Percobaan 6
Membuat array dua dimensi bertipe String yang terdiri dari jumlah 4 baris dan 2 kolom.
Yang mana nilai stringnya terdiri dari nama depan dan nama belakang.
Percobaan 7
//Inisialisasi
Scanner input = new Scanner(System.in);
int mhs,jml, banyakTes = 3, nilai[][], ntt[], ntr[];
float rata[], jumlah[], rtt, rtr;
//Inisialisasi Array
nilai = new int[mhs][banyakTes];
jumlah = new float[mhs];
rata = new float[mhs];
ntt = new int[banyakTes];
ntr = new int[banyakTes];
System.out.println();
//Input Nilai
for(int h=0;h<mhs;h++){ //Mahasiswa
System.out.println("Mahasiswa " + (h+1));
//Output judul
System.out.println("---------------------------");
System.out.println("Daftar Nilai Mahasiswa : ");
System.out.println("---------------------------");
System.out.println();
//Output nilai
for(int j=0;j<mhs;j++){
System.out.print("Mahasiswa " + (j+1));
for(int k=0;k<banyakTes;k++){
System.out.print("\t" + nilai[j][k]);
}
System.out.print("\t" + rata[j]);
System.out.println();
}
System.out.println();
}
}
Percobaan 8
package array.pkg2.d;
import java.util.Scanner;
System.out.println("");