Study
Dart

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.

Editor Latihan

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.