Penggunaan Array List di Java
Rosihan Ari Yuana / December 1, 2020
Di dalam Java, terdapat struktur data array list yang secara umum kegunaannya sama
dengan struktur data array biasa, yang mana dapat digunakan untuk menyimpan
sejumlah value ke dalam sebuah variabel tunggal.
Akan tetapi, perbedaan keduanya adalah bahwa array list bersifat dinamis tidak seperti
array biasa. Ketika mendeklarasikan sebuah variabel berstruktur data array list, kita
tidak perlu mendefinisikan ukuran (size) atau dimensi nya di awal. Tidak seperti array
yang sifat sizenya statis, size dari array list bisa berubah secara dinamis setiap saat
seiring bertambah dan berkurangnya data di dalam array list.
Selain itu, perbedaan berikutnya adalah bahwa data yang tersimpan dalam array list
bertipe data obyek. Adapun array biasa, tipe datanya bisa berupa obyek atau bisa
juga primitive. Penjelasan lebih detil tentang array list, bisa disimak di video berikut ini.
Tutorial Java Array List
Pada artikel kali ini, saya akan memberikan contoh studi kasus bagaimana menerapkan
pengolahan data menggunakan array list. Dalam studi kasus ini, akan dibahas
bagaimana menambahkan, menghapus, mencari, dan menampilkan data di dalam
array list.
Studi kasus yang akan diberikan di sini adalah tentang penggunaan array list untuk
menyimpan data barang.
Sebagai contoh, misalkan dimiliki struktur class Barang sebagai berikut:
1 public class Barang {
// atribut
2
String kodeBarang;
3 String namaBarang;
4 int hargaBarang;
5
6 // konstruktor
7 Barang(String kode, String nama, int harga){
8
9 [Link] = kode;
10 [Link] = nama;
11 [Link] = harga;
12 }
13
// method untuk menampilkan object Barang
14 void print(){
15 [Link]("Kode Barang: " + [Link]);
16 [Link]("Nama Barang: " + [Link]);
17 [Link]("Harga : " + [Link]);
18 }
19
}
20
21
Class Barang di atas nantinya digunakan untuk mendeskripsikan struktur dari obyek
barang yang merupakan data obyek yang akan disimpan ke dalam array list.
Selanjutnya akan dibuat sebuah class bernama DataBarang. Class ini nanti akan
digunakan untuk proses pengolahan data-data barang. Proses pengolahan ini meliputi
penambahan, penghapusan, pencarian, serta menampilkan data-data barang,
Struktur class DataBarang adalah sebagai berikut:
1
2 import [Link];
3
4 public class DataBarang {
// atribut untuk menyimpan data-data barang
5 ArrayList<Barang> dataBarang = new ArrayList<Barang>();
6
7 // menambah data barang baru ke dalam array list
8 void tambahBarang(Barang data){}
9
10 // menghapus data barang berkode tertentu dari array list
11 void hapusBarang(String kode){}
12
// mencari data barang berkode tertentu dari array list
13 void cariBarang(String kode){}
14
15 // menampilkan seluruh data yang tersimpan dalam array list
16 void tampilBarang(){}
17 }
18
Perhatikan class DataBarang di atas, di dalam class tersebut terdapat
atribut dataBarang yang berstruktur data array list. Dikarenakan array list ini nanti
akan diisi dengan data-data barang yang bertipe obyek, sehingga pendeklarasiannya
adalah sebagaimana perintah berikut ini:
ArrayList<Barang> dataBarang = new ArrayList<Barang>();
Selanjutnya kita akan bahas satu-persatu method yang ada di dalam class DataBarang.
Method tambahBarang(Barang data) nantinya digunakan untuk menambahkan
data barang baru ke dalam array list dataBarang. Untuk melakukan hal ini, kita
berikan method add() di dalam method tersebut.
void tambahBarang(Barang data){
[Link](data);
}
Adapun method hapusBarang(String kode) akan digunakan untuk menghapus
data barang dengan kode barang tertentu dari array list dataBarang. Untuk
menghapus data dari array list dapat menggunakan method removeIf().
void hapusBarang(String kode){
[Link](item -> [Link] == kode);
}
Perintah
item -> [Link] == kode
merupakan syarat penghapusan data dari array list di mana yang menjadi acuan
adalah atribut kodeBarang dari data barangnya, yaitu yang sama
dengan kode (diambil dari argumen method-nya). Variabel item mengacu ke elemen
data dari array list yang bertipe data obyek barang.
Berikutnya adalah method cariBarang(String kode). Method ini nantinya akan
digunakan untuk mencari data barang yang telah tersimpan dalam array list, di mana
kode barang sebagai acuannya.
Ide untuk membuat method ini adalah bahwa nantinya kita akan membaca atribut
kode data barang dari setiap data barang yang ada dalam array list. Setiap kode barang
yang dibaca tersebut nantinya akan dibandingkan dengan kode barang yang diambil
dari argumen method. Apabila kode barang dari data sama dengan kode barang yang
dicari, maka catat nomor index data tersebut dari array list. Nomor index ini nantinya
akan digunakan untuk menampilkan data barang hasil pencarian. Namun, apabila
tidak ada satu pun kode barang dari data barang yang cocok dengan kode yang dicari
maka akan muncul pesan ‘Data barang tidak ditemukan’. Berdasarkan ide ini, kita bisa
membuat methodnya sebagai berikut
1 void cariBarang(String kode){
// status ditemukan, awalnya false (dianggap tidak ketemu)
2
boolean ditemukan = false;
3 // nilai awal index
4 int index = -1;
5 // proses pengecekan kesamaan kode barang data dg kode
6 for(int i=0; i<[Link](); i++){
7
8
9 if ([Link](i).kodeBarang == kode){
// jika match kode barangnya, maka catat index datanya
10 index = i;
11 // ubah status ditemukan jadi true
12 ditemukan = true;
13 }
}
14
15
// jika status ditemukan true, maka tampilkan data barangnya
16 // berdasarkan index hasil pencarian
17 if (ditemukan == true){
18 [Link](index).print();
19 } else {
// jika tidak ditemukan
20 [Link]("Data barang tidak ditemukan");
21 }
22 }
23
24
Terakhir, untuk menampilkan semua data yang ada dalam array list menggunakan
method tampilBarang(), kita bisa menggunakan looping for-each.
1 void tampilBarang(){
2 [Link]("-----------------");
3 for(Barang item: [Link]){
4 [Link]();
}
5
}
6
Pada proses looping for-each di atas, setiap data barang dari array
list dataBarang diambil satu-persatu kemudian disimpan dalam variabel item.
Dikarenakan item ini bertipe data obyek barang maka akan memiliki
method print() sesuai dengan struktur class Barang di awal tadi.
Dengan demikian, struktur class DataBarang secara utuh adalah sebagai berikut.
1 import [Link];
2
public class DataBarang {
3
ArrayList<Barang> dataBarang = new ArrayList<Barang>();
4
5 void tambahBarang(Barang data){
6 [Link](data);
7 }
8
9 void hapusBarang(String kode){
[Link](item -> [Link] == kode);
10 }
11
12 void cariBarang(String kode){
13
14
15
boolean ditemukan = false;
16
int index = -1;
17 for(int i=0; i<[Link](); i++){
18 if ([Link](i).kodeBarang == kode){
19 index = i;
20 ditemukan = true;
}
21 }
22
23 if (ditemukan == true){
24 [Link](index).print();
25 } else {
26 [Link]("Data barang tidak ditemukan");
}
27 }
28
29 void tampilBarang(){
30 [Link]("-----------------");
31 for(Barang item: [Link]){
32 [Link]();
}
33 }
34 }
35
36
37
Setelah itu, kita bisa uji kedua class yang didefinisikan di atas melalui main classnya.
Berikut ini contoh penggunaannya.
1 public class MainClass {
2
3 public static void main(String[] args) {
DataBarang a = new DataBarang();
4
5 // menambah beberapa data barang ke dalam array list
6 [Link](new Barang("K01", "Sabun mandi", 7500));
7 [Link](new Barang("K02", "Sikat gigi", 8200));
8 [Link](new Barang("K03", "Shampoo", 15000));
9
// menampilkan semua data barang dari array list
10 [Link]();
11
12 // mencari data barang berkode 'K03'
13 [Link]("K03");
14
15 // menghapus data barang berkode 'K02'
16 [Link]("K02");
17
// tampilkan data lagi untuk melihat perubahannya
18 [Link]();
19
20
}
21 }
22
23
Mudah bukan cara penggunaan array list? Pemanfaatan array list ini biasanya
diperlukan untuk proses yang ada dalam data science terutama dalam proses
pengolahan datasetnya.