Dalam bahasa pemrograman Python, fungsi adalah bagian penting yang memungkinkan kita untuk menulis kode yang terstruktur, efisien, dan dapat digunakan kembali. Namun, ketika bekerja dengan fungsi, ada dua konsep penting yang sering digunakan untuk membuat fungsi lebih fleksibel dan mudah digunakan: default arguments dan keyword arguments.
Pada artikel ini, kita akan membahas secara mendalam apa itu default dan keyword arguments di Python, bagaimana cara menggunakannya, serta contoh penerapan nyata dalam kehidupan sehari-hari sebagai seorang programmer.
Apa Itu Default Arguments?
Default arguments adalah nilai bawaan yang diberikan pada parameter fungsi. Artinya, jika saat pemanggilan fungsi parameter tersebut tidak diberi nilai, maka nilai default akan digunakan.
Ini sangat berguna untuk membuat fungsi yang tetap bisa berjalan meskipun beberapa argumen tidak diberikan secara eksplisit.
Contoh Default Arguments:
def sapa(nama="Pengunjung"):
print(f"Halo, {nama}! Selamat datang di situs kami.")
# Pemanggilan fungsi tanpa argumen
sapa()
# Pemanggilan fungsi dengan argumen
sapa("Rysa")
Output:
Halo, Pengunjung! Selamat datang di situs kami. Halo, Rysa! Selamat datang di situs kami.
Pada contoh di atas, jika fungsi sapa() dipanggil tanpa argumen, maka Python akan otomatis menggunakan nilai default "Pengunjung". Namun jika diberikan argumen, maka nilai tersebut akan menggantikan nilai default.
Manfaat Menggunakan Default Arguments
- Meningkatkan fleksibilitas fungsi — pengguna fungsi tidak harus selalu memberikan semua argumen.
- Mengurangi error — mencegah kesalahan saat pemanggilan fungsi dengan jumlah argumen yang kurang.
- Meningkatkan keterbacaan kode — lebih mudah memahami maksud fungsi karena parameter sudah memiliki nilai awal.
Apa Itu Keyword Arguments?
Keyword arguments digunakan untuk memanggil fungsi dengan cara menyebutkan nama parameternya secara eksplisit. Ini membuat kode lebih jelas dan mencegah kesalahan posisi argumen saat memanggil fungsi dengan banyak parameter.
Contoh Keyword Arguments:
def hitung_luas(panjang, lebar):
return panjang * lebar
# Pemanggilan fungsi dengan keyword arguments
luas1 = hitung_luas(panjang=10, lebar=5)
luas2 = hitung_luas(lebar=8, panjang=6)
print(luas1)
print(luas2)
Output:
50 48
Pada contoh di atas, urutan argumen tidak menjadi masalah karena kita menggunakan keyword arguments (panjang= dan lebar=).
Menggabungkan Default dan Keyword Arguments
Kita juga bisa menggunakan default arguments bersama keyword arguments dalam satu fungsi. Ini sering digunakan untuk membuat fungsi yang fleksibel sekaligus mudah dipahami.
Contoh Penggabungan:
def cetak_info(nama, pekerjaan="Programmer", negara="Indonesia"):
print(f"Nama: {nama}")
print(f"Pekerjaan: {pekerjaan}")
print(f"Negara: {negara}")
# Pemanggilan fungsi dengan kombinasi
cetak_info("Rysa")
print("---")
cetak_info("Ali", pekerjaan="Desainer")
print("---")
cetak_info(nama="Budi", negara="Malaysia", pekerjaan="Developer")
Output:
Nama: Rysa Pekerjaan: Programmer Negara: Indonesia --- Nama: Ali Pekerjaan: Desainer Negara: Indonesia --- Nama: Budi Pekerjaan: Developer Negara: Malaysia
Perhatikan bahwa kita bisa memanggil fungsi cetak_info() dengan berbagai cara: hanya dengan nama, dengan satu keyword argument, atau dengan beberapa keyword argument sekaligus.
Urutan Parameter dalam Fungsi Python
Ketika mendefinisikan fungsi dengan berbagai jenis argumen, Python memiliki aturan urutan parameter yang harus diikuti:
- Positional arguments (tanpa default)
- Default arguments
- *args (variasi jumlah argumen)
- Keyword-only arguments
- **kwargs (dictionary argumen)
Contoh Urutan yang Benar:
def fungsi(a, b=10, *args, **kwargs):
print(a, b, args, kwargs)
fungsi(5)
fungsi(5, 20, 30, 40, x=100, y=200)
Output:
5 10 () {}
5 20 (30, 40) {'x': 100, 'y': 200}
Jika urutan ini dilanggar (misalnya meletakkan parameter default di depan parameter tanpa default), Python akan menghasilkan error.
Kesalahan Umum dalam Penggunaan Default dan Keyword Arguments
- Mutable default arguments — hindari menggunakan tipe data seperti list atau dictionary sebagai nilai default karena dapat menyebabkan perilaku yang tidak diinginkan.
Contoh Kesalahan Umum:
def tambah_item(item, daftar=[]):
daftar.append(item)
return daftar
print(tambah_item("A"))
print(tambah_item("B")) # Nilai default ikut berubah!
Output:
['A'] ['A', 'B']
Untuk menghindari masalah ini, gunakan None sebagai nilai default, lalu buat list baru di dalam fungsi:
def tambah_item(item, daftar=None):
if daftar is None:
daftar = []
daftar.append(item)
return daftar
print(tambah_item("A"))
print(tambah_item("B"))
Output yang benar:
['A'] ['B']
Kesimpulan
Default arguments dan keyword arguments adalah dua fitur penting dalam Python yang sangat membantu dalam membuat fungsi yang fleksibel, mudah digunakan, dan lebih aman dari error. Dengan memahami konsep ini, kamu dapat menulis fungsi yang lebih efisien dan mudah dibaca, baik untuk proyek kecil maupun besar.
Gunakan default arguments untuk memberikan nilai awal pada parameter, dan keyword arguments untuk membuat pemanggilan fungsi lebih jelas serta menghindari kesalahan posisi argumen.
Latihan Singkat
Cobalah membuat fungsi bernama diskon_harga() yang memiliki parameter harga_asli, persen_diskon (default = 10), dan produk. Cetak harga akhir dan nama produk menggunakan keyword arguments.