Ringkasan: Penyimpanan Kunci-Nilai
Termasuk bagian Dasar-Dasar dalam perjalanan GO di Coddy. Pelajaran 93 dari 109.
Tantangan
MudahMari berlatih menggunakan map dengan penghitung kata sederhana!
Tugasmu adalah menerapkan program yang menghitung berapa kali setiap kata muncul dalam list kata.
Persyaratan:
- Lengkapi fungsi
addWord()yang menambahkan kata ke map penghitung - Lengkapi fungsi
getCount()yang mengembalikan jumlah kemunculan kata tertentu - Lengkapi fungsi
removeWord()yang menghapus kata dari penghitung
Ini adalah ulasan singkat tentang cara menggunakan map sebagai penyimpanan key-value.
Catatan: Output akan menampilkan jumlah kemunculan kata dalam urutan alfabet agar konsisten.
Coba sendiri
package main
import (
"fmt"
"sort"
)
// addWord menambahkan kata ke map penghitung
func addWord(counter map[string]int, word string) {
// Tulis kodemu di sini
}
// getCount mengembalikan jumlah kemunculan kata tertentu
func getCount(counter map[string]int, word string) int {
// Tulis kodemu di sini
return 0
}
// removeWord menghapus kata dari penghitung
// Mengembalikan true jika kata ditemukan dan dihapus
func removeWord(counter map[string]int, word string) bool {
// Tulis kodemu di sini
return false
}
// printWordCounts mencetak jumlah kemunculan kata sesuai urutan abjad
func printWordCounts(counter map[string]int) {
// Ambil semua kunci (kata) dari map
words := make([]string, 0, len(counter))
for word := range counter {
words = append(words, word)
}
// Urutkan kata-kata sesuai abjad
sort.Strings(words)
// Cetak setiap kata dan jumlah kemunculannya sesuai urutan
for _, word := range words {
fmt.Printf("%s: %d\n", word, counter[word])
}
}
func main() {
// Inisialisasi map penghitung kata
wordCounter := make(map[string]int)
// Tambahkan beberapa kata
words := []string{"apple", "banana", "apple", "orange", "banana", "apple"}
for _, word := range words {
addWord(wordCounter, word)
}
// Cetak jumlah kemunculan kata
fmt.Println("Word counts:")
printWordCounts(wordCounter)
// Ambil jumlah kemunculan kata tertentu
fmt.Printf("\nCount for 'apple': %d\n", getCount(wordCounter, "apple"))
fmt.Printf("Count for 'grape': %d\n", getCount(wordCounter, "grape"))
// Hapus sebuah kata
removed := removeWord(wordCounter, "banana")
fmt.Printf("\nRemoved 'banana': %v\n", removed)
// Coba hapus kata yang tidak ada
removed = removeWord(wordCounter, "grape")
fmt.Printf("Removed 'grape': %v\n", removed)
// Tampilkan jumlah akhir kemunculan setiap kata
fmt.Println("\nFinal word counts:")
printWordCounts(wordCounter)
}Semua pelajaran di Dasar-Dasar
4Operator Perbandingan dan Logika
Operator Perbandingan, Bagian 1Operator Perbandingan, Bagian 2Operator AND LogikaOperator OR LogikaOperator NOT LogikaDasar Prioritas OperatorRingkasan, Membuat Perbandingan7Alur Kontrol: Perulangan
Penjelasan tentang `for` loop`for` loop Dasar`for` loop dengan Kondisi SajaKata Kunci `break`Kata Kunci `continue`Perulangan BersarangRangkuman: Mengulang Tindakan2Variabel dan Tipe Data Dasar
Apa itu variabelInferensi Tipe dengan `:=`Bilangan Bulat (int)Bilangan Floating-PointBooleanstringNilai NolKonstantaKonvensi PenamaanRangkuman: Variabel dan Tipe5Input/Output Dasar
Output TerformatKata Kerja FormatMencetak Tipe DataMendapatkan Input Dasar dari PenggunaRangkuman: Input dan Output8Fungsi
Memahami FungsiMendeklarasikan FungsiMemanggil FungsiParameter FungsiMengembalikan Satu NilaiMengembalikan Beberapa NilaiNilai Kembalian BernamaDasar Cakupan FungsiRangkuman: Membuat Kodemu Dapat Digunakan Kembali3Operator Dasar
Operator AritmetikaOperator PembagianOperator ModuloOperator PenugasanOperator Penugasan GabunganInkrementasi dan DekrementasiRangkuman: Perhitungan6Alur Kontrol: Percabangan
Pernyataan `if`Kata Kunci `else`Kata Kunci `else if`Shadowing Variabel dalam `if`Menginisialisasi VariabelPernyataan `switch``switch` dengan Ekspresi`switch` tanpa EkspresiKata Kunci `fallthrough`Ringkasan: Membuat KeputusanLatihan sendiri: Compiler Go online