# README
Pointer adalah variabel yang menyimpan alamat memori dari nilai atau variabel lain dalam bahasa pemrograman Go (Golang). Dengan kata lain, pointer adalah referensi ke lokasi memori dari suatu nilai, bukan nilai itu sendiri. Pointer memungkinkan Anda untuk mengakses dan memanipulasi nilai yang disimpan dalam lokasi memori tertentu.
Di Go, penggunaan pointer relatif lebih aman daripada dalam beberapa bahasa pemrograman lain karena Go tidak memiliki operasi pointer aritmatika yang memungkinkan akses acak ke memori. Beberapa konsep penting tentang pointer di Go adalah:
- Deklarasi Pointer:
Untuk mendeklarasikan pointer, Anda menggunakan tanda asterisk
*
diikuti oleh tipe data yang akan disimpan oleh pointer tersebut.
Contoh: var x int // Deklarasi pointer ke int var p *int
// Inisialisasi pointer dengan alamat memori dari x p = &x
- Menggunakan Pointer:
Untuk mengakses nilai yang disimpan dalam lokasi memori yang ditunjuk oleh pointer, Anda menggunakan tanda asterisk
*
sebelum pointer.
Contoh:
// Menetapkan nilai 42 ke lokasi memori yang ditunjuk oleh p
*p = 42
fmt.Println(x) // Output: 42
- Operator Referensi &:
Operator
&
digunakan untuk mendapatkan alamat memori dari suatu nilai.
Contoh: var x int p := &x // p adalah pointer ke x
- Nilai Awal Pointer:
Saat pointer dideklarasikan, jika tidak ada nilai awal yang ditetapkan, maka nilainya adalah
nil
. Pointer yang nil menunjukkan bahwa pointer tersebut tidak menunjuk ke lokasi memori apa pun.
Contoh: var p *int // p adalah pointer ke int, nil
- Penggunaan Pointer dalam Fungsi: Pointer sangat berguna ketika Anda ingin mengubah nilai variabel di luar lingkup fungsi.
Contoh: func ubahNilai(v *int) { *v = 10 }
x := 5 ubahNilai(&x) fmt.Println(x) // Output: 10
Penggunaan pointer di Go membantu dalam mengatasi situasi di mana Anda perlu berbagi atau memodifikasi data dengan cara yang efisien. Namun, perlu berhati-hati agar tidak terjadi akses ilegal ke memori, yang dapat menyebabkan "panic".