Anda di halaman 1dari 13

Array 2 Dimensi

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;

atau bisa juga dengan :

elementType arrayRefVar[ ][ ];// Diizinkan tapi tidak direkomendasikan

Cara Mendeklarasikan Array 2 Dimensi

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

Menetapkan nilai 7 pada index [3][1]

Kita juga dapat menginisialisasi array dua dimensi dengan cara sebagai berikut :

Inisialisasi array dua dimensi

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 :

Tabel Kota dan Waktu Tempuh

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

 public static void main(String[] args) {


        //Inisialisasi array dua dimensi
        int[][] array2D = {
            {1, 2, 3, 4}, {5, 6, 7, 8}
        };
        //Menampilkan array dua dimensi dengan for loop
         System.out.println("Menampilkan array 2D dengan" + " for loop: ");
            for(int i = 0;i < 2;i++){
                for(int j = 0; j < 4 ; j++){
                    System.out.print(array2D[i][j] + " ");
                 }  
 
             System.out.println();
            }
            
        System.out.println("Menampilkan array 2D dengan" +
                " method deepToString: ");
        //Menampilkan array dua dimensi dengan method
        //deepToString dari class Arrays
        System.out.println(java.util.Arrays.deepToString(array2D));
        
    }
}

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

Program Java array dua dimensi bertipe String

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.

{{"Sugito", "Prayoga"}, {"Samirul", "Hilmi"}, {"Leo", "Hermawan"}, {"Fina", "Anisa"}}

Berikut ini contoh Program Java array dua dimensi bertipe String :

public class array4 {


public static void main(String[] args) {
String nama [][] = { {"Sugito", "Prayoga"}, {"Samirul", "Hilmi"}, {"Leo",
"Hermawan"}, {"Fina", "Anisa"} };

for (int i = 0; i < nama.length; i++) {


System.out.print((i + 1)+". ");
for (int j = 0; j < 2; j++) {
System.out.print(nama[i] [j]+" ");
}
System.out.println(" ");
}
}
}

Dan ini hasil Outputnya :

Percobaan 7

Hitung Nilai Mahasiswa (Array 2 dimensi)


import
java.util.Scanner;

public class JavaApplication2 {

public static void main(String[] args) throws Exception {

//Inisialisasi
Scanner input = new Scanner(System.in);
int mhs,jml, banyakTes = 3, nilai[][], ntt[], ntr[];
float rata[], jumlah[], rtt, rtr;

//Input jumlah mahasiswa


System.out.print("Masukkan Jumlah Mahasiswa : ");
mhs = input.nextInt();

//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));

for(int i=0;i<banyakTes;i++){ //Tes keberapa


System.out.print("Nilai Tes " + (i+1) + " : ");
nilai[h][i] = input.nextInt();

//Hitung Jumlah Tes


jumlah[h] = jumlah[h] + nilai[h][i];
}
//Hitung rata-rata tes
rata[h] = jumlah[h]/banyakTes;
System.out.println();
}

//Nilai awal tertinggi & terendah


for(int i=0;i<banyakTes;i++){
ntt[i] = nilai[0][i];
ntr[i] = nilai[0][i];
}

//Nilai awal rata-rata tertinggi & terendah


rtt = rata[0];
rtr = rata[0];

//Cari nilai tertinggi & terendah


for(int i=0;i<banyakTes;i++){
for(int j=0;j<mhs;j++){
if(ntt[i] < nilai[j][i]){
ntt[i] = nilai[j][i];
}
if(ntr[i] > nilai[j][i]){
ntr[i] = nilai[j][i];
}
}
}

//Cari nilai rata-rata tertinggi & terendah


for(int i=0;i<mhs;i++){
if(rtt < rata[i]){
rtt = rata[i];
}
if(rtr > rata[i]){
rtr = rata[i];
}
}

//Output judul
System.out.println("---------------------------");
System.out.println("Daftar Nilai Mahasiswa : ");
System.out.println("---------------------------");
System.out.println();

System.out.println("\t\tTest 1\tTest 2\tTest 3\tRata-


rata");

//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();

//Output nilai tertinggi


System.out.print("Nilai Tertinggi\t");
for(int j=0;j<banyakTes;j++){//Nilai tertinggi
System.out.print(ntt[j] + "\t");
}
System.out.print(rtt);//Rata-rata tertinggi
System.out.println();

//Output nilai terendah


System.out.print("Nilai Teredah\t");
for(int j=0;j<banyakTes;j++){//Nilai terendah
System.out.print(ntr[j] + "\t");
}
System.out.print(rtr);//Rata-rata terendah
System.out.println();

}
}
Percobaan 8
package array.pkg2.d;
import java.util.Scanner;

public class Array2D {


    public static void main(String[] args) {

//masukkan type data


int[][] nilai = new int[4][4];
int baris,kolom;
String [][] convert = new String[4][4];

System.out.println("");

//cara input data pada array 2 dimensi


for(baris=0;baris<nilai.length;baris++){
for(kolom=0;kolom<nilai[baris].length;kolom++){
Scanner bacaRecord = new Scanner(System.in);
System.out.print("Input nilai Tabel baris["+baris+"] kolom["+kolom+"]= ");
nilai [baris][kolom] = bacaRecord.nextInt();
}
}
System.out.println("\n~~~~~~~~~~ Hasil Nilai ~~~~~~~~~~");
for(baris=0;baris<nilai.length;baris++){
for(kolom=0;kolom<nilai[baris].length;kolom++){
System.out.print(" | "+nilai[baris][kolom]);
}
System.out.print(" |\n");
}
System.out.println("=================================");

//cara menampilkan data pada array 2 dimensi


System.out.println("=================================");
System.out.println("\n----- Hasil Nilai Berubah -------");
for(baris=0;baris<nilai.length;baris++){
for(kolom=0;kolom<nilai[baris].length;kolom++){

//data yang akan kita rubah ke String


convert[baris][kolom] = Integer.toString(nilai [baris] [kolom]);

//merubah angka 4 menjadi *


if (convert [baris] [kolom].contains("4")){
convert [baris] [kolom] = ("**");
System.out.print(" | "+convert [baris] [kolom]);
}
else {
System.out.print(" | "+nilai[baris][kolom]);
}
}
System.out.print(" |\n");
}
System.out.println("=================================");
}
}

Anda mungkin juga menyukai