Sebagaimana pentingnya sebuah function dari sebuah bahasa pemrograman golang, Kali ini saya akan membahas tentang Function Arguments dan Function Usage. Lanjutan dari materi sebelumnya yaitu, Pengertian Functions dalam Bahasa Pemrograman Golang Part . Jika suatu fungsi adalah untuk menggunakan argumen, itu harus mendeklarasikan variabel yang menerima nilai argumen. Variabel-variabel ini disebut parameter formal fungsi. Parameter formal berperilaku seperti variabel lokal lainnya di dalam fungsi dan dibuat saat masuk ke fungsi dan dihancurkan saat keluar.
Saat memanggil suatu fungsi, ada dua cara argumen dapat dilewatkan ke suatu fungsi –
- Metode call by value menyampaikan argumen ke suatu fungsi menyalin nilai aktual argumen ke dalam parameter formal dari fungsi tersebut. Dalam hal ini, perubahan yang dilakukan pada parameter di dalam fungsi tidak berpengaruh pada argumen.Secara default, bahasa pemrograman Go menggunakan metode panggilan dengan nilai untuk menyampaikan argumen. Secara umum, ini berarti bahwa kode dalam suatu fungsi tidak dapat mengubah argumen yang digunakan untuk memanggil fungsi. Pertimbangkan definisi fungsi swap () sebagai berikut.
12345678910/* definisi fungsi untuk menukar nilai */func swap(int x, int y) int {var temp inttemp = x /* simpan nilai x */x = y /* put y into x */y = temp /* put temp into y */return temp;}
Sekarang, mari kita panggil fungsi swap () dengan memberikan nilai aktual seperti pada contoh berikut –
123456789101112131415161718192021222324252627package mainimport "fmt"func main() {/* local variable definition */var a int = 100var b int = 200fmt.Printf("Before swap, value of a : %d\n", a )fmt.Printf("Before swap, value of b : %d\n", b )/* calling a function to swap the values */swap(a, b)fmt.Printf("After swap, value of a : %d\n", a )fmt.Printf("After swap, value of b : %d\n", b )}func swap(x, y int) int {var temp inttemp = x /* save the value of x */x = y /* put y into x */y = temp /* put temp into y */return temp;}
hasil-
1234Before swap, value of a :100Before swap, value of b :200After swap, value of a :100After swap, value of b :200
- Metode panggilan dengan referensi meneruskan argumen ke suatu fungsi menyalin alamat argumen ke dalam parameter formal. Di dalam fungsinya, alamat tersebut digunakan untuk mengakses argumen aktual yang digunakan dalam panggilan. Ini berarti bahwa perubahan yang dilakukan pada parameter mempengaruhi argumen yang diteruskan.Untuk meneruskan nilai dengan referensi, pointer argumen dilewatkan ke fungsi seperti nilai lainnya. Dengan demikian, Anda perlu mendeklarasikan parameter fungsi sebagai tipe pointer seperti pada swap fungsi (), yang menukar nilai-nilai dari dua variabel integer yang ditunjukkan oleh argumennya.
1234567/* definisi fungsi untuk swap nilai */func swap(x *int, y *int) {var temp inttemp = *x /* simpan nilai di x */*x = *y /* put y into x */*y = temp /* put temp into y */}
Untuk saat ini, mari kita panggil fungsi swap () dengan memberikan nilai dengan referensi seperti pada contoh berikut –
123456789101112131415161718192021222324package mainimport "fmt"func main() {/* local variable definition */var a int = 100var b int = 200fmt.Printf("Before swap, value of a : %d\n", a )fmt.Printf("Before swap, value of b : %d\n", b )swap(&a, &b)fmt.Printf("After swap, value of a : %d\n", a )fmt.Printf("After swap, value of b : %d\n", b )}func swap(x *int, y *int) {var temp inttemp = *x /* simpan nilai di x */*x = *y /* put y into x */*y = temp /* put temp into y */}
hasil –
1234Before swap, value of a :100Before swap, value of b :200After swap, value of a :200After swap, value of b :100
Oke itulah tadi pembahasan saya tentang Pengertian Functions dalam Bahasa Pemrograman Golang Part 2, untuk Function Usage kita akan membahas pada pertemuan selanjutnya semoga bermanfaat.