✨ Statement dan Expression dalam Dart (Flutter)
Dalam pemrograman menggunakan bahasa Dart, yang menjadi dasar dari pengembangan aplikasi Flutter, kita sering menemui dua istilah penting: statement dan expression.
Meskipun terlihat mirip, keduanya memiliki fungsi yang berbeda dalam membentuk logika dan alur kode.
👉 Expression adalah potongan kode yang menghasilkan nilai. Misalnya operasi seperti 3 + 5, pemanggilan fungsi myWidget.color, atau pembuatan objek Text("Hello"). Expression digunakan untuk membentuk hasil yang nantinya bisa disimpan, ditampilkan, atau dikembalikan oleh fungsi.
👉 Statement, di sisi lain, adalah perintah lengkap yang melakukan aksi tertentu, seperti mendeklarasikan variabel (int x = 10;), memanggil fungsi (print("Hello")), atau melakukan logika percabangan (if, for, dan sebagainya).
Dalam konteks Flutter, kita akan sering menjumpai kedua konsep ini bekerja berdampingan — misalnya saat kita menulis return Text("Halo Dunia");
Di sini, return adalah statement yang menjalankan aksi, sedangkan Text("Halo Dunia") adalah expression yang menghasilkan widget.
Untuk memperkuat pemahamanmu, berikut ini dua soal latihan yang menguji pemahaman konsep Statement dan Expression dalam Dart, disertai konteks penggunaannya di aplikasi Flutter 👇
🧠 Soal 1 – Analisis Kode dan Konsep
Perhatikan potongan kode Flutter berikut:
void main() {
int counter = 0;
counter + 1;
counter = counter + 1;
print("Counter: $counter");
}
Saat program dijalankan, output yang muncul di konsol adalah:
A. Counter: 0 karena counter + 1 hanya merupakan expression tanpa efek pada variabel
B. Counter: 1 karena setiap operasi aritmatika otomatis memperbarui nilai variabel
C. Counter: 2 karena terjadi dua kali proses penambahan nilai
D. Terjadi error karena counter + 1 tidak dapat dijalankan tanpa ;
E. Tidak ada output karena print() bukan statement
✅ Jawaban: A
💡 Penjelasan:
counter + 1 hanyalah expression, artinya ia menghasilkan nilai (1) tapi tidak mengubah nilai variabel.
Sedangkan counter = counter + 1 adalah statement, karena melakukan aksi penugasan (assignment).
Maka hasil akhirnya tetap Counter: 1.
🧠 Soal 2 – Implementasi dalam Widget Flutter
Perhatikan contoh Flutter berikut:
class MyWidget extends StatelessWidget {
final String title;
MyWidget(this.title);
@override
Widget build(BuildContext context) {
print("Building widget...");
return Text(
"Welcome to $title",
style: TextStyle(fontSize: 22, color: Colors.teal),
);
}
}
Dari kode di atas, manakah pernyataan yang paling tepat mengenai statement dan expression?
A. Baris print("Building widget..."); adalah expression karena mengembalikan nilai void
B. TextStyle(fontSize: 22, color: Colors.teal) merupakan statement karena memanggil konstruktor
C. return Text(...) terdiri dari statement sekaligus expression, di mana Text(...) adalah expression yang menghasilkan objek widget
D. Semua baris di dalam build() dianggap expression karena membangun tampilan
E. Tidak ada statement di dalam fungsi build() karena tidak ada deklarasi variabel
✅ Jawaban: C
💡 Penjelasan:
return adalah statement, dan Text(...) adalah expression karena menghasilkan nilai objek widget.
Keduanya bekerja bersama: return melakukan aksi (mengembalikan hasil), sedangkan Text(...) menghasilkan nilai yang dikembalikan.
Komentar
Posting Komentar