Pointer Golang : Contoh Kode dan Penjelasannya

Daftar Isi
Pointer Golang : Contoh Kode dan Penjelasannya

Dalam bahasa pemrograman Golang ( Go ), pointer merupakan fitur yang dapat memungkinkan programmer untuk mengakses dan memodifikasi nilai variabel melalui alamat memorinya. Pointer akan sangat berguna untuk meningkatkan efisiensi, terutama saat bekerja dengan data besar atau struktur data  yang kompleks. Nah, kali ini code dadakan akan membahas lebih detail tentang pointer golang beserta contoh kode sederhana yang akan kami berikan dan beberapa penjelasan yang mungkin bisa anda baca agar dapat mengerti tentang apa itu pointer dalam bahasa pemerograman golang. Lets Go

Apa Itu Pointer

Pointer adalah salah satu fitur penting dalam bahasa pemrograman Golang yang dapat memungkinkan programmer untuk mengakses dan memodifikasi nilai variabel melalui alamat memorinya. Pointer dapat di gunakan untuk meningkatkan efisiensi pengelolaan memori dalam server. Teknik ini dapat di gunakan jika anda ingin bekerja dengan data yang besar dan struktur data yang sangat kompleks.

Di bahasa pemerograman golang, anda dapat menggunakan pointer dengan operator and ( & ), agar kita dapat mendapatkan alamat memori variable. Sedangkan Operator * dapat di gunakan untuk mengakses atau mengubah nilai dari alamat yang sudah di dapatkan.

Ada beberapa keuntungan jika anda menggunakan pointer dalam kode yang anda buat. Contohnya ketika anda menggunakan pointer dalam array,  maka anda dapat menghindari salinan struktur data yang sangat besar. Ini akan berdampak pada memori server jika anda terus menerus menyalin data dari suatu array tanpa menggunakan pointer. 

Tanpa berlama lama, langsung saja kita ke contoh kode. 

Contoh Kode dan Penjelasannya 

Berikut adalah contoh implementasi pointer dalam bahasa pemerograman golang : 

package main

import "fmt"

func main() {
	runExamplePointer()
}

func runExamplePointer() {
	number := 40

	pointerToNumber := &number

	fmt.Println("Sebelum di Ubah")
	fmt.Println("Nilai number:", number)
	fmt.Println("Alamat number:", pointerToNumber)
	fmt.Println("Nilai pointer:", *pointerToNumber)

	modifyWithPointer(pointerToNumber)

	fmt.Println("Setelah di Ubah")
	fmt.Println("Nilai number:", number)
	fmt.Println("Nilai pointer:", *pointerToNumber)
}

func modifyWithPointer(value *int) {
	*value = 100
}

1. Pointer dalam variable number

number := 40
pointerToNumber := &number

Terlihat pada kode di atas, bahwa variable pointerToNumber menyimpan alamat memori dari variable number dengan menggunakan operator and ( & ). 

2. Memodifikasi Nilai dengan Pointer

modifyWithPointer(pointerToNumber)

func modifyWithPointer(value *int) {
    *value = 100
}

Pada fungsi modifyWithPointer, ada sebuah parameter integer yang menerima sebagai pointer ( * ). Dan di dalam fungsi tersebut terdapat code untuk mengubah value menjadi 100. 

Operator * di gunakan agar dapat mengubah nilai dari alamat memori dari variable pointerToNumber. Setalah fungsi tersebut berjalan, maka nilai dari variable number akan berubah menjadi 100. 

Berikut adalah output dari program di atas ketika di jalankan : 

Sebelum di Ubah
Nilai number: 40
Alamat number: 0x1400000e0a8
Nilai pointer: 40
Setelah di Ubah
Nilai number: 100
Nilai pointer: 100

Jadi apakah anda sudah paham tentang pointer di bahasa pemrograman golang ? Perlu di ketahui, teknik pointer ini bukan hanya cuma di bahasa pemerograman golang. Ada bahasa pemerograman C yang pertama kali memperkenalkan tentang pointer dan bahasa C++ juga mendukung pointer dengan fitur tambahan setelah bahasa C. 

Penggunaan pointer sering kali bergantung pada kebutuhan dan kemampuan bahasa pemrograman tersebut untuk mengelola memori. Bahasa modern seperti Rust atau Golang lebih berfokus pada keamanan penggunaan pointer untuk menghindari bug yang umum terjadi di bahasa seperti C atau C++.

Semoga yang kami jelaskan tentang pointer di golang dapat menambah wawasan anda yaa. Terima kasih.

Posting Komentar