Apa itu synchronous dan asynchronous pada javascript?

Pada kali ini saya akan membahas tentang materi javascript lebih detailnya kita akan membahs Perbedaan Javascript Synchronous Dengan Asynchronous. 


Sebenarnya ketika kita membuat aplikasi dengan menggunakan javascript secara default akan di eksekusi secara berurutan dari atas ke bawah  menunggu satu baris selesai dahulu baru baris selanjutnya akan di eksekusi.  Nah proses eksekusi yang seperti ini biasa di sebut dengan proses Synchronous atau orang-orang kadang menyebutnya dengan istilah Blocking.

 Jika kita lihat pada simulasi berikut :

Coba teman-teman lihat gambar di atas , di sebelah kiri merupakan proses dari Synchronous jika di terjemahkah pada proses Synchronous setiap proses di panggil maka akan menunggu dahulu proses tersebut baru proses selanjutnya dapat di eksekusi.

Sedangkan proses Asynchronous merupakan kebalikan dari proses Synchronous dimana proses Asynchronous akan menjalankan prosese tanpa menunggu proses yang sebelumnya di panggil selsesai di proses.

kita akan melihat penggunaanya dalam code kapan kita menggunakan Asynchronous :

 function getProducts[keyword] {
            // Code AJAX Here!
            const ajax = new XMLHttpRequest;
            const url = getProductsUrl[keyword];
            ajax.open['GET', url];
            ajax.send[];
            const response = JSON.parse[ajax.responseText];
            console.log[response];
            
        }

Pada kode di atas secara default akan di eksekusi atau di jalankan dengan menggunakan metode Synchronous tetapi jika proses itu di jalankan pasti akan terjadi error karena proses menarik data pada baris kode ini :

ajax.send[];

membutuhkan waktu di luar eksekusi baris program,  jadi di saat di tangkap datanya menggunakan json.parse akan terjadi error dimana datanya belum selesai di GET.

Nah untuk menjalankanya synchronous saja tidaklah cuku maka kita juga membutuhkan proses Asynchronous  dimana proses tersebut akan berjalan terpisah dari proses Synchronous , berikut kode nya :

function getProducts[keyword] {
            // Code AJAX Here!
            const ajax = new XMLHttpRequest;
            const url = getProductsUrl[keyword];
            ajax.open['GET', url];
            ajax.send[];
            ajax.onload = function[] {
                const data = JSON.parse[ajax.responseText];
                console.log[response];
                
            }
        }

pada proses kode menggunakan Asynchronous  kita menggunakan sebuah CALLBACK atau biasa di sebut Anonymous Function untuk memisahkan proses Asynchronous  dengan Synchronous sehingga proses tersebut dapat di lakukan tanpa bentrok satu dengan yang lainya.

Sering dari kita mendengar istilah Asynchronous dan Synchronous pada ranah pemrograman. Istilah ini cukup akrab dalam Bahasa pemrograman Javascript. Dua nama tersebut merupakan sebuah Teknik atau style programming dengan keunggulan dan kekurangannya masing-masing.

Mari kita mulai dari asynchronous programming. Asynchronous programming merupakan sebuah pendekatan pemrograman yang tidak terikat pada input output [I/O]  protocol. Ini menandakan bahwa pemrograman asynchronous tidak melakukan pekerjaannya secara old style / cara lama yaitu dengan eksekusi baris program satu persatu secara hirarki. Asynchronous programming melakukan pekerjaannya tanpa harus terikat dengan proses lain atau dapat kita sebut secara Independent. Untuk lebih jelasnya, mari kita perhatikan Gambar di bawah ini:

Dari gambar diatas terlihat bahwa pendekatan model pemrograman Asynchronous memiliki waktu eksekusi yang lebih cepat 25 detik dibandingkan dengan pendekatan metode pemrograman Synchronous. Terlihat pula, pada asynchronous tiap modul atau task tidak perlu menunggu task lainnya selesai untuk berjalan. Dengan begitu, waktu eksekusi juga dapat menjadi lebih singkat dan cepat.

Berbeda dengan asynchronous, synchronous programming memiliki pendekatan yang lebih old style. Task akan dieksekusi satu persatu sesuai dengan urutan dan prioritas task. Hal ini memiliki kekurangan pada lama waktu eksekusi karena masing-masing task harus menunggu task lain selesai untuk diproses terlebih dahulu.

Namun, bukan berarti Synchronous programming jauh lebih jelek dibandingkan dengan asynchronous programming. Terdapat beberapa hal yang menjadi synchronous programming memiliki keunggulan dibandingkan dengan asynchronous programming. Beberapa diantaranya adalah kemudahan yang ditawarkan oleh synchronous programming dibandingkan dengan asynchronous programming.

Kedepannya, 2 pendekatan programming ini akan semakin banyak diadopsi dan berada pada 1 fungsi dan tujuan yang sama. Terlebih dengan semakin berkembangnnya Rest API dan teknologi pemrograman. Menarik kan, Yuk Belajar lebih banyak!

Apa itu Synchronous JavaScript?

JavaScript Synchronous: Seperti namanya, Synchronous berarti berada dalam urutan, yaitu setiap pernyataan kode dieksekusi satu per satu. Jadi, pada dasarnya sebuah pernyataan harus menunggu pernyataan sebelumnya untuk dieksekusi.

Apa perbedaan dari asynchronous dan synchronous?

Dalam blended learning terdapat dua cara pembelajaran, yakni synchronous dan asynchronous. Synchronous adalah pembelajaran yang berpedoman pada jadwal atau kerangka waktu pelajaran. Peserta didik dapat mengakses materi maupun tugas dalam kurun waktu tertentu. Sedangkan asynchronous memiliki waktu yang lebih fleksibel.

Apa itu asynchronous JavaScript?

Jawabannya adalah JavaScript melakukannya secara asynchronous. Pada konsep asynchronous, code akan dieksekusi tanpa menunggu eksekusi code lain selesai sehingga seakan-akan dieksekusi secara bersamaan. setTimeout pada code di atas membuat kata the time has come akan ditampilkan setelah 3 detik.

Apa itu asynchronous dan synchronous programming?

Asynchronous adalah proses jalannya program bisa dilakukan secara bersamaan tanpa harus menunggu proses antrian. Synchronous merupakan bagian dari Asynchronous [1 antrian] dimana proses akan dieksekusi secara bersamaan dan untuk hasil tergantung lama proses suatu fungsi synchronous .

Bài mới nhất

Chủ Đề