๐ ArrayList di Java
๐กApa itu ArrayList?
ArrayList adalah struktur data dinamis di Java yang dapat berubah ukuran secara otomatis. Berbeda dengan array biasa yang ukurannya tetap, ArrayList bisa bertambah atau berkurang sesuai kebutuhan.
Analogi: ArrayList seperti tas ransel yang bisa mengembang. Jika isinya bertambah, tas akan membesar. Jika isinya berkurang, tas akan mengecil.
โ๏ธArray vs ArrayList
๐ฆ Array Biasa
- โ Ukuran tetap (fixed size)
- โ Lebih cepat dalam akses
- โ Tidak bisa menambah/kurangi ukuran
- โ Harus tahu ukuran dari awal
- โ Bisa tipe primitif (int, double)
int[] angka = new int[5];
// Ukuran tetap 5๐ ArrayList
- โ Ukuran dinamis (flexible)
- โ Bisa tambah/hapus elemen
- โ Banyak method bawaan
- โ Sedikit lebih lambat
- โ Hanya object (Integer, Double)
ArrayList<Integer> angka = new ArrayList<>();
// Ukuran otomatis menyesuaikan๐Import dan Deklarasi
Untuk menggunakan ArrayList, kita harus import terlebih dahulu.
import java.util.ArrayList;
// Deklarasi ArrayList untuk String
ArrayList<String> buah = new ArrayList<>();
// Deklarasi ArrayList untuk Integer
ArrayList<Integer> angka = new ArrayList<>();
// Deklarasi ArrayList untuk Double
ArrayList<Double> nilai = new ArrayList<>();
// Dengan nilai awal
ArrayList<String> nama = new ArrayList<>();
nama.add("Budi");
nama.add("Ani");
nama.add("Citra");Catatan: ArrayList menggunakan Generic(tanda <Type>) untuk menentukan tipe data yang disimpan.
๐ ๏ธMethod Penting di ArrayList
1. add() - Menambah Elemen
ArrayList<String> buah = new ArrayList<>();
// Tambah di akhir
buah.add("Apel");
buah.add("Jeruk");
buah.add("Mangga");
// Tambah di index tertentu
buah.add(1, "Pisang"); // Insert di index 1
System.out.println(buah);
// Output: [Apel, Pisang, Jeruk, Mangga]2. get() - Mengambil Elemen
ArrayList<String> buah = new ArrayList<>();
buah.add("Apel");
buah.add("Jeruk");
buah.add("Mangga");
String pertama = buah.get(0); // "Apel"
String kedua = buah.get(1); // "Jeruk"
System.out.println("Buah pertama: " + pertama);3. remove() - Menghapus Elemen
ArrayList<String> buah = new ArrayList<>();
buah.add("Apel");
buah.add("Jeruk");
buah.add("Mangga");
// Hapus berdasarkan index
buah.remove(1); // Hapus "Jeruk"
// Hapus berdasarkan nilai
buah.remove("Apel"); // Hapus "Apel"
System.out.println(buah); // [Mangga]4. set() - Mengubah Elemen
ArrayList<String> buah = new ArrayList<>();
buah.add("Apel");
buah.add("Jeruk");
// Ubah elemen di index 1
buah.set(1, "Mangga");
System.out.println(buah); // [Apel, Mangga]5. size() - Ukuran ArrayList
ArrayList<String> buah = new ArrayList<>();
buah.add("Apel");
buah.add("Jeruk");
buah.add("Mangga");
int jumlah = buah.size(); // 3
System.out.println("Jumlah buah: " + jumlah);6. clear() - Hapus Semua
ArrayList<String> buah = new ArrayList<>();
buah.add("Apel");
buah.add("Jeruk");
buah.clear(); // Hapus semua elemen
System.out.println(buah.size()); // 0โก๐ฎ Demo Interaktif: ArrayList String
Kelola Daftar Buah
Coba berbagai operasi ArrayList secara interaktif
๐ ArrayList Buah
Size: 3
โ add() - Tambah Elemen
๐ get() - Ambil Elemen
โ๏ธ set() - Ubah Elemen
๐๏ธ remove() - Hapus by Index
๐ indexOf() - Cari Elemen
๐Looping ArrayList
Ada beberapa cara untuk melakukan loop pada ArrayList.
1. For Loop Biasa
ArrayList<String> buah = new ArrayList<>();
buah.add("Apel");
buah.add("Jeruk");
buah.add("Mangga");
for (int i = 0; i < buah.size(); i++) {
System.out.println(i + ": " + buah.get(i));
}
/* Output:
0: Apel
1: Jeruk
2: Mangga
*/2. Enhanced For Loop (For-Each)
ArrayList<String> buah = new ArrayList<>();
buah.add("Apel");
buah.add("Jeruk");
buah.add("Mangga");
for (String namaBuah : buah) {
System.out.println(namaBuah);
}
/* Output:
Apel
Jeruk
Mangga
*/3. forEach dengan Lambda (Java 8+)
ArrayList<String> buah = new ArrayList<>();
buah.add("Apel");
buah.add("Jeruk");
buah.add("Mangga");
buah.forEach(namaBuah -> System.out.println(namaBuah));
// Atau dengan method reference
buah.forEach(System.out::println);๐งMethod Lainnya
contains() - Cek Keberadaan
ArrayList<String> buah = new ArrayList<>();
buah.add("Apel");
buah.add("Jeruk");
boolean adaApel = buah.contains("Apel"); // true
boolean adaMangga = buah.contains("Mangga"); // false
if (buah.contains("Apel")) {
System.out.println("Apel ada di list!");
}isEmpty() - Cek Kosong
ArrayList<String> buah = new ArrayList<>();
if (buah.isEmpty()) {
System.out.println("ArrayList kosong");
}
buah.add("Apel");
if (!buah.isEmpty()) {
System.out.println("ArrayList ada isinya");
}indexOf() & lastIndexOf()
ArrayList<String> buah = new ArrayList<>();
buah.add("Apel");
buah.add("Jeruk");
buah.add("Apel");
int pertama = buah.indexOf("Apel"); // 0
int terakhir = buah.lastIndexOf("Apel"); // 2
int notFound = buah.indexOf("Mangga"); // -1 (tidak ada)๐ข๐ฎ Demo: ArrayList dengan Angka
Operasi ArrayList Integer
Coba sort, reverse, dan operasi matematika
๐ ArrayList Numbers
Kode Java untuk Sort:
Collections.sort(numbers); // Sort ascending
๐Contoh Program Lengkap
Program manajemen daftar siswa menggunakan ArrayList.
import java.util.ArrayList;
import java.util.Scanner;
public class ManajemenSiswa {
public static void main(String[] args) {
ArrayList<String> siswa = new ArrayList<>();
Scanner input = new Scanner(System.in);
int pilihan;
do {
System.out.println("\n=== MANAJEMEN SISWA ===");
System.out.println("1. Tambah Siswa");
System.out.println("2. Lihat Semua Siswa");
System.out.println("3. Hapus Siswa");
System.out.println("4. Cari Siswa");
System.out.println("0. Keluar");
System.out.print("Pilih: ");
pilihan = input.nextInt();
input.nextLine(); // Clear buffer
switch (pilihan) {
case 1:
System.out.print("Nama siswa: ");
String nama = input.nextLine();
siswa.add(nama);
System.out.println("โ
Siswa ditambahkan!");
break;
case 2:
System.out.println("\n๐ Daftar Siswa:");
if (siswa.isEmpty()) {
System.out.println("Belum ada siswa");
} else {
for (int i = 0; i < siswa.size(); i++) {
System.out.println((i+1) + ". " + siswa.get(i));
}
}
break;
case 3:
System.out.print("Index siswa yang dihapus: ");
int index = input.nextInt() - 1;
if (index >= 0 && index < siswa.size()) {
siswa.remove(index);
System.out.println("โ
Siswa dihapus!");
} else {
System.out.println("โ Index tidak valid!");
}
break;
case 4:
System.out.print("Nama yang dicari: ");
String cari = input.nextLine();
if (siswa.contains(cari)) {
int idx = siswa.indexOf(cari);
System.out.println("โ
Ditemukan di posisi " + (idx+1));
} else {
System.out.println("โ Tidak ditemukan");
}
break;
}
} while (pilihan != 0);
System.out.println("Program selesai!");
}
}๐ Ringkasan ArrayList
- โ ArrayList adalah array dinamis yang ukurannya fleksibel
- โ
Import:
import java.util.ArrayList; - โ
Deklarasi:
ArrayList<Type> name = new ArrayList<>(); - โ Method penting: add(), get(), remove(), set(), size(), clear()
- โ Loop dengan for, for-each, atau forEach()
- โ Gunakan ArrayList ketika ukuran data tidak pasti
- โ Lebih fleksibel tapi sedikit lebih lambat dari array biasa