unisbadri.com » Python Java Golang Typescript Kotlin Ruby Rust Dart PHP
Map

Map #

Map adalah salah satu struktur data koleksi di Dart yang memungkinkan penyimpanan pasangan kunci-nilai (key-value pairs). Setiap elemen di dalam Map terdiri dari kunci (key) yang unik dan nilai (value) yang terkait dengan kunci tersebut. Map sangat berguna ketika Anda perlu mengasosiasikan satu nilai dengan kunci tertentu, seperti kamus atau database sederhana.

Pengertian Map #

Map dalam Dart adalah koleksi pasangan kunci-nilai di mana setiap kunci harus unik. Ini berarti bahwa Anda tidak dapat memiliki dua elemen dengan kunci yang sama, meskipun nilai yang terkait dengan kunci tersebut bisa sama. Dart menyediakan beberapa cara untuk membuat dan memanipulasi Map.

Contoh Sederhana:

void main() {
  Map<String, int> skor = {
    'Alice': 90,
    'Bob': 85,
    'Charlie': 95
  };
  
  print(skor['Alice']); // Output: 90
}

Pada contoh di atas, skor adalah Map yang mengasosiasikan nama-nama (kunci) dengan skor (nilai).

Membuat Map #

Ada beberapa cara untuk membuat Map dalam Dart:

Menggunakan Literal Map #

Cara paling umum untuk membuat Map adalah dengan menggunakan literal Map, yang didefinisikan dengan tanda kurung kurawal {} diikuti dengan pasangan kunci-nilai yang dipisahkan oleh tanda titik dua :.

Contoh:

void main() {
  Map<String, String> negaraIbukota = {
    'Indonesia': 'Jakarta',
    'Malaysia': 'Kuala Lumpur',
    'Thailand': 'Bangkok'
  };
  
  print(negaraIbukota['Indonesia']); // Output: Jakarta
}

Menggunakan Konstruktor Map #

Anda juga bisa membuat Map menggunakan konstruktor dari kelas Map. Ini berguna ketika Anda ingin membuat Map kosong terlebih dahulu dan kemudian menambah elemen-elemen secara bertahap.

Contoh:

void main() {
  Map<int, String> kodePos = Map();

  kodePos[12345] = 'Jakarta';
  kodePos[67890] = 'Bandung';

  print(kodePos); // Output: {12345: Jakarta, 67890: Bandung}
}

Menggunakan Map.from #

Dart menyediakan beberapa konstruktor untuk membuat Map dari sumber lain, seperti Map.from untuk membuat salinan Map lain.

Contoh:

void main() {
  Map<String, int> skor1 = {'Alice': 90, 'Bob': 85};
  Map<String, int> skor2 = Map.from(skor1);

  print(skor2); // Output: {Alice: 90, Bob: 85}
}

Menggunakan Map.of #

Map.of mirip dengan Map.from, tetapi lebih fleksibel dan bisa digunakan untuk membuat Map dari koleksi pasangan kunci-nilai lainnya.

Contoh:

void main() {
  var skor = {'Alice': 90, 'Bob': 85};
  Map<String, int> salinanSkor = Map.of(skor);

  print(salinanSkor); // Output: {Alice: 90, Bob: 85}
}

Akses dan Manipulasi Elemen dalam Map #

Akses Elemen #

Anda bisa mengakses nilai di dalam Map menggunakan kunci sebagai indeks. Jika kunci tidak ada, hasilnya akan null.

Contoh:

void main() {
  Map<String, int> skor = {'Alice': 90, 'Bob': 85};
  
  print(skor['Alice']); // Output: 90
  print(skor['Charlie']); // Output: null (kunci tidak ada)
}

Menambah atau Mengubah Elemen #

Anda bisa menambah atau mengubah elemen dalam Map dengan menetapkan nilai baru ke kunci yang ada atau kunci baru.

Contoh:

void main() {
  Map<String, int> skor = {'Alice': 90, 'Bob': 85};
  
  skor['Charlie'] = 95; // Menambah elemen baru
  skor['Alice'] = 92; // Mengubah nilai untuk kunci yang ada

  print(skor); // Output: {Alice: 92, Bob: 85, Charlie: 95}
}

Menghapus Elemen #

Anda bisa menghapus elemen dari Map menggunakan metode remove().

Contoh:

void main() {
  Map<String, int> skor = {'Alice': 90, 'Bob': 85};
  
  skor.remove('Alice');
  
  print(skor); // Output: {Bob: 85}
}

