Apa Itu Statement `return`, Fungsinya?
Fungsi statemen return pada sebuah fungsi

Statemen return apa fungsinya?” Banyak pemula yang di saat memulai jalannya di programming kebingungan saat memahami apa itu statemen return dan fungsinya. Sejujurnya saya juga memerlukan waktu beberapa saat untuk mengerti tentang fungsi dari statement return ini. Mungkin banyak orang Indonesia yang memahami statemen return dengan cara menerjemahkannya ke bahasa Indonesia, menjadi “kembali”, “mengembalikan”, dan lain-lain. Yup, itu bisa saja benar, tetapi kita perlu lihat seperti apa “mengembalikan” yang dimaksud di sini.

Pertama-tama yang harus seseorang tahu untuk mengerti fungsi dari return adalah statemen ini banyak kaitannya dengan fungsi (function) di dalam pemrograman. Tidak ada statement return yang muncul di luar fungsi, hal ini menunjukan bahwa return adalah sebuah bagian daripada sebuah fungsi.

Sekarang kita lihat lagi apa itu fungsi (function). Fungsi biasa digunakan agar sebuah bagian daripada sebuah program bisa digunakan berulang kali. Fungsi yang tidak menghasilkan nilai apapun bisa disebut dengan method (metode).

Misal kita ingin menghitung luas lingkaran-lingkaran, kita diberikan jari-jari dari lingkaran-lingkaran tersebut.

# Kita bisa menuliskan
jari1 = 7
luas1 = 3.14 * (jari1**2)

jari2 = 8
luas2 = 3.14 * (jari2**2)

jari3 = 9
luas3 = 3.14 * (jari3**2)

print("luas1 = %d, luas2 = %d, luas3 = %d" % (luas1, luas2, luas3))

Bisa melihat dimana perulangannya? Ya, perulangannya ada pada pernyataan dalam menghitung luas jari-jarinya (luas1, luas2, luas3). Mereka semua sama, sehingga langkah tersebut bisa kita jadikan sebuah fungsi. Cek kode di bawah.

def hitung_luas_lingkaran(jari_jari):
    return 3.14 * (jari_jari**2)  # pi * jari-jari^2

jari1 = 7
luas1 = hitung_luas_lingkaran(jari1)

jari2 = 8
luas2 = hitung_luas_lingkaran(jari2)

jari3 = 9
luas3 = hitung_luas_lingkaran(jari3)

print("luas1 = %d, luas2 = %d, luas3 = %d" % (luas1, luas2, luas3))

Jika Anda menjalankan kedua program tersebut, mereka akan menghasilkan hasil yang sama (nilai variabel-variabel dan string yang diprint ke console).

luas1 = 153, luas2 = 200, luas3 = 254

Sudah mendapat gambaran tentang statement return ini? Pada dasarnya statemen ini mengembalikan (meng-output) sebuah nilai, sehingga nilai tersebut nantinya bisa digunakan oleh bagian lain dari sebuah program. Perlu diketahui juga, fungsi hanya bisa mengeluarkan sebuah nilai[1], yang artinya hanya akan ada satu statement return yang dijalankan meskipun ada banyak statement return pada sebuah fungsi.

Lihat kode di bawah.

def hitung_luas_lingkaran(jari_jari):
    return 3.14 * (jari_jari**2)  # pi * jari-jari^2
    return 'refeeeeeeeeeeeeeeeeed'

jari1 = 7
luas1 = hitung_luas_lingkaran(jari1)

jari2 = 8
luas2 = hitung_luas_lingkaran(jari2)

jari3 = 9
luas3 = hitung_luas_lingkaran(jari3)

print("luas1 = %d, luas2 = %d, luas3 = %d" % (luas1, luas2, luas3))

Pada fungsi hitung_luas_lingkaran yang sudah dimodifikasi di atas, kita memiliki dua statement return, lalu mana statement return yang akan dijalankan? Seperti yang dikatakan sebelumnya, hanya akan ada satu return yang akan dijalankan, yang artinya setelah sebuah statement return dijalankan di sebuah fungsi maka fungsi tersebut sudah selesai dijalankan. Umumnya program mengeksekusi kode dari atas ke bawah secara berurutan, jadi hanya statement return yang atas saja yang dijalankan, setelah itu fungsi sudah selesai dijalankan.

Anda bisa menjalankan kode di atas dan masih mendapatkan hasil yang sama dengan sebelumnya.

Fungsi yang tidak memiliki return

Ada juga fungsi yang tidak memiliki statement return, fungsi ini umumnya disebut method karena hanya menjalankan langkah-langkah yang ada di dalam fungsinya dan tidak menghasilkan nilai apapun.

Lihat kode di bawah

buah = ['jeruk', 'mangga', 'lemon']
buah.append('naga')

