Kuasai Pondasi Python Mulai dari Kalkulator Sederhana

Python adalah salah satu bahasa pemrograman terpopuler di dunia, dikenal karena sintaksisnya yang mudah dibaca dan fleksibilitasnya. Mulai dari pengembangan web, analisis data, hingga kecerdasan buatan, Python menjadi fondasi di banyak bidang teknologi.

Bagi pemula, cara terbaik untuk belajar adalah dengan praktik langsung. Artikel ini akan memandu Anda membuat aplikasi kalkulator sederhana menggunakan Python. Namun, kita tidak akan berhenti di situ. Kita akan membahas prosesnya langkah demi langkah, mulai dari perencanaan, implementasi dengan praktik terbaik, penanganan kesalahan (error handling), hingga pengujian unit (unit testing) dasar.

Untuk siapa artikel ini?

Artikel ini dirancang untuk pemula yang sudah memahami variabel dan fungsi dasar Python, serta ingin membangun proyek utuh pertama mereka.

Tahap 1: Perencanaan Proyek

Sebelum menulis satu baris kode pun, perencanaan yang matang akan menghemat banyak waktu dan tenaga.

Memilih Proyek Awal Anda

Aplikasi kalkulator adalah proyek “Hello, World!” versi yang lebih besar. Proyek ini ideal karena cakupannya jelas dan menyentuh konsep fundamental seperti input pengguna, fungsi, dan logika kondisional.

Meskipun kalkulator adalah pilihan klasik, proyek pemula hebat lainnya bisa berupa:

  • Aplikasi To-Do List: Mengajarkan Anda tentang pengelolaan daftar (list) dan status.
  • Game Tebak Angka: Melatih penggunaan loop dan input pengguna secara interaktif.
  • Pengambil Data Cuaca Sederhana: Memperkenalkan Anda pada konsep dasar API.

Kita akan tetap menggunakan kalkulator untuk fokus tutorial ini.

Spesifikasi Kebutuhan Fungsional

Untuk aplikasi kalkulator kita, kebutuhannya sederhana:

  1. Input: Aplikasi harus menerima dua angka dari pengguna.
  2. Operasi: Aplikasi harus meminta pengguna memilih operasi (penjumlahan, pengurangan, perkalian, pembagian).
  3. Output: Aplikasi harus menampilkan hasil perhitungan.
  4. Kontrol: Aplikasi harus bisa mengulang atau berhenti sesuai keinginan pengguna.

Merancang Struktur Aplikasi

Kita akan memisahkan “logika inti” (fungsi matematika) dari “antarmuka pengguna” (cara pengguna berinteraksi). Ini adalah praktik rekayasa perangkat lunak yang baik yang disebut Separation of Concerns.

  • Logika Inti: Empat fungsi: tambah(), kurang(), kali(), bagi().
  • Antarmuka: Untuk memulai, kita akan menggunakan Antarmuka Baris Perintah (CLI) sederhana.

Tahap 2: Implementasi (Versi CLI)

Kita akan mulai dengan membuat versi yang berjalan di terminal (CLI).

Menulis Fungsi Logika Inti

Buat file baru bernama calculator.py. Mari kita definisikan fungsi-fungsi kita.

Praktik Terbaik (Best Practice):

Dalam Python, panduan gaya resmi (PEP 8) merekomendasikan penggunaan snake_case (huruf kecil dengan garis bawah) untuk nama fungsi, seperti yang akan kita gunakan.

def tambah(a, b):
“””Menjumlahkan dua angka”””
return a + b

def kurang(a, b):
“””Mengurangkan dua angka”””
return a – b

def kali(a, b):
“””Mengalikan dua angka”””
return a * b

def bagi(a, b):
“””Membagi dua angka dan menangani pembagian dengan nol”””
if b == 0:
return “Error: Tidak bisa membagi dengan nol!”
return a / b

 

Perhatikan pada fungsi bagi(), kita secara spesifik menambahkan pemeriksaan untuk b == 0. Ini adalah bentuk penanganan kesalahan (error handling) proaktif.

 

Membuat Antarmuka (Loop Utama)

Sekarang, mari kita tambahkan kode untuk berinteraksi dengan pengguna. Kita akan menggunakan loop while True agar aplikasi terus berjalan hingga pengguna memilih untuk keluar.

 

# (Tambahkan kode fungsi dari atas di sini)

def jalankan_kalkulator():
“””Fungsi utama untuk menjalankan kalkulator CLI”””
print(“=== KALKULATOR SEDERHANA ===”)
print(“Pilih operasi:”)
print(“1. Penjumlahan”)
print(“2. Pengurangan”)
print(“3. Perkalian”)
print(“4. Pembagian”)
print(“5. Keluar”)

