Install Web App

Python Tambahan #06 Menggunakan Tanda *args dan **kwargs

profil-penulis

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

Masuk Terlebih dahulu untuk berkomentar

Paling baru
Lihat Lainnya