cahyadsn/wilayah

Kode dan Data Wilayah Administrasi & Pulau Indonesia sesuai Kepmendagri No 300.2.2-2430 Tahun 2025 dengan PHP+MySQL+AJaX. Demo link : https://wilayah.cahyadsn.com/

SQL

1,328

946 commits

updated Oct 20, 2026

See the code

README

WILAYAH

Kode dan Data Wilayah Administrasi Pemerintahan dan Kode Pulau Indonesia sesuai Kepmendagri No 300.2.2-2430 Tahun 2025 menggunakan PHP+MySQL+AJaX

GitHub license GitHub issues GitHub forks GitHub stars GitHub commit activity GitHub last commit Donate

DEMO

tautan demo web apps versi 3.2.0

SCREENSHOT

screenshot

Kode dan Data Wilayah Pemerintahan Indonesia dalam database :

  • db/wilayah.sql sesuai dengan Kepmendagri No. 300.2.2-2430 Tahun 2025
  • db/wilayah_level_1_2.sql sesuai Kepmendagri No. 300.2.2-2430 Tahun 2025 untuk data provinsi dan kab/kota dengan koordinat,elevation,timezone,luas, jumlah penduduk dan boundaries
  • db/archive/wilayah_2023.sql sesuai Kepmendagri No. 100.1.1-6117 Tahun 2022
  • db/archive/wilayah_2022.sql sesuai Permendagri No. 58 Tahun 2021 (revised by Kepmendagri No. 050-145 Tahun 2022)
  • db/archive/wilayah_2020.sql sesuai Permendagri No. 72 Tahun 2019 (revised by Kepmendagri No.146.1-4717 Tahun 2020)
  • db/archive/wilayah_2018.sql sesuai Permendagri No. 137 tahun 2017
  • db/archive/wilayah_2016.sql sesuai Permendagri No. 56 Tahun 2015
  • db/archive/wilayah_level_1_2-2022.sql sesuai Kepmendagri No. 100.1.1-6117 Tahun 2022 untuk data provinsi dan kab/kota dengan koordinat,elevation,timezone,luas, jumlah penduduk dan boundaries (mysql)
  • db/archive/wilayah_level_1_2_postgresql.sql sesuai Kepmendagri No. 100.1.1-6117 Tahun 2022 untuk data provinsi dan kab/kota dengan koordinat,elevation,timezone,luas, jumlah penduduk dan boundaries (postgresql)

Kode dan Data Pulau Indonesia dalam database :

  • db/wilayah_pulau.sql sesuai Kepmendagri No. 300.2.2-2430 Tahun 2025 untuk data pulau Indonesia dilengkapi dengan koordinat (lat, lng), status pulau (BP/TBP), luas, dan catatan
  • db/archive/pulau_2025.sql sesuai Kepmendagri No 300.2.2-2138 Tahun 2025
  • db/archive/pulau_2023.sql sesuai Kepmendagri No 100.1.1-6117 Tahun 2022
  • db/archive/pulau_2022.sql sesuai Permendagri No 58 Tahun 2021 (revised by Kepmendagri No. 050-145 Tahun 2022)

Data Jumlah Penduduk Indonesia per propinsi dan per kabupaten/kota dalam database

  • db/wilayah_penduduk.sql sesuai Kepmendagri No 300.2.2-2430 Tahun 2025 *

Data Luas wilayah Indonesia per provinsi dan per kabupaten/kota dalam database

  • db/wilayah_luas.sql sesuai dengan Kepmendagri No 300.2.2-2430 Tahun 2025 dan Badan Informasi Geospasial berdasarkan Surat Deputi Bidang Informasi Geospasial Dasar Nomor B-16.10/DIGD-BIG/IGD.04.04/12/2024, Tanggal 16 Desember 2024, Hal Penghitungan Luas Wilayah di Seluruh Indonesia

TAUTAN TERKAIT

Data Kepmendagri No 300.2.2-2430 Tahun 2025

Database Data dan Kode Wilayah Administrasi Pemerintahan sesuai Kepmendagri No 300.2.2-2430 Tahun 2025 (wilayah.sql)

