Langsung ke konten
AFM Studio
  • Halaman

    AFM Studio
  • Karya
  • Lab
  • Tentang
  • CV
  • Kontak
  • Proyek

    AksaraPerpustakaan pengetahuan Otorita IKN yang bisa dicari, dengan server memeriksa akses setiap pembaca di tiga tingkat
  • Daily TaqwaSistem presensi salat anti-manipulasi untuk ~2.000 pegawai OIKN di Masjid Negara IKN
  • Lantara v2Mesin perizinan Otorita IKN tempat administrator menambah jenis izin baru dari layar, tanpa developer
  • eKiosk IKNDua ruang kendali untuk Nusantara: konten kios dan pelacakan bus live dengan estimasi kedatangan yang menilai dirinya sendiri
  • E-Monev IKNPlatform pemantauan pembangunan Nusantara selama 23 tahun, melacak progres triwulan setiap unit terhadap 24 KPI
  • JDIH OIKNPortal dokumen hukum publik OIKN, dengan alur penerbitan terkendali dan ringkasan AI yang tidak pernah keluar dari server
  • Jejak PenanamanAplikasi absen acara penanaman pohon IKN yang membuktikan peserta hadir di lokasi lewat selfie ber-geofence
  • Dashboard SAKTIPipeline malam dan dashboard yang menggantikan unduhan anggaran manual di keenam satker OIKN
  • DoseRxKalkulator dosis untuk 127 obat yang membulatkan dosis ke tablet dan sirup yang dijual apotek Indonesia
  • CubiqPelatih speedcubing dengan timer setara kompetisi dan solver buatan sendiri untuk 8 puzzle utama
  • ScimotionPerpustakaan sains interaktif berisi 86 artikel, masing-masing dijelaskan bersama animasi yang bisa dikendalikan pembaca
  • WA Daily Scrum BotBot WhatsApp yang menagih laporan standup tim 14 orang dan menandai tugas yang macet berhari-hari

↑ ↓ untuk berpindah · Enter untuk membuka · Esc untuk menutup

Quranlytics

Pembaca Al-Qur'an tempat siapa pun bisa mengecek jumlah kata dan klaim angka di 6.236 ayat

Tangkapan layar
ayat dari seluruh 114 surah
6.236
kata yang terhubung ke akar Arabnya
~50.000
akar kata untuk dijelajahi
~1.650
status klaim: terverifikasi, diperdebatkan, terbantahkan
3
Di halaman ini

Masalahnya

Aplikasi Al-Qur'an seperti Quran.com, Tanzil, dan eQuran dibuat untuk membaca. Tipografinya rapi, ada audio, ada terjemahan. Tapi tidak satu pun yang membiarkan pembaca biasa menelusuri teksnya sendiri. Apakah kata "hari" muncul 365 kali? Ayat mana saja yang menyebut rahmat dan azab sekaligus? Untuk menjawabnya, orang harus membuka konkordansi secara manual.

Ada dua kelompok yang merasakan celah ini. Pembaca sehari-hari dan pelajar sering menemukan klaim "mukjizat" angka atau bahasa di internet, tanpa cara untuk mengeceknya. Kreator konten dakwah ingin mengutip pola tertentu, seperti jumlah kata atau pengulangan kalimat, tanpa perlu alat riset akademik. Quranlytics menaruh pembaca dan lapisan analisis di atas data yang sama, jadi menjelajah tidak pernah berarti keluar dari aplikasi.

Yang saya bangun

Semua hitungan saya siapkan di awal

Menghitung satu akar kata di 6.236 ayat dan sekitar 77 ribu kata terlalu lambat kalau dilakukan setiap kali diklik. Saya menghitung frekuensi kata, akar, dan frasa lebih dulu lalu menyimpannya, dengan cache di depannya. Saat pembaca membuka sebuah klaim, angkanya sudah tersedia. Interaksi utamanya, klik klaim lalu lihat hasil pengecekannya, tetap instan.

Dua sumber, digabung kata demi kata

Data Quran.com berisi teks ayat dan terjemahan, tapi tanpa akar kata. Quranic Arabic Corpus punya akar katanya, dengan kunci posisi setiap kata. Saya mengambil keduanya dan menggabungkannya kata demi kata berdasarkan posisi itu. Sekitar 50 ribu dari 77 ribu kata punya akar tiga huruf, tersebar di kira-kira 1.650 akar yang berbeda. Sisanya partikel dan nama diri. Parser awal saya mengambil akar dari awalan dan akhiran kata, padahal seharusnya dari kata dasarnya. Saya memperbaikinya dan menambah tes begitu data yang salah itu ketahuan.

