edi-prasetyo/indonesia-location

Indonesia administrative region database for Laravel

Installs: 9

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/edi-prasetyo/indonesia-location

v1.0.0 2025-12-16 11:13 UTC

This package is auto-updated.

Last update: 2025-12-16 12:07:35 UTC


README

Latest Version on Packagist Total Downloads License PHP Version Require Laravel Composer Stability GitHub stars

edi-prasetyo/indonesia-location adalah package Laravel untuk menyediakan data wilayah administratif Indonesia (Provinsi, Kabupaten/Kota, Kecamatan, Desa) lengkap dengan relasi database dan model Eloquent.

Package ini dirancang untuk:

  • Laravel 11 ke atas
  • Import data wilayah Indonesia dari file JSON
  • Relasi internal berbasis id (bukan hanya kode)
  • Siap dipakai langsung oleh developer

✨ Fitur

  • ✅ Data lengkap: Provinsi, Kabupaten/Kota, Kecamatan, Desa
  • ✅ Relasi internal (province_id, regency_id, district_id)
  • ✅ Tetap menyimpan code resmi wilayah Indonesia
  • ✅ Eloquent Model siap pakai
  • ✅ Artisan command untuk install & import data
  • ✅ Bisa digunakan untuk Web & Mobile API

📦 Instalasi

Install package via Composer:

composer require edi-prasetyo/indonesia-location

Package ini mendukung auto-discovery, tidak perlu menambahkan Service Provider secara manual.

1️⃣ Publish file migration

php artisan vendor:publish --tag=indonesia-location-migrations

2️⃣ Jalankan migration

php artisan migrate

🚀 Import Data Wilayah Indonesia

Jalankan command berikut:

php artisan indonesia-location:install

Struktur Database

provinces

column type
id bigint
code string
name string
latitude decimal
longitude decimal

regencies

column type
id bigint
province_id bigint (FK)
code string
province_code string
name string
latitude decimal
longitude decimal

districts

column type
id bigint
province_id bigint (FK)
regency_id bigint (FK)
code string
province_code string
regency_code string
name string
latitude decimal
longitude decimal

villages

column type
id bigint
province_id bigint (FK)
regency_id bigint (FK)
district_id bigint (FK)
code string
province_code string
regency_code string
district_code string
name string
postal_code string
latitude decimal
longitude decimal

📘 Penggunaan Model

  • use EdiPrasetyo\IndonesiaLocation\Models\Province;
  • use EdiPrasetyo\IndonesiaLocation\Models\Regency;
  • use EdiPrasetyo\IndonesiaLocation\Models\District;
  • use EdiPrasetyo\IndonesiaLocation\Models\Village;

Ambil semua provinsi

use EdiPrasetyo\IndonesiaLocation\Models\Province;

$provinces = Province::all();

Dengan relasi

$provinces = Province::with('regencies.districts.villages')->get();

Contoh pencarian

$aceh = Province::where('code', '11')->first();

$kabupaten = $aceh->regencies;

🔗 Relasi Eloquent

  • Province → hasMany → Regencies
  • Regency → hasMany → Districts
  • District → hasMany → Villages

Semua relasi menggunakan foreign key berbasis ID untuk performa optimal.

⚙️ Kebutuhan Sistem

  • PHP 8.2+
  • Laravel 11 atau lebih baru
  • Database MySQL / PostgreSQL

📄 Lisensi

Package ini dilisensikan di bawah MIT License.

👨‍💻 Author

Edi Prasetyo GitHub: https://github.com/edi-prasetyo

🤝 Kontribusi

Pull request & issue sangat diterima. Silakan fork repository ini dan ajukan perubahan.

⭐ Penutup

Jika package ini membantu, jangan lupa beri ⭐ di GitHub 🙌

Happy coding 🚀