Mengenal pointer pada pemrograman Golang

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.

Mungkin Anda juga menyukai