Membuat Bot Telegram Catatan Pribadi dengan Python dan SQLite

Cara Membuat Bot Telegram Catatan Pribadi dengan Python dan SQLite


Part 1 - Membuat Bot Telegram Catatan Pribadi dengan Python dan SQLite

PyCoding-ID - Telegram telah berkembang jauh melampaui sekadar aplikasi chatting. Kini, banyak orang menggunakan bot Telegram untuk mempermudah aktivitas sehari-hari, mulai dari pengingat jadwal, manajemen tugas, hingga pencatat keuangan. Salah satu ide sederhana namun sangat berguna adalah bot pencatat pribadi. Dengan bot ini, kita bisa menulis catatan langsung lewat chat, menyimpannya, dan melihat kembali kapan saja tanpa khawatir hilang.




Belajar cara membuat bot Telegram dengan Python dan SQLite.
PyCoding-ID - Belajar cara membuat bot Telegram dengan Python dan SQLite

Di artikel Part 1 ini, kita akan belajar cara membuat bot Telegram dengan Python yang berfungsi sebagai pencatat pribadi. Kita akan menggunakan bahasa pemrograman Python, library python-telegram-bot, dan database ringan SQLite. Tutorial ini cocok untuk pemula yang ingin belajar pemrograman praktis sekaligus menghasilkan proyek nyata.


🎯 Apa yang Akan Kita Buat?

Kita akan membangun bot sederhana dengan fitur berikut:

  • /start → Menyapa pengguna dan memberi instruksi.
  • /lihat → Menampilkan catatan terakhir yang sudah tersimpan.
  • /tulis <isi catatan> → Menyimpan catatan ke database.

Dengan bot ini, kita tidak perlu lagi membuka aplikasi catatan di HP. Cukup ketik perintah ke bot Telegram, maka catatan tersimpan otomatis. Sangat praktis, terutama untuk ide mendadak yang sering muncul ketika sedang online.


🔧 Persiapan Awal

Sebelum masuk ke kode, pastikan Anda sudah menyiapkan hal berikut:

  1. Python 3.8+ terinstal di komputer (Windows, macOS, atau Linux). 
  2. Token bot dari @BotFather yang akan digunakan untuk menghubungkan kode Python dengan Telegram.  
    • pip sudah tersedia untuk menginstal library tambahan 
    • Akun Telegram aktif.

Membuat Bot Telegram di BotFather

  1. Buka aplikasi Telegram, cari @BotFather.
  2. Ketik perintah /newbot.
  3. Ikuti instruksi untuk memberikan nama bot dan username unik.
  4. Anda akan mendapatkan API Token, contohnya

 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11 

      5.impan token tersebut, karena akan digunakan di file bot.py

 

Instalasi Library Python

Jalankan perintah berikut di terminal:

PyCoding

pip install python-telegram-bot==13.15

🗂️ Struktur Proyek

Buat folder dengan nama catatan-bot, lalu buat dua file di dalamnya:

catatan-bot/
├── bot.py
└── database.py

  • bot.py → kode utama bot Telegram. 
  • database.py → modul untuk menyimpan dan mengambil catatan dengan SQLite.


💾 Membuat Modul Database (database.py)

Kita gunakan SQLite karena ringan, tidak perlu instal server tambahan, dan langsung bekerja di semua sistem operasi.

Isi database.py dengan kode berikut:

PyCoding

import sqlite3

def init_db():
    conn = sqlite3.connect("catatan.db")
    c = conn.cursor()
    c.execute("""
        CREATE TABLE IF NOT EXISTS catatan (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            user_id INTEGER,
            teks TEXT,
            tanggal TIMESTAMP DEFAULT CURRENT_TIMESTAMP
        )
    """)
    conn.commit()
    conn.close()

def simpan_catatan(user_id, teks):
    conn = sqlite3.connect("catatan.db")
    c = conn.cursor()
    c.execute("INSERT INTO catatan (user_id, teks) VALUES (?, ?)", (user_id, teks))
    conn.commit()
    conn.close()

def ambil_catatan(user_id, limit=5):
    conn = sqlite3.connect("catatan.db")
    c = conn.cursor()
    c.execute("SELECT teks, tanggal FROM catatan WHERE user_id=? ORDER BY id DESC LIMIT ?", (user_id, limit))
    rows = c.fetchall()
    conn.close()
    return rows


🤖 Membuat Bot Telegram (bot.py)

Sekarang mari kita buat kode utama bot.

PyCoding

from telegram.ext import Updater, CommandHandler
import logging
import database

TOKEN = "ISI_TOKEN_BOT_KAMU"

logging.basicConfig(level=logging.INFO)

def start(update, context):
    update.message.reply_text("Halo! Gunakan /tulis  untuk menambah catatan.")

def tulis(update, context):
    user_id = update.effective_user.id
    teks = " ".join(context.args)
    if not teks:
        update.message.reply_text("Gunakan: /tulis ")
        return
    database.simpan_catatan(user_id, teks)
    update.message.reply_text("✅ Catatan disimpan!")

def lihat(update, context):
    user_id = update.effective_user.id
    data = database.ambil_catatan(user_id, limit=5)
    if not data:
        update.message.reply_text("Belum ada catatan.")
        return
    pesan = "\n\n".join([f"📝 {row[0]} ({row[1]})" for row in data])
    update.message.reply_text("Catatan terakhir:\n\n" + pesan)

if __name__ == "__main__":
    database.init_db()
    updater = Updater(TOKEN, use_context=True)
    dp = updater.dispatcher

    dp.add_handler(CommandHandler("start", start))
    dp.add_handler(CommandHandler("tulis", tulis))
    dp.add_handler(CommandHandler("lihat", lihat))

    updater.start_polling()
    updater.idle()


Beberapa hal penting pada kode di atas:

  • Updater digunakan untuk menerima pesan dari Telegram.
  • CommandHandler menangani perintah /start, /tulis, dan /lihat.
  • Semua catatan tersimpan berdasarkan user_id, sehingga bot bisa dipakai oleh banyak pengguna tanpa saling campur data.

▶️ Menjalankan Bot

  1. Simpan file bot.py dan database.py.
  2. Jalankan bot.py 
  3. Buka aplikasi Telegram, cari bot Anda, lalu klik Start 
  4. Coba perintah berikut:
    • /start → bot menyapa Anda. 
    • /tulis Belajar Python hari ini → catatan tersimpan.
    • /lihat → daftar catatan terakhir ditampilkan. 

📝 Keunggulan Bot Ini

Kenapa menggunakan bot pencatat pribadi di Telegram:

  • Praktis → tidak perlu aplikasi tambahan, cukup Telegram.
  • Cepat → catatan bisa disimpan hanya dengan satu perintah.
  • Privasi terjaga → catatan tersimpan di database lokal Anda, bukan server pihak ketiga.
  • Mudah dikembangkan → bisa ditambah fitur reminder, pencarian catatan, bahkan export ke file Excel atau PDF.

Selamat mencoba, dan semoga artikel ini bermanfaat bagi perjalanan belajar Python Anda di PyCodingID

Posting Komentar

0 Komentar