Java - Antarmuka Map

Selamat datang, para pengembang Java masa depan! Hari ini, kita akan mempelajari salah satu komponen paling multifungsi dan kuat dalam kerangka Collections Java: antarmuka Map. Sebagai guru ilmu komputer yang ramah di lingkungan sekitar Anda, saya sangat gembira untuk memandu Anda dalam perjalanan ini. Jadi, ambil minuman favorit Anda, betahlah, dan mari kita mulai petualangan ini bersama!

Java - Map Interface

Apa Itu Map?

Bayangkan Anda sedang mengatur sebuah perpustakaan besar. Anda ingin menemukan buku dengan cepat tanpa perlu mencari setiap rak. Itu di mana Map berguna dalam dunia pemrograman. Sebuah Map adalah seperti seorang petugas perpustakaan yang bisa secara instan menemukan buku apa pun yang Anda minta.

Dalam Java, sebuah Map adalah objek yang menyimpan pasangan key-value. Setiap key terkait dengan nilai tertentu, sama seperti judul buku (key) terkait dengan lokasinya di perpustakaan (value).

Karakteristik Utama Map

  1. Setiap key harus unik
  2. Setiap key hanya bisa dipetakan ke nilai paling banyak satu
  3. Sangat cocok untuk pencarian cepat dan pengambilan data

Metode Antarmuka Map

Bergambar beberapa metode yang biasanya digunakan dalam antarmuka Map:

Metode Deskripsi
put(K key, V value) Menambahkan pasangan key-value ke map
get(Object key) Mengembalikan nilai yang terkait dengan key yang ditentukan
remove(Object key) Menghapus pasangan key-value yang terkait dengan key yang ditentukan
clear() Menghapus semua pasangan key-value dari map
size() Mengembalikan jumlah pasangan key-value dalam map
isEmpty() Mengembalikan true jika map tidak mengandung pasangan key-value
containsKey(Object key) Mengembalikan true jika map mengandung key yang ditentukan
containsValue(Object value) Mengembalikan true jika map mengandung nilai yang ditentukan
keySet() Mengembalikan Set dari semua key dalam map
values() Mengembalikan Collection dari semua nilai dalam map
entrySet() Mengembalikan Set dari semua pasangan key-value dalam map

Kelas yang Implementasi Map

Java menyediakan beberapa kelas yang implementasi antarmuka Map. Mari kita lihat tiga yang paling umum digunakan:

1. HashMap

HashMap seperti seorang petugas perpustakaan yang cepat menemukan buku apa pun tetapi tidak peduli tentang urutan buku.

Map<String, Integer> ages = new HashMap<>();
ages.put("Alice", 25);
ages.put("Bob", 30);
ages.put("Charlie", 35);

System.out.println(ages.get("Bob")); // Output: 30

Dalam contoh ini, kita menciptakan HashMap untuk menyimpan umur orang. Key adalah nama orang (String), dan nilai adalah umurnya (Integer).

2. TreeMap

TreeMap seperti seorang petugas perpustakaan yang menyusun semua buku secara alfabetis menurut judulnya.

Map<String, String> capitals = new TreeMap<>();
capitals.put("USA", "Washington D.C.");
capitals.put("France", "Paris");
capitals.put("Japan", "Tokyo");

for (String country : capitals.keySet()) {
System.out.println(country + ": " + capitals.get(country));
}

Kode ini akan mencetak negara dan ibu kotanya dalam urutan alfabetis nama negara:

France: Paris
Japan: Tokyo
USA: Washington D.C.

3. LinkedHashMap

LinkedHashMap seperti seorang petugas perpustakaan yang mengingat urutan penambahan buku ke perpustakaan.

Map<String, Double> prices = new LinkedHashMap<>();
prices.put("Apple", 0.99);
prices.put("Banana", 0.59);
prices.put("Cherry", 3.99);

for (Map.Entry<String, Double> entry : prices.entrySet()) {
System.out.println(entry.getKey() + ": $" + entry.getValue());
}

Ini akan mencetak buah dan harga mereka dalam urutan penambahan:

Apple: $0.99
Banana: $0.59
Cherry: $3.99

Antarmuka yang Mengembangkan Map

Antarmuka Map memiliki dua sub-antarmuka utama:

  1. SortedMap
  2. NavigableMap

Antarmuka ini menambahkan fungsi ekstra untuk bekerja dengan map yang diurutkan. TreeMap mengimplementasikan kedua antarmuka ini.

Contoh Antarmuka Map

Bergambar beberapa contoh praktis untuk mengukuhkan pemahaman kita:

Contoh 1: Penyusun Nilai Siswa

Bayangkan kita membuat sistem untuk melacak nilai siswa:

Map<String, Integer> studentGrades = new HashMap<>();

// Menambahkan nilai siswa
studentGrades.put("Alice", 95);
studentGrades.put("Bob", 80);
studentGrades.put("Charlie", 85);

// Memperbarui nilai
studentGrades.put("Bob", 82);

// Mengambil nilai
System.out.println("Nilai Alice: " + studentGrades.get("Alice"));

// Memeriksa jika siswa ada
if (studentGrades.containsKey("David")) {
System.out.println("Nilai David: " + studentGrades.get("David"));
} else {
System.out.println("David tidak ada dalam sistem.");
}

// Mencetak semua nilai siswa
for (Map.Entry<String, Integer> entry : studentGrades.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}

Contoh ini menunjukkan menambahkan, memperbarui, mengambil, dan mengiterasi entri dalam Map.

Contoh 2: Peny Hitung Frekuensi Kata

Buatlah program yang menghitung frekuensi kata dalam kalimat:

String sentence = "the quick brown fox jumps over the lazy dog";
String[] words = sentence.split(" ");

Map<String, Integer> wordFrequency = new HashMap<>();

for (String word : words) {
if (wordFrequency.containsKey(word)) {
wordFrequency.put(word, wordFrequency.get(word) + 1);
} else {
wordFrequency.put(word, 1);
}
}

for (Map.Entry<String, Integer> entry : wordFrequency.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}

Program ini memecah kalimat menjadi kata-kata, kemudian menghitung berapa kali setiap kata muncul, menyimpan hasilnya dalam Map.

Kesimpulan

Selamat! Anda baru saja mengambil langkah pertama ke dunia antarmuka Map Java. Kita telah melihat dasar-dasar, mengeksplorasi implementasi yang berbeda, dan bahkan menangani beberapa contoh praktis. Ingat, seperti seorang petugas perpustakaan yang bagus, Map membantu Anda mengatur dan mengambil informasi secara efisien.

Sekarang Anda teruskan perjalanan Java Anda, Anda akan menemukan Maps muncul di mana-mana, dari program sederhana hingga aplikasi kompleks. Mereka adalah alat penting dalam setiap pengembang Java.

Teruslatih, tetap curiga, dan sebelum Anda sadar, Anda akan dapat memetakan solusi ke masalah kompleks dengan mudah. Selamat coding, para master Java masa depan!

Credits: Image by storyset