Daftar Isi
- Persiapan Awal
- Akun Google
- Bot Telegram
- Google Spreadsheet
- Membuat Google Sheets sebagai Database Presensi
- Membuat Bot Telegram
- Mendaftar Bot dengan BotFather
- Menyimpan Token Bot
- Menghubungkan Bot ke Google Sheets
- Menulis Google Apps Script
- Kode Google Apps Script Lengkap
- Menyambungkan Webhook Bot Telegram ke Apps Script
- Mengatur Webhook
- Uji Kirim Pesan ke Bot
- Memproses Data Presensi dari Chat
- Format Pesan Absensi
- Parsing dan Simpan ke Spreadsheet
- Pengujian Bot Presensi
- Menambahkan Fitur Tambahan (Opsional)
- Auto-reply
- Validasi Jam Absensi
- Laporan Otomatis
- Penutup dan Tips Penggunaan
1. Pendahuluan
Pada era digital, kebutuhan untuk mencatat kehadiran siswa, karyawan, atau peserta kegiatan secara online semakin meningkat. Telegram menyediakan platform bot yang mudah digunakan dan dapat dihubungkan dengan layanan lain seperti Google Sheets. Dalam panduan ini, kamu akan belajar cara membangun sistem presensi sederhana via Telegram tanpa perlu memiliki server hosting pribadi. Sistem ini cocok untuk pelajar, guru, pelatih, hingga komunitas kecil.
2. Persiapan Awal
Akun Google
Pastikan kamu memiliki akun Google aktif. Kita akan menggunakan Google Sheets dan Google Apps Script, yang semuanya bisa diakses dari akun Google biasa.
Bot Telegram
Pastikan kamu sudah memiliki akun Telegram. Kita akan membuat bot melalui layanan resmi Telegram bernama BotFather.
Google Spreadsheet
Kita akan menggunakan Google Sheets sebagai penyimpanan data presensi. Spreadsheet ini akan dihubungkan dengan bot menggunakan Google Apps Script.
3. Membuat Google Sheets sebagai Database Presensi
- Buka Google Sheets
- Buat spreadsheet baru bernama “PresensiTelegram”
- Isi baris pertama sebagai header dengan kolom:
TimestampNamaNISStatusAlasan

Spreadsheet ini akan menyimpan semua data absensi yang dikirim lewat bot.
4. Membuat Bot Telegram
Mendaftar Bot dengan BotFather
- Buka Telegram, cari dan buka akun @BotFather
- Ketik perintah
/start - Ketik
/newbotuntuk membuat bot baru - Masukkan nama bot, misal
BotPresensiKelas - Masukkan username bot, misal
bot_presensi_siswa_bot - Setelah selesai, BotFather akan memberikan token API, misalnya:
123456789:ABCDefghijklMnopQRStuvWXYZ0123456789 - Simpan token ini dengan baik, kita akan memakainya.
5. Menghubungkan Bot ke Google Sheets
Menulis Google Apps Script
- Di spreadsheet “PresensiTelegram”, klik menu Extensions > Apps Script
- Ganti nama proyek jadi
PresensiTelegramBot - Hapus semua kode di dalam editor, lalu masukkan kode berikut:

isi di sini dengan codenya
Kode Google Apps Script Lengkap
const TOKEN = 'ISI_TOKEN_BOT_MU';
const TELEGRAM_API = 'https://api.telegram.org/bot' + TOKEN;
const SHEET_NAME = 'Sheet1';
function doPost(e) {
const contents = JSON.parse(e.postData.contents);
const message = contents.message;
const chatId = message.chat.id;
const userText = message.text;
const values = userText.split('#');
if (values[0].toUpperCase() !== "ABSEN" || values.length < 4) {
// Format tidak sesuai
sendTelegram(chatId, "❌ Format absen salah. Contoh:\nABSEN#Nama#NIS#Status[#Alasan]");
return;
}
const nama = values[1];
const nis = values[2];
const status = values[3];
const alasan = values[4] || "-";
// Simpan ke Google Sheets
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME);
sheet.appendRow([new Date(), nama, nis, status, alasan]);
// Kirim balasan ke Telegram
sendTelegram(chatId, `✅ Terima kasih ${nama}, absensimu sudah dicatat.\nStatus: ${status}`);
}
function sendTelegram(chatId, text) {
const payload = {
chat_id: chatId,
text: text
};
UrlFetchApp.fetch(TELEGRAM_API + '/sendMessage', {
method: 'post',
contentType: 'application/json',
payload: JSON.stringify(payload)
});
}
6. Menyambungkan Webhook Bot Telegram ke Apps Script
Deploy sebagai Web App
- Klik tombol Deploy > Test deployments > New deployment
- Pilih Web App
- Tentukan:
- Deskripsi: “Webhook Presensi”
- Execute as:
Me - Who has access:
Anyone
- Klik Deploy dan salin URL Web App (misal:
https://script.google.com/macros/s/.../exec)
Mengatur Webhook
- Buka browser dan akses URL berikut (ganti
TOKENdanURL_WEBAPP):
https://api.telegram.org/botTOKEN/setWebhook?url=URL_WEBAPP
Contoh:
https://api.telegram.org/bot123456789:ABCDefghijklMnopQRStuvWXYZ0123456789/setWebhook?url=https://script.google.com/macros/s/.../exec
- Jika berhasil, akan muncul respon:
{"ok":true,"result":true,"description":"Webhook was set"}
7. Memproses Data Presensi dari Chat
Format Pesan Absensi
Gunakan format berikut untuk melakukan presensi:
ABSEN#Nama#NIS#Status[#Alasan]
Contoh:
ABSEN#Claresta#123456#Hadir
ABSEN#Mirza#123450#izin#Sakit
Parsing dan Menyimpan Data
Script akan membaca bagian-bagian tersebut dan menuliskannya di Google Sheets sesuai kolom.
contoh :

8. Pengujian Bot Presensi
- Buka Telegram dan cari bot kamu
- Klik Start
- Kirim pesan sesuai format
- Cek Spreadsheet, seharusnya baris baru otomatis muncul sesuai input

9. Menambahkan Fitur Tambahan (Opsional)
Auto-reply Waktu Presensi
Tambahkan fitur untuk hanya menerima presensi antara jam tertentu:
const now = new Date();
const hour = now.getHours();
if (hour < 6 || hour > 10) {
sendText(chat_id, "Presensi hanya bisa dilakukan antara jam 06.00 - 10.00");
return;
}
Validasi NIS
Bandingkan NIS dengan daftar di sheet lain untuk memastikan hanya siswa terdaftar yang bisa presensi.
Laporan Otomatis Harian
Gunakan Google Apps Script untuk mengirim rekap otomatis tiap sore:
function kirimRekap() {
// Kirim rekap ke grup/individu
}
10. Penutup dan Tips Penggunaan
Dengan mengikuti tutorial ini, kamu dapat membuat sistem absensi otomatis tanpa hosting, tanpa coding kompleks, dan cukup menggunakan alat gratis dari Google dan Telegram. Beberapa tips tambahan:
- Gunakan grup Telegram jika ingin banyak orang melakukan presensi ke satu bot
- Jangan bagikan token bot ke sembarang orang
- Rutin backup Google Sheets-mu
Semoga tutorial ini bermanfaat!