“In this economy…”
Belakangan ini, kalimat itu sering sekali lewat di lini masa kita. Jujur saja, setiap kali melihat berita finansial atau sekadar mengecek nilai tukar dolar yang pelan tapi pasti mulai menyentuh angka Rp18.000, rasanya ada alarm yang langsung berbunyi di kepala.
Diakui atau tidak, kondisi ekonomi makro yang sedang memanas ini cepat atau lambat bakal terasa sampai ke dompet harian kita. Harga barang-barang mulai merangkak naik, sementara isi rekening rasanya begitu-begitu saja.
Menghadapi situasi krisis seperti ini, respons pertama kita biasanya adalah panik atau pasrah. Padahal, kuncinya bukan di sana. Kita memang tidak bisa mengontrol pergerakan mata uang dunia, tapi kita punya kendali penuh atas setiap rupiah yang keluar dari kantong kita sendiri.
Di sinilah pentingnya sebuah kebiasaan sederhana yang sering kita sepelekan: Mencatat Keuangan Harian.
Kenapa Mencatat Uang Itu Penting (Apalagi di Masa Sulit)?
Banyak orang berpikir bahwa menggunakan aplikasi pencatatan keuangan pribadi itu melelahkan dan bikin stres, karena kita jadi tahu seberapa cepat uang kita habis. Padahal kebalikannya! Mencatat keuangan justru penting karena tiga alasan utama ini:
- Menghilangkan “Vampir Finansial” (Bocor Alus): Pernah tidak, baru awal bulan tapi uang di ATM tiba-tiba sisa sedikit, dan Anda bingung uangnya habis untuk apa? Itu namanya bocor alus. Jajan kopi susu harian, langganan aplikasi yang jarang dipakai, atau sekadar camilan sore. Kalau tidak dicatat, pengeluaran kecil ini bakal bersatu menjadi badai yang menjebol tabungan.
- Mengubah Rasa Takut Menjadi Angka Pasti: Rasa cemas muncul karena kita hanya menebak-nebak. Dengan menerapkan cara mencatat keuangan yang konsisten, Anda mengubah rasa takut “Aduh, uangku cukup tidak ya bulan ini?” menjadi data konkret: “Oh, bulan ini uangku sisa Rp500.000, berarti minggu ini aku harus kurangi jajan di luar.” Data inilah yang membuat pikiran kita tetap tenang.
- Membangun Kendali Diri (Mindful Spending): Saat kita tahu ke mana setiap rupiah mengalir, kita jadi lebih bijak sebelum membeli sesuatu. Kita jadi punya rem otomatis sebelum menekan tombol checkout di marketplace.
Masalahnya: Aplikasi Keuangan di Luar Sana Malah Bikin Bingung!
Kita semua tahu mencatat itu penting. Tapi kenapa banyak orang yang gagal bertahan lebih dari seminggu? Jawabannya sederhana: Ribet.
Di luar sana sebenarnya sudah banyak aplikasi pencatatan keuangan gratis yang fiturnya sangat lengkap. Namun terkadang, saking lengkapnya, kita sebagai orang awam justru bingung bagaimana cara memakainya.
Belum lagi kita harus download aplikasi baru yang ukuran memorinya besar, layarnya penuh iklan, atau bahkan dibatasi kuota transaksi harian kecuali kita membayar versi premium. Mau pakai Excel atau Google Sheets untuk keuangan lewat HP? Duh, layarnya kekecilan dan rumit untuk mengetik rumusnya secara manual saat sedang buru-buru di kasir.
Nah, berhubung kita ingin solusi yang super praktis, privat, tanpa batas harian, dan 100% gratis, kenapa kita tidak membuat alat pencatat sendiri saja?
Solusi Cerdas: Bikin Bot Telegram Pencatat Keuangan Sendiri!
Memanfaatkan aplikasi chatting yang pasti Anda buka setiap hari, di artikel kali ini kita akan belajar cara membuat bot Telegram tanpa coding tingkat dewa. Bot ini berfungsi sebagai asisten pribadi yang akan mencatat keuangan harian Anda secara otomatis (Versi 1) dan langsung terhubung ke Google Sheets pribadi.
Hanya butuh waktu sekitar 10 menit, gratis, tanpa limit harian, dan dijamin sangat ramah buat orang awam!
Alat dan Bahan yang Diperlukan:
- ๐ฑ Akun Telegram (Aktif)
- ๐ป Google Sheets (Untuk database)
- โ Secangkir Kopi (Biar makin fokus) atau teh dan cemilan lainnya
- โจ Dan keyakinan bahwa kita bisa melewati badai ekonomi ini!
Yuk, seruput kopi Anda, siapkan laptop, dan mari kita mulai amankan keuangan kita dari badai Dolar 18K dengan tutorial lengkap di bawah ini!
Langkah 1: Membuat Bot Telegram
Hal pertama yang wajib kamu lakukan adalah membuat Telegram Bot yang nantinya diakses untuk mencatat pengeluaran dan pemasukan.
- Tambahkan user @BotFather ke akun Telegram kamu, atau klik tautan berikut: https://telegram.me/BotFather.

