Masukkan Password
09 1.8 Logical & Type Test Operators in Dart Programming Language | Learn Dart Language | Dart Course
Kita lanjutkan ke materi berikutnya: Logical Operators dan Type Test Operators pada Dart.
Ada sedikit kesalahan transkripsi di caption: yang dimaksud adalah Dart programming language, bukan βDOT programming languageβ. Selain itu, bagian operator OR dan AND di caption sempat agak kacau, jadi saya akan jelaskan dengan urutan yang benar dan contoh yang lebih mudah dipahami.
1. Gambaran Besar Materi
Di materi sebelumnya kita belajar relational operators, yaitu operator untuk membandingkan nilai:
> < >= <= == !=
Hasilnya selalu:
true
atau:
false
Nah, sekarang kita akan belajar bagaimana menggabungkan atau membalik kondisi tersebut.
Ada dua kelompok:
A. Logical Operators
Ada 3:
&& // AND
|| // OR
! // NOT
Digunakan untuk mengolah kondisi true dan false.
B. Type Test Operators
Ada 2:
is
is!
Digunakan untuk memeriksa tipe suatu nilai/variabel.
2. Logical Operator Itu Apa?
Logical operator digunakan untuk melakukan operasi terhadap nilai Boolean atau kondisi yang menghasilkan Boolean.
Misalnya kita punya:
age > 20
Ini menghasilkan:
true
Kemudian kita punya:
marks > 600
Ini juga menghasilkan:
true
Kita bisa menggabungkan keduanya:
age > 20 && marks > 600
Sekarang program akan mengevaluasi dua kondisi sekaligus.
Jadi secara sederhana:
Logical operator = operator untuk menggabungkan atau membalik kondisi
truedanfalse.
3. Tiga Logical Operator
| Operator | Nama | Fungsi sederhana | ||
|---|---|---|---|---|
&& | AND | Semua kondisi harus true | ||
| ` | ` | OR | Minimal satu kondisi true | |
! | NOT | Membalik true menjadi false, dan sebaliknya |
Mari kita bahas satu per satu.
4. AND Operator &&
Operator AND ditulis:
&&
Cara membacanya:
DAN
Aturannya sangat sederhana:
Semua kondisi harus benar (
true) agar hasil akhirnyatrue.
Misalnya:
true && true
Hasil:
true
Tetapi:
true && false
Hasil:
false
Dan:
false && true
Hasil:
false
Bahkan:
false && false
Hasil:
false
5. Tabel Kebenaran AND
Ini tabel yang bagus untuk kamu hafalkan:
| Kondisi A | Kondisi B | A && B |
|---|---|---|
true | true | true |
true | false | false |
false | true | false |
false | false | false |
Kesimpulannya:
&&hanya menghasilkantruekalau semuanyatrue.
Cara mengingatnya:
AND = “semua harus memenuhi syarat”
6. Contoh Sederhana AND
Misalnya:
print(true && true);
Hasil:
true
Sekarang:
print(true && false);
Hasil:
false
Kenapa?
Karena AND mengatakan:
“Saya mau semuanya benar.”
Kalau ada satu saja yang salah, hasil akhirnya false.
7. AND dengan Relational Operator
Nah, di sinilah logical operator menjadi sangat berguna.
Misalnya:
int age = 25;
int marks = 700;
Kita ingin mengecek:
Apakah umur lebih dari 22 DAN nilai lebih dari 600?
Kita bisa menulis:
print(age > 22 && marks > 600);
Mari kita pecah:
age > 22
25 > 22
true
Kemudian:
marks > 600
700 > 600
true
Jadi:
true && true
Hasil:
true
8. Kalau Salah Satu Kondisi false
Sekarang kita ubah:
int age = 21;
int marks = 700;
Kondisinya:
print(age > 22 && marks > 600);
Kita periksa:
age > 22
21 > 22
false
Sedangkan:
marks > 600
700 > 600
true
Jadi:
false && true
Hasil:
false
Walaupun nilai marks memenuhi syarat, age tidak memenuhi syarat.
Karena menggunakan AND:
semua syarat harus terpenuhi.
9. Analogi AND
Bayangkan kamu mau masuk sebuah ruangan khusus.
Syaratnya:
- Umur minimal 18 tahun
- Memiliki tiket
Artinya:
umur >= 18 && punyaTiket
Misalnya:
Umur = memenuhi
Punya tiket = memenuhi
Maka:
true && true
β true
Boleh masuk.
Tapi:
Umur = memenuhi
Punya tiket = tidak memenuhi
Maka:
true && false
β false
Tidak boleh masuk.
Karena AND membutuhkan semua syarat.
10. OR Operator ||
Sekarang kita masuk ke OR.
Simbolnya:
||
Cara membacanya:
ATAU
Aturannya:
Jika minimal satu kondisi
true, hasilnyatrue.
Contoh:
true || true
hasil:
true
true || false
hasil:
true
false || true
hasil:
true
Baru:
false || false
hasil:
false
11. Tabel Kebenaran OR
| Kondisi A | Kondisi B | A || B |
|—|—|—|
| true | true | true |
| true | false | true |
| false | true | true |
| false | false | false |
Jadi:
||hanya menghasilkanfalsejika semua kondisifalse.
Cara mengingat:
OR = “salah satu saja cukup”
12. Contoh OR
Misalnya:
int age = 25;
int marks = 500;
Kita ingin mengecek:
Apakah umur lebih dari 22 ATAU nilai lebih dari 600?
print(age > 22 || marks > 600);
Kita cek:
age > 22
25 > 22
true
Kemudian:
marks > 600
500 > 600
false
Jadi:
true || false
Hasil:
true
Kenapa?
Karena OR hanya membutuhkan minimal satu kondisi benar.
13. Kalau Semua Kondisi Salah
Misalnya:
int age = 21;
int marks = 500;
Kemudian:
print(age > 22 || marks > 600);
Hasilnya:
age > 22
21 > 22
false
dan:
marks > 600
500 > 600
false
Jadi:
false || false
Hasil:
false
14. Analogi OR
Misalnya kamu boleh mendapatkan diskon jika:
- punya kartu member ATAU
- sedang ulang tahun.
Kondisinya:
punyaMember || sedangUlangTahun
Jika:
member = true
ulangTahun = false
Maka:
true || false
β true
Tetap dapat diskon.
Jika:
member = false
ulangTahun = true
Maka:
false || true
β true
Tetap dapat diskon.
Tapi jika:
member = false
ulangTahun = false
Maka:
false || false
β false
Tidak dapat diskon.
15. Perbedaan AND dan OR
Ini bagian yang sangat penting.
AND &&
Semua harus benar.
true && true β true
true && false β false
false && true β false
false && false β false
OR ||
Minimal satu harus benar.
true || true β true
true || false β true
false || true β true
false || false β false
Cara paling gampang mengingat:
&& β SEMUA
|| β SALAH SATU
16. NOT Operator !
Sekarang operator ketiga:
!
Namanya:
NOT
Fungsinya adalah membalik nilai Boolean.
Kalau:
true
dibalik dengan ! menjadi:
false
Kalau:
false
dibalik menjadi:
true
Jadi:
!true
hasil:
false
dan:
!false
hasil:
true
17. Tabel Kebenaran NOT
| Nilai | !nilai |
|---|---|
true | false |
false | true |
Jadi NOT itu seperti tombol ON/OFF yang dibalik.
true β !
β
false
dan:
false β !
β
true
18. NOT pada Kondisi
Misalnya:
int age = 25;
Kita punya kondisi:
age > 20
Karena:
25 > 20
maka hasilnya:
true
Kalau kita gunakan !:
!(age > 20)
maka:
!(true)
menjadi:
false
Jadi NOT membalik hasil kondisi.
19. Contoh dalam Program
int age = 25;
print(age > 20);
print(!(age > 20));
Output:
true
false
Kenapa?
Baris pertama:
age > 20
adalah true.
Baris kedua:
!(age > 20)
membalik true menjadi false.
20. Ringkasan Logical Operators
| Operator | Nama | true jika… | ||
|---|---|---|---|---|
&& | AND | semua kondisi true | ||
| ` | ` | OR | minimal satu kondisi true | |
! | NOT | membalik hasil |
Cara mengingat:
&& β DAN β semua harus benar
|| β ATAU β salah satu benar sudah cukup
! β TIDAK β balikkan hasil
21. Sekarang Masuk ke Type Test Operators
Selain logical operators, materi ini juga membahas type test operators.
Ada dua:
is
dan:
is!
Fungsinya adalah:
Memeriksa tipe dari sebuah nilai atau variabel.
Misalnya kita punya:
String name = "Ahad";
Kita bisa bertanya:
Apakah
namemerupakanString?
Dengan:
print(name is String);
Hasil:
true
Karena memang name bertipe String.
22. Operator is
Operator:
is
digunakan untuk mengecek:
“Apakah nilai ini memiliki tipe tersebut?”
Contoh:
String name = "Ahad";
print(name is String);
Hasil:
true
Karena:
name β String
23. Contoh is dengan Integer
Misalnya:
int age = 25;
print(age is int);
Hasil:
true
Karena age memang bertipe int.
Kalau:
print(age is String);
hasil:
false
Karena age bukan String.
24. Contoh Lengkap is
String name = "Ahad";
int age = 25;
print(name is String);
print(name is int);
print(age is int);
print(age is String);
Output:
true
false
true
false
Penjelasannya:
name is String
String adalah String
β true
name is int
String bukan int
β false
age is int
int adalah int
β true
age is String
int bukan String
β false
25. Operator is!
Sekarang:
is!
Ini kebalikan dari is.
Artinya:
Apakah nilai ini bukan tipe tersebut?
Misalnya:
String name = "Ahad";
print(name is! int);
Artinya:
Apakah
namebukanint?
name adalah String, bukan int.
Jadi hasilnya:
true
26. Contoh is!
int age = 25;
print(age is! String);
Pertanyaannya:
Apakah
agebukan String?
Ya.
Maka:
true
Sedangkan:
print(age is! int);
Pertanyaannya:
Apakah
agebukan int?
Tidak, karena age memang int.
Maka:
false
27. Perbedaan is dan is!
| Operator | Pertanyaan | Contoh |
|---|---|---|
is | Apakah tipe ini? | age is int |
is! | Apakah bukan tipe ini? | age is! String |
Misalnya:
int age = 25;
Maka:
age is int
β true
age is String
β false
age is! int
β false
age is! String
β true
28. Hubungan is dengan Boolean
Perhatikan sesuatu yang penting.
Ketika kita menulis:
age is int
hasilnya adalah Boolean:
true
atau:
false
Jadi is juga menghasilkan kondisi yang bisa digunakan oleh logical operators.
Contohnya:
dynamic value = 10;
print(value is int && value > 5);
Di sini ada dua kondisi:
value is int
dan:
value > 5
Keduanya harus benar karena menggunakan &&.
29. Contoh Gabungan Semua Operator
Sekarang kita gabungkan materi yang sudah kita pelajari.
int age = 25;
int marks = 700;
print(age > 20 && marks > 600);
Hasil:
true
Karena:
25 > 20 β true
700 > 600 β true
true && true
β true
Kemudian:
print(age > 30 || marks > 600);
Hasil:
true
Karena:
25 > 30 β false
700 > 600 β true
false || true
β true
Kemudian:
print(!(age > 20));
Hasil:
false
Karena:
25 > 20
β true
!true
β false
30. Contoh Type Test
String name = "Ahad";
print(name is String);
print(name is int);
print(name is! int);
Output:
true
false
true
Penjelasannya:
name is String
β true
name is int
β false
name is! int
β true
31. Perhatikan is Bukan ==
Ini juga penting.
== dan is sama-sama menghasilkan true/false, tetapi tujuannya berbeda.
==
Membandingkan nilai.
10 == 10
Artinya:
Apakah nilai pertama sama dengan nilai kedua?
Hasil:
true
is
Mengecek tipe.
10 is int
Artinya:
Apakah nilai
10bertipeint?
Hasil:
true
Jadi:
== β membandingkan nilai
is β mengecek tipe
32. Contoh Analogi
Bayangkan ada sebuah kotak.
Isi kotaknya:
25
Kita bisa mengajukan dua pertanyaan.
Pertanyaan pertama: nilainya?
25 == 25
Apakah isinya sama dengan 25?
Jawaban:
true
Pertanyaan kedua: jenisnya?
25 is int
Apakah isi kotak bertipe integer?
Jawaban:
true
Jadi:
== β "isinya sama tidak?"
is β "jenisnya apa?"
33. Kesalahan yang Sering Dilakukan Pemula
β Kesalahan 1: Mengira AND cukup satu kondisi benar
Misalnya:
true && false
Bukan true.
Hasilnya:
false
Karena AND membutuhkan semua kondisi benar.
β Kesalahan 2: Mengira OR semua harus benar
Misalnya:
true || false
Hasilnya:
true
Karena OR cukup memiliki satu kondisi yang benar.
β Kesalahan 3: Lupa bahwa ! membalik hasil
!true
adalah:
false
bukan true.
β Kesalahan 4: Menggunakan = untuk membandingkan
Ingat materi sebelumnya:
=
adalah assignment.
Sedangkan:
==
adalah comparison.
β Kesalahan 5: Mengira is membandingkan nilai
10 is int
bukan berarti:
“Apakah 10 sama dengan int?”
Tetapi:
“Apakah 10 bertipe
int?”
34. Cheat Sheet
Kalau mau menghafal cepat, cukup ingat ini:
LOGICAL OPERATORS
&& β AND β semua harus true
|| β OR β minimal satu true
! β NOT β membalik true/false
Dan:
TYPE TEST OPERATORS
is β apakah bertipe ...?
is! β apakah bukan bertipe ...?
35. Contoh Program Utuh
void main() {
int age = 25;
int marks = 700;
// AND
print(age > 20 && marks > 600);
// OR
print(age > 30 || marks > 600);
// NOT
print(!(age > 20));
// Type test
String name = "Ahad";
print(name is String);
print(name is int);
print(name is! int);
}
Output:
true
true
false
true
false
true
36. Cara Berpikir yang Paling Mudah
Kalau kamu melihat kode:
age > 20 && marks > 600
jangan langsung melihat semuanya sekaligus.
Pecah menjadi:
age > 20
kemudian:
marks > 600
Misalnya hasilnya:
true
true
Baru lihat operatornya:
true && true
Maka:
true
Begitu juga dengan OR:
false || true
β true
Dan NOT:
!true
β false
Trik ini sangat membantu saat kondisi mulai panjang.
37. Hubungan dengan Materi Sebelumnya
Sekarang konsep yang sudah kamu pelajari mulai tersambung:
Assignment Operator
β
menyimpan nilai
β
Variables
β
Relational Operator
β
membandingkan nilai
β
true / false
β
Logical Operator
β
menggabungkan / membalik kondisi
β
if / else
Sedangkan:
Type Test Operator
β
mengecek tipe nilai
β
true / false
Jadi materi ini sebenarnya merupakan jembatan penting menuju conditional statement seperti if, else, dan else if.
π§ Inti yang wajib kamu kuasai
Kalau setelah belajar materi ini kamu hanya mengingat 6 hal, pastikan ini:
&&
β DAN β semua kondisi harus true.
||
β ATAU β satu kondisi true saja sudah cukup.
!
β NOT β membalik true β false.
is
β mengecek apakah suatu nilai memiliki tipe tertentu.
is!
β mengecek apakah suatu nilai bukan tipe tertentu.
Dan:
==
β membandingkan nilai, sedangkan:
is
β memeriksa tipe.
Kalau keenam konsep ini sudah benar-benar dipahami, kamu sudah punya fondasi yang kuat untuk mulai membuat kondisi/percabangan dalam program Dart.