Map

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).

package main

import (
	"fmt"
)

func main() {
	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 key adorable 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

Last updated