ARRAY Misalnya kamu pelatih sebuah tim sepakbola anakanak, dan kamu ingin mengawasi pemain mana yang hadir latihan di lapangan. Apa yang kamu perlukan adalah program pengawas kehadiran latihan di laptop mu – program untuk mengurus database pemain yang terlihat mengikuti latihan. Kamu bisa menggunakan sebuah struktur data sederhana untuk menyimpan data ini. Ada beberapa tindakan yang bisa kamu lakukan: Menambahkan seorang pemain ke dalam struktur data jika pemain datang di lapangan. Mengecek apakah pemain tertentu hadir di lapangan, dengan pencarian berdasarkan nomor pemain yang ada di struktur data. Menghapus pemain dari struktur data jika pemain tersebut pulang. Tiga operasi inilah – penambahan, pencarian, dan penghapusan – akan menjadi dasar (fundamental) di kebanyakan struktur penyimpanan data yang akan kita pelajari. Membuat Array Ada dua jenis data di Java: tipe primitif (misal: int dan double) dan object. Di banyak bahasa pemrograman (meskipun yang berorientasi objek misal: C++), array adalah tipe primitif, tetapi di Java array diperlakukan sebagai objek. Sehingga, Anda harus menggunakan operator baru untuk membuat sebuah array: int[] intArray; // mendeklarasikan array intArray = new int[100]; // menentukan kapasitas array Atau Anda dapat juga menggunakan pendekatan pernyataan tunggal yang memiliki fungsi sama: int[] intArray = new int[100]; Operator [] adalah petunjuk bagi compiler bahwa kita me-namai sebuah objek array dan bukan variabel biasa. Anda bisa juga menggunakan sintaks alternatif untuk operator ini, meletakkannya setelah nama array: int intArray[] = new int[100]; // sintaks alternatif Tetapi, meletakkan [] setelah int membuatnya jelas bahwa [] adalah bagian dari tipenya, bukan nama array nya. Karena array adalah objek, namanya – intArray dalam kode sebelumnya – adalah penunjuk ke sebuah array; bukannya array itu sendiri. Array-nya tersimpan di alamat lain tempat di memori, dan intArray hanya membawa alamatnya ini saja. Array mempunyai panjang (yang menyatakan kapasitas dari array), yang dapat Anda gunakan untuk mengetahui ukuran (banyaknya elemen) dari array: int arrayLength = intArray.length; Seperti di kebanyakan bahasa pemrograman, Anda tidak bisa merubah ukuran array setelah array tersebut dibuat. Mengakses Elemen-elemen Array Elemen-elemen array diakses menggunakan nomor indeks yang ada dalam kurung siku. Mirip dengan bahasa pemrograman lain: temp = intArray[3]; // mendapatkan isi pada elemen keempat dari array intArray[7] = 66; // memasukkan 66 dalam sel kedelapan Ingatlah bahwa di Java, seperti C dan C++, elemen pertamanya adalah nomor 0, sehingga nomor indeks di array dengan 10 elemen dimulai dari 0 sampai 9. Jika Anda menggunakan indeks kurang dari 0 atau lebih dari ukuran array kurang 1, Anda akan mendapatkan error runtime Array Index Out of Bound. Inisialisasi Selama Anda tidak menentukan isi array, array integer secara default diisi dengan 0. Misalnya Anda membuat array sebagai berikut: autoData[] carArray = new autoData[4000]; Sampai elemen array diberi nilai (nyata), mereka masih berisi nol. Anda dapat memberi nilai array dengan menggunakan sintaks: int[] intArray = { 0, 3, 6, 9, 12, 15, 18, 21, 24, 27 }; Pernyataan tunggal ini menggantikan pernyataan pendeklarasian dan pembuatan array baru. Angka dengan kurung kurawal disebut dengan daftar inisialisasi. Ukuran array ditentukan dengan jumlah nilai yang yang ada di daftar. Sebuah Contoh Array Perhatikan pada beberapa program yang menunjukkan bagaimana array dapat digunakan. Kita akan mulai dengan versi lama-prosedural dan kemudian pendekatan berorientasi objek. class ArrayApp { public static void main(String[] args) { long[] arr; arr = new long[100]; int nElems = 0; int j; // penghitung perulangan long searchKey; // kunci elemen yang dicari // menyisipkan 10 elemen arr[0] = 77; arr[1] = 99; arr[2] = 44; arr[3] = 55; arr[4] = 22; arr[5] = 88; arr[6] = 11; arr[7] = 00; arr[8] = 66; arr[9] = 33; nElems = 10; // sekarang 10 item berada di array // menampilkan elemen for(j=0; j<nElems; j++) System.out.print(arr[j] + “ “); System.out.println(“”); // mencari elemen dengan kunci 66 searchKey = 66; for(j=0; j<nElems; j++) // untuk setiap elemen, if(arr[j] == searchKey) // menemukan item? break; // ya, keluar Program sebelum program berakhir if(j == nElems) // pada elemen terakhir? System.out.println(“tidak dapat menemukan “ + searchKey); // ya else System.out.println(“ditemukan “ + searchKey); // tidak // hapus elemen dg kunci 55 searchKey = 55; for(j=0; j<nElems; j++) // mencarinya if(arr[j] == searchKey) break; for(int k=j; k<nElems-1; k++) // pindahkan indeks yang lebih tinggi ke bawah arr[k] = arr[k+1]; nElems--; // menurunkan ukuran // menampilkan elemen for(j=0; j<nElems; j++) System.out.print( arr[j] + “ “); System.out.println(“”); } // akhir dari main() } // akhir dari class ArrayApp EoF