Skip to content

Memulai

Panduan ini akan membantu Anda dengan cepat menginstal dan mulai menggunakan Laravel Nusa di aplikasi Laravel Anda.

Instalasi Cepat

Instal Laravel Nusa melalui Composer:

bash
composer require creasi/laravel-nusa

Itu saja! Laravel Nusa sekarang siap digunakan. Paket ini meliputi:

  • ✅ Database SQLite yang sudah dibuat sebelumnya dengan semua data administratif Indonesia
  • ✅ Registrasi penyedia layanan otomatis
  • ✅ Konfigurasi koneksi database
  • ✅ Rute API RESTful (opsional)

Persyaratan

Laravel Nusa membutuhkan PHP ≥ 8.2 dengan ekstensi php-sqlite3 dan Laravel ≥ 9.0. Untuk persyaratan sistem dan pemecahan masalah yang lebih rinci, lihat Panduan Instalasi.

Verifikasi Instalasi

Mari kita verifikasi instalasi berfungsi dengan benar:

php
use Creasi\Nusa\Models\Province;

// Uji fungsionalitas dasar
$provinces = Province::all();
echo "Total provinsi: " . $provinces->count(); // Seharusnya menghasilkan: 34

// Uji fungsionalitas pencarian
$jateng = Province::search('Jawa Tengah')->first();
echo "Ditemukan: " . $jateng->name; // Seharusnya menghasilkan: Jawa Tengah

Jika ini berfungsi, Anda siap! Jika Anda mengalami masalah, periksa Panduan Instalasi untuk pemecahan masalah.

Langkah Pertama dengan Laravel Nusa

1. Memahami Struktur Data

Laravel Nusa menyediakan hierarki lengkap wilayah administratif Indonesia:

Indonesia
🇮🇩 Indonesia
├── 38 Provinsi
├── 514 Kabupaten/Kota
├── 7.285 Kecamatan
└── 83.762 Desa/Kelurahan

Setiap tingkat memiliki format kode tertentu:

  • Provinsi: 33 (2 digit)
  • Kabupaten/Kota: 33.75 (provinsi.kabupaten/kota)
  • Kecamatan: 33.75.01 (provinsi.kabupaten/kota.kecamatan)
  • Desa/Kelurahan: 33.75.01.1002 (provinsi.kabupaten/kota.kecamatan.desa/kelurahan)

2. Kueri Dasar

php
use Creasi\Nusa\Models\{Province, Regency, District, Village};

// Temukan berdasarkan kode
$province = Province::find('33');              // Jawa Tengah
$regency = Regency::find('33.75');            // Kota Pekalongan
$district = District::find('33.75.01');       // Pekalongan Barat
$village = Village::find('33.75.01.1002');    // Desa Medono

// Cari berdasarkan nama (tidak peka huruf besar/kecil)
$provinces = Province::search('jawa')->get();
$regencies = Regency::search('semarang')->get();

// Dapatkan dengan relasi
$province = Province::with('regencies')->find('33');
$regencies = $province->regencies; // Semua kabupaten/kota di Jawa Tengah

3. Membangun Formulir Alamat

Kasus penggunaan umum adalah membangun formulir dropdown bertingkat:

php
// Dapatkan provinsi untuk dropdown pertama
$provinces = Province::orderBy('name')->get(['code', 'name']);

// Ketika pengguna memilih provinsi, dapatkan kabupaten/kotanya
$regencies = Regency::where('province_code', '33')
    ->orderBy('name')
    ->get(['code', 'name']);

// Ketika pengguna memilih kabupaten/kota, dapatkan kecamatannya
$districts = District::where('regency_code', '33.75')
    ->orderBy('name')
    ->get(['code', 'name']);

// Ketika pengguna memilih kecamatan, dapatkan desa/kelurahannya
$villages = Village::where('district_code', '33.75.01')
    ->orderBy('name')
    ->get(['code', 'name', 'postal_code']);

4. Menggunakan API

Laravel Nusa menyediakan endpoint API RESTful secara out of the box:

bash
# Dapatkan semua provinsi
curl http://your-app.test/nusa/provinces

# Dapatkan kabupaten/kota di provinsi
curl http://your-app.test/nusa/provinces/33/regencies

# Cari lokasi
curl "http://your-app.test/nusa/regencies?search=jakarta"

5. Bekerja dengan Data Geografis

Akses koordinat dan kode pos:

php
$province = Province::find('33');

// Dapatkan koordinat pusat
echo "Pusat: {$province->latitude}, {$province->longitude}";

// Dapatkan semua kode pos di provinsi ini
$postalCodes = $province->postal_codes;
echo "Kode pos: " . implode(', ', $postalCodes);

// Dapatkan koordinat batas (jika tersedia)
if ($province->coordinates) {
    echo "Memiliki " . count($province->coordinates) . " titik batas";
}

Langkah Selanjutnya

Sekarang setelah Anda memahami dasar-dasarnya, jelajahi panduan ini:

Butuh Bantuan?

  • Masalah Instalasi: Lihat Panduan Instalasi untuk pengaturan dan pemecahan masalah yang rinci
  • Pertanyaan Penggunaan: Periksa bagian Contoh untuk pola umum
  • Referensi API: Jelajahi Dokumentasi API untuk detail endpoint lengkap

Released under the MIT License.