#22: Function Return Value - Belajar Golang Dari Dasar

By Rizky Kurniawan - July 14, 2022 ~4 mins read
Artikel ini merupakan bagian dari seri Belajar Golang Dari Dasar

Function Return Value

Sebuah function dapat mengembalikan data. Data ini kemudian dapat kita gunakan kembali untuk proses yang lainnya. Sebagai contoh, ketika kita membuat sebuah function yang melakukan operasi penjumlahan dan ingin menggunakan hasil dari penjumlahan untuk operasi yang lain di luar function, kita bisa menggunakan return value pada function.

Untuk membuat function yang mengembalikan data, kita harus menentukan tipe data yang dikembalikan saat mendeklarasikan function. Function yang dideklarasikan dengan tipe data kembalian wajib mengembalikan data. Untuk mengembalikan data, kita bisa menggunakan keyword return lalu diikuti dengan data yang dikembalikan.

Perhatikan contoh kode berikut ini.

package main

import "fmt"

func sum(value1 float32, value2 float32) float32 {
	return value1 + value2
}

func main() {
	result := sum(10, 10)

	fmt.Println("Hasil:", result)
}

output:

Hasil: 20

Pada contoh di atas kita mendeklarasikan function bernama sum dengan dua parameter dan mengembalikan data dengan tipe float32. Di dalamnya, dengan keyword return kita mengembalikan hasil penjumlahan value1 dan value2. Dalam function main, kita memanggil function sum untuk menjumlahkan nilai 10 dan 10. Hasil kembalian dari function kita simpan dalam variabel result, dan terakhir kita tampilkan menggunakan Println.

Kita juga dapat menggunakan keyword return untuk mengembalikan data yang berbeda sesuai dengan pengkondisian.

package main

import "fmt"

func isMarried(married bool) string {
	if married {
		return "Sudah nikah"
	} else {
		return "Belum nikah"
	}
}

func main() {

	isMarried := isMarried(false)

	fmt.Println(isMarried)
}

output:

Belum nikah

Perlu kamu ketahui, kode apapun yang ditulis sejajar setelah keyword return tidak akan dieksekusi dan hanya akan menghasilkan error di kode kita. Oleh karena itu, keyword return diletakkan di bagian akhir operasi pada function.

Return Multiple

Di golang, function dapat mengembalikan lebih dari satu data, baik itu dengan tipe data yang sama atau yang berbeda. Untuk mengembalikan lebih dari satu data, kita harus menuliskan semua tipe data kembaliannya ketika mendeklarasikan function dibungkus menggunakan tanda kurung, dan memisahkan data yang dikembalikan dengan koma pada keyword return.

Perhatikan contoh kode berikut.

package main

import "fmt"

func rectangle(sideLength float32) (float32, float32) {
	area := sideLength * sideLength
	perimeter := sideLength * 4

	return area, perimeter
}

func main() {
	area, perimeter := rectangle(3)

	fmt.Println("Luas Persegi:", area)
	fmt.Println("Keliling Persegi:", perimeter)
}

putput:

Luas Persegi: 9
Keliling Persegi: 12

Pada contoh diatas kita mendeklarasikan function yang digunakan untuk menghitung luas dan keliling persegi. Untuk mengambil data kembaliannya, dalam function main kita membuat dua variabel yaitu area dan perimeter dipisah dengan koma. Urutan variabel harus sesuai dengan urutan data yang dikembalikan oleh function.

Seperti yang kita ketahui, di golang kita tidak diperbolehkan untuk mendeklarasikan variabel yang tidak kita gunakan. Lalu bagaimana jika kita hanya ingin menggunakan salah satu data kembaliannya saja. Misal hanya mengambil hasil keliling?

Untuk mengabaikan data kembalian yang tidak diinginkan kita cukup mengganti variabel dengan underscore (_). Perhatikan potongan kode berikut ini.

func main() {
	_, perimeter := rectangle(3)

	fmt.Println("Keliling Persegi:", perimeter)
}

Named Return Value

Menurut saya ini adalah fitur unik yang dimiliki golang, dimana bisa menamai data kembalian dari sebuah function. Untuk menamai data kembalian, kita bisa menuliskan namanya kemudian diikuti dengan tipe datanya. Sebenarnya ini terlihat seperti mendeklarasikan variabel ketika mendeklarasikan function.

Berikut ini contoh kode menghitung luas dan keliling persegi yang sudah dirubah menjadi menggunakan named return value.

package main

import "fmt"

func rectangle(sideLength float32) (area float32, perimeter float32) {
	area = sideLength * sideLength
	perimeter = sideLength * 4

	return
}

func main() {
	area, perimeter := rectangle(3)

	fmt.Println("Luas Persegi:", area)
	fmt.Println("Keliling Persegi:", perimeter)
}

putput:

Luas Persegi: 9
Keliling Persegi: 12

Ketika menggunakan named return value, kita tidak wajib menuliskan datanya ketika memanggil keyword return. Selain itu, nama data yang ditulis ketika dekarasi function bertindak sebagai variabel pada umumnya, sehingga kita tidak bisa mendeklarasikan variabel dengan nama yang sama seperti nama data yang dikembalikan. Hal inilah yang menyebabkan kita mengganti := menjadi = dalam function rectangle.

Untuk mengabaikan data kembalian, kita bisa mengganti nama variabel menjadi underscore (_) sama seperti sebelumnya.

func main() {
	_, perimeter := rectangle(3)

	fmt.Println("Keliling Persegi:", perimeter)
}

Berikutnya: #23: Variadic Function

Tags: #golang
Bagikan:

Ingin Berdiskusi?

Yuk bergabung di Grup Telegram Ruang Developer atau mulai diskusi melalui GitHub. See You!

Dapatkan contoh source code project backend, frontend, atau fullstack untuk kamu amati, tiru, dan modifikasi sesuka hati. Klik untuk melihat detail!
comments powered by Disqus

Berlangganan Gratis

Kamu akan menerima email update dari Ruang Developer

Beri Dukungan

Beri dukungan, dapatkan full source code project web untuk bahan referensi, tiru, dan modifikasi.
Lightbox