Cara Membuat Sistem Absensi Otomatis Menggunakan Google Form + Google Sheets + Script
Kamu mungkin pernah mengalami repotnya mencatat absensi manual. Terlambat input, data tercecer, dan proses rekap yang makan waktu. Padahal, dengan alat gratis seperti Google Form, Google Sheets, dan sedikit sentuhan script, kita bisa menciptakan sistem absensi otomatis yang bukan cuma rapi, tapi juga pintar. Yuk, kita buat bareng!
🔧 Alat yang Dibutuhkan
- Akun Google
- Google Form (untuk input kehadiran)
- Google Sheets (untuk rekap data)
- Google Apps Script (untuk otomatisasi)
📝 Langkah 1: Buat Google Form
- Buka Google Form
- Klik Blank untuk membuat form baru.
- Ubah judul form menjadi Form Absensi.
- Tambahkan pertanyaan berikut:
- Nama Lengkap (Short Answer)
- ID Karyawan / NIM / NIP (Short Answer)
- (Opsional) Lokasi, Shift, Divisi, dll.
🧠 Tips: Tidak perlu menambahkan field “Tanggal/Waktu” secara manual, karena Google Form akan otomatis menyimpan waktu saat respon dikirim.
📊 Langkah 2: Hubungkan ke Google Sheets
- Klik tab Responses.
- Klik ikon Google Sheets (berbentuk spreadsheet hijau).
- Pilih "Create a new spreadsheet".
- Beri nama, misalnya: Data Absensi Karyawan.
🔄 Langkah 3: Otomatisasi dengan Google Apps Script
Di sini kita akan menulis script untuk:
- Menambahkan kolom status hadir/terlambat otomatis.
- Mengirim notifikasi email (opsional).
- Membuat ringkasan harian/mingguan (opsional lanjutan).
✏️ Cara Akses Script Editor
- Dari Google Sheets, klik Extensions → Apps Script.
- Ganti nama project, misalnya ScriptAbsensi.
📜 Script Dasar: Tambahkan Status Hadir / Terlambat
Misalnya, absensi dianggap "Terlambat" jika lebih dari jam 08:10 pagi.
function onFormSubmit(e) {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const row = e.range.getRow();
const timestamp = sheet.getRange(row, 1).getValue(); // timestamp
const time = new Date(timestamp).getHours() + new Date(timestamp).getMinutes()/60;
const batasTerlambat = 8 + 10/60; // 08:10 pagi
const status = time > batasTerlambat ? "Terlambat" : "Tepat Waktu";
sheet.getRange(row, sheet.getLastColumn() + 1).setValue(status);
}
🛡️ Aktifkan Trigger
- Klik ikon Triggers (ikon jam).
- Klik + Add Trigger
- Pilih fungsi: onFormSubmit
- Event type: On form submit
- Save dan izinkan akses
⚠️ Penting: Kamu akan diminta otorisasi pertama kali. Klik “Review Permissions” lalu “Allow”.
🔁 Langkah Opsional: Kirim Email Notifikasi
Tambahkan ke dalam fungsi onFormSubmit:
const email = "hr@example.com"; // email HRD atau pengawas
MailApp.sendEmail(email, "Absensi Baru",
"Nama: " + sheet.getRange(row, 2).getValue() +
"\nStatus: " + status +
"\nWaktu: " + timestamp);
📈 Bonus: Dashboard Ringkasan
Gunakan pivot table atau fungsi QUERY di sheet lain untuk:
- Menampilkan jumlah hadir per orang
- Daftar yang sering telat
- Statistik harian/mingguan
Contoh fungsi:
=QUERY('Form Responses 1'!A:E, "SELECT B, COUNT(B) WHERE E='Tepat Waktu' GROUP BY B", 1)
🎯 Penutup
Dengan alat gratis dan sedikit usaha, kita bisa punya sistem absensi otomatis yang profesional. Dan ini scalable — bisa dipakai oleh sekolah, kantor, bahkan komunitas. Tidak ada coding berat, tapi hasilnya powerful.
📌 “Bukan masalah apakah kamu bisa coding atau tidak. Yang penting adalah kamu mau membuat sistem yang bekerja untukmu, bukan kamu yang bekerja untuk sistem.”
Kalau kamu mau versi lanjutan seperti integrasi QR Code, absensi berdasarkan lokasi, atau notifikasi ke Telegram/Slack, tinggal bilang. Kita bisa bahas di seri berikutnya.

Join the conversation