Panduan Argumen Python: Positional, Keyword, *args, **kwargs

1. Apa itu argumen di Python?

Dalam Python, argumen adalah cara bagi fungsi atau metode untuk menerima data dari luar dan melakukan proses tertentu. Dengan memberikan argumen ke fungsi, memungkinkan pemrosesan data yang fleksibel, serta meningkatkan kemampuan reuse dan extensibility program. Artikel ini akan menjelaskan secara bertahap dasar hingga penerapan argumen Python.

Peran dasar fungsi dan argumen

Fungsi adalah kumpulan perintah untuk menjalankan tugas tertentu. Argumen adalah data input yang diberikan ke fungsi, dan digunakan seperti berikut.
def greet(name):
    print(f"Halo, {name}!")
Dalam contoh ini, dengan memberikan nama apa saja ke argumen name, Anda dapat menampilkan pesan khusus.
greet("佐川")  # Output: Halo, 佐川!

2. Dasar Argumen di Python

Selanjutnya, kita akan melihat cara menggunakan argumen di Python dari perspektif argumen posisi, argumen kata kunci, dan argumen default.

Argumen Posisi dan Pentingnya

Argumen posisi diteruskan ke parameter dalam fungsi sesuai urutan yang ditentukan saat fungsi dipanggil.
def add(a, b):
    return a + b

result = add(5, 3)  # hasil: 8

Menggunakan Argumen Kata Kunci

Dengan argumen kata kunci, Anda dapat memberikan nilai secara eksplisit ke fungsi tanpa memperhatikan urutan argumen.
def introduce(name, age):
    print(f"Saya {name}. Umur saya {age} tahun.")

introduce(age=25, name="Sagawa")  # output: Saya Sagawa. Umur saya 25 tahun.

Penggunaan Argumen Default

Dengan menetapkan argumen default, Anda dapat menggunakan nilai default ketika argumen dihilangkan.
def greet(name="Tamu"):
    print(f"Halo, {name}!")

greet()  # output: Halo, Tamu!

Urutan Argumen

Jika Anda menggunakan argumen posisi dan argumen kata kunci secara bersamaan, argumen posisi harus ditentukan terlebih dahulu, diikuti oleh argumen kata kunci. Jika urutannya salah, akan terjadi error.
年収訴求

3. Argumen Panjang Variabel Python (*args dan **kwargs)

*args cara penggunaan

*args digunakan untuk mengirimkan sejumlah argumen posisi ke fungsi. Hal ini memungkinkan fungsi dibuat lebih umum.
def print_numbers(*args):
    for number in args:
        print(number)

print_numbers(1, 2, 3)  

**kwargs cara penggunaan

**kwargs dapat digunakan untuk menerima argumen kata kunci apa pun dalam bentuk kamus.
def print_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

print_info(name="Sagawa", age=30, job="Penulis")  

*args dan **kwargs kombinasi

*args dan **kwargs dapat digabungkan untuk membuat fungsi fleksibel yang menerima baik argumen posisi maupun argumen kata kunci.
def process_data(*args, **kwargs):
    total = sum(args)
    print(f"Total: {total}")
    for key, value in kwargs.items():
        print(f"{key}: {value}")

process_data(1, 2, 3, name="Sagawa", age=30)

4. Penerapan dan Contoh Penggunaan Argumen

Contoh Praktis: Penanganan Parameter API

Dalam pemanggilan API, Anda perlu menangani parameter yang dinamis. *args dan **kwargs dapat digunakan untuk menangani banyak parameter secara fleksibel.
def api_call(endpoint, **params):
    print(f"Endpoint API: {endpoint}")
    for key, value in params.items():
        print(f"{key}: {value}")

api_call("/user", id=123, action="view")

Penerapan pada Pemrosesan Data Skala Besar

Bahkan pada fungsi yang memproses data dalam jumlah besar, *args dapat digunakan untuk menangani argumen variabel panjang dengan efisien.

5. Penanganan Kesalahan dan Validasi Argumen

Penanganan Kesalahan untuk Jumlah Argumen

Jika jumlah argumen yang diharapkan fungsi tidak mencukupi, penanganan kesalahan dapat mencegah program crash.
def add_numbers(*args):
    if len(args) < 2:
        raise ValueError("Setidaknya diperlukan 2 argumen")
    return sum(args[:2])

Validasi Tipe

Dengan memeriksa tipe argumen, Anda dapat mencegah kesalahan yang tidak terduga.
def multiply(a, b):
    if not isinstance(a, (int, float)) or not isinstance(b, (int, float)):
        raise TypeError("Argumen harus berupa angka")
    return a * b

try-except untuk Penanganan Kesalahan

Dengan menggunakan sintaks try-except, Anda dapat menangkap kesalahan dan memprosesnya dengan tepat.
def divide(a, b):
    try:
        result = a / b
    except ZeroDivisionError:
        return "Tidak dapat membagi dengan 0"
    except TypeError:
        return "Silakan masukkan angka"
    return result

6. Ringkasan

Melalui artikel ini, kami telah mencakup secara luas dasar hingga penerapan argumen Python. Khususnya, kami ingin menekankan cara mendefinisikan fungsi yang fleksibel menggunakan *args dan **kwargs, serta pentingnya penanganan error dan validasi.

Poin Utama:

  • Dasar argumen posisi, argumen kata kunci, dan argumen default
  • Definisi fungsi yang fleksibel menggunakan *args dan **kwargs
  • Pentingnya penanganan error dan validasi terhadap argumen
Dengan pengetahuan ini, Anda dapat membuat kode Python yang fleksibel dan kuat yang berguna dalam pekerjaan nyata.
年収訴求