Percabangan pada Kotlin
Bismillahirrahmanirrahim.
Pernyataan dalam sebuah program dieksekusi secara berurutan dari baris kode paling atas ke bawah secara default. Terdapat struktur program yang membuat program menyimpang dari eksekusi yang secara default. Program dieksekusi baris kodenya jika memenuhi kondisi yang dibuat. Dalam pemrograman ini disebut sebagai percabangan. Percabangan yang ada dalam Kotlin yaitu if
dengan variasinya seperti if else
dan if else-if else
, dan percabangan when
. Atau eksekusi program yang berulang-ulang sesuai kondisi yang ditetapkan yang dikenal sebagai perulangan. Perulangan pada Kotlin yaitu while
, do while
, dan for
.
Percabangan if
Percabangan if akan mengeksekusi suatu pernyataan jika terdapat satu atau beberapa kondisi yang memenuhi syarat atau bernilai true
(benar).
Struktur dasar program if
yaitu:
if (kondisi) pernyataan
Percabangan if dapat dibuat seperti struktur di atas, jika hanya ingin mengeksekusi satu buah pernyataan. Untuk yang lebih dari satu pernyataan harus dibuat dalam blok yang dimuat dalam kurung kurawal ({ ... }
) seperti berikut.
if(kondisi) {
// pernyataan-pernyataan
}
Contoh program:
fun main() {
val nilaiFinal = 85
if(nilaiFinal >= 85)
println("Selamat, kamu LULUS dengan nilai A")
}
Output:
Selamat, kamu LULUS dengan nilai A
Perhatikan pada baris if(nilaiFinal >= 85)
di atas. Pernyataan yang ada dalam blok tersebut (println("Selamat kamu LULUS dengan nilai A")
) akan dieksekusi jika nilaiFinal
lebih dari atau sama dengan 85
. Dalam arti lain bahwa if
ini mengharapkan nilai true
. Jika disederhanakan, blok di atas menjadi if(true)
. Akan tetapi jika bernilai false
maka tidak ada output yang dihasilkan.
Pernyataan dalam blok
if
atau blok percabangan lainnya, jika bernilaitrue
maka pernyataan tersebut akan dieksekusi. Jika bernilaifalse
maka control flow akan melanjutkan eksekusi pada pernyataan berikutnya. Control flow bagian program yang menangani percabangan atau perulangan.
Percabangan if else
Percabangan ini digunakan jika terdapat dua pernyataan yang berbeda dengan kondisi tertentu, yang menghasilkan nilai boolean berupa true dan false.
Dari program sebelumnya, untuk menangani program tersebut jika pernyataan tidak memenuhi atau tidak sesuai dengan kondisi yang ditetapkan, maka dapat dibuat satu blok yang lain untuk menanganinya yaitu dengan menambahkan blok else
.
fun main() {
val nilaiFinal = 80
if(nilaiFinal >= 85)
println("Selamat, kamu LULUS dengan nilai A")
else
println("Selamat, kamu LULUS tetapi tidak dengan nilai A")
}
Output:
Selamat, kamu LULUS tetapi tidak dengan nilai A
Percabangan if else-if else
Dengan percabangan ini, kita dpaat membuat seleksi persyaratan yang lebih kompleks. Dengan pernyataan ini, kita dapat membuat kondisi sesuai yang diinginkan.
Struktur programnya:
if(kondisi1) {
// Pernyataan1
} else if(kondisi2) {
// Pernyataan2
} else {
// Pernyataan lainnya
}
Contoh program:
fun main() {
val hari = 2
if(hari == 1) println("Hari ini hari Minggu")
else if(hari == 2) println("Hari ini hari Senin")
else if(hari == 3) println("Hari ini hari Selasa")
else if(hari == 4) println("Hari ini hari Rabu")
else if(hari == 5) println("Hari ini hari Kamis")
else if(hari == 6) println("Hari ini hari Jumat")
else if(hari == 7) println("Hari ini hari Sabtu")
else println("Bukan nama hari")
}
Output:
Hari ini hari Senin
Hal yang baru pada Kotlin yaitu bahwa if merupakan sebuah expression, sehingga dapat dibuat seperti:
fun main() {
val theQuestion = "Doctor who"
val answer = "Theta Sigma"
val correctAnswer = ""
var message = if(answer == correctAnswer) {
"You are correct"
}
else {
"Try again"
}
println(message)
}
Output:
Try again
String pada blok pertama dari if tersebut akan dikembalikan pada variabel message
jika kondisinya bernilai true, jika tidak maka blok yang kedua yang akan mengembalikan nilai true.
Percabangan when
Pada pemrograman kotlin, when
merupakan pengganti switch
pada pemrograman Java. Fungsi when
hampir sama dengan if
, yaitu untuk memilih suatu pernyataan yang akan dieksekusi dengan kondisi tertentu. Hanya penulisan sintaks saja yang berbeda.
Contoh program:
fun main() {
val hari = 2
when(hari) {
1 -> println("Minggu")
2 -> println("Senin")
3 -> println("Selasa")
4 -> println("Rabu")
5 -> println("Kamis")
6 -> println("Jumat")
7 -> println("Sabtu")
}
}
when
mencocokkan argumen (variabel hari
) dengan semua cabang yang ada sampai menemukan nilai yang sesuai. Catatan bahwa tidak seperti pernyataan switch
, ketika menemukan nilai yang sesuai, pernyataan/ cabang berikutnya tidak dieksekusi lagi. Ini mengapa kita tidak perlu membuat pernyataan break
.
when
juga dapat digunakan sebagai expression, jika digunakan seperti itu, setiap cabang menjadi nilai kembalian terhadap expression. Perhatikan contoh berikut.
fun main() {
val hari = 8
var namaHari = when(hari) {
1 -> "Minggu"
2 -> "Senin"
3 -> "Selasa"
4 -> "Rabu"
5 -> "Kamis"
6 -> "Jumat"
7 -> "Sabtu"
else -> "Bukan hari"
}
println(namaHari)
}
Output:
Bukan hari
Harus diperhatikan bahwa when
yang digunakan sebagai expression, harus menyertakan else
.
Membuat Percabangan di dalam when
Contoh program:
fun main() {
print("What is the answer to life? ")
var response:Int? = readLine()?.toInt()
val message = when(response) {
42 -> "So long, and thanks for the all fish"
43, 44, 45 -> "either 43, 44, or 45"
in 46 .. 100 -> "forty six to one hundred"
else -> "Not what I'm looking for"
}
println(message)
}
readLine()
membaca inputan dari console (terminal). Untuk tanda tanya yang ada, akan dibahas pada bagian yang lain.
Kondisi percabangan dapat dipisahkan dengan koma. Kita pun dapat memeriksa anggota dengan range koleksi. else
di sini digunakan di dalam percabangan yang berbentuk expression.
Referensi
- Modul Pemrograman Mobile (Mobile Programming).
- Hagos, Ted. 2018. Learn Android Studio 3 with Kotlin: Efficient Android App Development. Apress: Manila.