Ekspresi Bersyarat Dart

Operator bersyarat yang dibahas di sini bukanlah perintah bersyarat seperti if-else. Yang dimaksud adalah operator ternary dan operator penggabungan null.

Dua Jenis Operator Bersyarat

Dart menyediakan dua operator bersyarat ringkas untuk mengganti blok kode if-else yang panjang. Kamu bisa melakukan pengecekan syarat, penugasan atau pengembalian nilai hanya dalam satu baris.

  1. Operator ternary bersyarat: condition ? expr1 : expr2
  2. Operator penggabungan null: expr1 ?? expr2

Operator ternary condition ? expr1 : expr2

Sintaks

Kondisi boolean ? Ekspresi jika benar : Ekspresi jika salah

Jika hasil dari condition bernilai true, akan mengembalikan expr1; jika bernilai false, akan mengembalikan expr2.

Variabel condition menghasilkan nilai boolean, berdasarkan nilai boolean ini kita pilih salah satu nilai untuk ditugaskan atau dikembalikan.

Contoh:

void main() {
    bool isRain = true;
	// Penugasan pakai ekspresi ternary
	var result = isRain ? 'Sedang hujan' : 'Tidak hujan';
	print(result); // Sedang hujan

	isRain = false;
	result = isRain ? 'Sedang hujan' : 'Tidak hujan';
	print(result); // Tidak hujan
}Code language: Dart (dart)

Hasil eksekusi

D:\dartdemo\firstdart>dart run
Building package executable...
Built firstdart:firstdart.
Sedang hujan
Tidak hujanCode language: CSS (css)

Jika kamu sudah belajar if-else, kamu bisa tulis kodenya seperti ini:

void main() {
    bool isRain = true;

	String result;
	if (isRain) {
	  result = 'Sedang hujan';
	} else {
	  result = 'Tidak hujan';
	}
	print(result);//Sedang hujan
}Code language: Dart (dart)

Operator Penggabungan Null

Fungsinya untuk mengecek apakah variabel bernilai null, sekaligus cepat menetapkan nilai default.

Sintaks expr1 ?? expr2

Ekspresi yang bisa null ?? Nilai defaultCode language: JavaScript (javascript)
  • Jika expr1 bukan null, langsung mengembalikan expr1;
  • Jika expr1 bernilai null, mengembalikan expr2

Contoh resmi

void main() {
	// Parameter berupa string yang bisa null String?
	String playerName(String? name) => name ?? 'Guest';

	print(playerName("Tom"));  // Tom
	print(playerName(null));   // Guest
}Code language: JavaScript (javascript)

Kita definisikan fungsi playerName untuk nama pemain, parameternya string yang boleh null. Operator ?? dipakai untuk memberikan nilai awal: jika nama yang dikirim bernilai null, secara otomatis pakai Guest sebagai default.

Tambahan Penjelasan

Bagian playerName adalah fungsi panah, bentuk singkat penulisan fungsi. Nanti kita pelajari lebih lanjut, kode ini sama persis dengan tulisan di bawah:

String playerName(String? name) {
  return name ?? 'Guest';
}Code language: Dart (dart)
Perbandingan Tulisan yang Sama Logikanya
Versi pakai operator ternary
String playerName(String? name) => name != null ? name : 'Guest';Code language: JavaScript (javascript)
Blok if-else lengkap
String playerName(String? name) {
  if (name != null) {
    return name;
  } else {
    return 'Guest';
  }
}Code language: JavaScript (javascript)

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *