Apps Artificial Intelligence CSS DevOps Go JavaScript Laravel Linux MongoDB MySQL PHP Python Rust Vue

Map di Go: Panduan Praktis dengan Contoh

1 min read .
Map di Go: Panduan Praktis dengan Contoh

map di Go itu lifesaver buat nyimpen data yang bisa diakses pakai kunci. Gini deh, ini kayak kamus (dictionary) atau hash di bahasa lain, tapi idiomatik di Go dan cepat banget buat akses data.

Membuat Map

Menggunakan make:

personAge := make(map[string]int)
personAge["Alice"] = 30
personAge["Bob"] = 25
fmt.Println(personAge) // map[Alice:30 Bob:25]

Menggunakan literal map:

personAge := map[string]int{"Alice": 30, "Bob": 25}
fmt.Println(personAge)

Mengakses dan Mengubah Elemen

fmt.Println(personAge["Alice"]) // 30

// Ubah
personAge["Alice"] = 31
// Hapus
delete(personAge, "Bob")

Memeriksa Key

age, exists := personAge["Bob"]
if exists {
    fmt.Println(age)
} else {
    fmt.Println("Bob not found") // Output: Bob not found
}

Iterasi Map

for name, age := range personAge {
    fmt.Printf("%s is %d years old\n", name, age)
}

Map di Fungsi

Map itu tipe referensi, jadi modifikasi di fungsi akan memengaruhi map asli.

func updateAge(m map[string]int, name string, newAge int) {
    m[name] = newAge
}

updateAge(personAge, "Alice", 32)
fmt.Println(personAge["Alice"]) // 32

Map dengan Struct

Bisa simpan tipe kompleks seperti struct.

type Person struct {
    Age     int
    Address string
}

people := map[string]Person{
    "Alice": {Age: 30, Address: "123 Main St"},
    "Bob":   {Age: 25, Address: "456 Elm St"},
}

fmt.Println(people["Alice"]) // {30 123 Main St}

Refleksi Singkat

Pada akhirnya, menguasai map bikin kita lebih efisien saat akses data. Biar pun sederhana, fleksibilitasnya tinggi dan cocok buat berbagai skenario.

Lihat Juga

chevron-up