Catatan Harian Mas Andri

Silahkan digunakan dengan bijaksana

back

Membangun Bot Telegram Al-Quran: Panduan Lengkap dari Pembuatan hingga Deployment

24 Maret 2025 || 10:46:44 WIB || ClassyID

 


Telegram telah menjadi salah satu platform pesan instan paling populer dengan dukungan bot yang kuat. Dalam artikel ini, kita akan mempelajari cara membangun bot Telegram Al-Quran yang memungkinkan pengguna mengakses Al-Quran, mencari ayat, mendengarkan bacaan, dan banyak lagi—semua melalui antarmuka Telegram yang familiar.

Dalam era digital, akses ke kitab suci harus semudah mengirim pesan. Bot Telegram Al-Quran yang akan kita bangun ini bertujuan untuk memudahkan umat Muslim mengakses Al-Quran kapan saja dan di mana saja melalui aplikasi Telegram.

Bot ini akan memiliki fitur-fitur berikut:
- Membaca daftar surah dan ayat Al-Quran
- Mencari ayat berdasarkan kata kunci
- Mendengarkan bacaan ayat (audio)
- Membaca tafsir surah
- Mendapatkan ayat acak dan ayat pilihan hari ini
- Melihat jadwal sholat

## Persiapan

Sebelum mulai membangun bot, Anda memerlukan beberapa hal:

1. Akun Telegram - Jika belum memiliki, unduh aplikasi Telegram dan buat akun
2. Bot Telegram - Buat bot melalui BotFather (akan dijelaskan)
3. Server web dengan HTTPS - Telegram membutuhkan HTTPS untuk webhook
4. Dasar pemrograman PHP - Bot ini dibangun dengan PHP

## Langkah 1: Membuat Bot Telegram

1. Buka Telegram dan cari `@BotFather`
2. Mulai chat dan kirim perintah `/newbot`
3. Ikuti instruksi untuk menentukan nama dan username bot
4. Setelah bot dibuat, BotFather akan memberikan token API, yang akan terlihat seperti:

123456789:ABCDefGhIJKlmNoPQRsTUVwxyZ

5. Simpan token ini, karena akan digunakan dalam kode webhook

## Langkah 2: Memahami Struktur Kode

Bot Telegram Al-Quran ini terdiri dari beberapa komponen utama:

1. Webhook Handler - Menerima dan memproses pesan dari Telegram
2. Formatter Respons - Memformat pesan respons untuk Telegram
3. Penanganan Perintah - Logika untuk berbagai perintah bot
4. Integrasi API Al-Quran - Menghubungkan ke API data Al-Quran (Google Sheets)

Mari kita lihat kode inti dari bot ini:


php
// Konfigurasi dasar
date_default_timezone_set('Asia/Jakarta');
$botToken = 'YOUR_TELEGRAM_BOT_TOKEN';
$api_url = "https://script.google.com/macros/s/..."; // URL API Al-Quran

// Dapatkan data webhook dari Telegram
$update = json_decode(file_get_contents('php://input'), true);

// Parsing informasi pesan
$message = isset($update['message']['text']) ? strtolower($update['message']['text']) : '';
$chat_id = isset($update['message']['chat']['id']) ? $update['message']['chat']['id'] : '';

// Logika penanganan perintah
if ($message === '/start') {
 // Penanganan perintah /start
 $respon = $responFormatter->sendMessage($chat_id, "Selamat datang di Al-Quran Bot...");
}
// [Penanganan perintah lainnya]

 

Langkah 3: Kelas Formatter Respons

Salah satu komponen penting adalah kelas ResponTelegramFormatter yang menangani format respons ke API Telegram:


class ResponTelegramFormatter {
    private $botToken;
    
    public function __construct($botToken) {
        $this->botToken = $botToken;
    }
    
    // Metode untuk mengirim pesan teks
    public function sendMessage($chat_id, $text, $reply_to_message_id = null) {
        $url = "https://api.telegram.org/bot" . $this->botToken . "/sendMessage";
        $params = [
            'chat_id' => $chat_id,
            'text' => $text,
            'parse_mode' => 'Markdown'
        ];
        
        if ($reply_to_message_id) {
            $params['reply_to_message_id'] = $reply_to_message_id;
        }
        
        return $this->sendRequest($url, $params);
    }
    
