Study
Go

Pointer Dasar di Go

Penjelasan

Go punya pointer (variabel yang menyimpan alamat memori variabel lain), dengan operator yang sama seperti C: & (address-of, mengambil alamat) dan * (dereference, mengakses nilai lewat alamat itu). Bedanya dari C, Go TIDAK mengizinkan pointer arithmetic (mis. ptr + 1 untuk geser posisi) — pointer Go sengaja dibuat lebih sederhana dan aman, cuma dipakai untuk berbagi/mengubah nilai, bukan navigasi memori manual.

Contoh Konsep

package main

import "fmt"

func naikkanUmur(umur *int) {
	*umur = *umur + 1 // ubah nilai lewat pointer
}

func main() {
	umur := 20
	naikkanUmur(&umur) // kirim alamat umur

	fmt.Println(umur) // 21, ikut berubah
}

Praktikum

Buat fungsi tambahBonus(saldo *int, bonus int) yang menambahkan bonus ke saldo lewat pointer (bukan return value). Panggil fungsi itu dari main() dengan saldo awal 100000 dan bonus 25000, lalu tampilkan saldo setelah dipanggil.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Fungsi di Go secara default melewatkan argumen dengan disalin (pass by value) — kalau fungsimu perlu MENGUBAH variabel asli si pemanggil, kirim pointer-nya (&variabel), bukan nilainya langsung. Pola ini juga yang dipakai method dengan pointer receiver.