Join our newsletter!

Enter your email to receive our latest newsletter.

Don't worry, we don't spam

javascript# web programming# asynchronous# synchronous

4 tahun yang lalu

Synchronous vs asynchronous konsep pemograman

Synchronous dan Asynchronous adalah dua konsep dalam pemrograman yang berhubungan dengan bagaimana tugas atau operasi dieksekusi dan bagaimana program berinteraksi dengan sumber daya eksternal. Mari kita bahas keduanya:

1. Synchronous Programming:
Synchronous programming adalah cara tradisional atau standar dalam pemrograman di mana tugas atau operasi dijalankan secara berurutan, satu per satu. Artinya, program akan menunggu tugas saat ini selesai sebelum melanjutkan ke tugas berikutnya. Ketika ada operasi yang memerlukan waktu yang lama untuk menyelesaikan tugas, ini dapat menyebabkan program menjadi tidak responsif atau terjebak dalam proses tertentu hingga tugas tersebut selesai.

Contoh sederhana dengan JavaScript:

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



Pada contoh di atas, program akan mengeksekusi langkah 1, kemudian langkah 2, dan akhirnya langkah 3 secara berurutan, satu per satu.

2. Asynchronous Programming:
Asynchronous programming memungkinkan program untuk menjalankan tugas tanpa harus menunggu tugas sebelumnya selesai. Dengan demikian, program dapat melanjutkan eksekusi ke tugas lain sambil menunggu tugas yang memerlukan waktu lama untuk menyelesaikan operasi.

Ini sangat bermanfaat ketika ada operasi yang melibatkan I/O (Input/Output), seperti mengambil data dari server, membaca file dari disk, atau mengunduh gambar dari internet, karena tugas-tugas ini biasanya memerlukan waktu yang lebih lama daripada eksekusi kode biasa.

Contoh sederhana dengan JavaScript:

function f1() {
    console.log('f1');
}

function f2() {
    console.log('f2');
}

function main() {
    console.log('main');
   
    setTimeout(f1, 0);
   
    new Promise((resolve, reject) =>
        resolve('I am a promise')
    ).then(resolve => console.log(resolve))
   
    f2();
}

main();


Pada contoh di atas, fungsi `setTimeout` digunakan untuk menunda eksekusi langkah 2 selama 2 detik. Selama menunggu, program akan melanjutkan dan mencetak langkah 3 terlebih dahulu.

Asynchronous programming biasanya digunakan dalam bahasa pemrograman modern untuk meningkatkan responsivitas dan efisiensi program, terutama dalam lingkungan yang memanipulasi operasi I/O atau berbasis jaringan. Berbagai teknik seperti Promise, Callback, dan async/await digunakan untuk mengelola asynchrony dalam kode.