Pointer di Go: Panduan Praktis dengan Contoh
1
min read .
Updated on
Awalnya konsep pointer di Go bikin banyak orang, termasuk saya, agak bingung. Tapi setelah dicoba, rasanya gini deh: fungsi mereka itu powerful banget buat memodifikasi data tanpa bikin salinan besar-besaran. Mari kita lihat intinya, plus contoh praktis yang bisa langsung dicoba.
Apa itu Pointer?
Pointer itu variabel yang nyimpen alamat memori variabel lain. Jadi, kamu bisa memanipulasi nilai asli atau melewatkan data besar tanpa menyalinnya.
Mendeklarasikan Pointer
var ptr *int // pointer ke int
Nilainya masih nil
sampai ditunjuk ke variabel.
var value int = 42
var ptr *int = &value // & ambil alamat memori
fmt.Println(*ptr) // dereference → 42
Memodifikasi Nilai Lewat Pointer
func updateValue(p *int) {
*p = 100
}
var value int = 42
updateValue(&value)
fmt.Println(value) // 100
Pointer di Fungsi
Pointer bikin fungsi bisa memodifikasi data asli, tanpa bikin salinan besar.
func increment(val *int) {
*val++
}
num := 10
increment(&num)
fmt.Println(num) // 11
Kasus Penggunaan Umum
- Efisiensi Data: Melewatkan struct atau array besar tanpa menyalin semuanya.
- Mutabilitas: Ubah variabel asli dari fungsi.
- Interaksi Memori Low-Level: Walau Go punya garbage collection, pointer tetap berguna buat operasi yang dekat dengan memori.
Refleksi Singkat
Pada akhirnya, memahami pointer itu bikin kita lebih percaya diri nulis Go yang efisien. Biar pun awalnya terlihat ribet, setelah dicoba, efeknya langsung terasa di performa dan fleksibilitas kode.