Panduan Membuat Bot Telegram Sederhana untuk Pengingat Vaksinasi Menggunakan Python

3 min read 24-08-2024
Panduan Membuat Bot Telegram Sederhana untuk Pengingat Vaksinasi Menggunakan Python

Telegram adalah salah satu aplikasi pesan yang populer dan memiliki banyak fitur yang memudahkan penggunanya. Salah satu fitur menarik dari Telegram adalah kemampuannya untuk membuat bot yang dapat berinteraksi dengan pengguna. Dalam artikel ini, kita akan membahas cara membuat bot Telegram sederhana yang berfungsi sebagai pengingat vaksinasi dengan menggunakan bahasa pemrograman Python.

Apa yang Diperlukan

Sebelum kita mulai, ada beberapa hal yang perlu disiapkan:

  1. Akun Telegram: Pastikan Anda memiliki akun Telegram.
  2. BotFather: Ini adalah bot resmi Telegram yang digunakan untuk membuat bot baru.
  3. Python: Pastikan Anda telah menginstal Python di komputer Anda (Python 3.x direkomendasikan).
  4. Library python-telegram-bot: Kita akan menggunakan library ini untuk berinteraksi dengan API Telegram.

Tahapan Membuat Bot Telegram

1. Membuat Bot Menggunakan BotFather

BotFather adalah bot yang digunakan untuk membuat bot baru di Telegram. Berikut adalah langkah-langkahnya:

  • Langkah 1: Buka aplikasi Telegram dan cari "BotFather".
  • Langkah 2: Klik pada BotFather dan mulai chat dengan mengklik tombol "Start".
  • Langkah 3: Ketik /newbot dan tekan Enter.
  • Langkah 4: Ikuti instruksi untuk memberikan nama dan username untuk bot Anda.
  • Langkah 5: Setelah selesai, BotFather akan memberikan token API. Simpan token ini untuk digunakan nanti.

2. Menginstal Library python-telegram-bot

Setelah membuat bot, langkah selanjutnya adalah menginstal library yang kita perlukan. Buka terminal atau command prompt dan jalankan perintah berikut:

pip install python-telegram-bot

3. Menyusun Kode Bot

Setelah menginstal library, kita siap untuk menulis kode untuk bot kita. Berikut adalah contoh kode sederhana untuk bot pengingat vaksinasi:

import logging
from telegram import Update
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext
import datetime
import pytz

# Mengatur logging
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
                    level=logging.INFO)
logger = logging.getLogger(__name__)

# Fungsi untuk memulai bot
def start(update: Update, context: CallbackContext) -> None:
    update.message.reply_text('Selamat datang di Bot Pengingat Vaksinasi! Ketik /set untuk mengatur pengingat.')

# Fungsi untuk mengatur pengingat vaksinasi
def set_reminder(update: Update, context: CallbackContext) -> None:
    try:
        # Ambil waktu dari argumen yang diberikan
        time = ' '.join(context.args)
        # Ubah string waktu menjadi objek datetime
        reminder_time = datetime.datetime.strptime(time, '%H:%M').time()
        # Simpan pengingat waktu dalam context
        context.user_data['reminder_time'] = reminder_time
        update.message.reply_text(f'Pengingat vaksinasi diatur pada jam {reminder_time}.')
    except (ValueError, IndexError):
        update.message.reply_text('Format waktu tidak valid! Gunakan format HH:MM (24 jam).')

# Fungsi untuk mengingatkan pengguna
def remind(context: CallbackContext) -> None:
    job = context.job
    context.bot.send_message(job.context, text='Ingat! Saatnya vaksinasi!')

# Fungsi untuk mengatur pengingat waktu
def schedule_reminder(update: Update, context: CallbackContext) -> None:
    try:
        reminder_time = context.user_data['reminder_time']
        job_queue = context.job_queue
        # Menjamin zona waktu
        tz = pytz.timezone('Asia/Jakarta')
        reminder_datetime = tz.localize(datetime.datetime.combine(datetime.datetime.now(), reminder_time))
        
        if reminder_datetime < datetime.datetime.now(tz):
            update.message.reply_text('Waktu pengingat sudah lewat! Silakan atur ulang.')
            return

        job_queue.run_daily(remind, time=reminder_datetime.time(), context=update.message.chat_id)
        update.message.reply_text(f'Pengingat telah dijadwalkan setiap hari pada jam {reminder_time}.')
    except KeyError:
        update.message.reply_text('Anda harus mengatur waktu pengingat terlebih dahulu dengan /set [HH:MM].')

# Fungsi utama untuk menjalankan bot
def main() -> None:
    # Masukkan token API Anda di sini
    TOKEN = 'YOUR_TELEGRAM_BOT_TOKEN'
    updater = Updater(TOKEN)

    # Mendapatkan dispatcher untuk mendaftarkan handler
    dispatcher = updater.dispatcher

    # Daftarkan handler
    dispatcher.add_handler(CommandHandler('start', start))
    dispatcher.add_handler(CommandHandler('set', set_reminder))
    dispatcher.add_handler(CommandHandler('schedule', schedule_reminder))

    # Mulai bot 
    updater.start_polling()
    updater.idle()

if __name__ == '__main__':
    main()

4. Penjelasan Kode

  • Import Library: Kita mengimport berbagai library yang dibutuhkan di awal script.
  • Fungsi start: Mengirim pesan sambutan saat bot active.
  • Fungsi set_reminder: Mengatur waktu pengingat berdasarkan input pengguna.
  • Fungsi remind: Mengirim pesan pengingat saat waktu vaksinasi tiba.
  • Fungsi schedule_reminder: Menjadwalkan pengingat berdasarkan waktu yang telah ditetapkan.
  • Fungsi main: Memulai bot dengan menambahkan handler untuk mengatur berbagai perintah.

5. Menjalankan Bot

Setelah menulis semua kode, simpan file dengan nama vaccine_reminder_bot.py dan jalankan di terminal:

python vaccine_reminder_bot.py

Uji bot Anda dengan mencari bot di Telegram dan mulai berinteraksi. Gunakan perintah /start untuk melihat sambutan dan /set HH:MM untuk mengatur waktu pengingat.

Kesimpulan

Dalam artikel ini, kita telah membahas cara membuat bot Telegram sederhana untuk pengingat vaksinasi menggunakan Python. Dengan menggunakan library python-telegram-bot, kita dapat dengan mudah membuat bot yang berguna dan interaktif. Bot ini dapat membantu pengguna mengingat waktu vaksinasi mereka, sehingga mereka tidak melewatkan jadwal penting ini.

Selamat mencoba!