Whitepaper 01 Integritas temu-balik 4 September 2026 English version

Sumber yang berdusta

Lima lapis sistem temu-balik melapor sukses. Jawaban hukum yang mereka hasilkan terdengar yakin, bisa dicek, dan salah.

FD Iskandar · Rekayasa integrasi dan otomasi AI

Ini audit satu pertanyaan terhadap korpus hukum pemerintah yang nyata. Pipa proses yang saya bedah bukan boneka jerami: ia menyaring status, menjalankan pencarian vektor, mengutip apa adanya, dan mencantumkan sumbernya. Semua tahap melapor sukses. Jawaban yang keluar merujuk pasal nyata, dari peraturan nyata, yang memang masih berlaku. Pasal yang ia kutip lenyap dari hukum setahun lalu.

Tiap klaim di bawah ini bisa diulang siapa saja dengan perintah di lampiran, memakai dokumen yang siapa pun boleh unduh. Korpusnya peraturan pengupahan Indonesia. Pola kegagalannya struktural, dan tidak terikat pada korpus itu.

01Saya yang keliru duluan

Dua puluh menit sesudah mulai mengumpulkan bahan untuk tulisan ini, saya menjalankan satu ekspresi reguler pada sebuah PDF hasil unduhan, sekadar untuk menebak peraturan apa isinya. Skripnya menjawab UU 25/1992. Ia menjawab tanpa ragu sedikit pun, sebab ekspresi reguler memang tidak mengenal ragu.

Dokumen itu PP 7/2021. Yang tertangkap pola saya adalah peraturan yang tercantum di bagian menimbang: pembuka tempat sebuah peraturan menyebut dasar hukum yang lebih tua. Semua dokumen hukum di korpus ini membuka dirinya dengan menyebut dokumen hukum lain. Pengekstrak yang mencari untaian mirip-kutipan di dekat awal berkas akan langsung menemukan satu, dan yang ia temukan biasanya keliru.

Saya membuka dengan cerita ini karena seluruh isi tulisan ini sudah ada di dalamnya. Kegagalannya tidak acak. Ia bukan halusinasi. Ia program benar, yang mengerjakan persis apa yang saya perintahkan, di atas dokumen yang strukturnya membuat perilaku benar itu jadi salah. Menguji dengan masukan yang rapi tidak akan pernah menangkapnya, sebab masukannya memang rapi. Ia cuma tidak berarti seperti yang program saya kira.

Kegagalan yang mahal pada sistem temu-balik bukan yang tampak seperti galat. Ia yang tampak seperti jawaban.

02Kenapa korpus hukum tampak seperti kasus termudah

Andai seseorang harus memilih satu ranah untuk membuktikan bahwa retrieval bekerja, ia akan memilih yang ini. Korpus hukum adalah data paling ramah yang akan pernah dihadapi sebuah sistem temu-balik. Dokumennya otoritatif; teks resminya cuma satu. Ia stabil; sebuah peraturan tidak berubah antara Selasa dan Rabu. Ia terstruktur, bernomor sampai ke ayat. Ia terbuka, terbit di alamat permanen milik pemerintah sendiri.

Metadatanya bahkan seolah sudah menuntaskan bagian tersulit untuk kita. Basis data hukum pemerintah mencetak status pada tiap dokumen: Berlaku atau Tidak Berlaku. Saring di kolom itu, urusan kebasian beres.

Pertanyaan yang saya pakai sepanjang tulisan ini sengaja sempit dan faktual: bagaimana cara menghitung penyesuaian upah minimum tahunan? Jawabannya tunggal, berbentuk rumus, di satu pasal dari satu peraturan. Penyedia payroll, employer of record, dan perkakas kepatuhan sama-sama memerlukannya. Inilah kasus termudah itu.

03Lapis satu: kolom status menjawab pertanyaan lain

Peraturan yang mengatur pengupahan adalah PP 36/2021. Entri basis datanya berbunyi Berlaku. Itu benar.

Halaman yang sama mencatat dua perubahan atasnya: PP 51/2023 dan PP 49/2025. Keduanya juga berlaku. Tidak ada yang bertentangan, tidak ada yang usang.

Perhatikan apa yang sebenarnya kolom status itu sampaikan. Ia menyatakan dokumennya belum pernah dicabut. Ia tidak menyatakan apakah pasal yang hendak Anda kutip masih teks yang berlaku. Sebuah peraturan berlaku sebagai satu kesatuan, sementara pasal demi pasal di dalamnya berganti, bernomor ulang, atau lenyap karena instrumen yang lebih baru.

