Jumat, 29 April 2016

ArrayList di Java

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.
  1. Array biasa tidak bersifat fleksible yang berarti mau gimana pun Anda perlu mendeklarasikannya dengan jumlah elemen yang dibatasi.
  2. 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