Cara Membuat Program Python Sederhana: Panduan Praktis untuk Pemula
Membangun Fondasi Rekayasa Perangkat Lunak dengan Python
Menulis kode bukan sekadar merangkai sintaks agar mesin berjalan; ini adalah proses menstrukturkan logika sistematis. Di GEARFORGE, kami menerapkan standar arsitektur bersih (clean architecture) bahkan untuk script paling sederhana. Panduan ini dirancang untuk melatih pemula berpikir selayaknya software engineer: terstruktur, modular, dan efisien.
1. Prasyarat Lingkungan Eksekusi
Sebelum menulis baris pertama, pastikan lingkungan kerja terpasang dengan benar:
- Python 3.10+: Unduh dan pasang dari repositori resmi
python.org. - Terminal / CLI: Bash, Zsh, atau Windows PowerShell.
- Editor Kode: VS Code atau editor teks berbasis terminal (Neovim/Nano).
Verifikasi instalasi melalui terminal:
python3 --version
2. Studi Kasus: Program CLI Kalkulator Keuangan Sederhana
Kita akan membangun kalkulator rasio tabungan modular. Program ini akan menerima input pengguna, memvalidasi data, melakukan kalkulasi logika bisnis, dan mencetak output terformat.
Desain Struktur Proyek
Untuk proyek sederhana, kita menggunakan satu file modular dengan pemisahan tanggung jawab (separation of concerns):
- Fungsi I/O: Mengelola input/output terminal.
- Fungsi Logika Bisnis: Melakukan kalkulasi matematis murni.
- Fungsi Entry Point: Mengontrol alur utama eksekusi.
3. Implementasi Kode Bersih (Clean Code)
Buat file bernama finance_calculator.py dan masukkan kode berikut:
"""
Module: finance_calculator.py
Author: Engineering Team @ GEARFORGE
Description: Program CLI untuk menghitung rasio alokasi tabungan bulanan.
"""
import sys
def hitung_alokasi(pendapatan: float, target_persen: float) -> tuple[float, float]:
"""
Menghitung nominal tabungan dan sisa anggaran operasional.
Pure function: Tidak memiliki efek samping (side effects).
"""
nominal_tabungan = pendapatan * (target_persen / 100)
sisa_anggaran = pendapatan - nominal_tabungan
return nominal_tabungan, sisa_anggaran
def ambil_input_float(pesan: str) -> float:
"""
Mengambil dan memvalidasi input numerik desimal dari pengguna.
Menangani kesalahan format secara defensif.
"""
while True:
try:
nilai = float(input(pesan))
if nilai < 0:
print("[ERROR] Nilai tidak boleh negatif. Coba lagi.")
continue
return nilai
except ValueError:
print("[ERROR] Format input tidak valid. Masukkan angka yang benar.")
def main() -> None:
"""
Entry point utama program.
Mengontrol alur eksekusi aplikasi.
"""
print("=" * 40)
print(" GEARFORGE: SAVINGS RATIO ENGINE ")
print("=" * 40)
# 1. Tahap Input
pendapatan = ambil_input_float("Masukkan total pendapatan bulanan (Rp): ")
target_persen = ambil_input_float("Masukkan target alokasi tabungan (%): ")
if target_persen > 100:
print("[FATAL] Target tabungan tidak boleh melebihi 100%.")
sys.exit(1)
# 2. Tahap Pemrosesan Logika
tabungan, operasional = hitung_alokasi(pendapatan, target_persen)
# 3. Tahap Output Presentasi
print("\n" + "-" * 40)
print("RINGKASAN ALOKASI KEUANGAN")
print("-" * 40)
print(f"Total Pendapatan : Rp {pendapatan:,.2f}")
print(f"Alokasi Tabungan : Rp {tabungan:,.2f} ({target_persen}%)")
print(f"Sisa Operasional : Rp {operasional:,.2f}")
print("=" * 40)
print("[SUCCESS] Analisis selesai.\n")
if __name__ == "__main__":
main()
4. Bedah Arsitektur & Prinsip Rekayasa
- Type Hinting (
pendapatan: float): Memberikan kejelasan tipe data bagi developer lain serta mempermudah analisis statis (linter). - Penanganan Kesalahan Defensif (
try-except): Mencegah program mengalami crash mendadak saat menerima input non-numerik. - Isolasi Logika (
hitung_alokasi): Logika matematika tidak mencetak output langsung. Fungsi ini menerima parameter dan mengembalikan nilai, memudahkan pengujian otomatis (unit testing). - Guard Clause
__name__ == '__main__': Memastikan modul dapat diimpor ke skrip lain di masa depan tanpa mengeksekusi blokmain()secara otomatis.
5. Eksekusi Program
Jalankan program melalui terminal dengan perintah:
python3 finance_calculator.py
Uji program dengan berbagai skenario, termasuk memasukkan karakter non-angka atau angka negatif, untuk mengamati ketahanan validasi data yang telah dibangun.
Standar Praktik GEARFORGE
- Selalu gunakan penamaan variabel yang deskriptif dan konsisten (Snake_case untuk fungsi/variabel Python).
- Hindari penggunaan variabel global.
- Selalu tangani potensi runtime error pada titik interaksi pengguna.