Bab 4, Array

Ringkasan

Array adalah struktur data yang memungkinkan menyimpan banyak nilai yang memiliki tipe data yang sama. Jika dianalogikan, array adalah sederet kotak yang menyimpan barang yang sama, misal jarum jahit. Di bahasa pemrograman lain, array dapat menyimpan data dengan tipe data yang berbeda, seperti Python atau PHP. Dalam Java tidak diperkenankan.

Karakteristik dari array adalah jumlah data yang dimasukkan terbatas, bergantung berapa banyak elemen yang diinisialisasikan pada pendeklarasiannya. Maka dari itu, ada beberapa struktur data yang dapat mengakomodasi batasan dari array, misalkan linked list yang akan dipelajari di mata kuliah Algoritma dan Struktur Data di semester 3.

Array 1 dimensi

Seperti namanya, array 1 dimensi hanya menyimpan data yang strukturnya seperti ini

+------------------------------------------------------------+
|  9  |  1  |  10 |  9  | 12  | 781 | -1  | -20  |  3  |  2  |   <- data
+------------------------------------------------------------+
   0     1     2     3     4     5     6     7      8     9      <- indeks

Dalam Java, indeks array dimulai dari 0 seperti diatas.

Untuk pendeklarasiannya seperti ini

// deklarasi array sebanyak 10 elemen
int[] array1 = new int[10];

// deklarasi array yang elemennya telah ditentukan dulu
int[] array2 = {9, 1, 10, 9, 12, 781, -1, -20, 3, 2};

Untuk tipe data numerik, jika kita mendeklarasikan array seperti ini...

// deklarasi array sebanyak 10 elemen
int[] array1 = new int[10];

...akan menginisialisasikan semua elemennya bernilai 0. Jika string atau object, akan diinisialisasikan sebagai null.

Pengaksesan array 1 dimensi

Untuk cara pengaksesannya cukup mudah, kita cukup menggunakan nilai indeksnya saja.

int[] array2 = {9, 1, 10, 9, 12, 781, -1, -20, 3, 2};
System.out.println(array[2]);
System.out.println(array[9]);

Akan menghasilkan output

10
2

Perlu diingat, indeks jangan melebihi indeks maksimalnya.

int[] array2 = {9, 1, 10, 9, 12, 781, -1, -20, 3, 2};
System.out.println(array[2]);
System.out.println(array[11]);

Akan menghasilkan output

10
...(pesan error ArrayIndexOutOfBoundsException)

Array multidimensi

Array jenis ini memungkinkan kita menyimpan array dalam elemen array. Dalam bahasan ini kita hanya fokus sampai array 2 dimensi (matriks). Strukturnya kira-kira seperti ini

x  +------------------------------------------------------------+
0  |  9  |  1  |  10 |  9  | 12  | 781 | -1  | -20  |  3  |  2  |
   +------------------------------------------------------------+
1  |  9  |  1  |  10 |  9  | 12  | 781 | -1  | -20  |  3  |  2  |
   +------------------------------------------------------------+
2  |  9  |  1  |  10 |  9  | 12  | 781 | -1  | -20  |  3  |  2  |
   +------------------------------------------------------------+
      0     1     2     3     4     5     6     7      8     9     y

Dimana x adalah indeks baris dan y adalah indeks kolom.

Pendeklarasiannya sebagai berikut

// deklarasi array 2 dimensi ordo 3x10
int[][] matriks = new int[3][10];

// pendeklarasian nilai awal matriks ordo 3x3
int[][] matriks1 = {
    {1,2,3},
    {4,5,6},
    {7,8,9}
};

Pengaksesan array 2 dimensi

Untuk mengakses elemen pada matriks sangat mudah, sama seperti pengaksesan array 1 dimensi

int[][] matriks1 = {
    {1,2,3},
    {4,5,6},
    {7,8,9}
};

matriks1[1][0] = -1;
matriks1[2][1] = matriks[0][2] + 3;

Nilai matriks akan berubah menjadi

1 2 3
-1 5 6
7 6 9

Array 2 dimensi lazim digunakan untuk melakukan operasi yang berkaitan dengan matriks, seperti transpose, invers, adjoin, kofaktor, dan seterusnya.

Untuk contoh kasus, silakan lihat disini