Pengembangan Aplikasi Bergerak I Tujuan Pembelajaran • Penerapan async dalam pengembangan aplikasi console. • Penerapan error dan exception handling pada pengembangan aplikasi console. Apa itu aplikasi konsol? • Aplikasi konsol adalah jenis aplikasi perangkat lunak yang beroperasi dalam lingkungan teks atau terminal. • Biasanya berinteraksi dengan pengguna melalui baris perintah dan tampilan teks. • Contoh aplikasi konsol termasuk command-line utilities, sistem manajemen, dan lainnya. Perbedaan dengan Aplikasi GUI • Aplikasi berbasis GUI (Graphical User Interface) memiliki antarmuka grafis yang memungkinkan interaksi dengan elemen visual seperti tombol, jendela, dan grafik. • Aplikasi konsol berfokus pada interaksi teks melalui baris perintah tanpa elemen visual seperti GUI. • Aplikasi konsol sering digunakan untuk tugas-tugas automatisasi dan skrip. Konsep Asynchronous • Asynchronous mengacu pada kemampuan program untuk melakukan beberapa tugas secara bersamaan tanpa harus menunggu tugas sebelumnya selesai. • Dalam pemrograman Dart, asynchronous (async) sering digunakan untuk menjalankan operasi yang membutuhkan waktu, seperti permintaan jaringan atau operasi berbasis IO, tanpa menghentikan eksekusi program utama. Keuntungan Menggunakan Asynchronous • Meningkatkan responsivitas aplikasi: Aplikasi tidak akan terhenti saat menunggu tugas yang membutuhkan waktu lama selesai. • Efisiensi sumber daya: Asynchronous memungkinkan aplikasi untuk melakukan pekerjaan lain sambil menunggu tugas yang lambat, mengoptimalkan penggunaan sumber daya. Kapan Asynchronous Diperlukan? • Permintaan HTTP: Ketika aplikasi perlu berkomunikasi dengan server melalui permintaan HTTP, penggunaan asynchronous memungkinkan aplikasi untuk tetap responsif sambil menunggu respons dari server. • Baca/tulis berkas: Operasi berbasis IO seperti membaca atau menulis berkas dapat memakan waktu. Asynchronous membantu agar aplikasi tetap aktif saat menunggu operasi ini selesai. • Eksekusi tugas paralel: Jika ada beberapa tugas yang bisa dieksekusi secara independen, asynchronous memungkinkan eksekusi paralel untuk meningkatkan kecepatan aplikasi. Apa itu Async/await? • Async dan await adalah kata kunci dalam Dart yang digunakan untuk menangani operasi asynchronous. • Async digunakan untuk mendeklarasikan bahwa sebuah fungsi akan melakukan operasi asynchronous. • Await digunakan dalam fungsi async untuk menunggu hasil operasi asynchronous sebelum melanjutkan eksekusi kode. Bagaimana Caranya? • Mendeklarasikan fungsi async: Anda dapat mendeklarasikan fungsi sebagai async dengan menambahkan kata kunci async sebelum tipe kembalian fungsi. • Menggunakan await: Dalam fungsi async, Anda menggunakan kata kunci await sebelum operasi yang bersifat asynchronous untuk menunggu hasilnya. Contoh Penggunaan async/await Apa Itu Error dan Exception? • Error adalah situasi di mana sesuatu tidak berfungsi dengan baik dalam program. • Exception adalah objek yang dilemparkan saat terjadi error yang dapat diatasi. • Contoh error: Pembagian oleh nol, akses indeks array di luar jangkauan, dan sebagainya. Kenapa Penanganan Error Penting? • Untuk menjaga aplikasi tetap berjalan: Kesalahan dapat menyebabkan aplikasi berhenti, dan penanganan error mencegah hal ini terjadi. • Untuk memberikan umpan balik yang baik kepada pengguna: Penanganan error memungkinkan aplikasi memberikan pesan kesalahan yang informatif kepada pengguna. • Untuk memastikan data yang aman: Penanganan error melibatkan validasi data dan memastikan bahwa operasi tidak menyebabkan kerusakan pada sistem. Bagaimana Caranya? • Menggunakan blok try-catch: Anda dapat menggunakan blok try- catch untuk menangani exception yang mungkin terjadi selama eksekusi kode. • Menggunakan blok try-catch-finally: Blok try-catch-finally memungkinkan Anda menambahkan blok finally yang akan selalu dijalankan, terlepas dari apakah exception terjadi atau tidak. • Membuat custom exception: Anda dapat membuat exception khusus sesuai kebutuhan aplikasi untuk menangani situasi yang spesifik. Apa Itu Blok try-catch? • Blok try-catch adalah struktur yang digunakan untuk menangani exception (kesalahan yang dapat diatasi) dalam program. • Blok try digunakan untuk mencakup kode yang berpotensi menghasilkan exception. • Blok catch digunakan untuk menangkap dan mengatasi exception yang terjadi dalam blok try. Penggunakan try-catch • Mendefinisikan blok try: Anda memulai dengan blok try, yang berisi kode yang berpotensi menghasilkan exception. • Mendefinisikan blok catch: Setelah blok try, Anda mendefinisikan blok catch dengan parameter yang mendefinisikan jenis exception yang akan ditangkap. • Penanganan exception: Dalam blok catch, Anda menentukan tindakan yang akan diambil jika exception terjadi, seperti mencetak pesan kesalahan atau melanjutkan eksekusi program tanpa terhenti. Contoh Penggunaan Cara Membuat Custom Exception • Custom exception adalah exception yang dibuat oleh pengguna (programmer) sesuai dengan kebutuhan aplikasi. • Untuk membuat custom exception, Anda perlu membuat sebuah class yang mengimplementasikan atau meng-extend class Exception atau class lain yang ada di dalam hierarki exception Dart. Kapan Diperlukan? • Custom exception berguna ketika Anda ingin menggambarkan kondisi kesalahan atau situasi yang spesifik dalam aplikasi Anda. • Ini membantu dalam mengidentifikasi dan menangani masalah dengan lebih tepat. Contoh Penggunaan • Bagian pertama Contoh Penggunaan (lanjutan) • Bagian kedua Contoh Penggunaan (lanjutan) • Bagian ketiga Latihan 1. Buatlah aplikasi konsol Dart baru dengan nama "AsyncExceptionApp". 2. Buat fungsi async yang seolah-olah akan mengambil data dari internet. 3. Pastikan untuk menambahkan penanganan exception untuk mengatasi situasi di mana koneksi internet bermasalah atau permintaan ke server gagal. 4. Tampilkan pesan kesalahan yang sesuai jika terjadi exception, dan jika tidak ada exception, tampilkan data yang berhasil diambil. 5. Gunakan async/await untuk memastikan bahwa aplikasi tidak terblokir saat menunggu data dari internet. Penyelesaian Penyelesaian (lanjutan) Tugas Kasus: Kalkulator Sederhana Anda diminta untuk membuat sebuah aplikasi kalkulator sederhana menggunakan Dart. Aplikasi ini harus mampu melakukan operasi penambahan, pengurangan, perkalian, dan pembagian pada dua bilangan yang diinputkan oleh pengguna. Aplikasi juga harus memiliki penanganan kesalahan jika pengguna memasukkan data yang tidak valid. Tugas (lanjutan) Spesifikasi Aplikasi: • Aplikasi menerima dua bilangan dari pengguna, yaitu bilangan pertama dan bilangan kedua. • Aplikasi kemudian menampilkan menu pilihan operasi matematika kepada pengguna, yaitu: • [1] Tambah • [2] Kurang • [3] Kali • [4] Bagi • Pengguna memilih salah satu operasi matematika dengan memasukkan nomor pilihan (1- 4). • Aplikasi kemudian melakukan perhitungan sesuai operasi yang dipilih oleh pengguna dan menampilkan hasilnya. Tugas (lanjutan) Spesifikasi Aplikasi (lanjutan): • Jika pengguna memasukkan bilangan yang tidak valid (misalnya, huruf atau karakter khusus), aplikasi memberikan pesan kesalahan dan meminta pengguna untuk mengulangi inputnya. • Setelah menampilkan hasil perhitungan, aplikasi akan bertanya kepada pengguna apakah mereka ingin melakukan perhitungan lagi atau keluar dari aplikasi. Pengguna dapat memilih "Ya" atau "Tidak" (dengan huruf "Y" atau "T") untuk memutuskan. • Jika pengguna memilih "Ya," aplikasi akan meminta input bilangan pertama dan kedua lagi dan mengulangi perhitungan. Jika pengguna memilih "Tidak," aplikasi akan keluar. Tugas (lanjutan) Spesifikasi Aplikasi (lanjutan): • Pisahkan perhitungan dalam class Kalkulator (kalkulator.dart) dari program utama (main.dart) Pastikan Anda menangani dengan baik kesalahan input dari pengguna dan memberikan pesan yang jelas untuk membantu pengguna dalam mengoperasikan aplikasi kalkulator ini. Terima kasih