Project Detail
Aplikasi web untuk mengelola administrasi pembayaran iuran, pengeluaran, data penghuni, dan rumah di perumahan.
| Layer | Teknologi |
|---|---|
| Backend | Laravel 13 (PHP 8.3) |
| Frontend | React 19 + Vite + TailwindCSS |
| Database | MySQL |
| Autentikasi | Laravel Sanctum |
Panduan ini ditulis untuk pengguna yang belum familiar dengan terminal/command line. Setiap langkah memiliki opsi manual (copy-paste biasa) selain perintah terminal.
Pastikan semua sudah terinstall sebelum memulai:
Jika Apache/MySQL tidak mau start, pastikan Laragon dijalankan sebagai Run as Administrator (klik kanan Laragon → Run as administrator).
Tujuan: Memindahkan folder project ke dalam folder www Laragon agar bisa diakses oleh server.
Catatan path Laragon:
- Default Laragon terinstall di
C:\laragon\. Jadi folder tujuan adalahC:\laragon\www\.
C:\laragon\www\).www\ sehingga menjadi:
C:\laragon\www\siap-rt\
siap-rt terlihat seperti ini:siap-rt\
├── backend\
├── frontend\
├── docs\
└── README.md
cd C:\laragon\www
git clone https://github.com/roselanesan/siap_rt.git siap-rt
Database siap_rt sekarang seharusnya sudah muncul di daftar database di sebelah kiri.
Cara Mudah:
C:\laragon\www\siap-rt\backend\cmd lalu tekan Enter.Ketik perintah berikut di terminal, lalu tekan Enter:
composer install
Apa yang dilakukan: Mengunduh semua library PHP yang dibutuhkan oleh Laravel (mirip seperti install aplikasi). Tunggu sampai selesai (biasanya 1-2 menit). Jika diminta pertanyaan, tekan Enter saja untuk menggunakan pilihan default.
copy .env.example .env
Apa yang dilakukan: Menyalin file contoh konfigurasi menjadi file konfigurasi yang bisa di-edit. File
.envberisi pengaturan database dan URL aplikasi.
C:\laragon\www\siap-rt\backend\ di File Explorer..env (bukan .env.example)..env → Open with → (atau VS Code).DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=siap_rt
DB_USERNAME=root
DB_PASSWORD=
APP_URL=http://localhost dan ubah menjadi:APP_URL=http://localhost:8000
Catatan: Laragon default username MySQL adalah
rootdengan password kosong. Jika Anda pernah mengganti password MySQL Laragon, masukkan password tersebut diDB_PASSWORD=.
php artisan key:generate
Apa yang dilakukan: Membuat kunci rahasia unik untuk keamanan aplikasi. Harus dilakukan sekali saja.
php artisan migrate:fresh --seed --force
Apa yang dilakukan: Membuat semua tabel database yang dibutuhkan dan mengisi data awal (1 akun admin, 20 rumah, 15 penghuni, 2 jenis iuran).
php artisan storage:link
Apa yang dilakukan: Membuat symlink agar foto KTP yang di-upload bisa diakses dari browser.
php artisan serve
Apa yang dilakukan: Menjalankan server backend Laravel di
http://localhost:8000. Jangan tutup terminal ini — biarkan tetap terbuka.
Anda akan melihat pesan: Server running on [http://127.0.0.1:8000]
C:\laragon\www\siap-rt\frontend\cmd → tekan Enter.frontend\.Penting: JANGAN tutup terminal backend dari Langkah 4. Anda sekarang punya 2 terminal yang terbuka.
npm install
Apa yang dilakukan: Mengunduh semua library JavaScript yang dibutuhkan oleh React (mirip seperti
composer installuntuk PHP). Tunggu sampai selesai.
copy .env.example .env
Apa yang dilakukan: Menyalin file konfigurasi Vite. Isinya sudah benar secara default (URL API mengarah ke
http://localhost:8000/api). Tidak perlu diedit.
npm run build
Apa yang dilakukan: Meng-compile kode React menjadi file HTML/CSS/JS yang bisa dibaca browser. Hasil build disimpan di folder
frontend\dist\.
Cara Manual (Tanpa Terminal):
Cara Terminal (PowerShell):
xcopy C:\laragon\www\siap-rt\frontend\dist\* C:\laragon\www\siap-rt\backend\public\ /E /Y
php artisan serve) masih berjalan.http://localhost:8000
| Field | Isi |
|---|---|
admin@siaprt.com | |
| Password | admin123 |
Setelah login, Anda akan masuk ke halaman Dashboard yang menampilkan ringkasan rumah, tagihan, grafik pemasukan vs pengeluaran.
erDiagram
RUMAH ||--o{ RUMAH_PENGHUNI : memiliki
PENGHUNI ||--o{ RUMAH_PENGHUNI : tinggal_di
RUMAH ||--o{ TAGIHAN : ditagih
PENGHUNI ||--o{ TAGIHAN : menerima
JENIS_IURAN ||--o{ TAGIHAN : jenis_dari
TAGIHAN ||--o{ PEMBAYARAN_DETAIL : dilunasi
PEMBAYARAN ||--o{ PEMBAYARAN_DETAIL : mencakup
RUMAH ||--o{ PEMBAYARAN : membayar
PENGHUNI ||--o{ PEMBAYARAN : melakukan
PENGHUNI ||--o{ PENGHUNI : kepala_keluarga_dari
RUMAH {
int id PK
string nomor_rumah
string blok
string alamat
string status
}
PENGHUNI {
int id PK
string nama_lengkap
string foto_ktp
string status_penghuni
string no_telepon
string status_menikah
int kepala_keluarga_id FK
string hubungan_dalam_keluarga
}
RUMAH_PENGHUNI {
int id PK
int rumah_id FK
int penghuni_id FK
date tanggal_mulai
date tanggal_keluar
string status_penghuni
}
JENIS_IURAN {
int id PK
string nama
int nominal_default
}
TAGIHAN {
int id PK
int rumah_id FK
int penghuni_id FK
int jenis_iuran_id FK
int bulan
int tahun
int nominal
string status
}
PEMBAYARAN {
int id PK
int rumah_id FK
int penghuni_id FK
date tanggal_bayar
string metode
int total_dibayar
}
PEMBAYARAN_DETAIL {
int id PK
int pembayaran_id FK
int tagihan_id FK
}
PENGELUARAN {
int id PK
string kategori
string deskripsi
int jumlah
date tanggal
}
flowchart TD
A[Login] --> B[Dashboard]
B --> C[Kelola Penghuni]
B --> D[Kelola Rumah]
B --> E[Kelola Pembayaran]
B --> F[Laporan]
C --> C1[Tambah/Ubah Penghuni]
C1 --> C2[Upload Foto KTP]
D --> D1[Daftar Rumah]
D1 --> D2[Detail Rumah]
D2 --> D3[Riwayat Penghuni]
D2 --> D4[Anggota Keluarga]
D2 --> D5[Riwayat Pembayaran]
D2 --> D6[Assign/Ganti Penghuni]
E --> E1[Tab Tagihan]
E --> E2[Tab Input Pembayaran]
E --> E3[Tab Pengeluaran]
E1 --> E1a[Generate Tagihan Bulanan]
E1 --> E1b[Lunasi Tagihan Langsung]
E2 --> E2a[Pilih Rumah & Iuran]
E2a --> E2b[Bulanan atau Tahunan]
E3 --> E3a[Input Pengeluaran Baru]
E3 --> E3b[Riwayat Pengeluaran]
F --> F1[Grafik Pemasukan vs Pengeluaran]
F1 --> F2[Detail per Bulan]
F2 --> F3[Rincian Pemasukan]
F2 --> F4[Rincian Pengeluaran]
backend\storage\app\public\ktp\.| Software | Versi Minimum | Download |
|---|
| Laragon | Full (terbaru) | https://laragon.org/download/ |
| PHP | 8.3+ | Sudah include di Laragon |
| Composer | 2.x+ | Sudah include di Laragon |
| Node.js | 20+ | https://nodejs.org/ |
Catatan Lokasi Laragon:
Semua contoh path di panduan ini menggunakan default install Laragon di C:\laragon\.
Untuk mengecek lokasi Laragon Anda:
Jika Laragon Anda terinstall di lokasi lain (misal D:\laragon\), cukup replace C:\laragon dengan path Anda di semua path di bawah ini.
D:\Laragon\), ganti C:\laragon dengan path Laragon Anda.siap_rt (tepat seperti ini, huruf kecil, pakai underscore).utf8mb4.utf8mb4_unicode_ci.C:\laragon\www\siap-rt\frontend\dist\dist\.C:\laragon\www\siap-rt\backend\public\index.html (dari frontend) dan index.php (dari Laravel) keduanya ada di folder public\.| Masalah | Solusi |
|---|
composer atau php tidak dikenali | Pastikan Laragon sedang running. Buka terminal baru setelah Laragon start. |
npm tidak dikenali | Pastikan Node.js terinstall. Restart terminal setelah install Node.js. |
| "Access denied" saat create database | Jalankan HeidiSQL sebagai Administrator, atau pastikan MySQL di Laragon sudah running. |
| Halaman kosong di browser | Pastikan sudah melakukan Langkah 5.5 (copy dist ke public). |
| "No such file" saat migrate | Pastikan database siap_rt sudah dibuat di MySQL (Langkah 3). |
| Foto KTP tidak muncul | Pastikan sudah jalankan php artisan storage:link (Langkah 4.7). |
| Port 8000 sudah dipakai | Tutup aplikasi lain yang pakai port 8000, atau ganti port: php artisan serve --port=8080. |
| Tabel | Fungsi |
|---|
| users | Data admin (login) |
| rumah | Data rumah (nomor, blok, alamat, status huni) |
| penghuni | Data warga (nama, foto KTP, status, telepon, status nikah, relasi kepala keluarga) |
| rumah_penghuni | Relasi historis antara rumah dan penghuni |
| jenis_iuran | Jenis iuran (Satpam Rp100.000, Kebersihan Rp15.000) |
| tagihan | Tagihan iuran per rumah per bulan |
| pembayaran | Record pembayaran iuran |
| pembayaran_detail | Detail tagihan yang dilunasi dalam satu pembayaran |
| pengeluaran | Data pengeluaran RT (gaji satpam, token listrik, perbaikan, dll) |
| No | Fitur | Screenshot | Deskripsi |
|---|
| 1 | Login | <img src="docs/screenshots/01-login.png" width="400"> | Halaman autentikasi untuk masuk ke aplikasi menggunakan email dan password. |
| 2 | Dashboard | <img src="docs/screenshots/02-dashboard.png" width="400"> | Ringkasan total rumah, tagihan bulan ini (Lunas/Belum Lunas), saldo kas, grafik pemasukan vs pengeluaran 6 bulan terakhir. |
| 3 | Daftar Penghuni | <img src="docs/screenshots/03-penghuni-list.png" width="400"> | Daftar semua penghuni dengan status huni (Tetap/Kontrak), nomor rumah aktif, dan kontak. |
| 4a | Tambah Penghuni | <img src="docs/screenshots/04-penghuni-form-tambah.png" width="400"> | Form input penghuni baru: nama lengkap, foto KTP, status penghuni, nomor telepon, status pernikahan. |
| 4b | Edit Penghuni | <img src="docs/screenshots/04-penghuni-form-edit.png" width="400"> | Form edit penghuni yang sudah ada, dengan preview foto KTP saat ini dan opsi ganti foto baru. |
| 5 | Kelola Rumah | <img src="docs/screenshots/05-rumah-list.png" width="400"> | Daftar semua rumah (Blok A & B), filter per blok, sort by nomor/status, jumlah penghuni. |
| 6 | Detail Rumah | <img src="docs/screenshots/06-rumah-detail.png" width="400"> | Tab Riwayat Penghuni, Anggota Keluarga, dan Riwayat Pembayaran (Lunas + tagihan Belum Lunas). |
| 7 | Kelola Pembayaran | <img src="docs/screenshots/07-pembayaran-tagihan.png" width="400"> | Generate tagihan bulanan, daftar tagihan per rumah, filter Lunas/Belum Lunas, tombol aksi cepat "Lunas". |
| 8 | Laporan Tahunan | <img src="docs/screenshots/08-laporan-tahunan.png" width="400"> | Grafik 12 bulan (Pemasukan vs Pengeluaran), saldo YTD, tabel rincian per bulan. |
| 9 | Detail Laporan | <img src="docs/screenshots/09-detail-laporan.png" width="400"> | Ringkasan saldo, rincian pemasukan (ter-distribusi per bulan termasuk pembayaran tahunan), rincian pengeluaran dengan kategori. |