🎯 Filter Status
Menampilkan:
Distribusi Status Desa
Kelengkapan Parameter Fisik
Top Kecamatan — Jumlah Usulan
🔍
✕
🔽 Filter Dinamis
| # | ID Usulan | Tanggal | Pengusul | Usulan | Kecamatan | Kelurahan | OPD Tujuan Awal | Status | Status Desa | Kelayakan | Aksi |
|---|
ℹ️ Import Excel tidak menghapus data yang sudah ada. Data baru akan ditambahkan; data dengan ID yang sama akan diperbarui.
📋 Import Usulan Aspirasi
📄
Klik atau drag file Excel Usulan
Format: export_excel_monitor_usulan_aspirasi.xlsx
🗺️ Import Matriks Perkotaan/Perdesaan
🗺️
Klik atau drag file Excel Matriks
Format: Matriks_Perkotaan_Perdesaan_RTRW_2021.xlsx
Status Penyimpanan
⚠️ Zona Berbahaya
🗒️ Hapus Data Usulan
Hapus semua usulan aspirasi. Matriks & verifikasi tetap ada.
🗺️ Hapus Data Matriks
Hapus matriks perkotaan/perdesaan. Usulan & verifikasi tetap ada.
✅ Reset Semua Verifikasi
Hapus semua centang & catatan verifikasi. Usulan & matriks tetap ada.
🗑️ Hapus Semua Data
Hapus seluruh data: usulan, matriks, dan verifikasi sekaligus.
ℹ️ Skema ini mencerminkan struktur data aktual yang digunakan aplikasi dan file
schema.sql untuk Cloudflare D1. Semua nama kolom, tipe data, dan constraint telah diverifikasi sesuai kode JS.Tabel 1 — usulan_aspirasi (27 kolom)
-- Identitas
▶ id_usulan TEXT PRIMARY KEY
tanggal_usul TEXT
pengusul TEXT
profil TEXT
usulan_ke TEXT
-- Lokasi
kabupaten TEXT
kecamatan TEXT -- INDEX
kelurahan TEXT -- INDEX
alamat TEXT
-- Uraian
usulan TEXT
masalah TEXT
catatan TEXT
-- OPD & Anggaran
opd_awal TEXT
opd_akhir TEXT
status TEXT -- INDEX
volume TEXT
satuan TEXT
anggaran TEXT
jenis_belanja TEXT
sub_kegiatan TEXT
-- Rekomendasi
rek_mitra TEXT
rek_kel TEXT
rek_kec TEXT
rek_skpd TEXT
rek_tapd TEXT
-- Audit
created_at TEXT DEFAULT (datetime('now'))
updated_at TEXT DEFAULT (datetime('now'))
Tabel 2 — matriks_perkotaan_perdesaan
▶ id INTEGER PRIMARY KEY AUTOINCREMENT
kecamatan TEXT NOT NULL -- INDEX
desa TEXT NOT NULL -- INDEX
status TEXT NOT NULL -- 'Perkotaan'|'Perdesaan'
sumber_rtrw TEXT DEFAULT 'RTRW 2021'
UNIQUE(kecamatan, desa)
Tabel 3 — verifikasi_parameter
▶ id_usulan TEXT PRIMARY KEY
FK --> usulan_aspirasi.id_usulan ON DELETE CASCADE
-- 6 Parameter Fisik (INTEGER 0/1)
durkp INTEGER DEFAULT 0
ttd_kades INTEGER DEFAULT 0
ttd_camat INTEGER DEFAULT 0
rab INTEGER DEFAULT 0
koordinat INTEGER DEFAULT 0 -- boolean: ada ≥1 titik
koordinat_list TEXT -- JSON: [{lat,lng,label}]
foto INTEGER DEFAULT 0
-- Dokumen & Catatan
link_proposal TEXT
catatan TEXT
-- Hasil
verdict TEXT -- 'Layak'|'Perlu Review'|'Tidak Layak'
updated_at TEXT DEFAULT (datetime('now'))
☁️ Cloudflare Pages — Status Deploy
✅
schema.sql — syntax SQLite/D1 benar✅
functions/api/[[route]].js — 8 endpoint siap✅
wrangler.toml — binding DB dikonfigurasi⚠️ File ini masih pakai localStorage
→ Gunakan aspirasi-cloudflare.zip untuk deploy ke Cloudflare
❗ Buat DB lalu isi
database_id di wrangler.toml:npx wrangler d1 create aspirasi-db
❗ Jalankan migrasi schema ke remote D1:
npx wrangler d1 execute aspirasi-db --remote --file=./schema.sql
Relasi & Alur Kerja
① Import Excel →
usulan_aspirasi② Import Matriks →
matriks_perkotaan_perdesaan③ JOIN otomatis cocokkan kecamatan + kelurahan
④ Verifikator centang 6 parameter + link + catatan
⑤ Verdict: 6/6 = Layak · 1–5 = Perlu Review · 0 = Tidak Layak
⑥ Export Excel → 2 sheet: Usulan + Verifikasi Parameter
usulan_aspirasi (1) ─────── (1) verifikasi_parameter
matriks ── JOIN(kecamatan, kelurahan) ──▶ usulan_aspirasi
matriks ── JOIN(kecamatan, kelurahan) ──▶ usulan_aspirasi
Konfirmasi
✕
Detail Usulan
✕
✅ Parameter Verifikasi Fisik
📍 Titik Koordinat GPS
0 titik
Format: -7.123456 (Lintang) dan 111.123456 (Bujur). Isi minimal 1 titik agar parameter koordinat terpenuhi.
Lintang (Lat)
Bujur (Lng)
Keterangan (opsional)
Belum ada titik koordinat. Klik + Tambah Titik untuk mulai.
🔗 Link Dokumen Proposal
📝 Catatan Verifikator
🏷️ Verdict