Masukkan Password
17 The Complete Kotlin Course #16 - Conditional Expressions - Kotlin Tutorials for Beginners
Ini adalah materi yang sangat penting karena kita mulai benar-benar menggunakan hasil dari materi sebelumnya—Boolean, comparison operator, dan logical operator—untuk mengatur jalannya program.
Di lesson ini fokus utamanya adalah:
if
else
else if
Dan ada satu konsep Kotlin yang agak berbeda dari bahasa lain:
Kotlin menyebut
ifsebagai expression, karenaifdapat menghasilkan sebuah nilai.
Kita bahas dari yang paling dasar dulu.
1. Apa itu if?
if digunakan ketika program harus membuat keputusan berdasarkan sebuah kondisi.
Dalam kehidupan sehari-hari kita sering berpikir:
Jika hujan, saya membawa payung.
Dalam pemrograman:
JIKA kondisi benar
lakukan sesuatu
Contoh:
if (5 > 2) {
println("5 is greater than 2")
}
Kita bisa membacanya:
Jika 5 lebih besar dari 2, cetak
"5 is greater than 2".
Karena:
5 > 2
menghasilkan:
true
maka kode di dalam { } dijalankan.
Output:
5 is greater than 2
2. Struktur dasar if
Bentuk umum:
if (condition) {
// kode yang dijalankan jika condition true
}
Ada tiga bagian penting:
if (condition) {
code
}
if
Memberi tahu Kotlin:
“Saya ingin membuat keputusan.”
(condition)
Berisi kondisi yang harus menghasilkan Boolean:
true
atau:
false
{ }
Disebut curly braces atau kurung kurawal.
Berisi kode yang akan dijalankan jika kondisi true.
3. Contoh paling sederhana
if (5 > 2) {
println("Hello")
}
Kotlin akan mengevaluasi:
5 > 2
↓
true
Karena true:
if (true) {
println("Hello")
}
Maka:
Hello
4. Kalau kondisi false?
Sekarang kita ubah:
if (5 < 2) {
println("Hello")
}
Kotlin mengevaluasi:
5 < 2
↓
false
Maka:
if (false) {
println("Hello")
}
Kode di dalam { } tidak dijalankan.
Hasilnya:
Tidak ada output
Ini adalah konsep paling dasar dari if.
5. Cara berpikir if
Bayangkan ada penjaga pintu.
Kondisi
↓
┌──────────┐
│ TRUE? │
└────┬─────┘
│
┌──────┴──────┐
↓ ↓
TRUE FALSE
↓ ↓
jalankan jangan jalankan
kode kode
Contoh:
if (age >= 18) {
println("Adult")
}
Kotlin bertanya:
Apakah
age >= 18?
Kalau true → cetak "Adult".
Kalau false → tidak melakukan apa-apa dari blok tersebut.
6. Hubungannya dengan materi sebelumnya
Ini bagian yang sangat penting.
Sebelumnya kita belajar:
5 > 2
menghasilkan:
true
Sekarang hasil tersebut kita masukkan ke if:
if (5 > 2) {
println("5 is greater than 2")
}
Jadi alurnya:
comparison operator
↓
Boolean
↓
if
↓
program mengambil keputusan
Misalnya:
val age = 20
if (age >= 18) {
println("You are an adult")
}
Evaluasinya:
20 >= 18
↓
true
↓
if(true)
↓
jalankan println()
7. if tidak harus menggunakan angka langsung
Kita bisa menggunakan variable.
Contoh:
val age = 20
if (age >= 18) {
println("You are an adult")
}
Ini jauh lebih realistis daripada:
if (20 >= 18) {
...
}
Karena dalam program nyata nilainya biasanya berasal dari data.
Misalnya:
val score = 80
if (score >= 75) {
println("Pass")
}
Kotlin mengevaluasi:
80 >= 75
↓
true
Maka:
Pass
8. else: apa yang dilakukan kalau if false?
Sekarang muncul masalah.
Misalnya:
val age = 15
if (age >= 18) {
println("You are an adult")
}
Karena:
15 >= 18
↓
false
tidak ada output.
Tetapi bagaimana kalau kita ingin mengatakan:
Kalau bukan orang dewasa, cetak
"You are not an adult"?
Gunakan else.
val age = 15
if (age >= 18) {
println("You are an adult")
} else {
println("You are not an adult")
}
9. Cara kerja if-else
Strukturnya:
if (condition) {
// jika true
} else {
// jika false
}
Misalnya:
val age = 15
if (age >= 18) {
println("Adult")
} else {
println("Not adult")
}
Kotlin mengecek:
15 >= 18
↓
false
Karena if false, Kotlin melewati blok pertama.
Kemudian masuk ke:
else
dan menjalankan:
println("Not adult")
Output:
Not adult
10. Mental model if-else
Bayangkan percabangan:
condition
↓
┌─────────┐
│ TRUE? │
└────┬────┘
YES │ NO
↓ ↓
blok if blok else
↓ ↓
selesai
Jadi if-else berarti:
Kalau benar lakukan A, kalau salah lakukan B.
11. else tidak memiliki kondisi
Perhatikan:
if (age >= 18) {
println("Adult")
} else {
println("Not adult")
}
if memiliki kondisi:
age >= 18
Tetapi else tidak memiliki kondisi.
Kenapa?
Karena else berarti:
“Kalau kondisi
iftadi tidak terpenuhi, lakukan ini.”
Jadi tidak perlu menulis:
else (age < 18)
Itu bukan sintaks Kotlin.
Cukup:
else {
}
12. Bagaimana kalau ada 3 kemungkinan?
Sekarang kita punya masalah baru.
Misalnya kita ingin mengetahui hubungan antara x dan y.
Ada tiga kemungkinan:
x < yx > yx == y
Kita tidak bisa hanya menggunakan:
if
else
karena kita memiliki tiga kemungkinan.
Di sinilah else if digunakan.
13. Apa itu else if?
Struktur:
if (condition1) {
// kondisi 1
} else if (condition2) {
// kondisi 2
} else {
// tidak ada kondisi sebelumnya yang true
}
Contoh:
val x = 5
val y = 6
if (x < y) {
println("x is less than y")
} else if (x > y) {
println("x is greater than y")
} else {
println("x and y are equal")
}
14. Mari kita jalankan secara manual
Nilainya:
x = 5
y = 6
Kondisi pertama
x < y
menjadi:
5 < 6
↓
true
Karena true, Kotlin menjalankan:
println("x is less than y")
Output:
x is less than y
Dan yang penting:
Setelah menemukan kondisi yang
true, Kotlin tidak perlu menjalankan kondisi berikutnya dalam rantaiif-else if-elsetersebut.
Jadi:
else if (x > y)
tidak perlu dijalankan.
Begitu juga:
else
tidak dijalankan.
15. Sekarang x lebih besar dari y
Misalnya:
val x = 15
val y = 6
Kode:
if (x < y) {
println("x is less than y")
} else if (x > y) {
println("x is greater than y")
} else {
println("x and y are equal")
}
Kondisi pertama:
15 < 6
↓
false
Jadi blok pertama dilewati.
Lanjut ke else if:
15 > 6
↓
true
Maka:
x is greater than y
Blok else tidak dijalankan.
16. Sekarang nilainya sama
Misalnya:
val x = 15
val y = 15
Kondisi pertama:
15 < 15
↓
false
Lanjut:
15 > 15
↓
false
Tidak ada yang true.
Maka Kotlin menjalankan else:
x and y are equal
17. Jadi if-else if-else seperti penyaringan
Kita bisa membayangkannya seperti ini:
x < y ?
↓
YA → jalankan blok 1 → selesai
↓ TIDAK
x > y ?
↓
YA → jalankan blok 2 → selesai
↓ TIDAK
else → jalankan blok 3
Ini sangat berguna ketika ada beberapa kemungkinan.
18. Contoh yang lebih realistis: nilai ujian
Misalnya:
val score = 85
if (score >= 90) {
println("A")
} else if (score >= 80) {
println("B")
} else if (score >= 70) {
println("C")
} else {
println("D")
}
Kotlin mengecek dari atas ke bawah.
score >= 90
85 >= 90
↓
false
Lanjut:
score >= 80
85 >= 80
↓
true
Maka output:
B
Kotlin tidak lanjut mengecek:
score >= 70
karena sudah menemukan kondisi yang true.
19. Urutan kondisi sangat penting
Perhatikan kode ini:
val score = 95
if (score >= 70) {
println("C or above")
} else if (score >= 90) {
println("A")
}
Untuk score = 95:
95 >= 70
↓
true
Maka Kotlin langsung menjalankan:
C or above
dan tidak pernah sampai ke else if.
Padahal 95 sebenarnya memenuhi score >= 90.
Jadi ketika menggunakan banyak else if, urutan kondisi sangat penting.
Biasanya kondisi yang lebih spesifik/lebih tinggi diletakkan terlebih dahulu.
Contoh yang lebih baik:
if (score >= 90) {
println("A")
} else if (score >= 70) {
println("C or above")
}
20. Bisa memiliki banyak else if
Tidak hanya satu.
Contoh:
if (condition1) {
// ...
} else if (condition2) {
// ...
} else if (condition3) {
// ...
} else if (condition4) {
// ...
} else {
// ...
}
Jumlahnya tergantung kebutuhan program.
Misalnya sistem nilai:
val score = 76
if (score >= 90) {
println("A")
} else if (score >= 80) {
println("B")
} else if (score >= 70) {
println("C")
} else if (score >= 60) {
println("D")
} else {
println("F")
}
Untuk 76:
76 >= 90 → false
76 >= 80 → false
76 >= 70 → true
Maka:
C
21. else adalah “jalan terakhir”
Cara paling mudah memahami:
if (...) {
} else if (...) {
} else {
}
adalah:
IF:
Apakah kondisi pertama benar?
ELSE IF:
Kalau tidak, apakah kondisi kedua benar?
ELSE:
Kalau semuanya salah, lakukan ini.
Jadi:
if → pilihan pertama
else if → pilihan berikutnya
else → pilihan terakhir
22. else tidak wajib
Ini penting.
Kita boleh hanya menggunakan:
if (age >= 18) {
println("Adult")
}
Tidak harus ada else.
else hanya diperlukan jika kita ingin melakukan sesuatu ketika kondisi if bernilai false.
Begitu juga else if tidak wajib.
23. if adalah expression di Kotlin
Sekarang masuk ke bagian yang sedikit lebih khas Kotlin.
Subtitle menjelaskan bahwa Kotlin menggunakan istilah:
if expression
bukan hanya if statement.
Alasannya:
ifdi Kotlin dapat menghasilkan sebuah nilai.
Ini berbeda dari cara pemula biasanya membayangkan if.
24. if bisa menghasilkan nilai
Contoh:
val age = 20
val status = if (age >= 18) {
"Adult"
} else {
"Not adult"
}
Perhatikan:
val status = if (...) {
"Adult"
} else {
"Not adult"
}
if menghasilkan sebuah nilai.
Karena:
age >= 18
↓
true
↓
"Adult"
Maka:
status = "Adult"
25. Ini sangat menarik
Biasanya kita mungkin berpikir:
if (...) {
println(...)
}
if hanya mengatur apakah kode dijalankan.
Tetapi Kotlin juga memungkinkan:
val result = if (...) {
...
} else {
...
}
Sehingga if menghasilkan nilai.
Contoh:
val age = 20
val message = if (age >= 18) {
"You are an adult"
} else {
"You are a minor"
}
println(message)
Hasil:
You are an adult
26. Dari mana nilai if berasal?
Subtitle mengatakan:
nilai yang dikembalikan adalah nilai dari expression terakhir dalam block.
Contoh:
val result = if (true) {
println("Hello")
"Success"
} else {
"Failed"
}
Di blok if, expression terakhir adalah:
"Success"
Maka nilai if adalah:
"Success"
Jadi:
if (condition) {
expression 1
expression 2
expression terakhir ← nilai blok
}
Untuk tahap sekarang, cukup pahami:
Jika
ifdigunakan sebagai expression, nilai dari branch yang dipilih menjadi nilai hasilif.
27. Contoh yang sangat sederhana
val number = 10
val result = if (number > 5) {
"Greater"
} else {
"Smaller or equal"
}
Karena:
10 > 5
↓
true
maka:
result = "Greater"
28. Tidak harus disimpan ke variable
Subtitle juga benar ketika mengatakan bahwa kita tidak wajib menggunakan return value.
Kita boleh:
if (5 > 2) {
println("True")
}
Tanpa menyimpan hasilnya.
Atau:
val result = if (5 > 2) {
"True"
} else {
"False"
}
Jadi ada dua cara penggunaan:
Sebagai kontrol
if (condition) {
println("Hello")
}
Sebagai expression yang menghasilkan nilai
val result = if (condition) {
"Yes"
} else {
"No"
}
29. Contoh praktis: menentukan status login
Misalnya:
val isLoggedIn = true
val message = if (isLoggedIn) {
"Welcome back!"
} else {
"Please log in."
}
println(message)
Karena:
isLoggedIn = true
maka:
message = "Welcome back!"
30. Contoh praktis: menentukan angka terbesar
Misalnya:
val a = 10
val b = 20
val max = if (a > b) {
a
} else {
b
}
println(max)
Evaluasi:
10 > 20
↓
false
Maka branch else dipilih:
max = 20
Output:
20
Ini contoh bagus karena if digunakan untuk menghasilkan nilai.
31. Hati-hati dengan istilah “return”
Subtitle beberapa kali menyebut “return value”.
Untuk pemahaman pemula, bedakan dua konsep:
println()
println("Hello")
Fungsinya menampilkan sesuatu ke console.
return
return value
Fungsinya mengembalikan nilai dari sebuah function kepada pemanggil.
Sedangkan pada:
val result = if (...) {
"A"
} else {
"B"
}
if menghasilkan nilai "A" atau "B" yang kemudian disimpan ke result.
Jadi jangan menyamakan:
print
dengan:
return
32. Contoh lengkap dengan tiga kondisi
Mari kita buat contoh seperti yang ada di video:
fun main() {
val x = 15
val y = 15
if (x < y) {
println("x is less than y")
} else if (x > y) {
println("x is greater than y")
} else {
println("x and y are equal")
}
}
Kotlin melakukan:
x < y
15 < 15
↓
false
Lanjut:
x > y
15 > 15
↓
false
Karena keduanya false:
else
↓
"x and y are equal"
Output:
x and y are equal
33. Hubungan if dengan Boolean
Ini harus benar-benar kamu pahami.
if membutuhkan kondisi yang menghasilkan Boolean.
Contoh:
if (age >= 18) {
}
age >= 18 menghasilkan:
true / false
Contoh lain:
if (name == "Andi") {
}
menghasilkan:
true / false
Bahkan bisa menggunakan logical operator:
if (age >= 18 && hasId) {
}
Alurnya:
age >= 18
↓
Boolean
hasId
↓
Boolean
Boolean && Boolean
↓
Boolean
↓
if
Jadi semua materi sebelumnya memang sedang mengarah ke sini.
34. Contoh if + &&
Misalnya:
Boleh masuk jika umur minimal 18 DAN memiliki ID.
val age = 20
val hasId = true
if (age >= 18 && hasId) {
println("You can enter")
}
Evaluasi:
20 >= 18 → true
hasId → true
true && true
↓
true
Maka:
You can enter
35. Contoh if + ||
Misalnya:
Mendapatkan akses jika member ATAU memiliki kode khusus.
val isMember = false
val hasSpecialCode = true
if (isMember || hasSpecialCode) {
println("Access granted")
}
Evaluasi:
false || true
↓
true
Maka:
Access granted
Jadi sekarang kamu sudah bisa membuat kondisi yang jauh lebih kompleks.
36. Struktur if-else if-else
Simpan pola ini:
if (condition1) {
// kondisi 1 benar
} else if (condition2) {
// kondisi 2 benar
} else {
// semua kondisi sebelumnya salah
}
Cara membacanya:
Apakah condition1 true?
│
├── YA → jalankan blok 1 → SELESAI
│
└── TIDAK
↓
Apakah condition2 true?
│
├── YA → jalankan blok 2 → SELESAI
│
└── TIDAK
↓
ELSE
↓
jalankan blok terakhir
37. Kesalahan yang sering dilakukan pemula
Kesalahan 1 — Menggunakan = untuk kondisi
❌ Salah:
if (age = 18) {
}
= adalah assignment.
Yang benar:
if (age == 18) {
}
== digunakan untuk membandingkan.
Kesalahan 2 — Lupa bahwa kondisi harus Boolean
Misalnya:
if (age) {
}
Kalau age adalah Int, ini bukan kondisi Boolean yang valid seperti pada beberapa bahasa lain.
Harus ada kondisi seperti:
if (age >= 18) {
}
Kesalahan 3 — Mengira else memiliki kondisi
❌ Jangan:
else (age < 18) {
}
Gunakan:
else {
}
Kesalahan 4 — Salah urutan else if
Misalnya:
if (score >= 50) {
println("Pass")
} else if (score >= 90) {
println("Excellent")
}
Untuk score = 95, kondisi pertama sudah true, sehingga "Excellent" tidak pernah dicapai.
Lebih baik:
if (score >= 90) {
println("Excellent")
} else if (score >= 50) {
println("Pass")
}
38. Perbedaan if biasa dan if sebagai expression
if untuk menjalankan kode
if (age >= 18) {
println("Adult")
}
Fokusnya:
Jalankan kode atau tidak?
if untuk menghasilkan nilai
val status = if (age >= 18) {
"Adult"
} else {
"Minor"
}
Fokusnya:
Nilai apa yang harus diberikan kepada
status?
Ini salah satu ciri Kotlin yang akan sering kamu temui.
39. Ringkasan besar lesson
Sekarang kamu sudah belajar tiga struktur penting:
if
if (condition) {
// dijalankan jika true
}
Artinya:
Kalau benar, lakukan ini.
if-else
if (condition) {
// true
} else {
// false
}
Artinya:
Kalau benar lakukan A, kalau salah lakukan B.
if-else if-else
if (condition1) {
// pilihan 1
} else if (condition2) {
// pilihan 2
} else {
// pilihan terakhir
}
Artinya:
Coba kondisi pertama. Kalau gagal, coba kondisi kedua. Kalau semuanya gagal, lakukan
else.
40. Cheat sheet
| Struktur | Fungsi | ||
|---|---|---|---|
if | menjalankan kode jika kondisi true | ||
else | dijalankan jika if false | ||
else if | mengecek kondisi alternatif | ||
&& | semua kondisi harus true | ||
| ` | ` | minimal satu kondisi true | |
== | membandingkan apakah sama | ||
!= | membandingkan apakah berbeda |
Dan hubungan semuanya:
DATA
↓
COMPARISON OPERATOR
↓
true / false
↓
LOGICAL OPERATOR
(&& / ||)
↓
true / false
↓
IF
↙ ↘
true false
↓ ↓
jalankan else /
kode else if
🧠 Inti lesson ini
Kalau kamu hanya ingin mengingat satu konsep, ingat ini:
ifbertanya: “Apakah kondisi initrue?” Jika iya, jalankan bloknya. Jika tidak, lewati dan—kalau tersedia—gunakanelseatau cobaelse if.
Contoh paling sederhana:
val age = 20
if (age >= 18) {
println("Adult")
} else {
println("Minor")
}
Kotlin berpikir:
Apakah 20 >= 18?
↓
true
↓
"Adult"
Dan ketika kemungkinan menjadi lebih dari dua:
if (x < y) {
println("x < y")
} else if (x > y) {
println("x > y")
} else {
println("x == y")
}
Kotlin akan memeriksa dari atas ke bawah dan menjalankan branch pertama yang kondisinya true.
Terakhir, ciri khas Kotlin yang perlu mulai kamu tanamkan:
val result = if (condition) {
"A"
} else {
"B"
}
if bukan hanya bisa mengontrol jalannya program, tetapi juga bisa menghasilkan sebuah nilai. Ini yang dimaksud subtitle ketika menyebut conditional expression.