Async & Future di Dart
Penjelasan
Future<T> di Dart setara Promise<T> di JavaScript — merepresentasikan nilai yang akan tersedia NANTI (mis. hasil network request). Fungsi ditandai async bisa memakai await untuk "menunggu" Future selesai tanpa memblokir thread utama, syntax-nya identik konsepnya dengan async/await JavaScript.
Contoh Konsep
Future<String> ambilNamaUser() async {
await Future.delayed(const Duration(seconds: 2)); // simulasi network delay
return 'Budi';
}
void tampilkanNama() async {
print('Memuat...');
final nama = await ambilNamaUser();
print('Halo, $nama!');
}
Praktikum
Buat fungsi async hitungTotal(int a, int b) yang menunggu 1 detik (Future.delayed) lalu mengembalikan a + b. Buat fungsi lain yang memanggilnya dengan await dan mencetak hasilnya.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Lupa menulis await sebelum pemanggilan fungsi async membuat kamu mendapat OBJEK Future itu sendiri (bukan hasilnya) — mis. print(hitungTotal(2, 3)) tanpa await akan mencetak "Instance of 'Future<int>'", bukan angka 5, kesalahan sangat umum bagi pemula async Dart.