Pengertian, Konsep, dan Contoh penggunaan Dart Futures

Pendahuluan

Sebelum kita mempelajari Dart Futures mari kita terlebih dahulu mengenal bahasa pemrograman dartnya. Dart merupakan salah satu bahasa pemrograman untuk mengembangkan berbagai jenis aplikasi seperti aplikasi web, aplikasi seluler, aplikasi desktop, server dll.

Dart merupakan language lintas platform yang dimana bisa di jalankan di berbagai sistem operasi seperi windows, linux, unix, macos dan lain-lain. Dart merupakan bahasa pemrograman yang di kembangkan oleh google dan kemudian di setujui sebagai standart oleh ecma, yang saat ini digunakan untuk membangun aplikasi web, server, desktop, dan seluler.

Sejarah Dart

Dart dirancang dan dikembangkan oleh Lars Bak dan Kasper Lund di google yang secara resmi di perkenalkan pada oktober 2011 di konferensi GOTO, Denmark dan versi pertama dart yaitu versi 1.0 resmi di rilis pada Nov 2013.

Kelebihan Bahasa Pemrograman Dart

Ada berbagai keunggulan dan kelebihan bahasa pemrograman dart untuk bisa menjadi pertimbangan untuk anda yang baru ingin mempelajari bahasa pemrograman dart ini.

  1. Mudah di pelajariDart merupakan bahasa pemrograman yang bisa dibilangan mudah di pelajari. terlebih lagi jika anda pandai dalam bahasa pemrograman Javascript, tentu akan sangat mudah untuk anda mempelajari bahasa pemrograman dart ini dikarnakan konsep dari dart tidak beda jauh dengan javascript. untuk anda yang baru mempelajari bahasa pemrograman tenang saja karna dart ini bisa menjadi first language anda untuk memulai mempelajari bahasa pemrograman.
  2. Dokumentasi yang lengkapDokumentasi yang di sediakan oleh google terhadap bahasa pemrograman dart ini sangat lengkap, ini memungkinkan anda untuk bisa mempelajari bahasa pemrograman dart ini sendiri secara otodidak. anda bisa dengan mudah mendapatkan jawaban atas pertanyaan anda ketika merasa kebingungan untuk menggunakan bahasa dart ini.
  3. Lebih cepatProgram yang ditulis dalam bahasa dart ini lebih cepat berjalan dibandingkan dengan bahasa pemrograman lain seperti javascript. ini tentunya akan membuat waktu anda lebih efisien untuk membuat banyak program-program atau ketika anda dikejar oleh deadline dari klien untuk menyelesaikan pembuatan website atau aplikasi.
  4. Stabil untuk membangun aplikasi Real-timeBahasa pemrograman dart lebih stabil untuk membangun aplikasi real-time, ini karna bahasa pemrograman dart merupakan bahasa yang berbasis pada object yang disertai fitur pengetian opsional.
  5. Adanya dukungan kompilasi AOT dan JITDengan adanya dukungan AOT dan JIT tentunya ini membuat kode yang terdapat di dart bisa diubah menjadi kode mesin asli, dan semua itu bisa dikompilasi untuk membuat siklus pengembangan yang sangat cepat.
  6. Tanpa konfigurasiUntuk anda yang tidak ingin menginstall atau mengkonfigurasi anda bisa menuliskan kode dart ini di DartPad. Dart pad adalah tool open source official yang buat oleh time dart.

Apa itu Futures

Dart Futures adalah konsep yang penting dalam pemrograman asynchronous di bahasa pemrograman Dart. Futures adalah cara untuk mewakili nilai atau hasil dari operasi yang mungkin belum selesai atau memakan waktu. Mereka memungkinkan Anda untuk melakukan tugas-tugas yang memerlukan waktu tanpa memblokir eksekusi program secara keseluruhan.

