← Kembali ke kursus
Pelajaran kursus · Go
Pelajaran 09

Variabel dan tipe data

Simpan nilai dengan var dan :=, dan kenali tipe dasarnya.

Pahami konsepnya

Ada dua cara membuat variabel: var nama string = "Ari" menuliskan tipenya secara eksplisit, sedangkan nama := "Ari" meminta Go menyimpulkan tipenya dari nilai di sebelah kanan. Bentuk pendek := hanya boleh dipakai di dalam fungsi; setelah dibuat, nilainya diperbarui dengan tanda = biasa.

Satu pernyataan bisa membuat beberapa variabel sekaligus: var a, b int atau a, b := 1, 2. Tipe dasar yang paling sering dipakai: string, int (dan kerabatnya int8–int64, uint), float64 untuk desimal, bool, rune untuk satu karakter Unicode, dan byte untuk satu byte. string sebenarnya potongan byte yang tidak bisa diubah isinya — operasi "mengubah" string selalu menghasilkan string baru.

Go ketat soal kebersihan kode: variabel yang dideklarasikan lalu tidak pernah dipakai membuat kompilasi gagal, dan variabel yang belum diisi otomatis berisi nilai nol tipenya — "" untuk string, 0 untuk angka, false untuk bool. Tanda _ menjadi penampung bila suatu hasil memang tidak ingin disimpan.

Coba contoh kode

package main

import "fmt"

func main() {
    var nama string = "Ari"
    umur := 17
    var aktif bool
    fmt.Println(nama, umur, aktif)
}

Tipe umur disimpulkan sebagai int tanpa perlu ditulis. Karena aktif dideklarasikan tanpa nilai awal, ia memegang false — nilai nol untuk bool. Koma pada Println otomatis menyisipkan spasi antar nilainya, sehingga keluaran tetap rapi tanpa perangkai string manual.

Penukaran nilai tanpa variabel bantu

func main() {
    x, y := 1, 2
    x, y = y, x
    fmt.Println(x, y) // 2 1
}

Semua nilai di sisi kanan dihitung lebih dulu sebelum ditugaskan, jadi x, y = y, x menukar keduanya tanpa perlu variabel perantara — trik khas penugasan ganda di Go.

Membuat pointer dengan new

func main() {
    nama := new(string)
    *nama = "Ari"
    fmt.Println(*nama)  // Ari
    fmt.Println(nama)   // 0xc000010250 (alamat memori)
}

new(T) mengalokasikan memori bertipe T berisi nilai nol, lalu mengembalikan pointernya. Kamu jarang membutuhkannya secara langsung — &variabel lebih umum — tetapi memahami new membantu membaca kode yang memakai pointer secara eksplisit.

Latihan singkat

Uji: isi kota dan tambah umur satu tahun — program harus mencetak persis `Ari 18 Bandung`.