Fungsi: Memisahkan Masukan, Proses, dan Hasil

Buat fungsi Python yang bisa dipakai ulang dan bedakan return dari print.

Mapel
Pemrograman
Jenjang
SMA
Waktu baca
3 menit
Terbit
8 Oktober 2026

Tujuan belajar

Kamu dapat menulis fungsi dengan parameter, menelusuri nilai balik, dan menguji fungsi dengan lebih dari satu masukan.

Bekal awal

Kamu sudah mengenal variabel, operasi hitung, percabangan, serta perulangan dasar Python.

Mengapa membuat fungsi?

Bayangkan tiga bagian program perlu menghitung harga setelah diskon. Menyalin rumus di tiga tempat membuat perbaikan lebih sulit: satu salinan dapat tertinggal ketika aturan berubah. Fungsi memberi nama pada langkah yang dapat dipanggil kembali. Kata def diikuti nama, parameter dalam kurung, dan titik dua. Parameter adalah nama lokal yang menerima nilai saat fungsi dipanggil. Baris di dalam fungsi menjorok. Pernyataan return mengirim hasil ke pemanggil dan mengakhiri eksekusi fungsi pada jalur itu.

Fungsi yang hanya print menampilkan teks, tetapi tidak otomatis memberikan angka untuk perhitungan berikutnya. Sebaliknya, fungsi yang return dapat digunakan dalam penetapan, perbandingan, atau perhitungan lain. Pilih nama yang menggambarkan hasil, seperti harga_setelah_diskon. Rancang satu tanggung jawab yang jelas, lalu uji contoh biasa dan batas. Jangan mengandalkan variabel dari luar jika masukan itu bisa dinyatakan sebagai parameter; ketergantungan tersembunyi membuat fungsi sulit dipahami.

Contoh kerja 1: diskon tetap

def setelah_diskon(harga, potongan):
    return harga - potongan

bayar = setelah_diskon(50000, 8000)
print(bayar)

Jejak: harga menerima 50000 dan potongan menerima 8000. Ekspresi return menghasilkan 42000. Nilai itu disimpan pada bayar, kemudian print mengeluarkan “42000”. Pemanggilan lain, setelah_diskon(20000, 5000), menghasilkan 15000 tanpa mengubah rumus fungsi. Nilai parameter untuk satu pemanggilan tidak menetap sebagai nilai pemanggilan berikutnya.

Contoh kerja 2: syarat lulus

def status(nilai):
    if nilai >= 75:
        return "lulus"
    return "belum lulus"

print(status(75))
print(status(74))

Untuk 75, syarat benar dan return pertama memberi “lulus”; return berikutnya tidak dicapai. Untuk 74, syarat salah, lalu return di akhir memberi “belum lulus”. Keluaran dua baris itu mengikuti urutan pemanggilan. Baris return terakhir menjadi jalur alternatif tanpa perlu else karena jalur benar sudah berakhir.

Kesalahan umum dan debugging

Kesalahan lazim adalah menulis print(harga - potongan) di dalam fungsi lalu mengharapkan bayar berisi angka. Fungsi seperti itu mengembalikan None secara implisit. Jika muncul TypeError ketika bayar dipakai dalam perhitungan, cek apakah setiap jalur fungsi benar-benar mengembalikan nilai yang dimaksud. Kesalahan lain ialah menukar urutan argumen: setelah_diskon(8000, 50000) menghasilkan bilangan negatif. Tuliskan arti tiap parameter dan coba satu masukan yang hasilnya mudah dihitung dengan tangan. Untuk fungsi dengan cabang, uji nilai di bawah, tepat pada, dan di atas batas.

Periksa kontrak fungsi

Sebelum memanggil fungsi baru, tulis contoh pasangan masukan dan keluaran yang diharapkan. Untuk setelah_diskon, pertimbangkan apakah potongan boleh lebih besar dari harga. Kode contoh akan mengembalikan nilai negatif; secara aritmetika itu benar, tetapi mungkin tidak sesuai aturan toko. Jika potongan seperti itu dilarang, tambahkan pemeriksaan dan jelaskan bagaimana fungsi melaporkan masukan salah. Bedakan kesalahan aturan dari kesalahan sintaks. Fungsi yang dapat dijalankan belum tentu memenuhi kebutuhan. Coba juga pemanggilan berulang dengan argumen berbeda untuk memastikan hasil pemanggilan pertama tidak tersimpan dan memengaruhi pemanggilan kedua.

Ringkasan dan latihan

Fungsi mengemas langkah dengan masukan dan nilai balik yang jelas. Buat fungsi biaya_total(harga, jumlah) yang mengembalikan hasil perkalian. Uji (3000, 2), (3000, 0), dan (0, 5). Jelaskan mengapa tiga contoh itu menguji perilaku yang berbeda.

python · 5 baris
def setelah_diskon(harga, potongan):
    return harga - potongan

bayar = setelah_diskon(50000, 8000)
print(bayar)
Fungsi diskon mengembalikan nilai untuk dipakai lagi

Sumber belajar

Penjelasan dan contoh disusun ulang untuk materi ini; sumber dapat dibuka untuk belajar lebih lanjut.

Cek pemahaman: Fungsi: Memisahkan Masukan, Proses, dan Hasil

Lembar kerja · jawab langsung di halaman ini

Soal
3

Memuat soal…