- Kemudian klik tombol START. Setelah diklik, maka akan muncul daftar perintah seperti gambar di bawah ini:

- Lanjutkan dengan mengetik /newbot kemudian tekan Enter atau kirim pesan.
- Akan muncul perintah baru untuk memasukkan nama bot yang akan kamu buat. Nama bot di sini bebas, misalnya: Asisten Pencatat Uang.
- Setelah mengirim nama, langkah selanjutnya adalah memilih username untuk bot kamu. Username ini harus unik dan wajib diakhiri dengan kata bot atau _bot. Contohnya kita gunakan DanahitaBot.
๐ก Tips jika username ditolak: Jika muncul keterangan bahwa username sudah digunakan oleh orang lain, silakan cari alternatif nama lain (misalnya dikombinasikan dengan nama pribadimu).
- Jika berhasil, kamu akan mendapatkan HTTP API atau Bot Token. Simpan token ini baik-baik dan jangan sebar ke siapa pun!

Langkah 2: Mendapatkan User ID Telegram
Setelah mendapat Bot Token, proses selanjutnya adalah mengetahui User ID Telegram pribadi kita. ID ini penting sebagai pengaman agar tidak ada orang lain yang bisa mengotak-atik Google Sheet kita melalui bot tersebut.
- Cari dan tambahkan bot @userinfobot atau klik URL berikut: https://t.me/userinfobot.
- Sama seperti sebelumnya, klik START, lalu info User ID Anda akan langsung muncul.

- Simpan angka ID yang muncul. Kita akan memasukkannya ke dalam script pengaman nanti.
Langkah 3: Membuat Google Sheet sebagai Database
Karena semua transaksi dari Telegram akan dicatat langsung ke dalam Google Sheet, kita perlu menyiapkan lembar kerja dengan format khusus. Untuk mempermudah Anda, silakan buat salinan (make a copy) dari template Google Sheet yang sudah saya siapkan di bawah ini:
- Link Template Google Sheet : Download
Cara Menyalin Template:
- Buka tautan di atas melalui browser laptop Anda.
- Klik menu File > Make a copy (Buat salinan).
- Simpan dengan nama sesuai keinginan Anda.

Setelah tab baru terbuka, Google Sheet hasil salinan tersebut kini sepenuhnya menjadi milik Anda dan bisa diedit. Mari kita pahami fungsi dari masing-masing sheet (tab) di dalamnya:
- Sheet Settings: Digunakan untuk mengatur bulan dan tahun berjalan agar bot bisa mencatat pengeluaran dan pendapatan secara akurat pada periode tersebut.
- Sheet Saldo: Tempat untuk memasukkan semua daftar rekening, tabungan, atau dompet digital yang Anda miliki. Anda bebas menambahkan baris baru di sini.
- Sheet Log_Transaksi: Tab utama tempat semua data transaksi dari Telegram akan ditulis otomatis secara real-time (berisi tanggal, keterangan, saldo yang digunakan, dan jenis transaksi).
- Sheet Kategori: Tempat untuk menambahkan kategori pengeluaran dan pemasukan sesuai kebutuhan harian Anda.
Bagian yang Wajib Anda Sesuaikan:
- Pada Tab Saldo: Ubah dan tambahkan “kantong uang” realitas Anda. Misalnya: Bank Mandiri, Dompet Tunai, E-Money, GoPay, ShopeePay, dll. Isi bagian Saldo Awal dengan nominal uang Anda saat ini. Untuk kolom Saldo Akhir, Anda bisa mengosongkannya karena sistem akan mengkalkulasinya secara otomatis berdasarkan mutasi transaksi.

