Skip to main content

Positional Arguments, Keyword Arguments & Default Parameters

Saat menggunakan function, Python menyediakan beberapa cara untuk memberikan nilai kepada parameter. Tiga konsep penting yang perlu dipahami adalah positional arguments, keyword arguments, dan default parameters.

Ketiganya membuat function menjadi lebih fleksibel dan memungkinkan kita menentukan bagaimana data diberikan ketika function dipanggil.


Positional Arguments​

Positional argument adalah argument yang diberikan kepada function berdasarkan urutan atau posisi parameter yang terdapat pada definisi function.

Contoh:

def say_hello(name, emoji):
print(f'Hello {name} {emoji}')

say_hello('Andre', '😊')

Pada contoh tersebut:

'Andre' → name
'😊' → emoji

Argument pertama diberikan kepada parameter pertama, sedangkan argument kedua diberikan kepada parameter kedua.


Urutan Positional Arguments​

Urutan argument sangat penting ketika menggunakan positional arguments.

def say_hello(name, emoji):
print(f'Hello {name} {emoji}')

say_hello('Andre', '😊')

Output:

Hello Andre 😊

Jika urutannya ditukar:

say_hello('😊', 'Andre')

Maka hasilnya menjadi:

Hello 😊 Andre

Python tetap menjalankan function karena jumlah argument sesuai, tetapi nilai tersebut diberikan kepada parameter yang berbeda.


Kelebihan Positional Arguments​

Positional arguments memiliki beberapa keuntungan:

  • Penulisannya sederhana.
  • Kodenya ringkas.
  • Mudah digunakan ketika function memiliki sedikit parameter.
  • Cocok ketika urutan parameter sudah jelas.

Contoh:

def calculate_total(price, quantity):
return price * quantity

total = calculate_total(50000, 3)

print(total)

Pada contoh tersebut:

50000 → price
3 → quantity

Keyword Arguments​

Keyword argument adalah argument yang diberikan dengan menyebutkan nama parameter secara eksplisit.

Contoh:

def say_hello(name, emoji):
print(f'Hello {name} {emoji}')

say_hello(name='Andre', emoji='😊')

Berbeda dengan positional argument, kita secara langsung menentukan argument tersebut akan diberikan kepada parameter yang mana.


Urutan Keyword Arguments​

Salah satu keuntungan keyword arguments adalah urutannya tidak harus sama dengan definisi parameter.

Contoh:

def say_hello(name, emoji):
print(f'Hello {name} {emoji}')

say_hello(emoji='😊', name='Andre')

Meskipun emoji ditulis terlebih dahulu, Python tetap mengetahui bahwa:

emoji → '😊'
name → 'Andre'

Output:

Hello Andre 😊

Kelebihan Keyword Arguments​

Keyword arguments dapat meningkatkan readability karena hubungan antara argument dan parameter terlihat secara langsung.

Contoh:

create_user(name='Andre', age=30, active=True)

Lebih mudah dipahami karena kita dapat langsung mengetahui:

name → Andre
age → 30
active → True

Positional Arguments vs Keyword Arguments​

Perhatikan perbandingan berikut.

Positional Arguments​

def create_user(name, age, active):
print(name, age, active)

create_user('Andre', 30, True)

Keyword Arguments​

def create_user(name, age, active):
print(name, age, active)

create_user(
name='Andre',
age=30,
active=True
)

Keduanya menghasilkan data yang sama, tetapi keyword arguments memberikan informasi yang lebih jelas mengenai setiap nilai.


Default Parameters​

Default parameter adalah parameter yang memiliki nilai bawaan ketika function didefinisikan.

Contoh:

def say_hello(name='Darth Vader', emoji='😈'):
print(f'Hello {name} {emoji}')

Pada function tersebut:

name → 'Darth Vader'
emoji → '😈'

merupakan nilai default.


Menggunakan Default Parameter​

Function dapat dipanggil tanpa memberikan argument:

