Return If & When
Dalam Kotlin, if dan when tidak hanya digunakan sebagai statement untuk menjalankan kode berdasarkan kondisi. Keduanya juga dapat digunakan sebagai expression yang menghasilkan sebuah nilai. Nilai tersebut kemudian dapat langsung dikembalikan menggunakan keyword return.
Konsep ini disebut Return If & When.
Return If
Kita dapat menggunakan if sebagai expression dan mengembalikan hasilnya menggunakan return.
Contoh:
fun sayHelloIf(name: String = ""): String {
return if (name == "") {
"Hello Bro"
} else {
"Hello $name"
}
}
Pada function tersebut:
return if (name == "") {
"Hello Bro"
} else {
"Hello $name"
}
if menghasilkan sebuah nilai yang kemudian dikembalikan oleh return.
Cara Kerja Return If
Function sayHelloIf() memiliki parameter:
name: String = ""
Artinya parameter name memiliki nilai default berupa string kosong.
Jika function dipanggil tanpa argument:
sayHelloIf()
maka nilai name adalah:
""
Kondisi:
name == ""
bernilai true.
Maka function mengembalikan:
Hello Bro
Return If dengan Parameter
Jika function dipanggil dengan nama:
sayHelloIf("Ucup")
maka nilai name adalah:
Ucup
Kondisi:
name == ""
bernilai false.
Sehingga bagian else dijalankan:
"Hello $name"
Hasilnya:
Hello Ucup
Return When
Selain if, Kotlin juga memungkinkan kita menggunakan when sebagai expression.
Contoh:
fun sayHelloWhen(name: String = ""): String {
return when (name) {
"" -> "Hello Bro"
else -> "Hello $name"
}
}
Pada contoh tersebut:
return when (name) {
"" -> "Hello Bro"
else -> "Hello $name"
}
when menghasilkan sebuah nilai yang kemudian dikembalikan menggunakan return.
Cara Kerja Return When
Ketika function dipanggil tanpa argument:
sayHelloWhen()
parameter name akan memiliki nilai:
""
Kemudian when memeriksa:
"" -> "Hello Bro"
Karena nilai name adalah string kosong, hasilnya:
Hello Bro
Jika dipanggil:
sayHelloWhen("Angga")
tidak ada kondisi yang cocok dengan "Angga".
Maka bagian:
else -> "Hello $name"
akan dijalankan.
Hasilnya:
Hello Angga
Contoh Program Lengkap
Berikut contoh lengkap Return If dan Return When:
fun main() {
fun sayHelloIf(name: String = ""): String {
return if (name == "") {
"Hello Bro"
} else {
"Hello $name"
}
}
fun sayHelloWhen(name: String = ""): String {
return when (name) {
"" -> "Hello Bro"
else -> "Hello $name"
}
}
println(sayHelloIf())
println(sayHelloIf("Ucup"))
println(sayHelloWhen())
println(sayHelloWhen("Angga"))
}
Output:
Hello Bro
Hello Ucup
Hello Bro
Hello Angga
Return If sebagai Expression
Pada Kotlin, if dapat menghasilkan nilai.
Contoh:
val result = if (10 > 5) {
"Benar"
} else {
"Salah"
}
println(result)
Output:
Benar
Karena kondisi:
10 > 5
bernilai true, maka expression if menghasilkan:
Benar
Nilai tersebut disimpan ke dalam variable result.
Hal yang sama dapat dilakukan dengan return:
fun cekAngka(number: Int): String {
return if (number > 0) {
"Positif"
} else {
"Bukan positif"
}
}
Return When sebagai Expression
when juga dapat menghasilkan nilai.
Contoh:
fun cekHari(day: Int): String {
return when (day) {
1 -> "Senin"
2 -> "Selasa"
3 -> "Rabu"
else -> "Hari tidak diketahui"
}
}
Penggunaan:
println(cekHari(1))
Output:
Senin
Contoh:
println(cekHari(3))
Output:
Rabu
Perbandingan Return If dan Return When
Untuk kondisi sederhana, if sering lebih mudah digunakan.
Contoh:
fun sayHello(name: String): String {
return if (name == "") {
"Hello Bro"
} else {
"Hello $name"
}
}
Sedangkan when cocok ketika terdapat beberapa kondisi.
Contoh:
fun getDay(day: Int): String {
return when (day) {
1 -> "Senin"
2 -> "Selasa"
3 -> "Rabu"
4 -> "Kamis"
5 -> "Jumat"
6 -> "Sabtu"
7 -> "Minggu"
else -> "Hari tidak valid"
}
}
Dengan banyak kondisi, when biasanya lebih mudah dibaca dibandingkan menggunakan banyak if dan else if.
Return If dengan Single Expression
Karena if dapat menghasilkan nilai, kita juga dapat menggabungkannya dengan Single Expression Function.
Contoh:
fun sayHello(name: String = ""): String =
if (name == "") "Hello Bro" else "Hello $name"
Function tersebut melakukan hal yang sama dengan:
fun sayHello(name: String = ""): String {
return if (name == "") {
"Hello Bro"
} else {
"Hello $name"
}
}
Return When dengan Single Expression
Hal yang sama dapat dilakukan dengan when.
Contoh:
fun sayHello(name: String = ""): String =
when (name) {
"" -> "Hello Bro"
else -> "Hello $name"
}
Function tersebut menggunakan when sebagai expression dan langsung mengembalikan hasilnya.
Kesimpulan
Dalam Kotlin, if dan when dapat digunakan sebagai expression yang menghasilkan nilai.
Contoh Return If:
fun sayHelloIf(name: String = ""): String {
return if (name == "") {
"Hello Bro"
} else {
"Hello $name"
}
}
Contoh Return When:
fun sayHelloWhen(name: String = ""): String {
return when (name) {
"" -> "Hello Bro"
else -> "Hello $name"
}
}
Konsep penting yang perlu diingat:
ifdapat menghasilkan nilai.whendapat menghasilkan nilai.- Nilai dari
ifatauwhendapat dikembalikan menggunakanreturn. ifcocok untuk kondisi sederhana.whencocok untuk beberapa kondisi.ifdanwhendapat digunakan bersama Single Expression Function.