Tugas 1: Memahami List
Tujuan: Memahami implementasi List
(ArrayList, LinkedList).
- Buat program untuk menyimpan daftar nama mahasiswa.
- Gunakan
ArrayList
untuk menambahkan, menghapus, dan mencari nama. - Bandingkan dengan
LinkedList
untuk operasi tambah/hapus di awal dan akhir list.
- Gunakan
- Implementasikan sorting menggunakan
Collections.sort()
dengan:- Natural ordering (Comparable).
- Custom comparator (misalnya: urutkan berdasarkan panjang nama).
Contoh output:

Tugas 2: Eksplorasi Set
Tujuan: Memahami perbedaan HashSet
, LinkedHashSet
, dan TreeSet
.
- Buat program untuk menyimpan angka unik secara acak (1-100) dengan ketiga jenis Set.
- Tampilkan isi setiap Set untuk melihat perbedaan urutan penyimpanan.
- Tambahkan logika untuk mengecek duplikasi sebelum menambahkan elemen.
Contoh output:

Tugas 3: Implementasi Map
Tujuan: Memahami penggunaan HashMap
, LinkedHashMap
, dan TreeMap
.
- Buat buku telepon sederhana yang menyimpan nama dan nomor telepon.
- Gunakan
HashMap
untuk pencarian cepat. - Gunakan
TreeMap
untuk menampilkan kontak secara terurut berdasarkan nama.
- Gunakan
- Implementasikan fitur pencarian nomor telepon berdasarkan nama.
Contoh output:

Tugas 4: Queue dan Deque
Tujuan: Memahami antrian dengan PriorityQueue
dan ArrayDeque
.
- Simulasikan antrian tiket menggunakan
PriorityQueue
(prioritas berdasarkan nomor tiket VIP). - Gunakan
ArrayDeque
untuk membuat:- Antrian FIFO (tambah di akhir, ambil dari depan).
- Stack (tambah dan ambil dari depan).
Contoh output:

Tugas 5: Comparable dan Comparator
Tujuan: Memahami perbedaan Comparable
dan Comparator
.
- Buat kelas
Buku
dengan atributjudul
dantahunTerbit
. - Implementasikan
Comparable
untuk mengurutkan buku berdasarkan tahun terbit. - Buat
Comparator
untuk mengurutkan berdasarkan judul. - Urutkan list buku menggunakan kedua pendekatan tersebut.
Contoh output:

Tugas 6: Gabungan Collections
Tujuan: Mengintegrasikan beberapa koleksi.
- Buat sistem perpustakaan sederhana:
Map<String, List<Buku>>
untuk menyimpan buku yang dipinjam oleh anggota.- Gunakan
Set
untuk menyimpan kategori buku unik.
- Tambahkan fitur:
- Peminjaman buku (tambah ke list anggota).
- Pengembalian buku (hapus dari list anggota).
- Tampilkan semua kategori buku yang tersedia.
Tugas 7: Streams + Collections
Tujuan: Memanfaatkan Java Streams dengan Collections.
- Dari list transaksi (objek dengan
produk
danharga
):- Filter transaksi dengan harga > 1.000.000.
- Kelompokkan transaksi berdasarkan produk menggunakan
Collectors.groupingBy()
. - Hitung total harga per produk.
Contoh output:

Tugas 8: Mini Project
Tujuan: Mengaplikasikan semua konsep. Buat sistem inventaris toko:
- Gunakan
Map
untuk menyimpan stok barang (kode barang → objekBarang
). - Gunakan
PriorityQueue
untuk mengelola daftar barang yang perlu restok (stok < 5). - Gunakan
Set
untuk menyimpan kategori barang. - Fitur:
- Tambah/update barang.
- Cari barang berdasarkan kategori.
- Tampilkan barang yang perlu restok.
Persyaratan Umum:
- Gunakan generics untuk type safety.
- Manfaatkan method dasar seperti
add()
,remove()
,contains()
,iterator()
, dll. - Handle exception jika diperlukan (misalnya: menghapus elemen yang tidak ada).
Tips:
- Pelajari JavaDoc untuk memahami method yang tersedia di setiap koleksi.
- Bandingkan performa antar koleksi menggunakan
System.nanoTime()
. - Cari studi kasus nyata penggunaan koleksi di proyek open-source.
Jika ada kesulitan, jelajahi dokumentasi resmi Java atau praktikkan contoh kecil sebelum mengerjakan tugas besar. Selamat belajar! 😊