Skip to content

Implementation survey

Published packages run against the same inputs. Factual, versioned, dated — a map of a shared problem, not a scoreboard.

Recorded 2026-08-17v25.8.1

Legend32 agrees31 differs0 refuses

Where other packages break

Organised by failure mode, not by package — one place an implementation breaks can show up across several inputs and several packages at once.

The se- rule for thousands is missing

their bug

"satu ribu" instead of "seribu" — exactly the error PRD.md §2 names.

  • 1.000terbilang @0.0.3

    seribu

    satu ribu

    "satu ribu" alih-alih "seribu" — aturan se- untuk ribuan tidak diterapkan.

  • 1.001terbilang @0.0.3

    seribu satu

    satu ribu satu

    "satu ribu satu" alih-alih "seribu satu" — akibat bug se- yang sama.

  • 1.100terbilang @0.0.3

    seribu seratus

    satu ribu seratus

    "satu ribu seratus" alih-alih "seribu seratus" — akibat bug se- yang sama.

Scales above the hundred-millions are unimplemented

their bug

Returns an ordinary placeholder string ("terlalu besar / not implemented yet"), not a structured refusal — a string that can reach a printed document undetected.

  • 1.000.000.000terbilang @0.0.3

    satu miliar

    terlalu besar / not implemented yet

    Mengembalikan string "terlalu besar / not implemented yet" sebagai keluaran biasa, bukan menolak secara terstruktur — skala miliar ke atas tidak diimplementasikan.

  • 1.000.000.000.001terbilang @0.0.3

    satu triliun satu

    terlalu besar / not implemented yet

    Sama seperti masukan 1000000000: skala di atas ratusan juta tidak diimplementasikan.

  • 9.007.199.254.740.993terbilang @0.0.3

    sembilan kuadriliun tujuh triliun seratus sembilan puluh sembilan miliar dua ratus lima puluh empat juta tujuh ratus empat puluh ribu sembilan ratus sembilan puluh tiga

    terlalu besar / not implemented yet

    Sama seperti masukan 1000000000: gagal jauh sebelum mencapai batas presisi 2⁵³, karena skala di atas ratusan juta tidak diimplementasikan sama sekali.

  • 1.000.000.000.000.000terbilang @0.0.3

    satu kuadriliun

    terlalu besar / not implemented yet

    Sama seperti masukan 1000000000: skala di atas ratusan juta tidak diimplementasikan.

Zero produces an empty string

their bug

No word at all for an input of 0 — not a capitalisation difference.

  • 0terbilang-ts @2.1.0

    nol

    Menghasilkan string kosong untuk 0, bukan kata "nol".

Precision lost above 2⁵³

their bug

A middle group and the final digit both change on the 2⁵³+1 input — consistent with number arithmetic rather than BigInt.

  • 9.007.199.254.740.993terbilang-ts @2.1.0

    sembilan kuadriliun tujuh triliun seratus sembilan puluh sembilan miliar dua ratus lima puluh empat juta tujuh ratus empat puluh ribu sembilan ratus sembilan puluh tiga

    Sembilan Kuadriliun Tujuh Triliun Sembilan Milyar Dua Ratus Lima Puluh Empat Juta Tujuh Ratus Empat Puluh Ribu Sembilan Ratus Sembilan Puluh Dua

    Kelompok miliar (199) muncul sebagai "Sembilan" dan digit terakhir bergeser 993→992 — konsisten dengan aritmetika number, bukan BigInt, di atas 2⁵³.

quadriliun spelling for kuadriliun, uncited

their bug

"Kuadriliun" follows KBBI’s standard adaptation of Latin qu- to ku- (kuadrat, kuadran); "quadriliun" does not, and is uncited anywhere — unlike the milyar/miliar and triliun/trilyun pairs that are recorded as variants.

  • 9.007.199.254.740.993@develoka/angka-terbilang-js @1.4.2

    sembilan kuadriliun tujuh triliun seratus sembilan puluh sembilan miliar dua ratus lima puluh empat juta tujuh ratus empat puluh ribu sembilan ratus sembilan puluh tiga

    sembilan quadriliun tujuh triliun seratus sembilan puluh sembilan milyar dua ratus lima puluh empat juta tujuh ratus empat puluh ribu sembilan ratus sembilan puluh tiga

    Ejaan "quadriliun" untuk 10¹⁵, tidak tersitasi (berbeda dari pasangan milyar/miliar dan triliun/trilyun yang memang dicatat sebagai varian). Digit-digitnya sendiri benar — tidak ada kerusakan presisi di masukan ini.

  • 1.000.000.000.000.000@develoka/angka-terbilang-js @1.4.2

    satu kuadriliun

    satu quadriliun

    Ejaan "quadriliun" alih-alih "kuadriliun", tidak tersitasi di mana pun.

Different capitalisation, same words

legitimate variant

