Argument *args dan **kwargs digunakan sebagai variabel parameter di fungsi. *args dan ** kwargs memungkinkan untuk memasukkan beberapa argumen ke dalam satu parameter fungsi.
Pada materi fungsi yang telah kita pelajari, parameter di fungsi menentukan berapa banyak data yang akan diolah di dalam fungsi.
Misalnya kita membuat fungsi penjumlah variabel
#membuat fungsi tambah def tambah(a, b): return a+b #memanggil fungsi tambah dan menyimpan di variabel "c" c = tambah(10, 5) print(c)
Fungsi diatas bekerja.. Tapi hanya untuk dua argumen.
Bagaimana jika ingin melakukan penjumlahan dengan beberapa argumen dengan fungsi yang sama? Tentu dengan kode diatas tidak akan bisa digunakan untuk menghitung 3 nilai karena parameter yang ada hanya untuk 2 argumen.
Argumen *args dan **kwargs adalah solusinya
Dengan argument *args dan **kwargs kita mampu memparsing beberapa varibel menjadi 1 parameter yang dinamis.
Contohnya begini
def tambah(*args): hasil = 0 for nilai in args: hasil += nilai return hasil c = tambah(10, 5) d = tambah(10, 5, 3) e = tambah(10, 5, 3, 1) print(c) print(d) print(e)
Pertama adalah membuat fungsi tambah yang menggunakan parameter *args. Di dalam fungsi kita definisikan variabel hasil untuk menyimpan penjumlahan untuk setiap variabel.
Selanjutnya kita mendefiniskan beberapa variabel yang menerima hasil penjumlahan dengan beberapa opsi argumen
variabel c -> memanggil fungsi tambah dengan 2 argument variabel d -> memanggil fungsi tambah dengan 3 argument variabel e -> memanggil fungsi tambah dengan 4 argument
Jadi ketika dicetak hasilnya adalah
15 18 19
Argumen args kwargs hanyalah sebuah nama. Kita bisa menggunakan nama apapun untuk menggantikannya seperti variabel pada umumnya
Trus apa bedanya argument *args dan *kwargs ?
*args / satu bintang ( * ) digunakan untuk merubah parameter menjadi bentuk Tuple
**kwargs / double bintang ( ** ) digunakan untuk merubah parameter menjadi bentuk Dictionary
Contoh penggunaan argumen *args
#membuat fungsi cetak dengan argumen *args def cetak(*mahasiswa): print(mahasiswa) #memanggil fungsi cetak cetak("faqih", "ina", "anton")
Hasilnya adalah struktur data Tuple
('faqih', 'ina', 'anton')
Contoh penggunaan argumen *kwargs
#membuat fungsi cetak dengan argumen *kwargs def cetak(**mahasiswa): print(mahasiswa) #memanggil fungsi cetak cetak(nama="faqih", alamat="bandung") cetak(nama="ina", alamat="jakarta")
Hasilnya adalah struktur data Dictionary
{'nama': 'faqih', 'alamat': 'bandung'} {'nama': 'ina', 'alamat': 'jakarta'}
Materi python dibagi menjadi beberapa bahasan antara lain:
Pengenalan python dan mengapa harus belajar
Instalasi Python dengan Anaconda di Windows
Instalasi Python dengan Anaconda di Linux
Eksekusi file Python
Pengenalan Variabel dan Tipe Data di Python
Penulisan komentar di python
Teknik Print di Python
Mengenal Jenis Operator di Python
User Input di Python
Memahami Percabangan di Python
Memahami Perulangan di Python
Menggunakan Fungsi di Python
Lambda expression
Struktur List di Python
Struktur Tuple di Python
Struktur Dictionary di Python
File Handling di Python
Memahami Argumen *args **kwargs
Cara Install Library Python
Memahami Jupyter notebook dan cara menggunakannya