Percabangan pada Kotlin

Muhammad Fajri
Monday, 12 April 2021

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 bernilai true maka pernyataan tersebut akan dieksekusi. Jika bernilai false 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

  1. Modul Pemrograman Mobile (Mobile Programming).
  2. Hagos, Ted. 2018. Learn Android Studio 3 with Kotlin: Efficient Android App Development. Apress: Manila.