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

Cara Cek Apakah Map Punya Key Tertentu di Go

1 min read .
Cara Cek Apakah Map Punya Key Tertentu di Go

Kalau kamu ngoding pakai Go, map pasti jadi salah satu senjata andalan. Struktur data ini simpel tapi kuat: kita bisa nyimpen pasangan key → value dan aksesnya super cepat.

Salah satu hal yang sering banget dilakukan waktu pakai map adalah ngecek:

“Key ini ada nggak sih di dalam map?”

Go punya cara yang elegan buat itu—nggak ribet, cukup satu trik bawaan bahasa. Yuk kita bahas.

1. Cek Key dengan Idiom Go

Go punya sintaks yang khas buat ngecek key. Waktu kita akses map[key], sebenarnya kita bisa ambil dua nilai sekaligus:

  1. Value yang nyangkut di key itu.
  2. Boolean true/false yang bilang key-nya ada atau nggak.

Contoh:

myMap := map[string]int{
	"apple":  1,
	"banana": 2,
	"cherry": 3,
}

key := "banana"
value, exists := myMap[key]

if exists {
	fmt.Printf("Key '%s' ada dengan value %d\n", key, value)
} else {
	fmt.Printf("Key '%s' nggak ada\n", key)
}

Kalau exists bernilai true, berarti key-nya ketemu. Kalau false, ya artinya nggak ada. Sesederhana itu.

2. Cek Key yang Nggak Ada

Kebalikannya, kalau mau pastiin suatu key nggak ada, kita bisa langsung pakai !exists.

key := "grape"
_, exists := myMap[key]

if !exists {
	fmt.Printf("Key '%s' nggak ada\n", key)
}

Di sini kita buang value-nya (_) karena cuma peduli sama status key.

3. Pakai Tipe Kustom sebagai Key

Map di Go nggak terbatas cuma ke string atau int. Selama tipenya bisa dibandingkan dengan ==, bisa aja dipakai jadi key.

Contoh pakai struct:

type Person struct {
	Name string
	Age  int
}

myMap := map[Person]string{
	{"Alice", 30}: "Engineer",
	{"Bob", 25}:   "Artist",
}

person := Person{Name: "Alice", Age: 30}
value, exists := myMap[person]

if exists {
	fmt.Printf("Person '%v' ada dengan value '%s'\n", person, value)
} else {
	fmt.Printf("Person '%v' nggak ada\n", person)
}

Cara ngeceknya tetap sama aja.

Penutup

Intinya: kalau mau tahu apakah sebuah map punya key tertentu di Go, cukup gunakan pola value, exists := myMap[key]. Itu idiom Go yang paling rapi, efisien, dan udah jadi standar di mana-mana.

Lihat Juga

chevron-up