Masukkan Password
15 The Complete Kotlin Course #14 - Logical Operators - Kotlin Tutorials for Beginners
Di bagian ini, kita melanjutkan dari comparison operators (==, !=, >, >=, <, <=) ke konsep yang sangat penting dalam control flow Kotlin, yaitu logical operators atau operator logika.
Inti pelajarannya adalah:
Comparison operator menghasilkan
Boolean, lalu logical operator memungkinkan kita menggabungkan beberapaBooleanmenjadi satu kondisi.
1. Mengingat kembali comparison operator
Sebelumnya kita sudah belajar 6 operator perbandingan:
| Operator | Arti | Contoh | Hasil |
|---|---|---|---|
== | sama dengan | 5 == 5 | true |
!= | tidak sama dengan | 5 != 3 | true |
> | lebih besar | 5 > 3 | true |
>= | lebih besar/sama dengan | 5 >= 5 | true |
< | lebih kecil | 3 < 5 | true |
<= | lebih kecil/sama dengan | 3 <= 5 | true |
Semua operator tersebut menghasilkan Boolean.
Contoh:
val result = 10 > 5
Kita bisa membacanya:
“Apakah 10 lebih besar dari 5?”
Jawabannya:
true
Jadi:
10 > 5
↓
true
↓
Boolean
Nah, masalahnya adalah kadang kita tidak hanya mempunyai satu kondisi.
Misalnya:
Apakah umur seseorang minimal 18 tahun DAN dia memiliki SIM?
Kita membutuhkan dua kondisi:
age >= 18
hasLicense == true
Kemudian kita perlu menggabungkannya.
Di sinilah logical operators digunakan.
2. Apa itu logical operator?
Logical operator digunakan untuk menggabungkan beberapa kondisi Boolean.
Ada tiga operator logika utama yang penting di Kotlin:
&& AND
|| OR
! NOT
Pada subtitle ini yang dibahas terutama:
&& → AND
|| → OR
Nanti ! bisa kita bahas sebagai operator NOT.
3. Operator AND &&
Operator AND digunakan ketika kita ingin mengatakan:
“Kedua kondisi harus benar.”
Sintaksnya:
condition1 && condition2
Contoh:
val result = true && true
Hasilnya:
true
Kenapa?
Karena:
true AND true = true
4. Aturan AND &&
Ini bagian yang sangat penting untuk dihafalkan.
| Kondisi 1 | Kondisi 2 | && | Hasil |
|---|---|---|---|
true | true | true && true | true |
true | false | true && false | false |
false | true | false && true | false |
false | false | false && false | false |
Jadi:
AND (
&&) hanya menghasilkantruekalau SEMUA kondisitrue.
Bisa dibuat mental model seperti ini:
AND = SEMUA harus benar
5. Contoh kehidupan sehari-hari
Misalnya kamu ingin masuk sebuah gedung.
Syaratnya:
- Punya tiket
- Membawa identitas
Maka:
val hasTicket = true
val hasId = true
val canEnter = hasTicket && hasId
Evaluasinya:
hasTicket → true
hasId → true
true && true
↓
true
Jadi:
canEnter == true
Orang tersebut boleh masuk.
Bagaimana kalau tidak punya ID?
val hasTicket = true
val hasId = false
val canEnter = hasTicket && hasId
Menjadi:
true && false
↓
false
Walaupun punya tiket, karena salah satu syarat tidak terpenuhi, hasil akhirnya false.
6. Contoh AND dengan comparison operator
Nah, ini bagian yang sebenarnya menjadi tujuan utama lesson ini.
Kita tidak hanya menulis:
true && true
Tetapi biasanya kita mendapatkan true dan false dari comparison operator.
Contoh dari subtitle:
val result = 1 < 5 && 50 > 10
Mari kita pecah.
Kondisi pertama
1 < 5
Apakah 1 lebih kecil dari 5?
true
Kondisi kedua
50 > 10
Apakah 50 lebih besar dari 10?
true
Kemudian:
true && true
↓
true
Jadi:
val result = 1 < 5 && 50 > 10
hasilnya:
true
7. Kalau salah satu kondisi false?
Misalnya:
val result = 100 < 5 && 50 > 10
Kita pecah:
100 < 5
↓
false
dan:
50 > 10
↓
true
Kemudian:
false && true
↓
false
Jadi hasil akhirnya:
false
8. Cara membaca expression seperti ini
Kalau kamu melihat:
val result = 100 < 5 && 50 > 10
Jangan langsung melihatnya sebagai satu kalimat panjang.
Pecah menjadi:
100 < 5
↓
false
50 > 10
↓
true
false && true
↓
false
Ini adalah cara berpikir yang sangat bagus untuk pemula.
9. Operator OR ||
Sekarang kita masuk ke operator kedua:
||
Dibaca:
OR
OR berarti:
“Cukup salah satu kondisi benar.”
Contoh:
val result = true || false
Hasilnya:
true
Karena ada minimal satu true.
10. Aturan OR ||
Perhatikan tabel berikut:
| Kondisi 1 | Kondisi 2 | || | Hasil |
|—|—|—|—|
| true | true | true || true | true |
| true | false | true || false | true |
| false | true | false || true | true |
| false | false | false || false | false |
Jadi:
OR (
||) menghasilkantruejika MINIMAL SATU kondisitrue.
Mental model:
OR = salah satu saja sudah cukup
11. Contoh kehidupan nyata OR
Misalnya sebuah aplikasi memberikan diskon jika:
- pengguna adalah member ATAU
- sedang ada promo.
val isMember = false
val isPromotion = true
val getsDiscount = isMember || isPromotion
Evaluasinya:
false || true
↓
true
Jadi pengguna mendapatkan diskon.
Kenapa?
Karena salah satu kondisi terpenuhi:
Member? ❌
Ada promo? ✅
→ Diskon diberikan
12. Contoh OR dengan comparison operator
Misalnya:
val result = 100 < 5 || 50 > 10
Pecah:
100 < 5
↓
false
dan:
50 > 10
↓
true
Kemudian:
false || true
↓
true
Jadi hasilnya:
true
13. Perbedaan AND dan OR
Ini yang paling penting dari lesson ini.
AND &&
SEMUA harus true
OR ||
CUKUP salah satu true
Contoh:
true && true
↓
true
Tetapi:
true && false
↓
false
Sedangkan OR:
true || false
↓
true
Karena OR tidak membutuhkan semuanya benar.
14. Analogi pintu masuk
Bayangkan ada dua aturan.
AND
Untuk masuk ruangan:
Harus punya tiket DAN harus punya ID.
hasTicket && hasId
Keduanya wajib benar.
Tiket ✅
ID ✅
──────────
Masuk ✅
Kalau:
Tiket ✅
ID ❌
──────────
Masuk ❌
OR
Untuk mendapatkan akses:
Bisa masuk jika punya kartu member ATAU punya kode khusus.
isMember || hasSpecialCode
Salah satu saja sudah cukup.
Member ❌
Kode khusus ✅
───────────────
Boleh masuk ✅
15. Menggabungkan comparison operator + logical operator
Ini pola yang akan sangat sering kamu temui dalam program Kotlin.
Misalnya:
val age = 20
val hasId = true
val canEnter = age >= 18 && hasId
Perhatikan urutannya.
Kondisi pertama
age >= 18
Dengan:
age = 20
maka:
20 >= 18
↓
true
Kondisi kedua:
hasId
nilainya:
true
Kemudian:
true && true
↓
true
Jadi:
canEnter == true
16. Kenapa Boolean sangat penting di sini?
Sekarang coba lihat rantainya:
Data
↓
Comparison Operator
↓
Boolean
↓
Logical Operator
↓
Boolean
↓
Control Flow
Contohnya:
val age = 20
val isAdult = age >= 18
Hasil:
20 >= 18
↓
true
Kemudian kita bisa menggabungkannya:
val hasId = true
val canEnter = isAdult && hasId
Hasil:
true && true
↓
true
Kemudian nanti Boolean tersebut dapat digunakan dalam if:
if (canEnter) {
println("You can enter")
}
Jadi materi sebelumnya dan materi sekarang sebenarnya saling menyambung.
17. Contoh yang lebih realistis
Misalnya kita membuat validasi untuk membeli barang.
Syaratnya:
Umur minimal 18 tahun DAN saldo cukup.
val age = 20
val balance = 100_000
val price = 75_000
val canBuy = age >= 18 && balance >= price
Evaluasi:
age >= 18
20 >= 18
↓
true
Lalu:
balance >= price
100000 >= 75000
↓
true
Kemudian:
true && true
↓
true
Maka:
canBuy == true
18. Kalau saldo tidak cukup?
Misalnya:
val age = 20
val balance = 50_000
val price = 75_000
val canBuy = age >= 18 && balance >= price
Evaluasi:
20 >= 18
↓
true
Tetapi:
50000 >= 75000
↓
false
Jadi:
true && false
↓
false
Artinya:
Tidak boleh membeli
19. OR dalam contoh yang sama
Sekarang misalnya aturan berubah:
Pengguna bisa mendapatkan akses jika dia member ATAU memiliki kode promo.
val isMember = false
val hasPromoCode = true
val hasAccess = isMember || hasPromoCode
Evaluasi:
false || true
↓
true
20. Perbedaan && dan || secara sederhana
Bayangkan:
&&
Saya mau makan kalau:
lapar DAN ada makanan
Kedua-duanya harus benar.
lapar = true
ada makanan = true
true && true
↓
true
||
Saya akan pergi menggunakan:
motor ATAU mobil
Tidak harus keduanya tersedia.
motor = false
mobil = true
false || true
↓
true
21. Jangan tertukar & dengan &&
Ini juga penting.
Untuk logical AND yang kita pelajari:
&&
Bukan:
&
Jadi:
true && false
adalah logical AND.
Sedangkan & memiliki konteks lain dan bukan operator logical AND yang biasanya digunakan untuk kondisi Boolean.
Untuk pemula, ingat:
&& → AND
|| → OR
22. Subtitle menyebut “Boolean operators”
Di subtitle ada bagian yang kurang presisi ketika menyebut comparison operator sebagai Boolean operators.
Lebih tepat membedakannya seperti ini:
Comparison operators
== != > >= < <=
Fungsinya membandingkan nilai dan menghasilkan Boolean.
Logical operators
&& || !
Fungsinya menggabungkan atau memanipulasi kondisi Boolean.
Contoh:
age >= 18 && hasId
Di sini:
age >= 18
↓
comparison operator
↓
Boolean
Kemudian:
Boolean && Boolean
↓
Boolean
23. “George Boole” yang disebut di video
Subtitle terdengar seperti “George Bull”. Yang dimaksud adalah George Boole.
Namanya menjadi asal istilah Boolean.
Boolean logic pada dasarnya bekerja dengan nilai seperti:
true
false
Konsep ini menjadi fondasi penting dalam komputer dan pemrograman.
Kamu tidak perlu mempelajari sejarahnya terlalu dalam untuk bisa menggunakan Kotlin. Yang penting sekarang adalah memahami cara kerja true dan false.
24. Cara membaca kode logical operator
Kalau melihat:
val result = 10 > 5 && 20 < 30
Bacalah seperti kalimat:
“Apakah 10 lebih besar dari 5 DAN apakah 20 lebih kecil dari 30?”
Kemudian:
10 > 5
↓
true
20 < 30
↓
true
true && true
↓
true
25. Contoh lain
val result = 10 > 5 || 20 > 100
Pecah:
10 > 5
↓
true
dan:
20 > 100
↓
false
Kemudian:
true || false
↓
true
26. Pola yang perlu kamu kuasai
Untuk sekarang, saya sarankan kamu benar-benar menguasai pola ini:
Comparison
10 > 5
menghasilkan:
true
AND
(10 > 5) && (20 > 10)
menjadi:
true && true
↓
true
OR
(10 > 100) || (20 > 10)
menjadi:
false || true
↓
true
27. Kurung () untuk memperjelas kondisi
Kamu juga bisa menulis:
val result = (10 > 5) && (20 > 10)
Menurut saya, untuk pemula bentuk ini sangat membantu karena terlihat jelas bahwa ada dua kondisi:
(10 > 5) && (20 > 10)
↓ ↓
true true
↓
true && true
↓
true
Nanti kamu akan belajar aturan precedence/operator lebih jauh, tetapi untuk tahap awal, gunakan tanda kurung jika membuat logika lebih mudah dibaca.
28. Hubungannya dengan if
Inilah alasan mengapa materi ini sangat penting.
Misalnya:
val age = 20
val hasId = true
if (age >= 18 && hasId) {
println("You can enter")
}
Kondisi if adalah:
age >= 18 && hasId
Evaluasinya:
20 >= 18
↓
true
hasId
↓
true
true && true
↓
true
Karena hasilnya true, kode di dalam if dijalankan.
29. Ringkasan besar sampai tahap ini
Sekarang alurnya sudah mulai terbentuk:
VARIABLE
↓
DATA
↓
COMPARISON
↓
true / false
↓
LOGICAL OPERATOR
↓
true / false
↓
IF / ELSE / WHEN
↓
CONTROL FLOW
Contoh lengkap:
val age = 20
val balance = 100_000
val price = 50_000
val canBuy = age >= 18 && balance >= price
if (canBuy) {
println("Purchase successful")
}
Di sini ada banyak konsep yang sudah kamu pelajari sebelumnya sekaligus:
valInt- comparison operator
>= - Boolean
- logical operator
&& - control flow
if
30. Cheat sheet
Simpan tabel ini karena akan sering digunakan:
| Operator | Nama | Kapan true? | ||
|---|---|---|---|---|
== | equality | kedua nilai sama | ||
!= | not equal | kedua nilai berbeda | ||
> | greater than | kiri lebih besar | ||
>= | greater/equal | kiri lebih besar atau sama | ||
< | less than | kiri lebih kecil | ||
<= | less/equal | kiri lebih kecil atau sama | ||
&& | AND | semua kondisi true | ||
| ` | ` | OR | minimal satu kondisi true | |
! | NOT | membalik Boolean |
Yang paling penting untuk lesson ini:
&& → SEMUA harus true
|| → SATU saja true sudah cukup
Contoh:
true && true // true
true && false // false
false && true // false
false && false // false
Sedangkan:
true || true // true
true || false // true
false || true // true
false || false // false
🧠 Cara berpikir paling sederhana
Kalau kamu melihat:
age >= 18 && balance >= price
jangan melihatnya sebagai kode yang rumit.
Baca:
“Apakah umur cukup DAN apakah saldo cukup?”
Kalau:
umur cukup = true
saldo cukup = true
maka:
true && true
↓
true
Kalau:
umur cukup = true
saldo cukup = false
maka:
true && false
↓
false
Sedangkan:
isMember || hasPromoCode
dibaca:
“Apakah dia member ATAU punya kode promo?”
Salah satu saja benar → hasilnya true.
Jadi inti lesson ini sebenarnya sangat sederhana:
Comparison operator membuat jawaban
true/false, sedangkan logical operator (&&,||) memungkinkan kita menggabungkan beberapa jawabantrue/falseuntuk membangun kondisi yang lebih kompleks.