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 size untuk 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 nilai
  • get(key) → Mengambil nilai berdasarkan kunci
  • has(key) → Memeriksa keberadaan kunci
  • delete(key) → Menghapus pasangan berdasarkan kunci
  • clear() → 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

MapObject
Kunci dapat berupa tipe apa punKunci hanya berupa string atau simbol
Memiliki properti sizeTidak memiliki properti bawaan untuk jumlah elemen
Lebih optimal untuk manipulasi data dinamisUmumnya 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 nilai
  • has(value) → Memeriksa keberadaan nilai
  • delete(value) → Menghapus nilai
  • clear() → 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.