Aplikasi web berbasis Google Apps Script untuk menerima usulan fasilitas keselamatan jalan dari kabupaten/kota di Sumatera Utara, lalu menyimpan data ke Google Sheets secara terstruktur.
Project ini terdiri dari:
- Frontend: halaman web interaktif untuk memilih kabupaten, ruas jalan, lalu mengirim usulan.
- Backend: endpoint Apps Script untuk menerima data, memvalidasi, dan menyimpan ke spreadsheet.
- Konfigurasi deploy: pengaturan Web App agar dapat diakses publik sesuai kebutuhan.
- Mempermudah input usulan fasilitas keselamatan jalan per ruas.
- Menyimpan data secara terpusat ke Google Sheets.
- Mendukung routing data ke sheet sesuai nama kabupaten (termasuk format bernomor seperti
9. ASAHAN).
- Index.html: UI dashboard, daftar kabupaten, tabel ruas, modal input, submit data ke backend.
- Kode.gs: doGet, fungsi simpanUsulan, pemilihan sheet target, penyimpanan data.
- appsscript.json: konfigurasi runtime dan akses Web App.
- Navigasi kabupaten/kota dan pencarian cepat.
- Daftar ruas jalan per kabupaten.
- Form input fasilitas:
- Rambu
- Markah
- Paku Jalan
- Delineator
- LPJU
- ZoSS
- Guardrail
- Keterangan
- Validasi minimal satu fasilitas harus diisi.
- Feedback submit sukses/gagal ke pengguna.
- Penyimpanan data ke Google Sheets dengan status awal MENUNGGU VERIFIKASI.
- Routing otomatis ke sheet kabupaten jika tersedia, fallback ke sheet DataUsulan jika tidak ditemukan.
- Pengguna membuka Web App.
- Pengguna memilih kabupaten dan ruas jalan.
- Pengguna mengisi form usulan lalu klik KIRIM DATA.
- Frontend memanggil
google.script.run.simpanUsulan(data). - Backend:
- membuka spreadsheet target,
- mencari sheet sesuai kabupaten,
- membuat sheet fallback DataUsulan bila diperlukan,
- append baris data usulan.
- Frontend menampilkan hasil respons dari backend.
Urutan kolom yang disimpan:
- TANGGAL
- KABUPATEN/KOTA
- RUAS JALAN
- RAMBU (unit)
- MARKAH (unit)
- PAKU JALAN
- DELINEATOR
- LPJU
- ZoSS
- GUARDRAIL
- KETERANGAN
- STATUS
Spreadsheet ID saat ini di backend:
1w4OWsvMGo2d6b3J9Ig8yJqzqxJK_nPTiOB_FufhCrTg
Jika ingin ganti spreadsheet, ubah ID pada Kode.gs.
- Buka project di Google Apps Script.
- Pilih menu Deploy > New deployment (atau Manage deployments > Edit).
- Pilih tipe Web app.
- Set parameter:
- Execute as: Me (deployer/owner)
- Who has access: Anyone
- Deploy dan otorisasi jika diminta.
- Gunakan URL Web App terbaru untuk pengujian.
Catatan:
- Jika membuka file HTML di luar URL Web App,
google.script.runtidak tersedia. - Selalu uji dari URL hasil deployment.
- Buka Web App URL.
- Pilih kabupaten (misal Asahan).
- Klik salah satu ruas lalu Input Usulan.
- Isi minimal 1 nilai fasilitas.
- Klik KIRIM DATA.
- Cek sheet kabupaten terkait (misal
9. ASAHAN) atau fallbackDataUsulan.
Penyebab umum:
- Bukan dibuka dari URL Web App deploy.
- Deploy belum versi terbaru.
Solusi:
- Redeploy, lalu buka URL terbaru.
Penyebab umum:
- Nama sheet tidak cocok dengan nama kabupaten.
Solusi:
- Pastikan sheet bernama sesuai kabupaten, contoh
ASAHANatau9. ASAHAN. - Jika tidak ada, data akan masuk ke
DataUsulan.
Penyebab umum:
- Konfigurasi deploy tidak sesuai (execute/access).
- Spreadsheet ID salah.
Solusi:
- Cek konfigurasi deploy Web App.
- Verifikasi Spreadsheet ID di backend.
- Untuk mode publik, gunakan validasi input yang ketat.
- Batasi perubahan struktur sheet produksi tanpa koordinasi.
- Simpan backup data berkala pada spreadsheet.
- Sinkronisasi langsung ke layout tabel per-sheet (bukan hanya append row sederhana).
- Log audit (siapa submit, kapan, dari kabupaten mana).
- Dashboard rekap status verifikasi per kabupaten.
- Export laporan periodik.
Dokumen ini dibuat untuk kebutuhan internal Dinas Perhubungan Provinsi Sumatera Utara.