Diskon kelas baru hingga 25%! Masukkan kupon "lebihcepat" di kelas ini

X
Logo Koala Skodev mengetik

Skodev

Belajar coding dalam bahasa Indonesia

APA ITU ASYNC

Belajar tentang async JavaScript, apa itu, bagaimana cara kerjanya dan bagaimana menggunakannya untuk mempercepat aplikasi web.

Async merupakan singkatan dari asynchronous, yang berarti “tidak sinkron”. Dalam konteks pemrograman JavaScript, istilah ini merujuk pada proses di mana beberapa kode dapat dieksekusi sekaligus tanpa harus menunggu kode lain selesai dijalankan. Dengan kata lain, JavaScript Async memungkinkan kamu untuk menjalankan kode yang membutuhkan waktu lama untuk selesai (seperti mengambil data dari server) tanpa menghentikan eksekusi kode lain dalam program.

Konsep Async di JavaScript

Single Thread

JavaScript adalah bahasa pemrograman single-threaded. Artinya, dua bit kode tidak dapat berjalan secara bersamaan; mereka harus berjalan satu per satu dalam satu urutan yang disebut ‘thread’.

Non-Blocking

JavaScript adalah bahasa pemrograman yang ‘Non-blocking’. Artinya, JavaScript tidak akan menunggu perintah selesai sebelum pindah ke perintah berikutnya. Ini adalah inti dari async JavaScript.

Event Loop

Event Loop adalah konsep di mana JavaScript dapat melakukan tugas-tugas secara asynchronous. Singkatnya, Event Loop memungkinkan JavaScript untuk bersifat non-blocking dengan mengatur urutan eksekusi tugas-tugas, penjadwalan tugas yang harus dikerjakan di masa depan, dan memungkinkan tugas lain berjalan di antara waktu penjadwalan dan waktu eksekusi.

Fungsi Asynchronous di JavaScript

Di JavaScript, ada tiga jenis fungsi asynchronous, yakni Callback, Promises, dan Async/Await.

Callback

Callback adalah fungsi yang ditambahkan sebagai argumen dalam fungsi lain. Callback digunakan saat sebuah fungsi butuh waktu untuk menghasilkan output dan output tersebut diperlukan untuk operasi lebih lanjut.

Berikut adalah contoh penggunaan Callback:

function download(callback) {
    setTimeout(() => {
        console.log("Download selesai.");
        callback();
    }, 3000);
}

download(() => {
    console.log("Pemrosesan setelah download.");
});

Promises

Promises adalah objek yang mewakili hasil akhir dari operasi asynchronous. Secara umum, promise adalah penjamin tentang penyelesaian atau penolakan operasi asynchronous di masa depan.

Berikut adalah contoh penggunaan Promises:

let janji = new Promise(function(resolve, reject) {
    let val = false;

    if (val) {
        resolve("Janji ditepati!");
    } else {
        reject("Janji dibatalkan.");
    }
});

janji.then(
  value => console.log(value),
  reason => console.log(reason)
);

Async/Await

Async/Await memungkinkan kamu untuk menulis kode asynchronous yang tampak seperti kode synchronous. Itu adalah cara yang lebih bersih dan lebih mudah dipahami untuk bekerja dengan operasi asynchronous.

Berikut adalah contoh penggunaan Async/Await:

async function getData() {
  let response = await fetch('https://api.example.com/data');
  let data = await response.json();
  console.log(data);
}

getData();

Dengan memahami Async JavaScript, kamu bisa lebih efektif dalam menulis dan memahami kode JavaScript. Ilmu ini khususnya akan sangat berguna saat bekerja dengan operasi I/O, seperti operasi jaringan dan database di mana waktu tanggapan dikendalikan oleh faktor-faktor di luar kendali JavaScript.

👈🏼 Function Bind
Promise 👉🏼