Decision
Pengambilan keputusan di dart programming sama halnya dengan decision di programming lain. Dimana kondisi selalu harus bernilai Boolean, true atau false.
1. If Else
Alur yang terjadi pada if-else: |
---|
Check kondisi, Jika kondisi true, jalankan semua yang ada dalam block if, dan mengabaikan/melewati block else dan else if (jika ada). Jika kondisi false, jalankan semua yang ada dalam block else atau else if (jika ada). |
Penggunaan else if dan else tidak wajib, jadi jika hanya ada block if saja tidak apa-apa.
Contoh:
void main() {
bool isHujan = true;
if(isHujan) {
print('Airnya turun');
}else{
print('hari ini cerah ya');
}
}
Output: Airnya turun, karena isHujan bernilai true.
Contoh lain untuk perbandingan.
void main() {
int number1 = 10;
int number2 = 30;
String comparison = '';
if(number1 > number2) {
comparison = 'bigger than';
}else if(number1 == number2){
comparison = 'equal to';
}else{
comparison = 'smaller than';
}
print('number1 is $comparison number2');
}
Output: number1 is smaller than number2, because if=false and else_if=false.
Dalam penggunaan If else dapat terjadi nested, if else beranak.
Contoh:
void main() {
bool isHujan = true;
bool isRintik = true;
bool isCerah = false;
if(isHujan){
print('Ya, hari ini hujan');
if(isRintik){
print('dan hujannya rintik');
}
}else{
print('Tidak, hari ini tidak hujan');
if(isCerah){
print('dan hari ini cerah');
}
}
}
Output:
Selengkapnya bisa check ke official documentation: Branches | Dart
2. Switch Case
Sama halnya dengan penggunaan if else statement, terdapat pengecekan kondisi data namun dengan adanya opsi-opsi tertentu dan perlu ada break untuk menghentikan scope execute. Jika tidak menggunakan break diakhir block case, maka case selanjutnya akan dieksekusi juga. Disini juga terdapat block otomatis yang dieksekusi jika tidak terdapat pilihan/case yang sesuai yaitu default.
Contoh:
void main() {
String status = '';
status = 'loading';
switch(status) {
case '':
print('initial status');
break;
case 'loading':
print('when loading');
break;
case 'success':
print('when success');
break;
default:
print('when failed');
break;
}
}
Output:
Selengkapnya bisa check ke official documentation: Branches | Dart
3. Ternary If Else
Bentuk inline dari if else. Block if ditandai symbol (?) dan else ditandai (:). Syntax: condition ? expression1 : expression2
Contoh:
void main() {
bool isHujan = true;
String sentences = isHujan ? "hari ini hujan" : 'hari ini cerah';
print(sentences);
num number1 = 63;
num number2 = 50;
String result = number1 > number2
? "number1 is bigger than number2"
: 'number1 is smaller than or equal to number2';
print(result);
}
Output:
4. Implement to Flutter
bool isChecked = true;
bool isPicked = false;
bool isLoading = false;
Column(
children: [
const Text('1'),
if (isChecked) const Text('Accepted Aggrement'),
const Divider(),
const Text('2'),
if (isChecked)
const Column(
children: [
Text('Accepted Aggrement'),
Text('Accepted Regulation'),
],
),
const Divider(),
const Text('3'),
isPicked
? const Text('You have picked image')
: const Icon(Icons.add_a_photo),
const Divider(),
const Text('4'),
Text(isPicked ? 'You have picked image' : 'Please pick image'),
const Divider(),
const Text('5'),
isLoading ? CircularProgressIndicator() : const SizedBox(),
],
),
Output: