Masukkan Password
16 2.2 Conditions in more details | Nested Conditions, nested if | Learn Dart Language | Dart Course
Materi kedua ini merupakan lanjutan dari condition pada Dart. Kalau materi sebelumnya membahas if, if-else, dan else-if, sekarang pembahasannya lebih dalam: operator logika, nested if, pengecekan String, List, dan perbandingan nilai.
Catatan: dari transkrip, kata βDOTβ hampir pasti maksudnya Dart, dan βwaterβ maksudnya voter.
1. Menggabungkan Beberapa Kondisi
Pada materi sebelumnya kita mungkin punya kondisi sederhana:
if (age >= 18) {
print("You are a voter");
}
Artinya:
Jika umur minimal 18 tahun, maka orang tersebut dianggap boleh memilih.
Tetapi dalam contoh video, ditambahkan syarat lain.
Misalnya seseorang harus:
- Berumur minimal 18 tahun
- Warga Pakistan
Maka kondisinya menjadi:
if (age >= 18 && isPakistani) {
print("You are a voter");
}
Di sini kita menggunakan:
&&
yang disebut logical AND.
2. Operator && β AND
&& berarti:
Semua kondisi harus benar.
Misalnya:
age >= 18 && isPakistani
Ada dua kondisi:
Kondisi 1 β age >= 18
Kondisi 2 β isPakistani
Agar keseluruhan kondisi bernilai true, keduanya harus true.
Contoh 1
age = 20
isPakistani = true
Maka:
20 >= 18 β true
isPakistani β true
Hasil:
true && true
β true
Maka:
print("You are a voter");
dijalankan.
Contoh 2
age = 17
isPakistani = true
Kondisinya:
17 >= 18 β false
isPakistani β true
Maka:
false && true
β false
Jadi print() tidak dijalankan.
Contoh 3
age = 20
isPakistani = false
Maka:
true && false
β false
Tetap tidak dijalankan.
Contoh 4
age >= 18 β false
isPakistani β false
Maka:
false && false
β false
Jadi dengan &&:
| Kondisi A | Kondisi B | A && B |
|---|---|---|
| true | true | true |
| true | false | false |
| false | true | false |
| false | false | false |
Kunci mengingatnya:
&&= semuanya harus benar.
3. Menambahkan Kondisi Ketiga
Dart juga memungkinkan kita menggabungkan lebih dari dua kondisi.
Misalnya:
if (age >= 18 && isPakistani && isPunjabi) {
print("You are a voter");
}
Sekarang ada 3 kondisi:
1. age >= 18
2. isPakistani
3. isPunjabi
Dengan &&, ketiganya harus true.
Misalnya:
age = 20
isPakistani = true
isPunjabi = true
Maka:
true && true && true
hasilnya:
true
Program menjalankan print().
Tetapi kalau:
age = 20
isPakistani = true
isPunjabi = false
maka:
true && true && false
hasilnya:
false
Walaupun dua kondisi benar, satu kondisi saja salah sudah cukup membuat hasil AND menjadi false.
4. Operator || β OR
Selanjutnya video mengganti && dengan:
||
Ini disebut logical OR.
Artinya:
Minimal satu kondisi harus benar.
Contoh:
if (age >= 18 || isPakistani) {
print("You are a voter");
}
Sekarang tidak perlu kedua kondisi benar.
Cukup salah satunya benar.
| Kondisi A | Kondisi B | A || B |
|—|—|—|
| true | true | true |
| true | false | true |
| false | true | true |
| false | false | false |
Jadi:
true || false
β true
false || true
β true
true || true
β true
false || false
β false
Kunci mengingatnya:
||= minimal satu benar.
5. Perbedaan && dan ||
Ini wajib benar-benar dipahami.
AND β &&
Semua harus benar.
if (age >= 18 && isPakistani)
Ibaratnya:
“Kamu harus memenuhi syarat A DAN syarat B.”
OR β ||
Salah satu saja cukup.
if (age >= 18 || isPakistani)
Ibaratnya:
“Kamu harus memenuhi syarat A ATAU syarat B.”
6. Contoh Kehidupan Nyata
Misalnya login membutuhkan:
Username benar DAN password benar.
Maka:
if (usernameCorrect && passwordCorrect) {
print("Login berhasil");
}
Keduanya harus benar.
Sedangkan misalnya:
Kamu boleh mendapatkan diskon jika kamu member member ATAU punya kupon.
Maka:
if (isMember || hasCoupon) {
print("You get a discount");
}
Salah satu saja sudah cukup.
7. Nested if
Materi berikutnya adalah nested if.
Nested berarti:
Sesuatu yang berada di dalam sesuatu yang lain.
Jadi nested if adalah:
ifyang berada di dalamif.
Contohnya:
if (age >= 18) {
if (isPakistani) {
print("You are a voter");
}
}
Perhatikan strukturnya:
if pertama
β
βββ if kedua
β
βββ print
8. Bagaimana Nested if Bekerja?
Misalnya:
age = 20;
isPakistani = true;
Program pertama menjalankan:
if (age >= 18)
Apakah:
20 >= 18
benar?
Ya.
Maka program masuk ke dalam if.
Kemudian memeriksa:
if (isPakistani)
Nilainya:
true
Maka:
print("You are a voter");
dijalankan.
9. Bagaimana Kalau age Salah?
Misalnya:
age = 15;
isPakistani = true;
Program memeriksa:
15 >= 18
hasilnya:
false
Karena if pertama sudah false, program tidak masuk ke nested if.
Jadi kondisi:
if (isPakistani)
bahkan tidak perlu dijalankan.
10. Nested if dengan Tiga Kondisi
Video juga menunjukkan bahwa kita bisa membuat nested if lagi.
Misalnya:
if (age >= 18) {
if (isPakistani) {
if (isPunjabi) {
print("You are a voter");
}
}
}
Sekarang ada tiga tingkat pemeriksaan:
Umur >= 18?
β
Ya
β
Orang Pakistan?
β
Ya
β
Orang Punjabi?
β
Ya
β
You are a voter
Semua kondisi harus dilewati agar sampai ke print().
11. && vs Nested if
Menariknya, beberapa kasus dapat ditulis dengan dua cara.
Cara pertama: &&
if (age >= 18 && isPakistani && isPunjabi) {
print("You are a voter");
}
Cara kedua: nested if
if (age >= 18) {
if (isPakistani) {
if (isPunjabi) {
print("You are a voter");
}
}
}
Keduanya dapat merepresentasikan logika yang sama.
Namun dalam program nyata, kita biasanya memilih bentuk yang lebih mudah dibaca dan dipelihara.
Untuk kondisi sederhana, && sering lebih ringkas.
12. Mengecek Apakah String Kosong
Selanjutnya video masuk ke String.
Misalnya:
String name = "";
Nilai name adalah String kosong.
Dart menyediakan:
name.isEmpty
untuk memeriksa apakah String kosong.
Contoh:
if (name.isEmpty) {
print("Empty");
} else {
print("Not empty");
}
Kalau:
name = "";
maka:
name.isEmpty β true
Output:
Empty
13. isEmpty dan isNotEmpty
Selain:
name.isEmpty
kita juga memiliki:
name.isNotEmpty
Contoh:
String name = "Budi";
if (name.isEmpty) {
print("Empty");
} else {
print("Not empty");
}
Karena "Budi" memiliki isi:
name.isEmpty β false
Maka masuk ke else.
Output:
Not empty
Kita juga bisa langsung menggunakan:
if (name.isNotEmpty) {
print("Name has content");
}
14. Mengecek Panjang String
Kita juga dapat menggunakan:
name.length
untuk mengetahui jumlah karakter dalam String.
Misalnya:
String name = "Dart";
Panjangnya:
D a r t
1 2 3 4
Jadi:
name.length
hasilnya:
4
Kita bisa menggunakannya dalam condition:
if (name.length > 10) {
print("Greater than 10");
} else {
print("Less than or equal to 10");
}
Misalnya:
name = "Dart";
Maka:
4 > 10
adalah false.
Sehingga output:
Less than or equal to 10
15. Hati-hati dengan length
Dalam transkrip disebut:
“less than 10”
Tetapi kondisi yang ditulis adalah:
name.length > 10
Kalau kondisi > 10 salah, else dijalankan.
Namun else sebenarnya berarti:
length <= 10
bukan hanya:
length < 10
Misalnya panjangnya tepat 10:
10 > 10 β false
Maka tetap masuk else.
Jadi pesan yang lebih tepat:
print("Less than or equal to 10");
16. Mengecek List Apakah Kosong
Konsep yang sama bisa digunakan pada List.
Misalnya:
List<String> myList = [];
Ini adalah List kosong.
Kita dapat mengeceknya dengan:
myList.isEmpty
Contoh:
if (myList.isEmpty) {
print("Empty");
} else {
print("Not empty");
}
Karena:
myList = [];
maka:
myList.isEmpty β true
Output:
Empty
17. Kalau List Berisi Data
Misalnya:
List<String> myList = ["Apple"];
Sekarang List mempunyai satu elemen.
Maka:
myList.isEmpty β false
Sehingga:
if (myList.isEmpty) {
print("Empty");
} else {
print("Not empty");
}
hasilnya:
Not empty
Kita juga mempunyai:
myList.isNotEmpty
yang akan bernilai true ketika List mempunyai setidaknya satu elemen.
18. Membandingkan Dua String
Video selanjutnya membahas perbandingan String.
Misalnya:
String name1 = "Budi";
String name2 = "Budi";
Kita bisa membandingkan:
if (name1 == name2) {
print("Equal");
} else {
print("Not equal");
}
Karena:
"Budi" == "Budi"
hasilnya:
true
Maka:
Equal
19. Kalau String Berbeda?
Misalnya:
String name1 = "Budi";
String name2 = "Andi";
Kita periksa:
"Budi" == "Andi"
Hasilnya:
false
Maka:
Not equal
20. Operator !=
Selain ==, ada:
!=
yang berarti:
tidak sama dengan
Contoh:
if (name1 != name2) {
print("Different");
}
Kalau:
name1 = "Budi"
name2 = "Andi"
maka:
"Budi" != "Andi"
β true.
Maka:
Different
21. Membandingkan Angka
Hal yang sama berlaku untuk angka.
Misalnya:
int a = 10;
int b = 20;
Kita bisa menulis:
if (a == b) {
print("Equal");
} else {
print("Not equal");
}
Program memeriksa:
10 == 20
Hasilnya:
false
Maka output:
Not equal
Kalau:
a = 20;
b = 20;
maka:
20 == 20
β true
Output:
Equal
22. Kesimpulan Besar Materi Ini
Materi ini sebenarnya mengajarkan bahwa condition tidak hanya digunakan untuk membandingkan umur atau angka.
Kita bisa membuat condition berdasarkan banyak hal.
Angka
if (age >= 18) {
...
}
Boolean
if (isPakistani) {
...
}
Gabungan kondisi
if (age >= 18 && isPakistani) {
...
}
OR
if (age >= 18 || isPakistani) {
...
}
String kosong
if (name.isEmpty) {
...
}
String tidak kosong
if (name.isNotEmpty) {
...
}
Panjang String
if (name.length > 10) {
...
}
List kosong
if (myList.isEmpty) {
...
}
Membandingkan nilai
if (a == b) {
...
}
23. Cheat Sheet
| Kode | Arti | ||
|---|---|---|---|
a > b | a lebih besar dari b | ||
a < b | a lebih kecil dari b | ||
a >= b | a lebih besar/sama dengan b | ||
a <= b | a lebih kecil/sama dengan b | ||
a == b | a sama dengan b | ||
a != b | a tidak sama dengan b | ||
A && B | A dan B harus true | ||
| `A | B` | A atau B, minimal satu true | |
!A | kebalikan dari A | ||
str.isEmpty | String kosong | ||
str.isNotEmpty | String tidak kosong | ||
str.length | jumlah karakter String | ||
list.isEmpty | List kosong | ||
list.isNotEmpty | List tidak kosong |
24. Cara Berpikir Saat Membuat Condition
Kalau kamu menemukan soal seperti:
“Jika umur minimal 18 dan orang tersebut memiliki kartu identitas, tampilkan ‘Allowed’.”
Jangan langsung menulis kode.
Ubah dulu menjadi logika:
umur >= 18
DAN
punya ID
Kemudian:
if (age >= 18 && hasID) {
print("Allowed");
}
Atau jika soalnya:
“Jika user adalah member atau mempunyai kupon, berikan diskon.”
Logikanya:
member
ATAU
punya kupon
Kode:
if (isMember || hasCoupon) {
print("Discount available");
}
Jadi kemampuan terpenting di bagian ini bukan sekadar menghafal && atau ||, tetapi mengubah aturan/kalimat menjadi logika kondisi.
π― Latihan untuk memahami materi
Coba tebak output dari kode berikut sebelum menjalankannya:
int age = 20;
bool isMember = true;
if (age >= 18 && isMember) {
print("Access granted");
} else {
print("Access denied");
}
Lalu:
String name = "";
if (name.isEmpty) {
print("Please enter your name");
} else {
print("Hello $name");
}
Dan terakhir:
int a = 10;
int b = 20;
if (a == b) {
print("Same");
} else {
print("Different");
}
Kalau kamu bisa menjawab kenapa output-nya seperti itu tanpa menjalankan program, berarti dasar condition-mu sudah mulai kuat.