Maps

Map adalah struktur data yang menyimpan pasangan key-value, mirip seperti kamus dalam kehidupan sehari-hari.

Contoh Masalah

Bagaimana cara menyimpan dan mengakses data yang memiliki hubungan key-value? Misalnya:

  1. Daftar harga barang
  2. Data mahasiswa (NIM - Nama)
  3. Kamus kata

Penyelesaian

package main

import "fmt"

func main() {
    // 1. Membuat map
    // Cara 1: langsung
    harga := map[string]int{
        "apel":     5000,
        "jeruk":    7000,
        "mangga":   10000,
        "pisang":   8000,
    }

    // Cara 2: dengan make
    nilai := make(map[string]int)
    
    // Menambah data ke map
    nilai["matematika"] = 90
    nilai["bahasa"] = 85
    nilai["ipa"] = 88

    // 2. Mengakses dan menampilkan map
    fmt.Println("Daftar Harga Buah:")
    for buah, hargaSatuan := range harga {
        fmt.Printf("%s: Rp %d\n", buah, hargaSatuan)
    }

    // 3. Mengecek keberadaan key
    buah := "apel"
    if hargaBuah, ada := harga[buah]; ada {
        fmt.Printf("\nHarga %s: Rp %d\n", buah, hargaBuah)
    } else {
        fmt.Printf("\n%s tidak tersedia\n", buah)
    }

    // 4. Menghapus item dari map
    delete(harga, "pisang")
    fmt.Println("\nSetelah menghapus pisang:")
    for buah, hargaSatuan := range harga {
        fmt.Printf("%s: Rp %d\n", buah, hargaSatuan)
    }

    // 5. Contoh penggunaan: kamus sederhana
    kamus := map[string]string{
        "go":      "Bahasa pemrograman dari Google",
        "python":  "Bahasa pemrograman yang mudah dipelajari",
        "java":    "Bahasa pemrograman yang populer",
    }

    // Mencari definisi
    kata := "go"
    if definisi, ada := kamus[kata]; ada {
        fmt.Printf("\nDefinisi '%s': %s\n", kata, definisi)
    } else {
        fmt.Printf("\nKata '%s' tidak ditemukan dalam kamus\n", kata)
    }
}

Penjelasan Kode

  1. Membuat Map

    • Langsung: map[KeyType]ValueType{key: value}
    • Dengan make: make(map[KeyType]ValueType)
  2. Operasi Map

    • Menambah/update: map[key] = value
    • Mengakses: value = map[key]
    • Menghapus: delete(map, key)
    • Mengecek: value, exists := map[key]
  3. Karakteristik Map

    • Key harus unik
    • Key harus comparable (bisa dibandingkan)
    • Urutan tidak dijamin

Output

Daftar Harga Buah:
apel: Rp 5000
jeruk: Rp 7000
mangga: Rp 10000
pisang: Rp 8000

Harga apel: Rp 5000

Setelah menghapus pisang:
apel: Rp 5000
jeruk: Rp 7000
mangga: Rp 10000

Definisi 'go': Bahasa pemrograman dari Google

Tips

  • Gunakan map untuk data yang perlu diakses dengan key
  • Key harus unik dan immutable
  • Map adalah reference type (berbagi memori)
  • Gunakan make untuk membuat map kosong
  • Selalu cek keberadaan key sebelum mengakses value