- Pada Tab Kategori: Masukkan kategori pengeluaran harian Anda, seperti: Belanja Bulanan, Makan & Minum, Parkir, BBM, Listrik, dll.

โ ๏ธ PENTING: Jangan mengubah nama dari keempat tab (sheet) tersebut karena nama-nama ini sudah terkunci di dalam program Google Apps Script.
Langkah 4: Memasang “Otak” Bot dengan Google Apps Script
Ini adalah langkah krusial untuk memasukkan logika program ke dalam Google Sheet kita. Karena Anda menggunakan template hasil copy di atas, sistem sebenarnya sudah menyiapkan wadah script-nya. Anda hanya perlu membuka dan menyesuaikan kodenya.
- Di Google Sheet Anda, klik menu Extensions > Apps Script.

- Jendela editor kode akan terbuka. Hapus seluruh kode yang ada di sana (jika ada), lalu ganti dan tempel (paste) dengan kode lengkap di bawah ini:
// ==================== CONFIGURATION ==================== const TOKEN = "KODE_TOKEN_TELEGRAM_ANDA_DI_SINI"; //Masukkan Bot Token disini const WEBHOOK_URL = "https://api.telegram.org/bot" + TOKEN; const ALLOWED_USERS = [12345678]; // Masukkan ID Telegram Anda // ======================================================= function doPost(e) { try { const update = JSON.parse(e.postData.contents); if (!update.message) return; const chatId = update.message.chat.id; const userId = update.message.from.id; const text = update.message.text.trim(); if (!ALLOWED_USERS.includes(userId)) { sendText(chatId, "โ ๏ธ *Akses Ditolak.*"); return; } const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheetLog = ss.getSheetByName("Log_Transaksi"); const sheetSettings = ss.getSheetByName("Settings"); const sheetSaldo = ss.getSheetByName("Saldo"); const sheetKategori = ss.getSheetByName("Kategori"); // Ambil Master Data Bank dari tab Saldo let dataMasterSaldo = sheetSaldo.getDataRange().getValues(); let daftarBankResmi = []; for (let i = 1; i < dataMasterSaldo.length; i++) { if (dataMasterSaldo[i][0]) { daftarBankResmi.push(dataMasterSaldo[i][0].toString().trim().toUpperCase()); } } // Ambil Master Data Kategori dari tab Kategori let dataMasterKategori = sheetKategori.getDataRange().getValues(); let daftarKategoriResmi = []; for (let i = 1; i < dataMasterKategori.length; i++) { if (dataMasterKategori[i][0]) { daftarKategoriResmi.push(dataMasterKategori[i][0].toString().trim()); } } // Ambil Status Sementara di Settings let tempJenis = sheetSettings.getRange("C2").getValue().toString().trim(); let tempKategori = sheetSettings.getRange("F2").getValue().toString().trim(); // LANGKAH 3: PROSES MENYIMPAN TRANSAKSI SETELAH PILIH BANK if (tempJenis !== "" && tempKategori !== "" && daftarBankResmi.includes(text.toUpperCase())) { let tempNominal = Number(sheetSettings.getRange("D2").getValue()); let tempKeterangan = sheetSettings.getRange("E2").getValue().toString().trim(); let bankPilihan = text.toUpperCase(); if (tempKeterangan === "") tempKeterangan = tempKategori; let tanggalHariIni = new Date(); let jenisRapih = tempJenis === "masuk" ? "Masuk" : "Keluar"; // Struktur Simpan Kolom: [A: Timestamp, B: Tanggal, C: Jenis, D: Nominal, E: Keterangan, F: Bank, G: Kategori] sheetLog.appendRow([tanggalHariIni, tanggalHariIni, jenisRapih, tempNominal, tempKeterangan, bankPilihan, tempKategori]); // Reset temporary data sheetSettings.getRange("C2:F2").clearContent(); let pesanSukses = `โ *Berhasil dicatat!*\n${jenisRapih}: Rp ${tempNominal.toLocaleString('id-ID')} via *${bankPilihan}*\n๐ Kategori: ${tempKategori}\n๐ Ket: ${tempKeterangan}`; sendTextWithKeyboard(chatId, pesanSukses); return; } // LANGKAH 2: PROSES SETELAH USER MEMILIH KATEGORI if (tempJenis !== "" && tempKategori === "" && daftarKategoriResmi.includes(text)) { sheetSettings.getRange("F2").setValue(text); let pesanPilihBank = `๐ณ Kategori dipilih: *${text}*\n\n๐ Terakhir, silakan pilih *Bank/Dompet* yang digunakan:`; sendDynamicKeyboard(chatId, pesanPilihBank, daftarBankResmi); return; } // 1. FITUR /start / BANTUAN if (text === "/start" || text === "โ Bantuan") { let pesanWelcome = "๐ *Halo! Selamat datang di Bot Catat Uang + Kategori.*\n" + "_*dibuat oleh danahita.web.id + Gemini*_\n\n" + "Format mencatat transaksi baru:\n" + "`[Jenis] [Nominal] [Keterangan_Opsional]`\n\n" + "๐ข Contoh: `Masuk 5000000` atau `Masuk 5000000 Bonus`\n" + "๐ด Contoh: `Keluar 15000` atau `Keluar 15000 Nasi Jinggo`\n\n" + "Setelah kirim, Anda cukup klik tombol Kategori & Bank yang muncul otomatis."; sendTextWithKeyboard(chatId, pesanWelcome); return; } // 2. FITUR /undo / BATAL if (text === "/undo" || text === "โฉ๏ธ Batalkan Transaksi") { let lastRow = sheetLog.getLastRow(); if (lastRow > 1) { let lastData = sheetLog.getRange(lastRow, 1, 1, 7).getValues()[0]; let jenis = lastData[2]; let nominal = Number(lastData[3]); let bank = lastData[5]; let kat = lastData[6] || "-"; sheetLog.deleteRow(lastRow); sendText(chatId, `โฉ๏ธ *Transaksi berhasil dibatalkan!*\n๐๏ธ _Terhapus: ${jenis} Rp ${nominal.toLocaleString('id-ID')} [${kat}] via ${bank}_`); } else { sendText(chatId, "โ Belum ada transaksi yang bisa dihapus."); } return; } // 3. TOMBOL CEK SEMUA SALDO (Perbaikan Logika Kalkulasi Berjalan) if (text === "๐ฐ Cek Semua Saldo") { let saldoBank = {}; for (let i = 1; i < dataMasterSaldo.length; i++) { if (dataMasterSaldo[i][0]) { let namaBank = dataMasterSaldo[i][0].toString().trim().toUpperCase(); saldoBank[namaBank] = Number(dataMasterSaldo[i][1]); } } if (sheetLog.getLastRow() > 1) { let dataLog = sheetLog.getRange(2, 1, sheetLog.getLastRow() - 1, 7).getValues(); for (let i = 0; i < dataLog.length; i++) { let jenis = dataLog[i][2] ? dataLog[i][2].toString().trim().toLowerCase() : ""; let nominal = Number(dataLog[i][3]) || 0; let bankMutasi = dataLog[i][5] ? dataLog[i][5].toString().trim().toUpperCase() : ""; if (saldoBank[bankMutasi] !== undefined) { if (jenis === "masuk") saldoBank[bankMutasi] += nominal; if (jenis === "keluar") saldoBank[bankMutasi] -= nominal; } } } let rincianBankTeks = ""; let totalSaldoSemuaBank = 0; for (let b in saldoBank) { rincianBankTeks += `๐ณ *${b}*: Rp ${saldoBank[b].toLocaleString('id-ID')}\n`; totalSaldoSemuaBank += saldoBank[b]; } sendText(chatId, `๐ฐ *KONDISI SALDO REAL-TIME*\n---------------------------------\n${rincianBankTeks}---------------------------------\n` + `๐งฎ *Total Semua Uang: Rp ${totalSaldoSemuaBank.toLocaleString('id-ID')}*`); return; } // 4. TOMBOL LAPORAN BULANAN DENGAN RINCIAN KATEGORI (Perbaikan Filter Tanggal Indonesia) if (text === "๐ Laporan Bulanan" || text === "/report") { let blnAktif = Number(sheetSettings.getRange("A2").getValue()); let thnAktif = Number(sheetSettings.getRange("B2").getValue()); let totalMasukBulanIni = 0; let totalKeluarBulanIni = 0; let laporanKategori = {}; if (sheetLog.getLastRow() > 1) { let dataLog = sheetLog.getRange(2, 1, sheetLog.getLastRow() - 1, 7).getValues(); for (let i = 0; i < dataLog.length; i++) { let cellTanggal = dataLog[i][1]; if (!cellTanggal) continue; let tglData = new Date(cellTanggal); let blnData = tglData.getMonth() + 1; let thnData = tglData.getFullYear(); // Cadangan jika pembacaan Date objek gagal karena regional format Sheets if (isNaN(blnData)) { // Jika tanggal terbaca sebagai teks string (Contoh: "2026-06-11") let partsTgl = cellTanggal.toString().split("-"); if (partsTgl.length >= 3) { blnData = Number(partsTgl[1]); thnData = Number(partsTgl[0]); } } let jenis = dataLog[i][2] ? dataLog[i][2].toString().trim().toLowerCase() : ""; let nominal = Number(dataLog[i][3]) || 0; let katData = dataLog[i][6] ? dataLog[i][6].toString().trim() : "Tanpa Kategori"; if (blnData === blnAktif && thnData === thnAktif) { if (jenis === "masuk") totalMasukBulanIni += nominal; if (jenis === "keluar") { totalKeluarBulanIni += nominal; if (!laporanKategori[katData]) laporanKategori[katData] = 0; laporanKategori[katData] += nominal; } } } } let rincianKategoriTeks = ""; for (let k in laporanKategori) { rincianKategoriTeks += `โช๏ธ ${k}: Rp ${laporanKategori[k].toLocaleString('id-ID')}\n`; } if (rincianKategoriTeks === "") rincianKategoriTeks = "_Belum ada pengeluaran_\n"; let pesanReport = `๐ *Laporan Keuangan Bulan ${blnAktif}-${thnAktif}*\n` + `๐ข Total Masuk: Rp ${totalMasukBulanIni.toLocaleString('id-ID')}\n` + `๐ด Total Keluar: Rp ${totalKeluarBulanIni.toLocaleString('id-ID')}\n\n` + `๐ฅ *Rincian Beban Pengeluaran:*\n` + rincianKategoriTeks + `---------------------------------\n` + `๐ Sisa Bersih Bulan Ini: Rp ${(totalMasukBulanIni - totalKeluarBulanIni).toLocaleString('id-ID')}`; sendText(chatId, pesanReport); return; } // LANGKAH 1: PROSES INPUT TRANSAKSI AWAL let parts = text.split(" "); if (parts.length >= 2) { let jenisInput = parts[0].toLowerCase(); let nominal = Number(parts[1]); let keterangan = parts.slice(2).join(" "); if ((jenisInput === "masuk" || jenisInput === "keluar") && !isNaN(nominal)) { sheetSettings.getRange("C2").setValue(jenisInput); sheetSettings.getRange("D2").setValue(nominal); sheetSettings.getRange("E2").setValue(keterangan); sheetSettings.getRange("F2").clearContent(); let pesanPilihKategori = `๐ Transaksi: *${jenisInput === "masuk" ? "Masuk" : "Keluar"} Rp ${nominal.toLocaleString('id-ID')}*\n\n๐ Silakan pilih *Kategori* transaksi ini:`; sendDynamicKeyboard(chatId, pesanPilihKategori, daftarKategoriResmi); return; } } sendText(chatId, "๐ค Format salah. Contoh: `Keluar 15000` atau `Keluar 15000 Nasi Jinggo`"); } catch (error) { // bypass error } } function sendDynamicKeyboard(chatId, text, daftarItem) { let url = WEBHOOK_URL + "/sendMessage"; let keyboard = []; for (let i = 0; i < daftarItem.length; i += 2) { let row = []; row.push(daftarItem[i]); if (daftarItem[i + 1]) row.push(daftarItem[i + 1]); keyboard.push(row); } let payload = { "chat_id": chatId, "text": text, "parse_mode": "Markdown", "reply_markup": { "keyboard": keyboard, "resize_keyboard": true, "one_time_keyboard": true } }; let options = { "method": "post", "contentType": "application/json", "payload": JSON.stringify(payload) }; UrlFetchApp.fetch(url, options); } function sendTextWithKeyboard(chatId, text) { let url = WEBHOOK_URL + "/sendMessage"; let keyboard = [ ["๐ฐ Cek Semua Saldo"], ["๐ Laporan Bulanan", "โฉ๏ธ Batalkan Transaksi"], ["โ Bantuan"] ]; let payload = { "chat_id": chatId, "text": text, "parse_mode": "Markdown", "reply_markup": { "keyboard": keyboard, "resize_keyboard": true, "one_time_keyboard": false } }; let options = { "method": "post", "contentType": "application/json", "payload": JSON.stringify(payload) }; UrlFetchApp.fetch(url, options); } function sendText(chatId, text) { let url = WEBHOOK_URL + "/sendMessage"; let payload = {"chat_id": chatId, "text": text, "parse_mode": "Markdown"}; let options = {"method": "post", "contentType": "application/json", "payload": JSON.stringify(payload)}; UrlFetchApp.fetch(url, options); } function setWebhook() { let urlDeployWeb = "URL_WEB_APP_ANDA_SETELAH_DEPLOY"; //Masukkan Webhook Google Script disini let response = UrlFetchApp.fetch(WEBHOOK_URL + "/setWebhook?url=" + urlDeployWeb); Logger.log(response.getContentText()); } - Ganti dua variabel di baris paling atas menggunakan data Anda dari Langkah 1 & Langkah 2:
– const TOKEN = “Ganti dengan BOT TOKEN ANDA”
– const ALLOWED_USERS = [Ganti dengan User ID Telegram Anda] (Pastikan tetap di dalam kurung siku).

