Setelah pada Part 3 kita sudah belajar tentang struktur kontrol seperti if, for, dan while. Nah, di belajar Python Part 4 ini kita akan mempelajari cara membuat dan menggunakan fungsi di Python, sekaligus mengenal konsep modularisasi kode agar pengembangan aplikasi lebih rapi, terstruktur, dan mudah dikelola.
Fungsi merupakan salah satu elemen penting dalam pemrograman karena membantu kita menulis kode yang lebih rapi, terorganisir, dan dapat digunakan kembali (reusable). Alih-alih menuliskan baris kode yang sama berulang kali, kita cukup membungkusnya dalam sebuah fungsi, lalu memanggilnya kapanpun dibutuhkan.
Selain itu, dengan modularisasi, kode kita bisa dipisahkan ke dalam file atau modul terpisah sehingga lebih mudah dikembangkan, terutama untuk aplikasi berskala besar.
Mengenal Fungsi dalam Python
Definisi dan Sintaks Dasar
Fungsi dalam bahasa pemrograman Python adalah blok kode yang dapat digunakan kembali, diberi nama, dan dapat dipanggil kapan saja dalam program. Manfaat dari fungsi yaitu antara lain:
- Mengurangi duplikasi kode sehingga tidak perlu menulis kode yang sama berulang kali
- Membuat program lebih terorganisir maka kode dibagi menjadi bagian-bagian logis
- Memudahkan debugging
- Meningkatkan reusability dengan fungsi bisa digunakan di berbagai bagian program
Pada pemanggilannya fungsi menggunakan def, lalu diikuti nama fungsi yang akan dibuat dan dapat ditambah parameter. Contoh syntax nya sebagai berikut:
def function_name():
# code block
return resultPada fungsi, kita dapat menggunakan parameter. Parameter merupakan variabel yang digunakan untuk menerima nilai atau data yang dikirim saat fungsi dipanggil, sehingga nilai tersebut bisa diproses di dalam fungsi. Contoh syntax-nya sebagai berikut:
def function_name(parameter1, parameter2):
# code block using parameter1 and parameter2
return resultAturan Penamaan Fungsi
- Gunakan huruf kecil dengan underscore (snake_case), misalnya hitung_luas.
- Nama harus deskriptif sesuai dengan peran fungsi.
- Hindari penggunaan nama bawaan Python seperti list, print, atau sum.
Contoh Implementasi Fungsi dalam Python
1. Fungsi Tanpa Parameter
def sapa():
print("Halo, selamat belajar Python!")
sapa()Output:
Halo, selamat belajar Python!2. Fungsi dengan Parameter
def sapa(nama):
print(f"Halo, {nama}! Selamat belajar Python!")
sapa("Alya")
sapa("Raka")Output:
Halo, Alya! Selamat belajar Python!
Halo, Raka! Selamat belajar Python!3. Fungsi dengan Pengembalian Nilai (return)
def kuadrat(x):
return x * x
hasil = kuadrat(6)
print("Hasil:", hasil)Output:
Hasil: 36Keyword return membuat fungsi lebih fleksibel karena nilainya bisa disimpan atau dipakai untuk perhitungan lain.
Jenis-jenis Parameter
1. Parameter Default
Parameter default adalah parameter fungsi yang memiliki nilai yang sudah ditentukan sebelumnya. Jika saat memanggil fungsi parameter tersebut tidak diberikan nilai, maka nilai default akan digunakan secara otomatis. Contohnya sebagai berikut:
def sambut(nama, ucapan="Selamat datang"):
print(f"{ucapan}, {nama}!")
sambut("Dina")
sambut("Budi", "Halo selamat pagi")Output:
Selamat datang, Dina!
Halo selamat pagi, Budi!2. Keyword Argument
Parameter keyword argument adalah cara memanggil fungsi dengan menyebutkan nama parameter secara eksplisit saat memberikan nilai, sehingga urutan parameter tidak lagi penting. Contohnya sebagai berikut:
def hitung_persegi_panjang(panjang, lebar):
return panjang * lebar
print(hitung_persegi_panjang(lebar=5, panjang=10))Penjelasan:
Urutan tidak penting karena menggunakan keyword arguments. Meski lebar disebutkan lebih dahulu, Python tetap mengetahui bahwa panjang adalah 10 dan lebar sama dengan 5.
3. *args dan *kwargs
Parameter *args dan *kwargs adalah cara untuk membuat fungsi yang dapat menerima jumlah argumen yang tidak terbatas (variable-length arguments). *args (Arguments) digunakan untuk menerima sejumlah positional arguments yang tidak terbatas dalam bentuk tuple.
Sedangkan **kwargs digunakan untuk menerima sejumlah keyword arguments yang tidak terbatas dalam bentuk dictionary. Contohnya sebagai berikut:
def demo(*args, **kwargs): # *args=tuple, **kwargs=dict
print("args:", args) # cetak argumen tuple
print("kwargs:", kwargs) # cetak argumen dict
demo(1, 2, 3, nama="Dita", umur=22, kota="Yogyakarta") # panggil fungsiOutput:
args: (1, 2, 3)
kwargs: {'nama': 'Dita', 'umur': 22, 'kota': 'Yogyakarta'}Dokumentasi Fungsi dengan Docstring
Docstring (documentation string) adalah string khusus di dalam fungsi, kelas, atau modul Python yang berfungsi sebagai dokumentasi internal. Ditulis dengan tanda kutip tiga (“”” … “””) dan bisa diakses saat program berjalan menggunakan help() atau atribut .__doc__.
Perbedaannya dengan komentar biasa adalah docstring bisa dibaca oleh Python saat runtime, sehingga berguna untuk dokumentasi otomatis dan memudahkan programmer memahami fungsi tanpa harus membaca isi kodenya. Contohnya sebagai berikut:
def hitung_diskon(harga, diskon):
"""
Menghitung harga akhir setelah diberikan diskon.
:param harga: Harga awal dalam bentuk numerik
:param diskon: Persentase diskon (contoh: 0.1 = 10%)
:return: Harga akhir setelah diskon
"""
return harga - (harga * diskon)
# Akses docstring dengan help()
help(hitung_diskon)
# Atau dengan atribut __doc__
print(hitung_diskon.__doc__)Kelebihan docstring:
- Mudah diakses dengan help(nama_fungsi)
- Membantu kolaborasi dalam tim
- Bisa digunakan untuk membuat dokumentasi otomatis dengan tools.
Dalam pengembangan aplikasi atau website, docstring sudah menjadi sebuah hal yang sering dilakukan. Misalnya, dalam framework Flask atau FastAPI, docstring digunakan untuk mendokumentasikan endpoint API.
Modularisasi Kode
1. Mengapa Modularisasi Penting?
Saat proyek kecil, semua fungsi dapat ditulis dalam satu file. Namun, seiring bertambahnya fitur, kode menjadi panjang dan sulit dipelihara. Dengan modularisasi, kita bisa:
- Memisahkan kode ke dalam beberapa file (modul)
- Mengorganisir fungsi sesuai kategori
- Memudahkan debugging dan pengembangan dalam tim.
2. Implementasi Modul Sederhana
Contoh implementasi modul secara sederhana sebagai berikut:
# transaksi.py
from diskon import hitung_diskon # import fungsi dari modul diskon
def total_belanja(harga_list, diskon=0):
"""
Menghitung total belanja setelah diskon.
:param harga_list: Daftar harga barang (list of int/float)
:param diskon: Persentase diskon (0.1 = 10%)
:return: Total harga akhir
"""
total = sum(harga_list) # jumlahkan semua harga barang
if diskon > 0:
total = hitung_diskon(total, diskon) # panggil fungsi dari diskon.py
return total
# Contoh penggunaan
if __name__ == "__main__":
barang = [50000, 30000, 20000] # daftar harga barang
print("Total sebelum diskon:", sum(barang))
print("Total setelah diskon 10%:", total_belanja(barang, 0.1))3. Contoh Implementasi
Implementasi yaitu misalnya sedang membuat aplikasi kasir sederhana. Daripada menulis semua kode dalam satu file, kita bisa pisahkan modul:
- diskon.py: berisi fungsi hitung diskon
- transaksi.py: berisi fungsi total belanja
Dengan pemisahan ini, setiap bagian dapat dikerjakan, diuji, dan diperbaiki secara terpisah.
Penggunaan if __name__ == “__main__”
if __name__ == "__main__" digunakan untuk mengecek apakah sebuah file Python dijalankan langsung atau di-import sebagai modul. Jika dijalankan langsung, nilai __name__ adalah "__main__" sehingga kode di dalam blok tersebut akan dieksekusi.
Jika hanya di-import, nilai __name__ berubah menjadi nama modul sehingga kode di dalam blok tidak dijalankan, membuat program lebih modular dan rapi. Contoh sederhananya sebagai berikut:
ef sapa(nama):
return f"Halo, {nama}!"
if __name__ == "__main__":
# Hanya tampil jika file ini dieksekusi langsung
print(sapa("Dita"))Maka, saat python nama.py dijalankan pada terminal dapat menampilkan output berikut:
Halo, Dita!Penutup
Pada Part 4 ini kita telah mempelajari bahwa fungsi sangat penting untuk membuat kode lebih rapi, terstruktur, dan reusable. Kita juga mengenal berbagai fitur fungsi mulai dari parameter dasar, default, *args, *kwargs, hingga dokumentasi menggunakan docstring.
Di belajar Python part 5, kita akan melanjutkan pembahasan tentang modul dan paket bawaan Python, serta cara membuat paket sendiri agar aplikasi lebih profesional dan siap digunakan di berbagai proyek.
Demikian tutorial belajar python part 4 untuk pemula. Ikuti terus series belajar Python di Rumahweb yang kami publikasi tiap satu bulan sekali. Semoga bermanfaat.


