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

Faraid Visualizer

Kalkulator waris Islam yang menelusuri setiap bagian ke sumber rujukannya, membandingkan KHI dan Syafi'i klasik

Tangkapan layar
sumber rujukan di balik setiap aturan
35
contoh soal lolos untuk KHI dan Syafi'i
61
set aturan: KHI dan empat mazhab
5
data warisan yang dikirim keluar perangkat
0
Di halaman ini

Masalahnya

Pembagian warisan menurut hukum Islam (faraid) sering memicu sengketa keluarga di Indonesia. Hanya sedikit orang di luar kalangan santri dan ulama yang bisa menghitungnya sendiri. Kalkulator online yang ada terlalu menyederhanakan, diam-diam memilih satu mazhab, atau hanya mengeluarkan angka tanpa langkah hitungnya. Orang lebih mudah menerima hasil yang alasannya bisa mereka ikuti.

Di bawahnya ada masalah kedua. Kompilasi Hukum Islam (KHI, Inpres No. 1/1991) dan fikih Syafi'i klasik berbeda di beberapa titik yang mengubah hasil. Di antaranya ahli waris pengganti (KHI Pasal 185), ke mana sisa harta pergi kalau tidak ada lagi ahli waris yang berhak, dan pemotongan harta bersama sebelum harta warisan dibagi. Kebanyakan kalkulator mencampuradukkan keduanya.

Yang saya bangun

Setiap bagian menunjuk ke sumbernya

Saya menulis mesin hitungnya sebagai paket Python mandiri tanpa dependensi dari luar. Setiap hasil mencatat ahli waris, bagiannya, aturan yang dipakai, dan sumber aturan itu. Daftar rujukan saya susun sebelum logika apa pun: 35 sumber, termasuk 14 pasal KHI, rujukan kitab klasik, ayat Al-Qur'an, dan hadis. Al-Qur'an dan hadis disimpan sebagai rujukan, tidak pernah sebagai kutipan teks. Aturan tanpa sumber akan gagal di tes dan tidak bisa dirilis.

KHI dan Syafi'i adalah dua aturan terpisah

Saya memodelkan setiap mazhab sebagai aturan tersendiri, dengan pilihan dan rujukannya masing-masing. Keluarga yang sama bisa dihitung dengan keduanya secara berdampingan, jadi pengguna melihat persis di mana hasilnya berbeda. Misalnya, cucu dari anak yang meninggal lebih dulu mendapat warisan menurut KHI, tapi tidak menurut Syafi'i klasik. Aturan Hanafi, Maliki, dan Hanbali juga tersedia, dengan label Beta.

Kalau kasusnya belum tercakup, mesin mengatakannya

Beberapa susunan keluarga punya sub-kasus yang rumit, seperti sebagian kasus kakek bersama saudara, yang belum dicakup mesin. Di situ mesin berhenti dan menampilkan "susunan ini belum didukung". Mesin tidak pernah menebak dengan kasus yang paling mirip. Halaman menampilkannya sebagai jawaban biasa, dan situs ini menyatakan bahwa hasilnya bersifat edukatif, bukan putusan hukum. Pembulatan juga ditampilkan. Jumlah bagian bisa selisih satu sen dari harta warisan, dan memindahkan satu sen itu adalah keputusan fikih, jadi selisihnya ditunjukkan.

Mesin Python yang sama berjalan di browser

Versi pertamanya berupa situs Django dengan database. Data warisan termasuk data paling pribadi, jadi saya pindah ke situs statis yang tidak pernah menerimanya. Browser mengunduh runtime Python dan menjalankan paket yang sama dengan yang dipakai server. Tidak ada data yang keluar dari perangkat. Sebuah kasus bisa dibagikan karena seluruh isinya disimpan di tautan. Pemuatan pertama makan waktu sekitar 20 detik, jadi formulir sudah bisa diisi sementara mesin dimuat di latar. Sebuah pembaruan belakangan menambahkan pemilih pohon keluarga terpandu untuk mode Personal, menggambar hubungan di sekitar orang yang meninggal, bukan mengisi formulir, tapi mengirim data yang persis sama ke mesin.

Tes menentukan boleh rilis atau tidak

Proses deploy menjalankan bank validasi dan tes API. Proses itu juga memastikan tidak ada panggilan model AI di kode perhitungan, dan bahwa situs hasil build memuat mesinnya. Satu kegagalan saja menahan rilis. Setiap aturan baru masuk bersama sumber dan tesnya dalam perubahan yang sama.

Hasilnya