Status melekat pada dokumen. Keberlakuan melekat pada pasal. Tidak ada kolom status di basis data hukum mana pun yang menjawab pertanyaan yang sesungguhnya diajukan sistem temu-balik.

Ada persoalan kedua yang lebih halus. Pada peraturan lain di basis data yang sama, saya pernah menemukan kolom ini menyatakan sebuah instrumen berlaku padahal pencabutnya sudah terbit. Di sini kolomnya benar. Ketidakkonsistenan semacam itu lebih berbahaya ketimbang salah secara konsisten: pemeriksaan sekilas menemukan kolomnya bekerja, menyimpulkan ia layak percaya, lalu satu kasus yang menentukan lolos begitu saja. Kolom yang benar hampir sepanjang waktu melatih orang berhenti memeriksanya.

04Lapis dua: peraturan induknya sebuah foto

Pipa proses mengunduh PP 36/2021 lalu mengekstrak teksnya. Ekstraksi berhasil dan mengembalikan 3.045 karakter. Tahap itu mencatat sukses, lalu meneruskan dokumennya ke hilir.

Dokumen itu setebal 75 halaman. Teks cuma ada di dua di antaranya.

DokumenHalamanHalaman berteksCakupan
PP 36/2021 (induk, berlaku)7523%
PP 51/2023 (perubahan pertama)2727100%
PP 49/2025 (perubahan kedua)2222100%
PP 78/2015 (pendahulu, sudah dicabut)4949100%

Halaman 2 sampai 56 memuat pasal-pasalnya, seluruh isi hukum itu. Semuanya citra pindaian. Begitu pula lampirannya. Dua halaman yang membawa teks adalah halaman 1 dan halaman 57: sampul, dan halaman tanda tangan.

Yang mendarat di indeks adalah dokumen tanpa satu pun bunyi hukum di dalamnya. Dan teks yang paling menonjol di sana justru bagian menimbang, yang menyebut tiga peraturan lain. Kegagalan di bagian 01 bukan pengandaian. Ia sedang duduk di dalam indeks, menempel pada dokumen terpenting di seluruh korpus.

Bagian yang memakan biaya

Kegagalan ini tidak bersuara. Ia mengembalikan 3.045 karakter, jadi tiap pemeriksaan yang berbentuk "apakah ekstraksi berhasil?" menjawab ya. Uji dangkal atas keberadaan lapisan teks juga menjawab ya, sebab halaman 1 dan halaman 57 membawa tujuh fonta yang berkas itu laporkan. Kedua sinyal itu benar. Keduanya tidak berguna.

Pemeriksaan cakupan akan menangkapnya seketika: 75 halaman masuk, 2 halaman teks keluar. Hampir tidak ada yang menulis pemeriksaan itu, sebab ia baru berguna untuk dokumen yang sudah rusak, dan orang tidak tahu dokumen mana yang rusak sebelum menulis pemeriksaannya.

05Lapis tiga: mesin temu-balik mengurutkan yang terbaca, bukan yang berlaku

Pencarian vektor kini berjalan di atas rantai itu. Tiga dari empat dokumen terbaca penuh; induknya praktis kosong. Temu-balik mengembalikan padanan terbaiknya: PP 51/2023, Pasal 26A, yang memuat rumus penyesuaian upah lengkap dengan koefisien serta batas atas dan bawahnya. Sebagai padanan atas pertanyaan tadi, ia memang sangat baik.

Ia menang bukan karena paling mutakhir, melainkan karena satu-satunya dokumen di rantai itu yang bisa dibaca. Kemiripan embedding tidak mengenal kebaruan hukum. Pasal yang sudah lenyap dan pasal yang masih hidup sama-sama bisa terpanggil bila keduanya ada di indeks, dan yang sudah lenyap selalu menang setiap kali teks yang berlaku berwujud foto.

06Lapis empat: pasalnya lenyap, bukan berubah

PP 49/2025, angka 8, selengkapnya:

8. Pasal 26A dihapus.

Tiga kata. Bukan diubah, bukan berganti versi baru. Dicoret. Pasal yang hendak dikutip sistem tadi tidak ada di hukum yang berlaku hari ini.

Enam pasal di rantai ini mengalami perubahan dua kali: Pasal 5, 26A, 28, 34, 34A, dan 35. Sistem yang melangkah satu jengkal dari induk ke perubahan pertama sudah bekerja lebih keras ketimbang kebanyakan sistem temu-balik, dan ia tetap salah untuk keenamnya. Penelusuran rantai harus berjalan sampai titik tetap, berhenti hanya ketika tidak ada lagi yang mengubah si pengubah. Kurang dari itu cuma pertunjukan.

