Konstanta dan operator
Nilai tetap dengan const serta operasi angka dan perbandingan.
Pahami konsepnya
const mendeklarasikan nilai yang dikunci saat kompilasi — sekali ditetapkan, tidak bisa diubah. Ia cocok untuk tarif, batas, atau label tetap. Beberapa konstanta sejenis bisa dikelompokkan dalam satu blok const agar rapi.
Operator aritmatika standar tersedia: +, -, *, /, dan % untuk sisa pembagian. Penting diingat, pembagian dua bilangan bulat menghasilkan bilangan bulat juga — sisanya dibuang — sehingga 7 / 2 bernilai 3. Bila butuh hasil desimal, salah satunya perlu menjadi float64. Operator perbandingan (== != < > <= >=) selalu menghasilkan bool, dan operator logika && (dan), || (atau), ! (tidak) menggabungkan beberapa perbandingan. Penyingkat seperti += dan ++ tersedia untuk memperbarui nilai di tempat.
Trik khas Go bernama iota: di dalam blok const, iota adalah penghitung yang bertambah satu pada setiap baris. Ia menggantikan enumerasi manual — cara idiomatis mendefinisikan daftar nilai berurutan seperti hari, level, atau kode status.
Coba contoh kode
package main
import "fmt"
const tarifOjol = 2500
func main() {
km := 6
total := tarifOjol * km
murah := total < 20000
fmt.Println("Total:", total, "Murah?", murah)
}Tarif per kilometer dibuat const karena tidak berubah selama program hidup. Ekspresi tarifOjol * km menghitung total, lalu total < 20000 menghasilkan bool yang disimpan di murah. Ubah nilai km dan perhatikan bagaimana murah ikut berubah — begitu total melewati batas, nilainya berganti false.
Enumerasi dengan iota
const (
Senin = iota + 1 // 1
Selasa // 2
Rabu // 3
Kamis // 4
Jumat // 5
)
func main() {
fmt.Println(Senin, Jumat) // 1 5
}iota dimulai dari nol dan bertambah satu per baris dalam blok const — ekspresi iota + 1 di baris pertama diulang otomatis di baris berikutnya, jadi Selasa sampai Jumat tidak perlu ditulis ulang. Hasilnya daftar konstanta berurutan yang rapi dan bebas salah tulis.
Latihan singkat
Uji: hitung harga setelah diskon 10% — program harus mencetak persis `225000`.