About Me

Hai, saya Rosihan Ari Yuana. Saya sehari-hari adalah mengajar di Universitas Sebelas Maret.

Bidang riset saya tentang adaptive learning, computer aided learning, dan datascience

Selain itu, saya juga seorang penulis buku dan blogger.

More about me...

  • Home
  • /
  • Java
  • /
  • Penggunaan Array List di Java

Penggunaan Array List di Java

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:

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.


Article by Request

Anda belum memahami konsep pemrograman PHP Native, Python, Java, atau SQL? atau Anda belum punya ide penyelesaian dari studi kasus yang dihadapi sampai saat ini.

Silakan manfaatkan layanan Article by Request di blog ini.


Bagikan artikel ini jika bermanfaat !

Assalaamu'alaikum.. aktivitas keseharian saya mengajar di Universitas Sebelas Maret, dengan matakuliah pemrograman dan basis data. Adapun bidang penelitian saya tentang computational thinking dan computer-aided learning.

Leave a Reply