Introduction To Java Collections
Introduction To Java Collections
Dalam latihan ini anda akan mengenal dan mempelajari beberapa kelas pada
framework Java Collection, yaitu suatu kumpulan kelas yang mengandung struktur
data dan fungsionalitas yang terkait dengan struktur data tersebut. Kelas-kelas
tersebut berada pada package java.util.
1. Interface
Sebelumnya, ada suatu hal yang perlu anda ketahui, yaitu konsep interface. Istilah
interface ini akan anda jumpai pada dokumentasi Java terkait Java Collection. Secara
kasar, anda dapat membayangkan interface sebagai semacam kelas. Namun, anda
tidak dapat membuat objek baru bertipe suatu interface. Guna dari interface ini adalah
untuk mendefinisikan method-method apa saja yang dimiliki suatu kelompok kelas
yang menjadi ‘turunan’ dari interface tersebut. Misalnya, anda ingin mendefinisikan
bahwa semua jenis Hewan itu bisa berjalan. Perbedaan antara berjalannya satu jenis
Hewan dengan jenis Hewan yang lain adalah pada kecepatannya. Untuk mencapai
hal tersebut, anda bisa membuat interface bernama Hewan yang memiliki method
berjalan dengan argumen berapa jam Hewan telah berjalan. Method tersebut akan
memberikan nilai kembalian berupa jarak tempuh Hewan.
interface Hewan {
Perhatikan, pada definisi interface Hewan di atas, method berjalan tidak memiliki
body: tidak diawali dan ditutup dengan { }, serta tidak memiliki statement apapun,
melainkan langsung diikuti dengan titik koma.
Untuk memastikan bahwa semua hewan bisa berjalan, anda membuat suatu kelas
konkrit (bisa diinstantiasi, misalnya dengan menggunakan keyword new) dari
hewan, misalnya Kuda, dengan mengimplementasikan interface Hewan tersebut.
Untuk membuat suatu kelas yang merupakan implementasi dari interface, anda
menggunakan kata kunci implements, diikuti dengan nama interface yang
diimplementasikan.
class Kuda implements Hewan {
Mari kita coba menjalankan method berjalan pada kelas Kuda dan Siput sebagai
berikut.
class HewanTest {
Pertanyaan 1:
Hierarki dari interface dan kelas yang tergabung dalam Java Collection digambarkan pada
Bagan 1 berikut ini.
Java 7 memperkenalkan metode-metode baru untuk I/O, diantaranya untuk membaca file.
Here’s a script you can use to read the contents of a file, Java 7 – style.
import java.io.BufferedReader;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
class ReadFile {
try (BufferedReader br =
Files.newBufferedReader(text, StandardCharsets.UTF_8)) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
Script di atas akan membaca, baris per baris, isi dari file "E:\\temp\\Belajar
Pemrograman.txt", dan menyimpannya pada String line. Pada script di atas,
"E:\\temp\\Belajar Pemrograman.txt" dapat anda ganti dengan path menuju file
apapun yang anda ingin baca. Bagian System.out.println(line); dapat anda isi
dengan serangkaian perintah yang anda inginkan. Sintaks try di atas disebut metode
try-with-resource. Dengan sintaks tersebut, koneksi dari Java ke file akan tertutup
secara otomatis setelah file selesai dibaca, sehingga anda tidak perlu menutup secara
manual.
4. Set dan List
Karakteristik utama dari kelas-kelas yang merupakan implementasi dari interface Set adalah
data yang tersimpan pada instans dari objek tersebut tidak dapat sama; dengan kata lain,
seluruh isinya bersifat unik. Pada kelas-kelas yang merupakan implementasi dari interface
List, data yang tersimpan boleh sama satu sama lain, karena pengaksesannya dilakukan
seperti pada array, yaitu dengan indeks dari data.
Pada eksperimen ini, kita akan membaca isi dari file tersebut, memotong tiap baris dari isi file
menjadi kata-kata, dan memasukkan kata-kata tersebut ke dalam implementasi dari Set dan
List, yaitu, HashSet, TreeSet, dan HashList. Setelah itu, kita akan mengamati isi dari masing-
masing kelas yang dipergunakan untuk menyimpan kata-kata dalam file.
class ReadFile {
System.out.println();
}
System.out.println();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
Pertanyaan 2:
a. Jelaskan dengan singkat dan sederhana dari sumber yang anda dapatkan di Internet
mengenai:
• HashSet
• TreeSet
• ArrayList
b. Jelaskan keluaran yang anda amati dari script di atas. Apa arti true dan false pada
keluaran? Apa beda dari isi pada HashSet, TreeSet, dan ArrayList?
5. Map
Map adalah interface pada Java Collection yang menyimpan nilai-nilai berupa pasangan
<Key, Value>.
Anda dapat menyimpan data tersebut ke dalam suatu implementasi dari Map, misalnya
HashMap dan TreeMap. Dengan demikian, anda dapat menyimpan nama-nama tersebut
sebagai kunci, dan usia dari nama tersebut sebagai value. Anda kemudian dapat mengakses
nilai usia berdasarkan namanya, misalkan aMap.get(“Haikal”) akan mengembalikan nilai 2.
Berikut ini adalah contoh script penyimpanan data dengan menggunakan kelas HashMap.
import java.util.HashMap;
import java.util.Map;
class MapExample {
myHashMap.put("Fathy", 9);
myHashMap.put("Reyna", 4);
myHashMap.put("Haikal", 3);
myHashMap.put("Auf", 2);
myHashMap.put("Nayya", 2);
a. Amati keluaran dari kelas di atas. Lalu, ganti “HashMap” dengan “TreeMap”.
Jalankan kembali program, dan amati keluarannya. Adakah perbedaan antara
keluaran yang dihasilkan?
b. Jelaskan dengan singkat dan sederhana dari sumber yang anda dapatkan di Internet
mengenai HashMap dan TreeMap.
Tugas:
Jawablah pertanyan-pertanyaan 1, 2, dan 3 di atas, dan tuliskanlah jawaban tersebut pada
sebuah laporan singkat.
Tugas ini bersifat dalam kelompok, masing-masing MAKSIMAL 3 orang, dan dikumpulkan
minggu depan.