07Lapis lima: lapisan teksnya hasil OCR, dan OCR itu bocor

Dokumen sisanya memang punya teks, tapi teks itu lahir dari pengenalan karakter optis, dan galatnya sistematis, bukan acak.

Di lapisan teksYang sebenarnya
Pasal 268Pasal 26B
Pasal 7lPasal 71
ayat (21ayat (2)

Di satu dokumen, Pasal 7l dan Pasal 71 sama-sama muncul dua kali. Itu satu pasal, terbelah jadi dua entitas, tanpa satu pun sinyal bahwa ada yang keliru. Penggabungan tabel yang mengandalkan kecocokan persis nomor pasal akan kehilangan separuh barisnya tanpa bersuara.

Ia sampai juga ke jawabannya. Rumus penyesuaian upah, sebagaimana ia hidup di teks hasil ekstraksi:

Nilai Penyesuaian UMlt+l) : PE x o x UMttt

Huruf Yunani alfa berubah jadi huruf o. Tanda kurung berubah jadi angka. Terkutip apa adanya, yang justru merupakan perilaku sopan sebuah sistem yang menjaga keutuhan kutipan, rumus itu bukan sekadar kurang tepat. Ia bukan matematika.

08Kegagalan yang menumpuk

Rangkai satu putaran penuh. Satu pertanyaan, lima tahap, lima sukses:

TahapMelaporYang sebenarnya
Saringan statuslolosBenar dan tak berguna; status melekat pada dokumen
Ekstraksi tekslolos3.045 karakter dari 75 halaman; nol pasal
Pencarian vektorlolosMengurutkan satu-satunya yang terbaca, bukan yang berlaku
Uji kebaruanlolosPasal yang ia rujuk lenyap pada 2025
Kesetiaan kutipanlolosOCR merusak rumus yang sedang ia kutip

Keluarannya adalah jawaban yang merujuk pasal nyata, dari peraturan nyata, yang memang berlaku, terkutip apa adanya dari PDF resmi, lengkap dengan pranala hidup ke basis data pemerintah sendiri. Ia akan lolos telaah seorang insinyur yang cakap. Ia akan lolos telaah seorang ahli hukum yang memastikan peraturannya masih berlaku. Ia hanya gugur di tangan orang yang membaca perubahan kedua baris demi baris.

Tidak ada pengecualian yang terlempar. Tidak ada skor keyakinan yang turun. Tidak ada apa pun untuk dijadikan alarm, sebab dari dalam, tiap komponen mengerjakan tugasnya dengan benar.

Interaktif · berjalan di peramban Anda
Saksikan kelima lapis lolos, lalu gugur
Pertanyaan yang sama, korpus yang sama. Jawab dulu, lalu audit jawaban itu: tiap pemeriksaan melapor sukses, lalu satu per satu terbuka lagi terhadap dokumen aslinya. Tanpa akun, tanpa server, tanpa yang perlu dipasang.

09Ini bukan soal modelnya

Tidak ada satu pun di atas yang melibatkan model bahasa berkelakuan buruk. Tidak ada halusinasi di sini. Tiap fakta di dalam jawaban yang salah itu berpangkal pada dokumen nyata, dan modelnya setia pada sumber yang orang berikan kepadanya. Ia menerima pandangan yang sudah rusak atas korpus, lalu melaporkannya dengan akurat.

Artinya obat yang biasa orang resepkan tidak berlaku. Model yang lebih besar tidak menyembuhkannya: ia membaca 3.045 karakter yang sama. Suhu yang lebih rendah juga tidak, sebab kegagalannya bukan stokastik, dan jawaban salah yang sama kembali setiap kali. Susunan perintah yang lebih cermat tidak menyembuhkannya, sebab model tidak bisa meminta teks yang tidak pernah terekstrak. Kutipan tidak menyembuhkannya, sebab kutipannya nyata dan pranalanya hidup. Telaah manusia pun tidak, kecuali penelaahnya menyusuri sendiri rantai perubahan itu, yaitu justru pekerjaan yang sistem ini dibeli untuk menghapusnya.

Begitu sistem temu-balik keliru tentang sumbernya sendiri, semua kendali di hilir sedang mengukur hal yang salah.

Ini cacat penyerapan dokumen dan asal-usul. Keduanya harus tertangkap di titik dokumen masuk, dan yang menegakkannya harus sesuatu yang sanggup menolak.

10Yang harus sanggup dilakukan sebuah gerbang

