Tipe Data Map
Map adalah tipe data key-value pairs (pasangan kunci - nilai). Map digunakan karena memberikan cara yang cepat untuk mengambil nilai berdasarkan key. Oleh karena itu key pada tipe data map harus unik.
Tidak seperti array dan slice, kita bisa memasukkan data ke dalam map sebanyak-banyaknya asalkan memiliki kata kunci yang berbeda. Apabila kita tidak sengaja menggunakan kata kunci yang sama, maka data sebelumnya akan diganti dengan data yang baru.
Membuat Map
Untuk membuat map, kita bisa menggunakan kata kunci map
. Perhatikan potongan kode berikut ini.
package main
import "fmt"
func main() {
website := map[string]string{
"name": "Ruang Developer",
"domain": "www.ruangdeveloper.com",
}
fmt.Println(website)
}
output:
map[domain:www.ruangdeveloper.com name:Ruang Developer]
String yang ada dalam square brackets (kurung kotak) merupakan tipe data key pada map. Oleh karena itu, kita menggunakan string "name"
dan "domain"
sebagai kata kuncinya.
Kemudian string berikutnya merupakan tipe data untuk value pada map. Oleh karena itu, kita harus mengisinya dengan string juga.
Mengakses Data Pada Map
Untuk mengakses data pada map caranya hampir sama seperti pada array dan slice. Bedanya kita dapat menggunakan key sebagai referensinya. Perhatikan potongan kode berikut ini.
package main
import "fmt"
func main() {
website := map[string]string{
"name": "Ruang Developer",
"domain": "www.ruangdeveloper.com",
}
fmt.Println(website["name"])
fmt.Println(website["domain"])
}
output:
Ruang Developer
www.ruangdeveloper.com
Menambah Dan Merubah Data pada Map
Untuk menambah atau merubah data pada map caranya adalah sama, kita bisa menentukan key yang ingin di tambahkan atau dirubah, kemudian diberi nilai menggunakan operator assignment (=). Apabila key yang kita masukkan belum ada dalam map maka otomatis akan menambahkan data baru. Sedangkan, apabila key yang kita masukkan sudah ada, maka secara otomatis akan merubah data yang sudah ada sebelumnya.
package main
import "fmt"
func main() {
website := map[string]string{
"name": "Ruang Developer",
"domain": "www.ruangdeveloper.com"
}
// Menambahkan data tagline
website["tagline"] = "Ruang belajar kita semua"
// Merubah data domain
website["domain"] = "domain.ruangdeveloper.com"
fmt.Println(website["tagline"])
fmt.Println(website["domain"])
}
output:
Ruang belajar kita semua
domain.ruangdeveloper.com
Fungsi Pada Tipe Data Map
Seperti tipe data lainnya, map juga memiliki beberapa fungsi yang dapat kita gunakan untuk memanipulasi data map. Berikut ini adalah beberapa fungsi yang dapat kita gunakan pada map.
Fungsi | Keterangan |
---|---|
len(map) | Menghitung jumlah data yang ada di dalam map |
map[key] | Mengambil data berdasarkan kata kunci key |
map[key] = value | Menambah atau merubah data di map |
make(map[TypeKey]TypeValue) | Membuat map baru |
delete(map, key) | Menghapus data di map berdasarkan kata kunci key |
Membuat Map Menggunakan Fungsi make
Untuk membuat map menggunakan kata kunci make perhatikan contoh kode berikut ini.
package main
import "fmt"
func main() {
website := make(map[string]string)
website["name"] = "Ruang Developer"
website["domain"] = "www.ruangdeveloper.com"
fmt.Println(website)
}
output:
map[domain:www.ruangdeveloper.com name:Ruang Developer]
Menghapus Data Pada Map
Untuk menghapus data pada map kita bisa menggunakan fungsi delete. Perhatikan contoh kode beriktu ini.
package main
import "fmt"
func main() {
website := make(map[string]string)
website["name"] = "Ruang Developer"
website["domain"] = "www.ruangdeveloper.com"
fmt.Println(website)
// Menghapus data domain
delete(website, "domain")
fmt.Println(website)
}
output:
map[domain:www.ruangdeveloper.com name:Ruang Developer]
map[name:Ruang Developer]
Tambahan
Saat membuat map dan langsung mengisi datanya, jangan lupa untuk menambahkan koma pada ujung setiap data hingga data yang terakhir. Golang akan menganggap error apabila tidak ada koma.
Ini error
person := map[string]string{
"name": "Rizky",
"address": "Subur Indah" // kurang koma di ujung
}
Ini tidak error
person := map[string]string{
"name": "Rizky",
"address": "Subur Indah", // ada koma di ujung
}
Berikutnya: #16: If Expression - Belajar Golang Dari Dasar