Skip to main content

Function Named Argument

Named Argument adalah cara memberikan nilai kepada parameter function dengan menyebutkan nama parameternya secara langsung.

Dengan Named Argument, kita tidak harus bergantung pada urutan parameter ketika memanggil function.

Named Argument sangat berguna ketika sebuah function memiliki banyak parameter atau ketika nama parameter membantu membuat kode lebih mudah dibaca.

Function Tanpa Named Argument

Perhatikan function berikut:

fun sayHello(firstName: String, midleName: String, lastName: String) {
println("Hello $firstName $midleName $lastName")
}

Function tersebut memiliki tiga parameter:

firstName
midleName
lastName

Jika kita memanggil function tanpa Named Argument:

sayHello("Ade", "Agustian", "Laksono")

Kotlin akan memasukkan argument berdasarkan urutan parameter:

firstName = "Ade"
midleName = "Agustian"
lastName = "Laksono"

Output:

Hello Ade Agustian Laksono

Menggunakan Named Argument

Dengan Named Argument, kita dapat menyebutkan nama parameter ketika memberikan nilai.

Contoh:

sayHello(
firstName = "Ucup",
lastName = "Topekox",
midleName = "Bahlul"
)

Perhatikan bahwa urutannya berbeda dengan deklarasi function.

Function didefinisikan dengan urutan:

firstName
midleName
lastName

Tetapi ketika dipanggil:

firstName = "Ucup"
lastName = "Topekox"
midleName = "Bahlul"

Kotlin tetap dapat mengetahui nilai masing-masing parameter karena kita menyebutkan nama parameternya.

Contoh Program Lengkap

fun sayHello(firstName: String, midleName: String, lastName: String) {
println("Hello $firstName $midleName $lastName")
}

fun main() {

// Tanpa named argument
sayHello("Ade", "Agustian", "Laksono")

// Dengan named argument
sayHello(
firstName = "Ucup",
lastName = "Topekox",
midleName = "Bahlul"
)
}

Output:

Hello Ade Agustian Laksono
Hello Ucup Bahlul Topekox

Perbedaan Positional Argument dan Named Argument

Ada dua cara umum memberikan argument kepada function.

Positional Argument

Argument diberikan berdasarkan posisi atau urutan parameter.

sayHello("Ade", "Agustian", "Laksono")

Kotlin akan membaca:

Parameter Argument

firstName → "Ade"
midleName → "Agustian"
lastName → "Laksono"

Named Argument

Argument diberikan berdasarkan nama parameter.

sayHello(
firstName = "Ucup",
lastName = "Topekox",
midleName = "Bahlul"
)

Kotlin akan membaca:

firstName → "Ucup"
lastName → "Topekox"
midleName → "Bahlul"

Urutan argument tidak menjadi masalah karena nama parameter sudah ditentukan.

Named Argument Membuat Kode Lebih Mudah Dibaca

Named Argument sangat berguna ketika sebuah function memiliki banyak parameter.

Contoh tanpa Named Argument:

createUser("Ucup", 25, "Palu", true)

Kita harus mengetahui arti dari setiap argument:

"Ucup" → nama
25 → umur
"Palu" → kota
true → status

Dengan Named Argument:

createUser(
name = "Ucup",
age = 25,
city = "Palu",
active = true
)

Kode menjadi lebih mudah dipahami karena kita dapat langsung mengetahui fungsi dari setiap nilai.

Named Argument Tidak Harus Mengubah Urutan Semua Parameter

Kita juga dapat menggunakan Named Argument hanya pada parameter tertentu.

Contoh:

fun sayHello(
firstName: String,
midleName: String,
lastName: String
) {
println("Hello $firstName $midleName $lastName")
}

Kita dapat memanggil:

sayHello(
"Ucup",
lastName = "Topekox",
midleName = "Bahlul"
)

Argument pertama tetap menggunakan positional argument:

"Ucup"

Sedangkan parameter berikutnya menggunakan Named Argument.

Hasilnya:

Hello Ucup Bahlul Topekox

Named Argument dan Default Parameter

Named Argument juga sangat berguna jika function memiliki default value parameter.

Contoh:

fun sayHello(
firstName: String,
middleName: String = "",
lastName: String = ""
) {
println("Hello $firstName $middleName $lastName")
}

Kita dapat memanggil:

sayHello(
firstName = "Ucup",
lastName = "Topekox"
)

Parameter middleName tidak diberikan sehingga Kotlin menggunakan nilai default:

middleName = ""

Output:

Hello Ucup Topekox

Named Argument dengan Banyak Parameter

Contoh function dengan beberapa parameter:

fun createUser(
name: String,
age: Int,
city: String,
active: Boolean
) {
println("Name: $name")
println("Age: $age")
println("City: $city")
println("Active: $active")
}

Tanpa Named Argument:

createUser("Ucup", 25, "Palu", true)

Dengan Named Argument:

createUser(
name = "Ucup",
age = 25,
city = "Palu",
active = true
)

Versi Named Argument biasanya lebih mudah dibaca, terutama ketika function memiliki banyak parameter.

Kesimpulan

Named Argument adalah cara memberikan argument kepada function dengan menyebutkan nama parameter.

Tanpa Named Argument:

sayHello("Ade", "Agustian", "Laksono")

Argument diberikan berdasarkan urutan parameter.

Dengan Named Argument:

sayHello(
firstName = "Ucup",
lastName = "Topekox",
midleName = "Bahlul"
)

Argument diberikan berdasarkan nama parameter sehingga urutannya dapat dibuat berbeda.

Keuntungan Named Argument:

  • Membuat kode lebih mudah dibaca.
  • Mengurangi kesalahan akibat salah urutan argument.
  • Sangat berguna pada function dengan banyak parameter.
  • Dapat digunakan bersama Default Value Parameter.
  • Memungkinkan argument tertentu diberikan menggunakan nama parameter.

Jadi, prinsip sederhananya:

tip

Named Argument memungkinkan kita memberikan nilai kepada parameter function berdasarkan nama parameternya, bukan hanya berdasarkan urutannya.