Bukan model yang lebih pintar. Serangkaian syarat yang wajib terpenuhi sebelum sebuah jawaban boleh keluar, dan tiap syarat itu gagal-tertutup:

  1. Keberlakuan tingkat pasal, bukan status tingkat dokumen. Tiap pasal membawa instrumen yang terakhir menyentuhnya. Kalau itu tidak diketahui, pasalnya tidak layak kutip, apa pun bunyi kolom status dokumen induknya.
  2. Penelusuran rantai sampai titik tetap. Ikuti perubahan sampai tidak ada lagi yang mengubah si pengubah. Satu jengkal bukan penelusuran; itu lempar koin yang kebetulan benar hampir sepanjang waktu.
  3. Cakupan ekstraksi sebagai gerbang keras. Dokumen 75 halaman yang menghasilkan dua halaman teks gugur di gerbang masuk, dengan suara keras. Cakupannya diadu dengan jumlah halaman, dan ambangnya angka yang seseorang pilih dengan sengaja.
  4. Keyakinan OCR terbawa sampai ke kutipan. Kalau glif di balik untaian yang dikutip masih meragukan, untaian itu tidak boleh keluar sebagai kutipan verbatim. Keyakinan yang orang buang saat dokumen masuk tidak bisa dipungut lagi saat menjawab.
  5. Penolakan sebagai keluaran kelas satu. "Saya tidak bisa menyumberkan ini dengan aman" harus lebih murah diucapkan ketimbang jawaban yang salah: murah dalam waktu tunggu, dalam skor evaluasi, dan dalam cara antarmuka menampilkannya. Kalau penolakan dihukum, ia tidak akan pernah terjadi.

Yang kelima itu yang paling sering orang coret. Penolakan terlihat seperti kegagalan di semua papan pantau, berskor buruk terhadap metrik tingkat-jawab, dan mengecewakan pengguna dalam jangka pendek. Ia juga satu-satunya kendali yang masih bekerja ketika keempat sisanya belum pasti, dan belum pasti adalah keadaan normal tiap korpus nyata. Saya percaya kendali kelima inilah yang memisahkan sistem yang bisa dipakai dari sistem yang cuma bisa dipamerkan.

Yang diperagakan demo adalah sistem yang berbuat persis begitu: menolak menjawab pertanyaan yang tidak bisa ia sumberkan, sambil memperlihatkan kerjanya. Rantai yang ia telusuri, pasal yang ia temukan sudah lenyap, dokumen yang tidak sanggup ia baca. Keluaran semacam itu lebih berguna ketimbang sebuah rumus, sebab ia bisa ditindaklanjuti dan ia benar.

11Jalankan sendiri

Semua di atas berasal dari dokumen publik. Tanpa kredensial, tanpa mengeruk apa pun di balik gerbang masuk, tanpa data pribadi.

# rantai perubahan, ditelusuri dari sumber hidupnya
curl -s "https://peraturan.bpk.go.id/Details/161909/pp-no-36-tahun-2021" \
  | grep -oE 'href="/Details/[0-9]+/[a-z0-9-]+"' | sort -u

# peraturan induk: 75 halaman, teks cuma di 2 di antaranya
curl -sL -o pp36.pdf "https://peraturan.bpk.go.id/Download/154587"
pdfinfo   pp36.pdf | grep Pages
pdftotext -layout pp36.pdf - | tr -d '[:space:]' | wc -c

# halaman 5 nihil teks dan berisi satu citra; ia foto sebuah halaman
pdftotext -f 5 -l 5 pp36.pdf -
pdfimages -list -f 5 -l 5 pp36.pdf

# satu pasal, dua token, sebab OCR membaca angka 1 sebagai huruf l
curl -sL -o pp51.pdf "https://peraturan.bpk.go.id/Download/328142"
pdftotext -layout pp51.pdf - | grep -c 'Pasal 7l'
pdftotext -layout pp51.pdf - | grep -c 'Pasal 71'

# penghapusannya
curl -sL -o pp49.pdf "https://peraturan.bpk.go.id/Download/402111"
pdftotext -layout pp49.pdf - | grep -A1 'Pasal 26A dihapus'

Satu hal yang layak Anda amati sambil menjalankan perintah di atas. Tiap unduhan tersaji sebagai application/octet-stream, apa pun isi aslinya. Di rentang nomor yang sama saya menemukan satu pengenal yang mengembalikan arsip ZIP dari URL yang berakhiran .pdf. Sistem yang percaya pada jenis konten tidak belajar apa pun; sistem yang percaya pada akhiran nama berkas menyuapkan arsip ke pengurai PDF. Tidak ada satu pun dari keduanya yang mendapat kabar bahwa ia keliru.