Function Default Value Parameter
Default Value Parameter adalah fitur Kotlin yang memungkinkan kita memberikan nilai default pada sebuah parameter function. Dengan nilai default, parameter tidak wajib diberikan ketika function dipanggil.
Hal ini berguna ketika sebuah parameter bersifat opsional.
Sintaks Default Value Parameter
Bentuk umum:
fun namaFunction(
parameter1: TipeData,
parameter2: TipeData = nilaiDefault
) {
// kode
}
Contoh:
fun sayHello(firstName: String, lastName: String = "") {
println("Hello $firstName $lastName")
}
Pada function tersebut, parameter lastName memiliki nilai default:
lastName: String = ""
Artinya, jika lastName tidak diberikan ketika function dipanggil, Kotlin akan menggunakan string kosong "".
Memanggil Function dengan Default Value
Function dapat dipanggil hanya dengan memberikan parameter firstName:
sayHello("Ade")
Karena lastName memiliki nilai default "", function tetap dapat dijalankan.
Output:
Hello Ade
Kita juga dapat memberikan nilai lastName secara langsung:
sayHello("Ucup", "Topekox")
Output:
Hello Ucup Topekox
Contoh Function Default Value
Berikut contoh lengkap:
fun sayHello(firstName: String, lastName: String = "") {
println("Hello $firstName $lastName")
}
fun main() {
sayHello("Ade")
sayHello("Ucup", "Topekox")
}
Output:
Hello Ade
Hello Ucup Topekox
Pada pemanggilan:
sayHello("Ade")
Kotlin menggunakan nilai default:
lastName = ""
Sedangkan pada:
sayHello("Ucup", "Topekox")
nilai lastName diberikan secara langsung sehingga nilai default tidak digunakan.
Default Value dengan null
Default value juga dapat menggunakan null, tetapi parameter tersebut harus menggunakan nullable type ?.
Contoh:
fun sayHello2(
firstName: String,
lastName: String,
middleName: String? = null
) {
if (middleName == null) {
println("Hello $firstName $lastName")
} else {
println("Hello $firstName $middleName $lastName")
}
}
Perhatikan parameter:
middleName: String? = null
Terdapat dua bagian penting:
String?
menunjukkan bahwa parameter middleName dapat berisi String atau null.
Sedangkan:
= null
menentukan nilai default parameter tersebut adalah null.
Menggunakan Default Value null
Karena middleName memiliki nilai default null, kita dapat memanggil function tanpa memberikan middleName.
Contoh:
sayHello2("Ucup", "Topekox")
Kotlin akan menggunakan:
middleName = null
Function kemudian memeriksa apakah middleName bernilai null:
if (middleName == null) {
println("Hello $firstName $lastName")
}
Output:
Hello Ucup Topekox
Memberikan Nilai Middle Name
Kita juga dapat memberikan nilai middleName.
Contoh:
sayHello2("Ade", "Laksono", "Agustian")
Karena middleName berisi "Agustian", kondisi:
middleName == null
bernilai false.
Sehingga bagian else dijalankan:
println("Hello $firstName $middleName $lastName")
Output:
Hello Ade Agustian Laksono
Memberikan Nilai null Secara Explicit
Kita juga dapat memberikan null secara langsung ketika memanggil function.
Contoh:
sayHello2("Recky", "Ramadhan", null)
Karena middleName bernilai null, program akan menjalankan:
if (middleName == null) {
println("Hello $firstName $lastName")
}
Output:
Hello Recky Ramadhan
Contoh Program Lengkap
Berikut contoh lengkap penggunaan Default Value Parameter:
fun sayHello(firstName: String, lastName: String = "") {
println("Hello $firstName $lastName")
}
fun sayHello2(
firstName: String,
lastName: String,
middleName: String? = null
) {
if (middleName == null) {
println("Hello $firstName $lastName")
} else {
println("Hello $firstName $middleName $lastName")
}
}
fun main() {
sayHello("Ade")
sayHello("Ucup", "Topekox")
sayHello2("Ucup", "Topekox", null)
sayHello2("Ade", "Laksono", "Agustian")
sayHello2("Recky", "Ramadhan", null)
}
Output:
Hello Ade
Hello Ucup Topekox
Hello Ucup Topekox
Hello Ade Agustian Laksono
Hello Recky Ramadhan
Default Value String Kosong vs null
Ada dua pendekatan yang digunakan pada contoh di atas.
Menggunakan String Kosong
fun sayHello(
firstName: String,
lastName: String = ""
) {
println("Hello $firstName $lastName")
}
Nilai default:
""
Artinya parameter lastName selalu bertipe String, tetapi nilai default-nya adalah string kosong.
Menggunakan null
fun sayHello2(
firstName: String,
lastName: String,
middleName: String? = null
) {
// ...
}
Nilai default:
null
Karena menggunakan null, tipe datanya harus nullable:
String?
Perbedaan "" dan null
"" adalah String kosong, sedangkan null berarti tidak memiliki nilai.
Contoh:
val lastName = ""
Variabel tersebut memiliki nilai berupa String kosong.
Sedangkan:
val middleName: String? = null
variabel tersebut tidak memiliki nilai String.
Perbedaan ini penting ketika membuat parameter yang bersifat opsional.
Kapan Menggunakan Default Value?
Default value cocok digunakan ketika sebuah parameter tidak selalu wajib diberikan.
Contohnya:
fun connect(
host: String,
port: Int = 8080
) {
println("Connect to $host:$port")
}
Function dapat dipanggil tanpa memberikan port:
connect("localhost")
Output:
Connect to localhost:8080
Atau kita dapat menentukan port sendiri:
connect("localhost", 9090)
Output:
Connect to localhost:9090
Kesimpulan
Default Value Parameter memungkinkan kita memberikan nilai awal pada parameter function.
Contoh:
fun sayHello(firstName: String, lastName: String = "") {
println("Hello $firstName $lastName")
}
Parameter lastName memiliki nilai default berupa string kosong.
Sedangkan untuk nilai default null:
fun sayHello2(
firstName: String,
lastName: String,
middleName: String? = null
) {
// ...
}
Parameter middleName bersifat nullable karena menggunakan String?.
Dengan Default Value Parameter, kita dapat membuat function yang lebih fleksibel karena parameter tertentu dapat diberikan nilainya atau menggunakan nilai default.