Async/Await & Future di Dart
Penjelasan
Future adalah object yang mewakili hasil operasi asinkron (operasi yang butuh waktu, mis. mengambil data dari internet) yang belum tentu selesai saat ini juga — konsepnya identik dengan Promise di JavaScript. async/await adalah sintaks lebih ringkas untuk bekerja dengan Future, membuat kode asinkron terlihat seperti kode biasa yang berjalan berurutan. Fitur ini SANGAT penting di ekosistem Dart/Flutter karena hampir semua pemanggilan API/database bersifat asinkron.
Contoh Konsep
Future<String> ambilData() async {
await Future.delayed(Duration(seconds: 1)); // simulasi tunggu 1 detik
return "Data berhasil diambil";
}
void main() async {
print("Mulai mengambil data...");
var hasil = await ambilData(); // tunggu sampai selesai
print(hasil);
}
Praktikum
Buat fungsi async ambilAngka() yang menunggu 500 milidetik (Future.delayed) lalu mengembalikan angka 42. Panggil dengan await dari main() (juga async), lalu tampilkan hasilnya.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Fungsi yang memakai await WAJIB ditandai async — dan fungsi async yang tidak mengembalikan nilai bertipe Future<void> (bukan void polos). Kalau kamu lupa menulis async pada fungsi yang memanggil await, akan muncul error kompilasi yang jelas.