id_provnamakabkotakeckeldesaluaspendudukpulau
11Aceh*1852900650056835.0195623479369*
12Sumatera Utara*258455693541772437.75515640905224*
13Sumatera Barat127179230103542107.6745820359219
14Riau102172271159189900.7807099297144
15Jambi92144171141449023.037383443914
16Sumatera Selatan134241403285686771.918906469024
17Bengkulu91129172134120122.21021279579
18Lampung132229205244633570.7589144263172
19Kepulauan Bangka Belitung61478430916670.2251549562501
21Kepulauan Riau52801442758170.37522718902028
31DKI Jakarta15442670661.53011038216113
32Jawa Barat189627646531137053.3315131637830
33Jawa Tengah296576753781034347.4283843064571
34DI Yogyakarta4178463923170.363374336537
35Jawa Timur299666773772148055.87641919906538
36Banten4415531412389355.7631288137480
51Bali8157806365582.827437526341
52Nusa Tenggara Barat82117145102119631.9915751295430
53Nusa Tenggara Timur211315305313746378.1055700772653
61Kalimantan Barat122174992046147018.0635646268260
62Kalimantan Tengah1311361391432153430.363282529071
63Kalimantan Selatan112156144187237125.4264305281165
64Kalimantan Timur73105197841126951.7584123303244
65Kalimantan Utara41553544769900.886770627196
71Sulawesi Utara114171332150714488.4292645291382
72Sulawesi Tengah121177175184261496.98332194941600
73Sulawesi Selatan213313793226645323.9759528276394
74Sulawesi Tenggara152221377190836139.3032824589591
75Gorontalo51777265712024.9821250960127
76Sulawesi Barat60697357516590.667146674169
81Maluku*9211935120046133.83219355861422
82Maluku Utara82118118106731465.9771394231975
91Papua*811055194881383.3151102360544
92Papua Barat70912180360308.5905762551498
93Papua Selatan408213677117858.9695622207
94Papua Tengah8013136117261079.587136911250
95Papua Pegunungan8025210261752508.65614705180
96+Papua Barat Daya511327493939103.0586231863082
TOTAL4169872858496752661890179.78428497364317380

NOTE :

)* data mengalami perubahan dari data sebelumnya (data Kepmendagri No. 300.2.2-2138 Tahun 2025)

  • Nama Provinsi diurutkan sesuai dengan Kode Wilayah Administrasi Pemerintahan
  • Luas wilayah (dalam km persegi) bersumber dari Badan Informasi Geospasial berdasarkan Surat Deputi Bidang Informasi Geospasial Dasar Nomor B-16.10/DIGD-BIG/IGD.04.04/12/2024, Tanggal 16 Desember 2024, Hal Penghitungan Luas Wilayah di Seluruh Indonesia
  • Jumlah penduduk bersumber dari Ditjen Kependudukan dan Pencatatan Sipil Kemendagri (Data Kependudukan Semester II Bulan Desember Tahun 2024)
  • Jumlah pulau termasuk 6 pulau besar ( Sumatera, Jawa, Kalimantan, Sulawesi, Timor, dan Papua)
  • Sumber data pulau Gazeter Republik Indonesia (GRI) Tahun 2024 yang diterbitkan oleh Badan Informasi Geospasial (BIG)

link demo bisa dilihat di sini : https://wilayah.cahyadsn.com/ screenshot

KODEFIKASI DATA WILAYAH

Kode Wilayah Administrasi Pemerintahan adalah serangkaian angka dan titik yang menunjukkan Kode dan Data Wilayah Administrasi Pemerintahan Indonesia pada setiap daerah/wilayah mulai dari tingkat desa/kelurahan, kecamatan, kota/kabupaten, hingga provinsi yang digunakan untuk mempermudah dan mempercepat pengelolaan wilayah administrasi pemerintahan Republik Indonesia.

Berdasarkan Permendagri No 58 Tahun 2021 kodefikasi data wilayah administrasi pemerintahan dan pulau adalah sesuai aturan susunan sebagai berikut:

FUNGSI DAN TUJUAN KODE WILAYAH

  • Identifikasi administratif: Memudahkan pengelolaan data dan informasi pemerintahan.
  • Standarisasi nasional: Digunakan dalam dokumen resmi, statistik, dan sistem informasi pemerintah.
  • Referensi geografis: Menunjukkan lokasi dan hierarki wilayah secara sistematis.

KODE WILAYAH

Kode Provinsi Kode untuk daerah provinsi terdiri dari 2 (dua) digit yaitu:

  1. Digit pertama Kode untuk daerah provinsi didasarkan pada letak geografis Pulau/kepulauan Indonesia yang dimulai dari arah barat ke timur; dan
  2. Digit kedua diisi sesuai dengan urutan pembentukan provinsi.

