Tutorial Membuat Bot Telegram Sederhana untuk Pengingat Konsumsi Obat dengan Python

3 min read 24-08-2024
Tutorial Membuat Bot Telegram Sederhana untuk Pengingat Konsumsi Obat dengan Python

Memiliki pengingat untuk konsumsi obat bisa sangat membantu, terutama jika Anda atau anggota keluarga Anda harus mengonsumsi obat secara teratur. Dalam tutorial ini, kita akan membuat bot Telegram sederhana yang akan mengingatkan Anda untuk minum obat menggunakan Python.

Prasyarat

Sebelum kita mulai, pastikan Anda telah menyiapkan hal-hal berikut:

  1. Akun Telegram: Anda memerlukan akun Telegram untuk membuat dan mengakses bot.
  2. Token Bot Telegram: Anda perlu membuat bot Telegram dan mendapatkan token API-nya.
  3. Python 3: Pastikan Python 3 sudah terinstal pada sistem Anda.
  4. Lib Telegram untuk Python: Kita akan menggunakan pustaka python-telegram-bot.

Instalasi Pustaka yang Diperlukan

Sebelum mulai coding, kita perlu menginstal pustaka python-telegram-bot. Anda dapat melakukannya menggunakan pip:

pip install python-telegram-bot

Langkah-Langkah Membuat Bot Telegram

1. Membuat Bot di Telegram

  • Buka aplikasi Telegram dan cari bot bernama BotFather.
  • Mulai chat dengan BotFather dan kirimkan perintah /newbot.
  • Ikuti instruksi untuk memberikan nama dan username untuk bot Anda.
  • Setelah bot dibuat, Anda akan menerima token API. Simpan token ini dengan baik, karena kita akan membutuhkannya nanti.

2. Mengatur Proyek Python Anda

Buatlah folder untuk proyek Anda dan buat file baru dengan nama bot.py.

mkdir bot_konsumsi_obat
cd bot_konsumsi_obat
touch bot.py

Buka file bot.py dalam editor teks pilihan Anda.

3. Menulis Kode untuk Bot

Berikut adalah contoh kode untuk bot Telegram sederhana yang dapat mengingatkan Anda untuk mengonsumsi obat:

import logging
from telegram import Update
from telegram.ext import Updater, CommandHandler, CallbackContext
from datetime import datetime, timedelta
import threading

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

# Variabel global untuk menyimpan jadwal
reminder_time = []


def start(update: Update, context: CallbackContext) -> None:
    update.message.reply_text('Halo! Saya adalah Bot Pengingat Obat. Kirimkan /set <jam> <menit> untuk mengatur pengingat.')


def set_reminder(update: Update, context: CallbackContext) -> None:
    if len(context.args) != 2:
        update.message.reply_text('Format yang benar: /set <jam> <menit>')
        return

    try:
        hour = int(context.args[0])
        minute = int(context.args[1])
        time_now = datetime.now()
        
        # Mengatur waktu pengingat
        reminder_time = datetime.now().replace(hour=hour, minute=minute, second=0, microsecond=0)
        if reminder_time < time_now:
            reminder_time += timedelta(days=1)

        # Menyimpan pengingat
        reminder_thread = threading.Timer((reminder_time - time_now).total_seconds(), remind, args=(update.message.chat_id,))
        reminder_thread.start()
        
        update.message.reply_text(f'Pengingat telah diset setiap hari pada jam {hour}:{minute}.')
    except ValueError:
        update.message.reply_text('Jam dan menit harus berupa angka!')


def remind(chat_id):
    """Fungsi untuk mengingatkan konsumsi obat."""
    updater.bot.send_message(chat_id=chat_id, text="Waktu untuk mengonsumsi obat!")
    # Set reminder lagi setelah 24 jam
    threading.Timer(86400, remind, args=(chat_id,)).start()


def main():
    """Modul utama untuk menjalankan bot."""
    # Ganti 'YOUR_TOKEN' dengan token bot Anda
    updater = Updater("YOUR_TOKEN")

    # Dapatkan dispatcher untuk registrasi handler
    dispatcher = updater.dispatcher

    # Menangani command
    dispatcher.add_handler(CommandHandler("start", start))
    dispatcher.add_handler(CommandHandler("set", set_reminder))

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


if __name__ == '__main__':
    main()

4. Menjalankan Bot

Setelah Anda menulis kode di atas, Anda bisa menjalankan bot dengan menggunakan perintah berikut di terminal:

python bot.py

5. Menggunakan Bot

  • Cari bot Anda di Telegram berdasarkan username yang Anda buat dengan BotFather.
  • Kirimkan pesan /start untuk memulai percakapan dengan bot.
  • Gunakan perintah /set <jam> <menit> untuk mengatur pengingat. Misalnya, /set 9 30 untuk mengatur pengingat pada jam 9:30 setiap hari.

Penjelasan Kode

  • Logging: Kami mengatur logging agar kita bisa melihat apa yang terjadi dalam bot kita.
  • Handler: Kami menangani beberapa command yaitu /start dan /set, di mana /set digunakan untuk mengatur waktu pengingat.
  • Threading: Kami menggunakan threading untuk mengatur pengingat agar bot bisa tetap merespon perintah lain.

Kesimpulan

Dalam tutorial ini, kita telah berhasil membuat bot Telegram sederhana yang dapat mengingatkan Anda untuk mengonsumsi obat. Anda bisa mengembangkan bot ini lebih lanjut dengan menambahkan fitur-fitur seperti:

  • Mengatur pengingat untuk beberapa obat dengan jadwal yang berbeda.
  • Menyimpan pengaturan pengguna dalam database agar tetap tersimpan meski bot dimatikan.

Selamat mencoba dan semoga bermanfaat! Jika Anda memiliki pertanyaan atau tidak mengerti langkah tertentu, jangan ragu untuk bertanya.