Setelah kamu menguasai slice untuk data fleksibel, sekarang waktunya belajar map—struktur data yang memungkinkan kamu menyimpan data berpasangan (key-value). Map sangat berguna untuk aplikasi yang butuh pencarian data cepat, seperti daftar nilai siswa, inventory barang, atau data user.
Apa Itu Map?
Map adalah struktur data di Golang yang menyimpan data dalam format pasangan key dan value. Analoginya kayak kamus: kamu cari arti kata (key), dapat penjelasan (value).
Deklarasi dan Inisialisasi Map
Deklarasi Map
var nilai map[string]int
Inisialisasi Map
nilai := map[string]int{"Budi": 80, "Sari": 90, "Andi": 75}
Menambah dan Mengubah Data Map
nilai := map[string]int{}
nilai["Rina"] = 85
nilai["Budi"] = 90 // update
fmt.Println(nilai) // Output: map[Budi:90 Rina:85]
Mengakses Data Map
nilai := map[string]int{"Budi": 80, "Sari": 90}
fmt.Println(nilai["Sari"]) // Output: 90
Mengecek Key di Map
Gunakan teknik two-value assignment untuk cek apakah key ada di map.
nilai := map[string]int{"Budi": 80}
v, ok := nilai["Budi"]
if ok {
fmt.Println("Nilai Budi:", v)
} else {
fmt.Println("Budi tidak ditemukan")
}
Output:
Nilai Budi: 80
Menghapus Data dari Map
Gunakan fungsi delete
untuk menghapus data dari map.
nilai := map[string]int{"Budi": 80, "Sari": 90}
delete(nilai, "Budi")
fmt.Println(nilai) // Output: map[Sari:90]
Iterasi Map dengan For Range
nilai := map[string]int{"Budi": 80, "Sari": 90, "Andi": 75}
for nama, skor := range nilai {
fmt.Printf("%s: %d\n", nama, skor)
}
Output:
Budi: 80
Sari: 90
Andi: 75
Map Multidimensi
Map bisa bersarang, misal untuk data siswa dan nilai per mata pelajaran.
siswa := map[string]map[string]int{
"Budi": {"Matematika": 80, "Fisika": 85},
"Sari": {"Matematika": 90, "Fisika": 88},
}
for nama, pelajaran := range siswa {
fmt.Printf("%s:\n", nama)
for mapel, nilai := range pelajaran {
fmt.Printf(" %s: %d\n", mapel, nilai)
}
}
Output:
Budi:
Matematika: 80
Fisika: 85
Sari:
Matematika: 90
Fisika: 88
Latihan: Daftar Nilai Siswa
Buat program yang menambah, mengakses, dan menghapus data nilai siswa.
package main
import "fmt"
func main() {
nilai := map[string]int{}
nilai["Budi"] = 80
nilai["Sari"] = 90
fmt.Println("Nilai awal:", nilai)
fmt.Println("Nilai Sari:", nilai["Sari"])
delete(nilai, "Budi")
fmt.Println("Setelah hapus Budi:", nilai)
for nama, skor := range nilai {
fmt.Printf("%s: %d\n", nama, skor)
}
}
Output:
Nilai awal: map[Budi:80 Sari:90]
Nilai Sari: 90
Setelah hapus Budi: map[Sari:90]
Sari: 90
Ringkasan
Map adalah struktur data yang sangat berguna untuk menyimpan data berpasangan (key-value) di Golang. Dengan map, kamu bisa melakukan pencarian data dengan cepat dan efisien.
- Deklarasi dan inisialisasi map
- Menambah, mengubah, dan menghapus data
- Akses dan pengecekan key
- Iterasi dan map multidimensi
Di bab berikutnya, kita akan belajar tentang function—cara membuat blok kode reusable yang bikin program kamu lebih modular dan terstruktur!