Pointer
Pada sesi ini akan di bahas apa itu Pointer pada Go
Last updated
Pada sesi ini akan di bahas apa itu Pointer pada Go
Last updated
Pointer adalah suatu variabel yang berisi alamat memori dari suatu nilai atau data.
Perhatikan kode di bawah ini:
Kita bisa lihat bahwa terdapat variabel age
yang berisi nilai 26
. Lalu sebuah variabel x
yang berisi alamat memori dari nilai variabel age
ditandai dengan expression &
di depan nama variabel.
age
berisi nilai 26
x
berisi alamat memori tempat nilai age
yaitu 26
tersimpan
Lalu bagaimana jika kita ingin mendapatkan nilai age
dari variabel x
atau biasa disebut dereferrencing? Kita dapat melakukannya dengan cara menggunakan expression *
di depan variabel x
seperti di bawah ini:
Masih menggunakan contoh di atas, bagaimana jika kita meng-assign variabel baru pada variabel x
?
Variabel x
telah memiliki keterikatan dengan variabel age
yaitu variabel x
berisi alamat memori dari nilai age
. Jadi jika kita mengubah atau meng-assign nilai baru ke dalam variabel x
maka akan mengubah juga nilai dari variabel age
karena berada di memori yang sama.
Pada kode di atas jika kita ingin meng-assign nilai baru pada variable Pointer, maka harus menambahkan expression *
di depan variabel sehingga menjadi *x = 30
.
var
Jika kita mendeklarasikan pointer dengan menggunakan keyword var
ada perbedaan sedikit di penulisan sintaks:
Untuk hasil kode di atas akan sama dengan hasil program sebelumnya. Yang perlu diperhatikan adalah saat mendeklarasikan variabel untuk di jadikan sebagai Pointer harus di tambahkan expression *
di depan tipe data.
Salah satu contoh penerapan Pointer adalah ingin mengakses data yang ada di dalam function. Pada kode di bawah ini terdapat sebuah function change
yang mengembalikan nilai baru new
ke nilai yang lama old
.
Untuk bisa mengakses nilai yang sama dengan yang ada di dalam function change
, maka kita bisa menggunakan Pointer seperti berikut ini: