Thursday, November 29, 2018

MAP Golang

map golang

MAP GOLANG

MAP adalah aneka koleksi pasangan kunci nilai yang tidak berurutan. Juga dikenal sebagai Array Asosiatif, tabel hash atau kamus. MAP digunakan untuk mencari nilai dengan kunci yang terkait. Berikut ini contoh MAP di Go  :
var x map [string] int
Type MAP diwakili oleh MAP kata kunci, diikuti oleh type kunci dalam tanda kurung dan akhirnya type nilai. Jika kamu membaca ini dengan bahasa manusia kamu bisa mengatakan "x adalah MAP string ke int."

Seperti MAP Array dan Sice dapat diakses menggunakan tanda kurung. Coba jalankan program berikut,KLIK DISINI UNTUK MENCOBANYA:
package main
import (
"fmt"
)
var x map [string]
int x ["key"] = 10
fmt.Println (x)
}
map golang

Kamu seharusnya melihat kesalahan yang seprti ini:
prog.go:27:20: syntax error: unexpected newline, expecting typeprog.go:28:1: syntax error: non-declaration statement outside function body
Saat ini kamu hanya melihat kesalahan waktu kompilasi. Ini adalah contoh kesalahan runtime. Seperti namanya akan menyiratkan, kesalahan runtime terjadi ketika kamu menjalankan program, sementara kesalahan waktu kompilasi terjadi ketika kamu mencoba untuk mengkompilasi program.

Masalah dengan program disini adalah MAP harus diinisialisasi sebelum bisa digunakan. Kita seharusnya mengcoding seperti ini:
package main
import (
"fmt"
)
func main() {
x:=make(map [string] int)
x ["key"] = 10
fmt.Println (x ["key"])
}
map golang

Jika kamu menjalankan program ini, kamu akan melihat 10 ditampilkan. Pernyataan x ["key"] = 10 mirip dengan apa yang kita lihat dengan Array tetapi kuncinya bukannya integer, tetapi string karena jenis kunci MAP adalah string. Kamu juga dapat membuat peta dengan jenis kunci int seperti ini :
package main
import (
"fmt"
)
func main() {
x:=make (map[int]int)
x [1] = 10
fmt.Println (x [1])
}
map golang

Ini terlihat sangat mirip dengan array tetapi ada beberapa perbedaan. 
  • Pertama pada panjang MAP ,Array harus ditentukan dengan melakukan len(x), tetapi pada MAP tidak dan dapat berubah ketika kita menambahkan item baru ke dalamnya. Ketika pertama kali dibuat memiliki panjang 0, setelah x [1] = 10 memiliki panjang 1. 
  • Kedua MAP tidak berurutan. Kita memiliki x [1], dan dengan larik yang menyiratkan harus ada x [0], tetapi peta tidak memiliki persyaratan ini.

Kamu juga dapat menghapus item dari MAP menggunakan fungsi hapus bawaan:
delete(x, 1)
Mari kita lihat contoh program lain yang menggunakan peta:
package main
import "fmt"
func main() {
elements := make(map[string]string)
elements["H"] = "Hydrogen"
elements["He"] = "Helium"
elements["Li"] = "Lithium"
elements["Be"] = "Beryllium"
elements["B"] = "Boron"
elements["C"] = "Carbon"
elements["N"] = "Nitrogen"
elements["O"] = "Oxygen"
elements["F"] = "Fluorine"
elements["Ne"] = "Neon"
fmt.Println(elements["Li"])
}
map golang

Elemen adalah MAP yang mewakili 10 unsur pertama yang diindeks oleh simbolnya. Ini adalah cara yang sangat umum menggunakan MAP: sebagai tabel pencarian atau kamus. Misalkan kita mencoba mencari elemen yang tidak ada:
fmt.Println (elemen ["Un"])
Jika kamu menjalankan ini, Kamu akan melihat undefined: elemen. Secara teknis, sebuah MAP mengembalikan nilai nol untuk jenis nilai (untuk string adalah string kosong). Meskipun kita dapat memeriksa nilai nol dalam suatu kondisi (elemen ["Un"] == "") Go menyediakan cara yang lebih baik:
name, ok:= elements ["Un"]
fmt.Println (name, ok)
map

atau ini
map


Mengakses elemen map dapat mengembalikan dua nila. Nilai pertama adalah hasil pencarian, yang kedua memberitahu kita apakah pencarian berhasil atau tidak. Di Go, kita sering melihat kode seperti ini:
if name, ok := elements["Un"]; ok {
fmt.Println(name, ok) }
Pertama kita mencoba mendapatkan nilainya dari map, maka jika berhasil kita menjalankan kode di dalam blok.

Seperti yang kita lihat dengan array, ada juga cara yang lebih pendek untuk membuat map :
package main
import "fmt"
func main() {
elements := map[string]string{
"H": "Hydrogen",
"He": "Helium",
"Li": "Lithium",
"Be": "Beryllium",
"B": "Boron",
"C": "Carbon",
"N": "Nitrogen",
"O": "Oxygen",
"F": "Fluorine",
"Ne": "Neon", }
fmt.Println(elements["Li"])
name, ok:= elements ["Li"]
fmt.Println (name, ok)
}
map
MAP juga sering digunakan untuk menyimpan informasi umum. Mari kita memodifikasi program kita sehingga hanya menyimpan nama elemen, kita menyimpan status standarnya juga:
package main
import "fmt"
func main() {
elements := map[string]map[string]string{
"H": map[string]string{
"name":"Hydrogen",
"state":"gas", },
"He": map[string]string{
"name":"Helium",
"state":"gas", },
"Li": map[string]string{
"name":"Lithium",
"state":"solid", },
"Be": map[string]string{
"name":"Beryllium",
"state":"solid", },
"B":  map[string]string{
"name":"Boron",
"state":"solid", },
"C":  map[string]string{
"name":"Carbon",
"state":"solid", },
"N":  map[string]string{
"name":"Nitrogen",
"state":"gas", },
"O":  map[string]string{
"name":"Oxygen",
"state":"gas", },
"F":  map[string]string{
"name":"Fluorine",
"state":"gas", },
"Ne":  map[string]string{
"name":"Neon",
"state":"gas", },
}
if el, ok := elements["Li"];
ok {
fmt.Println(el["name"],
el["state"]) }
}
Perhatikan bahwa jenis MAP telah berubah
map [string] string untuk memetakan [string] petakan string [string]. 

Kita sekarang memiliki map string untuk memetakan string ke string. map luar digunakan sebagai tabel pencarian berdasarkan simbol elemen, sedangkan map bagian dalam digunakan untuk menyimpan informasi umum tentang elemen. .



MATERI GOLANG

Jika kamu baru di pembelajaran golang, silakan untuk belajar dari materi pertama 


Reviewer: FajarYusuf.Com
ItemReviewed: MAP Golang

Seseorang yang ingin membagi pengalaman dan ilmu yang berguna untuk para pembaca FajarYusuf.Com :)

TENTANG SITUS

SITUS INI ADALAH SITUS PEMBELAJARAN PEMROGRAMAN DAN JUGA PEMAHAMAN TERHADAP TEKNOLOGI KOMPUTER. KALIAN BISA MENGIKUTI PEMBELAJARAN PEMROGRAMAN DENGAN BERTAHAP PADA MATERI YANG SUDAH SAYA SEDIAKAN, JIKA ADA MATERI YANG MEMBINGUNGKAN SILAKAN LAKUKAN KOMENTAR PADA MATERI YANG ANDA TANYAKAN ATAU KALIAN BISA MENGHUBUNGI SAYA DIHALAMAN KONTAK.