Faraid Visualizer sudah live dan gratis di GitHub Pages, tanpa backend dan tanpa akun. Aplikasi ini menunjukkan siapa yang terhalang dan oleh siapa, setiap bagian pasti, bagaimana sisa harta dibagi, dan setiap rujukannya, dalam bentuk teks dan diagram. KHI dan Syafi'i klasik lolos semua 61 contoh soal di bank validasi, ditambah satu set kasus terpisah tempat kedua mazhab berbeda pendapat. Mode Profesional mengekspor PDF lengkap dengan jejak rujukannya, dalam bahasa Indonesia atau Inggris, untuk notaris dan staf pengadilan agama. Saya membangunnya sendiri dalam dua tahap: mesin, perpindahan ke situs statis, dan ekspor PDF pada Juli hingga awal Agustus 2026. Pembaruan berikutnya pada September menambahkan pemilih pohon keluarga terpandu dan mendesain ulang tampilan derivasinya.

Di balik layarDetail teknis untuk engineer
  • faraid_engine berisi sekitar 2.400 baris Python 3.12 murni dengan Fraction dan Decimal dari stdlib, tanpa import Django dan tanpa dependensi pihak ketiga. Setiap fungsi mengembalikan {heir, share, rule_applied, source_id}.
  • Pipeline delapan tahap mencakup 17 jenis hubungan ahli waris di lima objek RulesetConfig. Pipeline ini menangani hajb, furud, asabah (sisa, dibagi 2:1), 'aul, dan radd.
  • sources.py adalah commit mesin yang pertama: 14 pasal KHI, 11 rujukan klasik, 3 penunjuk ayat, 3 hadis beserta perawinya, 2 komentar yurisprudensi, 2 ijmak. source_id yang tidak dikenal langsung memunculkan error.
  • Kasus yang tidak didukung memunculkan UnsupportedConfiguration. Al-jadd wa al-ikhwah memakai muqasamah Zaid dan tetap berhenti pada sub-kasus akdariyya dan mu'adda.
  • faraid_web adalah lapisan tanpa Django untuk validasi, label dwibahasa, serialisasi, dan tata letak PDF, sehingga API hanya menjadi jalur transport. Pyodide (di-hosting sendiri, tanpa CDN) menjalankan paket yang sama di browser, dan kedua deployment diuji menghasilkan keluaran yang identik per byte. Port ke TypeScript ditolak karena seluruh bank tes harus dibuktikan ulang dalam bahasa kedua.
  • Hasil pengukuran: runtime Python sekitar 9 MB, sekitar 20 detik sampai mesin siap saat cache kosong, sekitar 0,8 detik saat cache hangat, RAM 50–100 MB. Renderer PDF reportlab (sekitar 2,9 MB) hanya dimuat saat ekspor.
  • State kasus disimpan di URL, dan setiap nilai yang dibaca dari URL divalidasi ulang sebagai input yang berpotensi berbahaya. Batas MAX_COUNT=50 per ahli waris mencegah payload jahat membuat aritmetika KPK meledak. Input rusak mengembalikan 400; kasus yang tidak didukung mengembalikan 422.
  • Urutan CI: bank validasi, tes kontrak API, grep kedua paket untuk import LLM atau pemanggilan model, pengecekan bahwa situs hasil build memuat bundle mesin, lalu publish.
  • Hitung ulang live berjalan dengan debounce 250 ms dan membuang respons yang datang tidak berurutan. Di mode Personal, nominal rupiah menjadi jawaban utama; mode Profesional tetap mengutamakan pecahan, karena itulah yang dicocokkan dengan pokok masalah.
  • Tiga route statis: /, /pelajari/ (penjelasan berdiri sendiri tentang cara kerja perhitungannya) dan /references/ (daftar rujukan dan daftar celah cakupan).
  • Tampilan derivasinya, EstateFlow, menggambar harta warisan sebagai pita proporsional yang terbelah di setiap tahap pipeline, dengan rujukan tampil langsung di dalamnya; ini menggantikan diagram simpul-tepi React Flow sebelumnya, yang kini bukan lagi dependensi frontend. Komponen ShareCard terpisah menggambar sebuah hasil, termasuk siapa yang tidak mendapat bagian dan kenapa, ke sebuah kanvas dengan palet terang tetap untuk dibagikan ke aplikasi chat.
  • Styling memakai sistem token CSS custom-property tulisan tangan tanpa UI kit atau pustaka ikon; sebuah desain ulang belakangan membuka kembali palet dan jenis huruf sekali (warna Nila/Kunyit, Newsreader dan Noto Naskh Arabic) lalu membekukannya lagi.
  • Sekitar 308 tes: 291 tanpa Django plus 17 tes kontrak API. Bank validasi berisi 61 contoh soal (batas minimum di PRD 50), 10 kasus beda KHI dan Syafi'i, 16 kasus mazhab Beta, dan 26 kasus validator. 6 endpoint API, 2 model.
  • 131 commit oleh satu orang, 4 Juli sampai 28 September 2026, dengan jeda panjang antara pertengahan Agustus dan akhir September sebelum tahap terakhir menambahkan pemilih pohon keluarga dan desain ulang tampilan derivasi.

Tangkapan layar

Beranda
Isi Data Keluarga
Isi Data Harta
Result
Pelajari
Rujukan

Sedang merekrut, atau membangun hal serupa?

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