Menu
CoddyTech

Ringkasan: Penyimpanan Kunci-Nilai

Termasuk bagian Dasar-Dasar dalam perjalanan GO di Coddy. Pelajaran 93 dari 109.

challenge icon

Tantangan

Mudah

Mari berlatih menggunakan map dengan penghitung kata sederhana!

Tugasmu adalah menerapkan program yang menghitung berapa kali setiap kata muncul dalam list kata.

Persyaratan:

  1. Lengkapi fungsi addWord() yang menambahkan kata ke map penghitung
  2. Lengkapi fungsi getCount() yang mengembalikan jumlah kemunculan kata tertentu
  3. 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

Latihan sendiri: Compiler Go online