‹ Daftar slidePertemuan 6: Fungsi dalam Pemrograman: Parameter, Return, dan Scope
Program Studi Bisnis Digital • FEB UNDIP
Algoritma dan Pemrograman
Pertemuan 6 — Fungsi dalam Pemrograman: Parameter, Return, dan Scope
Cara membungkus kode yang berulang jadi blok bernama, mengirim data lewat parameter, mengembalikan hasil dengan return, dan memahami batas jangkauan variabel (scope).
RPS MINGGU 6 • 2 × 50 MENIT
Tujuan Pembelajaran Hari Ini
Setelah pertemuan ini, Anda diharapkan mampu merancang dan menggunakan fungsi untuk menyusun program yang rapi dan tidak berulang. Secara rinci:
CAPAIAN 1
ANATOMI
Menjelaskan struktur fungsi (def, nama, parameter, return) dan manfaat menghindari kode berulang.
CAPAIAN 2
PARAMETER
Membuat fungsi dengan parameter positional, nilai default, dan keyword argument.
CAPAIAN 3
RETURN
Membedakan return dengan print(), dan mengembalikan lebih dari satu nilai sekaligus.
CAPAIAN 4
SCOPE
Membedakan variabel lokal dan global serta dampaknya pada perilaku program.
Mengapa Kita Butuh Fungsi?
Bayangkan Anda baru membangun sistem kasir sederhana untuk toko online UMKM. Tanpa fungsi, tiga masalah ini muncul berulang setiap hari:
MASALAH 1
DUPLIKASI
Rumus hitung diskon di-copy-paste di 10 tempat berbeda dalam kode. Salah satu typo, semua ikut salah.
MASALAH 2
SULIT UBAH
Tarif ongkir berubah? Anda harus cari dan ubah rumus itu satu-satu di seluruh berkas kode.
MASALAH 3
SULIT DIBACA
Kode 200 baris tanpa pengelompokan jadi seperti benang kusut — sulit dilacak logikanya.
Fungsi membungkus logika yang berulang menjadi satu blok bernama, dipanggil sesuka hati — prinsip ini disebut DRY: Don't Repeat Yourself.
Bagian 1 dari 4
Anatomi & Cara Kerja Fungsi
Apa itu fungsi, bagian-bagian penyusunnya, dan bagaimana Python mengeksekusinya saat dipanggil.
defcallreturn
Apa Itu Fungsi? Anatomi def
Fungsi (function) adalah blok kode bernama yang mengerjakan satu tugas tertentu, dan bisa dipanggil ulang kapan pun dibutuhkan.
ANATOMI FUNGSI PYTHON
Fungsi tidak dijalankan saat didefinisikan — baru berjalan ketika dipanggil: hitung_diskon(250000, 15).
Langkah Pertama: Fungsi Paling Sederhana
Fungsi paling dasar tidak butuh parameter dan tidak mengembalikan nilai — ia hanya menjalankan tugas tetap setiap dipanggil.
KODE — CETAK KOP STRUK TOKO
def cetak_header():
print("=====================")
print(" TOKO SEJAHTERA ONLINE")
print("=====================")
# memanggil fungsi
cetak_header()
cetak_header() # dipanggil lagi, tanpa tulis ulang
CIRI-CIRI
TANPA INPUT
Tanda kurung () kosong → tidak ada parameter
Tidak ada return → hanya menampilkan (print)
Bisa dipanggil berkali-kali tanpa menulis ulang isinya
Alur Eksekusi: Apa yang Terjadi Saat Fungsi Dipanggil?
Python tidak membaca kode dari atas ke bawah secara lurus ketika ada pemanggilan fungsi — ia "melompat" sejenak, lalu kembali.
RUNUTAN LANGKAH (perhatikan urutan lompatannya)
1Python membaca baris sapa_pelanggan("Budi") — ini titik pemanggilan.
2Eksekusi melompat ke definisi fungsi def sapa_pelanggan(nama):.
3Nilai "Budi" dititipkan ke parameter nama di dalam fungsi.
4Seluruh badan fungsi dijalankan baris demi baris, dari atas ke bawah.
5Begitu ketemu return (atau badan fungsi habis), eksekusi kembali ke titik pemanggilan tadi.
6Program melanjutkan baris setelah pemanggilan, seolah tidak terjadi apa-apa.
Ini sebabnya definisi fungsi (def) boleh diletakkan di atas, tetapi hanya berjalan saat dipanggil, bukan saat dibaca Python pertama kali.
Fungsi dengan Parameter & Argument
Parameter membuat fungsi fleksibel — satu fungsi bisa dipakai untuk data yang berbeda-beda setiap kali dipanggil.
KODE — SAPAAN PERSONAL PELANGGAN
def sapa_pelanggan(nama):
print("Halo, " + nama + "!")
print("Terima Kasih sudah belanja.")
sapa_pelanggan("Siti")
sapa_pelanggan("Budi")
ISTILAH PENTING — JANGAN TERTUKAR
Parameter — nama variabel di dalam tanda kurung saat fungsi didefinisikan. Contoh: nama.
Argument — nilai sesungguhnya yang dikirim saat fungsi dipanggil. Contoh: "Siti", "Budi".
Bagian 2 dari 4
Parameter Lanjutan: Default & Keyword
Bagaimana membuat parameter opsional dengan nilai bawaan, dan cara memanggil fungsi tanpa terikat urutan.
default valuekeyword argument
Parameter dengan Nilai Bawaan (Default)
Beri nilai bawaan pada parameter agar boleh dilewati saat pemanggilan — praktis untuk kasus yang "biasanya begini, tapi kadang beda".
Manfaat keyword argument: mencegah salah pasang nilai saat parameter banyak dan tipenya mirip (mis. dua parameter angka yang mudah tertukar urutannya).
Hitung dari Nol: Fungsi hitung_diskon()
Mari telusuri persis apa yang terjadi di dalam komputer saat hitung_diskon(250000, 15) dipanggil.
KODE FUNGSI
def hitung_diskon(harga, persen):
diskon = harga * persen / 100
harga_akhir = harga - diskon
return harga_akhir
hasil = hitung_diskon(250000, 15)
JEJAK EKSEKUSI, LANGKAH DEMI LANGKAH
Langkah
Perhitungan
Nilai
Fungsi dipanggil
harga=250000, persen=15
dititipkan ke parameter
Hitung diskon
250.000 × 15 / 100
Rp 37.500
Hitung harga_akhir
250.000 − 37.500
Rp 212.500
return harga_akhir
dikembalikan ke pemanggil
Rp 212.500
Setelah return dieksekusi, variabel hasil di luar fungsi berisi Rp 212.500 — siap dipakai di baris kode berikutnya.
Bagian 3 dari 4
Return Value & Scope Variabel
Perbedaan mendasar antara return dan print, cara mengembalikan banyak nilai, dan wilayah hidup sebuah variabel.
print() ≠ return
return vs print(): Beda yang Krusial
Keduanya sama-sama menampilkan angka di layar — tetapi hanya satu yang bisa dipakai lagi oleh bagian lain program.
HANYA print() — SALAH KAPRAH
def hitung_total(a, b):
print(a + b) # cuma tampil
x = hitung_total(5, 3) # tampil: 8
print(x + 1) # ERROR!
Nilai x berisi None — tidak ada nilai yang dikembalikan untuk dipakai ulang.
DENGAN return — BENAR
def hitung_total(a, b):
return a + b # dikembalikan
x = hitung_total(5, 3)
print(x + 1) # hasil: 9
x benar-benar berisi angka 8, siap dipakai untuk perhitungan lanjutan.
Mengembalikan Lebih dari Satu Nilai
Python mengizinkan satu return mengirim beberapa nilai sekaligus, dipisahkan koma — dikemas otomatis jadi tuple (dibahas pertemuan 7).
KODE — RINCI PESANAN TOKO ONLINE
def rincian_pesanan(harga_satuan, jumlah):
subtotal = harga_satuan * jumlah
ongkir = 12000
total = subtotal + ongkir
return subtotal, ongkir, total # 3 nilai sekaligus# tangkap ketiganya dengan 3 nama variabel
sub, kirim, total_bayar = rincian_pesanan(45000, 2)
print(sub, kirim, total_bayar) # 90000 12000 102000
Jumlah variabel penampung di kiri harus sama persis dengan jumlah nilai yang di-return — kalau tidak, Python akan error.
Scope: Wilayah Hidup Sebuah Variabel
Scope menentukan di bagian mana sebuah variabel bisa "dilihat" dan dipakai dalam program.
GLOBAL SCOPE vs LOCAL SCOPE
Variabel yang dibuat di dalam fungsi (local) otomatis hilang begitu fungsi selesai — hanya bisa diakses lewat return.
Hitung dari Nol: Local Tidak Mengubah Global
Mari buktikan dengan angka bahwa variabel local di dalam fungsi tidak mengubah variabel global di luar fungsi.
Kerjakan di IDE Anda (Thonny/VS Code) selama 15 menit. Kumpulkan berkas .py lewat portal e-learning sebelum kelas berakhir.
SOAL 1 — WAJIB
Buat fungsi hitung_ppn(harga_barang) yang mengembalikan nilai PPN.
Gunakan tarif PPN efektif 11% (PMK 131/2024) sebagai konstanta di dalam fungsi.
Uji dengan harga barang Rp 500.000 — tampilkan hasilnya dengan print().
SOAL 2 — TANTANGAN
Buat fungsi info_pesanan(nama, total, metode="COD") dengan metode berdefault "COD".
Fungsi harus return sebuah tuple berisi nama, total, dan metode.
Panggil sekali dengan default, sekali lagi dengan metode="Transfer" via keyword argument.
Ringkasan & Jembatan ke Pertemuan 7
EMPAT HAL YANG WAJIB ANDA KUASAI
Anatomi:def nama(parameter): lalu badan fungsi menjorok.
Parameter: positional, default, dan keyword argument.
Return: mengembalikan nilai untuk dipakai lagi — beda dari print().
Scope: variabel local hidup & mati di dalam fungsi; global tetap di luar.
MINGGU DEPAN — PERTEMUAN 7
LIST & TUPLE
Fungsi kita hari ini kadang perlu memproses banyak data pelanggan sekaligus — di situlah list dan tuple masuk sebagai wadah data terurut yang akan kita pelajari minggu depan.
Sebelum pertemuan berikutnya, pastikan Anda bisa membuat fungsi tanpa membuka catatan — ini fondasi untuk hampir seluruh sisa semester.