Dalam era digital ini, teknologi telah membuka banyak cara baru untuk mengakses dan mempelajari Al-Quran. Salah satu cara yang efektif adalah melalui platform pesan instan seperti WhatsApp yang digunakan oleh miliaran orang di seluruh dunia. Dalam artikel ini, kita akan membahas cara membuat bot WhatsApp untuk Al-Quran menggunakan PHP dan API Al-Quran yang tersedia.
Quran WhatsApp Bot adalah webhook sederhana yang memungkinkan pengguna untuk mengakses berbagai fitur Al-Quran langsung melalui WhatsApp. Pengguna dapat mengirim perintah tertentu dan bot akan merespons dengan informasi yang diminta, seperti ayat tertentu, tafsir, atau bahkan audio tilawah.
Bot Al-Quran yang kita buat menyediakan berbagai fitur yang memudahkan pengguna untuk berinteraksi dengan Al-Quran:
Untuk membuat Quran WhatsApp Bot, kita menggunakan:
Sebelum mulai, pastikan Anda memiliki:
Pertama, kita perlu membuat file PHP yang akan berfungsi sebagai webhook untuk menerima dan merespons pesan dari WhatsApp:
<?php // Atur zona waktu ke Asia/Jakarta (GMT+7) date_default_timezone_set('Asia/Jakarta'); error_reporting(E_ALL); ini_set('display_errors', 1); ini_set('error_log', 'error.log'); require_once 'ResponWebhookFormatter.php'; header('content-type: application/json; charset=utf-8'); $data = json_decode(file_get_contents('php://input'), true); if (!$data) die('URL ini untuk webhook.'); file_put_contents('whatsapp.txt', '[' . date('Y-m-d H:i:s') . "]\n" . json_encode($data) . "\n\n", FILE_APPEND); $message = strtolower($data['message']); // pesan masuk dari whatsapp $from = strtolower($data['from']); // nomor pengirim $bufferimage = isset($data['bufferImage']) ? $data['bufferImage'] : null; // buffer gambar jika pesan berisi gambar $respon = false; $responFormatter = new ResponWebhookFormater(); // URL API Al-Quran $api_url = "https://script.google.com/macros/s/AKfycbyDhS4WMtLO2sSvvKImE6tq4gRcazMPGPkQDzjmIu2xDAeiVnD3mdsRfAetYFvi2RQUjw/exec";
Selanjutnya, kita tambahkan fitur bantuan yang akan menampilkan daftar perintah yang tersedia:
// Bantuan/Help if ($message == 'quran' || $message == 'alquran' || $message == 'help quran') { $respon = $responFormatter->bold("PANDUAN AL-QURAN BOT ") ->line("") ->bold("DAFTAR PERINTAH:") ->line("1. *surah list* - Menampilkan daftar semua surah") ->line("2. *surah {nomor}* - Menampilkan info surah dan ayat pertama (contoh: surah 1)") ->line("3. *ayat {surah}:{ayat}* - Menampilkan ayat tertentu (contoh: ayat 1:1)") ->line("4. *juz {nomor}* - Menampilkan ayat pertama dari juz tertentu") ->line("5. *cari {kata kunci}* - Mencari ayat berdasarkan kata kunci") ->line("6. *audio {surah}:{ayat}* - Mendapatkan audio ayat tertentu") ->line("7. *tafsir {surah}* - Menampilkan tafsir surah") ->line("8. *random* - Menampilkan ayat acak dari Al-Quran") ->line("9. *random surah* - Menampilkan surah acak dari Al-Quran") ->line("") ->line("Silakan gunakan perintah di atas untuk menjelajahi Al-Quran ") ->responAsText(); }
Fitur ini menampilkan daftar semua surah dalam Al-Quran:
// Menampilkan daftar surah if ($message == 'surah list' || $message == 'daftar surah') { $url = $api_url . "?action=getAllSurah"; $response = file_get_contents($url); $json = json_decode($response, true); if ($json['status'] == 'success') { $responFormatter->bold(" DAFTAR SURAH AL-QURAN ")->line(""); // Kelompokkan surah dalam beberapa bagian untuk memudahkan pembacaan $total_surah = count($json['data']); $surah_per_section = 10; $section_count = ceil($total_surah / $surah_per_section); for ($i = 0; $i < $section_count; $i++) { $section_title = "Surah " . (($i * $surah_per_section) + 1) . " - " . min((($i + 1) * $surah_per_section), $total_surah); // Tambahkan surah ke respons teks for ($j = ($i * $surah_per_section); $j < min((($i + 1) * $surah_per_section), $total_surah); $j++) { $surah = $json['data'][$j]; $responFormatter->line($surah['number'] . ". " . $surah['name_id'] . " (" . $surah['name_short'] . ") - " . $surah['translation_id'] . ' - ' . $surah['number_of_verses'] . ' ayat'); } // Tambahkan baris kosong antara setiap kelompok if ($i < $section_count - 1) { $responFormatter->line(""); } } $responFormatter->line("")->line("Ketik 'surah {nomor}' untuk melihat isi surah."); $respon = $responFormatter->responAsText(); } else { $respon = $responFormatter->line(" Terjadi kesalahan saat mengambil daftar surah.")->responAsText(); } }
Fitur ini menampilkan informasi detail tentang suatu surah:
// Menampilkan surah berdasarkan nomor if (preg_match('/^surah (\d+)$/', $message, $matches)) { $surah_number = $matches[1]; $url = $api_url . "?action=getSurah&number=" . $surah_number; $response = file_get_contents($url); $json = json_decode($response, true); if ($json['status'] == 'success' && isset($json['data']['surah'])) { $surah = $json['data']['surah']; $ayat_pertama = $json['data']['ayat'][0]; $responFormatter->bold(" " . $surah['name_id'] . " (" . $surah['name_short'] . ")") ->line($surah['name_long']) ->line("") ->bold("Informasi Surah:") ->line("Nomor: " . $surah['number']) ->line("Arti: " . $surah['translation_id']) ->line("Jumlah Ayat: " . $surah['number_of_verses']) ->line("Diturunkan di: " . $surah['revelation_id']) ->line("") ->bold("Ayat Pertama:") ->line($ayat_pertama['Arab']) ->line("Latin: " . $ayat_pertama['Latin']) ->line("Arti: " . $ayat_pertama['Text']) ->line("") ->line("Ketik 'ayat " . $surah_number . ":{nomor ayat}' untuk membaca ayat tertentu") ->line("Ketik 'tafsir " . $surah_number . "' untuk membaca tafsir surah") ->line("Ketik 'audio " . $surah_number . ":1' untuk mendengarkan audio ayat pertama"); $respon = $responFormatter->responAsText(); } else { $respon = $responFormatter->line(" Surah dengan nomor " . $surah_number . " tidak ditemukan.") ->line("Ketik 'surah list' untuk melihat daftar surah yang tersedia.") ->responAsText(); } }
Fitur ini memungkinkan pengguna untuk mendengarkan audio ayat tertentu:
// Mendapatkan audio ayat if (preg_match('/^audio (\d+):(\d+)$/', $message, $matches)) { $surah_number = $matches[1]; $ayat_number = $matches[2]; // Dapatkan info surah dulu $url_surah = $api_url . "?action=getSurah&number=" . $surah_number; $response_surah = file_get_contents($url_surah); $json_surah = json_decode($response_surah, true); if ($json_surah['status'] == 'success' && isset($json_surah['data']['surah'])) { $surah_info = $json_surah['data']['surah']; // Kemudian dapatkan audio ayat $url = $api_url . "?action=getAudio&surah=" . $surah_number . "&ayat=" . $ayat_number . "&qari=default"; $response = file_get_contents($url); $json = json_decode($response, true); if ($json['status'] == 'success' && isset($json['audio_url'])) { $ayat_info = $json['ayat_info']; $audio_url = $json['audio_url']; $caption = " *AUDIO AL-QURAN*\n\n"; $caption .= " *Surah " . $surah_info['name_id'] . " (" . $surah_info['name_short'] . ")*\n"; $caption .= "Ayat " . $ayat_number . " dari " . $surah_info['number_of_verses'] . " ayat\n\n"; $caption .= $ayat_info['Arab'] . "\n\n"; $caption .= "*Latin:* " . $ayat_info['Latin'] . "\n\n"; $caption .= "*Arti:* " . $ayat_info['Text'] . "\n\n"; $caption .= "Ketik 'ayat " . $surah_number . ":" . ($ayat_number + 1) . "' untuk ayat berikutnya"; // Kirim audio dengan caption $respon = $responFormatter->line($caption)->responAsMedia($audio_url, 'audio'); } else { $respon = $responFormatter->line(" Audio tidak ditemukan.") ->line("Periksa kembali nomor surah dan ayat.") ->responAsText(); } } else { $respon = $responFormatter->line(" Surah dengan nomor " . $surah_number . " tidak ditemukan.") ->responAsText(); } }
Fitur ini memungkinkan pengguna untuk mencari ayat berdasarkan kata kunci:
// Mencari ayat berdasarkan kata kunci if (preg_match('/^cari (.+)$/', $message, $matches)) { $keyword = $matches[1]; $url = $api_url . "?action=search&q=" . urlencode($keyword); $response = file_get_contents($url); $json = json_decode($response, true); if ($json['status'] == 'success') { $total_hasil = $json['count']; $responFormatter->bold(" HASIL PENCARIAN: '" . $keyword . "'") ->line("Ditemukan " . $total_hasil . " ayat") ->line(""); if ($total_hasil > 0) { // Tampilkan 3 hasil pertama $max_results = min(3, $total_hasil); for ($i = 0; $i < $max_results; $i++) { $ayat = $json['data'][$i]; $surah_name = getSurahName($ayat['Surah']); $responFormatter->bold("Q.S. " . $surah_name . " [" . $ayat['Surah'] . ":" . $ayat['Ayah'] . "]") ->line($ayat['Arab']) ->line("") ->line($ayat['Text']) ->line("") ->line("Ketik 'ayat " . $ayat['Surah'] . ":" . $ayat['Ayah'] . "' untuk detail lengkap") ->line(""); } if ($total_hasil > 3) { $responFormatter->bold("... dan " . ($total_hasil - 3) . " ayat lainnya") ->line("") ->italic("Kata kunci '" . $keyword . "' juga ditemukan dalam ayat-ayat lain. Silakan perjelas pencarian Anda untuk hasil yang lebih spesifik."); } } $respon = $responFormatter->responAsText(); } else { $respon = $responFormatter->line(" Tidak dapat melakukan pencarian.") ->line("Silakan coba dengan kata kunci lain.") ->responAsText(); } }
Setelah mengimplementasikan semua fitur, kita memiliki bot Al-Quran yang fungsional di WhatsApp. Pengguna dapat berinteraksi dengan bot dengan mengirimkan perintah seperti:
quran
- Untuk melihat daftar perintahsurah 1
- Untuk melihat informasi tentang Surah Al-Fatihahayat 2:255
- Untuk membaca Ayat Kursicari rahmat
- Untuk mencari ayat yang mengandung kata "rahmat"audio 1:1
- Untuk mendengarkan audio Surah Al-Fatihah ayat 1Dengan membuat Quran WhatsApp Bot, kita telah membuka akses mudah ke Al-Quran melalui platform pesan yang sangat populer. Bot ini menawarkan cara interaktif dan nyaman untuk membaca, mencari, dan mendengarkan Al-Quran kapan saja dan di mana saja.
Bot ini masih bisa dikembangkan lebih lanjut dengan menambahkan fitur-fitur seperti jadwal sholat, doa-doa harian, dan pembelajaran tajwid. Namun, sebagai langkah awal, bot ini sudah memberikan nilai yang signifikan bagi pengguna yang ingin mempelajari dan mengakses Al-Quran dengan mudah.
Mari kita manfaatkan teknologi untuk memudahkan akses ke pengetahuan agama dan meningkatkan pemahaman kita tentang Al-Quran!
Mas Andri Wiratmono adalah seorang pengembang web dan penggemar teknologi yang berfokus pada pengembangan aplikasi Islam digital. Dengan pengalaman lebih dari 10] tahun dalam pengembangan web, Andri Wiratmono berkomitmen untuk membuat teknologi yang bermanfaat bagi masyarakat Muslim.
Catatan: Artikel ini adalah panduan teknis untuk membuat bot Al-Quran di WhatsApp. Untuk penggunaan dalam konteks pendidikan, disarankan untuk selalu menghormati nilai-nilai dan ajaran Islam. Semua terjemahan dan tafsir Al-Quran dalam bot ini berasal dari sumber yang dapat dipercaya.