4.9 KiB
Tentu, ini adalah draf Prompt/Instruksi Komprehensif yang sudah saya susun ulang agar siap Anda berikan kepada Asisten AI (seperti GitHub Copilot, ChatGPT, atau Junior Developer).
Instruksi ini dirancang dengan konteks bahwa aplikasi "Ora Ribet" sudah ada dan sudah terkoneksi ke API Teraskota, sehingga fokusnya adalah menambahkan modul E-Musrenbang sebagai fitur baru di dalamnya.
Silakan copy-paste teks di bawah ini:
Prompt Instruksi Development
Role: Senior Fullstack Developer Context: Kita sudah memiliki aplikasi bernama "Ora Ribet" (Backend: [Sebutkan stack Anda, misal: Node.js/Laravel], DB: [MySQL/PostgreSQL]). Aplikasi ini saat ini berfungsi untuk pengajuan bantuan sosial dan sudah terintegrasi dengan API Teraskota Magelang (Read-Only) untuk validasi data penduduk.
Task: Saya ingin menambahkan modul baru bernama "E-Musrenbang RKPD 2027" ke dalam aplikasi ini. Modul ini digunakan oleh Ketua RT untuk menginput usulan Rencana Kerja (Renja) RT.
Tolong implementasikan fitur ini berdasarkan spesifikasi berikut:
1. Database Schema Update (New Tables)
Karena API Teraskota bersifat Read-Only, kita perlu tabel lokal untuk menyimpan master kegiatan dan transaksi usulan RT. Tolong buatkan migration/SQL script untuk tabel berikut:
A. master_katalog_kegiatan (Untuk menyimpan Menu Kegiatan sesuai Lampiran SE)
- Columns:
id,kategori(Dasar/Pemberdayaan/Infrastruktur),menu_kegiatan,sub_menu,sifat(WAJIB/PILIHAN),pagu_biaya(Decimal),satuan(ex: per orang/tahun),syarat_umur_min(Int),syarat_umur_max(Int),is_active. - Note: Tabel ini nanti akan kita seed dengan data dari Lampiran II SE.
B. transaksi_profil_rt (Snapshot Data Kondisi RT)
- Columns:
id,kode_wilayah_rt(Relasi ke User/Wilayah),jml_rumah_layak,jml_rtlh,jml_warga_miskin,tahun_anggaran.
C. transaksi_usulan_renja (Header Usulan)
- Columns:
id,user_rt_id,katalog_id(FK),volume,total_biaya(Computed: Volume * Pagu),lokasi,status_lahan(Pemda/Pribadi - Wajib untuk fisik),file_izin_lahan(Path),status_verifikasi(Draft/Submitted/Verified).
D. transaksi_penerima_manfaat (Detail By Name By Address)
- Columns:
id,usulan_id(FK),nik,nama,alamat.
2. Business Logic & Validation Rules (Backend)
Terapkan aturan validasi ketat berikut di sisi backend (API Endpoint baru):
- [cite_start]Budget Cap (Hard Limit): Total biaya seluruh usulan (
SUM(total_biaya)) per RT tidak boleh melebihi Rp 50.000.000[cite: 42]. Return error jika melebihi. - Hybrid Validation (Internal + External API):
- Saat user menginput NIK penerima manfaat, sistem WAJIB memanggil API Teraskota Existing (
https://api.integrasvc.id/qv2k9) untuk memvalidasi bahwa NIK tersebut benar-benar warga kelurahan setempat. - Jika API return
success: true, simpan NIK & Nama ke tabeltransaksi_penerima_manfaat.
- Saat user menginput NIK penerima manfaat, sistem WAJIB memanggil API Teraskota Existing (
- Validasi Umur Otomatis:
- Jika
master_katalog_kegiatanmemilikisyarat_umur_min(misal: Lansia >= 60 tahun), hitung umur dari NIK. Tolak jika tidak sesuai.
- Jika
- Validasi Menu Wajib:
- User tidak bisa melakukan "Final Submit" jika belum memilih minimal satu kegiatan dengan sifat
WAJIB(contoh: Operasional RT).
- User tidak bisa melakukan "Final Submit" jika belum memilih minimal satu kegiatan dengan sifat
3. Workflow / User Flow
Tolong buatkan alur API/Controller sebagai berikut:
- GET /renja/dashboard:
- Tampilkan data profil RT (ambil dari API Teraskota endpoint
pd32vuntuk data real-time, lalu simpan snapshot-nya ke tabel lokaltransaksi_profil_rt). - Tampilkan sisa budget (Rp 50 Juta - Total Usulan tersimpan).
- Tampilkan data profil RT (ambil dari API Teraskota endpoint
- GET /renja/katalog:
- List semua kegiatan dari tabel
master_katalog_kegiatan.
- List semua kegiatan dari tabel
- POST /renja/usulan:
- Input:
katalog_id,volume,list_nik_penerima(Array). - Process: Validasi NIK ke API Teraskota -> Cek Budget -> Simpan ke DB.
- Input:
- POST /renja/finalize:
- Mengubah status dari
DRAFTkeSUBMITTED. - Trigger validasi kelengkapan dokumen (misal: surat izin lahan untuk kegiatan fisik).
- Mengubah status dari
4. Data Seeding (Initial Data)
Tolong buatkan seeder untuk tabel master_katalog_kegiatan dengan contoh data berikut (Sample dari SE):
- Pelatihan Barista: Pagu 3.600.000, Sifat: PILIHAN, Umur: 16-50.
- Pemberian Makanan Tambahan (PMT): Pagu 15.000/orang, Sifat: WAJIB.
- Honor Ketua RT: Pagu 4.800.000, Sifat: WAJIB.
- Rehab RTLH: Pagu 17.500.000, Sifat: PILIHAN, Syarat: Upload Surat Izin Lahan.
Tips Tambahan untuk Anda:
Jika Anda menggunakan Copilot atau ChatGPT di code editor, setelah memasukkan prompt di atas, Anda bisa langsung meminta file spesifik, misalnya:
"Buatkan file migration Laravel/Node.js untuk struktur database di atas." "Buatkan function controller untuk validasi budget 50 juta."
Prompt ini sudah menjembatani kebutuhan teknis (Database/API) dengan kebutuhan regulasi (Surat Edaran) secara spesifik.