- Jika variabel sudah diganti, simpan proyek script ini dengan menekan ikon Disket (Save Project) pada menu atas.

Langkah 5: Deploy Script sebagai Web App
Agar kode program di atas bisa berkomunikasi dengan Telegram selama 24 jam penuh, kita harus mempublikasikannya (deploy).
- Di sudut kanan atas halaman Apps Script, klik tombol Deploy > New deployment.

- Jendela baru akan muncul. Klik ikon Gear/Gerigi (Select type) lalu pilih Web app.

- Konfigurasikan pengaturan sebagai berikut:
– Description: Isi bebas (misal: Bot Catat Uang v1).
– Execute as: Pilih Me (Email Anda).
– Who has access: Pilih Anyone (Ini wajib agar server Telegram bisa mengirim data ke sini).

- Klik tombol Deploy.
- Google akan meminta izin keamanan untuk mengakses Google Sheet Anda. Klik Authorize access.

- Jika muncul peringatan keamanan (Advanced warning), jangan panikโini normal karena Anda menjalankan script buatan sendiri. Klik tulisan Advanced di kiri bawah, lalu pilih Go to Catat Keuangan (unsafe).


- Di halaman konfirmasi hak akses terakhir, beri tanda centang lalu klik Allow atau Continue.

- Begitu proses selesai, Google akan memberikan Web App URL. Salin (Copy) URL tersebut.