def say_hello(name='Darth Vader', emoji='😈'):
print(f'Hello {name} {emoji}')

say_hello()

Output:

Hello Darth Vader 😈

Python menggunakan nilai default karena tidak ada argument yang diberikan.


Mengubah Nilai Default​

Nilai default bukan berarti nilainya tidak dapat diganti.

Kita tetap dapat memberikan argument baru:

def say_hello(name='Darth Vader', emoji='😈'):
print(f'Hello {name} {emoji}')

say_hello('Andre', '😊')

Output:

Hello Andre 😊

Argument yang diberikan akan menggantikan nilai default.


Default Parameter Sebagian​

Kita juga dapat memberikan default hanya kepada parameter tertentu.

def say_hello(name, emoji='😊'):
print(f'Hello {name} {emoji}')

Function tersebut tetap membutuhkan name, tetapi emoji bersifat opsional karena sudah memiliki nilai default.

Contoh:

say_hello('Andre')

Output:

Hello Andre 😊

Kita juga dapat mengganti emoji:

say_hello('Andre', '🔥')

Output:

Hello Andre 🔥

Urutan Default Parameter​

Dalam definisi function, parameter yang memiliki default umumnya ditempatkan setelah parameter yang tidak memiliki default.

Contoh yang benar:

def say_hello(name, emoji='😊'):
print(f'Hello {name} {emoji}')

Sedangkan pola berikut akan menghasilkan error:

def say_hello(name='Andre', emoji):
print(f'Hello {name} {emoji}')

Python mengharuskan parameter tanpa default berada sebelum parameter yang memiliki default.


Menggabungkan Positional dan Keyword Arguments​

Positional dan keyword arguments dapat digunakan secara bersamaan.

Contoh:

def say_hello(name, emoji):
print(f'Hello {name} {emoji}')

say_hello('Andre', emoji='😊')

Pada contoh tersebut:

'Andre' → positional argument
emoji='😊' → keyword argument

Namun, positional argument harus diberikan sebelum keyword argument.

Contoh yang benar:

say_hello('Andre', emoji='😊')

Contoh yang tidak valid:

say_hello(name='Andre', '😊')

Perbandingan Ketiga Konsep​

KonsepCara KerjaContoh
Positional ArgumentBerdasarkan urutan parametersay_hello('Andre', '😊')
Keyword ArgumentBerdasarkan nama parametersay_hello(name='Andre', emoji='😊')
Default ParameterMemiliki nilai bawaandef say_hello(name='Andre')

Contoh Penggunaan dalam Program​

Ketiga konsep ini sering digunakan secara bersamaan.

def create_profile(name, age=18, is_active=True):
print(f'Name: {name}')
print(f'Age: {age}')
print(f'Active: {is_active}')

Menggunakan positional argument:

create_profile('Andre')

Output:

Name: Andre
Age: 18
Active: True

Menggunakan keyword argument:

create_profile(
name='Andre',
age=25,
is_active=False
)

Output:

Name: Andre
Age: 25
Active: False

Pada contoh tersebut, parameter age dan is_active memiliki nilai default sehingga tidak wajib diberikan ketika function dipanggil.


Ringkasan​

Beberapa poin penting yang perlu diingat:

  1. Positional arguments memberikan nilai berdasarkan urutan parameter.
  2. Urutan positional arguments harus sesuai dengan urutan parameter.
  3. Keyword arguments memberikan nilai berdasarkan nama parameter.
  4. Urutan keyword arguments tidak harus mengikuti urutan parameter.
  5. Default parameters menyediakan nilai bawaan untuk parameter.
  6. Default parameter dapat diganti dengan argument baru ketika function dipanggil.
  7. Positional argument dapat digabungkan dengan keyword argument.
  8. Jika digabungkan, positional arguments harus ditulis sebelum keyword arguments.
  9. Parameter tanpa default harus ditempatkan sebelum parameter yang memiliki default.
  10. Pemilihan cara pemberian argument yang tepat dapat membuat function lebih fleksibel dan mudah dibaca.