Skip to main content

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:

  • if dapat menghasilkan nilai.
  • when dapat menghasilkan nilai.
  • Nilai dari if atau when dapat dikembalikan menggunakan return.
  • if cocok untuk kondisi sederhana.
  • when cocok untuk beberapa kondisi.
  • if dan when dapat digunakan bersama Single Expression Function.