Function di Golang

Dalam pemrograman Golang, function digunakan untuk mengelompokkan kode agar lebih rapi dan bisa digunakan kembali (reusable). Function di Golang mirip seperti di bahasa pemrograman lain, tetapi memiliki beberapa aturan khas.
1. Cara Mendeklarasikan Function di Golang
Di Golang, function dideklarasikan menggunakan kata kunci func, diikuti dengan nama function, parameter (jika ada), tipe return (jika ada), dan isi function dalam {}.
Contoh: Function tanpa parameter dan tanpa return value
package main
import "fmt"
// Mendeklarasikan function
func sayHello() {
fmt.Println("Hello, Golang!")
}
func main() {
// Memanggil function
sayHello()
}Output:
Hello, Golang!2. Function dengan Parameter
Function juga bisa menerima parameter yang digunakan sebagai input.
Contoh: Function dengan parameter
package main
import "fmt"
func greet(name string) {
fmt.Println("Hello,", name)
}
func main() {
greet("Budi")
}Output:
Hello, Budi3. Function dengan Return Value
Function bisa mengembalikan nilai menggunakan return.
Contoh: Function dengan return value
package main
import "fmt"
func add(a int, b int) int {
return a + b
}
func main() {
result := add(3, 5)
fmt.Println("Hasil penjumlahan:", result)
}Output:
Hasil penjumlahan: 84. Function dengan Multiple Return Values
Golang memungkinkan function untuk mengembalikan lebih dari satu nilai.
Contoh: Function dengan multiple return values
package main
import "fmt"
func calculate(a int, b int) (int, int) {
sum := a + b
product := a * b
return sum, product
}
func main() {
sum, product := calculate(4, 5)
fmt.Println("Jumlah:", sum)
fmt.Println("Perkalian:", product)
}Output:
Jumlah: 9
Perkalian: 205. Function dengan Named Return Values
Di Golang, kita bisa memberikan nama pada return values untuk meningkatkan keterbacaan kode.
Contoh: Function dengan named return values
package main
import "fmt"
func divide(a, b float64) (result float64, err string) {
if b == 0 {
err = "Error: Pembagian dengan nol!"
return
}
result = a / b
return
}
func main() {
hasil, err := divide(10, 2)
if err != "" {
fmt.Println(err)
} else {
fmt.Println("Hasil pembagian:", hasil)
}
}Output:
Hasil pembagian: 56. Function sebagai Parameter
Function di Golang bisa diteruskan sebagai parameter ke function lain.
Contoh: Function sebagai parameter
package main
import "fmt"
func operate(a int, b int, operation func(int, int) int) int {
return operation(a, b)
}
func multiply(x int, y int) int {
return x * y
}
func main() {
result := operate(4, 5, multiply)
fmt.Println("Hasil operasi:", result)
}Output:
Hasil operasi: 207. Function sebagai Return Value
Golang juga memungkinkan function mengembalikan function lain.
Contoh: Function mengembalikan function
package main
import "fmt"
func getMultiplier(factor int) func(int) int {
return func(x int) int {
return x * factor
}
}
func main() {
double := getMultiplier(2)
fmt.Println("Hasil:", double(5)) // Output: 10
}Output:
Hasil: 10Kesimpulan
- Function digunakan untuk membungkus logika kode agar lebih modular dan reusable.
- Function bisa memiliki parameter dan return value.
- Function bisa mengembalikan lebih dari satu nilai (multiple return values).
- Function bisa digunakan sebagai parameter atau return value.
- Golang mendukung named return values untuk meningkatkan keterbacaan kode.
Itulah dasar-dasar function di Golang! 🚀 Selamat belajar
Article Series
Golang Basic
Lanjutkan membaca seri ini untuk melihat perjalanan lengkapnya.
- 1Panduan Instalasi Golang di WSL 2 Ubuntu21 Mar 20252 min read
- 2Menginisiasi Project Golang23 Mar 20252 min read
- 3Memulai Program dengan Hello World23 Mar 20252 min read
- 4Tipe Data String, Boolean, dan Number di Golang26 Mar 20253 min read
- 5Tipe Data Array, Slice, dan Map di Golang27 Mar 20252 min read
- 6Panduan Lengkap If-Else dan Switch dalam Golang27 Mar 20253 min read
- 7Function di Golang30 Mar 20253 min readCurrent article
- 8Panic, defer dan recovery di Golang10 Apr 20253 min read
- 9Struct dan Struct Method di Golang10 Apr 20252 min read
- 10Interface dan Interface Kosong di Golang10 Apr 20253 min read
- 11Pointer di Golang14 Apr 20253 min read
- 12🧠Latihan Pointer di Golang14 Apr 20252 min read
- 13Package, Import, dan Access Modifier di Golang16 Apr 20253 min read