Dalam pemrograman, terutama bahasa seperti Golang, pointer adalah konsep penting yang perlu kita pahami. Pointer memungkinkan kita untuk bekerja langsung dengan alamat memori suatu variabel. Ini berguna untuk efisiensi memori, manipulasi data, dan juga dasar dari konsep pass by reference.
Apa Itu Pointer?
Pointer adalah variabel yang menyimpan alamat memori dari variabel lain. Kalau biasanya kita menyimpan dan mengakses nilai, pointer menyimpan dan mengakses alamat dari nilai tersebut.
Deklarasi dan Penggunaan Pointer
-
Mengambil Alamat Variabel (&
)
var angka int = 10
var ptr *int = &angka
fmt.Println("Nilai angka:", angka)
fmt.Println("Alamat angka:", &angka)
fmt.Println("Pointer ptr:", ptr)
Penjelasan:
-
Mengakses Nilai dari Pointer (*
)
fmt.Println("Nilai melalui pointer:", *ptr)
*ptr
artinya kita mengambil nilai dari alamat yang disimpan di pointer ptr
.
Pointer dan Fungsi
Pointer berguna banget saat kita ingin mengubah nilai variabel dari dalam fungsi.
-
Contoh tanpa pointer (nilai tidak berubah):
func ubah(x int) {
x = 100
}
func main() {
a := 10
ubah(a)
fmt.Println(a) // Tetap 10
}
-
Contoh dengan pointer (nilai berubah):
func ubah(x *int) {
*x = 100
}
func main() {
a := 10
ubah(&a)
fmt.Println(a) // Jadi 100
}
Pointer Default (new
)
Kita juga bisa membuat pointer baru dengan new
:
angka := new(int)
*angka = 50
fmt.Println(*angka) // Output: 50
new(int)
akan mengalokasikan memori untuk int
, dan mengembalikan pointer ke alamat tersebut.
Kesimpulan
Pointer di Golang memungkinkan kita bekerja langsung dengan referensi memori. Dengan memahami cara mengambil alamat (&
) dan mengakses nilai dari pointer (*
), kita bisa menulis kode yang lebih efisien dan fleksibel, terutama saat bekerja dengan fungsi.
Pointer juga jadi dasar penting saat kita mulai masuk ke struktur data yang lebih kompleks seperti struct, slice, dan interface.
Pada artikel selanjutnya, kita semua akan belajar tentang Array, Slice dan Map di dalam Golang.
Terima Kasih