while True:
try:
pilihan = input(“Masukkan pilihan (1/2/3/4/5): “)

if pilihan == ‘5’:
print(“Terima kasih telah menggunakan kalkulator!”)
break # Keluar dari loop while

if pilihan in (‘1’, ‘2’, ‘3’, ‘4’):
angka1 = float(input(“Masukkan angka pertama: “))
angka2 = float(input(“Masukkan angka kedua: “))

if pilihan == ‘1’:
print(f”Hasil: {angka1} + {angka2} = {tambah(angka1, angka2)}”)
elif pilihan == ‘2’:
print(f”Hasil: {angka1} – {angka2} = {kurang(angka1, angka2)}”)
elif pilihan == ‘3’:
print(f”Hasil: {angka1} * {angka2} = {kali(angka1, angka2)}”)
elif pilihan == ‘4’:
print(f”Hasil: {angka1} / {angka2} = {bagi(angka1, angka2)}”)

else:
print(“Pilihan tidak valid. Silakan coba lagi.”)

except ValueError:
print(“Input salah! Harap masukkan angka yang valid.”)
except Exception as e:
print(f”Terjadi error yang tidak terduga: {e}”)

print(“-” * 20) # Pemisah antar perhitungan

# Menjalankan fungsi utama jika file ini dieksekusi langsung
if __name__ == “__main__”:
jalankan_kalkulator()

 

Peningkatan Keahlian (Expertise) pada Kode di Atas:

if __name__ == “__main__”:: Ini adalah konvensi standar Python yang memungkinkan file Anda dijalankan sebagai skrip mandiri, tetapi juga diimpor sebagai modul oleh file lain tanpa menjalankan jalankan_kalkulator() secara otomatis.
Blok try…except: Ini adalah pilar penanganan kesalahan yang tangguh.

except ValueError:

Menangkap kesalahan jika pengguna memasukkan “abc” alih-alih angka saat float() dipanggil. Tanpa ini, program akan crash.
except Exception as e: Menangkap kesalahan umum lainnya yang mungkin tidak kita antisipasi, dan mencetaknya.
Untuk menjalankan kode ini, simpan sebagai calculator.py dan jalankan di terminal Anda dengan python calculator.py.

 

Tahap 3: Pengujian dan Kualitas Kode

Menulis kode hanyalah setengah dari pekerjaan. Memastikan kode tersebut berfungsi dengan benar (pengujian) adalah bagian yang krusial.

Debugging vs. Pengujian

Debugging:

Proses menemukan dan memperbaiki bug (kesalahan) yang Anda tahu ada (misalnya, program crash). Menggunakan print() untuk memeriksa nilai variabel adalah bentuk debugging paling dasar. Alat yang lebih canggih termasuk debugger yang terintegrasi di IDE seperti VS Code.

Pengujian:

Proses sistematis untuk memverifikasi bahwa kode Anda berperilaku seperti yang diharapkan dalam berbagai skenario.

Memperkenalkan Pengujian Unit (Unit Testing)

Pengujian unit memverifikasi bagian-bagian kecil (unit) dari kode Anda—dalam kasus ini, fungsi logika kita—secara terisolasi. Python memiliki modul bawaan bernama unittest untuk ini.

Buat file baru bernama test_calculator.py di folder yang sama.

import unittest
from calculator import tambah, kurang, kali, bagi # Impor fungsi dari file kita

class TestCalculator(unittest.TestCase):

def test_tambah(self):
“””Tes fungsi penjumlahan”””
self.assertEqual(tambah(10, 5), 15)
self.assertEqual(tambah(-1, 1), 0)
self.assertEqual(tambah(-5, -5), -10)

def test_kurang(self):
“””Tes fungsi pengurangan”””
self.assertEqual(kurang(10, 5), 5)
self.assertEqual(kurang(-1, 1), -2)
self.assertEqual(kurang(5, 10), -5)

def test_kali(self):
“””Tes fungsi perkalian”””
self.assertEqual(kali(10, 5), 50)
self.assertEqual(kali(-1, 1), -1)
self.assertEqual(kali(5, 0), 0)

def test_bagi(self):
“””Tes fungsi pembagian”””
self.assertEqual(bagi(10, 5), 2)
self.assertEqual(bagi(-1, 1), -1)
self.assertEqual(bagi(5, 2), 2.5)

def test_bagi_dengan_nol(self):
“””Tes penanganan pembagian dengan nol”””
self.assertEqual(bagi(10, 0), “Error: Tidak bisa membagi dengan nol!”)

if __name__ == ‘__main__’:
unittest.main()

 

Untuk menjalankan tes ini, buka terminal Anda dan jalankan python -m unittest test_calculator.py.

