PHPackages                             maftuhichsan/sqlite-wilayah-indonesia - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. maftuhichsan/sqlite-wilayah-indonesia

ActiveLibrary

maftuhichsan/sqlite-wilayah-indonesia
=====================================

Database SQLite wilayah Indonesia (provinsi, kabupaten, kecamatan, desa) berdasarkan BPS (Badan Pusat Statistik).

v1.1.1(8mo ago)32822385MITDockerfilePHP &gt;=7.4

Since Jul 5Pushed 8mo ago2 watchersCompare

[ Source](https://github.com/maftuh23/sqllite-api-wilayah-indonesia)[ Packagist](https://packagist.org/packages/maftuhichsan/sqlite-wilayah-indonesia)[ GitHub Sponsors](https://github.com/maftuh23)[ RSS](/packages/maftuhichsan-sqlite-wilayah-indonesia/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (2)DependenciesVersions (4)Used By (0)

🇮🇩 SQLite Wilayah Indonesia
===========================

[](#-sqlite-wilayah-indonesia)

Database SQLite berisi **data wilayah administratif Indonesia** berdasarkan BPS (Badan Pusat Statistik) yang lengkap:

✅ Provinsi
✅ Kabupaten/Kota
✅ Kecamatan
✅ Desa/Kelurahan
✅ Kode Pos

Data ini berguna untuk aplikasi web, mobile, dan API yang membutuhkan referensi wilayah Indonesia secara hierarki.

---

🎯 Fitur
-------

[](#-fitur)

- Data resmi dan lengkap wilayah Indonesia
- Format SQLite yang ringan, cepat, dan portable
- **Open source**, bebas digunakan untuk keperluan komersial &amp; non-komersial
- Mudah diintegrasikan dengan Laravel, CodeIgniter, Node.js, atau framework lain
- Relasi antar tabel memudahkan query data secara bertingkat

---

📂 Struktur Database
-------------------

[](#-struktur-database)

Database `records.sqlite` berisi tabel:

- `cities`
- `countries`
- `postal_codes`
- `provinces`
- `sqlite_sequence`
- `sub_districts`
- `translations`
- `villages`

**Relasi antar tabel:**

- `cities.city_province_code` → `provinces.province_code`
- `sub_districts.sub_district_city_code` → `cities.city_code`
- `villages.village_sub_district_code` → `sub_districts.sub_district_code`
- `postal_codes` berisi kode pos untuk berbagai wilayah

---

Docker Image
------------

[](#docker-image)

📦 Tersedia Docker Image

🔗 Docker Hub - [maftuhichsan/sqlite-wilayah-indonesia](https://hub.docker.com/r/maftuh23/sqlite-wilayah-indonesia)

Cara Pull dan Jalankan (Docker Compose)

1. Tambahkan ke docker-compose.yml:

```
version: '3.8'

services:
  sqlite-wilayah:å
    image: maftuh23/sqlite-wilayah-indonesia:latest
    container_name: sqlite-wilayah
    volumes:
      - ./data:/data  # Simpan database di folder ./data
    restart: unless-stopped
```

2. Jalankan perintah:

```
docker-compose up -d
```

3. Akses file database SQLite di folder ./data/records.sqlite atau sesuai mount volume yang Anda set.

Cara Pull Manual (Tanpa Compose):

```
docker pull maftuh23/sqlite-wilayah-indonesia:latest
docker run -d --name sqlite-wilayah -v $(pwd)/data:/data maftuh23/sqlite-wilayah-indonesia:latest
```

Composer
--------

[](#composer)

📦 Instalasi via Composer

Paket ini tersedia di Packagist:

🔗 Packagist - maftuhichsan/sqlite-wilayah-indonesia

Cara Install

Jalankan perintah Composer:

composer require maftuhichsan/sqlite-wilayah-indonesia

Setelah itu, Anda bisa menggunakan file database yang ada di dalam vendor path:

vendor/maftuhichsan/sqlite-wilayah-indonesia/database/records.sqlite

⸻

✨ Contoh Penggunaan di PHP (PDO)

```
$db = new PDO(__DIR__.'/vendor/maftuhichsan/sqlite-wilayah-indonesia/database/records.sqlite');

// Ambil semua provinsi
$stmt = $db->query("SELECT * FROM provinces");
$provinces = $stmt->fetchAll(PDO::FETCH_ASSOC);

print_r($provinces);
```

⸻

NPM
---

[](#npm)

📦 Instalasi via NPM

Paket ini tersedia di NPM:

🔗 NPM - sqlite-wilayah-indonesia

Cara Install

Jalankan perintah package manager NPM:

npm install sqlite-wilayah-indonesia

⸻

✨ Contoh Penggunaan di Node.js

```
// Contoh menggunakan sqlite3
const sqlite3 = require('sqlite3').verbose();
const path = require('path');

// Arahkan ke file SQLite di node_modules
const dbPath = path.join(
  __dirname,
  'node_modules',
  'sqlite-wilayah-indonesia',
  'database',
  'records.sqlite'
);

const db = new sqlite3.Database(dbPath);

// Ambil semua provinsi
db.all("SELECT * FROM provinces", [], (err, rows) => {
  if (err) {
    throw err;
  }
  console.log(rows);
});

db.close();
```

⸻

🚀 Cara Pakai
------------

[](#-cara-pakai)

### 1️⃣ Unduh Database

[](#1️⃣-unduh-database)

Download file `records.sqlite` dari repository ini, lalu simpan di project Anda.

### 2️⃣ Query SQL Langsung

[](#2️⃣-query-sql-langsung)

Contoh query SQL dasar:

```
-- Ambil semua provinsi
SELECT * FROM provinces;

-- Ambil kabupaten/kota berdasarkan ID provinsi
SELECT * FROM cities WHERE city_province_code = '31';

-- Ambil kecamatan berdasarkan ID kabupaten/kota
SELECT * FROM sub_districts WHERE sub_district_city_code = '3171';

-- Ambil desa/kelurahan berdasarkan ID kecamatan
SELECT * FROM villages WHERE village_sub_district_code = '3171020';
```

🌐 Endpoint API :
----------------

[](#-endpoint-api-)

URL :

### `/province`

[](#province)

Mengembalikan daftar provinsi.

Contoh: [`/api/province`](https://api.kirimin.id/api/province)

### `/city/{province.id}`

[](#cityprovinceid)

Mengembalikan daftar kota.

Contoh: [`/api/city/33`](https://api.kirimin.id/api/city/33)

### `/sub_district/{city.id}`

[](#sub_districtcityid)

Mengembalikan daftar Kecamatan.

Contoh: [`/api/sub_district/3301`](https://api.kirimin.id/api/sub_district/3301)

### `/village/{sub_district.id}`

[](#villagesub_districtid)

Mengembalikan daftar Kelurahan/Desa.

Contoh: [`/api/village/3372020`](https://api.kirimin.id/api/village/3372020)

###  Health Score

39

—

LowBetter than 86% of packages

Maintenance58

Moderate activity, may be stable

Popularity35

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~46 days

Total

2

Last Release

265d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/57381071f327bf7ef1eca61d1d8d9226f283ac35a0d6d3c42616ae1117b3d2a3?d=identicon)[maftuh23](/maintainers/maftuh23)

---

Top Contributors

[![maftuh23](https://avatars.githubusercontent.com/u/45479892?v=4)](https://github.com/maftuh23 "maftuh23 (23 commits)")

### Embed Badge

![Health badge](/badges/maftuhichsan-sqlite-wilayah-indonesia/health.svg)

```
[![Health](https://phpackages.com/badges/maftuhichsan-sqlite-wilayah-indonesia/health.svg)](https://phpackages.com/packages/maftuhichsan-sqlite-wilayah-indonesia)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
