Menu
CoddyTech

Rangkuman: Struktur Data Kustom

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

challenge icon

Tantangan

Mudah

Mari buat struktur data kustom sederhana untuk mengulas kembali hal-hal yang telah kita pelajari tentang struct di Go.

Dalam tantangan ini, kamu akan membuat struktur data Counter dasar yang dapat:

  1. Mencatat nilai hitungan
  2. Menambah hitungan
  3. Mengurangi hitungan
  4. Mengatur ulang hitungan ke nol

Lengkapi kodemu dengan menerapkan method yang belum ada untuk struct Counter.

Coba sendiri

package main

import (
	"fmt"
)

// Counter adalah struktur data penghitung sederhana
type Counter struct {
	value int
	name  string
}

// NewCounter membuat penghitung baru dengan nama yang diberikan
func NewCounter(name string) Counter {
	return Counter{
		value: 0,
		name:  name,
	}
}

// Increment menambah nilai penghitung sebesar 1
func (c *Counter) Increment() {
	// Tambahkan kode untuk menambah nilai penghitung
}

// Decrement mengurangi nilai penghitung sebesar 1 (tetapi tidak sampai di bawah 0)
func (c *Counter) Decrement() {
	// Tambahkan kode untuk mengurangi nilai penghitung
	// Pastikan nilainya tidak turun di bawah 0
}

// Reset mengembalikan nilai penghitung ke 0
func (c *Counter) Reset() {
	// Tambahkan kode untuk mengembalikan nilai penghitung ke 0
}

// Value mengembalikan hitungan saat ini
func (c Counter) Value() int {
	// Tambahkan kode untuk mengembalikan nilai saat ini
	return 0 // Ganti ini
}

// String mengembalikan representasi string dari penghitung
func (c Counter) String() string {
	return fmt.Sprintf("%s: %d", c.name, c.value)
}

func main() {
	// Buat penghitung baru bernama "Visitors"
	visitors := NewCounter("Visitors")
	
	// Tambah nilai penghitung beberapa kali
	visitors.Increment()
	visitors.Increment()
	visitors.Increment()
	
	// Tampilkan jumlah saat ini
	fmt.Println(visitors)
	fmt.Println("Current value:", visitors.Value())
	
	// Kurangi nilai penghitung
	visitors.Decrement()
	fmt.Println(visitors)
	
	// Atur ulang penghitung
	visitors.Reset()
	fmt.Println(visitors)
	
	// Uji bahwa nilai penghitung tidak turun di bawah nol
	visitors.Decrement()
	fmt.Println(visitors)
}

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler Go online