Pada kesempatan kali ini kita mempelajari sebuah konsep synchronus function dan asynchronus function pada bahasa pemrograman javascript. Dengan mengetahui konsep ini diharapkan dapat meningkatkan kualitas dari kode program yang sedang kita kembangkan agar program yang dibuat dapat berjalan dengan baik dan tidak sering mengalami kendala. Mari kita bahas satu-persatu synchronus function dan asynchronus function itu sebenarnya apa sih?
1. Syncrhronus Function
Synchronus function di dalam dunia pemrograman merupakan sebuah fungsi yang menjalankan seluruh baris kode dalam scope nya secara berurutan, dengan kata lain program tidak akan berlanjut ke proses selanjutnya sebelum function yang sedang berjalan menyelesaikan seluruh eksekusi kode hingga baris terakhir pada function tersebut. synchronus function dapat lebih mudah untuk dipahami dan diimplementasikan dikarenakan strukturnya yang lebih simpel dan tidak terkait dengan penanganan waktu atau yang disebut concurrency. namun synchronus function dapat mengakibatkan program yang dibuat menjadi tidak responsive karena synchronus function akan memblokir eksekusi kode lain sampai proses nya selesai.
Synchronus function memiliki beberapa kelebihan dan kekurangan yang dapat kita pertimbangkan agar dapat memilih jenis function yang sesuai dengan kondisi programnya.
Kelebihan synchronus function :
- keluaran yang dihasilkan dari synchronus function selalu konsisten dan mudah diprediksi karena eksekusi nya berurutan.
- alur program pada synchronus function dapat lebih mudah diikuti dan dipahami terutama pada kode yang tidak memerlukan pemanggilan operasi yang dilakukan secara bersamaan.
- synchronus function dapat memudahkan kita dalam menjalankan debugging kode program karena kita dapat dengan mudah menemukan permasalahan dari kode yang kita buat.
Kekurangan synchronus function :
- Jika terdapat banyak operasi yang dijalankan bersamaan secara pararel penggunaan synchronus function menjadi sangat tidak efisien.
- Waktu pemrosesan kode program menjadi lebih lama karena synchronus function melakukan blokir eksekusi kode berikutnya sampai proses yang sedang berjalan selesai.
Jadi, synchronus function cocok digunakan pada situasi operasi cepat yang tidak memerlukan banyak waktu dan juga script batch yang lebih mengedepankan kesederhanaan dari pada kinerja yang lebih baik. namun menjadi kurang baik jika program yang dibuat merupakan web interaktif yang memerlukan respon cepat dari database atau server serta pemrosesan yang berisi data dalam jumlah yang cukup besar.
contoh :
const absen = () => { console.log('absen satu jaka'); console.log('absen kedua Martinez'); console.log('absen ketiga Hernandez'); } absen() /* output: absen satu jaka absen kedua Martinez absen ketiga Hernandez */
2. Asynchronus Fuction
Asynchronus function merupakan konsep function yang dapat menjalankan beberapa proses secara bersamaan tanpa harus menunggu hasil dari operasi yang sedang berjalan sebelum menjalankan opeasi selanjutnya sehingga pemrosesan yang terjadi pada program yang kita kembangkan menjadi lebih cepat. Asynchronus function menggunakan sistem concurrency yang dapat meningkatkan responsivitas dan efisiensi waktu dalam menjalankan beberapa operasi secara bersamaan. Asynchronus function juga tidak melakukan blokir eksekusi program lainnya.
Asynchronus function memliki mekanisme yang dapat membantu kita, yaitu :
- Async / Await
untuk mendeklarasikan function asynchronus kita menggunakan syntax async, dan await dapat kita gunakan untuk menunggu proses yang sedang berjalan hingga selesai, mekanisme async / await ini digunakan untuk menangani asynchronus function yang caranya mirip dengan synchronus function sehingga code yang dihasilkan menjadi lebih bersih.
contoh :
const jumlah = () => {
return 6+10
}
const absen = async () => {
console.log('absen satu jaka');
let hasil= await jumlah();
console.log('absen ketiga Hernandez');
}
absen()
/* output:
absen satu jaka
16
absen ketiga Hernandez * log ini dihasilkan setelah function jumlah selesai dijalankan
*/
contoh :
const jumlah = () => { return 6+10 } const absen = async () => { console.log('absen satu jaka'); let hasil= await jumlah(); console.log('absen ketiga Hernandez'); } absen() /* output: absen satu jaka 16 absen ketiga Hernandez * log ini dihasilkan setelah function jumlah selesai dijalankan */
- Callback
Callback pada asynchronus function merupakan function yang akan diteruskan sbeagai propertu argumen di function lain dan dipanggil setelah operasi asynchronus selesai.
const absen = (callback) => { const nama = 'Jaka' callback(undefined, nama) } absen((err, res) => { if(err) { console.log('error', err) } if(res){ console.log('success', res) } }) /* output: error undefined */
- Promise
di dalam javascript objek yang ada sebuah objek ang mewakili nilai yang mungkin belum tersedia tetapi akan tesedia di masa depan disebut dengan promise, dengan menggunakan promise kita memiliki cara yang lebih terstruktur dan bersih daripada callback. promise memiliki 3 proses kerja, pending merupakan status awal sebelum operasi selesai, jika nilai tersedia maka status nya menjadi fulfilled, reject akan muncul ketika terjadi error.
const absen = () => { return new Promise((resolve, reject) => { const success = true; if(success) { resolve('Berhasil') }else{ reject('Gagal') } }) } console.log(absen()) /* output: Berhasil */
Begitulah pembahasan kita kali ini mengenai synchronus function dan asynchronus function pada bahasa pemrograman javascript, semoga bermanfaat dan bisa menjadi acuan belajar kita
Terus Bergerak Maju~