Artikel ini bagian dari seri Belajar Python Level Basic di hanifmu.com. Di artikel sebelumnya kita sudah membahas Parameter dan Argument. Sekarang kita bahas cara function menyerahkan hasil kerjanya.
Function yang hanya print() memang menampilkan sesuatu, tapi nilainya tidak bisa diolah lagi. Kalau hasilnya ingin dipakai di tempat lain, function perlu mengembalikan nilai.
return Statement
return mengakhiri function dan mengirim sebuah nilai kembali ke pemanggil:
def luas_persegi(sisi):
return sisi * sisi
hasil = luas_persegi(4)
print(hasil) # 16
Nilai yang dikembalikan bisa langsung dipakai dalam ekspresi lain:
print(luas_persegi(4) + luas_persegi(5)) # 41
Setelah return dijalankan, function berhenti. Kode setelahnya tidak akan dieksekusi:
def cek(n):
if n < 0:
return "negatif"
return "positif atau nol"
print(cek(-5)) # negatif
Mengembalikan Banyak Nilai
Python memungkinkan function mengembalikan beberapa nilai sekaligus. Cukup pisahkan dengan koma:
def bagi(a, b):
return a // b, a % b
hasil, sisa = bagi(10, 3)
print(hasil) # 3
print(sisa) # 1
Sebenarnya Python membungkus nilai-nilai itu menjadi satu tuple. Kamu juga bisa menyimpannya sebagai tuple utuh:
def statistik(angka):
return min(angka), max(angka), sum(angka)
hasil = statistik([3, 1, 4, 1, 5])
print(hasil) # (1, 5, 14)
print(type(hasil)) # <class 'tuple'>
Function Tanpa return
Function yang tidak memakai return tetap mengembalikan nilai, yaitu None:
def sapa(nama):
print(f"Halo, {nama}!")
hasil = sapa("Budi")
print(hasil) # None
Jadi ada perbedaan antara menampilkan dan mengembalikan:
print()menampilkan teks ke layar, nilainyaNone.returnmengirim nilai ke pemanggil, tidak menampilkan apa pun.
Perbedaan print() dan return
Perbedaan ini sering membingungkan. Perhatikan dua function berikut:
def luas_print(sisi):
print(sisi * sisi)
def luas_return(sisi):
return sisi * sisi
Function pertama menampilkan hasil, tapi tidak bisa diolah:
hasil = luas_print(4) # menampilkan 16
print(hasil) # None
Function kedua mengembalikan nilai, tapi tidak menampilkan apa pun:
hasil = luas_return(4)
print(hasil) # 16
Kalau nilai ingin dipakai untuk perhitungan lanjutan, gunakan return. Gunakan print() hanya saat memang ingin menampilkan sesuatu.
return untuk Keluar Lebih Awal
return bisa dipakai untuk menghentikan function lebih awal, misalnya saat menemukan kondisi khusus:
def bagi_aman(a, b):
if b == 0:
return "Tidak bisa dibagi nol"
return a / b
print(bagi_aman(10, 2)) # 5.0
print(bagi_aman(10, 0)) # Tidak bisa dibagi nol
Pola ini membuat function lebih mudah dibaca karena kasus khusus ditangani lebih dulu.
Contoh Program: Analisis Nilai
Mari buat function yang mengembalikan beberapa hasil sekaligus:
# analisis_nilai.py
def analisis(nilai):
"""Mengembalikan rata-rata, nilai tertinggi, dan status kelulusan."""
rata_rata = sum(nilai) / len(nilai)
tertinggi = max(nilai)
lulus = rata_rata >= 75
return rata_rata, tertinggi, lulus
data = [78, 85, 92, 67, 88]
rata, tertinggi, lulus = analisis(data)
print(f"Rata-rata: {rata:.1f}")
print(f"Tertinggi: {tertinggi}")
print(f"Status: {'Lulus' if lulus else 'Tidak lulus'}")
Output:
Rata-rata: 82.0
Tertinggi: 92
Status: Lulus
Nilai yang dikembalikan langsung di-unpack ke tiga variabel.
Kesalahan Umum Pemula
- Mengira
print()mengembalikan nilai —print()menghasilkanNone. - Lupa
return— function mengembalikanNonetanpa peringatan. - Menulis kode setelah
return— tidak akan pernah dijalankan. - Mengira banyak nilai dikembalikan sebagai list — sebenarnya tuple.
- Mencampur
print()danreturntanpa sadar — hasilnya tidak bisa diolah.
Ringkasan
returnmengakhiri function dan mengirim nilai ke pemanggil- Kode setelah
returntidak dijalankan - Function bisa mengembalikan banyak nilai, dibungkus sebagai tuple
- Function tanpa
returnmengembalikanNone print()menampilkan,returnmengembalikan; keduanya berbeda tujuan- Gunakan
returnbila nilai ingin dipakai untuk perhitungan lanjutan
Langkah Selanjutnya
Function-mu kini bisa menerima masukan dan mengembalikan hasil. Tapi ada satu hal yang perlu dipahami: dari mana asal variabel yang dipakai di dalam maupun di luar function.
Artikel selanjutnya membahas Scope Variabel di Python, cara Python menentukan variabel mana yang bisa diakses di mana.
