Materi
Kafe Rina di Yogyakarta mencatat struk dengan program Go kecil di bawah. Biaya layanan 5 persen di program ini adalah contoh, bukan tarif pajak. Bacalah programnya dari atas ke bawah, dan catat tipe setiap variabel di sampingnya sebelum menjawab: subtotal, layanan, dan total bertipe int, sedangkan rataRata bertipe float64. Ingat bahwa operator * dan / berderajat sama dan dikerjakan dari kiri ke kanan, sehingga subtotal * persenLayanan / 100 mengalikan dulu, baru membagi.
package main
import "fmt"
const persenLayanan = 5
func main() {
pelanggan := "Rina"
kopi, hargaKopi := 3, 17500
roti, hargaRoti := 5, 9000
var catatan string
subtotal := kopi*hargaKopi + roti*hargaRoti
layanan := subtotal * persenLayanan / 100
total := subtotal + layanan
rataRata := float64(total) / float64(kopi+roti)
fmt.Println("Pelanggan:", pelanggan)
fmt.Println("Subtotal:", subtotal)
fmt.Println("Layanan:", layanan)
fmt.Printf("Total: %d\n", total)
fmt.Printf("Rata-rata: %.2f\n", rataRata)
fmt.Printf("Catatan: %q\n", catatan)
}Empat soal berikut memakai program yang sama. Dua di antaranya mengubah satu baris lalu menanyakan akibatnya; bayangkan perubahan itu pada salinan program, bukan pada program aslinya. Untuk setiap jawaban, tanyakan dua hal: apakah program ini lolos kompilasi, dan bila lolos, nilai apa yang tercetak.