Memeriksa Kunci atau Nilai #

Dart menyediakan metode seperti containsKey() dan containsValue() untuk memeriksa apakah kunci atau nilai tertentu ada dalam Map.

Contoh:

void main() {
  Map<String, int> skor = {'Alice': 90, 'Bob': 85};

  print(skor.containsKey('Alice')); // Output: true
  print(skor.containsValue(85)); // Output: true
}

Iterasi pada Map #

Anda dapat mengiterasi elemen-elemen dalam Map menggunakan beberapa cara:

Iterasi Kunci #

Menggunakan for-in loop untuk mengiterasi kunci-kunci dalam Map.

Contoh:

void main() {
  Map<String, int> skor = {'Alice': 90, 'Bob': 85};

  for (var kunci in skor.keys) {
    print('$kunci: ${skor[kunci]}');
  }
}

Iterasi Nilai #

Menggunakan for-in loop untuk mengiterasi nilai-nilai dalam Map.

Contoh:

void main() {
  Map<String, int> skor = {'Alice': 90, 'Bob': 85};

  for (var nilai in skor.values) {
    print(nilai);
  }
}

Iterasi Pasangan Kunci-Nilai #

Menggunakan forEach() untuk mengiterasi setiap pasangan kunci-nilai.

Contoh:

void main() {
  Map<String, int> skor = {'Alice': 90, 'Bob': 85};

  skor.forEach((kunci, nilai) {
    print('$kunci: $nilai');
  });
}

Metode dan Properti Umum pada Map #

Dart menyediakan berbagai metode dan properti yang bisa digunakan untuk memanipulasi dan mengelola Map.

  • length: Mendapatkan jumlah elemen dalam Map.
  • isEmpty: Mengecek apakah Map kosong.
  • isNotEmpty: Mengecek apakah Map tidak kosong.
  • keys: Mendapatkan iterable dari semua kunci dalam Map.
  • values: Mendapatkan iterable dari semua nilai dalam Map.
  • clear(): Menghapus semua elemen dari Map.
  • putIfAbsent(key, () => value): Menambah nilai hanya jika kunci tidak ada.
  • update(key, (value) => newValue): Mengupdate nilai yang ada dengan nilai baru berdasarkan fungsi.

Contoh Penggunaan:

void main() {
  Map<String, int> skor = {'Alice': 90, 'Bob': 85};

  print(skor.length); // Output: 2
  print(skor.isEmpty); // Output: false
  print(skor.keys); // Output: (Alice, Bob)
  print(skor.values); // Output: (90, 85)

  skor.update('Alice', (nilai) => nilai + 10);
  print(skor['Alice']); // Output: 100

  skor.putIfAbsent('Charlie', () => 95);
  print(skor); // Output: {Alice: 100, Bob: 85, Charlie: 95}

  skor.clear();
  print(skor.isEmpty); // Output: true
}

Menggabungkan Map #

Anda dapat menggabungkan dua atau lebih Map menggunakan operator addAll() atau menggunakan spread operator ....

Contoh Menggunakan addAll():

void main() {
  Map<String, int> map1 = {'Alice': 90};
  Map<String, int> map2 = {'Bob': 85};

  map1.addAll(map2);
  print(map1); // Output: {Alice: 90, Bob: 85}
}

Contoh Menggunakan Spread Operator:

void main() {
  Map<String, int> map1 = {'Alice': 90};
  Map<String, int> map2 = {'Bob': 85};

  Map<String, int> combinedMap = {...map1, ...map2

};
  print(combinedMap); // Output: {Alice: 90, Bob: 85}
}

Kesimpulan #

Map dalam Dart adalah struktur data yang sangat kuat untuk menyimpan dan mengelola pasangan kunci-nilai. Dengan berbagai metode dan properti yang tersedia, Anda dapat dengan mudah membuat, mengakses, memodifikasi, dan mengiterasi elemen-elemen dalam Map. Kemampuan untuk mengasosiasikan kunci dengan nilai tertentu menjadikan Map ideal untuk banyak aplikasi, seperti penyimpanan data yang memerlukan pencarian cepat, penyusunan data berpasangan, dan pengelolaan konfigurasi. Memahami cara kerja Map dalam Dart akan membantu Anda menulis kode yang lebih efisien dan fleksibel dalam menangani data.

« List
Date & Time »