Lompat ke konten utama
←

Go dari Nol

Pelajaran 10 dari 15

Fungsi, slice, dan map

Map: kunci, nilai, dan comma ok

Setelah pelajaran ini kamu bisa membaca operasi map, membedakan kunci yang tidak ada dari nilai nol dengan comma ok, mengenali panic karena map nil, dan menjelaskan mengapa urutan range pada map perlu diurutkan sendiri.

±13 menitDiperiksa 5 Okt 2026

Latihan di pelajaran ini butuh akun gratis. Progres, kode, dan catatanmu hanya tersimpan di browser ini. Masuk untuk menyimpannya

Materi

Map memetakan kunci ke nilai: map[string]int memetakan teks ke bilangan bulat. Map dibuat dengan literal, stok := map[string]int{"kopi": 40, "teh": 25}, atau dengan make(map[string]int). Nilai dibaca dan diisi dengan kurung siku, stok["gula"] = 10, dihapus dengan delete(stok, "teh"), dan len(stok) memberi jumlah pasangannya.

Membaca kunci yang tidak ada tidak menimbulkan galat; hasilnya nilai nol tipe nilainya, misalnya 0. Untuk membedakan stok yang memang 0 dari barang yang tidak terdaftar, pakai bentuk dua nilai: n, ada := stok["susu"]. Variabel kedua bernilai true bila kunci itu ada. Pola ini disebut comma ok.

Urutan range pada map tidak ditentukan dan sengaja dibuat berubah-ubah antarjalan. Program yang butuh urutan tetap mengumpulkan kuncinya ke slice, mengurutkannya dengan sort.Strings, lalu membaca map sesuai urutan itu. fmt.Println(stok) adalah pengecualian: fmt sengaja mencetak map terurut menurut kuncinya.

package main

import "fmt"

func main() {
	stok := map[string]int{"kopi": 40, "teh": 25}
	stok["gula"] = 10
	delete(stok, "teh")
	n, ada := stok["susu"]
	fmt.Println(stok, len(stok), n, ada) // map[gula:10 kopi:40] 2 0 false
}

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 1 dari 3

Apa yang dicetak program ini?

package main

import "fmt"

func main() {
	stok := map[string]int{"kopi": 40, "teh": 0}
	a := stok["teh"]
	b := stok["susu"]
	_, adaTeh := stok["teh"]
	_, adaSusu := stok["susu"]
	fmt.Println(a, b, adaTeh, adaSusu)
}
Pilih satu jawaban

Latihan 2 dari 3

Apa yang terjadi saat program ini dijalankan dengan go run?

package main

import "fmt"

func main() {
	var harga map[string]int
	fmt.Println(len(harga), harga["kopi"])
	harga["kopi"] = 18000
	fmt.Println(harga)
}
Pilih satu jawaban

Latihan 3 dari 3

Program ini harus mencetak tiga baris berurutan abjad, gula 10, kopi 40, teh 25, setiap kali dijalankan. Apa yang ditulis di baris ____?

package main

import (
	"fmt"
	"sort"
)

func main() {
	stok := map[string]int{"teh": 25, "gula": 10, "kopi": 40}
	var nama []string
	for n := range stok {
		nama = append(nama, n)
	}
	____
	for _, n := range nama {
		fmt.Println(n, stok[n])
	}
}
Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke