Apa itu ArrayList ? Sebenarnya, ArrayList itu merupakan salah satu fitur yang paling saya senangi dalam melakukan penyimpanan Data yang jumlahnya tidak dikit. Saya sering pakai fitur ini ketika jumlah Data itu tidak bisa Anda(baca : Programmer) tentukan sendiri melainkan dari si User. Contoh program sederhananya saja seperti program Sequential Searching yang pernah saya bagi sebelumnya. Pada program itu, bisa Anda lihat bahwa
jumlah Data sebenarnya bisa di modifikasi menjadi 2 pilihan yakni, Jumlah Data ditentukan sendiri oleh si Programmer dan Jumlah Data di input oleh si User. Untuk ditentukan oleh Programmer saya rasa hal itu cukuplah mudah untuk melakukannya. Bahkan, dengan fitur Array biasa pun Anda bisa melakukannya. Namun, ketika program Anda dibuat menggunakan jumlah Data yang jumlahnya itu ditentukan oleh si User maka, Anda tidak bisa menggunakan fitur Array biasa. Sebenarnya bisa sih menggunakan Array biasa. Seperti berikut ini contohnya.int[] data = null; System.out.print(“Masukkan jumlah Data : “); int jlh_data = new Scanner(System.in).nextInt(); data = new int[jlh_data];
Bisa kan? Dari kode diatas, bisa Anda lihat pertama Anda deklarasikan sebuahArray dengan jumlah elemennya belum Anda ketahui atau null. Kemudian, buat statement untuk membuat si User melakukan input jumlah Data yang di inginkannya dan simpan dalam variable jlh_data. Kemudian, deklarasikan lagiArray data dengan jumlah elemennya menggunakan variable jlh_data.
Tapi, sebenarnya Array biasa itu tidak bersifat fleksible yang berarti, ketika Anda ingin membuat jumlah data baru lagi maka, Anda terpaksa harus menulis kode yang berulang – ulang yakni, pertama Anda harus mendeklarasikan Array biasa dengan jumlah elemen null dan yang kedua Anda harus deklarasi lagi Arraybiasa itu dengan jumlah elemen yang di simpan dalam variable dari si User. Jelas hal itu tidaklah efektif untuk menulis kode Anda. Di Java, Anda bisa menggunakanArrayList untuk penyimpanan Data yang banyak dan sifatnya itu fleksible. Mau tau caranya tapi, sebelumnya mari saya beri sedikit perbedaan antara Array biasa dengan ArrayList.
- Array biasa tidak bersifat fleksible yang berarti mau gimana pun Anda perlu mendeklarasikannya dengan jumlah elemen yang dibatasi.
- ArrayList bersifat fleksible dan mudah digunakan dalam berbagai kasus untuk penyimpanan Data yang tidak tentu jumlahnya. Dan juga ArrayListumumnya hanya bisa menyimpan value dengan tipe data Object.
Untuk menggunakan ArrayList Anda perlu melakukan import library ArrayListyang berada di java.util.ArrayList. Dan berikut ialah contoh sederhana membuat program Input Data dengan jumlah Datanya di input oleh user dan Hapus Data.
import java.util.ArrayList; import java.util.Scanner; /** * * @author Yudi Setiawan * * Input Data dengan ArrayList * */ public class InputData { public static void main(String[] args) { // Buat Objek dari ArrayList ArrayList arr_data = new ArrayList(); // Input jumlah Data yang di inginkan oleh User System.out.print("Input jumlah Data : "); int jlh_data = new Scanner(System.in).nextInt(); // Input Data dan masukkan ke dalam objek ArrayList yang telah Anda buat for(int a = 0; a < jlh_data; a++) { System.out.print("Masukkan Data ke-"+(a+1)+": "); arr_data.add(new Scanner(System.in).nextLine()); } // Tampilkan nilai yang di simpan di dalam ArrayList System.out.println("\nTampilkan Data yang di input"); for(Object o : arr_data) { System.out.println(o); } // Masukkan Data yang akan dihapus System.out.print("\nInput Data yang akan dihapus : "); String data_hapus = new Scanner(System.in).nextLine(); // Lakukan penghapusan Data di dalam ArrayList arr_data.remove(data_hapus); // Tampilkan kembali nilai yang di simpan di dalam ArrayList System.out.println("\nTampilkan kembali Data yang ada di dalam ArrayList"); for(Object o : arr_data) System.out.println(o); } }
Gimana gampangkan? Berikut sedikit penjelasan dari saya untuk kode diatas.
- add digunakan untuk memasukkan sebuah value ke dalam ArrayList. Sedikit catatan, bahwa pada umumnya ArrayList hanya bisa menyimpan tipe data Object. Namun, Anda bisa mengubahnya sesuai keinginan Anda dengan cara mem-parsing tipe datanya dari object ke tipe data lainnya sepertiinteger, double dan lainnya. Bisa Anda lihat pada contoh berikutnya.
- remove digunakan untuk menghapus sebuah value dari daftar ArrayListyang tersedia menggunakan nomor index maupun langsung dari value-nya. Sedikit catatan, bahwa ketika sebuah value dimasukkan ke dalam ArrayListmaka, index pertamanya selalu dimulai dari nol(0) dan secara otomatis indexnya akan bertambah dengan sendirinya. Hal inilah yang saya sebut tadi dengan fleksible. Jumlah Datanya tidak terbatas.
- Object o : arr_data berarti, Anda akan melakukan perulangan sebanyak jumlah Data yang terisi di dalam ArrayList.
Biar lebih paham, berikut saya berikan 1 contoh lagi untuk sample program Sequential Searching dengan menggunakan ArrayList.
import java.util.ArrayList; import java.util.Scanner; /** * * @author Yudi Setiawan * * Contoh Program Sequential Searching dengan fitur ArrayList * */ public class SequentialSearchingArrayList { public static void main(String[] args) { // Buat Objek ArrayList dan set datanya menjadi integer ArrayList<Integer> arr_data = new ArrayList(); // Buat Objek Scanner Scanner scan = new Scanner(System.in); // Input jumlah Data yang di inginkan oleh User System.out.print("Input jumlah Data : "); int jlh_data = scan.nextInt(); // Input tiap nilai dan masukkan ke dalam ArrayList System.out.println("\nInput nilai Data"); for(int a = 0; a < jlh_data; a++) { System.out.print("Data ke-"+(a+1)+" : "); int value = scan.nextInt(); // Membaca inputan dari si User // Masukkan ke dalam ArrayList arr_data.add(value); } // Tampilkan Data hasil inputan System.out.println("\nData yang ada di dalam ArrayList"); int posisi = 1; for(Integer i : arr_data) { System.out.println("-->Data ke-"+posisi+" : "+i); posisi++; } // Input Data yang akan dicari System.out.print("\nInput Data yang akan dicari : "); int cari = scan.nextInt(); // Proses Pencarian di dalam ArrayList int iterasi = 1; boolean temu = false; for(Integer i : arr_data) { if(i == cari) { System.out.println("Iterasi ke-"+iterasi); System.out.println(i+" == "+cari); temu = true; break; } else { System.out.println("Iterasi ke-"+iterasi); System.out.println(i+" != "+cari); } iterasi++; System.out.println(); } if(temu == true) System.out.println("\nData ditemukan pada iterasi ke-"+iterasi); else System.out.println("\nData tidak ditemukan"); } }
Tidak ada komentar:
Posting Komentar