Python Tambahan #06 Menggunakan Tanda *args dan **kwargs
Yuliance Ardies Ferry w.Yehohanan
21 April 2025
Saat membuat fungsi, sering kali kita tidak tahu pasti berapa banyak argumen yang akan diberikan. Untuk menangani hal ini, Python menyediakan dua fitur spesial: *args
dan **kwargs
. Keduanya memungkinkan kita untuk membuat fungsi yang dinamis dan fleksibel, mampu menerima berbagai jumlah argumen — tanpa batasan jumlah yang kaku.
Apa Itu *args
?
*args
digunakan untuk menerima banyak argumen positional sebagai tuple. Cocok digunakan saat kita ingin memberikan banyak nilai tanpa menentukan jumlahnya secara eksplisit.
Contoh:
def total(*angka):
return sum(angka)
print(total(2, 4, 6))
# Output: 12
Apa Itu **kwargs
?
**kwargs
digunakan untuk menerima banyak argumen keyword sebagai dictionary. Setiap argumen dikirim dalam bentuk pasangan nama dan nilai.
Contoh:
def cetak_info(**data):
for key, value in data.items():
print(f"{key}: {value}")
cetak_info(nama="Ari", usia=23)
Kombinasi *args
dan **kwargs
dalam Satu Fungsi
Kamu juga bisa menggabungkan keduanya dalam satu fungsi. Urutannya penting: parameter biasa → *args
→ **kwargs
.
Contoh:
def demo(pos1, *args, **kwargs):
print("Pos1:", pos1)
print("Args:", args)
print("Kwargs:", kwargs)
demo(10, 20, 30, nama="Budi", usia=35)
Kapan Sebaiknya Menggunakan args dan kwargs?
Gunakan *args
ketika:
Kamu butuh menangani banyak input nilai biasa (tanpa nama)
Nilai akan diproses secara berurutan
Gunakan **kwargs
ketika:
Kamu ingin fungsi yang dapat menerima banyak konfigurasi (dengan nama)
Kamu akan meneruskan parameter ke fungsi lain
Catatan Penting
Kamu tidak bisa menukar urutan: **kwargs
selalu harus di akhir.
Nama args
dan kwargs
bisa diganti, yang penting adalah simbol *
dan **
.
def contoh(*data): # valid meskipun bukan bernama 'args'
print(data)
Dengan *args
dan **kwargs
, kamu dapat membuat fungsi Python yang lebih dinamis dan scalable, terutama dalam situasi seperti logika rekursif, validasi data, atau ketika kamu membuat wrapper function. Pahami struktur dan tujuannya, maka kamu akan menghemat banyak baris kode tanpa kehilangan fungsionalitas.
Artikel Lainnya Dengan Kategori Terkait :
1. Python Tambahan #01 F-String: Format String Modern
2. Python Tambahan #02 Penulisan Panjang Kode di Dalam Fungsi
3. Python Tambahan #03 Komentar: Docstring dan Tanda #
4. Python Tambahan #04 Membuat List dari String atau Karakter
5. Python Tambahan #05 Perbedaan Positional dan Keyword Argument
6. Python Tambahan #06 Menggunakan Tanda *args dan **kwargs
7. Python Tambahan #07 Fungsi Bawaan: zip(), map(), dan filter()
8. Python Tambahan #08 Penggunaan any() dan all()
9. Python Tambahan #09 Fungsi enumerate() dalam Looping
10. Python Tambahan #10 Fungsi reversed() dan sorted()
11. Python Tambahan #11 Fungsi isinstance() dan id()
12. Python Tambahan #12 Pemrosesan String: replace(), strip(), split()
13. Python Tambahan #13 Menggabungkan String dengan join()
14. Python Tambahan #14 Mengatur Format Tampilan Angka dan Tanggal
15. Python Tambahan #15 Menggunakan Operator Ternary di Python
16. Python Tambahan #16 Destructuring: Unpacking List dan Tuple
17. Python Tambahan #17 Tuple Packing dan Unpacking
18. Python Tambahan #18 Dictionary Comprehension
19. Python Tambahan #19 Set Comprehension dan Operasi Dasarnya
20. Python Tambahan #20 List vs Generator: Apa Bedanya?
21. Python Tambahan #21 Fungsi Generator dengan yield
22. Python Tambahan #22 Menulis Fungsi Lambda yang Ringkas
23. Python Tambahan #23 Fungsi dalam Fungsi (Nested Function)
24. Python Tambahan #24 Fungsi sebagai Argumen dan Return
25. Python Tambahan #25 Pemrosesan File Teks: with open()
26. Python Tambahan #26 Membaca dan Menulis File JSON di Python
27. Python Tambahan #27 Format CSV: Membaca dan Menulis File CSV