Aplikasi ini berjalan dalam mode simulasi offline secara default. Sambungkan ke spreadsheet Anda untuk menyimpan data absensi nyata.
Masukkan URL Web App dari Apps Script yang telah Anda Deploy.
🚨 UPDATE KODE GOOGLE APPS SCRIPT ANDA
PENTING: Agar semua perangkat dapat melihat total absen secara global, Anda wajib mengganti kode di Apps Script dengan kode baru di bawah ini.
Kode baru ini menambahkan fungsi doGet() agar web absensi bisa mengambil data langsung dari baris Google Sheets secara dua arah.
1
Buka menu Ekstensi > Apps Script di Google Sheets Anda.
2
Hapus semua kode lama yang ada di sana, ganti dengan seluruh kode di bawah ini:
// 1. FUNGSI UNTUK MENERIMA ABSENSI BARU DARI WEB (POST)
function doPost(e) {
try {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = JSON.parse(e.postData.contents);
sheet.appendRow([
new Date(), // Timestamp otomatis
data.nama, // Nama lengkap siswa
data.id, // Nama Toko / Instansi PKL
data.status, // Masuk / Pulang
data.lokasi, // Koordinat GPS
data.foto // Foto Base64
]);
return ContentService.createTextOutput(JSON.stringify({
status: "success",
message: "Absensi berhasil disimpan!"
})).setMimeType(ContentService.MimeType.JSON);
} catch(err) {
return ContentService.createTextOutput(JSON.stringify({
status: "error",
message: err.toString()
})).setMimeType(ContentService.MimeType.JSON);
}
}
// 2. FUNGSI BARU UNTUK MENGIRIM DATA ABSEN KE SELURUH PERANGKAT (GET)
function doGet(e) {
try {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var dataRange = sheet.getDataRange();
var values = dataRange.getValues();
var rows = [];
// Mulai dari baris index 1 (lewati header kolom)
for (var i = 1; i < values.length; i++) {
var row = values[i];
rows.push({
timestamp: row[0],
nama: row[1],
id: row[2], // Toko / Instansi
status: row[3],
lokasi: row[4],
foto: row[5]
});
}
// Urutkan data dari yang paling baru di atas
rows.reverse();
return ContentService.createTextOutput(JSON.stringify({
status: "success",
data: rows
})).setMimeType(ContentService.MimeType.JSON);
} catch(err) {
return ContentService.createTextOutput(JSON.stringify({
status: "error",
message: err.toString()
})).setMimeType(ContentService.MimeType.JSON);
}
}
3
Tekan Simpan (Save).
4
Lakukan **Penerapan Baru (New Deployment)**: Klik **Terapkan > Kelola Penerapan > Edit (ikon pensil) > Pilih Versi Baru (New Version) > Klik Terapkan**. Salin URL Web App yang dihasilkan.