package main

import "fmt"

// catatPemeriksaan mencetak pesan setiap kali dipanggil, lalu mengembalikan true.
func catatPemeriksaan(nama string) bool {
	fmt.Println("   -> catatPemeriksaan(\"" + nama + "\") dipanggil")
	return true
}

func main() {
	// Operand kanan TIDAK dievaluasi karena hasil sudah pasti
	fmt.Println("A: false && catatPemeriksaan(\"gudang\")")
	fmt.Println("   hasil:", false && catatPemeriksaan("gudang"))
	fmt.Println("B: true || catatPemeriksaan(\"gudang\")")
	fmt.Println("   hasil:", true || catatPemeriksaan("gudang"))

	// Operand kanan DIPANGGIL karena hasil belum pasti
	fmt.Println("C: true && catatPemeriksaan(\"toko\")")
	fmt.Println("   hasil:", true && catatPemeriksaan("toko"))
	fmt.Println("D: false || catatPemeriksaan(\"toko\")")
	fmt.Println("   hasil:", false || catatPemeriksaan("toko"))

	// Operator NOT membalik nilai bool
	stokTersedia := false
	kehabisan := !stokTersedia
	fmt.Println("kehabisan:", kehabisan)
}
