Tentang Aplikasi
Fitur Utama
Fungsionalitas inti yang dirancang untuk eksplorasi dan manajemen data geografis.
- Pencarian Lokasi Dinamis: Memungkinkan pencarian lokasi berdasarkan jenis tempat dan wilayah (provinsi atau kota/kabupaten) di seluruh Indonesia.
- Manajemen Data Massal: Menyediakan halaman khusus untuk mengimpor data lokasi dari Google API secara massal per kota/kabupaten, lengkap dengan rincian data tersimpan per kategori.
- Visualisasi Peta Interaktif: Menampilkan hasil pencarian dan lokasi tersimpan pada peta Google Maps, dengan marker khusus untuk setiap kategori dan InfoWindow yang informatif.
- Penyimpanan Cloud (Firebase): Semua lokasi yang ditemukan atau diimpor disimpan secara otomatis ke dalam database cloud (Firestore), memungkinkan data dapat diakses secara persisten.
- Rekapitulasi Data: Merangkum semua data tersimpan dalam sebuah tabel pivot, mengelompokkan jumlah lokasi berdasarkan Provinsi dan Kota/Kabupaten untuk setiap jenis tempat.
- Ekspor ke CSV: Memungkinkan pengguna untuk mengunduh semua data lokasi tersimpan ke dalam format file CSV untuk analisis lebih lanjut.
- Manajemen Data Cloud: Pengguna dapat menghapus lokasi satu per satu atau menghapus seluruh data tersimpan dari database melalui antarmuka yang disediakan.
Teknologi
Dibangun dengan tumpukan teknologi modern untuk kinerja dan pengalaman pengguna terbaik.
- Framework: Next.js (App Router)
- Bahasa: TypeScript
- UI Components: shadcn/ui, Radix UI
- Styling: Tailwind CSS
- Peta: Google Maps Platform (React wrapper by vis.gl)
- Database: Firebase Firestore (NoSQL)
- Manajemen State: React Context & Hooks
Database: SQL vs NoSQL
Aplikasi ini menggunakan database NoSQL (Firebase Firestore). Berikut perbandingannya.
SQL (Relasional)
Keunggulan:
- Struktur Jelas: Data konsisten dengan skema yang kaku (tabel, baris, kolom).
- Integritas Data (ACID): Transaksi sangat andal, cocok untuk sistem keuangan.
- Kueri Kompleks: Kuat untuk menggabungkan data dari berbagai tabel (JOIN).
Kelemahan:
- Kurang Fleksibel: Sulit mengubah struktur data jika sudah berjalan.
- Skalabilitas Vertikal: Lebih mudah untuk menambah kekuatan satu server daripada menyebar ke banyak server.
NoSQL (Non-Relasional)
Keunggulan:
- Skema Fleksibel: Mudah menyimpan data beragam tanpa struktur yang kaku (cocok untuk data lokasi dari API).
- Skalabilitas Horizontal: Dirancang untuk mudah didistribusikan ke banyak server (cocok untuk data besar).
- Performa Tinggi: Cepat untuk operasi baca/tulis sederhana pada data dalam jumlah besar.
Kelemahan:
- Konsistensi Data: Model konsistensinya (Eventual Consistency) tidak sekuat ACID pada SQL.
- Kueri Terbatas: Operasi gabungan (JOIN) antar koleksi data tidak se-fleksibel SQL.