Pada artikel sebelumnya kita telah belajar apa itu pointer dan cara penggunaannya pada bahasa pemrogaman go atau golang. apabila anda belum mengikuti artikel sebelumnya saya sarankan anda untuk membaca artikel sebelumnya tentang Golang – Pengenalan dan cara menggunakan pointer. Dan artikel kali ini kita akan belajar tentang pointer pada function dan cara menggunakannya pada bahasa pemrogaman go.
Pointer pada function
Saat kita membuat parameter di function secara default adalah pass bye value, jadi data akan di duplicate dan dikirim ke function tersebut. Oleh karena itu, jika kita mengubah data di dalam function maka data aslinya tidak akan berubah, hal ini membuat variabke menjadi aman karena datanya tidak akan bisa dirubah.
Namun terkadang kita membuat function yang bisa merubah data asli parameter tersebut, untuk melakukan ini kita bisa menggunakan pointer di function. Untuk menjadikan sebuah parameter sebagai pointer, kita bisa menggunakan operator *
di parameternya. Perhatikan contoh di bawah
package main
import "fmt"
type Address struct {
City, Provience, Country string
}
func changeCountryToIndonesia(address *Address) {
address.Country = "Indonesia"
}
func main() {
alamat := Address{
City: "Malang",
Provience: "Jawa Timur",
Country: "",
}
changeCountryToIndonesia(&alamat)
fmt.Println(alamat)
}

Pada contoh kode diatas, untuk menggunakan pointer pada function maka kita harus menggunakan operator *
pada parameter untuk menandakan jika data yang dikirim sebagai parameter harus lah pointer. Perhatikan baris 20, saat mengirim data alamat
kita menggunakan simbol &
yang mana menjadi &alamat
.
Dengan kode diatas maka kita dapat merubah data Country
karena parameter sudah me refer ke variable alamat
.
Note: Saat membuat data struct yang lumayan besar usahakan dijadikan pointer, karena jika tidak dan function nya banyak di panggil maka memory nya akan semakin bengkak, jadi hati-hati saat tidak menggunakan pointer pada parameter function nya.
Penutup
Pada artikel kali ini kita telah belajar cara menggunakan pointer pada function pada bahasa pemrogaman golang. Dan pada artikel selanjutnya saya akan membahas Pointer di method pada golang.