package main

import "fmt"

func main() {
	// Operator gabungan pada variable angka
	saldo := 1000
	saldo += 500
	fmt.Println("setelah setoran :", saldo)
	saldo -= 200
	fmt.Println("setelah tarikan :", saldo)

	stok := 30
	stok *= 3
	fmt.Println("setelah kalikan :", stok)
	stok /= 4
	fmt.Println("setelah bagi    :", stok)
	stok %= 5
	fmt.Println("sisa bagi       :", stok)

	// Operator bitwise juga punya bentuk gabungan
	izin := 0b0101
	izin |= 0b0010
	fmt.Printf("izin |= 0010    : %04b\n", izin)
	izin &^= 0b0001
	fmt.Printf("izin &^= 0001   : %04b\n", izin)

	// Operator gabungan pada elemen map
	skor := map[string]int{"Budi": 70}
	skor["Budi"] += 25
	skor["Siti"] += 10 // kunci baru mulai dari zero value 0
	fmt.Println("skor Budi:", skor["Budi"])
	fmt.Println("skor Siti:", skor["Siti"])

	// Multiple assignment menukar dua nilai tanpa variable sementara
	x, y := 1, 2
	x, y = y, x
	fmt.Println("x =", x, ", y =", y)
}
