Kode pos Indonesia terdiri dari 5 digit angka, dan tiap posisi digit punya arti berbeda : mulai dari provinsi, kota/kabupaten, sampai kecamatan dan kelurahan. Buat kamu yang develop form alamat atau checkout, memahami struktur ini bukan cuma pengetahuan iseng. Kamu bisa pakai polanya untuk validasi cepat tanpa harus selalu hit database.
Apa Arti Setiap Digit di Kode Pos Indonesia?
Secara umum, kelima digit kode pos Indonesia dibagi jadi tiga kelompok : digit pertama untuk provinsi/zona besar, digit kedua-ketiga untuk kota atau kabupaten, dan dua digit terakhir untuk kecamatan serta kelurahan/desa.
Digit pertama : zona provinsi
Digit pertama membagi Indonesia jadi 9 zona besar. Berikut pemetaannya :
| Digit 1 | Wilayah |
|---|---|
| 1 | DKI Jakarta dan sekitarnya (Jabodetabek) |
| 2 | Aceh, Sumatera Utara, Sumatera Barat, Riau, Kepulauan Riau |
| 3 | Bengkulu, Jambi, Bangka Belitung, Sumatera Selatan, Lampung |
| 4 | Banten, Jawa Barat |
| 5 | Jawa Tengah, DI Yogyakarta |
| 6 | Jawa Timur |
| 7 | Kalimantan |
| 8 | Bali, Nusa Tenggara |
| 9 | Sulawesi, Maluku, Papua |
Beberapa provinsi memang berbagi digit yang sama, misalnya Aceh sampai Kepulauan Riau semua diawali angka 2. Ini karena pembagian zonanya berdasarkan kelompok wilayah geografis, bukan satu provinsi satu digit. Rincian lengkap tiap zona bisa kamu cek di daftar kode pos Indonesia versi Wikipedia.
Digit kedua dan ketiga : kota/kabupaten
Dua digit ini menyempitkan wilayah dari zona besar ke kota atau kabupaten spesifik. Contoh: kode pos yang diawali “531” menunjukkan provinsi Jawa Tengah (digit 5) di kabupaten/kota tertentu (digit 31).
Digit keempat dan kelima : kecamatan dan kelurahan
Dua digit terakhir ini menandai kecamatan lalu kelurahan/desa. Jadi total 5 digit ini bisa mengidentifikasi lokasi sampai level kelurahan, bukan cuma kota.
Pengecualian : DKI Jakarta
Wilayah Jakarta pakai skema sedikit berbeda : digit ketiga menunjukkan kecamatan, digit keempat menunjukkan kelurahan, dan digit kelima selalu diisi angka “0”. Jadi kalau kamu develop aplikasi yang menyasar alamat Jakarta secara spesifik, jangan samakan pola parsing-nya dengan wilayah lain.
Contoh breakdown 1 kode pos secara utuh
Supaya lebih jelas, coba pecah kode pos 40135 (kelurahan Dago, kecamatan Coblong, Kota Bandung, Jawa Barat):
| Posisi digit | Nilai | Artinya |
|---|---|---|
| Digit 1 | 4 | Zona Jawa Barat/Banten |
| Digit 2-3 | 01 | Kode Kota Bandung |
| Digit 4 | 3 | Kode kecamatan Coblong |
| Digit 5 | 5 | Kode kelurahan Dago |
Pola breakdown ini yang bikin 1 kode pos bisa langsung “dibaca” sampai level kelurahan tanpa perlu buka peta.
Kenapa Struktur Ini Penting untuk Developer?
Kalau kamu develop form alamat, e-commerce, atau aplikasi logistik, paham struktur ini punya beberapa manfaat praktis:
- Validasi cepat di sisi frontend : kamu bisa cek panjang & format digit tanpa perlu request ke server dulu
- Deteksi kesalahan input : misalnya user mengetik kode pos yang jelas nggak sesuai pola 5 digit
- Estimasi wilayah kasar : buat kebutuhan non-krusial seperti grouping data regional, kamu bisa lihat digit pertama untuk estimasi zona tanpa lookup database penuh
Untuk validasi yang butuh akurasi penuh sampai level kelurahan (misalnya cek apakah kode pos tersebut benar-benar ada), kamu tetap butuh data lengkap seperti di Database Kode Pos Indonesia.
Cara Membuat Validasi Format Kode Pos dengan Regex
Validasi format paling dasar cukup pakai regex untuk memastikan input berupa 5 digit angka:
^[0-9]{5}$
Contoh di JavaScript (validasi form) :
function isValidPostalCodeFormat(value) {
return /^[0-9]{5}$/.test(value);
}
console.log(isValidPostalCodeFormat("40135")); // true
console.log(isValidPostalCodeFormat("401")); // false
Contoh di PHP (validasi backend) :
function isValidPostalCodeFormat($value) {
return preg_match('/^[0-9]{5}$/', $value) === 1;
}
var_dump(isValidPostalCodeFormat('40135')); // true
var_dump(isValidPostalCodeFormat('4013')); // false
Perlu diingat, regex ini cuma memvalidasi format (5 digit angka), bukan memastikan kode pos tersebut benar-benar terdaftar. Kode pos “99999” misalnya, lolos regex tapi belum tentu itu wilayah yang valid.
Cara Cek Wilayah dari Kode Pos Tanpa Regex (Pakai Database)
Kalau kamu butuh validasi yang lebih akurat, yaitu memastikan kode pos itu benar-benar ada dan tahu wilayahnya, regex saja nggak cukup. Kamu butuh data lengkap kode pos berikut wilayahnya.
Dua opsi yang bisa kamu pakai:
- Download database lengkap dan import ke database aplikasi kamu sendiri, kalau butuh query dalam jumlah besar atau offline. Panduannya ada di Database Kode Pos Indonesia.
- Cek satuan tanpa install apa-apa, kalau cuma butuh cari 1-2 kode pos sesekali, lewat kodepos.eplusgo.com.
FAQ Seputar Kode Pos Indonesia
Beberapa pertanyaan yang sering muncul soal struktur dan validasi kode pos, kalau kamu masih ada yang mengganjal setelah baca pembahasan di atas.
Apakah kode pos Indonesia selalu 5 digit?
Ya, termasuk untuk wilayah Jakarta. Bedanya cuma di pola isinya: Jakarta punya aturan khusus di mana digit ketiga sampai kelima dipakai untuk kecamatan, kelurahan, dan angka “0” tetap, bukan mengikuti pola kecamatan-kelurahan biasa seperti wilayah lain.
Kalau cuma lihat digit pertama, bisa tahu wilayahnya sampai sedetail apa?
Cuma sampai level zona besar, bukan kota atau kelurahan. Satu zona bisa mencakup beberapa provinsi sekaligus (lihat tabel di atas), jadi untuk tahu kota dan kelurahan secara pasti, kamu tetap perlu cek database kode pos yang lengkap.
Regex 5 digit sudah cukup buat validasi kode pos, atau kurang?
Cukup untuk memastikan formatnya benar, tapi nggak menjamin kode pos itu benar-benar ada. Sebagai contoh, “99999” tetap lolos regex meskipun bukan kode pos yang terdaftar. Kalau kamu butuh memastikan keberadaannya, validasi harus dilanjutkan ke database, bukan berhenti di regex.
Kenapa ada beberapa provinsi yang digit pertamanya sama?
Karena pembagian zonanya berdasarkan kelompok wilayah geografis, bukan satu digit untuk satu provinsi. Aceh, Sumatera Utara, Sumatera Barat, Riau, dan Kepulauan Riau misalnya, semuanya masuk zona yang sama dan diawali angka 2.
Kesimpulan
Struktur 5 digit kode pos Indonesia mengikuti hierarki provinsi ? kota/kabupaten ? kecamatan ? kelurahan, dengan pengecualian khusus di Jakarta. Untuk kebutuhan sehari-hari, regex ^[0-9]{5}$ sudah cukup buat validasi format di form. Tapi kalau aplikasi kamu butuh memastikan kode pos itu valid dan tahu wilayahnya secara pasti, gunakan database kode pos lengkap atau tool pencarian kode pos.











