PENGENALAN DATABASE
1. BASIS DATA MODUL : OBJEK DATABASE
Website ini menggunakan localStorage sebagai penyimpanan data sederhana (bukan database server-side seperti MySQL atau MongoDB). Data disimpan dalam bentuk objek JavaScript (array JSON) di file admin.js. Ada tiga objek utama: beritaData, layananData, dan wargaData. Data ini diinisialisasi dengan contoh default dan dapat diubah melalui panel admin. Berikut detail objek data beserta contoh isinya.
Berita Data
Objek ini menyimpan data berita desa, termasuk judul, kategori, tanggal, isi, dan status. Disimpan di localStorage dengan key 'beritaData'.
- Struktur Objek: Array of objects dengan properti:
id(number),judul(string),kategori(string),tanggal(string, format YYYY-MM-DD),isi(string),status(string, e.g., 'Aktif' atau 'Draft'). - Tampilan data:
Layanan Data
Objek ini menyimpan data layanan administrasi desa, seperti surat keterangan. Disimpan di localStorage dengan key 'layananData'.
- Struktur Objek: Array of objects dengan properti:
id(number),nama(string),deskripsi(string),syarat(string, multi-line),waktu(string),biaya(string),status(string, e.g., 'Aktif' atau 'Nonaktif'). - Tampilan Data :
Warga Data
Objek ini menyimpan data penduduk desa. Disimpan di localStorage dengan key 'wargaData'.
- Struktur Objek: Array of objects dengan properti:
id(number),nik(string),nama(string),alamat(string),jk(string, e.g., 'Laki-laki' atau 'Perempuan'),tglLahir(string, format YYYY-MM-DD),status(string, e.g., 'Aktif', 'Pindah', atau 'Meninggal'). - Tampilan Data:
Catatan Tambahan
- Cara Akses Data: Di browser, buka Developer Tools > Application > Local Storage untuk melihat data ini secara real-time.
- Manajemen Data: Data dapat ditambah/edit/hapus melalui panel admin (file
admin.htmldanadmin.js). Setiap perubahan disimpan otomatis ke localStorage. - Keterbatasan: Ini bukan database sungguhan; data hilang jika localStorage dibersihkan. Untuk produksi, gunakan backend seperti Node.js dengan MongoDB atau Firebase.
2. BASIS DATA MODUL : FUNGSI AGREGAT
Fungsi agregat utama ditemukan di method loadDashboard(). Berikut detailnya:
1. Fungsi Agregat untuk Berita (COUNT Berita Aktif)
- Lokasi: Method
loadDashboard()(baris sekitar 100-110 di admin.js). - Deskripsi: Menghitung jumlah berita dengan status "Aktif" menggunakan
filter()danlength. Hasil ditampilkan di elemen HTML dengan IDberita-count. - Kode Relevan:
- Input: Array
this.beritaData(dari localStorage). - Output: Jumlah integer (e.g., 2 dari data default).
- Penggunaan: Diupdate saat dashboard dimuat atau navigasi ke section dashboard.
2. Fungsi Agregat untuk Warga (COUNT Warga Aktif)
- Lokasi: Method
loadDashboard()(baris sekitar 100-110 di admin.js). - Deskripsi: Menghitung jumlah warga dengan status "Aktif" menggunakan
filter()danlength. Hasil diformat dengantoLocaleString()untuk pemisah ribuan dan ditampilkan di elemen HTML dengan IDtotal-penduduk. - Kode Relevan:
- Input: Array
this.wargaData(dari localStorage). - Output: String dengan format angka (e.g., "2" dari data default).
- Penggunaan: Diupdate saat dashboard dimuat atau navigasi ke section dashboard.
Catatan Tambahan
- Statistik Hardcoded (Bukan Dinamis): Di dashboard, ada nilai tetap seperti "Kepala Keluarga: 892" dan "Surat Bulan Ini: 47" yang tidak menggunakan agregat dinamis. Ini hardcoded di HTML (
admin.html), bukan dari data. - Fungsi Lain yang Mirip Agregat:
loadBeritaTable(): Menggunakanmap()untuk iterasi dan generate tabel (bukan agregat murni, tapi memproses seluruh array).loadLayananTable()danloadWargaTable(): Serupa, menggunakanmap()untuk render data, tapi tidak ada COUNT atau SUM.- Tidak ada fungsi agregat lain seperti total biaya layanan atau rata-rata umur warga.
- Cara Menjalankan: Fungsi ini dipanggil di
init()danswitchSection('dashboard'). Data bersumber dari localStorage, jadi agregat akan berubah jika data diedit via admin panel. - Saran: Jika butuh agregat lebih advanced (e.g., SUM biaya atau AVG umur), bisa ditambahkan method baru di class
AdminPanel, misalnya:
0 Komentar