Membuat BOT WhatsApp Menggunakan NodeJS

Di era digital seperti sekarang, komunikasi instan menjadi kebutuhan penting, terutama dalam bisnis. WhatsApp menjadi salah satu platform paling populer untuk berkomunikasi dengan pelanggan. Karena itulah, banyak developer mulai membuat BOT WhatsApp untuk mengotomatisasi percakapan, notifikasi, hingga layanan pelanggan. Dalam artikel ini, kita akan membahas cara membuat BOT WhatsApp menggunakan NodeJS, teknologi backend yang ringan dan powerful.

Apr 14, 2025 - 20:46
Apr 14, 2025 - 22:01
Membuat BOT WhatsApp Menggunakan NodeJS

Di era digital seperti sekarang, komunikasi instan menjadi kebutuhan penting, terutama dalam bisnis. WhatsApp menjadi salah satu platform paling populer untuk berkomunikasi dengan pelanggan. Karena itulah, banyak developer mulai membuat BOT WhatsApp untuk mengotomatisasi percakapan, notifikasi, hingga layanan pelanggan. Dalam artikel ini, kita akan membahas cara membuat BOT WhatsApp menggunakan NodeJS, teknologi backend yang ringan dan powerful.

Mengapa Menggunakan NodeJS untuk BOT WhatsApp?

NodeJS merupakan runtime JavaScript yang cepat dan efisien, cocok untuk aplikasi real-time seperti chatbot. Berikut alasan menggunakan NodeJS untuk BOT WhatsApp:

  • Non-blocking I/O: NodeJS sangat baik dalam menangani banyak koneksi secara bersamaan.

  • Ekosistem besar: Banyak library seperti whatsapp-web.js, express, dan socket.io yang memudahkan pengembangan bot.

  • Mudah dipelajari: JavaScript adalah bahasa populer, sehingga mudah dipahami oleh banyak developer.

Tools dan Library yang Digunakan

Untuk membuat BOT WhatsApp menggunakan NodeJS, kamu memerlukan:

  • NodeJS (v14 ke atas)

  • npm (Node Package Manager)

  • whatsapp-web.js: Library populer untuk mengakses WhatsApp Web API

  • qrcode-terminal: Menampilkan QR code di terminal

  • express: (opsional) Untuk membuat REST API

  • MySQL: (opsional) Untuk menyimpan sesi atau data chat

Langkah-Langkah Membuat BOT WhatsApp dengan NodeJS

1. Inisialisasi Project

mkdir whatsapp-bot
cd whatsapp-bot
npm init -y
npm install whatsapp-web.js qrcode-terminal express

2. Buat File Utama index.js

const { Client } = require('whatsapp-web.js');
const qrcode = require('qrcode-terminal');
const fs = require('fs');

const client = new Client();

client.on('qr', (qr) => {
    console.log('Scan QR Code di bawah ini untuk login WhatsApp:');
    qrcode.generate(qr, { small: true });
});

client.on('ready', () => {
    console.log('BOT WhatsApp siap digunakan!');
});

client.on('message', async msg => {
    console.log(`Pesan dari ${msg.from}: ${msg.body}`);
    
    if (msg.body.toLowerCase() === 'halo') {
        await msg.reply('Hai! Ada yang bisa saya bantu?');
    }
});

client.initialize();

3. Jalankan BOT WhatsApp

node index.js

Lalu, scan QR Code menggunakan WhatsApp kamu. Setelah berhasil, BOT akan aktif dan merespons pesan "halo".

Menambahkan Fitur Tambahan

Membuat API untuk Mengirim Pesan

const express = require('express');
const app = express();
app.use(express.json());

app.post('/send-message', async (req, res) => {
    const { number, message } = req.body;

    try {
        const chatId = number + "@c.us";
        await client.sendMessage(chatId, message);
        res.status(200).json({ status: 'Pesan berhasil dikirim' });
    } catch (error) {
        res.status(500).json({ status: 'Gagal mengirim pesan', error });
    }
});

app.listen(3000, () => {
    console.log('REST API aktif di http://localhost:3000');
});

Menyimpan Sesi Login (Opsional)

Agar tidak perlu scan QR ulang setiap restart, kamu bisa menyimpan sesi dengan LocalAuth atau ke database seperti MySQL.

const { Client, LocalAuth } = require('whatsapp-web.js');
const client = new Client({
    authStrategy: new LocalAuth()
});

Kesimpulan

Membuat BOT WhatsApp menggunakan NodeJS sangatlah mudah dan fleksibel. Dengan library seperti whatsapp-web.js, kamu bisa membuat sistem auto-reply, notifikasi, hingga integrasi dengan sistem backend lainnya. Selain memudahkan pekerjaan, BOT WhatsApp juga bisa meningkatkan kualitas layanan pelanggan secara signifikan.