Langkah 6: Menghubungkan Web App ke Bot Telegram (Set Webhook)
Langkah terakhir adalah “menjodohkan” Web App URL dari Google dengan Bot Telegram Anda.
- Kembali ke editor kode Google Apps Script Anda.
- Scroll ke paling bawah ke bagian fungsi setWebhook().
- Ganti teks “URL_WEB_APP_ANDA_SETELAH_DEPLOY” dengan tautan Web App URL yang baru saja Anda salin tadi.

- Simpan kembali proyek Anda (Klik ikon disket).
- Pada bilah menu atas, ubah pilihan fungsi yang semula doPost atau debug menjadi setWebhook.

- Klik tombol Run (Ikon Segitiga / Jalankan) di sebelahnya. Tunggu hingga bilah log eksekusi di bawah muncul pesan “Ok: true”.

Jika statusnya sudah true, selamat! Bot Telegram Anda sudah terhubung seutuhnya dan siap digunakan untuk mengamankan keuangan Anda.
Aplikasi dan sistem database Anda sudah ter-setup dengan rapi di artikel ini.
Langkah 7: Cara Penggunaan Bot di Telegram
Setelah melalui proses setup yang cukup panjang, sekarang saatnya kita panen hasilnya. Silakan kembali ke aplikasi Telegram Anda.
- Cari nama bot yang sudah Anda buat tadi di kolom pencarian, lalu buka chat room-nya.
- Klik tombol START di bagian bawah layar.


