Struktur Data, Array & ArrayList
Struktur data merupakan cara untuk menyimpan dan mengatur data didalam program. Struktur data digunakan untuk mempermudah dalam pengolahan data agar dapat diakses, dicari, dimanipulasi, dan juga diproses dengan efisien dan juga efektif. Pada saat developer melakukan pengembangan aplikasi, pemilihan struktur data yang tepat sangat berpengaruh dalam mengoptimalkan performa dari aplikasi, memudahkan dalam pengembangan serta menghindari kesalahan dari program pada saat proses pengembangan.
Contoh struktur data yang sering digunakan dalam proses pengembangan aplikasi yaitu array, arraylist, linked list, stack, queue, tree, dan graph. Materi struktur data inilah yang akan kita bahas dalam beberapa hari kedepan. Untuk jenis materi struktur data yang akan kita bahas pada hari ialah array.
Array merupakan struktur data yang paling sederhana dan yang paling sering digunakan dalam pengembangan aplikasi. Array pada dasarnya merupakan sebuah variabel yang menyimpan sekumpulan data yang bertipe data sama. Isi dari array disebut dengan elemen array, yang dimana setiap elemen array akan menempati alamat memori yang berbeda - beda. Elemen array dapat diakses dengan menggunakan indeks yang terdapat didalamnya. Dalam pemberian indeks pada elemen array selalu dimulai dengan angka 0 bukan dari 1.
Dalam mendeklarasikan sebuah array dalam java, untuk penulisan sintaksnya harus menggunakan tanda [ ]. Contoh sintaks dari array di java seperti berikut:
Untuk inisialisasi isi dari array, nilai yang akan menjadi elemen dari array harus berada di dalam blok { }, sedangkan untuk membatasi nilai antar elemen array dibatasi dengan tanda baca koma , dan diakhir dengan ;. Contoh implementasi array pada program seperti berikut:
Selain array 1 dimensi seperti contoh diatas, ada juga array multidimensi. Yang dimana array multidimensi ini merupakan array yang terdiri dari beberapa subskrip. Array 2 dimensi adalah array yang mempunyai dua subskrip array dan array 3 dimensi adalah array yang mempunyai 3 subskrip array. Deklarasi dari array 2 dimensi dan 3 dimensi seperti berikut:
Di dalam java sintaks penulisan dari java harus selalu disertai dengan batas ukuran dari array itu sendiri. Karena setiap array harus selalu memiliki ukuran yang harus didefinisikan pada saat membuat array. Apabila ingin menggunakan array tanpa menggunakan batasan ukuran dari array, maka array list yang cocok untuk kalian gunakan, arraylist akan kita pelajari di materi selanjutnya.
Arraylist berbeda dengan array biasa, pada arraylist didalamnya memiliki beberapa jumlah operasi yang lebih lengkap daripada array biasa. Arraylist merupakan sebuah class bagian dari Java Util yang memungkinkan dalam penggunaannya untuk membuat sebuah object khusus untuk menampung apapun. Developer harus melakukan import class arraylist import java.util.ArrayList; terlebih dahulu sebelum menggunakan arraylist.
Dalam implementasinya, Arraylist sudah menyediakan berbagai operasi yang dapat digunakan ketika menggunakan arraylist, beberapa operasi yang dapat digunakan seperti berikut:
1. size(), untuk mencari panjang ArrayList.
2. add(), untuk menambah elemen baru.
3. get(), untuk mengambil elemen pada indeks tertentu.
4. isEmpty(), untuk memeriksa apakah ArrayList kosong atau tidak.
5. indexOf(), untuk mengetahui indeks dari suatu nilai.
6. contains(), untuk memeriksa apakah suatu nilai ada dalam ArrayList.
7. set(), untuk menimpa nilai pada indeks tertentu.
8. remove(), untuk menghapus nilai pada indeks tertentu.
Untuk implementasi dari beberapa operasi diatas dapat kalian lihat pada contoh berikut:
Pada contoh diatas listHewan merupakan sebuah object yang nantinya akan digunakan untuk menampung data yang dimasukkan dengan sintaks listHewan.add(). Lalu untuk menampilkan data dari 1 indeks saja bisa menggunakan sintaks listHewan.get().variabelGetter. Kemudian untuk melakukan penghapusan indeks dapat dilakukan dengan menggunakan sintaks listHewan.remove() dan untuk melakukan perubahan pada data yang ada di dalam arraylist dapat dilakukan dengan menuliskan sintaks listHewan.get().variabelSetter().