Selalu ingin mencoba hal - hal yang baru meski penuh resiko dan tantangan yang sulit. "Kain kafan tidak berkantung".

Golang tutorial indonesia – Pointer

0
Degananda.com -

Pointer

Pointer dalam bahasa indonesia artinnya adalah suatu alat untuk menujuk. Contoh pointer biasannya adalah lampu laser ataupun tongkat panjang. Pada bahasa pemrograman golang pointer dilambangkan dengan * (asterisk) atau dapat kita sebut juga dengan bintang. Fungsinnya adalah untuk menunjuk variabel yang digunakan.

Pada bahasa pemrograman seperti java , php terdapat fungsi this yang dapat merefer ke variable diluar block. Pointer pada golang memiliki mekanisme hampir seperti itu (tidak sama namun identik) karena pointer bukan menunjuk variabel dalam global scope. Untuk lebih jelasnya perhatikan kode dibawah ini

package main

import (
	"fmt"
)

func main() {
	var nilai int = 10
	ubahNilai(nilai)
	fmt.Println(nilai)
}

func ubahNilai(nilai int) {
	nilai = 20
}


kode diatas jika dijalankan tidak akan mengubah nilai dari variable nilai menjadi 20.

untuk mengubah nilai dari variable nilai pada fungsi main kita dapat menggunakan pointer.

package main

import (
	"fmt"
)

func main() {
	var nilai int = 10
	ubahNilai(&nilai)
	fmt.Println(nilai)
}

func ubahNilai(nilai *int) {
	*nilai = 20
}

Asterisk atau bintang (“*”) merupakan simbol dari pointer sedangkan simbol “&” (dan) berfungsi untuk melakukan binding dari suatu variable kedalam suatu pointer. Sehingga variable asal(yang ingin dirubah nilainya) dan variable pointer dapat terhubung (binded). Asterisk juga disebut sebagai derefenrence variable. Kode diatas jika dieksekusi akan menghasilkan

Pada intinnya * dan & digunakan(salah satu fungsinnya) untuk melakukan binding variable yang beda block.  Int dan *int adalah tipe data yang berbeda. Sehingga pastikan kita mengubah * int bukan variable int.

note

  1. & (“dan”) secara mekanis berfungsi mencari address atau lokasi dari suatu variable dalam memory
  2. * atau asterisk digunakan untuk melakukan derefrence variable.
  3. Input yang digunakan pada parameter disuatu fungsi yang menggunakan pointer harus menggunakan “&” karena membutuhkan lokasi variable tersebut didalam memori.