Map dan Set pada JavaScript
Dalam JavaScript modern (ES6 dan seterusnya), terdapat dua struktur data tambahan yang sangat berguna, yaitu Map dan Set. Keduanya dirancang untuk mengatasi keterbatasan objek (Object) dan array dalam kasus penggunaan tertentu. Dengan memahami Map dan Set, pengembang dapat mengelola data secara lebih efisien, terstruktur, dan fleksibel.
Artikel ini membahas pengertian, karakteristik, serta contoh penggunaan Map dan Set dalam JavaScript.
1. Map pada JavaScript
Pengertian
Map adalah struktur data yang menyimpan pasangan kunci (key) dan nilai (value). Berbeda dengan objek biasa, Map memungkinkan penggunaan tipe data apa pun sebagai kunci, termasuk objek, fungsi, maupun nilai primitif.
Karakteristik Map
- Menyimpan pasangan kunci dan nilai.
- Kunci dapat berupa tipe data apa pun.
- Mempertahankan urutan elemen sesuai urutan penyisipan.
- Memiliki properti
sizeuntuk mengetahui jumlah elemen.
A. Membuat Map
const map = new Map();
Map juga dapat diinisialisasi dengan nilai awal:
const map = new Map([
["nama", "Andi"],
["umur", 25]
]);
B. Menambahkan dan Mengambil Nilai
map.set("kota", "Jakarta");
console.log(map.get("nama")); // "Andi"
console.log(map.size); // 3
Metode penting pada Map:
set(key, value)→ Menambahkan atau memperbarui nilaiget(key)→ Mengambil nilai berdasarkan kuncihas(key)→ Memeriksa keberadaan kuncidelete(key)→ Menghapus pasangan berdasarkan kunciclear()→ Menghapus seluruh data
C. Iterasi Map
for (let [kunci, nilai] of map) {
console.log(kunci, nilai);
}
Map dapat diiterasi menggunakan for...of karena bersifat iterable.
D. Perbedaan Map dan Object
| Map | Object |
|---|---|
| Kunci dapat berupa tipe apa pun | Kunci hanya berupa string atau simbol |
Memiliki properti size | Tidak memiliki properti bawaan untuk jumlah elemen |
| Lebih optimal untuk manipulasi data dinamis | Umumnya digunakan untuk struktur data statis |
2. Set pada JavaScript
Pengertian
Set adalah struktur data yang digunakan untuk menyimpan kumpulan nilai unik. Artinya, tidak ada nilai yang dapat muncul lebih dari satu kali di dalam Set.
Karakteristik Set
- Hanya menyimpan nilai (tanpa pasangan kunci).
- Tidak mengizinkan duplikasi.
- Mempertahankan urutan penyisipan.
- Memiliki properti
size.
A. Membuat Set
const set = new Set();
Atau dengan nilai awal:
const set = new Set([1, 2, 3, 3, 4]);
console.log(set); // {1, 2, 3, 4}
Nilai duplikat secara otomatis diabaikan.
B. Menambahkan dan Menghapus Nilai
set.add(5);
set.delete(2);
console.log(set.has(3)); // true
console.log(set.size); // jumlah elemen
Metode penting pada Set:
add(value)→ Menambahkan nilaihas(value)→ Memeriksa keberadaan nilaidelete(value)→ Menghapus nilaiclear()→ Menghapus seluruh isi Set
C. Iterasi Set
for (let nilai of set) {
console.log(nilai);
}
Set juga mendukung metode forEach().
D. Menghilangkan Duplikasi Array Menggunakan Set
Salah satu penggunaan umum Set adalah menghapus nilai duplikat dalam array:
const angka = [1, 2, 2, 3, 4, 4];
const unik = [...new Set(angka)];
console.log(unik); // [1, 2, 3, 4]
Teknik ini memanfaatkan kombinasi Set dan spread operator.
3. Kapan Menggunakan Map dan Set?
Gunakan Map ketika:
- Membutuhkan pasangan kunci dan nilai.
- Kunci tidak hanya berupa string.
- Membutuhkan performa yang konsisten untuk penambahan dan penghapusan data.
Gunakan Set ketika:
- Membutuhkan kumpulan nilai unik.
- Ingin menghindari duplikasi data.
- Memerlukan struktur data sederhana tanpa pasangan kunci.
4. Kesimpulan
Map dan Set merupakan struktur data modern dalam JavaScript yang memberikan fleksibilitas lebih dibandingkan objek dan array biasa. Map memungkinkan penyimpanan pasangan kunci dan nilai dengan tipe kunci yang beragam, sedangkan Set memastikan setiap nilai yang disimpan bersifat unik.
Dengan memahami penggunaan Map dan Set, pengembang dapat memilih struktur data yang paling sesuai untuk kebutuhan aplikasi, sehingga kode menjadi lebih efisien, terstruktur, dan mudah dipelihara.