Pointer pada Golang | Pointer berfungsi untuk mereferensikan alamat memory dari suatu data. Variable yang mempunyai alamat memori sama, maka dapat dikatakan mereka saling terhubung. Jika kamu merubah nilai pada salah satunya, maka nilai pada alamat yang berhubungan juga akan berubah.
Pointer pada bahasa pemrograman golang ditandai dengan adanya karakter bintang ( * ) sebelum penulisan tipe datanya.
var nama *int
Kemudian untuk menampilkan alamatnya, kamu dapat menggunakan karakter and ( & )
fmt.Println(&nama)
kode di atas akan menampilkan output berupa alamat memori yang dipakai oleh variable nama.
Mengenal lebih jauh operator pada pointer golang
Di atas telah sedikit kita bahas mengenai operator pointer pada golang, yaitu bintang ( * ) dan and ( & ). Karakter tersebut sebenarnya mempunyai nama yaitu :
- Address-of Operator (&)
- Dereference Operator (*)
And atau Address of Operator merupakan operator yang dapat digunakan untuk mendapatkan suatu alamat dari sebuah variable.
Bintang atau Dereference Operator merupakan operator yang digunakan untuk mengambil nilai asli dari sebuah alamat memory.
Manfaat menggunaan pointer
Beberapa manfaat jika kita menggunakan pointer ketika membuat sebuah program adalah :
- Membuat variable menjadi dinamis
- Mengirim variable sebagai parameter function
- Meningkatkan performa program.
Varible dinamis
Dengan membuat pointer kita tidak perlu lagi membuat variable baru ketika ingin mengolah data, dengan begitu penggunaan memory pada program dapat diminimalisir.
Variable sebagai parameter function
Pointer juga memungkinkan kamu untuk dapat mengolah nilai variable diluar function, atau pada function lain dengan cara membuatnya sebagai parameter.
baca juga : Mengenal Function pada bahasa Golang
contoh :
func pointerParamFunc(myPoint *int) {
*myPoint = 30
}
func main() {
myPoint := 75
pointerParamFunc(&myPoint)
fmt.Println(myPoint)
//output = 30
}
Pada kode program di atas, variable myPoint berubah nilainya menjadi 30, setelah function pointerParamFunc di eksekusi.
Performa program meningkat
Dengan sedikitnya memory yang digunakan oleh program, maka otomatis performa program yang dibuat juga meningkat.
Contoh Program Pointer Golang
Agar kamu lebih mudah memahami pointer, perhatikan kode program dibawah ini :
func main() {
var myPointer int
fmt.Println("my valueis : ", myPointer)
//0
fmt.Println("my address is : ", &myPointer)
//0xc000100010
myPointer = 50
fmt.Println("my valueis : ", myPointer)
//50
fmt.Println("my address is : ", &myPointer)
//0xc000100010
yourPointer:= &myPointer
//yourPointer mereferensikan alamat dari myPointer
fmt.Println("your address is : ", yourPointer)
//0xc000100010
fmt.Println("your value is : ", *yourPointer)
// 50
*yourPointer = 70
fmt.Println("your address is : ", yourPointer)
//0xc000100010
fmt.Println("your value is : ", *yourPointer)
//70
fmt.Println("my valueis : ", myPointer)
//70
fmt.Println("my address is : ", &myPointer) //0xc000100010
}
Dapat kita lihat baik myPointer dan yourPointer memiliki alamat memori yang sama, dengan begitu apabila kita merubah nilai pada yourPointer maka myPointer ikut berubah, begitupun sebaliknya.
Bagaimana menurutmu, apakah materi kali ini mudah dimengerti ? ataukah masih bingung ?. Tanyakan di kolom komentar ya.