Jika setelah menekan tombol Start muncul pesan sambutan beserta panduan format transaksinya, selamat! Bot pencatat keuangan Anda sudah aktif dan siap bekerja.
Panduan Memasukkan Transaksi Harian
Saya sudah mendesain bot ini agar bisa dijalankan dengan sangat mudah, bahkan saat Anda sedang buru-buru di depan kasir toko. Berikut adalah alur penggunaannya:
1. Mencatat Uang Masuk (Pendapatan)
Ketik dengan format: masuk [nominal] [keterangan]
- Contoh: masuk 5000000 Gaji Bulanan atau masuk 500000 Bonus Projek
2. Mencatat Uang Keluar (Pengeluaran)
Ketik dengan format: keluar [nominal] [keterangan]
- Contoh: keluar 15000 Nasi Jinggo atau keluar 25000 Bensin
Setelah Anda menekan tombol kirim (Enter), bot akan secara otomatis memunculkan tombol pilihan Kategori yang mengambil data langsung dari Google Sheet Anda.

Pada tahap terakhir, bot akan meminta Anda memilih Bank/Dompet mana yang digunakan dalam transaksi tersebut. Cukup klik tombol yang sesuai, dan boom! Data langsung tercatat rapi di Google Sheet dalam hitungan detik.
3. Menggunakan Fitur Bantuan dan Menu Lainnya
Jika Anda ingin melihat sisa saldo atau laporan, cukup klik ikon menu/tombol di keyboard Telegram Anda. Tombol bantuan dan pintasan lainnya akan langsung muncul.


