think
16px
820px

Sampel Dokumen — Pendirian Yayasan

Sampel asli dari SABH untuk prompt tuning extractor, tuning keyword classifier
(nirlaba — milik dev4, salin folder ini ke dev_4/docs/samples/yayasan/), dan
uji akurasi (golden set).

PDF dan .expected.json TIDAK di-commit (gitignored — berisi data pribadi:
NIK, alamat organ). Hanya README ini dan struktur folder yang masuk git.

Konvensi penamaan

{jenis-dok}_{varian}_{tahun}_{nomor-transaksi}.pdf

  • jenis-dok: akta-yayasan | surat-kemenlu | residence-permit
  • varian: nasional | asing (nilai SABH, lihat catatan varian di bawah)
  • nomor-transaksi: jejak balik ke SABH (JANGAN pakai nama yayasan/orang di nama file)
  • Ground truth uji akurasi: file kembar <basename>.expected.json di samping PDF

Struktur

  • akta/ — Akta Pendirian Yayasan (dokumen otoritatif, target ekstraksi utama)
  • syarat-asing/ — dokumen upload_syarat_asing (varian asing): surat
    pertimbangan Kemenlu asli, dan fixture negatif (mis. residence permit yang
    ditemukan ter-upload di slot ini di SABH)

Manifest

File Nomor transaksi bh_id Varian Sumber Catatan
akta/akta-yayasan_asing_2026_5026072251101253.pdf 5026072251101253 1864317 asing history SABH akta pendirian, salinan
syarat-asing/residence-permit_asing_2026_5026072251101253.pdf 5026072251101253 1864317 asing history SABH isi slot upload_syarat_asing ternyata residence permit, BUKAN surat Kemenlu → fixture negatif rule kesesuaian isi
akta/akta-yayasan_nasional_2026_5026080735100393.pdf 5026080735100393 nasional history SABH akta pendirian, salinan

Temuan dari dua sampel akta (2026-08-11)

