Menunggu Data ala Dunia Otomotif
Bayangkan kamu sedang di bengkel, lagi nunggu sensor ABS yang lagi dicek dengan alat scan. Sensor ini butuh waktu buat ngirim data ke komputer, tapi sementara itu, kita nggak bisa cuma bengong kan? Di dunia pemrograman khususnya JavaScript, saat kita butuh menunggu hasil sensor yang membutuhkan proses asynchronous, kita nggak boleh nge-block jalannya program hanya karena cuma “nunggu”.
Nah, konsep *Promise* di JavaScript ini ibarat “janji” dari komputer buat memberi tahu hasil sensor itu nanti. Jadi, kamu bisa terus kerja lain di garasi sementara data dari sensor ABS itu masuk. Presentasi janji itu akan terpenuhi suatu saat, bikin kode kita efisien tanpa nge-hang.
Terminologi Penting: Apa itu Promise?
Promise itu seperti surat garansi dari produsen sensor. Janjinya simpel: “Saya akan kasih kamu data nanti, entah itu sukses (fulfilled) atau gagal (rejected).”
Ada tiga status utama Promise:
– **Pending**: Janji masih ditunggu, data sensor belum datang.
– **Fulfilled**: Janji terpenuhi, data sensor sudah tersedia.
– **Rejected**: Janji batal, sensor gagal memberikan data.
Promise membantu kita mengatur kode supaya bisa menunggu hasil tanpa nge-block jalannya program. Ini mirip kaya kamu lagi nunggu sensor, tapi sambil ngerjain modifikasi lain mobil.
Contoh Kode JavaScript: Promise Menunggu Sensor
Langsung aja kita coba bikin simulasi kecil. Bayangkan sensor ABS butuh waktu 2 detik untuk memberikan data, dan kita pakai Promise untuk menunggu datanya.
function bacaSensorABS() {
return new Promise((resolve, reject) => {
// simulasi proses sensor dengan delay 2 detik
setTimeout(() => {
const berhasil = true; // sensor berhasil ngirim data
if (berhasil) {
resolve("Data sensor ABS: kecepatan 80 km/jam");
} else {
reject("Sensor ABS gagal membaca data");
}
}, 2000);
});
}
console.log("Mulai baca sensor ABS...");
bacaSensorABS()
.then(data => {
console.log("Sukses:", data);
})
.catch(error => {
console.log("Error:", error);
});
console.log("Sambil nunggu, bisa lakukan pekerjaan lain!");
Kode di atas menunjukkan Promise menunggu data sensor ater delay. Selama 2 detik, program nggak berhenti, tetap jalan. Nah, saat data datang, fungsi `.then()` baru dipanggil.
Contoh Lanjutan: Memproses Data Sensor Bertingkat
Misalkan kamu ingin proses dua sensor sekaligus, misal sensor ABS dan sensor suhu mesin, kemudian gabungkan hasilnya. Kamu juga pengen tahu kalau salah satu gagal.
function bacaSensor(sku) {
return new Promise((resolve, reject) => {
const delay = sku === 'ABS' ? 1500 : 1000;
setTimeout(() => {
if (Math.random() > 0.2) { // 80% berhasil
resolve(`Data sensor ${sku}: nilai random ${Math.floor(Math.random() * 100)}`);
} else {
reject(`Sensor ${sku} gagal membaca data`);
}
}, delay);
});
}
console.log("Mulai baca dua sensor bersamaan...");
Promise.all([bacaSensor('ABS'), bacaSensor('Suhu')])
.then(results => {
console.log("Semua sensor berhasil:", results);
})
.catch(error => {
console.log("Salah satu sensor error:", error);
});
Kode ini pakai `Promise.all` — sebuah orkestra janji yang menunggu semua sensor selesai. Jika semua sukses, kamu dapat hasilnya sekaligus. Kalau salah satu gagal, kamu langsung tahu supaya bisa ambil tindakan cepat dan gak kalang kabut.
Masa Depan: Dari Garasi ke Algoritma
Penggunaan Promise di JavaScript seperti mekanik yang handal saat menangani banyak sensor di mobil modern tanpa bikin bengkel jadi macet. Dengan Promise, kamu bisa mengorkestrasi berbagai proses asynchronous secara efisien — dari baca sensor, komunikasi modul kendaraan, hingga update software ECU.
Semakin rumit sistem kendaraan kedepan, otomatis kebutuhan software yang pintar menunggu dan merespon data dari sensor juga penting. Jadi, kemampuan memahami dan mengimplementasikan Promise di kode kamu itu penting banget, laksana punya alat diagnostik yang selalu siap baca data tanpa membuat bengkel jadi bengong.
Kalau kamu sudah nyaman dengan Promise, langkah berikutnya bisa explore `async/await` yang bikin kode menunggu jadi lebih rapi, gampang dibaca, dan tetap non-blocking.
Mau coba praktek lebih banyak soal Promise atau algoritma JavaScript yang lebih rumit? Yuk, terus simak seri JS-23 di Otokreasi.com, biar skill ngodingmu makin ngebut seperti mobil balap K1 di sirkuit!