hewan = ['kucing', 'jerapah']
hewan.append('naga')

print('buah = ', buah)
print('hewan = ', hewan)

Kita bisa mengubah program tersebut menjadi seperti kode di bawah.

def tambah_naga(array):
    array.append('naga')

buah = ['jeruk', 'mangga', 'lemon']
tambah_naga(buah)

hewan = ['kucing', 'jerapah']
tambah_naga(hewan)

print('buah = ', buah)
print('hewan = ', hewan)

Kedua program di atas akan mencetak string yang sama ke console yaitu:

buah =  ['jeruk', 'mangga', 'lemon', 'naga']
hewan =  ['kucing', 'jerapah', 'naga']

Jika kita lihat ke fungsi tambah_naga di atas, tidak ada statement return yang tertulis sehingga fungsi ini tidak akan menghasilkan sebuah nilai apabila kita masukkan nilai tersebut ke variabel, contoh:

def tambah_naga(array):
    array.append('naga')

buah = ['jeruk', 'mangga', 'lemon']
nilai_tambah_naga = tambah_naga(buah)

print('buah = ', buah)
print('nilai_tambah_naga = ', nilai_tambah_naga)

Akan mencetak string berikut ke console:

buah =  ['jeruk', 'mangga', 'lemon', 'naga']
nilai_tambah_naga =  None

Dimana bisa kita lihat bahwa nilai variable nilai_tambah_naga adalah None (None adalah sebuah objek dalam Python yang biasa digunakan untuk merepresentasikan ketidakadaan).

Hanya sidenote, sebenarnya Python menambahkan return None pada akhir sebuah fungsi yang tidak memiliki sebuah return. Anda juga bisa mengekspresikan statement tersebut secara eksplisit dengan mengubah fungsi tambah_naga menjadi:

def tambah_naga(array):
    array.append('naga')
    return None

atau

def tambah_naga(array):
    array.append('naga')
    return

Mereka akan menjalankan langkah yang sama dan output dari program sebelumnya tidak berubah.

Fungsi dari method tambah_naga adalah menambahkan string 'naga' ke dalam sebuah array dan tidak mengoutput nilai apapun.

Memanfaatkan return untuk menjaga kode agar tetap simpel

Kita bisa memanfaatkan tingkah laku statement return untuk menjaga kode kita agar tetap simpel, seperti yang kita ketahui bahwa jika sebuah statement return sudah dijalankan di sebuah fungsi, maka fungsi tersebut sudah selesai dijalankan.

Misalnya kita memiliki sebuah fungsi untuk menunjukan apakah sebuah angka itu genap atau ganjil.

def apakah_genap(angka):
    if angka % 2 == 0:
        return True
    else
        return False

Kita juga bisa menuliskan fungsi di atas seperti di bawah ini:

def apakah_genap(angka):
    if angka % 2 == 0:
        return True
    return False

Kedua fungsi tersebut akan menghasilkan hasil yang sama. Lebih simpel bukan?

Apa bedanya dengan print() ?

Banyak pemula yang salah mengerti bahwa print() juga menghasilkan nilai atau berperan layaknya return karena fungsi ini mencetak sebuah string ke console mereka. Sebenarnya bukan begitu, print() merupakan sebuah method, yang berarti fungsi ini hanya menjalankan langkah-langkah yang berkaitan dengan mencetak sebuah string ke console, dan tidak menghasilkan nilai apa-apa (None).

Lihat contoh di bawah

a = print('refeed')
print(a)

Program tersebut akan mencetak string berikut ke console:

refeed
None

Pada program di atas kita melihat bahwa variabel a akan dimasuki oleh hasil dari statement print('refeed') dan pada baris ke-2 kita mencetak nilai dari variabel a. Pada console ditampilkan refeed dan None. String refeed pada console dicetak oleh statement print('refeed') dan string None pada console dicetak oleh print(a), yang artinya a bernilai None dan print('refeed') tidak menghasilkan nilai apa-apa.

Demikian post kali ini, jadi intinya return adalah statemen yang berfungsi untuk mengeluarkan (mengembalikan, mengoutputkan) nilai dari sebuah fungsi yang dimana nilai yang sudah dihasilkan tadi akan diproses oleh bagian lain daripada program.

Jika ada saran ataupun komentar, silakan tulis pada kolom komentar yang ada di bawah artikel ini, terimakasih. Tujuan dari artikel ini adalah untuk menjelaskan semudah-mudahnya kepada seorang pemrogram pemula yang baru belajar pemrograman khususnya tentang statement return.

[1] Sebuah nilai yang dimaksud disini adalah sebuah objek, dengan kata lain fungsi bisa saja me-return sebuah list yang berisi banyak nilai, tetapi tetap saja list itu adalah sebuah objek.

*****
Written by Rafid Aslam on 10 June 2019