Telegram bot itu bisa dipakai buat macem-macem, mulai dari autoreply, scraper, sampai bikin layanan otomatis. Di artikel ini, gw bakal jelasin cara bikin bot Telegram sendiri dengan Node.js, step-by-step, gampang dipahami, dan langsung bisa dicoba!
1. Persiapan Awal
Sebelum mulai, pastiin lu udah punya:
- Akun Telegram
- Node.js terinstall di PC/laptop (bisa cek dengan
node -vdi terminal) - Token bot Telegram (nanti gw ajarin cara dapetinnya)
- Kode editor (misal: VS Code, Acode buat yang pake HP)
2. Dapetin Token Bot dari BotFather
Telegram punya bot khusus buat bikin bot baru, namanya BotFather. Ikutin langkah ini:
- Buka Telegram, cari @BotFather
- Klik Start, lalu ketik
/newbot - Masukin nama bot lu (bebas)
- Masukin username bot yang unik (harus diakhiri dengan
bot, misalMyAwesomeBot) - Kalau berhasil, lu bakal dapet Token API kayak gini:
Simpen token ini, karena ini yang bakal dipake buat komunikasi ke Telegram API.123456789:ABCDEFGHIJKLMNOPQRSTUVWXYZ
3. Setup Proyek Node.js
Sekarang kita mulai coding-nya. Buka terminal/cmd, lalu buat folder proyek baru dan masuk ke foldernya:
mkdir my-telegram-bot
cd my-telegram-bot
Jalankan perintah ini buat inisialisasi proyek Node.js:
npm init -y
Ini bakal bikin file package.json secara otomatis.
4. Install Paket yang Dibutuhkan
Kita bakal pake package node-telegram-bot-api buat komunikasi dengan Telegram. Install dulu:
npm install node-telegram-bot-api
5. Buat File Bot dan Tulis Kodenya
Buat file baru index.js di dalam folder proyek lu, terus isi dengan kode dasar berikut:
const TelegramBot = require('node-telegram-bot-api');
const token = 'GANTI_DENGAN_TOKEN_BOT_LU';
const bot = new TelegramBot(token, { polling: true });
bot.on('message', (msg) => {
const chatId = msg.chat.id;
bot.sendMessage(chatId, `Halo, ${msg.from.first_name}! Bot ini udah jalan!`);
});
Penjelasan Kode:
require('node-telegram-bot-api')→ Mengimpor library yang kita butuhkan.const bot = new TelegramBot(token, { polling: true })→ Bikin instance bot yang aktif terus (polling).bot.on('message', (msg) => { ... })→ Event listener buat nangkep setiap pesan yang masuk.msg.chat.id→ ID chat buat nentuin ke mana bot harus ngirim balasan.bot.sendMessage(chatId, ... )→ Perintah buat balas pesan.
6. Jalankan Bot-nya
Sekarang tinggal jalanin bot dengan perintah:
node index.js
Kalau sukses, lu bisa coba chat bot lu di Telegram, nanti dia bakal bales pesan lu otomatis!
7. Tambahin Fitur Perintah
Supaya lebih keren, kita bisa tambahin command /start dan /help biar bot bisa ngerespon perintah:
bot.onText(/\/start/, (msg) => {
bot.sendMessage(msg.chat.id, 'Selamat datang! Ketik /help buat lihat perintah yang tersedia.');
});
bot.onText(/\/help/, (msg) => {
bot.sendMessage(msg.chat.id, 'Daftar perintah:\n/start - Mulai bot\n/help - Lihat perintah yang tersedia');
});
Penjelasan Kode:
bot.onText(/\/start/, (msg) => { ... })→ Nangkep perintah/startdan ngasih respon otomatis.bot.onText(/\/help/, (msg) => { ... })→ Nangkep/helpdan menampilkan daftar perintah.
Sekarang coba ketik /start atau /help di bot Telegram lu, harusnya udah jalan!
8. Deploy ke Server (Opsional)
Kalau mau botnya tetep jalan 24/7, lu bisa host di VPS atau pake layanan kayak Railway, Render, atau Google Cloud. Cara simpelnya:
- Gunakan pm2 buat jalanin bot di background:
npm install -g pm2 pm2 start index.js --name "my-bot" - Kalau pake Railway, tinggal deploy proyek Node.js lu ke sana.
9. Tambahkan Fitur Lanjutan
Biar lebih menarik, lu bisa nambahin fitur kayak:
- Bot jawab otomatis berdasarkan keyword:
bot.on('message', (msg) => { const chatId = msg.chat.id; if (msg.text.toLowerCase().includes('halo')) { bot.sendMessage(chatId, 'Halo juga! Apa kabar?'); } }); - Integrasi dengan API eksternal, misalnya cuaca:
const axios = require('axios'); bot.onText(/\/cuaca (.+)/, async (msg, match) => { const kota = match[1]; try { const response = await axios.get(`https://api.openweathermap.org/data/2.5/weather?q=${kota}&appid=API_KEY_LO`); const suhu = response.data.main.temp - 273.15; bot.sendMessage(msg.chat.id, `Suhu di ${kota} saat ini ${suhu.toFixed(2)}°C`); } catch (error) { bot.sendMessage(msg.chat.id, 'Gagal ambil data cuaca, coba lagi.'); } });
10. Kesimpulan
Gampang kan? Sekarang lu udah bisa bikin bot Telegram sendiri! Dari artikel ini, lu belajar:
✅ Cara dapetin token dari BotFather
✅ Setup proyek Node.js
✅ Coding bot dengan node-telegram-bot-api
✅ Nambahin fitur command /start dan /help
✅ Cara deploy biar bot tetep online
✅ Tambahin fitur lanjutan kayak auto-reply & cek cuaca
Kalau ada pertanyaan, langsung tulis di komentar ya! 🚀