Menu

Validasi nomor identitas: aturan tiap negara berbeda

Validasi nomor identitas bergantung pada aturan negara asalnya. Pahami tiga tingkat keterbukaan skema dan cara menanganinya tanpa menebak asal nomor.

Diterbitkan

  • data uji
  • nomor identitas
  • aturan negara

Validasi nomor identitas hampir selalu berakhir dengan pertanyaan yang sama: aturan siapa yang harus dipakai. Jawabannya tidak tunggal, karena setiap negara menerbitkan keterangan yang berbeda tingkat kelengkapannya. Sebagian menerbitkan algoritma digit pemeriksa, sebagian hanya memaparkan bentuknya, dan sebagian lagi tidak menerbitkan keduanya secara utuh. Halaman ini menjelaskan bagaimana ketiga keadaan itu diperlakukan dan mengapa menebak asal nomor adalah pilihan yang paling merugikan.

Mengapa aturan nomor identitas tidak bisa diseragamkan?

Nomor identitas diterbitkan oleh lembaga di dalam sebuah negara, dan lembaga itulah yang menetapkan bentuk, panjang, serta aturan pemeriksaannya. Karena tidak ada badan dunia yang berwenang menyatukan pilihan mereka, keragaman bukan tanda kekacauan, melainkan akibat wajar dari kedaulatan masing-masing sistem administrasi.

Keragaman itu menjadi masalah ketika sebuah sistem menerima masukan dari berbagai negara. Deretan angka tidak membawa keterangan tentang negaranya. Sebuah deretan yang memenuhi aturan satu negara bisa saja sekaligus memenuhi aturan negara lain, terutama bila keduanya memakai kumpulan karakter yang sama.

Karena itu, pendekatan satu pola untuk semua negara hampir pasti gagal. Pola itu akan menerima nomor yang seharusnya ditolak, dan yang lebih sering terjadi, menolak nomor yang sebenarnya benar hanya karena panjangnya berbeda dari dugaan penulisnya.

Skema yang menerbitkan algoritma digit pemeriksa

Kelompok pertama adalah skema yang mempublikasikan cara menghitung digit pemeriksanya. Pada kelompok ini, pemeriksaan dapat dilakukan sepenuhnya di sisi pengguna tanpa menghubungi pihak lain, karena aturannya terbuka dan dapat dihitung ulang oleh siapa saja.

Manfaat keterbukaan itu bukan hanya soal biaya. Karena hasilnya dapat dihitung berulang dengan nilai yang sama, kelompok ini cocok dipakai sebagai kasus uji otomatis. Nilai tertentu selalu lolos dan nilai tertentu selalu ditolak, sehingga perubahan perilaku dapat dikenali lebih cepat.

Namun keterbukaan tetap punya batas yang sama seperti pada skema lain. Digit pemeriksa menunjukkan bahwa deretan lambangnya konsisten dengan dirinya sendiri. Ia tidak menyatakan bahwa nomor itu tercatat di daftar resmi, dan tidak menyatakan bahwa orang yang mengetiknya adalah pemilik nomor tersebut.

Skema yang hanya menerbitkan format

Kelompok kedua adalah skema yang memaparkan panjang dan kumpulan karakter, tetapi tidak pernah menerbitkan aturan perhitungan apa pun. Pada kelompok ini, hanya bentuk yang dapat dipastikan, dan pernyataan bahwa nomornya sah tidak punya dasar yang bisa ditunjukkan.

Sikap yang tepat untuk kelompok ini adalah menyatakannya secara terbuka. Alih-alih memberi jawaban yang terdengar meyakinkan padahal kosong, sistem sebaiknya menyebut bahwa yang terkonfirmasi hanya bentuknya. Kalimat seperti itu tidak melemahkan alat, melainkan menempatkan hasilnya pada tempat yang jujur.

Konsekuensi praktisnya adalah pesan galat harus dibedakan. Bentuk yang tidak cocok memang patut ditolak, tetapi bentuk yang cocok tidak boleh berubah menjadi klaim keberadaan. Dua kesimpulan itu harus tetap terpisah dari awal hingga akhir alur.

Keadaan setengah terbuka juga termasuk kelompok ini. Ada skema yang menyebut panjangnya tanpa merinci pembagian bagian di dalamnya, sehingga pemeriksaan tidak dapat dilengkapi dengan aman. Aturan yang belum lengkap tidak dapat dipakai untuk mengambil kesimpulan, sekalipun sebagian isinya sudah diterbitkan. Menyusun dugaan dari bagian yang tersedia justru berbahaya, karena dugaan itu akan tampak seperti aturan resmi begitu ia tertanam di dalam kode dan dipakai berulang tanpa dicurigai lagi.

Ketiga tingkat keterbukaan itu beserta tindak lanjut yang wajar dapat diringkas sebagai berikut.

Tingkat keterbukaan Yang dapat dipastikan Tindak lanjut yang wajar
Algoritma digit pemeriksa diterbitkan Bentuk dan hasil perhitungan Tampilkan hasil perhitungan apa adanya
Hanya bentuk yang diterbitkan Bentuk saja Sebut bahwa yang terkonfirmasi hanya bentuknya
Keterangan tidak lengkap Sebagian bentuk Jangan menyimpulkan, arahkan ke peninjauan manusia

