Daftar Isi
- Pendahuluan
- Mengapa Menggunakan CLI dan Google Sheets?
- Persiapan Lingkungan & Kebutuhan
- Struktur Fitur Aplikasi
- Menyiapkan Google Sheets & API
- Menulis Kode Python CLI
- a. Koneksi ke Google Sheets
- b. Menu CLI Pencatatan Keuangan
- c. Filter Data Berdasarkan Tanggal
- d. Laporan Bulanan Otomatis
- Menjalankan Aplikasi
- Tips Keamanan & Optimasi
- Kesimpulan
1. Pendahuluan
Manajemen keuangan pribadi adalah salah satu kunci penting untuk mengatur hidup finansial dengan baik. Banyak orang kesulitan mencatat pemasukan dan pengeluaran secara konsisten.
Artikel ini akan membimbing Anda membuat aplikasi Python berbasis CLI (Command Line Interface) yang dapat:
- Mencatat pemasukan dan pengeluaran harian.
- Mengirim data otomatis ke Google Sheets.
- Menyediakan fitur filter berdasarkan tanggal.
- Membuat laporan bulanan otomatis.
Dengan aplikasi ini, Anda akan memiliki sistem pencatatan yang sederhana, gratis, dan bisa diakses dari mana saja.
2. Mengapa Menggunakan CLI dan Google Sheets?
- CLI → Ringan, cepat, dan tidak membutuhkan GUI rumit.
- Google Sheets → Bisa diakses dari HP/PC, mendukung kolaborasi, dan gratis.
- Integrasi keduanya membuat pencatatan jadi fleksibel: input dari terminal, laporan muncul di cloud.
3. Persiapan Lingkungan & Kebutuhan
Sebelum mulai, pastikan Anda sudah memiliki:
- Python 3.8+
Cek dengan: bashSalinEdit:python --version - Pustaka Python yang Dibutuhkan bashSalinEdit :
pip install gspread oauth2client tabulategspread→ untuk koneksi ke Google Sheetsoauth2client→ untuk autentikasi APItabulate→ untuk menampilkan tabel rapi di terminal
- Akun Google & Google Cloud Console untuk membuat API service account.
4. Struktur Fitur Aplikasi
Aplikasi akan memiliki menu:
- Tambah pemasukan.
- Tambah pengeluaran.
- Tampilkan semua data.
- Filter data per tanggal.
- Laporan bulanan otomatis.
- Keluar.
5. Menyiapkan Google Sheets & API
- Buat Spreadsheet Baru di Google Sheets.
Misalnya beri nama:KeuanganPribadi

2. Aktifkan Google Sheets API di Google Cloud Console

3. Buat Service Account → Unduh file credentials.json.

4. Bagikan Spreadsheet ke email service account dengan hak Editor.

6. Menulis Kode Python CLI
a. Koneksi ke Google Sheets
import gspread
from oauth2client.service_account import ServiceAccountCredentials
from datetime import datetime
from tabulate import tabulate
def connect_gsheet(sheet_name):
scope = [“https://spreadsheets.google.com/feeds”, “https://www.googleapis.com/auth/drive”]
creds = ServiceAccountCredentials.from_json_keyfile_name(“credentials.json”, scope)
client = gspread.authorize(creds)
return client.open(sheet_name).sheet1
sheet = connect_gsheet(“KeuanganPribadi”)
b. Menu CLI Pencatatan Keuangan
def tambah_data(jenis):
tanggal = datetime.now().strftime(“%Y-%m-%d”)
keterangan = input(“Keterangan: “)
jumlah = float(input(“Jumlah: “))
if jenis == "pemasukan":
data = [tanggal, keterangan, jumlah, 0]
else:
data = [tanggal, keterangan, 0, jumlah]
sheet.append_row(data)
print("Data berhasil ditambahkan ke Google Sheets.")
def tampilkan_data():
records = sheet.get_all_values()
print(tabulate(records, headers=”firstrow”, tablefmt=”grid”))
c. Filter Data Berdasarkan Tanggal
def filter_tanggal():
tgl_filter = input(“Masukkan tanggal (YYYY-MM-DD): “)
records = sheet.get_all_values()[1:] # tanpa header
hasil = [row for row in records if row[0] == tgl_filter]
if hasil:
print(tabulate([["Tanggal", "Keterangan", "Pemasukan", "Pengeluaran"]] + hasil, tablefmt="grid"))
else:
print("Tidak ada data pada tanggal tersebut.")
d. Laporan Bulanan Otomatis
def laporan_bulanan():
bulan = input(“Masukkan bulan (MM): “)
tahun = input(“Masukkan tahun (YYYY): “)
records = sheet.get_all_values()[1:]
total_masuk = 0
total_keluar = 0
for row in records:
tgl = datetime.strptime(row[0], "%Y-%m-%d")
if tgl.month == int(bulan) and tgl.year == int(tahun):
total_masuk += float(row[2]) if row[2] else 0
total_keluar += float(row[3]) if row[3] else 0
print(f"Laporan Bulan {bulan}-{tahun}")
print(f"Total Pemasukan: Rp {total_masuk:,.2f}")
print(f"Total Pengeluaran: Rp {total_keluar:,.2f}")
print(f"Saldo: Rp {(total_masuk - total_keluar):,.2f}")
e. Menu Utama
def menu():
while True:
print(“\n=== Manajemen Keuangan Pribadi ===”)
print(“1. Tambah Pemasukan”)
print(“2. Tambah Pengeluaran”)
print(“3. Tampilkan Semua Data”)
print(“4. Filter Per Tanggal”)
print(“5. Laporan Bulanan”)
print(“6. Keluar”)
pilihan = input("Pilih menu: ")
if pilihan == "1":
tambah_data("pemasukan")
elif pilihan == "2":
tambah_data("pengeluaran")
elif pilihan == "3":
tampilkan_data()
elif pilihan == "4":
filter_tanggal()
elif pilihan == "5":
laporan_bulanan()
elif pilihan == "6":
break
else:
print(" Pilihan tidak valid.")
if name == “main“:
menu()
7. Menjalankan Aplikasi
- Simpan file sebagai
keuangan.py. - Jalankan: bashSalinEdit :
python keuangan.py - Setiap data yang Anda input akan otomatis masuk ke Google Sheets.
8. Tips Keamanan & Optimasi
- Jangan bagikan
credentials.jsonke orang lain. - Gunakan .gitignore jika menyimpan kode di GitHub.
- Tambahkan validasi input angka agar tidak error.
- Gunakan threading atau batch append untuk input data besar.
9. Kesimpulan
Dengan aplikasi ini, Anda bisa mencatat pemasukan dan pengeluaran langsung dari terminal dan menyimpannya di Google Sheets secara otomatis. Fitur filter dan laporan bulanan membantu menganalisis kebiasaan keuangan Anda, sehingga lebih mudah mengambil keputusan finansial.