Pada artikel sebelumnya kita telah belajar cara menggunakan pointer di function 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 pada function. Dan artikel kali ini kita akan belajar tentang pointer pada method dan cara menggunakannya pada bahasa pemrogaman go.
Pointer di methhod
Walaupun method akan menempel pada struct, tapi sebenarnya data struct yang diakses di dalam method secara default adalah pass by value. Sangat di rekomendasikan untuk menggunakan pointer saat kita membuat method, sehingga tidak boros memory karena data selalu di duplikasi saat method di panggil. Selain itu jika kita tidak menggunakan pointer dan kita melakukan perubahan data pada struct di dalam method maka data aslinya tidak akan ikut berubah.
Method tanpa pointer
package main
import "fmt"
type Man struct {
Name string
}
func (man Man) Married() {
man.Name = "Mr. " + man.Name
}
func main() {
man := Man{
Name: "Rendy",
}
man.Married()
fmt.Println(man.Name)
}

Pada baris kode diatas kita membuat struct Man
yang berisi Name
dan kita juga membuat struct function Married
yang mana jika method tersebut di panggil harapan nya adalah merubah field Name
dan menambahkan “Mr.” di depan nya. Coba jalankan kode diatas dan lihat outputnya

Bisa dilihat jika kita membuat method tanpa pointer maka saat kita merubah data struct di dalam method maka data aslinya tidak ikut berubah, karena secara default saat method di panggil maka di dalam memory akan membuat data baru(pass by value). Nah bagaimana jika kita ingin merubah data aslinya juga, maka kita harus menggunakan operator *
Method dengan pointer
package main
import "fmt"
type Man struct {
Name string
}
func (man *Man) Married() {
man.Name = "Mr. " + man.Name
}
func main() {
man := Man{
Name: "Rendy",
}
man.Married()
fmt.Println(man.Name)
}

Untuk menggunakan pointer pada method sederhanya nya kita hanya perlu menggunakan operator *
saat membuat method. Dengan demikian kita sudah membuat data struct pada method akan me refer ke data aslinya. Coba jalankan kembali kode nya

Bisa dilihat jika menggunakan pointer maka data asli nya juga akan berubah.
Penutup
Pada artikel kali ini kita telah belajar cara menggunakan pointer pada method pada bahasa pemrogaman golang. Dan pada artikel selanjutnya saya akan membahas GOPATH pada golang.