Membuat bot Telegram yang terintegrasi dengan Google Sheets untuk pencatatan keuangan pribadi adalah langkah yang sangat cerdas. Anda bisa mencatat pengeluaran/pemasukan langsung lewat chat, dan bot akan otomatis mengisinya ke pembukuan Anda.
Di artikel sebelumnya Panduan Membuat Bot Telegram ke Google Sheets Untuk Laporan Keuangan.
Sistem sebenarnya sudah otomatis menghasilkan laporan bulanan. Fungsi hitungLaporan pada kode sebelumnya dirancang untuk mendeteksi bulan berjalan saat Anda meminta laporan. Jadi, jika Anda mengetik /laporan pada bulan Mei 2026, bot hanya akan menjumlahkan transaksi di bulan Mei 2026 saja.
Ketika masuk ke bulan Juni, angkanya otomatis mereset dari nol untuk menghitung bulan Juni.
Sekarang, kita akan menambahkan 2 Fitur ini:
- Melihat laporan bulan-bulan lalu (misal: cek laporan bulan lalu atau bulan tertentu).
- Bot mengirimkan laporan bulanan secara otomatis setiap akhir bulan tanpa perlu diminta.
Berikut adalah cara menambahkan kedua fitur hebat tersebut:
Pengembangan 1: Menambahkan Perintah /laporan_lalu (Melihat Bulan Sebelumnya)
Mari kita tambahkan fitur agar saat Anda mengetik /laporan_lalu, bot akan menghitung pengeluaran dan pemasukan pada 1 bulan sebelum bulan sekarang.
Buka Apps Script Anda, lalu perbarui kodenya. Kita cukup menambahkan logika pengecekan teks /laporan_lalu di dalam fungsi doPost dan membuat fungsi hitung baru.
- Tambahkan kode ini di dalam fungsi
doPost(e)(di bawah blok perintah/laporanyang sudah ada): - Ganti fungsi
hitungLaporanlama Anda dengan versi yang lebih fleksibel ini (bisa menghitung bulan lalu): - Jangan lupa klik Terapkan (Deploy) > Terapkan Baru setelah mengubah kode.
// Perintah /laporan (Bulan Ini)
if (text === "/laporan") {
const laporan = hitungLaporan(sheet, 0); // 0 berarti bulan ini
sendText(chatId, laporan);
return;
}
// Perintah /laporan_lalu (Bulan Lalu) - BARU!
if (text === "/laporan_lalu") {
const laporanLalu = hitungLaporan(sheet, 1); // 1 berarti 1 bulan lalu
sendText(chatId, laporanLalu);
return;
}
// Fungsi hitung laporan yang diperbarui
function hitungLaporan(sheet, minusBulan) {
const data = sheet.getDataRange().getValues();
// Mengatur target bulan berdasarkan input (0 = bulan ini, 1 = bulan lalu)
const targetDate = new Date();
targetDate.setMonth(targetDate.getMonth() - minusBulan);
const targetBulan = targetDate.getMonth();
const targetTahun = targetDate.getFullYear();
let totalPemasukan = 0;
let totalPengeluaran = 0;
for (let i = 1; i < data.length; i++) {
const tgl = new Date(data[i][0]);
const nilaiPemasukan = data[i][1];
const nilaiPengeluaran = data[i][2];
if (tgl.getMonth() === targetBulan && tgl.getFullYear() === targetTahun) {
if (nilaiPemasukan !== "" && !isNaN(nilaiPemasukan)) {
totalPemasukan += nilaiPemasukan;
}
if (nilaiPengeluaran !== "" && !isNaN(nilaiPengeluaran)) {
totalPengeluaran += nilaiPengeluaran;
}
}
}
const saldo = totalPemasukan - totalPengeluaran;
const namaBulan = ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"];
const statusJudul = minusBulan === 0 ? "BULAN INI" : "BULAN LALU";
return `📊 **LAPORAN KEUANGAN ${statusJudul} (${namaBulan[targetBulan]} ${targetTahun})**\n\n` +
`🟢 Total Pemasukan : Rp ${totalPemasukan.toLocaleString('id-ID')}\n` +
`🔴 Total Pengeluaran: Rp ${totalPengeluaran.toLocaleString('id-ID')}\n` +
`──────────────────\n` +
`💰 **Sisa Saldo : Rp ${saldo.toLocaleString('id-ID')}**`;
}
Pengembangan 2: Kirim Laporan Otomatis Setiap Akhir Bulan (Sistem Timer)
Google Apps Script memiliki fitur bernama Pemicu (Triggers). Kita bisa menyuruh Google untuk menjalankan fungsi pengiriman laporan ke Telegram secara otomatis pada tanggal tertentu tanpa kita sentuh.
- Tulis fungsi khusus untuk laporan otomatis Tambahkan kode baru ini di bagian paling bawah editor Apps Script Anda:
// Fungsi yang akan dijalankan otomatis oleh sistem Google
function kirimLaporanOtomatisBulanan() {
// Ganti dengan Chat ID Telegram Anda (bisa didapat saat Anda dichat oleh bot)
// Atau sementara pakai ID Chat Anda yang biasanya menerima pesan bot
const MY_CHAT_ID = "ISI_CHAT_ID_TELEGRAM_ANDA";
const sheet = SpreadsheetApp.openById(SPREADSHEET_ID).getSheetByName("Transaksi");
// Karena dikirim di akhir bulan, kita ambil data bulan ini (0)
const laporan = hitungLaporan(sheet, 0);
const pesanNotif = "📢 **[LAPORAN OTOMATIS AKHIR BULAN]**\n\n" + laporan;
sendText(MY_CHAT_ID, pesanNotif);
}
(Catatan: Untuk mengetahui MY_CHAT_ID Anda, Anda bisa melihat baris data yang masuk atau menggunakan bot @userinfobot di Telegram untuk mengetahui ID akun Telegram Anda).
2. Cara Mengaktifkan Timer Otomatis di Google:
- Di bilah menu sebelah kiri Apps Script, klik ikon Jam/Weker (tulisannya Pemicu atau Triggers).
- Di kanan bawah, klik tombol + Tambahkan Pemicu (+ Add Trigger).
- Atur konfigurasinya seperti ini:
- Pilih fungsi yang berjalan:
kirimLaporanOtomatisBulanan - Pilih penerapan yang akan berjalan:
Head - Pilih sumber acara:
Berdasarkan waktu (Time-driven) - Pilih jenis pemicu berbasis waktu:
Timer bulan (Month timer) - Pilih hari:
Hari ke-31atauHari terakhir(Sistem Google akan otomatis menyesuaikan jika bulan tersebut hanya sampai tanggal 28 atau 30). - Pilih waktu: Sesuaikan keinginan Anda, misal
Jam 8 malam hingga 9 malam.
- Pilih fungsi yang berjalan:
- Klik Simpan (Save).
Sekarang, setiap malam di hari terakhir setiap bulannya, Google akan mengkalkulasi Sheets Anda dan bot Telegram akan tiba-tiba mengirimkan laporan lengkap ke HP Anda secara otomatis!

0 Komentar