Semuanya sudah masuk ke prompt YAYASAN_AKTA_SCHEMA
(backend/src/schema/akta-yayasan.ts); dicatat di sini supaya tidak hilang.

  1. Identitas organ ada di dua tempat. Pasal penutup mengangkat Pembina,
    Pengurus, Pengawas beserta jabatannya, tetapi identitasnya ditulis "tersebut
    di atas". NIK/paspor ada di daftar penghadap di AWAL akta. Ekstraktor harus
    menggabungkan keduanya berdasarkan nama.
  2. Urutan organ tidak tetap. Sampel nasional menulis "a. Pengurus, c. Pengawas,
    d. Pembina" — huruf b terlewat. Organ harus dikenali dari namanya.
  3. Kekayaan punya dua ayat dan hanya ayat (1) yang relevan. Ayat (1) =
    kekayaan yang benar-benar dipisahkan pendiri; ayat (2) = boilerplate sumber
    yang MUNGKIN diterima kemudian (sumbangan, wakaf, hibah, hibah wasiat).
    Membaca ayat (2) sebagai sumber akan melaporkan sumbangan yang tak pernah ada.
  4. Bidang maksud melebihi tiga flag SABH. Kedua sampel menyebut empat bidang
    dan keduanya menambahkan Pendidikan. Karena itu schema dapat
    maksud_tujuan.bidang_lain: string[].
  5. Provinsi tidak disebut untuk kedudukan yayasan; Pasal 1 hanya menyebut
    kabupaten/kota. Provinsi dibiarkan null, jangan ditebak dari alamat penghadap
    atau kedudukan notaris.
  6. NPWP tidak ada sama sekali di akta pendirian. Field npwp pada organ
    tetap ada (bentuk bersama dengan Perkumpulan) tapi selalu null dari ekstraksi.
  7. Tanggal angka dan tanggal huruf berbeda di KEDUA sampel
    (22-06-2026 vs "dua puluh dua Juli"; 04-08-2026 vs "delapan Desember dua
    ribu dua puluh lima"). Ini salah ketik notaris, bukan salah OCR. Diambil
    bentuk angka; koreksi jadi urusan halaman review.
  8. NIK 17 digit muncul di sampel asing (SAHRONI, YASIR FATONI). Isi dokumen
    memang begitu, jadi rule panjang NIK memang seharusnya menandainya.
  9. pdftotext tanpa -layout MENGACAK akta asing sehingga nama dan NIK
    berpasangan salah. Kalau membaca sampel secara manual, selalu pakai -layout.
  10. Akta nasional adalah pindaian tanpa lapisan teks — perlu OCR. Kedua akta
    sama-sama berbahasa Indonesia; yang membedakan hanya ada/tidaknya lapisan
    teks, bukan bahasanya.

Nama varian: nasional, bukan lokal

Diverifikasi langsung di kode SABH (ahu-codebase/ahu-online, 2026-08-11):

  • filter yang hidup: array('nasional'=>'NASIONAL','asing'=>'ASING')
    (views/yayasan/listTransaksi.php:185)
  • skrip form yang hidup: jn='asing' / jn='nasional'
    (_formPengurusYayasan.php:807)
  • umum, surat wasiat, corporate_asing hanya ada di dropdown yang sudah
    dikomentari — kosakata lama, bukan yang disimpan sekarang
  • lokal tidak ada sama sekali di modul yayasan SABH

Schema kita memakai jenis_transaksi: "nasional" | "asing", dan penamaan file di
folder ini mengikuti nilai yang sama — satu kosakata dari nama file sampai kolom
SABH, tanpa terjemahan di tengah jalan.

NIK bisa memeriksa dirinya sendiri

Digit ke-7 sampai ke-12 sebuah NIK adalah DDMMYY tanggal lahir, dengan DD
ditambah 40 untuk perempuan. Itu checksum internal yang tidak bergantung pada
mutu OCR, dan bisa diuji silang dengan tanggal lahir yang tertulis di blok
penghadap. Hasilnya pada 13 orang di kedua sampel:

Hasil Jumlah Keterangan
Cocok persis 11 termasuk konvensi +40 pada tiga perempuan
Cocok tapi NIK 17 digit 2 SAHRONI (digit lebih di ekor), YASIR FATONI (digit lebih sebelum blok tanggal)
Beda 1 FIRDA LULUK MUKARROMAH — NIK berkata 8 Maret 2001, teks akta menulis 8 Mei 2001. Diperiksa manual oleh Efran: ekstraksi benar, aktanya yang salah.

Dua konsekuensinya:

  • Digit NIK hasil OCR pada akta pindaian terbukti benar. Ground truth akta
    nasional karena itu memuat NIK penuh, bukan dikosongkan.
  • Ini rule validasi yang belum kita punya. Cross-check NIK vs tanggal lahir
    tidak butuh dokumen kedua — cukup isi akta itu sendiri — padahal alur ini
    selama ini dianggap tak punya anchor identitas sama sekali. Syaratnya satu:
    OrganMember harus membawa tanggal lahir (ttl), yang sekarang sengaja tidak
    dibawa. Tipe itu milik dev_4, jadi perlu disepakati dulu.

Catatan konteks (temuan riset, Agustus 2026):

  • Yayasan asing sangat langka (2026: 11 dari ~17.700 pendirian; 2020: 14 dari ~26.800).
  • Slot syarat asing di SABH tidak divalidasi isinya (hanya PDF ≤ 5MB) — sampel
    nyata bisa berisi residence permit, bukan surat Kemenlu → simpan sebagai
    fixture negatif untuk rule kesesuaian isi (menunggu keputusan).
  • File syarat asing di server SABH: /uploads/yayasan/syarat/; akta:
    /uploads/yayasan/ (filter id_aksi_transaksi = 2, shard
    tbl_transaksi_yayasan_<tahun>).