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

Lantara v2

Mesin perizinan Otorita IKN tempat administrator menambah jenis izin baru dari layar, tanpa developer

Tangkapan layar
sektor perizinan yang diatur
31
kode usaha KBLI dimodelkan
~2.200
tipe isian, tanpa kode frontend per izin
12
modul: izin online dan antrean tatap muka
2
Di halaman ini

Masalahnya

Otorita IKN menerbitkan izin di 31 sektor yang diatur, mulai dari kesehatan dan pendidikan sampai lingkungan hidup. Di kebanyakan sistem pemerintah, setiap jenis izin di-hardcode: alur, formulir, dan daftar dokumennya ditulis langsung oleh developer. Setiap kali regulasi berubah, kodenya harus diubah dan aplikasinya dirilis ulang. Di kota yang masih dibangun, regulasi berubah terus.

Ada tiga kelompok pengguna. Warga dan pelaku usaha mengajukan izin, staf pemerintah memeriksanya, dan administrator instansi menetapkan aturannya. Aturan itu datang dari undang-undang dan keputusan menteri, bukan dari engineer. Jadi kebutuhan utamanya mudah dirumuskan: administrator tanpa latar belakang teknis harus bisa membuat jenis izin baru, lengkap dengan alur, formulir, dan daftar dokumennya, cukup dari layar.

Yang saya bangun

Setiap jenis izin adalah data

Saya memodelkan izin sebagai konfigurasi: sektor, jenis izin, tahapan alur, isian formulir, dan persyaratan dokumen. Menambah jenis izin sama dengan mengisi data. Administrator bisa menyusun izin kesehatan enam tahap dengan dua belas dokumen wajib dan formulir khusus, tanpa ada yang menyentuh kode.

Saat seseorang mengajukan izin, sistem menyimpan salinan formulir persis seperti saat itu. Kalau administrator mengubah formulirnya kemudian, pengajuan yang sedang diperiksa tetap memakai pertanyaan yang dulu diisi. Pemeriksaan tetap adil dan audit tetap tepat.

Hak akses mengikuti alur

Hak akses staf dibentuk dari alurnya sendiri, satu untuk setiap tahap dan jenis izin. Kodenya tidak pernah mengecek peran tetap seperti "verifikator". Begitu administrator menambah jenis izin, slot pemeriksa untuk izin itu langsung tersedia.

Tenggat yang terlihat oleh staf

Setiap tahap punya tenggat dalam jam, dan setiap jenis izin punya total dalam hari kerja. Sebuah proses latar menghitung ulang tenggat itu dengan kalender libur nasional dan mengirim peringatan saat berkas mulai terlambat. Di antrean pemeriksa, kartu berubah dari kuning ke merah saat tenggat makin dekat. Staf bisa menyetujui, mengembalikan, atau menolak berkas lewat pintasan keyboard.

Pemeriksaan yang tertib di kantor yang sibuk

Pemeriksa bisa mengklaim sebuah berkas supaya tidak dikerjakan dua orang sekaligus. Klaim yang menganggur lepas sendiri, dan setiap keputusan mencatat siapa yang membuatnya. Permintaan revisi dibuat per isian, jadi pemohon melihat persis apa yang perlu diperbaiki di samping jawaban lamanya. Beberapa izin butuh persetujuan dua dinas teknis. Saya membatasi pemeriksa per tahap, sehingga satu orang tidak bisa menyetujui kedua tahap pemeriksaan yang sama.

Antrean tatap muka untuk Mal Pelayanan Publik

Setelah mesin perizinan berjalan, ada celah yang jelas. Sistem ini menangani pengajuan online yang makan waktu berhari-hari, tapi tidak menangani warga yang datang ke Mal Pelayanan Publik dan mengambil nomor antrean. Saya merancang dan membangun MPP Antrean, modul antrean terpisah dengan data dan hak aksesnya sendiri. Modul ini mencakup tiket kios, check-in QR, pemilahan di loket, serta panggil, panggil ulang, dan layani, semuanya diperbarui langsung. Warga yang sudah booking online tapi datang terlambat masuk ke antrean tatap muka sesuai jam kedatangan, tanpa kehilangan tiketnya.

Hasilnya

Keempat fase pembangunan yang direncanakan selesai dalam sekitar tiga minggu, disusul pengamanan, perbaikan aksesibilitas, dan modul antrean. Sistem ini memuat sekitar 2.200 kode usaha KBLI dan bisa dijalankan dengan satu perintah, lengkap dengan data contoh. Siapa pun bisa memindai kode QR di izin yang terbit untuk memastikan keasliannya, tanpa login. Situs staging sudah bisa diakses publik, dan versi produksinya akan berjalan di server Otorita IKN sendiri.

Di balik layarDetail teknis untuk engineer
  • Lima model inti menyimpan konfigurasi setiap izin: Sektor, PermitType, WorkflowStage, FormField, dan DocumentRequirement.
  • Jawaban formulir disimpan sebagai JSON field dan divalidasi saat runtime terhadap skema yang aktif. Versi skema disalin ke setiap pengajuan.
  • Hak akses berupa string yang dibentuk otomatis, misalnya verifikasi_teknis:izin_posyandu. Kelas permission DRF mencocokkannya dengan tahap pengajuan saat ini. Tidak ada enum peran.
  • SLA: sla_hours per tahap, sla_days per jenis izin, disapu oleh task Celery Beat dengan kalender hari kerja. Pintasan antrean: j/k untuk berpindah, a/r/d untuk setujui, revisi, atau tolak.
  • <DynamicForm> mengambil FormField[] dan membangun skema zod saat runtime untuk dua belas tipe isian, termasuk NIK, NPWP, nomor telepon, lokasi peta, dan unggah berkas.
  • Halaman publik memakai tema biru yang imersif; ruang kerja setelah login dibuat tenang dan padat untuk staf yang memproses lima puluh berkas sehari.
  • MPP Antrean adalah Django app tersendiri tanpa foreign key ke domain perizinan. Status live dikirim lewat lapisan WebSocket Django Channels yang sudah ada. Pembagian kuota online dan tatap muka ditegakkan saat reservasi.
  • docker compose up menjalankan migrasi, memuat ~2.200 data KBLI, mengisi 46 contoh izin di tiga sektor beserta loket antrean demo, dan membuat superadmin.
  • 13 Django app, 43 model, sekitar 30.000 baris Python dan TypeScript, 241 commit dalam kurang lebih tiga minggu.

Tangkapan layar

Beranda
Beranda(2)
Katalog Izin
Katalog Detail
Validasi Dokumen
Portal Pemohon

Sedang merekrut, atau membangun hal serupa?

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