Membuat Dashboard Keuangan Pribadi Menggunakan Python Dan Google Sheets API - CRUDPRO

Membuat Dashboard Keuangan Pribadi Menggunakan Python Dan Google Sheets API

Membuat Dashboard Keuangan Pribadi Menggunakan Python Dan Google Sheets API

Manajemen keuangan pribadi ialah tugas penting yang sering memakan waktu dan rawan kesalahan jika dilakukan dengan manual. Untungnya, Python menawarkan banyak alat yang dapat membantu mengotomatiskan proses ini dan merampingkan kehidupan keuangan Anda. Pada artikel ini, kami akan menggunakan Python dan Google Sheets API untuk membuat dashboard keuangan pribadi yang mengupdate pengeluaran dan pendapatan Anda secara otomatis, memberikan wawasan real-time mengenai kesehatan keuangan Anda.

Berhubungan dengan Google Spreadsheet

Langkah awal kami adalah membuat jaringan antara skrip Python kami dan Google Sheets.

import gspread
from oauth2client.service_account import ServiceAccountCredentials

# Define the scope
scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']

# Add your service account file
creds = ServiceAccountCredentials.from_json_keyfile_name('client_secret.json', scope)

# Authorize the clientsheet 
client = gspread.authorize(creds)

# Get the instance of the Spreadsheet
sheet = client.open('personal_finance')

# Get the first sheet of the Spreadsheet
sheet_instance = sheet.get_worksheet(0)

Menyusun Google Sheets

Kami akan memiliki dua lembar utama - 'Penghasilan' dan 'Beban'. Ke-2 sheet akan mempunyai struktur yang mirip, dengan kolom untuk 'Tanggal', 'Deskripsi', 'Kategori', dan 'Jumlah'. Lembar 'Penghasilan' akan memiliki kolom 'Sumber' tambahan, dan lembar 'Pengeluaran' akan memiliki kolom 'Metode Pembayaran'.

Untuk menambahkan data ke sheet ini, kami akan mendefinisikan fungsi Python.

def add_entry(sheet, date, description, category, amount, extra_info):
    new_row = [date, description, category, amount, extra_info]
    sheet.append_row(new_row)

Anda bisa menggunakan fungsi ini untuk menambahkan entri pendapatan atau pengeluaran baru.

Mengotomatiskan Entri Data

Dengan asumsi Anda memiliki sistem untuk mencari transaksi Anda - seperti aplikasi mobile atau file text - Anda bisa mengotomatiskan lebih lanjut proses entri data. Misalnya, bila Anda menyimpan transaksi Anda dalam file text dengan setiap baris diformat sebagai 'Tanggal, Deskripsi, Kategori, Jumlah, Extra_info', Anda bisa menggunakan fungsi berikut untuk membaca file dan mengupdate sheet Anda secara otomatis.

def update_sheet_from_file(sheet, filename):
    with open(filename, 'r') as file:
        for line in file:
            date, description, category, amount, extra_info = line.strip().split(',')
            add_entry(sheet, date, description, category, amount, extra_info)

Fungsi ini membaca setiap baris file, membaginya menjadi beberapa komponen, dan menambahkannya ke Google Sheet.

Menganalisis Keuangan Anda

Sekarang setelah data keuangan kami diatur dalam Google Sheets, kami dapat mulai menganalisisnya. Kami akan menggunakan perpustakaan pandas untuk ini.

Pertama, silahkan ambil data kita dari Google Sheets dan ubah menjadi DataFrame.

import pandas as pd

def get_data(sheet):
    data = sheet.get_all_values()
    headers = data.pop(0)
    df = pd.DataFrame(data, columns=headers)
    df['Amount'] = df['Amount'].astype(float)  # Convert 'Amount' column to float type
    df['Date'] = pd.to_datetime(df['Date'])  # Convert 'Date' column to datetime type
    return df

Kemudian bisa melakukan berbagai analisis pada DataFrame ini. Misalnya, untuk menemukan keseluruhan penghasilan dan pengeluaran Anda:

income_sheet = sheet.get_worksheet(1)  # Assume 'Income' is the second sheet
expenses_sheet = sheet.get_worksheet(2)  # Assume 'Expenses' is the third sheet

income_df = get_data(income_sheet)
expenses_df = get_data(expenses_sheet)

total_income = income_df['Amount'].sum()
total_expenses = expenses_df['Amount'].sum()

Atau untuk menemukan pengeluaran bulanan Anda di setiap kategori:

monthly_expenses = expenses_df.groupby([expenses_df['Date'].dt.month, 'Category'])['Amount'].sum()

Membuat Peringatan

Terakhir, Anda bisa menambahkan fungsionalitas untuk mengirimkan peringatan saat kondisi tertentu terpenuhi. Misalnya, Anda bisa meminta skrip mengirimi Anda e-mail saat pengeluaran Anda dalam suatu kategori melebihi batas tertentu. Untuk melakukannya, kita akan menggunakan library smtplib.

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

def send_email(subject, message):
    msg = MIMEMultipart()
    msg['From'] = '[email protected]'
    msg['To'] = '[email protected]'
    msg['Subject'] = subject
    msg.attach(MIMEText(message, 'plain'))

    server = smtplib.SMTP('smtp.gmail.com', 587)
    server.starttls()

    server.login('[email protected]', 'your-password')
    text = msg.as_string()
    server.sendmail('[email protected]', '[email protected]', text)
    server.quit()

Selanjutnya bisa memanggil fungsi ini ketika suatu keadaan terpenuhi. Misalnya:

if total_expenses > 2000:
    send_email('Expense Alert', 'Your total expenses have exceeded $2000.')

Silahkan mengganti '[email protected]' dan 'your-password' dengan e-mail dan sandi Anda yang sebenarnya.

Kesimpulan

Dengan memanfaatkan Python dan Google Sheets API, kami sudah membuat alat yang kuat untuk mengotomatiskan pengelolaan keuangan pribadi. Sistem ini tidak hanya mengotomatiskan entri data tetapi juga menyediakan analisis keuangan secara real-time dan mengirimkan peringatan berdasarkan kondisi yang sudah ditentukan. Ini hanyalah sekilas mengenai bagaimana Python bisa mengotomatisasi dan menyederhanakan hidup kita.