Advertisement

Modul events dan EventEmitter - Node.js

 

 

(Karena Semua Peristiwa Butuh Tanggapan, Termasuk Event di Kode!)

Hai, para coder yang sedang mencari cinta—eh, maksudnya ilmu!  Pernah nggak kamu merasa bahwa koding itu seperti menghadapi acara konser? Ada yang jadi penyanyi (pengirim event), ada yang jadi penonton (pendengar event), dan ada yang tiba-tiba nyanyi bareng (reaksi event). Nah, di Node.js, dunia konser ini diatur oleh modul events!

Mari kita kupas tuntas modul ini sambil bikin kamu tersenyum. Karena, siapa bilang belajar coding harus serius? 😎

1. Apa Itu Modul events?

Modul events adalah modul bawaan Node.js yang memungkinkan kamu menangani event-driven programming.
Pikirkan seperti ini:

  • EventEmitter = Penyiar acara.
  • Listener (Pendengar) = Orang yang siap-siap merespons ketika acara mulai.
  • Event = Acara yang diumumkan, kayak, “Hei, ada yang baru!”

Misalnya, kamu ingin tahu kalau ada tombol yang diklik, file yang selesai diunduh, atau bahkan kopi yang sudah matang. Semua itu bisa ditangani dengan events.

2. Membuat EventEmitter Sederhana

Langkah pertama adalah mengimpor modul events dan membuat EventEmitter. Ini seperti bikin mic buat pengumuman event.

Contoh:

const EventEmitter = require('events');
const myEmitter = new EventEmitter();

// Buat event
myEmitter.on('kopiSiap', () => {
  console.log('Kopi sudah siap! Ayo minum ');
});

// Trigger event
myEmitter.emit('kopiSiap');

Output:

Kopi sudah siap! Ayo minum 

Lihat? Ketika kamu memanggil event kopiSiap, listener-nya langsung bereaksi! Sekali bikin, kamu bisa pakai event ini kapan pun. Cocok buat programmer yang nggak sabar nunggun kopi.

3. Menambahkan Data ke Event

Kadang, event itu nggak cuma sekadar pengumuman. Kamu mungkin mau tahu detailnya. Misalnya, kopi jenis apa yang disiapkan? Dengan emit(), kamu bisa mengirim data ke pendengar.

Contoh:

myEmitter.on('kopiSiap', (jenis) => {
  console.log(`Kopi ${jenis} sudah siap! Jangan lupa gula, ya!`);
});

myEmitter.emit('kopiSiap', 'Americano');
myEmitter.emit('kopiSiap', 'Latte');

Output:

Kopi Americano sudah siap! Jangan lupa gula, ya!
Kopi Latte sudah siap! Jangan lupa gula, ya!

Sekarang, setiap event bisa lebih personal. Karena, siapa yang mau minum kopi tanpa tahu itu jenis apa? 😜

4. Menghapus Listener dengan removeListener()

Terkadang, kamu merasa, “Kayaknya listener ini udah nggak penting deh.” Nah, kamu bisa menghapus listener menggunakan removeListener().

Contoh:

const sayHi = () => console.log('Hai, ada event lagi!');
myEmitter.on('halo', sayHi);

// Emit pertama
myEmitter.emit('halo');  // Output: Hai, ada event lagi!

// Hapus listener
myEmitter.removeListener('halo', sayHi);

// Emit lagi
myEmitter.emit('halo');  // Tidak ada output

Seperti hubungan yang nggak sehat, listener yang nggak perlu bisa dihapus. Jangan buang memori untuk sesuatu yang nggak lagi relevan. 😅

5. Menggunakan once(): Listener Sekali Pakai

Bayangkan ada event yang cuma mau didengarkan sekali, misalnya kamu ulang tahun. Kamu nggak mungkin minta orang ngucapin ulang tahun setiap hari, kan? (Kecuali kamu Leo).

Gunakan once() untuk event yang cukup terjadi sekali saja!

Contoh:

myEmitter.once('ulangTahun', () => {
  console.log('Selamat ulang tahun! ');
});

// Emit pertama
myEmitter.emit('ulangTahun');  // Output: Selamat ulang tahun! 

// Emit kedua
myEmitter.emit('ulangTahun');  // Tidak ada output

Lihat? Ucapan ulang tahun hanya terjadi sekali. Karena setelah itu, ya udah, move on dong!

6. Menangani Error dengan error Event

Kamu pasti tahu, dalam hidup (dan coding), selalu ada kemungkinan error. Nah, EventEmitter punya event bawaan bernama error yang bisa kamu manfaatkan untuk menangani kesalahan tanpa bikin aplikasi crash.

Contoh:

myEmitter.on('error', (err) => {
  console.error(`Ada error, bro: ${err.message}`);
});

myEmitter.emit('error', new Error('Ups, ada yang salah!'));

Output:

Ada error, bro: Ups, ada yang salah!

Kamu jadi lebih siap menghadapi error. Karena di dunia nyata, siapapun harus belajar menerima kenyataan. 😂

7. EventEmitter di Dunia Nyata

EventEmitter sering digunakan untuk:

  • Server HTTP: Menangani permintaan dan tanggapan.
  • Streaming Data: Membaca atau menulis file secara bertahap.
  • Socket.IO: Mengelola komunikasi waktu nyata.
  • API Custom: Membuat logika event sendiri di aplikasi.

Contohnya, bikin event kayak ini di server:

const http = require('http');
const server = http.createServer();

server.on('request', (req, res) => {
  console.log(`Ada request dari ${req.url}`);
  res.end('Halo dari server!');
});

server.listen(3000, () => console.log('Server jalan di port 3000'));

Setiap ada permintaan ke server, event request akan dipicu. Simple tapi powerful!

8. Kesimpulan: EventEmitter Itu Kayak MC di Acara Koding

Modul events dan EventEmitter adalah alat yang bikin koding lebih hidup! Dengan ini, kamu bisa membuat aplikasi yang reaktif, responsif, dan nggak kaku.

Hal-hal penting yang perlu kamu ingat:

  1. Gunakan on() untuk mendengarkan event.
  2. Gunakan emit() untuk memicu event.
  3. Jangan lupa once() untuk event sekali pakai.
  4. Siapkan error listener supaya nggak panik saat error datang.

Selamat mencoba, teman-teman! Semoga hidup dan kodingmu jadi lebih seru seperti event-event di Node.js. Dan ingat, setiap event adalah momen yang perlu dirayakan!

Semoga artikel ini bikin kamu paham sekaligus terhibur. Jangan lupa bikin event sendiri dan undang EventEmitter, ya! 😄

 

Post a Comment

0 Comments