Array adalah kumpulan data yang memiliki tipe data dan jumlah elemen yang tetap (tidak bisa ditambah/dikurangi). Array pada Java adalah sebuah object
, maka harus dideklarasikan menggunakan kata kunci new
. Tiap data pada array disebut element, dan masing-masing element dapat diakses menggunakan index yang berupa angka. Index dimulai dari 0 sampai jumlah element – 1.
Contoh untuk mendeklarasikan array sesuai gambar di atas adalah
char [] arrayHuruf = new char[10];
Sedangkan cara untuk menginisialisasinya adalah sebagai berikut
arrayHuruf[0] = 'A'; arrayHuruf[1] = 'B'; //dst
Bisa menggunakan perulangan untuk menginisialisasi array
for (int i = 0; i < 10; i ++) { arrayHuruf[i] = (char) ('A' + i); }
Array arrayHuruf
akan berisi 10 karakter, yaitu ‘A’ sampai ‘J’ secara berurutan. Alternatif lain untuk menginisialisasi array, dapat menggunakan syntax sebagai berikut
char[] arrayHuruf = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J' };
Jumlah element diketahui dari banyaknya nilai di antara tanda ‘{‘ dan ‘}’.
Kita juga dapat mendeklarasikan array dari array atau lebih dikenal sebagai array multidimensi dengan cara seperti berikut char[][] namaArray = new char[10][2]
atau char[][] namaArray = new char[10][]
, tapi tidak boleh seperti ini char[][] namaArray = new char[][2]
. Dalam bahasa Java, pengertian array lebih sederhana daripada pada bahasa C, jadi jumlah element pada baris berikutnya jumlahnya boleh bervariasi (tidak harus sama dengan baris pertama).
char[][] hurufAngka = new char[2][]; hurufAngka[0] = new char[2]; // array index [0][0] sampai [0][1] hurufAngka[1] = new char[1]; // hanya ada array index [1][0]
Array multidimensi juga dapat langsung dideklarasikan dan diinisialisasi seperti berikut
char[][] hurufAngka = { { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J' }, { '1', '2', '3', '4', '5'} };
Pada contoh untuk menginisialisasi di atas, kita menggunakan bentuk perulangan for (nilai_awal; nilai_akhir; penambahan/pengurangan)
, jadi jumlah element-nya harus diketahui. Bagaimana jika jumlah element tidak diketahui? Misalkan kita ingin mencetak array yang berisi huruf-huruf yang tidak diketahui secara pasti jumlahnya. Gunakan enhanced for yang penggunaannya mirip dengan foreach
pada PHP.
char[] arrayHuruf = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J' }; for ( char huruf : arrayHuruf ) { System.out.println( huruf ); }
Kita juga bisa menggunakan built-in property length
untuk mengetahui jumlah element-nya.
for (int i=0; i<arrayHuruf.length; i++) System.out.println( arrayHuruf[i] );
Untuk menyalin array yang satu ke yang lainnya, bisa menggunakan method arraycopy
yang ada pada class System
.
public static void arraycopy(Object arraySumber, int indexSumber, Object arraytujuan, int indexTujuan, int panjangElement)
Contoh penggunaannya adalah seperti berikut
int[] arraySumber = { 1, 2, 3, 4, 5 }; int[] arrayTujuan = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 }; System.arraycopy (arraySumber, 0, arrayTujuan, 0, arraySumber.length); for (int item : arrayTujuan) System.out.println ( item );
Tambahan:
Meskipun jumlah element pada array tidak bisa ditambah/dikurangi, kita bisa menciptakan array baru dari array yang sudah ada. Namun tentu saja, nilai yang sudah ada akan hilang.
int [] array = new int[5]; array = new int[10];