Kode Kabupaten/Kota Kode untuk daerah kabupaten/kota terdiri dari 4 (empat) digit, yaitu:

  1. Kode untuk daerah provinsi berjumlah 2 (dua) digit;
  2. Kode untuk daerah kabupaten/kota berjumlah 2 (dua) digit yang ditulis secara berurutan;
  3. Digit ketiga dan keempat dari 4 (empat) digit Kode untuk kabupaten diisi dengan angka 01 (nol satu) sampai dengan 69 (enam puluh sembilan); dan
  4. Digit ketiga dan keempat dari 4 (empat) digit Kode untuk kota diisi dengan angka 71 (tujuh puluh satu) sampai dengan 99 (sembilan puluh sembilan).

Kode Kecamatan Kode untuk Kecamatan berjumlah 6 (enam) digit yang terdiri dari Kode untuk daerah provinsi 2 (dua) digit, Kode untuk daerah kabupaten/kota berjumlah 2 (dua) digit, dan Kode untuk Kecamatan berjumlah 2 (dua) digit yang ditulis secara berurutan.

Kode Desa/Kelurahan Kode untuk Kelurahan dan Desa berjumlah 10 (sepuluh) digit, terdiri dari Kode untuk daerah provinsi berjumlah 2 (dua) digit, Kode untuk daerah kabupaten/kota berjumlah 2 (dua) digit, Kode untuk Kecamatan berjumlah 2 (dua) digit, dan Kode untuk Kelurahan dan Desa berjumlah 4 (empat) digit yang ditulis secara berurutan, sebagai berikut:

  1. urutan pertama dari 4 (empat) digit Kode untuk Kelurahan menggunakan angka 1 (satu); dan
  2. urutan pertama dari 4 (empat) digit Kode untuk Desa menggunakan angka 2 (dua).
  3. urutan pertama dari 4 (empat) digit Kode untuk Desa adat menggunakan angka 3 (tiga).

KODE PULAU

Kode Pulau berjumlah 9 (sembilan) digit terdiri dari:

  1. Kode untuk daerah provinsi berjumlah 2 (dua) digit,
  2. Kode untuk daerah kabupaten/kota berjumlah 2 (dua) digit; dan
  3. Kode Pulau berjumlah 5 (lima) digit dengan urutan pertama menggunakan angka 4 (empat).

REFERENSI

PENGUJIAN DATABASE

Untuk memeriksa validitas sintaksis file SQL di dalam direktori db/ serta mendeteksi duplikasi nilai 'kode', Anda dapat menjalankan skrip pemeriksa (syntax checker) berbasis Node.js yang terdapat pada folder tools/:

# Memeriksa data wilayah utama
node tools/check_sql_wilayah.js

# Memeriksa data wilayah tingkat 1 & 2 (Provinsi, Kab/Kota) beserta batas wilayah (polygon)
node tools/check_sql_wilayah_level_1_2.js

# Memeriksa data luas wilayah
node tools/check_sql_wilayah_luas.js

# Memeriksa data penduduk wilayah
node tools/check_sql_wilayah_penduduk.js

# Memeriksa data pulau
node tools/check_sql_wilayah_pulau.js

TODO

  • penambahan data kode pulau di web demo (ditambahkan panel daftar pulau di apps/index.php)

