Pada sesi ini akan di bahas penggunaan tipe data Map pada Go
Map adalah tipe data pada Go berbentuk key-value pair. map mirip seperti slice, hanya saja indeks yang digunakan untuk pengaksesan bisa ditentukan sendiri tipe-nya (indeks tersebut adalah key).
packagemainimport ("fmt")funcmain() {var batch map[string]int batch["adorable"] =20 batch["brilliant"] =10 fmt.Println("Jumlah anggota batch adorable", batch["adorable"]) fmt.Println("Jumlah anggota batch brilliant", batch["brilliant"])}
Error pada output program
Pada kode di atas jika dijalankan akan muncuk error ini karena pada map nilai default adalah nil sehingga kita harus membuat inisialisasi nilai default di awal seperti ini:
Berhasil menampilkan data yang ada pada map
Inisialisasi Nilai map
Kita juga bisa langsung memasukkan nilai pada variabel bertipe map dengan menggunakan literal {} seperti berikut ini:
Output program berisi nilai map pada variabel batch
Looping pada map
Kita bisa menggunakan for - range untuk looping pada map . Cara penerapannya masih sama seperti pada slice, pembedanya data yang dikembalikan di tiap perulangan adalah key dan value, bukan indeks dan elemen.
Menampilkan key dan value dari hasil looping variabel batch
Mutating Maps
Berikut adalah beberapa hal yang dapa kita lakukan pada map :
Insert or Update map
Untuk melakukan insert dan update data, kita dapat menggunakan cara berikut ini:
Kita lihat bahwa kita harus mengetahui key dari map dan meng-assign nilai ke dalam map .
Mengupdate value dari key adorable
Retrieve the element
Kita dapat menyimpan value dari key pada map dengan cara seperti berikut ini:
Output program menampilkan nilai dari map batch
Delete elemen pada map
Kita juga dapat menghapus elemen pada map menggunakan function built-in delete .
Dari kode di atas kita lihat bahwa kita menghapus elemen map pada keyadorable sehingga jika kita akses key dari adorable dan isi dari map batch maka akan menghasilkan output seperti berikut ini:
Output program dari penggunaan fungsi delete pada map
Deteksi Keberadaan Item Dengan Key Tertentu
Ada cara untuk mengetahui apakah dalam sebuah variabel map terdapat item dengan key tertentu atau tidak, yaitu dengan memanfaatkan 2 variabel sebagai penampung nilai kembalian pengaksesan item
Tidak ditemukam value dari key dilligent
Slice of Map
Kita dapat menggunakan slice of map atau kombinasi antara slice dan map.
Dari kode di atas dapat disimpulkan yaitu slice yang tipe tiap elemen-nya adalah map[string]string .
Menampilkan isi slice bertipe map
Bagaimana jika kita ingin menghasilkan seluruh elemen slice yang bertipe map? kita daoat menggunakan looping for - range :
Hasil perulangan dari slice of map pada variabel batch