Lewati ke konten

2. Variabel, Tipe & Fungsi

var nama string = "Kopi Susu" // lengkap
var harga = 18000 // tipe ditebak dari nilainya: int
jumlah := 3 // singkatan, hanya di dalam fungsi
const pajak = 0.11 // konstanta: tidak bisa diubah

:= adalah cara yang paling sering kamu lihat: deklarasi dan isi sekaligus.

Tipe Contoh Catatan
int 42, -7 bilangan bulat
float64 3.14, 0.1 bilangan desimal
string "halo" teks, pakai tanda kutip dua
bool true, false benar/salah

Variabel yang belum diisi punya nilai nol: 0, "", atau false.

Go tidak pernah mengubah tipe diam-diam. int dikali float64 itu error — kamu harus mengonversi sendiri:

total := 54000 // int
diskon := 0.1 // float64
bayar := float64(total) * (1 - diskon)
func total(harga int, jumlah int) int {
return harga * jumlah
}

Tipe parameter ditulis setelah namanya, dan tipe hasil setelah kurung. Fungsi bisa mengembalikan lebih dari satu nilai — ini dipakai untuk error di bab 5:

func bagiSisa(a, b int) (int, int) {
return a / b, a % b
}
hasil, sisa := bagiSisa(17, 5) // 3, 2
Fungsi Hasil
fmt.Println("Total:", 54000) Total: 54000 (argumen dipisah spasi)
fmt.Printf("Bayar: %.0f\n", 48600.0) Bayar: 48600
fmt.Sprintf("%s x%d", "kopi", 3) mengembalikan string kopi x3

Kode format yang paling sering dipakai: %d bilangan bulat, %s string, %f desimal (%.2f = 2 angka di belakang koma), %v nilai apa saja, %T tipe nilai. Printf tidak menambah baris baru — tulis \n sendiri.

Jangan pusing soal spasi dan indentasi. go fmt merapikan semua file .go di folder ke format standar Go:

Terminal window
go fmt

Di lab ini sudah ada program kasir kopi yang belum selesai. Buka dengan nano main.go, perbaiki, lalu jalankan.

Lab: Kasir kopi: variabel & fungsi
Misi 0/6
  1. Masuk ke folder belanja dan baca main.go.
    Petunjukcd belanja && cat main.go
  2. Jalankan go run . — programnya gagal di-compile. Baca pesannya.
    Petunjukgo run . → perhatikan baris "declared and not used".
  3. Perbaiki errornya: hapus diskon, atau pakai di fmt.Println. Lalu go run . lagi.
    Petunjuknano main.go → hapus baris diskon := 0.1 (atau cetak nilainya), simpan, lalu go run .
  4. Lengkapi fungsi total agar mengembalikan harga * jumlah. Output harus Total: 54000.
    PetunjukGanti return 0 menjadi return harga * jumlah
  5. Cetak harga setelah diskon 10% dengan fmt.Printf: Bayar: 48600.
    PetunjukKembalikan diskon := 0.1, lalu: fmt.Printf("Bayar: %.0f\n", float64(total(harga, jumlah))*(1-diskon))
  6. Rapikan format kodenya dengan go fmt.
    Petunjukgo fmt (atau gofmt -w main.go)