- Bab 8 dari 11
- 30 menit
- 1 latihan kode
- 4 soal kuis
Fungsi dan Modul
Di bab ini (10 bagian)
Tujuan bab ini
- Membuat fungsi dengan
def, parameter, nilai default,return, dan docstring. - Membedakan
returndenganprint, serta memahami scope variabel secara sederhana. - Memakai modul bawaan lewat
import,from, danas, lalu memasang library dari PyPI denganpipdi dalamvenv.
Kenapa perlu fungsi
Bayangkan kamu menulis rumus diskon yang sama di sepuluh tempat. Lalu aturan diskonnya berubah. Kamu harus mencari dan mengganti sepuluh tempat itu, dan kemungkinan besar ada satu yang terlewat.
Fungsi menyelesaikan masalah itu. Fungsi adalah blok kode bernama yang bisa dipanggil berulang kali. Analoginya seperti resep: kamu menulis resepnya sekali, lalu bisa memasak kapan saja hanya dengan menyebut nama resepnya. Prinsip ini sering disebut DRY, Don't Repeat Yourself.
Membuat fungsi dengan def
Output:
Mari bedah bagian-bagiannya:
| Bagian | Contoh | Fungsinya |
|---|---|---|
def | def sapa(...) | kata kunci untuk membuat fungsi |
| Parameter | nama | data masukan fungsi |
| Parameter default | salam="Halo" | nilai bawaan bila tidak diisi |
| Docstring | """Mengembalikan...""" | dokumentasi singkat fungsi |
return | return f"..." | mengirim hasil ke pemanggil |
Nilai yang kamu kirim saat memanggil fungsi, seperti "Dewi", disebut argumen. Parameter adalah "wadahnya", argumen adalah "isinya".
Parameter default membuat argumen jadi opsional. Aturannya: parameter dengan default harus ditulis setelah parameter tanpa default. def sapa(salam="Halo", nama): akan memicu SyntaxError.
Kamu juga bisa memanggil fungsi dengan nama parameter (keyword argument), misalnya sapa(salam="Hai", nama="Budi"). Urutannya jadi bebas dan kodenya lebih jelas dibaca.
Docstring
Docstring adalah string bertanda kutip tiga yang ditulis tepat di bawah baris def. Isinya penjelasan singkat tentang apa yang dilakukan fungsi. Editor seperti VS Code menampilkannya saat kursor diarahkan ke nama fungsi, dan kamu bisa melihatnya dengan help(sapa).
return vs print
Ini salah satu kebingungan terbesar pemula. Keduanya sama-sama "mengeluarkan sesuatu", tapi tujuannya berbeda.
printmenampilkan teks ke layar untuk dibaca manusia. Nilainya tidak bisa dipakai lagi oleh program.returnmengirim nilai kembali ke pemanggil, sehingga bisa disimpan di variabel, dihitung, atau dikirim ke fungsi lain.
Fungsi tanpa return otomatis mengembalikan None. Itulah sebabnya a berisi None dan a + 1 akan error. Aturan praktisnya: fungsi yang menghitung sebaiknya memakai return, lalu biarkan pemanggil yang memutuskan mau mencetak atau tidak.
Begitu return dijalankan, fungsi langsung selesai. Baris di bawahnya di dalam fungsi tidak akan dieksekusi.
Lambda: fungsi satu baris
Lambda adalah fungsi singkat tanpa nama yang hanya berisi satu ekspresi.
Lambda paling berguna saat fungsi kecil dibutuhkan sekali, misalnya sebagai key untuk sort, sorted, max, atau min. Untuk logika yang lebih dari satu baris, tetap pakai def agar mudah dibaca.
Scope sederhana
Variabel yang dibuat di dalam fungsi bersifat lokal: hanya hidup selama fungsi berjalan dan tidak terlihat dari luar.
Sebaliknya, fungsi bisa membaca variabel global yang dibuat di luar fungsi. Tapi kebiasaan yang baik adalah mengirim data lewat parameter dan mengambil hasil lewat return. Fungsi seperti ini lebih mudah diuji dan tidak bergantung pada keadaan di luar.
Modul: memakai kode orang lain
Modul adalah file .py berisi kode yang bisa kamu impor. Python datang dengan standard library, kumpulan modul bawaan yang langsung siap pakai tanpa instalasi.
| Cara impor | Contoh | Cara pakai |
|---|---|---|
import modul | import math | math.sqrt(16) |
from modul import nama | from random import randint | randint(1, 10) |
import modul as alias | import datetime as dt | dt.date.today() |
Modul bawaan yang sering dipakai:
| Modul | Kegunaan |
|---|---|
math | fungsi matematika: sqrt, pi, ceil, floor |
random | angka acak, memilih item acak |
datetime | tanggal dan waktu |
os | berinteraksi dengan file, folder, dan sistem |
json | membaca dan menulis data JSON |
csv | mengolah file CSV seperti data spreadsheet |
Kamu juga bisa membuat modul sendiri. Misalnya fungsi sapa disimpan di utilitas.py, lalu di file lain cukup tulis from utilitas import sapa.
pip, PyPI, dan venv
Kalau standard library tidak cukup, ada ratusan ribu library pihak ketiga di PyPI (Python Package Index, pypi.org). Library dipasang dengan pip, pengelola paket Python.
Sebelum memasang library, biasakan membuat virtual environment (venv). Venv adalah folder terisolasi berisi Python dan library khusus untuk satu proyek. Tanpa venv, semua proyek berbagi library yang sama, dan proyek A yang butuh versi 1 bisa bentrok dengan proyek B yang butuh versi 2.
Setelah venv aktif, nama (env) biasanya muncul di awal prompt terminal. Untuk mencatat daftar library proyek, pakai pip freeze > requirements.txt, lalu orang lain bisa memasangnya dengan pip install -r requirements.txt.
Kesalahan umum
- Memakai
printpadahal butuhreturn. HasilnyaNonesaat nilainya ingin dipakai lagi. - Lupa memanggil fungsi dengan tanda kurung.
sapatanpa()hanya merujuk ke fungsinya, tidak menjalankannya. - Parameter default di depan parameter wajib. Memicu
SyntaxError. - Menamai file sendiri sama dengan modul bawaan. File bernama
random.pyataumath.pydi folder proyek akan "menutupi" modul aslinya. - Memasang library tanpa mengaktifkan venv. Library terpasang ke Python global dan bisa bentrok antarproyek.
Rangkuman
- Fungsi dibuat dengan
def, menerima parameter (boleh punya nilai default), dan mengembalikan hasil denganreturn. returnmengirim nilai ke pemanggil, sedangkanprinthanya menampilkan; fungsi tanpareturnmenghasilkanNone.- Docstring mendokumentasikan fungsi, lambda adalah fungsi satu ekspresi tanpa nama, dan variabel di dalam fungsi bersifat lokal.
- Modul diimpor dengan
import,from ... import, atauas; standard library sepertimath,random,datetime,os,json, dancsvsiap pakai. - Library pihak ketiga dari PyPI dipasang dengan
pip, sebaiknya di dalamvenvagar dependensi tiap proyek terpisah.
Slide 20 sampai 22 dari deck Pemrograman Python: Dari Nol sampai Proyek Mini. Penjelasan lengkapnya ada di mode Baca.

Selesaikan bab ini
- 1. Baca materi
- 2. Latihan kode (1)
- 3. Kuis (4 soal)
Latihan kode: Fungsi harga setelah diskon
Lengkapi fungsi harga_akhir(harga, diskon=10) yang mengembalikan harga setelah dipotong diskon persen, sebagai bilangan bulat (int).
- Parameter
diskonpunya nilai default 10. - Pakai
return, bukanprint. - Tambahkan docstring satu baris di bawah
def.
Contoh: harga_akhir(100000) menghasilkan 90000, dan harga_akhir(50000, 20) menghasilkan 40000.
Cek pemahaman
1Apa yang dicetak kode berikut?
def sapa(nama, salam="Halo"): return f"{salam}, {nama}!" print(sapa("Budi", "Hai"))2Apa yang dicetak kode berikut?
def luas(sisi): print(sisi * sisi) x = luas(4) print(x)3Virtual environment (venv) membuat library tiap proyek terpisah agar tidak saling bentrok.
4Penulisan impor mana yang membuat kamu bisa memanggil randint(1, 6) secara langsung?
