Lompat ke konten utama
←

Go dari Nol

Pelajaran 4 dari 15

Program Go pertama: struktur, variabel, dan tipe

Misi: membaca program struk kafe

Setelah pelajaran ini kamu bisa menelusuri program 20–40 baris yang memakai konstanta, :=, pembagian bulat, konversi, dan Printf, lalu memprediksi keluaran dan galatnya.

±17 menitDiperiksa 5 Okt 2026

Latihan di pelajaran ini butuh akun gratis. Progres, kode, dan catatanmu hanya tersimpan di browser ini. Masuk untuk menyimpannya

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.

Latihan

0/4 lulus

Misi akhir modul: luluskan minimal 4 dari 4 tugas. Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 1 dari 4

Apa yang dicetak baris Layanan?

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)
}
Pilih satu jawaban

Latihan 2 dari 4

Apa yang dicetak baris Rata-rata?

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)
}
Pilih satu jawaban

Latihan 3 dari 4

Baris rataRata diganti menjadi rataRata := float64(total / (kopi + roti)). Apa yang dicetak baris Rata-rata sekarang?

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)
}
Pilih satu jawaban

Latihan 4 dari 4

Baris terakhir, fmt.Printf("Catatan: %q\n", catatan), dihapus. Apa yang terjadi saat program dijalankan?

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)
}
Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke