Skip to content

izzulabadi/api-wilayah-indonesia-2026

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API Wilayah Indonesia Tahun 2026

Validate API JSON Lihat Demo

Data wilayah administrasi Indonesia (Provinsi, Kabupaten/Kota, Kecamatan, Desa/Kelurahan) dalam format JSON.

Repositori ini menyediakan data wilayah Indonesia yang mudah diakses secara langsung (static API) melalui GitHub Pages atau CDN (jsDelivr).

Daftar Isi

Tentang

Proyek ini menggunakan data wilayah terbaru (2026) yang bersumber dari izzulabadi/api-wilayah-indonesia-2026.

API ini dikemas dengan pendekatan statis (tanpa database/backend). Cukup hosting file JSON statis (misalnya di GitHub Pages) dan klien bisa langsung mengambil data yang dibutuhkan.

Kelebihan pendekatan ini:

  • Cepat & Murah: Bisa di-hosting gratis di GitHub Pages, Vercel, atau Netlify.
  • CDN Ready: Bisa diakses lewat jsDelivr untuk performa tinggi dan caching global.
  • Optimasi: Data desa (villages) yang besar dipecah per-kecamatan untuk mengurangi ukuran download.

Struktur Data

Data disimpan dalam folder api/ dengan format JSON Array.

Provinsi (provinces.json)

[
  {
    "id": "11",
    "name": "ACEH"
  },
  ...
]

Kabupaten/Kota (regencies.json)

[
  {
    "id": "1101",
    "provinceId": "11",
    "name": "KABUPATEN SIMEULUE"
  },
  ...
]

Kecamatan (districts.json)

[
  {
    "id": "1101010",
    "regencyId": "1101",
    "name": "TEUPAH SELATAN"
  },
  ...
]

Desa/Kelurahan (villages.json & villages/{districtId}.json)

[
  {
    "id": "1101010001",
    "districtId": "1101010",
    "name": "LATIUNG"
  },
  ...
]

Endpoints

Anda dapat mengakses data langsung melalui URL berikut (ganti <username> dan <repo> sesuai repositori Anda, atau gunakan URL demo jika tersedia).

Base URL (jsDelivr - Recommended): https://cdn.jsdelivr.net/gh/izzulabadi/api-wilayah-indonesia-2026@v1.0.4/api

Catatan: ID yang digunakan dalam API ini mengikuti standar kode wilayah BPS (Badan Pusat Statistik).

Deskripsi Endpoint Contoh URL (Jawa Barat)
Semua Provinsi /provinces.json Link
Semua Kabupaten /regencies.json Link
Kabupaten per Provinsi /regencies/{provinceId}.json Link
Semua Kecamatan /districts.json Link
Kecamatan per Kabupaten /districts/{regencyId}.json Link
Semua Desa (Besar!) /villages.json Link
Desa per Kecamatan /villages/{districtId}.json Link

Catatan: Sangat disarankan menggunakan endpoint granular (/regencies/{provinceId}.json, /districts/{regencyId}.json, /villages/{districtId}.json) untuk performa aplikasi yang maksimal.

Cara Penggunaan

Contoh Fetch (JavaScript)

Mengambil daftar provinsi:

fetch('https://cdn.jsdelivr.net/gh/izzulabadi/api-wilayah-indonesia-2026@v1.0.4/api/provinces.json')
  .then(response => response.json())
  .then(provinces => console.log(provinces));

Mengambil daftar desa di Kecamatan Bakongan (ID: 110101):

fetch('https://cdn.jsdelivr.net/gh/izzulabadi/api-wilayah-indonesia-2026@v1.0.4/api/villages/110101.json')
  .then(response => response.json())
  .then(villages => console.log(villages));

Contoh Fetch (PHP)

<?php
$url = 'https://cdn.jsdelivr.net/gh/izzulabadi/api-wilayah-indonesia-2026@v1.0.4/api/provinces.json';
$data = file_get_contents($url);
$provinces = json_decode($data, true);

print_r($provinces);
?>

Contoh Fetch (Python)

import requests

url = 'https://cdn.jsdelivr.net/gh/izzulabadi/api-wilayah-indonesia-2026@v1.0.4/api/provinces.json'
response = requests.get(url)
provinces = response.json()

print(provinces)

Contoh Fetch (Go)

package main

import (
	"encoding/json"
	"fmt"
	"net/http"
)

func main() {
	resp, _ := http.Get("https://cdn.jsdelivr.net/gh/izzulabadi/api-wilayah-indonesia-2026@v1.0.4/api/provinces.json")
	defer resp.Body.Close()

	var provinces []map[string]interface{}
	json.NewDecoder(resp.Body).Decode(&provinces)

	fmt.Println(provinces)
}

Contoh Filter (Client-side)

Karena data berbentuk array statis, Anda bisa melakukan filter di sisi klien (browser).

// Contoh: Cari kabupaten di provinsi Aceh (ID: 11)
const regencies = await fetch('/api/regencies.json').then(r => r.json());
const acehRegencies = regencies.filter(regency => regency.provinceId === '11');
console.log(acehRegencies);

Instalasi & Pengembangan

Jika Anda ingin mengembangkan atau memodifikasi data ini secara lokal:

  1. Clone repositori

    git clone https://github.com/izzulabadi/api-wilayah-indonesia-2026.git
    cd api-wilayah-indonesia-2026
  2. Install dependencies (hanya butuh Node.js)

    # Tidak ada dependensi npm khusus, cukup Node.js bawaan
    node -v
  3. Update Data

    • Edit file JSON di folder api/ jika diperlukan.
    • Jika mengubah data desa, jalankan script split untuk memperbarui file per-kecamatan:
      node scripts/split-villages.js
  4. Validasi & Build Manifest

    • Jalankan script publish untuk memvalidasi file dan membuat manifest.json:
      node scripts/publish-api.js
  5. Commit & Push

    git add .
    git commit -m "Update data wilayah"
    git push origin main

Lisensi

Data wilayah ini bersumber dari izzulabadi/api-wilayah-indonesia-2026. Silakan merujuk ke repositori tersebut untuk informasi lisensi data yang lebih spesifik.

Repositori ini (skrip dan dokumentasi) bersifat open source. Jika bermanfaat, jangan lupa berikan ⭐️!

About

Data wilayah Indonesia tahun 2026 yang mudah diakses secara langsung (static API) melalui GitHub Pages atau CDN (jsDelivr).

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors