PHPackages                             didiwijaya/wilindo - 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. [Database &amp; ORM](/categories/database)
4. /
5. didiwijaya/wilindo

ActiveLibrary[Database &amp; ORM](/categories/database)

didiwijaya/wilindo
==================

Package Laravel (Migration &amp; Seeder) untuk wilayah Indonesia berdasarkan data SPLP Kemendagri

v2.0.0(7mo ago)19841MITPHPPHP ^8.0

Since Aug 30Pushed 7mo ago1 watchersCompare

[ Source](https://github.com/didiwijaya/wilindo)[ Packagist](https://packagist.org/packages/didiwijaya/wilindo)[ RSS](/packages/didiwijaya-wilindo/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (2)Dependencies (4)Versions (3)Used By (0)

WilIndo
=======

[](#wilindo)

[![License](https://camo.githubusercontent.com/0504e4dd3a661d1f15c74c37bbb17a6664f072e26690f285ec0f60172a98db1c/68747470733a2f2f706f7365722e707567782e6f72672f6469646977696a6179612f77696c696e646f2f6c6963656e7365)](https://packagist.org/packages/wilindo/license) [![Total Downloads](https://camo.githubusercontent.com/789f0ae03810c92d02cc5e82f721012c2226079609bdba1a767c14503f5f24aa/68747470733a2f2f706f7365722e707567782e6f72672f6469646977696a6179612f77696c696e646f2f646f776e6c6f616473)](https://packagist.org/packages/didiwijaya/wilindo)

Package Laravel untuk menambahkan migration dan seeder ke project Anda, dimana migration dan seeder tersebut digunakan untuk menyimpan data wilayah Indonesia mulai dari Provinsi, Kabupaten/Kota, Kecamatan dan Desa/Kelurahan.

📡 Sumber Data
-------------

[](#-sumber-data)

Data wilayah Indonesia (Provinsi, Kabupaten/Kota, Kecamatan, Desa/Kelurahan) bersumber dari layanan master\_data\_wilayah yang disediakan oleh Kementerian Dalam Negeri melalui aplikasi SPLP yang dikelola oleh Kementerian Komunikasi dan Digital (Komdigi).

**Dashboard API SPLP dapat diakses melalui:**🔗

*(catatan: hanya dapat diakses dari jaringan intra pemerintah)*

Namun, API master\_data\_wilayah dapat diakses secara publik, sehingga integrasi ke dalam aplikasi Laravel tidak memerlukan akses jaringan internal pemerintah.

📋 Fitur
-------

[](#-fitur)

- ✅ Migration untuk 4 tabel wilayah (Provinsi, Kabupaten/Kota, Kecamatan, Desa/Kelurahan)
- ✅ Seeder otomatis dari API SPLP Kemendagri
- ✅ Model Eloquent dengan relationship yang lengkap
- ✅ Helper class untuk query data yang mudah
- ✅ Error handling dan progress tracking
- ✅ Chunking data untuk performa optimal
- ✅ Index database untuk query yang cepat
- ✅ Configurable table prefix

🚀 Instalasi
-----------

[](#-instalasi)

### Via Composer

[](#via-composer)

```
composer require didiwijaya/wilindo
```

### Publish Assets

[](#publish-assets)

```
php artisan wilindo:publish
```

### Jalankan Migration

[](#jalankan-migration)

```
php artisan migrate
```

### Jalankan Seeder

[](#jalankan-seeder)

```
php artisan db:seed --class=WilindoSeeder
```

📖 Penggunaan
------------

[](#-penggunaan)

### Menggunakan Model

[](#menggunakan-model)

```
use DidiWijaya\WilIndo\Models\Province;
use DidiWijaya\WilIndo\Models\City;
use DidiWijaya\WilIndo\Models\District;
use DidiWijaya\WilIndo\Models\Village;

// Ambil semua provinsi
$provinces = Province::all();

// Ambil kota berdasarkan provinsi
$cities = City::byProvince('32')->get();

// Ambil kecamatan berdasarkan kota
$districts = District::byCity('3201')->get();

// Ambil desa berdasarkan kecamatan
$villages = Village::byDistrict('3201010')->get();

// Ambil data lengkap dengan relationship
$village = Village::with(['district.city.province'])->find(1);
```

### Menggunakan Helper

[](#menggunakan-helper)

```
use DidiWijaya\WilIndo\Helpers\WilindoHelper;

// Ambil semua provinsi
$provinces = WilindoHelper::getProvinces();

// Ambil kota berdasarkan provinsi
$cities = WilindoHelper::getCitiesByProvince('32');

// Ambil alamat lengkap berdasarkan kode desa
$address = WilindoHelper::getCompleteAddress('3201010001');

// Cari provinsi berdasarkan nama
$provinces = WilindoHelper::searchProvinces('Jawa');

// Ambil statistik data
$stats = WilindoHelper::getStatistics();
```

⚙️ Konfigurasi
--------------

[](#️-konfigurasi)

File konfigurasi tersimpan di `config/wilindo.php`:

```
return [
    'prefix' => 'wilindo_', // Prefix untuk nama tabel
];
```

📊 Struktur Database
-------------------

[](#-struktur-database)

### Tabel Provinsi

[](#tabel-provinsi)

- `id` - Primary key
- `code` - Kode provinsi (2 digit)
- `name` - Nama provinsi
- `created_at`, `updated_at` - Timestamps

### Tabel Kabupaten/Kota

[](#tabel-kabupatenkota)

- `id` - Primary key
- `code` - Kode kabupaten/kota (4 digit)
- `province_code` - Foreign key ke tabel provinsi
- `name` - Nama kabupaten/kota
- `created_at`, `updated_at` - Timestamps

### Tabel Kecamatan

[](#tabel-kecamatan)

- `id` - Primary key
- `code` - Kode kecamatan (7 digit)
- `city_code` - Foreign key ke tabel kabupaten/kota
- `name` - Nama kecamatan
- `created_at`, `updated_at` - Timestamps

### Tabel Desa/Kelurahan

[](#tabel-desakelurahan)

- `id` - Primary key
- `code` - Kode desa/kelurahan (10 digit)
- `district_code` - Foreign key ke tabel kecamatan
- `name` - Nama desa/kelurahan
- `created_at`, `updated_at` - Timestamps

🔧 Command
---------

[](#-command)

### Publish Assets

[](#publish-assets-1)

```
php artisan wilindo:publish
```

### Publish Config Only

[](#publish-config-only)

```
php artisan vendor:publish --tag=wilindo-config
```

### Publish Migrations Only

[](#publish-migrations-only)

```
php artisan vendor:publish --tag=wilindo-migrations
```

### Publish Seeders Only

[](#publish-seeders-only)

```
php artisan vendor:publish --tag=wilindo-seeders
```

📊 Data Kemendagri dari Layanan SPLP
-----------------------------------

[](#-data-kemendagri-dari-layanan-splp)

*Tabel statis ini dibuat pada: 29 September 2025 | Data real-time dari API SPLP Kemendagri*

Kode ProvinsiNama ProvinsiKab/KotaKecamatanKel/Desa11Aceh23290650012Sumatera Utara33455611013Sumatera Barat19179126514Riau12172186215Jambi11144158516Sumatera Selatan17241325817Bengkulu10129151318Lampung15229265119Kepulauan Bangka Belitung74739321Kepulauan Riau78041931DKI Jakarta64426732Jawa Barat27627595733Jawa Tengah35576856334Daerah Istimewa Yogyakarta57843835Jawa Timur38666849436Banten8155155251Bali95771652Nusa Tenggara Barat10117116653Nusa Tenggara Timur22315344261Kalimantan Barat14174214562Kalimantan Tengah14136157163Kalimantan Selatan13156201664Kalimantan Timur10105103865Kalimantan Utara55548271Sulawesi Utara15171183972Sulawesi Tengah13175201773Sulawesi Selatan24313305974Sulawesi Tenggara17221228775Gorontalo67772976Sulawesi Barat66964881Maluku11118123582Maluku Utara10118118591P A P U A910599992Papua Barat78682493Papua Selatan48269094Papua Tengah8131120895Papua Pegunungan8252262796Papua Barat Daya61321018**Total****38****514****7277****83768**📝 Catatan
---------

[](#-catatan)

- Data diambil dari API master\_data\_wilayah SPLP Kemendagri secara real-time
- API dapat diakses secara publik tanpa perlu akses jaringan internal pemerintah
- Proses seeding mungkin memakan waktu lama karena data yang besar
- Pastikan koneksi internet stabil saat menjalankan seeder
- Memory limit akan otomatis ditingkatkan untuk seeder desa/kelurahan

🤝 Kontribusi
------------

[](#-kontribusi)

Silakan buat issue atau pull request untuk perbaikan dan fitur baru.

📄 Lisensi
---------

[](#-lisensi)

MIT License

###  Health Score

37

—

LowBetter than 83% of packages

Maintenance63

Regular maintenance activity

Popularity19

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 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 ~760 days

Total

2

Last Release

224d ago

Major Versions

1.0.0 → v2.0.02025-09-29

### Community

Maintainers

![](https://www.gravatar.com/avatar/4896f78a5fdbdb69926e00e022b85e13465037d55216add63c62f39f2fe9c4b9?d=identicon)[didiwijaya](/maintainers/didiwijaya)

---

Top Contributors

[![didiwijaya](https://avatars.githubusercontent.com/u/9588789?v=4)](https://github.com/didiwijaya "didiwijaya (10 commits)")

---

Tags

addressapicitiesdatabasedistrictsgeographyindonesiakemendagrilaravellocationmigrationphpprovincesseedersplpvillageswilayahphplaravelindonesiawilayahcitiesprovincesdistrictsvillages

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/didiwijaya-wilindo/health.svg)

```
[![Health](https://phpackages.com/badges/didiwijaya-wilindo/health.svg)](https://phpackages.com/packages/didiwijaya-wilindo)
```

###  Alternatives

[tucker-eric/eloquentfilter

An Eloquent way to filter Eloquent Models

1.8k4.8M26](/packages/tucker-eric-eloquentfilter)[spiritix/lada-cache

A Redis based, automated and scalable database caching layer for Laravel

591444.8k2](/packages/spiritix-lada-cache)[clickbar/laravel-magellan

This package provides functionality for working with the postgis extension in Laravel.

423715.4k1](/packages/clickbar-laravel-magellan)[glushkovds/phpclickhouse-laravel

Adapter of the most popular library https://github.com/smi2/phpClickHouse to Laravel

2031.2M2](/packages/glushkovds-phpclickhouse-laravel)[azishapidin/indoregion

Package containing region of Indonesia (provinces, regencies, districts, and villages) for Laravel

27274.9k](/packages/azishapidin-indoregion)[sebastiaanluca/laravel-boolean-dates

Automatically convert Eloquent model boolean attributes to dates (and back).

40111.7k1](/packages/sebastiaanluca-laravel-boolean-dates)

PHPackages © 2026

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