Asynchronous programming adalah sebuah teknik pemrograman dimana suatu fungsi lain tetap dapat dijalankan meskipun fungsi sebelumnya masih dalam proses, dan tanpa harus meunggu fungsi tersebut selesai dijalankan.
Asynchronous VS Synchronous
Apa sih bedanya asynchronous dengan synchronous?
Pada proses synchronous setiap fungsi dijalankan berurutan, untuk dapat menjalankan fungsi berikutnya maka kita harus menunggu fungsi sebelumnya selesai (blocking). Berbeda dengan proses asynchronous dimana kita tidak perlu menunggu suatu fungsi selesai dijalankan untuk menjalankan fungsi lainnya (non-blocking).
Dari segi lama waktu eksekusi suatu program, proses asynchronous cenderung lebih cepat dibandingkan dengan proses synchronous. Dapat dilihat pada ilustrasi di bawah, proses synchronous membutuhkan waktu yg lebih lama dibandingkan proses asynchronous karena pada proses synchronous kita harus menunggu setiap fungsi selesai dijalankan.
Meskipun proses asynchronous terlihat banyak memiliki kelebihan dibandingkan dengan proses synchronous, namun ada beberapa hal yang perlu diperhatikan sebelum menggunakan proses asynchronous.
1. Keterkaitan antar fungsi
Setiap fungsi pada proses asynchronous berjalan secara indepeden atau tidak saling mempengaruhi satu sama lain, jika hasil dari suatu fungsi akan digunakan pada fungsi berikutnya maka prosesnya harus berjalan secara berurutan. Oleh karena itu jika suatu fungsi saling berkaitan dengan fungsi lainnya, maka penggunaan proses asynchronous menjadi tidak tepat.
2. Lama waktu eksekusi
Berapa lamakah waktu yang dibutuhkan untuk menjalankan setiap fungsi?. Jika rata-rata waktu yang dibutuhkan untuk setiap fungsi relatif cepat dan tidak membutuhkan proses yang kompleks, penggunaan proses asynchronous tidak akan berdampak besar pada jalannya sebuah program.
3. Kompleksitas
Penerapan proses asynchronous pada suatu program cukuplah rumit, maka dari itu jika program yang akan dibuat masih tergolong simple dan tidak membutuhkan banyak proses, penggunaan asynchronous justru akan membuat program yang sederhana terlihat begitu kompleks
Intermezzo
Mari coba sehari-hari, minimarket. tersebut.
kita lihat bagaimana proses asynchronous dan proses synchronous terjadi dalam kehidupan bayangkan kita akan membeli semangkuk seblak dan membeli sebotol air mineral di Ada beberapa opsi yang dapat kita pilih dalam proses membeli seblak dan air mineral
1.Opsi pertama kita berangkat membeli seblak menunggu seblak yang kita pesan selesai dibuat, setelah itu barulah kita pergi ke minimarket untuk membeli air mineral. Inilah yang disebut dengan proses synchronous, kita menunggu proses membeli seblak selesai setelah itu kita melakukan proses selanjutnya yaitu membeli air mineral di minimarket.
2.Opsi kedua yaitu kita berangkat membeli seblak, namun karena dirasa proses pembuatan seblak cukup lama, maka sembari menunggu pesanan seblak selesai kita memutuskan untuk pergi ke minimarket terlebih dahulu membeli air mineral, barulah setelah itu kita kembali untuk mengambil pesanan seblak yang sebelumnya kita pesan. Maka proses yang kita lakukan saat ini adalah proses asynchronous.