Method dengan pointer pada golang

Golang – Pengenalan dan cara menggunakan pointer pada method

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)
}
Method tanpa pointer pada golang
Method tanpa pointer pada golang

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

Output method tanpa pointer
Output method tanpa pointer

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)
}
Method dengan pointer pada golang
Method dengan pointer pada golang

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

Output method dengan pointer
Output method dengan pointer

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.

Leave a reply:

Your email address will not be published.

Site Footer

Sliding Sidebar

About Me

About Me

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam.

Social Profiles

Facebook