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.