Per-word Title Case over words and se- rules identical to ours. Document capitalisation is a cited option in lib/options.ts.

  • 1terbilang-ts @2.1.0

    satu

    Satu

    Title Case ("Satu") atas kata yang identik — kapitalisasi adalah opsi bersitasi di lib/options.ts.

  • 10terbilang-ts @2.1.0

    sepuluh

    Sepuluh

    Title Case ("Sepuluh") atas kata yang identik, termasuk aturan se- yang benar.

  • 11terbilang-ts @2.1.0

    sebelas

    Sebelas

    Title Case ("Sebelas") atas kata yang identik, termasuk aturan se- yang benar.

  • 19terbilang-ts @2.1.0

    sembilan belas

    Sembilan Belas

    Title Case ("Sembilan Belas") atas kata yang identik.

  • 20terbilang-ts @2.1.0

    dua puluh

    Dua Puluh

    Title Case ("Dua Puluh") atas kata yang identik.

  • 100terbilang-ts @2.1.0

    seratus

    Seratus

    Title Case ("Seratus") atas kata yang identik, termasuk aturan se- yang benar.

  • 101terbilang-ts @2.1.0

    seratus satu

    Seratus Satu

    Title Case ("Seratus Satu") atas kata yang identik.

  • 110terbilang-ts @2.1.0

    seratus sepuluh

    Seratus Sepuluh

    Title Case ("Seratus Sepuluh") atas kata yang identik.

  • 1.000terbilang-ts @2.1.0

    seribu

    Seribu

    Title Case ("Seribu") atas kata yang identik, termasuk aturan se- yang benar untuk ribuan.

  • 1.001terbilang-ts @2.1.0

    seribu satu

    Seribu Satu

    Title Case ("Seribu Satu") atas kata yang identik.

  • 1.100terbilang-ts @2.1.0

    seribu seratus

    Seribu Seratus

    Title Case ("Seribu Seratus") atas kata yang identik.

  • 10.000terbilang-ts @2.1.0

    sepuluh ribu

    Sepuluh Ribu

    Title Case ("Sepuluh Ribu") atas kata yang identik.

  • 100.000terbilang-ts @2.1.0

    seratus ribu

    Seratus Ribu

    Title Case ("Seratus Ribu") atas kata yang identik.

  • 101.000terbilang-ts @2.1.0

    seratus satu ribu

    Seratus Satu Ribu

    Title Case ("Seratus Satu Ribu") atas kata yang identik.

  • 1.000.000terbilang-ts @2.1.0

    satu juta

    Satu Juta

    Title Case ("Satu Juta") atas kata yang identik, termasuk pengecualian se- yang benar untuk juta.

  • 1.000.001terbilang-ts @2.1.0

    satu juta satu

    Satu Juta Satu

    Title Case ("Satu Juta Satu") atas kata yang identik.

  • 1.000.000.000.001terbilang-ts @2.1.0

    satu triliun satu

    Satu Triliun Satu

    Title Case ("Satu Triliun Satu") atas kata yang identik.

  • 1.000.000.000.000.000terbilang-ts @2.1.0

    satu kuadriliun

    Satu Kuadriliun

    Title Case ("Satu Kuadriliun") atas kata yang identik; ejaan "Kuadriliun" sudah sesuai KBBI.

milyar spelling for miliar

legitimate variant

KBBI takes miliar; milyar is common in the field. Both sides are cited as an option (`ejaanMiliar`).

  • 1.000.000.000terbilang-ts @2.1.0

    satu miliar

    Satu Milyar

    Title Case dan ejaan "Milyar" alih-alih "Miliar" — keduanya opsi bersitasi di perpustakaan ini (kapitalisasi dan `ejaanMiliar`).

  • 1.000.000.000@develoka/angka-terbilang-js @1.4.2

    satu miliar

    satu milyar

    Ejaan "milyar" alih-alih "miliar" — varian bersitasi di lib/options.ts (`ejaanMiliar`).

Full table

The precise reference behind the summary above — row by row, package by package.

Inputterbilang (ours)terbilang0.0.3angka-terbilang1.0.3terbilang-ts2.1.0angka-terbilang-ts1.5.1@develoka/angka-terbilang-js1.4.2
0nolnolnol
1satusatuSatusatu
10sepuluhsepuluhSepuluhsepuluh
11sebelassebelasSebelassebelas
19sembilan belassembilan belasSembilan Belassembilan belas
20dua puluhdua puluhDua Puluhdua puluh
100seratusseratusSeratusseratus
101seratus satuseratus satuSeratus Satuseratus satu
110seratus sepuluhseratus sepuluhSeratus Sepuluhseratus sepuluh
1.000seribusatu ribuSeribuseribu
1.001seribu satusatu ribu satuSeribu Satuseribu satu
1.100seribu seratussatu ribu seratusSeribu Seratusseribu seratus
10.000sepuluh ribusepuluh ribuSepuluh Ribusepuluh ribu
100.000seratus ribuseratus ribuSeratus Ribuseratus ribu
101.000seratus satu ribuseratus satu ribuSeratus Satu Ribuseratus satu ribu
1.000.000satu jutasatu jutaSatu Jutasatu juta
1.000.001satu juta satusatu juta satuSatu Juta Satusatu juta satu
1.000.000.000satu miliarterlalu besar / not implemented yetSatu Milyarsatu milyar
1.000.000.000.001satu triliun satuterlalu besar / not implemented yetSatu Triliun Satusatu triliun satu
9.007.199.254.740.993sembilan kuadriliun tujuh triliun seratus sembilan puluh sembilan miliar dua ratus lima puluh empat juta tujuh ratus empat puluh ribu sembilan ratus sembilan puluh tigaterlalu besar / not implemented yetSembilan Kuadriliun Tujuh Triliun Sembilan Milyar Dua Ratus Lima Puluh Empat Juta Tujuh Ratus Empat Puluh Ribu Sembilan Ratus Sembilan Puluh Duasembilan quadriliun tujuh triliun seratus sembilan puluh sembilan milyar dua ratus lima puluh empat juta tujuh ratus empat puluh ribu sembilan ratus sembilan puluh tiga
1.000.000.000.000.000satu kuadriliunterlalu besar / not implemented yetSatu Kuadriliunsatu quadriliun

Differences are marked, then classified in writing as our bug, their bug, or a legitimate variant — the record lives in tests/survey/.