Coba Cek Nomor KTP Anda :

     


Penjelasan teknis detail mengenai regex ktp ini bisa dilihat di Penjelasan Regex KTP

Penjelasan mengenai regex itu tersendiri ini bisa dilihat di Regex Pendahuluan

Pendahuluan

Validasi nomor Kartu Tanda Penduduk (KTP) atau Nomor Induk Kependudukan (NIK) Indonesia juga merupakan salah satu validasi yang umum. Kita bisa melakukan validasinya dengan memakai Regex.

Tentunya acuannya adalah peraturan Pemerintah. Aturan resminya dikeluarkan pada awal diterapkan e-KTP. Nomornya : PP-No-37-tahun-2007 pasal 37. Pada pasal 37 tersebut ditentukan persyaratan format nomor NIK / KTP Indonesia, sbb :

Standar Nomor KTP Indonesia / NIK

Sederhana kan ? Jadi syaratnya NIK / KTP Indonesia itu cuma :

  • Panjang 16 digit
  • 6 digit pertama adalah kode wilayah provinsi, kabupaten/kota, kecamatan
  • 6 digit kedua adalah tanggal, bulan, tahun lahir. Perempuan ditambah 40 untuk tanggal lahirnya.
  • 4 digit terakhir nilai urutan saja.

Dari aturan diatas, maka kita bisa membuat Regex KTP Indonesia atau Regex NIK sebagai berikut :


Regex KTP / NIK versi 1 (sederhana):

^\\d{16}$

maksudnya : validasi karakter sebanyak 16 angka.




Regex KTP / NIK versi 2 (menengah):

^\\d{6}([04][1-9]|[1256][0-9]|[37][01])(0[1-9]|1[0-2])\d{2}\d{4}$

Artinya :
validasi 6 karakter pertama adalah angka.
6 karakter berikutnya mengikuti format tanggal lahir 01..31 (untuk laki-laki) atau 41..71 (untuk perempuan), bulan lahir 01-12, dan tahun lahir 2 angka.
4 karakter terakhir adalah angka sequence.



Regex KTP / NIK versi 3 (cukup lengkap) :

^(1[1-9]|21|[37][1-6]|5[1-3]|6[1-5]|[89][12])\d{2}\d{2}([04][1-9]|[1256][0-9]|[37][01])(0[1-9]|1[0-2])\d{2}\d{4}$

Artinya
validasi 6 karakter pertama, 2 angka pertama sesuai dengan format provinsi di Indonesia, 2 karakter berikutnya angka, dan 2 karakter selanjutnya juga angka.
6 karakter berikutnya mengikuti format tanggal lahir 01..31 (untuk laki-laki) atau 41..71 (untuk perempuan), bulan lahir 01-12, dan tahun lahir 2 angka
4 karakter terakhir adalah angka sequence.



Penjelasannya

Coba kita lihat format KTP / NIK

A1 A2 A3 A4 A5 A6 B1 B2 B3 B4 B5 B6 C1 C2 C3 C4

( 16 digit nomor KTP Indonesia )




A1 A2 A3 A4 A5 A6
6 digit pertama Adalah kode wilayah provinsi, kabupaten/kota, dan kecamatan

Kode A1A2 adalah kode provinsi di Indonesia. Saat ini ada 34 provinsi yang terdaftar, dengan kriteria sbb :

Kode A1 Provinsi Wilayah Tersedia Contoh
1 Sumatera 11 .. 19 11 - Aceh , 12 - Sumut
2 Sumatera 21 21 - Kep. Riau
3 Jawa 31 .. 36 31 - DKI Jakarta
4 Jawa tidak ada -
5 Bali, NTB, NTT 51 .. 53 51 - Bali
6 Kalimantan 61 .. 65 61 - Kalimantan Barat
7 Sulawesi 71 .. 76 71 - Sulawesi Utara
8 Maluku 81 .. 82 81 - Maluku
9 Papua 91 .. 92 91 - Papua

Total 34 provinsi terdaftar dengan format seperti diatas.

Kode A3A4 adalah kode kota/kabupaten.

Kode A5A6 adalah kode kecamatan.



Kode B1B2 B3B4 B5B6 adalah tanggal lahir, dalam bentuk DDMMYY (tanggal 2 angka - bulan 2 angka - tahun 2 angka)

Contoh 1
si Badu lahir 12 Juni 2001, maka angkanya adalah : 120601 (12-06-01)
Contoh 2
si Desi lahir 12 Juni 2001, maka angkanya adalah : 520601 (12-06-01 untuk perempuan)

karena Desi adalah perempuan, maka tanggal lahirnya ditambah 40.



Kode C1 C2 C3 C4 adalah urutan angka saja, dimulai dari 0001 … dst. Angka ini disimpan urutannya di SIAK (Sistem Informasi Administrasi Kependudukan).