Ini menunjukkan Keahlian (Expertise) karena Anda tidak hanya berharap kode Anda berfungsi, tetapi Anda membuktikannya dengan tes otomatis.

 

Tahap 4: Langkah Selanjutnya (GUI dan CLI Lanjutan)

Logika inti kita (di calculator.py) sekarang solid dan teruji. Kita dapat dengan mudah “memasangnya” ke antarmuka yang berbeda tanpa mengubah logikanya.

 

1. Antarmuka Grafis (GUI) dengan tkinter

tkinter adalah pustaka GUI bawaan Python.

# Simpan sebagai gui_calculator.py
import tkinter as tk
from calculator import tambah, kurang, kali, bagi # Impor logika kita

def hitung():
try:
angka1 = float(entry_angka1.get())
angka2 = float(entry_angka2.get())
pilihan = var_operasi.get()

if pilihan == ‘1’:
hasil = tambah(angka1, angka2)
elif pilihan == ‘2’:
hasil = kurang(angka1, angka2)
elif pilihan == ‘3’:
hasil = kali(angka1, angka2)
elif pilihan == ‘4’:
hasil = bagi(angka1, angka2)
else:
hasil = “Pilihan tidak valid”

label_hasil.config(text=f”Hasil: {hasil}”)
except ValueError:
label_hasil.config(text=”Error: Masukkan angka valid!”)

# Setup jendela utama
window = tk.Tk()
window.title(“Kalkulator GUI”)

# Input Angka
tk.Label(window, text=”Angka 1:”).grid(row=0, column=0)
entry_angka1 = tk.Entry(window)
entry_angka1.grid(row=0, column=1)

tk.Label(window, text=”Angka 2:”).grid(row=1, column=0)
entry_angka2 = tk.Entry(window)
entry_angka2.grid(row=1, column=1)

# Pilihan Operasi (Radio Button)
var_operasi = tk.StringVar(value=’1′)
tk.Radiobutton(window, text=”+”, variable=var_operasi, value=’1′).grid(row=2, column=0)
tk.Radiobutton(window, text=”-“, variable=var_operasi, value=’2′).grid(row=2, column=1)
tk.Radiobutton(window, text=”*”, variable=var_operasi, value=’3′).grid(row=3, column=0)
tk.Radiobutton(window, text=”/”, variable=var_operasi, value=’4′).grid(row=3, column=1)

# Tombol Hitung
tombol_hitung = tk.Button(window, text=”Hitung”, command=hitung)
tombol_hitung.grid(row=4, columnspan=2)

# Label Hasil
label_hasil = tk.Label(window, text=”Hasil: “)
label_hasil.grid(row=5, columnspan=2)

# Menjalankan GUI
window.mainloop()

 

2. Alat CLI yang Lebih Baik dengan argparse

argparse adalah modul bawaan untuk membuat alat baris perintah yang canggih (misalnya, python advanced_cli.py tambah 10 5).

Wawasan Pengembang (Developer’s Insight):

Proyek pertama Anda adalah tentang membangun “muscle memory” pemrograman. Jangan khawatir tentang kesempurnaan atau menghafal setiap perintah. Fokuslah pada pemahaman mengapa kode Anda berfungsi, bagaimana data mengalir, dan di mana kesalahan mungkin terjadi.

Kesimpulan dan Sumber Belajar

Anda telah berhasil membangun aplikasi kalkulator yang tidak hanya berfungsi, tetapi juga tangguh (dengan error handling) dan terverifikasi (dengan unit test). Anda telah mempraktikkan pemisahan logika dan antarmuka, sebuah konsep kunci dalam pengembangan perangkat lunak profesional.

 

Untuk Dipelajari Lebih Lanjut (Otoritas)

Untuk memperkuat pemahaman Anda, sangat disarankan untuk membaca dokumentasi resmi Python dan sumber daya tepercaya:

Dokumentasi Resmi Python – Sumber kebenaran utama untuk segala hal tentang Python.
Modul unittest
Modul tkinter
Panduan Gaya PEP 8

Selamat melanjutkan perjalanan pemrograman Anda!

 

Tertarik Belajar Lebih Intensif?

Jika Anda menikmati proses ini dan ingin memperdalam keterampilan Anda dalam lingkungan yang terstruktur, pertimbangkan untuk mengikuti kursus coding.

Pemrograman Dasar Dengan Python Kursus ini dirancang untuk pemula dan akan dibimbing oleh pengajar berpengalaman untuk membantu Anda menguasai dasar-dasar dan mempersiapkan karir di bidang teknologi. Jangan lewatkan kesempatan untuk memulai perjalanan Anda dalam dunia pemrograman!

Info lebih lanjut di: https://www.smk.dev/courses/pemrograman-dasar-dengan-python/

Table of Contents

Related Posts