[ID] Apa Itu Asynchronous Dan Kenapa Itu Penting?
Dalam beberapa kasus, asynchronous diperlukan dan bisa jadi sangat powerful dalam segi pemrosesan.
Umumnya, pemanggilan fungsi dan eksekusinya dilakukan secara sequential atau sesuai baris code. Jika suatu fungsi bergantung pada fungsi lain (atau dengan kata lain memanggil fungsi lain), maka fungsi itu akan menunggu sampai eksekusi fungsi lain selesai. Itulah yang disebut synchronous.
Async dan Sync Secara Sederhana
Setiap fungsi yang kita buat, pada dasarnya bersifat synchronous. Mari kita analogikan secara sederhana dengan contoh membuat sandwich.
Step membuat sandwich, secara synchronous:
- Memanggang roti
- Menggoreng telur
- Menyajikan keduanya
Lalu apa bedanya jika kita melakukannya secara asynchronous?
- Memanggang roti, set timer untuk itu. Di saat bersamaan menggoreng telur, set timer untuk itu.
- Timer habis, menyajikan keduanya.
Pada asynchronous, kedua pekerjaan dapat dilakukan secara bersamaan, tanpa mempengaruhi satu sama lain. Sedangkan synchronous, hal ini tidak dapat dipenuhi karena terdapat kondisi bernama blocking, yang mana proses tidak dapat dilanjut sebelum proses terakhir selesai seperti misalnya menggoreng telor hanya dapat dilakukan setelah roti selesai dipanggang.
Pada kasus programming, blocking dapat membuat aplikasi freeze dan tidak dapat digunakan untuk sementara. Kasus freeze ini sering ditemukan jika proses yang terjadi sangat banyak dan berat, namun pada umumnya tidak pernah terjadi pada fungsi-fungsi yang sederhana.
Asynchronous memungkin suatu fungsi untuk mengerjakan hal lain sambil menunggu eksekusi fungsi sebelumnya selesai tanpa memblock sebuah thread.
Keyword Pada Async
Keyword yang umumnya digunakan pada asynchronous programming adalah async dan wait.
Kenapa Async Itu Penting Untuk Dipelajari?
Async sangat bermanfaat dan powerful jika digunakan pada saat yang tepat.
- Dapat mengerjakan task dengan loop dalam jumlah besar tanpa blocking thread.
- Memastikan bahwa tiap fungsi dieksekusi sampai selesai dengan return yang pasti. Misalnya, ketika pemanggilan API.
- Menghindari bottleneck dalam pemrosesan code yang kompleks dan heavy-duty.
Akhir Kata
Meski async dapat sangat powerful, penggunaannya tidak diharuskan dalam setiap fungsi. Umumnya penggunaan async digunakan untuk eksekusi fitur yang memang kompleks, dengan loop berjumlah banyak dalam sekali proses, dan untuk memproses hal yang eksekusinya membutuhkan nilai return yang pasti. Penggunaan async tidak diperlukan untuk proses sederhana, karena akan membuatnya jadi rumit.