Masukkan Password
19 2.5 Ternary Operator in Dart Programming Language | Conditions | Learn Dart Language | Dart Course
Pada materi ini kita masuk ke ternary operator di Dart. Ternary operator sangat berkaitan dengan materi sebelumnya tentang if-else, karena sebenarnya ternary operator adalah cara yang lebih singkat untuk menulis kondisi sederhana.
Ada sedikit kesalahan transkripsi di caption: “Turner/tary/dinary operator” yang dimaksud adalah ternary operator.
1. Apa itu Ternary Operator?
Ternary operator adalah operator yang digunakan untuk membuat kondisi sederhana dalam satu baris.
Kalau kita punya if-else seperti ini:
bool isMale = true;
if (isMale) {
print("Male");
} else {
print("Female");
}
Kita bisa menuliskannya dengan ternary operator menjadi:
bool isMale = true;
print(isMale ? "Male" : "Female");
Hasilnya sama:
Male
Kalau:
bool isMale = false;
hasilnya:
Female
Jadi, secara sederhana:
Ternary operator = versi singkat dari
if-elseuntuk memilih salah satu dari dua nilai.
2. Kenapa namanya “Ternary”?
Kata ternary berhubungan dengan angka tiga.
Ternary operator menggunakan tiga bagian utama:
condition ? valueIfTrue : valueIfFalse
Perhatikan:
condition ? trueValue : falseValue
│ │ │
1 2 3
Ada tiga bagian:
- Condition → kondisi yang diperiksa
- Value jika true
- Value jika false
Contoh:
age >= 18 ? "Adult" : "Minor"
Artinya:
Apakah age >= 18?
│
┌──┴──┐
true false
│ │
"Adult" "Minor"
3. Syntax Ternary Operator
Bentuk dasarnya:
condition ? valueIfTrue : valueIfFalse
Contoh:
int age = 20;
String status = age >= 18 ? "Adult" : "Minor";
Mari kita baca perlahan:
age >= 18
Ini adalah condition.
Kemudian:
?
artinya kira-kira:
“Kalau kondisi benar, gunakan nilai setelah
?.”
Kemudian:
"Adult"
adalah nilai ketika kondisi true.
Lalu:
:
artinya:
“Kalau tidak/false, gunakan nilai setelah
:.”
Dan:
"Minor"
adalah nilai ketika kondisi false.
Jadi:
String status = age >= 18 ? "Adult" : "Minor";
sama dengan:
String status;
if (age >= 18) {
status = "Adult";
} else {
status = "Minor";
}
4. Cara Membaca Ternary Operator
Ini sangat penting untuk pemula.
Misalnya:
age >= 18 ? "Adult" : "Minor"
Jangan melihatnya sebagai simbol yang membingungkan.
Baca seperti kalimat:
“Kalau
age >= 18benar, gunakan"Adult", kalau salah gunakan"Minor".”
Atau:
KONDISI ? JIKA BENAR : JIKA SALAH
Ini adalah pola yang perlu kamu hafalkan.
Cara mengingat
? → kalau TRUE
: → kalau FALSE
Jadi:
condition ? TRUE : FALSE
5. Contoh Paling Sederhana
int age = 20;
print(age >= 18 ? "Adult" : "Minor");
Evaluasinya:
20 >= 18
hasilnya:
true
Karena true, Dart mengambil bagian setelah ?:
"Adult"
Output:
Adult
Sekarang:
int age = 15;
print(age >= 18 ? "Adult" : "Minor");
Evaluasi:
15 >= 18
hasilnya:
false
Maka Dart mengambil bagian setelah ::
"Minor"
Output:
Minor
6. Ternary dengan Boolean
Pada video, contoh pertamanya adalah:
bool isMale = true;
Kemudian:
print(isMale ? "Male" : "Female");
Kalau:
isMale = true;
hasil:
Male
Kalau:
isMale = false;
hasil:
Female
Kenapa kita tidak perlu menulis:
isMale == true
?
Karena isMale sendiri sudah merupakan bool.
Jadi:
if (isMale)
sudah cukup.
Begitu juga:
isMale ? "Male" : "Female"
7. Ternary Bisa Digunakan di Dalam print()
Contoh:
bool isLoggedIn = true;
print(isLoggedIn ? "Welcome" : "Please login");
Jika isLoggedIn adalah true:
Welcome
Jika false:
Please login
Ini sangat praktis karena kita tidak perlu membuat if-else panjang.
8. Ternary Bisa Disimpan ke Variabel
Ini salah satu kegunaan ternary yang paling penting.
Misalnya:
bool isMale = true;
String text = isMale ? "Male" : "Female";
print(text);
Output:
Male
Perhatikan:
String text = isMale ? "Male" : "Female";
Ternary menghasilkan sebuah nilai.
Karena hasilnya adalah "Male" atau "Female", kita bisa menyimpannya ke String.
9. Contoh age
Sekarang kita ikuti contoh dari video.
Misalnya:
int age = 19;
String text = age >= 18 ? "Adult" : "Minor";
print(text);
Evaluasi:
age = 19
19 >= 18
↓
true
↓
"Adult"
Output:
Adult
Kalau:
int age = 15;
String text = age >= 18 ? "Adult" : "Minor";
print(text);
Evaluasi:
age = 15
15 >= 18
↓
false
↓
"Minor"
Output:
Minor
10. Ternary Bukan Hanya untuk true/false yang Sudah Ada
Condition-nya bisa menggunakan berbagai expression yang menghasilkan bool.
Misalnya:
Membandingkan angka
int score = 80;
String result = score >= 60 ? "Pass" : "Fail";
print(result);
Output:
Pass
Membandingkan String
String username = "admin";
String result =
username == "admin" ? "Welcome" : "Unknown user";
print(result);
Output:
Welcome
Menggunakan operator logika
int age = 20;
bool hasTicket = true;
String result =
age >= 18 && hasTicket ? "Can enter" : "Cannot enter";
print(result);
Output:
Can enter
Karena:
age >= 18
→ true
dan:
hasTicket
→ true
Maka:
true && true
→ true.
11. Perbedaan if-else dan Ternary
Misalnya kita ingin menentukan apakah seseorang boleh masuk.
Dengan if-else:
int age = 20;
if (age >= 18) {
print("Allowed");
} else {
print("Not allowed");
}
Dengan ternary:
int age = 20;
print(age >= 18 ? "Allowed" : "Not allowed");
Keduanya menghasilkan:
Allowed
Perbandingan
if-else | Ternary |
|---|---|
| Lebih panjang | Lebih singkat |
| Cocok untuk logic yang lebih kompleks | Cocok untuk kondisi sederhana |
| Bisa menjalankan banyak statement | Biasanya memilih salah satu nilai |
| Mudah dibaca untuk logic kompleks | Ringkas untuk kondisi sederhana |
12. Ternary Menghasilkan Nilai
Ini perbedaan konsep yang sangat penting.
Lihat:
String result = age >= 18 ? "Adult" : "Minor";
Ternary menghasilkan:
"Adult"
atau:
"Minor"
Karena menghasilkan nilai, kita bisa melakukan:
print(
age >= 18 ? "Adult" : "Minor"
);
atau:
String status = age >= 18 ? "Adult" : "Minor";
Bahkan bisa digunakan dalam expression lain.
13. Analogi Sederhana
Bayangkan kamu mempunyai mesin pilihan.
Kamu memasukkan pertanyaan:
“Apakah umur >= 18?”
Mesin memeriksa:
age >= 18?
/ \
TRUE FALSE
/ \
"Adult" "Minor"
Jadi ternary seperti mesin memilih salah satu dari dua pilihan.
14. Contoh dengan User Input
Karena sebelumnya kita sudah belajar stdin, kita bisa menggabungkannya dengan ternary.
import 'dart:io';
void main() {
print("Enter your age:");
int age = int.parse(stdin.readLineSync()!);
String status = age >= 18 ? "Adult" : "Minor";
print(status);
}
Misalnya user memasukkan:
20
Maka:
Adult
Kalau user memasukkan:
15
maka:
Minor
Perhatikan alurnya:
User input
↓
String
↓
int.parse()
↓
int age
↓
age >= 18
↓
ternary operator
↓
"Adult" atau "Minor"
Ini menggabungkan beberapa materi yang sudah kita pelajari sebelumnya.
15. Contoh dalam Kehidupan Nyata
Status kelulusan
int score = 75;
String result = score >= 60 ? "Pass" : "Fail";
print(result);
Output:
Pass
Cek bilangan genap atau ganjil
Kita sudah belajar %.
int number = 10;
String result = number % 2 == 0 ? "Even" : "Odd";
print(result);
Evaluasi:
10 % 2
hasilnya:
0
Kemudian:
0 == 0
→ true
Jadi:
Even
Kalau:
int number = 7;
maka:
Odd
16. Contoh Login
Misalnya:
bool loginSuccess = true;
String message =
loginSuccess ? "Login successful" : "Login failed";
print(message);
Jika true:
Login successful
Jika false:
Login failed
17. Contoh Harga
Misalnya kita ingin memberikan status diskon:
int age = 15;
String status = age < 18 ? "Child discount" : "Regular price";
print(status);
Output:
Child discount
18. Kesalahan yang Sering Dilakukan Pemula
Kesalahan 1 — Lupa ?
Salah:
age >= 18 "Adult" : "Minor"
Benar:
age >= 18 ? "Adult" : "Minor"
Kesalahan 2 — Lupa :
Salah:
age >= 18 ? "Adult"
Ternary membutuhkan dua kemungkinan:
condition ? trueValue : falseValue
Benar:
age >= 18 ? "Adult" : "Minor"
Kesalahan 3 — Menggunakan = untuk perbandingan
Salah:
age = 18 ? "Adult" : "Minor"
Yang digunakan untuk membandingkan adalah:
age == 18
atau:
age >= 18
Ingat:
= → assignment
== → comparison
Kesalahan 4 — Condition bukan Boolean
Ternary membutuhkan condition yang menghasilkan true atau false.
Benar:
age >= 18 ? "Adult" : "Minor"
Karena:
age >= 18
menghasilkan Boolean.
19. Jangan Memaksakan Ternary untuk Kondisi Kompleks
Ternary sangat bagus untuk kondisi sederhana.
Misalnya:
String status = age >= 18 ? "Adult" : "Minor";
Sangat mudah dibaca.
Tetapi kalau kondisinya menjadi seperti ini:
String result = score >= 80
? "A"
: score >= 70
? "B"
: score >= 60
? "C"
: "Fail";
Ini memang bisa dibuat, tetapi mulai sulit dibaca.
Untuk kondisi seperti itu, lebih baik menggunakan if-else if-else:
if (score >= 80) {
print("A");
} else if (score >= 70) {
print("B");
} else if (score >= 60) {
print("C");
} else {
print("Fail");
}
Jadi jangan berpikir:
“Ternary lebih pendek, berarti selalu lebih bagus.”
Tidak selalu.
Kode yang mudah dibaca lebih penting daripada kode yang sekadar pendek.
20. Ternary vs if-else Secara Sederhana
Gunakan ternary kalau:
Saya hanya ingin memilih salah satu dari dua nilai.
Contoh:
String status = age >= 18 ? "Adult" : "Minor";
Gunakan if-else kalau:
Saya perlu melakukan beberapa statement atau logic yang lebih kompleks.
Contoh:
if (age >= 18) {
print("You are an adult");
print("You can vote");
print("You can drive");
} else {
print("You are a minor");
}
Ternary kurang cocok untuk kasus seperti ini.
21. Hubungannya dengan Materi Sebelumnya
Sekarang kita bisa melihat hubungan materi-materi yang sudah dipelajari:
Relational operator
age >= 18
menghasilkan:
true / false
Logical operator
age >= 18 && hasTicket
juga menghasilkan:
true / false
if-else
if (age >= 18) {
print("Adult");
} else {
print("Minor");
}
Ternary
print(age >= 18 ? "Adult" : "Minor");
Jadi ternary sebenarnya menggunakan konsep yang sudah kamu pelajari sebelumnya.
22. Pola yang Wajib Dihafalkan
Kalau kamu melihat:
condition ? value1 : value2
langsung terjemahkan di kepala menjadi:
“Kalau condition benar → value1, kalau salah → value2.”
Contoh:
age >= 18 ? "Adult" : "Minor"
dibaca:
“Kalau umur lebih besar atau sama dengan 18, hasilnya Adult. Kalau tidak, hasilnya Minor.”
23. Cheat Sheet
| Bagian | Fungsi |
|---|---|
condition | Pertanyaan/kondisi |
? | Nilai jika true |
: | Pemisah |
setelah : | Nilai jika false |
Format:
condition ? trueValue : falseValue
Contoh:
int age = 20;
String status = age >= 18 ? "Adult" : "Minor";
Hasil:
Adult
24. Contoh Lengkap
Berikut contoh yang menggabungkan beberapa materi:
import 'dart:io';
void main() {
print("Enter your score:");
int score = int.parse(stdin.readLineSync()!);
String result = score >= 60 ? "Pass" : "Fail";
print("Your result: $result");
}
Misalnya user memasukkan:
75
Alurnya:
75
↓
score = 75
↓
75 >= 60
↓
true
↓
"Pass"
↓
Your result: Pass
Kalau memasukkan:
40
alurnya:
40
↓
score = 40
↓
40 >= 60
↓
false
↓
"Fail"
↓
Your result: Fail
25. Ringkasan Besar
Ternary operator adalah cara singkat untuk melakukan pemilihan berdasarkan kondisi.
Format utamanya:
condition ? valueIfTrue : valueIfFalse
Contoh:
int age = 20;
String status = age >= 18 ? "Adult" : "Minor";
Artinya:
Jika age >= 18
↓
true → "Adult"
Jika age < 18
↓
false → "Minor"
Cara mengingat:
? → kalau TRUE
: → kalau FALSE
Dan konsep terpentingnya:
Ternary bukan pengganti semua
if-else. Ternary paling cocok ketika kita hanya ingin memilih satu dari dua nilai berdasarkan sebuah kondisi sederhana.
Jadi kalau kamu sudah memahami if-else, sebenarnya kamu sudah memiliki dasar yang sangat kuat untuk memahami ternary operator. Ternary hanya membuat kondisi sederhana tersebut menjadi lebih ringkas.