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:
- Daftar harga barang
- Data mahasiswa (NIM - Nama)
- 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
Membuat Map
- Langsung:
map[KeyType]ValueType{key: value} - Dengan make:
make(map[KeyType]ValueType)
- Langsung:
Operasi Map
- Menambah/update:
map[key] = value - Mengakses:
value = map[key] - Menghapus:
delete(map, key) - Mengecek:
value, exists := map[key]
- Menambah/update:
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