Ringkasan Fitur Bot Pencatat Keuangan (Versi 1)
Meskipun dibuat tanpa coding rumit, bot asisten keuangan pribadi ini sudah dibekali dengan fitur-fitur esensial yang sangat bertenaga:
- ๐ข Catat Uang Masuk: Memasukkan pendapatan lengkap dengan catatan sumbernya.
- ๐ด Catat Uang Keluar: Memantau pengeluaran harian secara instan.
- ๐ฐ Cek Semua Saldo: Menampilkan kondisi saldo real-time di seluruh rekening dan dompet digital Anda.
- ๐ Laporan Bulanan: Melihat total mutasi serta rincian beban pengeluaran berdasarkan kategori pada bulan berjalan.
- โฉ๏ธ Batalkan Transaksi (Undo): Salah ketik nominal? Cukup tekan tombol ini untuk menghapus baris transaksi terakhir di Google Sheet.
- ๐ Kategorisasi Otomatis: Semua transaksi terkelompokkan dengan rapi sesuai kategori yang Anda tentukan sendiri.
Kesimpulan
Bagaimana? Ternyata membuat alat pencatat keuangan yang privat, gratis, dan canggih tidak sesulit yang dibayangkan, bukan?
Dengan memanfaatkan bot Telegram ini, Anda tidak perlu lagi mengeluh malas mencatat karena layarnya kekecilan atau aplikasinya penuh iklan. Cukup kirim chat singkat seperti biasa, dan asisten digital Anda yang akan mengurus sisanya ke dalam Google Sheets.
Langkah kecil ini mungkin tidak akan mengubah kondisi ekonomi makro dunia, tapi jelas bisa menyelamatkan dompet kita dari bahaya “bocor alus”.
Jika ada pertanyaan silahkan tinggalkan komentar atau tanyakan langsung ke instagram saya @putradanahita
Semoga tutorial ini bermanfaat untuk membantu Anda mengamankan keuangan dan tetap tenang menghadapi badai ekonomi harian. Selamat mencoba, dan mari kita mulai lebih bijak mengelola setiap rupiah yang kita miliki!
Kira kira fitur apa lagi ya yang bisa ditambahkan selanjutnya?