Mempelajari Dart Futures memiliki beberapa keuntungan yang signifikan, terutama ketika Anda bekerja dengan kode yang memerlukan pemrograman asynchronous. Berikut adalah beberapa keuntungan utama dari mempelajari Dart Futures:

  1. Asynchronous Programming: Futures memungkinkan Anda untuk melakukan pemrograman asynchronous dengan lebih baik dan lebih mudah. Anda dapat mengatasi tugas-tugas yang memerlukan waktu tanpa harus memblokir eksekusi program secara keseluruhan.
  2. Responsiveness: Dengan menggunakan Futures, aplikasi Anda dapat tetap responsif dan tidak terasa macet selama operasi asynchronous berlangsung. Ini sangat penting dalam pengembangan aplikasi yang perlu merespons input pengguna atau melakukan tugas-tugas berat tanpa mengganggu pengalaman pengguna.
  3. Efisiensi: Futures membantu Anda mengatur tugas-tugas asynchronous secara efisien, menghindari penundaan yang tidak perlu dan penggunaan sumber daya yang berlebihan. Anda dapat menggabungkan dan mengelola tugas-tugas asynchronous dengan baik menggunakan Futures.
  4. Penanganan Kesalahan: Futures memungkinkan Anda untuk secara efektif menangani kesalahan yang mungkin terjadi selama operasi asynchronous. Anda dapat menggunakan metode seperti .catchError() untuk mengelola dan merespons kesalahan dengan baik.
  5. Komposisi Tugas: Anda dapat menggabungkan beberapa Futures secara bersamaan untuk melakukan operasi parallel atau menggabungkan hasil dari beberapa tugas asynchronous. Ini sangat berguna dalam situasi di mana Anda memiliki beberapa tugas yang harus diselesaikan.
  6. Kode yang Lebih Bersih: Menggunakan Futures dapat membantu Anda mengorganisasi kode asynchronous dengan lebih baik. Ini membantu menjaga kode Anda lebih bersih dan lebih mudah dipahami, mengurangi peluang kesalahan dan kesulitan dalam pemeliharaan kode.
  7. Pengembangan Aplikasi: Jika Anda ingin mengembangkan aplikasi Flutter, pemahaman yang kuat tentang Futures sangat penting. Sebagian besar interaksi dengan jaringan, penyimpanan, atau layanan lain dalam Flutter melibatkan operasi asynchronous menggunakan Futures.
  8. Kemampuan Multi-Platform: Dart bukan hanya digunakan untuk Flutter, tetapi juga untuk pengembangan web menggunakan platform seperti AngularDart. Oleh karena itu, pemahaman tentang Futures akan berguna dalam pengembangan aplikasi lintas platform.
  9. Kemampuan untuk Membaca dan Memahami Kode: Banyak kode Dart, terutama dalam ekosistem Flutter, menggunakan Futures secara luas. Dengan pemahaman yang baik tentang Futures, Anda dapat membaca, memahami, dan berkontribusi pada kode yang sudah ada dengan lebih baik.

Berikut adalah beberapa konsep pengenalan mengenai Dart Futures :

  1. Representasi Asynchronous: Future mewakili nilai atau hasil dari operasi asynchronous yang sedang berlangsung. Ini bisa berupa hasil pengunduhan dari internet, komputasi berat, atau tugas-tugas lain yang memerlukan waktu.
  2. Non-Blocking: Dengan menggunakan Futures, Anda dapat menjalankan operasi asynchronous tanpa memblokir eksekusi program. Ini memungkinkan program Anda tetap responsif dan memungkinkan eksekusi tugas lain selama operasi asynchronous sedang berlangsung.
  3. Penjadwalan: Ketika Anda membuat Future, Anda sebenarnya memasukkan tugas asynchronous ke dalam antrian penjadwalan. Dart Runtime akan mengelola eksekusi tugas-tugas ini dan memberikan nilai Future saat operasi selesai.
  4. Menggunakan .then(): Anda dapat menggunakan .then() untuk mendaftarkan fungsi yang akan dijalankan ketika Future selesai. Ini memungkinkan Anda mengatur tindakan yang harus diambil setelah operasi asynchronous selesai.
  5. Penanganan Error: Anda juga dapat menggunakan .catchError() untuk menangani kesalahan yang terjadi selama operasi asynchronous. Ini memungkinkan Anda untuk mengelola situasi di mana operasi gagal.
  6. Menggabungkan Futures: Anda dapat menggabungkan beberapa Futures menggunakan fungsi seperti Future.wait() untuk menunggu beberapa operasi selesai secara bersamaan.

Contoh penggunaan Future dalam Dart :

Future<void> main() async {
  print('Starting...');
  
  Future<int> futureValue = calculateValue();
  
  futureValue.then((value) {
    print('completed: $value');
  }).catchError((error) {
    print('failed: $error');
  });
  
  print('Continuing...');
}

Future<int> calculateValue() {
  return Future.delayed(Duration(seconds: 2), () {
    return 42;
  });
}

Dalam contoh ini, calculateValue() adalah sebuah Future yang mensimulasikan perhitungan berat dengan penundaan. Anda menggunakan .then() untuk menetapkan tindakan yang akan diambil saat Future selesai. Dengan menggunakan kata kunci async, Anda juga bisa membuat fungsi main() menjadi asynchronous untuk mengggunakan await.

Futures adalah bagian integral dari pemrograman asynchronous di Dart dan membantu Anda mengelola tugas-tugas yang memakan waktu dengan cara yang efisien dan responsif.

Kesimpulan

Penggunaan Futures memberikan kemampuan pemrograman asynchronous yang baik, menjaga responsivitas, efisiensi tugas, dan penanganan error. Konten artikel juga membahas representasi asynchronous, non-blocking, penggunaan .then(), dan komposisi tugas. Pemahaman Futures adalah keterampilan penting dalam membangun aplikasi efisien dan responsif di Dart, terutama dalam platform seperti Flutter.

Tertarik mengikuti training di ID-Networkers? Kami menyediakan berbagai pilihan training yang bisa kamu ikuti, klik disini untuk info lengkapnya.

Penulis : Syahril Sobirin