Pointer
Pada sesi ini akan di bahas apa itu Pointer pada Go
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.
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:


Mengubah nilai dari variabel yang mengakses suatu memori
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 .
Menggunakan pointer dengan keyword var
varJika 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.
Penerapan Pointer
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:

Last updated
Was this helpful?