Tabel ini tidak menyebut negara mana pun dengan sengaja. Yang perlu diingat adalah tingkat keterbukaan dapat berubah: sebuah skema yang dahulu hanya menerbitkan bentuk dapat menyusul menerbitkan aturan perhitungannya, dan sebaliknya sebuah keterangan yang dahulu lengkap dapat dipindahkan ke dokumen yang tidak lagi terbuka untuk umum.

Kalau satu nomor cocok dengan beberapa negara, bagaimana?

Ketika beberapa aturan terpenuhi sekaligus, menampilkan semuanya adalah pilihan yang paling dapat dipertanggungjawabkan. Setiap baris menyatakan satu fakta yang benar, yaitu bahwa deretan karakter tersebut memenuhi aturan skema itu. Pengguna yang tahu dari mana nomornya berasal dapat memilih baris yang sesuai dengan keperluannya.

Menebak satu negara justru menimbulkan dua jenis kesalahan sekaligus. Bila tebakannya salah, pengguna menerima pesan tentang aturan yang tidak pernah ia maksudkan. Bila tebakannya benar, sistem tetap menyembunyikan kenyataan bahwa ada aturan lain yang juga terpenuhi, sehingga kesimpulan yang ditampilkan tampak lebih pasti daripada buktinya.

Bentuk tampilan yang berdampingan juga membantu saat pengguna menerima penolakan. Bila seluruh baris terlihat gagal, pengguna tahu bahwa masalahnya bukan pada pilihan skema, melainkan pada isi nomornya.

Panjang dan kumpulan karakter hanyalah titik awal

Panjang dan kumpulan karakter memang pemeriksaan yang murah dan cepat, dan keduanya berguna untuk menyaring salah ketik kasar. Masalahnya, keduanya tidak membawa bukti apa pun tentang kesahihan isi. Menyamakan panjang yang cocok dengan nomor yang sah adalah kekeliruan yang paling sering muncul pada sistem lintas negara.

Semua contoh dalam pembahasan ini hanya dipakai untuk menggambarkan cara berpikir berlapis, bukan untuk menyatakan aturan negara tertentu. Halaman ini tidak menyajikan pola nomor resmi dari negara mana pun, dan tidak ada contoh yang menunjuk dokumen atau orang yang sungguh-sungguh ada.

Kesalahan yang lebih halus muncul saat panjang dijadikan satu angka tetap untuk semua negara. Perubahan aturan di satu negara saja dapat membuat nilai yang dulu benar menjadi salah, dan bila angka itu tertanam di dalam kode, setiap perubahan menuntut penerbitan ulang perangkat lunak.

Karena itu, jangan jadikan panjang sebagai satu-satunya penanda asal nomor. Dua negara dapat memakai panjang yang sama dengan isi yang sama sekali berbeda, dan dua nomor dari negara yang sama dapat memiliki panjang berbeda bila aturannya diperbarui. Yang lebih tahan lama adalah menyimpan aturan sebagai data yang dapat diperbarui tanpa mengubah program, sehingga penyesuaian dapat dikerjakan tanpa menunggu rilis perangkat lunak berikutnya.

Untuk pengembang: jadikan aturan negara sebagai data

Simpan setiap aturan sebagai catatan data yang memuat penanda negara, kumpulan karakter yang diizinkan, rentang panjang, dan nama aturan digit pemeriksa bila ada. Alur pemeriksaan kemudian hanya membaca data itu, sehingga penambahan negara baru tidak menyentuh logika inti.

Sertakan pula keterangan sumber pada setiap catatan. Ketika pengguna mempertanyakan hasilnya, Anda dapat menunjukkan aturan mana yang dipakai dan dari mana keterangan itu berasal. Tanpa keterangan itu, perbedaan hasil antara dua versi sistem menjadi hampir mustahil dijelaskan.

Siapkan tiga jenis hasil yang berbeda: digit pemeriksa terpenuhi, bentuk cocok tetapi tidak ada aturan perhitungan yang tersedia, dan tidak ada aturan sama sekali untuk masukan tersebut. Alat validasi nomor memisahkan ketiganya supaya pengguna tidak menerima kesimpulan yang terlalu keras. Untuk contoh bagaimana skema yang hanya menerbitkan bentuk ditangani, lihat pembahasan nomor tanpa digit pemeriksa; sebagai pembanding skema yang menerbitkan aturan perhitungan, tinjau validasi CPF CNPJ.

Langkah berikutnya

Daftarlah negara yang benar-benar Anda layani, lalu tentukan untuk masing-masing apakah aturan perhitungannya tersedia atau tidak. Setelah daftar itu selesai, buka alat validasi nomor dan bandingkan keadaan hasilnya dengan daftar tersebut. Saat menyusun berkas ujinya, catatan konsistensi bidang membantu memastikan nilai yang Anda pakai tetap serasi antar bidang.

Lanjut membaca

Artikel tentang Validator NIK