Default Argument dan Keyword Argument pada Python

Default Argument dan Keyword Argument pada Python

Selama ini kita tahu bahwa ketika fungsi dipanggil maka seluruh argumen yang diperlukan harus diberikan. Tapi apa jadinya jika kita mendefinisikan nilai parameter tersebut ketika fungsi dibuat? Memangnya bisa?

Tentu bisa. Dalam python pemberian hal ini disebut default argument.

Default Argument

Python memungkinakn pemberian nilai default ketika membuat argumen sebuah fungsi. Ketika fungsi dipanggil tanpa diberi argumen nantinya nilai inilah yang akan menggantikan nilainya.

Pembuatan default argument dilakukan seperti melakukan assignment pada umumnya, hanya saja letaknya ada pada deklarasi fungsi.

Berikut ini adalah contoh fungsi dengan default argument:

python
def cetak_salam(salam='Halo', nama='Inva'):
  print(salam, nama)

Karena sudah punya default argument fungsi tersebut bisa dipanggil tanpa diberi argumen sama sekali. Seperti ini:

python
cetak_salam() # output: "Halo Inva"
cetak_salam('Selamat siang', 'Budi') # output: "Selamat siang Budi"

Nah sekarang bagaimana jika kita ingin mengganti argument nama tanpa mengganti argument salam? Tentu bisa, untuk melakukan ini kita perlu memberikan keyword argument.

Keyword Argument

Keyword argument adalah cara untuk memberi nilai pada argument suatu fungsi dengan sekaligus menentukan nama argumennya.

Penampakannya seperti ini:

python
cetak_salam(nama='Budi') # output: "Halo Budi"
cetak_salam(salam='Selamat datang') # output: "Selamat datang Inva"

Dengan keyword argument ini kita dapat mengubah argumen sesuai kebutuhan kita saja. Argumen yang tidak diberikan nilai akan secara otomatis berisi nilai default yang sudah diberikan.

Pemberian keyword argument tidak harus sesuai dengan urutan argumennya. Kita bisa mengisikan nilai argumen dengan urutan apapun, selama nama argumen yang diberikan ada pada deklarasi fungsi.

python
# Argumen tidak harus urut
cetak_salam(nama='Budi', salam='Selamat siang') # output: "Selamat siang Budi"

# Memberi argumen yang tidak ada pada deklarasi
cetak_salam(nama='Budi', salam='Selamat siang', hari='senin') # output: error

Aturan Deklarasi dan Pengisian Argument

Terdapat beberapa peraturan yang harus ditepati dalam membuat argumen fungsi pada python, diantaranya:

Default argument harus diletakkan setelah non-default argument

Salah ❌

python
def nama_fungsi(arg1, arg2=128, arg3=64, arg4)
  ...

Benar ✅

python
def nama_fungsi(arg1, arg4, arg2=128, arg3=64)
  ...

Keyword argument diberikan setelah semua positional argument diberi nilai

Salah ❌

python
def nama_fungsi(arg1, arg2, arg3=64, arg4=128)
  ...

nama_fungsi(arg3=70, arg4=56, 30, 64)
nama_fungsi(30, arg3=64, arg4=56)

Benar ✅

python
def nama_fungsi(arg1, arg2, arg3=64, arg4=128)
  ...

nama_fungsi(30, 64, arg3=70, arg4=56)
nama_fungsi(30, 64, arg4=40, arg3=102)
nama_fungsi(30, arg4=64, arg2=102)

Satu argumen hanya bisa diisi satu kali

Salah ❌

python
def nama_fungsi(arg1, arg2, arg3=64, arg4=128)
  ...

nama_fungsi(22, 34, arg1=70) # arg1 diisi 2 kali
nama_fungsi(22, 34, arg3=70, arg3=12) # arg3 diisi 2 kali

Kapan Harus Menggunakan Default Argument?

Penggunaan default argument bisa jadi salah satu cara untuk mempercepat kita dalam menulis dan memahami kode. Dengan adanya default argument kita dapat meminimalisir pengisian argument dengan nilai yang sama secara berulang-ulang.

Dengan begitu kode kita akan lebih ringkas dan mudah dibaca.

Ada juga kasus ketika suatu argumen sebenarnya tidak terlalu penting, namun kita masih ingin membuatnya menjadi fleksibel, nah default argument ini akan sangat membantu.

Bahkan kebanyakan library python juga menggunakan default argument ini untuk memudahkan para programmer. Sebagai contoh, kita coba comot salah satu fungsi di library numpy.

Ini signature fungsi untuk membuat array numpy:

python
numpy.array(object, dtype=None, *, copy=True, order='K', subok=False, ndmin=0, like=None)

Kalu kita lihat di situ, hanya ada 1 argument saja yang menjadi positional argument (argument pertama) dan sisanya default argument semua.

Hal ini mungkin karena sang empunya numpy tahu kalau kita akan jarang menggunakan argument lainnya. Yah, jarang kan bukan berarti tidak pernah, maka sebagai opsi tetap harus diberikan.

Selanjutnya…

Cukup sekian untuk kesempatan kali ini, selanjutnya kita akan membahas tentang variable length argument pada python 3.

Selamat ber-koding ria 👋

Kirim Pesan Buat Inva

Hak Cipta © 2024 Invasikode
Dibuat dengan ☕ dan ❤ oleh Inva