Memahami Synchronous dan Asynchronous

Secara sederhana Synchronous adalah proses pengeksekusian kode yang dijalankan secara berurutan berdasarkan kode yang tertulis.

Contohnya:

console.log(1);
console.log(2);
console.log(3);

Hasil:

1
2
3

Dalam kasus Synchronous diatas, dapat disimpulkan, hasil yang didapatkan dari kode sesuai dengan urutan yang kita tulis.

Berbeda dengan Asynchronous, proses asyncrhonous adalah proses pengeksekusian kode yang tidak sesuai dengan urutan yang ada atau bisa disebut menjalankan perintah selanjutnya tanpa menunggu perintah sebelumnya selesai.

Contohnya:

console.log(1);
setTimeout(function () {
console.log(2);
}, 3000);
console.log(3);

Hasil:

1
3
2

Perintah dijalankan bersamaan namun hasil untuk console.log(2) dicetak pada akhir, karena proses setTimeout belum selesai, tanpa menunggu proses setTimeout tersebut maka perintah selanjutnya dijalankan.

Analoginya

Proses Syncrhonous sama seperti proses antrian teler bank, disaat kamu berniat untuk menyetor/transfer uang melalui teler bank, kamu wajib mengikuti aturan yang dinamakan “antrian”, kamu belum bisa melakukan transaksi jika semua orang didepan kamu menyelesaikan transaksinya.

Proses Asyncrhonous bisa disamakan dengan sistem pemesanan pada restoran, Meja A memesan pada waktu 12.00, tanpa menunggu makanan Meja A tiba, Meja B bisa memesan makanan pada waktu 12.15, namun hasil yang didapatkan sesuai apa yang dipesan oleh Meja A dan Meja B. Jika Meja A memesan nasi goreng 2 piring, sementara Meja B hanya memesan nasi telor, maka Meja B bisa mendapatkan makanan lebih dulu dari pada Meja A.