Di era digital seperti sekarang, kebutuhan akan akses Al-Quran dalam format digital semakin meningkat. Banyak pengembang Muslim yang ingin membangun aplikasi atau website Al-Quran, namun seringkali terkendala dengan biaya infrastruktur server dan database. Artikel ini akan membahas bagaimana membangun API Al-Quran yang andal menggunakan Google Apps Script dan Google Spreadsheet sebagai database, tanpa memerlukan biaya server yang mahal.
Google Apps Script menawarkan beberapa keuntungan yang signifikan untuk proyek semacam ini:
Tanpa Biaya Server: Google Apps Script berjalan di infrastruktur Google, sehingga Anda tidak perlu mengeluarkan biaya untuk server.
Integrasi dengan Google Spreadsheet: Memungkinkan penggunaan spreadsheet sebagai database yang mudah dikelola.
Kuota yang Mencukupi: Untuk aplikasi skala kecil hingga menengah, kuota Google Apps Script sudah lebih dari cukup.
Kemudahan Pengelolaan: Data dapat diperbarui langsung melalui antarmuka spreadsheet yang familiar.
API ini menggunakan dua sheet utama dalam Google Spreadsheet:
surahQuran
Sheet ini berisi informasi tentang setiap surah dalam Al-Quran, dengan kolom utama:
ayatQuran
Sheet ini berisi seluruh ayat Al-Quran dengan kolom:
API yang dibangun menyediakan beberapa endpoint utama:
?action=getAllSurah
Endpoint ini mengembalikan daftar lengkap 114 surah dalam Al-Quran beserta metadata terkait. Ini berguna untuk membangun daftar navigasi di aplikasi Al-Quran.
?action=getSurah&number=1
Endpoint ini mengembalikan informasi lengkap tentang surah tertentu, termasuk semua ayat di dalamnya. Parameter number
menentukan nomor surah yang diminta.
?action=getAyat&surah=1&ayat=1
Endpoint ini mengembalikan satu ayat spesifik berdasarkan nomor surah dan ayat.
?action=search&q=keyword
Endpoint ini memungkinkan pencarian ayat berdasarkan kata kunci, yang bisa berupa teks Arab, latin, atau terjemahan.
?action=getJuz&number=1
Endpoint ini mengembalikan semua ayat dalam juz tertentu, berguna untuk aplikasi yang mengorganisasi Al-Quran berdasarkan juz.
?action=getPage&number=1
Endpoint ini mengembalikan semua ayat dalam halaman mushaf tertentu, menyesuaikan dengan format halaman mushaf standar.
?action=getAudio&surah=1&ayat=1&qari=default
Endpoint ini mengembalikan URL audio untuk ayat tertentu, dengan opsi memilih qari.
Kode Google Apps Script untuk API ini diorganisasi dengan beberapa fungsi utama:
doGet(): Fungsi utama yang menangani permintaan HTTP GET dan merutekan ke fungsi yang sesuai.
Fungsi Endpoint: Satu fungsi untuk setiap endpoint API (getAllSurah, getSurah, getAyat, dll.).
Fungsi Utilitas: Fungsi pendukung seperti caching, parsing data, dll.
Salah satu tantangan dalam menggunakan Google Spreadsheet sebagai database adalah performa. Untuk mengatasi hal ini, API mengimplementasikan sistem caching yang menyimpan hasil query selama 6 jam:
function getCachedSheet(sheetName) {
const cache = CacheService.getScriptCache();
const cacheKey = `sheet_${sheetName}`;
const cachedData = cache.get(cacheKey);
if (cachedData !== null) {
return JSON.parse(cachedData);
}
// Query data jika tidak ada di cache
const spreadsheet = SpreadsheetApp.openById(SPREADSHEET_ID);
const sheet = spreadsheet.getSheetByName(sheetName);
const data = sheet.getDataRange().getValues();
// Simpan ke cache selama 6 jam
cache.put(cacheKey, JSON.stringify(data), 21600);
return data;
}
API juga dilengkapi dengan sistem pelacakan penggunaan sederhana yang menyimpan data tentang endpoint mana yang paling sering digunakan:
function trackAnalytics(endpoint, params = {}) {
try {
// Dapatkan tanggal saat ini dalam format YYYY-MM-DD
const today = new Date();
const dateStr = Utilities.formatDate(today, 'GMT', 'yyyy-MM-dd');
// Kunci untuk menyimpan data analytics harian
const analyticsKey = `analytics_${dateStr}`;
// Dapatkan data analytics yang sudah ada, atau buat objek baru
let analyticsData = {};
const existingData = PROPERTY_STORE.getProperty(analyticsKey);
if (existingData) {
analyticsData = JSON.parse(existingData);
}
// Tambahkan hit untuk endpoint
if (!analyticsData[endpoint]) {
analyticsData[endpoint] = { count: 0, params: {} };
}
analyticsData[endpoint].count++;
// Simpan data kembali ke property store
PROPERTY_STORE.setProperty(analyticsKey, JSON.stringify(analyticsData));
} catch (error) {
console.error('Error tracking analytics:', error);
}
}
Berikut adalah langkah-langkah untuk men-deploy API Al-Quran dengan Google Apps Script:
Siapkan Google Spreadsheet:
surahQuran
dan ayatQuran
Buat Google Apps Script:
SPREADSHEET_ID
dengan ID spreadsheet AndaDeploy sebagai Web App:
Gunakan URL Web App:
API ini dapat digunakan untuk berbagai jenis aplikasi, seperti:
Website Al-Quran: Membuat website untuk membaca Al-Quran dengan terjemahan dan audio.
Aplikasi Mobile: Mengintegrasikan API ke dalam aplikasi mobile untuk akses Al-Quran offline.
Bot Telegram/WhatsApp: Membuat bot yang mengirimkan ayat Al-Quran berdasarkan permintaan.
Widget untuk Website/Blog: Menampilkan ayat Al-Quran random di website.
Aplikasi Pembelajaran: Membuat aplikasi untuk belajar membaca atau menghafal Al-Quran.
Meskipun menawarkan banyak keuntungan, pendekatan ini juga memiliki beberapa batasan:
Kuota API: Google Apps Script memiliki batasan jumlah eksekusi harian. Untuk aplikasi dengan traffic tinggi, ini bisa menjadi masalah.
Solusi: Implementasikan caching di sisi client dan kurangi frekuensi permintaan.
Kecepatan: Akses ke Google Spreadsheet bisa lebih lambat dibandingkan database tradisional.
Solusi: Gunakan caching agresif dan optimalkan struktur data.
Ukuran Data: Google Spreadsheet memiliki batasan pada jumlah baris dan kolom.
Solusi: Untuk data yang sangat besar, pertimbangkan untuk memecah data ke beberapa spreadsheet.
Membangun API Al-Quran dengan Google Apps Script dan Google Spreadsheet menawarkan solusi yang terjangkau dan mudah dikelola untuk pengembang individu atau organisasi kecil. Meskipun memiliki beberapa batasan, pendekatan ini sangat cocok untuk banyak kasus penggunaan dan dapat menjadi alternatif yang baik untuk solusi berbasis server tradisional.
Yang terpenting, proyek semacam ini memungkinkan lebih banyak Muslim untuk berkontribusi dalam membuat Al-Quran lebih mudah diakses dalam format digital, sehingga lebih banyak orang dapat membaca dan mempelajari kitab suci ini di era teknologi.
Kode sumber lengkap untuk API ini tersedia di GITHUB, dan Anda dipersilakan untuk menggunakannya, memodifikasinya, atau berkontribusi untuk pengembangannya lebih lanjut.
Artikel ini ditulis sebagai panduan teknis dan juga inspirasi bagi pengembang Muslim yang ingin berkontribusi dalam menyebarkan Al-Quran melalui teknologi.