Langsung ke konten

Parameter dan Argument di Python: Mengirim Nilai ke Function

Parameter dan argument memungkinkan function menerima nilai di Python. Artikel ini membahas positional, keyword, default parameter, serta *args dan **kwargs.

Belajar Python Level Basic
Belajar Python Level Basic
Advertisement

Artikel ini bagian dari seri Belajar Python Level Basic di hanifmu.com. Di artikel sebelumnya kita sudah membahas Membuat dan Memanggil Function. Sekarang kita kirim nilai ke dalam function.

Function tanpa masukan selalu melakukan hal yang sama. Supaya lebih fleksibel, function perlu menerima nilai dari luar. Di sinilah parameter dan argument berperan.

Parameter dan Argument

Dua istilah ini sering tertukar, padahal bedanya jelas:

  • Parameter adalah variabel di dalam tanda kurung saat function dibuat.
  • Argument adalah nilai yang dikirim saat function dipanggil.
def sapa(nama):        # nama adalah parameter
    print(f"Halo, {nama}!")

sapa("Budi")           # "Budi" adalah argument

Output: Halo, Budi!.

Function bisa punya lebih dari satu parameter:

def perkenalan(nama, umur):
    print(f"{nama} berumur {umur} tahun")

perkenalan("Sari", 21)

Positional Argument

Positional argument dikirim sesuai urutan parameter. Argument pertama masuk ke parameter pertama, dan seterusnya:

def bagi(a, b):
    print(a / b)

bagi(10, 2)   # 5.0
bagi(2, 10)   # 0.2

Karena bergantung urutan, menukar argument bisa mengubah hasil. Pastikan urutannya benar.

Keyword Argument

Keyword argument dikirim dengan menyebut nama parameternya. Urutan jadi tidak penting:

def perkenalan(nama, umur):
    print(f"{nama} berumur {umur} tahun")

perkenalan(umur=21, nama="Sari")

Output: Sari berumur 21 tahun.

Cara ini lebih jelas dibaca, terutama untuk function dengan banyak parameter. Kamu juga bisa mencampur keduanya, asalkan positional argument ditulis lebih dulu:

perkenalan("Sari", umur=21)   # valid
perkenalan(nama="Sari", 21)   # SyntaxError

Default Parameter

Parameter bisa diberi nilai bawaan. Kalau argument tidak dikirim, nilai bawaan itu yang dipakai:

def sapa(nama, salam="Halo"):
    print(f"{salam}, {nama}!")

sapa("Budi")                  # Halo, Budi!
sapa("Budi", "Selamat pagi")  # Selamat pagi, Budi!

Parameter dengan nilai bawaan harus diletakkan setelah parameter tanpa bawaan. Kalau dibalik, Python memberi SyntaxError:

def sapa(salam="Halo", nama):   # SyntaxError
    ...

Hati-hati memakai list atau dictionary sebagai nilai bawaan, karena nilainya dibagi antar pemanggilan. Gunakan None lalu buat list di dalam function:

def tambah_item(item, daftar=None):
    if daftar is None:
        daftar = []
    daftar.append(item)
    return daftar

*args

Kalau jumlah argument tidak pasti, gunakan *args. Tanda bintang membuat function menerima berapa pun argument dan menampungnya sebagai tuple:

def jumlahkan(*angka):
    total = 0
    for n in angka:
        total += n
    return total

print(jumlahkan(1, 2))          # 3
print(jumlahkan(1, 2, 3, 4, 5)) # 15

Nama args hanya kebiasaan, yang penting tanda bintangnya.

**kwargs

**kwargs menampung keyword argument yang jumlahnya tidak pasti sebagai dictionary:

def tampilkan_data(**data):
    for key, value in data.items():
        print(f"{key}: {value}")

tampilkan_data(nama="Budi", umur=25, kota="Jakarta")

Output:

nama: Budi
umur: 25
kota: Jakarta

Sama seperti *args, nama kwargs hanya konvensi.

Urutan Parameter

Saat menggabungkan semuanya, urutannya harus seperti ini:

parameter biasa, *args, default parameter, **kwargs

Contoh:

def contoh(a, b, *args, c=10, **kwargs):
    print(a, b, args, c, kwargs)

contoh(1, 2, 3, 4, c=5, d=6)

Output: 1 2 (3, 4) 5 {'d': 6}.

Contoh Program: Format Harga

Mari buat function untuk menampilkan harga dengan format dan diskon opsional:

# format_harga.py

def tampilkan_harga(nama, harga, diskon=0):
    """Menampilkan harga barang, dengan diskon opsional dalam persen."""
    harga_akhir = harga - (harga * diskon / 100)
    print(f"{nama}: Rp{harga_akhir:,.0f}")

tampilkan_harga("Apel", 15000)
tampilkan_harga("Jeruk", 12000, diskon=10)
tampilkan_harga("Mangga", 20000, 25)

Output:

Apel: Rp15,000
Jeruk: Rp10,800
Mangga: Rp15,000

Perhatikan bahwa diskon punya nilai bawaan, jadi bisa dikirim dengan keyword, positional, atau tidak dikirim sama sekali.

Kesalahan Umum Pemula

  • Jumlah argument tidak cocok — memicu TypeError.
  • Menukar urutan argument — hasilnya salah tanpa pesan error.
  • Default parameter sebelum parameter biasa — memicu SyntaxError.
  • Memakai list sebagai default — nilainya ikut berubah antar pemanggilan, gunakan None.
  • Salah urutan parameter campuran — positional harus lebih dulu dari keyword.

Ringkasan

  • Parameter ada saat function dibuat, argument dikirim saat dipanggil
  • Positional argument mengikuti urutan, keyword argument menyebut nama
  • Default parameter memberi nilai bawaan bila argument tidak dikirim
  • *args menampung banyak positional argument sebagai tuple
  • **kwargs menampung banyak keyword argument sebagai dictionary
  • Urutan parameter: biasa, *args, default, **kwargs

Langkah Selanjutnya

Function sekarang bisa menerima masukan. Tapi hasil kerjanya masih sering hanya ditampilkan dengan print(), padahal nilai itu kadang perlu diolah lebih lanjut.

Artikel selanjutnya membahas Return Value di Python, cara mengembalikan hasil dari function.