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:
- Akun Telegram: Anda memerlukan akun Telegram untuk membuat dan mengakses bot.
- Token Bot Telegram: Anda perlu membuat bot Telegram dan mendapatkan token API-nya.
- Python 3: Pastikan Python 3 sudah terinstal pada sistem Anda.
- 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.