lifelong learner — urip iku urup, currently working on accenture.

Golang tutorial indonesia – Maps

0
Degananda.com -

Maps

Maps pada golang merupakan collection yang tidak berurutan atau unordered collection. Kita dapat menyebut maps sebagai associative array. Contohnya kita dapat memiliki arrayA[“dega”] = “degananda.com”. Index pada array yang biasannya merupakan nomor dari index yang berupa angka kini dapat menggunakan string.

Bahkan kita dapat membuat array seperti ini arrayA[“mboil”][“toyota] = {“avanza”,”alphard”}. Oleh karena itu maps sering kali disebut sebagai associative array. Kita dapat memanfaatkan maps untuk berbagai keperluan. Misalkan untuk menggantikan fungsi percabangan switch jika membutuhkan berbagai jenis kondisi dan melibatkan lebih dari satu variable

Membuat maps pada golang

Layaknya dalam membuat array maps juga memanfaatkan bracket ({}). Berikut ini adalah format dalam membuat maps dalam golang

var namaVariable map [tipeData] tipeData_nilaiMap

keyword pertama adalah var untuk menggambarkan variable kemudian di ikuti oleh nama dari variable tersebut. Disamping nama variable terdapat type map. Setelah itu didalam bracket adalah tipedata dari index dan dilanjutkan dengan nilai tipe data dari map tersebut.

Format diatas akan menghasilkan run time error karena map harus di inisiasi terlebih dahulu. Sehingga kita harus memanfaatkan fungsi make() untuk menginisiasi memory bagi map. Sehingga formatnya menjadi seperti ini

namaMap make(map[tipedataIndex]tipedataNilai)

Contohnya misalkan kita ingin membuat map mengenai jenis mobil toyota yang dibagi berdasarkan jenis mobilnya berarti index berupa string dan nilai dari map tersebut juga string. Perhatikan kode dibawah ini

package main

import (
	"fmt"
)

func main() {
	toyota := make(map[string]string)
	toyota["mpv"] = "avanza"
	toyota["sedan"] = "camry"
	toyota["citycar"] = "brio"
	fmt.Println(toyota)
}

kode diatas jika dieksekusi akan menghasilkan tampilan dibawah ini pada konsol

Array dalam map

Toyota memiliki lebih dari satu jenis mobil mpv selain avanza. Contoh lain adalah alphard. Untuk mengakomodasi keperluan tersebut kita dapat menggunakan array sebagai tipe data nilai dari map tersebut

package main

import (
	"fmt"
)

func main() {
	toyota := make(map[string][]string)
	toyota["mpv"] = []string{"avanza", "alphard", "sienta"}
	fmt.Println(toyota)
}

dengan menggunakan tipe []string maka nilai dari map[string] berupa array.

Multiple map

Selanjutnya kita akan membagi mobil dari toyota selain berdasarkan jenisnya juga dari ccnya sehingga bentuk mapnya nanti adalah toyota[“mpv”][“2000”]. 2000 ini berarti maksimum cc, didalamnya nanti akan ada brio dan sienta. Berikut ini adalah potongan kodenya

package main

import (
	"fmt"
)

func main() {
	toyota := map[string]map[string][]string{
		"mpv": map[string][]string{
			"2000": {"sienta", "avansa"},
		},
	}
	fmt.Println(toyota["mpv"]["2000"])

}

kode diatas jika dieksekusi akan menghasilkan tampilan seperti ini pada konsol

jika anda lebih senang menulisnya dengan toyota[“mpv”][“2000] = {} maka gunakan kode seperti dibawah ini.

package main

import (
	"fmt"
)

func main() {
	toyota := make(map[string]map[string][]string)
	toyota["mpv"] = make(map[string][]string)
	toyota["mpv"]["2000"] = []string{"avansa", "sienta"}
	fmt.Println(toyota)

}

ingat kita baru membuat map dengan make dibagian luar. Maka sebelum dapat menggunakan [mpv][2000] kita harus membuat pada toyota[mpv] seperti pada kode diatas