CHANGE LOG

  • [2026-10-08] 🆕
    • Panduan Instalasi & Pemutakhiran Web Apps (apps/ v3.2.0):
      • Menambahkan panduan instalasi komprehensif pada apps/README.md yang mencakup prasyarat sistem, langkah pembuatan & impor basis data SQL, konfigurasi variabel lingkungan (.env), izin folder cache, serta panduan menjalankan aplikasi via PHP built-in server maupun web server stack (Laragon / XAMPP).
      • Memutakhirkan versi aplikasi web menjadi v3.2.0 pada konfigurasi apps/.env, apps/.env.example, dan apps/index.php.
      • Mengabaikan direktori cache pengujian otomatis (/tests/apps/cache/*) pada .gitignore.
    • Revisi & Sinkronisasi Data Pulau (db/wilayah_pulau.sql):
      • Memverifikasi dan memvalidasi integritas sintaks SQL serta format data pulau sesuai Kepmendagri No. 300.2.2-2430 Tahun 2025 dengan pengujian tools/check_sql_wilayah_pulau.js unpublished.
  • [2026-10-07]
    • Revisi & Verifikasi Data Pulau (db/wilayah_pulau.sql):
      • Memverifikasi dan memvalidasi integritas sintaks SQL serta keunikan kode data pulau (17.374 baris pulau) sesuai Kepmendagri No. 300.2.2-2430 Tahun 2025 menggunakan skrip pemeriksa tools/check_sql_wilayah_pulau.js unpublished.
      • Memperbarui dokumentasi struktur tabel wilayah_pulau (kode, nama, lat, lng, status, luas, notes) pada README.md.
  • [2026-10-05]
    • Daftar Pulau di Panel Kanan Web Apps (apps/index.php):
      • Menambahkan panel samping kanan interaktif (#islandPanel) yang menampilkan daftar data kode dan nama pulau sesuai lokasi aktif provinsi (level 1) atau kabupaten/kota (level 2).
      • Menambahkan badge jumlah pulau (#islandCount), badge nama lokasi aktif (#islandLocationName), kotak pencarian instan (real-time filter by name & code), dan daftar pulau scrollable yang responsif.
      • Integrasi peta: Mengklik salah satu pulau di daftar akan memusatkan peta (flyTo) ke titik koordinat pulau, memunculkan penanda (marker) beserta popup informasi nama, kode, status, dan luas pulau, serta memperbarui info strip koordinat.
      • Menambahkan tombol ciutkan/bentangkan panel pulau (#islandToggle) dengan persistensi status di localStorage (wilayahIslandPanelCollapsed).
    • Backend & Database:
      • Menambahkan konfigurasi $tbl_pulau = "wilayah_pulau"; pada apps/inc/db.php.
      • Menambahkan fungsi pembantu getIslandsForCode($db, $tbl_pulau, $kode) pada apps/inc/geo_helpers.php untuk query data pulau berdasarkan prefix kode wilayah (2 digit provinsi atau 5 karakter kabupaten/kota).
      • Mengintegrasikan data pulau ke dalam respons JSON pada endpoint AJAX apps/inc/geo_ajax.php.
    • Frontend Script & Styling:
    • Pengujian Unit:
    • Metadata Berkas:
      • Memperbarui timestamp last edit pada seluruh berkas yang dimodifikasi.
  • [2026-10-01]
    • Add .env file support in apps/ for database credentials and application version (APP_VER).
    • Remove hardcoded default database credentials in apps/inc/db.php and load them from .env or environment variables.
    • Dynamically display application version in apps/index.php sourced from APP_VER (3.1.0).
    • Update file header last edit timestamps on modified files.
  • [2026-09-30]
  • [2026-09-25]
    • Add PHPUnit unit test suite for apps/logout.php in tests/AppsLogoutTest.php to verify session destruction, cookie clearance, and redirect flows.
    • Optimize pointInRing in apps/inc/reverse_lookup.php by moving coordinate array structure validation outside the ray-casting loop.
    • Verify and validate unit test coverage for apps/js/ajax.js in tests/apps/js/ajax.test.js.
    • Update file header last edit timestamps on modified files.
  • [2026-09-23]
  • [2026-09-15]
    • Optimize bounding box calculation using native PHP array functions (array_column(), min(), max()) in isPathReasonable() within apps/inc/geo_ajax.php.
  • [2026-09-11]
    • Extract shared province HTML dropdown generation into getProvinceOptionsHTML() in apps/inc/geo_helpers.php and reuse across apps/index.php and index.php.
    • Return raw array from fallbackBox() in apps/inc/geo_helpers.php to avoid redundant json_decode cycles during reverse lookup spatial calculations.
    • Optimize bounding box coordinate presence checks with isset() in apps/inc/geo_ajax.php.
    • Update file header last edit timestamps on modified files to match Git commit modification history.
  • [2026-09-09]
  • [2026-09-08]
    • Mitigate Login CSRF vulnerability in apps/login.php with CSRF session token initialization, form injection, and constant-time hash_equals() validation on POST requests; update tests/AppsLoginTest.php with invalid token test coverage.
    • Add Jest unit test suite for do_ajax() in tests/apps/js/ajax.test.js and add jest devDependency to package.json.

Riwayat perubahan selengkapnya dapat dilihat pada change_log.md.

INFORMASI

DONASI

  • untuk donasi via transfer
    • Bank BCA Digital (Blu) (501) 000 576 776 186
    • Bank Jago (542) 5003 5796 1022
    • Bank Sinarmas (153) 005 462 4719
    • Bank Syariah Indonesia (BSI) 821-342-5550
  • untuk donasi via PayPal [https://paypal.me/cahyadwiana]
  • untuk donasi via QRIS CAHYADSN ID1022183125288 :

screenshot

2025
data
indonesia
kepmendagri
kode
php
sql
wilayah

Significant stargazers

zmni

7 followers · starred Feb 2026

Hilman Ramadhan

684 followers · starred Jul 2025

Muhammad Fauzi

28 followers · starred Jan 2020

Joice Hielman Abbrori

0 followers · starred May 2026

cahyadsn/wilayah

Kode dan Data Wilayah Administrasi & Pulau Indonesia sesuai Kepmendagri No 300.2.2-2430 Tahun 2025 dengan PHP+MySQL+AJaX. Demo link : https://wilayah.cahyadsn.com/

SQL

1,328

946 commits

updated Oct 20, 2026

See the code

README

WILAYAH

Kode dan Data Wilayah Administrasi Pemerintahan dan Kode Pulau Indonesia sesuai Kepmendagri No 300.2.2-2430 Tahun 2025 menggunakan PHP+MySQL+AJaX

GitHub license GitHub issues GitHub forks GitHub stars GitHub commit activity GitHub last commit Donate

DEMO

tautan demo web apps versi 3.2.0

SCREENSHOT

screenshot

Kode dan Data Wilayah Pemerintahan Indonesia dalam database :

  • db/wilayah.sql sesuai dengan Kepmendagri No. 300.2.2-2430 Tahun 2025
  • db/wilayah_level_1_2.sql sesuai Kepmendagri No. 300.2.2-2430 Tahun 2025 untuk data provinsi dan kab/kota dengan koordinat,elevation,timezone,luas, jumlah penduduk dan boundaries
  • db/archive/wilayah_2023.sql sesuai Kepmendagri No. 100.1.1-6117 Tahun 2022
  • db/archive/wilayah_2022.sql sesuai Permendagri No. 58 Tahun 2021 (revised by Kepmendagri No. 050-145 Tahun 2022)
  • db/archive/wilayah_2020.sql sesuai Permendagri No. 72 Tahun 2019 (revised by Kepmendagri No.146.1-4717 Tahun 2020)
  • db/archive/wilayah_2018.sql sesuai Permendagri No. 137 tahun 2017
  • db/archive/wilayah_2016.sql sesuai Permendagri No. 56 Tahun 2015
  • db/archive/wilayah_level_1_2-2022.sql sesuai Kepmendagri No. 100.1.1-6117 Tahun 2022 untuk data provinsi dan kab/kota dengan koordinat,elevation,timezone,luas, jumlah penduduk dan boundaries (mysql)
  • db/archive/wilayah_level_1_2_postgresql.sql sesuai Kepmendagri No. 100.1.1-6117 Tahun 2022 untuk data provinsi dan kab/kota dengan koordinat,elevation,timezone,luas, jumlah penduduk dan boundaries (postgresql)

Kode dan Data Pulau Indonesia dalam database :

  • db/wilayah_pulau.sql sesuai Kepmendagri No. 300.2.2-2430 Tahun 2025 untuk data pulau Indonesia dilengkapi dengan koordinat (lat, lng), status pulau (BP/TBP), luas, dan catatan
  • db/archive/pulau_2025.sql sesuai Kepmendagri No 300.2.2-2138 Tahun 2025
  • db/archive/pulau_2023.sql sesuai Kepmendagri No 100.1.1-6117 Tahun 2022
  • db/archive/pulau_2022.sql sesuai Permendagri No 58 Tahun 2021 (revised by Kepmendagri No. 050-145 Tahun 2022)

Data Jumlah Penduduk Indonesia per propinsi dan per kabupaten/kota dalam database

  • db/wilayah_penduduk.sql sesuai Kepmendagri No 300.2.2-2430 Tahun 2025 *

Data Luas wilayah Indonesia per provinsi dan per kabupaten/kota dalam database

  • db/wilayah_luas.sql sesuai dengan Kepmendagri No 300.2.2-2430 Tahun 2025 dan Badan Informasi Geospasial berdasarkan Surat Deputi Bidang Informasi Geospasial Dasar Nomor B-16.10/DIGD-BIG/IGD.04.04/12/2024, Tanggal 16 Desember 2024, Hal Penghitungan Luas Wilayah di Seluruh Indonesia

TAUTAN TERKAIT

Data Kepmendagri No 300.2.2-2430 Tahun 2025

Database Data dan Kode Wilayah Administrasi Pemerintahan sesuai Kepmendagri No 300.2.2-2430 Tahun 2025 (wilayah.sql)

id_provnamakabkotakeckeldesaluaspendudukpulau
11Aceh*1852900650056835.0195623479369*
12Sumatera Utara*258455693541772437.75515640905224*
13Sumatera Barat127179230103542107.6745820359219
14Riau102172271159189900.7807099297144
15Jambi92144171141449023.037383443914
16Sumatera Selatan134241403285686771.918906469024
17Bengkulu91129172134120122.21021279579
18Lampung132229205244633570.7589144263172
19Kepulauan Bangka Belitung61478430916670.2251549562501
21Kepulauan Riau52801442758170.37522718902028
31DKI Jakarta15442670661.53011038216113
32Jawa Barat189627646531137053.3315131637830
33Jawa Tengah296576753781034347.4283843064571
34DI Yogyakarta4178463923170.363374336537
35Jawa Timur299666773772148055.87641919906538
36Banten4415531412389355.7631288137480
51Bali8157806365582.827437526341
52Nusa Tenggara Barat82117145102119631.9915751295430
53Nusa Tenggara Timur211315305313746378.1055700772653
61Kalimantan Barat122174992046147018.0635646268260
62Kalimantan Tengah1311361391432153430.363282529071
63Kalimantan Selatan112156144187237125.4264305281165
64Kalimantan Timur73105197841126951.7584123303244
65Kalimantan Utara41553544769900.886770627196
71Sulawesi Utara114171332150714488.4292645291382
72Sulawesi Tengah121177175184261496.98332194941600
73Sulawesi Selatan213313793226645323.9759528276394
74Sulawesi Tenggara152221377190836139.3032824589591
75Gorontalo51777265712024.9821250960127
76Sulawesi Barat60697357516590.667146674169
81Maluku*9211935120046133.83219355861422
82Maluku Utara82118118106731465.9771394231975
91Papua*811055194881383.3151102360544
92Papua Barat70912180360308.5905762551498
93Papua Selatan408213677117858.9695622207
94Papua Tengah8013136117261079.587136911250
95Papua Pegunungan8025210261752508.65614705180
96+Papua Barat Daya511327493939103.0586231863082
TOTAL4169872858496752661890179.78428497364317380

NOTE :

)* data mengalami perubahan dari data sebelumnya (data Kepmendagri No. 300.2.2-2138 Tahun 2025)

  • Nama Provinsi diurutkan sesuai dengan Kode Wilayah Administrasi Pemerintahan
  • Luas wilayah (dalam km persegi) bersumber dari Badan Informasi Geospasial berdasarkan Surat Deputi Bidang Informasi Geospasial Dasar Nomor B-16.10/DIGD-BIG/IGD.04.04/12/2024, Tanggal 16 Desember 2024, Hal Penghitungan Luas Wilayah di Seluruh Indonesia
  • Jumlah penduduk bersumber dari Ditjen Kependudukan dan Pencatatan Sipil Kemendagri (Data Kependudukan Semester II Bulan Desember Tahun 2024)
  • Jumlah pulau termasuk 6 pulau besar ( Sumatera, Jawa, Kalimantan, Sulawesi, Timor, dan Papua)
  • Sumber data pulau Gazeter Republik Indonesia (GRI) Tahun 2024 yang diterbitkan oleh Badan Informasi Geospasial (BIG)

link demo bisa dilihat di sini : https://wilayah.cahyadsn.com/ screenshot

KODEFIKASI DATA WILAYAH

Kode Wilayah Administrasi Pemerintahan adalah serangkaian angka dan titik yang menunjukkan Kode dan Data Wilayah Administrasi Pemerintahan Indonesia pada setiap daerah/wilayah mulai dari tingkat desa/kelurahan, kecamatan, kota/kabupaten, hingga provinsi yang digunakan untuk mempermudah dan mempercepat pengelolaan wilayah administrasi pemerintahan Republik Indonesia.

Berdasarkan Permendagri No 58 Tahun 2021 kodefikasi data wilayah administrasi pemerintahan dan pulau adalah sesuai aturan susunan sebagai berikut:

FUNGSI DAN TUJUAN KODE WILAYAH

  • Identifikasi administratif: Memudahkan pengelolaan data dan informasi pemerintahan.
  • Standarisasi nasional: Digunakan dalam dokumen resmi, statistik, dan sistem informasi pemerintah.
  • Referensi geografis: Menunjukkan lokasi dan hierarki wilayah secara sistematis.

KODE WILAYAH

Kode Provinsi Kode untuk daerah provinsi terdiri dari 2 (dua) digit yaitu:

  1. Digit pertama Kode untuk daerah provinsi didasarkan pada letak geografis Pulau/kepulauan Indonesia yang dimulai dari arah barat ke timur; dan
  2. Digit kedua diisi sesuai dengan urutan pembentukan provinsi.

Kode Kabupaten/Kota Kode untuk daerah kabupaten/kota terdiri dari 4 (empat) digit, yaitu:

  1. Kode untuk daerah provinsi berjumlah 2 (dua) digit;
  2. Kode untuk daerah kabupaten/kota berjumlah 2 (dua) digit yang ditulis secara berurutan;
  3. Digit ketiga dan keempat dari 4 (empat) digit Kode untuk kabupaten diisi dengan angka 01 (nol satu) sampai dengan 69 (enam puluh sembilan); dan
  4. Digit ketiga dan keempat dari 4 (empat) digit Kode untuk kota diisi dengan angka 71 (tujuh puluh satu) sampai dengan 99 (sembilan puluh sembilan).

Kode Kecamatan Kode untuk Kecamatan berjumlah 6 (enam) digit yang terdiri dari Kode untuk daerah provinsi 2 (dua) digit, Kode untuk daerah kabupaten/kota berjumlah 2 (dua) digit, dan Kode untuk Kecamatan berjumlah 2 (dua) digit yang ditulis secara berurutan.

Kode Desa/Kelurahan Kode untuk Kelurahan dan Desa berjumlah 10 (sepuluh) digit, terdiri dari Kode untuk daerah provinsi berjumlah 2 (dua) digit, Kode untuk daerah kabupaten/kota berjumlah 2 (dua) digit, Kode untuk Kecamatan berjumlah 2 (dua) digit, dan Kode untuk Kelurahan dan Desa berjumlah 4 (empat) digit yang ditulis secara berurutan, sebagai berikut:

  1. urutan pertama dari 4 (empat) digit Kode untuk Kelurahan menggunakan angka 1 (satu); dan
  2. urutan pertama dari 4 (empat) digit Kode untuk Desa menggunakan angka 2 (dua).
  3. urutan pertama dari 4 (empat) digit Kode untuk Desa adat menggunakan angka 3 (tiga).

KODE PULAU

Kode Pulau berjumlah 9 (sembilan) digit terdiri dari:

  1. Kode untuk daerah provinsi berjumlah 2 (dua) digit,
  2. Kode untuk daerah kabupaten/kota berjumlah 2 (dua) digit; dan
  3. Kode Pulau berjumlah 5 (lima) digit dengan urutan pertama menggunakan angka 4 (empat).

REFERENSI

PENGUJIAN DATABASE

Untuk memeriksa validitas sintaksis file SQL di dalam direktori db/ serta mendeteksi duplikasi nilai 'kode', Anda dapat menjalankan skrip pemeriksa (syntax checker) berbasis Node.js yang terdapat pada folder tools/:

# Memeriksa data wilayah utama
node tools/check_sql_wilayah.js

# Memeriksa data wilayah tingkat 1 & 2 (Provinsi, Kab/Kota) beserta batas wilayah (polygon)
node tools/check_sql_wilayah_level_1_2.js

# Memeriksa data luas wilayah
node tools/check_sql_wilayah_luas.js

# Memeriksa data penduduk wilayah
node tools/check_sql_wilayah_penduduk.js

# Memeriksa data pulau
node tools/check_sql_wilayah_pulau.js

TODO

  • penambahan data kode pulau di web demo (ditambahkan panel daftar pulau di apps/index.php)

CHANGE LOG

  • [2026-10-08] 🆕
    • Panduan Instalasi & Pemutakhiran Web Apps (apps/ v3.2.0):
      • Menambahkan panduan instalasi komprehensif pada apps/README.md yang mencakup prasyarat sistem, langkah pembuatan & impor basis data SQL, konfigurasi variabel lingkungan (.env), izin folder cache, serta panduan menjalankan aplikasi via PHP built-in server maupun web server stack (Laragon / XAMPP).
      • Memutakhirkan versi aplikasi web menjadi v3.2.0 pada konfigurasi apps/.env, apps/.env.example, dan apps/index.php.
      • Mengabaikan direktori cache pengujian otomatis (/tests/apps/cache/*) pada .gitignore.
    • Revisi & Sinkronisasi Data Pulau (db/wilayah_pulau.sql):
      • Memverifikasi dan memvalidasi integritas sintaks SQL serta format data pulau sesuai Kepmendagri No. 300.2.2-2430 Tahun 2025 dengan pengujian tools/check_sql_wilayah_pulau.js unpublished.
  • [2026-10-07]
    • Revisi & Verifikasi Data Pulau (db/wilayah_pulau.sql):
      • Memverifikasi dan memvalidasi integritas sintaks SQL serta keunikan kode data pulau (17.374 baris pulau) sesuai Kepmendagri No. 300.2.2-2430 Tahun 2025 menggunakan skrip pemeriksa tools/check_sql_wilayah_pulau.js unpublished.
      • Memperbarui dokumentasi struktur tabel wilayah_pulau (kode, nama, lat, lng, status, luas, notes) pada README.md.
  • [2026-10-05]
    • Daftar Pulau di Panel Kanan Web Apps (apps/index.php):
      • Menambahkan panel samping kanan interaktif (#islandPanel) yang menampilkan daftar data kode dan nama pulau sesuai lokasi aktif provinsi (level 1) atau kabupaten/kota (level 2).
      • Menambahkan badge jumlah pulau (#islandCount), badge nama lokasi aktif (#islandLocationName), kotak pencarian instan (real-time filter by name & code), dan daftar pulau scrollable yang responsif.
      • Integrasi peta: Mengklik salah satu pulau di daftar akan memusatkan peta (flyTo) ke titik koordinat pulau, memunculkan penanda (marker) beserta popup informasi nama, kode, status, dan luas pulau, serta memperbarui info strip koordinat.
      • Menambahkan tombol ciutkan/bentangkan panel pulau (#islandToggle) dengan persistensi status di localStorage (wilayahIslandPanelCollapsed).
    • Backend & Database:
      • Menambahkan konfigurasi $tbl_pulau = "wilayah_pulau"; pada apps/inc/db.php.
      • Menambahkan fungsi pembantu getIslandsForCode($db, $tbl_pulau, $kode) pada apps/inc/geo_helpers.php untuk query data pulau berdasarkan prefix kode wilayah (2 digit provinsi atau 5 karakter kabupaten/kota).
      • Mengintegrasikan data pulau ke dalam respons JSON pada endpoint AJAX apps/inc/geo_ajax.php.
    • Frontend Script & Styling:
    • Pengujian Unit:
    • Metadata Berkas:
      • Memperbarui timestamp last edit pada seluruh berkas yang dimodifikasi.
  • [2026-10-01]
    • Add .env file support in apps/ for database credentials and application version (APP_VER).
    • Remove hardcoded default database credentials in apps/inc/db.php and load them from .env or environment variables.
    • Dynamically display application version in apps/index.php sourced from APP_VER (3.1.0).
    • Update file header last edit timestamps on modified files.
  • [2026-09-30]
  • [2026-09-25]
    • Add PHPUnit unit test suite for apps/logout.php in tests/AppsLogoutTest.php to verify session destruction, cookie clearance, and redirect flows.
    • Optimize pointInRing in apps/inc/reverse_lookup.php by moving coordinate array structure validation outside the ray-casting loop.
    • Verify and validate unit test coverage for apps/js/ajax.js in tests/apps/js/ajax.test.js.
    • Update file header last edit timestamps on modified files.
  • [2026-09-23]
  • [2026-09-15]
    • Optimize bounding box calculation using native PHP array functions (array_column(), min(), max()) in isPathReasonable() within apps/inc/geo_ajax.php.
  • [2026-09-11]
    • Extract shared province HTML dropdown generation into getProvinceOptionsHTML() in apps/inc/geo_helpers.php and reuse across apps/index.php and index.php.
    • Return raw array from fallbackBox() in apps/inc/geo_helpers.php to avoid redundant json_decode cycles during reverse lookup spatial calculations.
    • Optimize bounding box coordinate presence checks with isset() in apps/inc/geo_ajax.php.
    • Update file header last edit timestamps on modified files to match Git commit modification history.
  • [2026-09-09]
  • [2026-09-08]
    • Mitigate Login CSRF vulnerability in apps/login.php with CSRF session token initialization, form injection, and constant-time hash_equals() validation on POST requests; update tests/AppsLoginTest.php with invalid token test coverage.
    • Add Jest unit test suite for do_ajax() in tests/apps/js/ajax.test.js and add jest devDependency to package.json.

Riwayat perubahan selengkapnya dapat dilihat pada change_log.md.

INFORMASI

DONASI

  • untuk donasi via transfer
    • Bank BCA Digital (Blu) (501) 000 576 776 186
    • Bank Jago (542) 5003 5796 1022
    • Bank Sinarmas (153) 005 462 4719
    • Bank Syariah Indonesia (BSI) 821-342-5550
  • untuk donasi via PayPal [https://paypal.me/cahyadwiana]
  • untuk donasi via QRIS CAHYADSN ID1022183125288 :

screenshot

2025
data
indonesia
kepmendagri
kode
php
sql
wilayah

Significant stargazers

zmni

7 followers · starred Feb 2026

Hilman Ramadhan

684 followers · starred Jul 2025

Muhammad Fauzi

28 followers · starred Jan 2020

Joice Hielman Abbrori

0 followers · starred May 2026