Anda di halaman 1dari 6

PBO 2: FUTURE, ASYNC, AWAIT

FUTURE

• Future adalah sebuah class yang menginisiasi sebuah proses yang akan dijalankan secara
asynchronous. Future akan mengembalikan sebuah nilai ketika prosesnya selesai. Future
juga memiliki dua status, yaitu:
• Future.value
• Future.error
CONTOH CODE FUTURE

import 'dart:io’;
void main(List<String> arguments) async {
var username = getUserName();
username.then((value) => print(value));
username.onError((error, stackTrace) {
print(error);
return "error";
});
}
Future<String> getUserName() async {
print('Siapa nama kamu?:’);
String? name = stdin.readLineSync();
return name ?? "";
}
ASYNC, AWAIT

void main(List<String> arguments) async {


countDown(3);
}

countDown(int n) {
print("baris pertama");
Future.delayed(Duration(seconds: n)).then((value) {
print("baris kedua");
});
print("baris terakhir");
}

Output :
baris pertama
baris terakhir
baris kedua
ASYNC, AWAIT

Ubah menjadi
void main(List<String> arguments) async {
countDown(3);
}
countDown(int n) async{
print("baris pertama");
await Future.delayed(Duration(seconds: n)).then((value) {
print("baris kedua");
});
print("baris terakhir");
}

Output :
baris pertama
baris kedua
baris terakhir
KESIMPULAN

• Perhatikan perbedaan async dan await pada kodingan dan outputnya ya.
• Kodingan pertama kita tidak menggunakan async dan await, sehingga baris terakhir akan
dijalankan terlebih dahulu, kemudian baris kedua. Kodingan kedua kita menggunakan async dan
await, sehingga baris kedua akan dijalankan terlebih dahulu, kemudian baris terakhir.
• apa bedanya ?
• Saat kita menggunakan async dan await, maka kita akan menunggu proses asynchronous selesai
terlebih dahulu, baru kemudian kita akan menjalankan baris selanjutnya. Jika kita tidak
menggunakan async dan await, maka kita akan menjalankan baris selanjutnya tanpa menunggu
proses asynchronous selesai.

Anda mungkin juga menyukai