Fundamental Golang #13: Tipe Data Map
Tipe data Array dan Slice yang sudah kita pelajari sebelumnya merupakan dua jenis tipe data dalam Golang yang setiap elemennya dapat diakses menggunakan indeks berupa angka. Namun, ada tipe data lain yang disebut Map, yang memberikan kita lebih banyak fleksibilitas dalam bermain dengan data.
Map adalah struktur data yang berisi key-value atau kata kunci-nilai, dimana setiap kata kunci bersifat unik dan berfungsi untuk mengindeks atau menunjuk kepada nilai yang bersangkutan. Dengan struktur ini, kita bisa mengakses, menyimpan, atau mengubah nilai berdasarkan kata kuncinya, tidak seperti array atau list yang menggunakan indeks berdasarkan urutan. Salah satu keunggulan map adalah kita bisa menambahkan sebanyak mungkin data (key - value) ke dalamnya
package main
import "fmt"
func main() {
var person map[string]string = map[string]string{
"name": "Hajid",
"address": "Depok",
} // membuat variabel person bertipe data map
person["title"] = "programer" // menambahkan data title pada variabel person
fmt.Println(person["name"]) // Output : "Hajid"
fmt.Println(person["address"]) // Output : "Depok"
fmt.Println(person["title"]) // Output : Programer
}
Function Map
kita dapat membuat atau manipulasi kumpulan data bertipe map dengan berbagai fungsi pada map.
| Operasi | Keterangan |
|---|---|
| len(map) | Untuk mendapatkan jumlah data di map |
| map[key] | Mengambil data di map dengan key |
| map[key] = value | Mengubah data di map dengan key |
| make(map[TypeKey]TypeValue) | Membuat map baru |
| delete(map, key) | Menghapus data di map dengan key |
Berikut contoh penerapan fungsi pada map
package main
import "fmt"
func main() {
var book = make(map[string]string)
book["title"] = "Belajar Golang"
book["author"] = "Hajid Al Akhtar"
book["ups"] = "Salah"
fmt.Println(book) // Output : map[author:Hajid Al Akhtar title:Belajar Golang ups:Salah]
fmt.Println(len(book)) // Output : 3
delete(book, "ups") // menghapus data dengan key "ups"
fmt.Println(book) // Output : map[author:Hajid Al Akhtar title:Belajar Golang]
fmt.Println(len(book)) // Output : 2
}