Studypool Professional

import csv

import os

from datetime import datetime

FILE_NAME = “data_keuangan.csv”

# Membuat file jika belum ada

def buat_file():

if not os.path.exists(FILE_NAME):

with open(FILE_NAME, mode=’w’, newline=”) as file:

writer = csv.writer(file)

writer.writerow([“Tanggal”, “Jenis”, “Kategori”, “Jumlah”, “Keterangan”])

# Menambahkan transaksi

def tambah_transaksi(jenis):

tanggal = datetime.now().strftime(“%Y-%m-%d”)

kategori = input(“Masukkan kategori: “)

jumlah = int(input(“Masukkan jumlah uang: “))

keterangan = input(“Keterangan (opsional): “)

with open(FILE_NAME, mode=’a’, newline=”) as file:

writer = csv.writer(file)

writer.writerow([tanggal, jenis, kategori, jumlah, keterangan])

print(” Transaksi berhasil disimpann”)

# Menampilkan laporan

def laporan():

pemasukan = 0

pengeluaran = 0

print(“n=== LAPORAN KEUANGAN ===”)

with open(FILE_NAME, mode=’r’) as file:

reader = csv.DictReader(file)

for row in reader:

if row[“Jenis”] == “Pemasukan”:

pemasukan += int(row[“Jumlah”])

elif row[“Jenis”] == “Pengeluaran”:

pengeluaran += int(row[“Jumlah”])

saldo = pemasukan – pengeluaran

print(f”Total Pemasukan : Rp {pemasukan}”)

print(f”Total Pengeluaran: Rp {pengeluaran}”)

print(f”Saldo Akhir : Rp {saldo}n”)

# Menu utama

def menu():

while True:

print(“=== APLIKASI KEUANGAN PRIBADI ===”)

print(“1. Tambah Pemasukan”)

print(“2. Tambah Pengeluaran”)

print(“3. Lihat Laporan”)

print(“4. Keluar”)

pilihan = input(“Pilih menu (1-4): “)

if pilihan == “1”:

tambah_transaksi(“Pemasukan”)

elif pilihan == “2”:

tambah_transaksi(“Pengeluaran”)

elif pilihan == “3”:

laporan()

elif pilihan == “4”:

print(“Terima kasih telah menggunakan “)

break

else:

print(” Pilihan tidak validn”)

# Program utama

buat_file()

menu()

Requirements:

WRITE MY PAPER


Comments

Leave a Reply