    // Metode lainnya: sendAudio, sendMessageWithKeyboard, dll.
}

 

Langkah 4: Integrasi dengan API Al-Quran

Bot ini menggunakan API Google Sheets untuk mengakses data Al-Quran. Misalnya, untuk mendapatkan daftar surah:


// Menampilkan daftar surah
if ($message === '/surahlist') {
    $url = $api_url . "?action=getAllSurah";
    $response = file_get_contents($url);
    $json = json_decode($response, true);
    
    if ($json['status'] == 'success') {
        $message_text = " *DAFTAR SURAH AL-QURAN* \n\n";
        
        // Kelompokkan surah dalam beberapa bagian
        $total_surah = count($json['data']);
        $surah_per_section = 10;
        $section_count = ceil($total_surah / $surah_per_section);
        
        // Format dan kirim respons
        // ...
    }
}

Langkah 5: Fitur Tombol Inline

Telegram mendukung tombol inline, yang membuat navigasi bot lebih intuitif:

// Handle perintah /menu
if ($message === '/menu') {
    $keyboard = [
        'inline_keyboard' => [
            [
                ['text' => ' Daftar Surah', 'callback_data' => 'surahlist'],
                ['text' => ' Cari Ayat', 'callback_data' => 'search']
            ],
            // Tombol lainnya
        ]
    ];
    
    $respon = $responFormatter->sendMessageWithKeyboard($chat_id, 
        " *MENU AL-QURAN BOT* \n\n" .
        "Silakan pilih menu di bawah ini:",
        $keyboard
    );
}

Langkah 6: Deploying Bot

Setelah kode selesai, Anda perlu men-deploy bot:

  1. Siapkan Server HTTPS:

    • Upload file webhook ke server web Anda
    • Pastikan server mendukung HTTPS dengan sertifikat valid (bukan self-signed)
  2. Konfigurasi Webhook:

    • Akses URL webhook dengan parameter setwebhook:
      https://domain.com/path/telegram_webhook.php?setwebhook
      
    • Atau gunakan API Telegram:
      https://api.telegram.org/bot{TOKEN}/setWebhook?url=https://domain.com/path/telegram_webhook.php
      
  3. Verifikasi Webhook:

    • Akses URL:
      https://domain.com/path/telegram_webhook.php?webhookinfo
      
    • Mulai chat dengan bot Anda dan kirim /start

Langkah 7: Debugging dan Pemecahan Masalah

Bot ini menyertakan beberapa fitur debugging yang berguna:

// Log data yang masuk
file_put_contents('telegram.txt', '[' . date('Y-m-d H:i:s') . "]\n" . json_encode($update) . "\n\n", FILE_APPEND);

// Log respons
if ($respon) {
    file_put_contents('telegram_respon.txt', '[' . date('Y-m-d H:i:s') . "]\n" . $respon . "\n\n", FILE_APPEND);
}

Periksa file log ini jika bot tidak berfungsi seperti yang diharapkan.

Pertimbangan Keamanan

Beberapa tips keamanan untuk bot Anda:

  1. Simpan Token dengan Aman - Jangan bagikan token bot Anda
  2. Validasi Input - Selalu validasi input dari pengguna
  3. Batasi Akses - Pertimbangkan membatasi akses ke bot hanya untuk pengguna tertentu jika diperlukan
  4. Monitor Aktivitas - Pantau log untuk aktivitas mencurigakan

Kesimpulan

Membangun Bot Telegram Al-Quran adalah proyek yang memuaskan dan bermanfaat bagi komunitas Muslim. Dengan menggunakan teknologi modern untuk menyebarkan pengetahuan agama, kita dapat membantu orang mengakses Al-Quran dengan cara yang lebih mudah dan nyaman.

Bot seperti ini juga dapat diadaptasi untuk kitab suci lain atau konten edukatif, menunjukkan fleksibilitas platform Telegram untuk berbagi pengetahuan dan informasi.

Kode lengkap bot dapat ditemukan di GitHub: quran-telegram-bot


Selamat mencoba, dan semoga bot Anda memberikan manfaat bagi banyak orang!