Pencarian berjalan dengan model di dalam aplikasi

Rencana awalnya memakai layanan AI pihak ketiga untuk pencarian semantik. Saya menjalankan model multibahasa terbuka di dalam container aplikasi sendiri. Model itu membuat embedding setiap ayat dari terjemahan Inggris dan Indonesianya, mencari ayat yang berkaitan, dan mengelompokkannya ke dalam tema. Teksnya tidak pernah berubah, jadi semua ini cukup dihitung sekali. Tidak ada biaya per pencarian, dan fiturnya jalan tanpa internet.

Pengecek klaim memberi satu dari tiga jawaban

Klaim angka tentang Al-Qur'an banyak beredar di internet seolah sudah pasti benar. Pengecek memberi setiap klaim satu status: Terverifikasi, Diperdebatkan, atau Terbantahkan. Ini mengikuti batas lingkup proyek. Aplikasi menampilkan datanya dan tidak menyimpulkan apa yang dibuktikan sebuah pola. Kesimpulannya diserahkan kepada pembaca.

Semua alat bisa dipakai tanpa akun

Membaca dan semua alat analisis terbuka untuk umum. Login hanya menambahkan bookmark, catatan, progres bacaan, dan streak. Akun tidak pernah membuka fitur inti.

Hasilnya

Saya membangun Quranlytics sendirian dalam 14 hari, dari repositori kosong pada 24 Juni sampai 7 Juli 2026. Isinya mencakup seluruh 114 surah dan 6.236 ayat. Sekitar separuh pekerjaannya berupa fitur di luar rencana awal. Di antaranya pewarnaan tajwid, mode hafalan, murattal berkelanjutan dengan pilihan qari, dan perencanaan khatam. Saya juga menambahkan penampil struktur kiastik yang mewarnai pasangan ayat yang saling bercermin, penjelajah Asmaul Husna dan 25 nabi yang disebut namanya, serta lapisan komunitas untuk berbagi temuan. Kodenya terbuka di GitHub dan pipeline deploy-nya sudah siap. Aplikasinya belum live di alamat publik.

Di balik layarDetail teknis untuk engineer
  • Backend: Django 5.0 dan DRF dengan SimpleJWT, terbagi di 6 app (quran, analytics, semantic, users, community, common).
  • Frontend: Next.js 14.2 App Router, React 18.3, TypeScript 5.5 mode strict, dan Tailwind CSS 3.4. Satu-satunya dependensi di luar inti adalah html-to-image untuk ekspor PNG. Grafik dan komponen UI dibuat sendiri.
  • Management command compute_stats dan build_frequency_cache mengisi tabel PostgreSQL. Redis menyimpan cache hasilnya selama 24 jam.
  • Proses impor menggabungkan data Quran.com dan QAC 1:1 pada surah:verse:word, membatasi laju sesuai batas API sumber, dan mencoba ulang saat mendapat HTTP 429.
  • Perbaikan morfologi mengambil lemma, akar, dan kelas kata dari stem, tidak dari segmen klitik.
  • Quran.com mengganti ID terjemahan Sahih International dari 131 ke 20 dan berhenti mengirim verse_key, jadi terjemahan kini dipetakan berdasarkan posisi.
  • Normalisasi pencarian Arab disatukan sekali, lalu diperbaiki tiga kali lagi: ال di awal kata, kata berawalan ال di pencarian kemunculan bersama, dan lemma polos di contoh.
  • Lapisan semantik: sentence-transformers di torch versi CPU, vektor di pgvector, dan KMeans untuk klaster tema. Dependensi ML dipisah di ml.txt, jadi aplikasi dasar dan CI bisa jalan tanpanya.
  • Alat lain: heatmap frekuensi kata di 114 surah, penjelajah akar dengan pohon morfologi, pencarian kemunculan bersama, pencari hapax legomena, simetri pasangan surah, grafik panjang ayat, dan penjelajah pengulangan kalimat.
  • GitHub Actions menjalankan tes di setiap push dan menerbitkan image ke GHCR. Sentry aktif di produksi.
  • Sekitar 35 endpoint REST dan 20 route utama. Sekitar 6.900 baris Python dan 9.900 baris TypeScript, 121 commit dengan 26 merge commit dari sekitar 28 branch fitur.

Tangkapan layar

Beranda
Quran Read Mode
Quran Tafseer
Analysis Word Frequency
Analysis Root Explorer
Analysis Word Co-occurence

Sedang merekrut, atau membangun hal serupa?

Saya terbuka untuk posisi full-time dan proyek freelance tertentu.