Catatan Waktu
Dishub
DINAS PERHUBUNGAN
DISHUB
KOTA PONTIANAK
APILL
Catatan Waktu
Simpang
⚠️ Mode offline — edit tidak tersimpan ke Sheet
Memuat data...
LANGKAH 01
Paste kode Apps Script
Di Google Sheet → Extensions → Apps Script
Hapus kode lama, paste kode berikut:
const SHEET_ID = '1QDzxQPXuKiYsnkxpLMxyyNXnzLQDLvnjCslZLQichN4'; const SHEET_NAME = 'Waktu'; function doGet(e) { const action = e.parameter.action || 'getData'; const callback = e.parameter.callback; let result; try { if (action === 'getData') { const ss = SpreadsheetApp.openById(SHEET_ID); const sheet = ss.getSheetByName(SHEET_NAME); const data = sheet.getDataRange().getDisplayValues(); result = { status: 'ok', data: data }; } else if (action === 'updateRow') { // Also support GET-based update (fallback for CORS) const rowIndex = parseInt(e.parameter.rowIndex); const rowData = JSON.parse(decodeURIComponent(e.parameter.rowData)); const ss = SpreadsheetApp.openById(SHEET_ID); const sheet = ss.getSheetByName(SHEET_NAME); sheet.getRange(rowIndex, 1, 1, rowData.length).setValues([rowData]); result = { status: 'ok' }; } else { result = { status: 'error', message: 'Unknown action' }; } } catch(err) { result = { status: 'error', message: err.toString() }; } const json = JSON.stringify(result); if (callback) { return ContentService.createTextOutput(callback + '(' + json + ')') .setMimeType(ContentService.MimeType.JAVASCRIPT); } return ContentService.createTextOutput(json) .setMimeType(ContentService.MimeType.JSON); } function doPost(e) { try { const body = JSON.parse(e.postData.contents); if (body.action === 'updateRow') { const ss = SpreadsheetApp.openById(SHEET_ID); const sheet = ss.getSheetByName(SHEET_NAME); sheet.getRange(body.rowIndex, 1, 1, body.rowData.length) .setValues([body.rowData]); return ContentService.createTextOutput(JSON.stringify({ status: 'ok' })) .setMimeType(ContentService.MimeType.JSON); } } catch(err) { return ContentService.createTextOutput( JSON.stringify({ status: 'error', message: err.toString() })) .setMimeType(ContentService.MimeType.JSON); } }
LANGKAH 02
Deploy / Redeploy sebagai Web App
⚠️ Wajib Redeploy setelah ganti kode!

Deploy baru: Deploy → New Deployment → Web app
Execute as: Me | Access: Anyone

Update kode: Deploy → Manage Deployments → ✏️ → New version → Deploy
LANGKAH 03
URL Web App
URL Apps Script aktif saat ini. Ganti hanya jika ada deployment baru:
STATUS
✅ URL default sudah terpasang. Klik Sync untuk test koneksi.