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.
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:
public class Barang {
// atribut
String kodeBarang;
String namaBarang;
int hargaBarang;
// konstruktor
Barang(String kode, String nama, int harga){
this.kodeBarang = kode;
this.namaBarang = nama;
this.hargaBarang = harga;
}
// method untuk menampilkan object Barang
void print(){
System.out.println("Kode Barang: " + this.kodeBarang);
System.out.println("Nama Barang: " + this.namaBarang);
System.out.println("Harga : " + this.hargaBarang);
}
}
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:
import java.util.ArrayList;
public class DataBarang {
// atribut untuk menyimpan data-data barang
ArrayList<Barang> dataBarang = new ArrayList<Barang>();
// menambah data barang baru ke dalam array list
void tambahBarang(Barang data){}
// menghapus data barang berkode tertentu dari array list
void hapusBarang(String kode){}
// mencari data barang berkode tertentu dari array list
void cariBarang(String kode){}
// menampilkan seluruh data yang tersimpan dalam array list
void tampilBarang(){}
}
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){
this.dataBarang.add(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){
this.dataBarang.removeIf(item -> item.kodeBarang == kode);
}
Perintah
item -> item.kodeBarang == 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
void cariBarang(String kode){
// status ditemukan, awalnya false (dianggap tidak ketemu)
boolean ditemukan = false;
// nilai awal index
int index = -1;
// proses pengecekan kesamaan kode barang data dg kode
for(int i=0; i<this.dataBarang.size(); i++){
if (this.dataBarang.get(i).kodeBarang == kode){
// jika match kode barangnya, maka catat index datanya
index = i;
// ubah status ditemukan jadi true
ditemukan = true;
}
}
// jika status ditemukan true, maka tampilkan data barangnya
// berdasarkan index hasil pencarian
if (ditemukan == true){
this.dataBarang.get(index).print();
} else {
// jika tidak ditemukan
System.out.println("Data barang tidak ditemukan");
}
}
Terakhir, untuk menampilkan semua data yang ada dalam array list menggunakan method tampilBarang(), kita bisa menggunakan looping for-each.
void tampilBarang(){
System.out.println("-----------------");
for(Barang item: this.dataBarang){
item.print();
}
}
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.
import java.util.ArrayList;
public class DataBarang {
ArrayList<Barang> dataBarang = new ArrayList<Barang>();
void tambahBarang(Barang data){
this.dataBarang.add(data);
}
void hapusBarang(String kode){
this.dataBarang.removeIf(item -> item.kodeBarang == kode);
}
void cariBarang(String kode){
boolean ditemukan = false;
int index = -1;
for(int i=0; i<this.dataBarang.size(); i++){
if (this.dataBarang.get(i).kodeBarang == kode){
index = i;
ditemukan = true;
}
}
if (ditemukan == true){
this.dataBarang.get(index).print();
} else {
System.out.println("Data barang tidak ditemukan");
}
}
void tampilBarang(){
System.out.println("-----------------");
for(Barang item: this.dataBarang){
item.print();
}
}
}
Setelah itu, kita bisa uji kedua class yang didefinisikan di atas melalui main classnya. Berikut ini contoh penggunaannya.
public class MainClass {
public static void main(String[] args) {
DataBarang a = new DataBarang();
// menambah beberapa data barang ke dalam array list
a.tambahBarang(new Barang("K01", "Sabun mandi", 7500));
a.tambahBarang(new Barang("K02", "Sikat gigi", 8200));
a.tambahBarang(new Barang("K03", "Shampoo", 15000));
// menampilkan semua data barang dari array list
a.tampilBarang();
// mencari data barang berkode 'K03'
a.cariBarang("K03");
// menghapus data barang berkode 'K02'
a.hapusBarang("K02");
// tampilkan data lagi untuk melihat perubahannya
a.tampilBarang();
}
}
Mudah bukan cara penggunaan array list? Pemanfaatan array list ini biasanya diperlukan untuk proses yang ada dalam data science terutama dalam proses pengolahan datasetnya.




3 Comments
fuah
January 28, 2022 at 10:47 pmPak apakah ada code yang sudah disatukan?
Andi
March 11, 2022 at 12:11 pmKlw cara update data harganya gimana?
Rosihan Ari Yuana
March 11, 2022 at 9:42 pmsemoga nanti ada artikel yg membahas itu ya.. memang agak sedikit kompleks yang update 😀