Belajar Golang Dasar #9: Pointer


👍 2 ❤️ 0 💡 0 🔥 0 🙌 0 🥳 0
Belajar Golang Dasar #9: Pointer

Dalam pemrograman, terutama bahasa seperti Golang, pointer adalah konsep penting yang perlu kita pahami. Pointer memungkinkan kita untuk bekerja langsung dengan alamat memori suatu variabel. Ini berguna untuk efisiensi memori, manipulasi data, dan juga dasar dari konsep pass by reference.

Apa Itu Pointer?

Pointer adalah variabel yang menyimpan alamat memori dari variabel lain. Kalau biasanya kita menyimpan dan mengakses nilai, pointer menyimpan dan mengakses alamat dari nilai tersebut.

Deklarasi dan Penggunaan Pointer

  1. Mengambil Alamat Variabel (&)

    var angka int = 10
    var ptr *int = &angka
    
    fmt.Println("Nilai angka:", angka)
    fmt.Println("Alamat angka:", &angka)
    fmt.Println("Pointer ptr:", ptr)
    

    Penjelasan:

    • &angka - mengambil alamat dari variabel angka

    • *int - menyatakan bahwa ptr adalah pointer ke int

  2. Mengakses Nilai dari Pointer (*)

    fmt.Println("Nilai melalui pointer:", *ptr)
    

    *ptr artinya kita mengambil nilai dari alamat yang disimpan di pointer ptr.

Pointer dan Fungsi

Pointer berguna banget saat kita ingin mengubah nilai variabel dari dalam fungsi.

  1. Contoh tanpa pointer (nilai tidak berubah):

    func ubah(x int) {
        x = 100
    }
    
    func main() {
        a := 10
        ubah(a)
        fmt.Println(a) // Tetap 10
    }
    
  2. Contoh dengan pointer (nilai berubah):

    func ubah(x *int) {
        *x = 100
    }
    
    func main() {
        a := 10
        ubah(&a)
        fmt.Println(a) // Jadi 100
    }
    

Pointer Default (new)

Kita juga bisa membuat pointer baru dengan new:

angka := new(int)
*angka = 50
fmt.Println(*angka) // Output: 50

new(int) akan mengalokasikan memori untuk int, dan mengembalikan pointer ke alamat tersebut.

Kesimpulan

Pointer di Golang memungkinkan kita bekerja langsung dengan referensi memori. Dengan memahami cara mengambil alamat (&) dan mengakses nilai dari pointer (*), kita bisa menulis kode yang lebih efisien dan fleksibel, terutama saat bekerja dengan fungsi.

Pointer juga jadi dasar penting saat kita mulai masuk ke struktur data yang lebih kompleks seperti struct, slice, dan interface.

Pada artikel selanjutnya, kita semua akan belajar tentang Array, Slice dan Map di dalam Golang.

Terima Kasih


Fika Ridaul Maulayya
Full-Stack Developer, Content Creator and CO-Founder SantriKoding.com

Suka dengan tulisan di SantriKoding? Kamu bisa memberikan dukungan dengan berdonasi atau bagikan konten ini di sosial media. Terima kasih atas dukungan Anda!

KEBIJAKAN KOMENTAR

Saat memberikan komenatar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami