Ilustrasi antarmuka kalkulator sederhana
Python adalah salah satu bahasa pemrograman paling populer untuk pemula karena sintaksnya yang bersih dan mudah dibaca. Membuat kalkulator sederhana adalah proyek klasik yang sangat baik untuk memahami dasar-dasar pemrograman, termasuk input pengguna, kondisi (if/elif/else), dan operasi aritmatika dasar.
Dalam panduan ini, kita akan fokus pada pembuatan kalkulator berbasis konsol (Command Line Interface/CLI). Ini adalah langkah awal yang ideal sebelum beralih ke antarmuka grafis (GUI) menggunakan library seperti Tkinter atau PyQt.
Kalkulator kita perlu melakukan empat operasi utama: penjumlahan (+), pengurangan (-), perkalian (*), dan pembagian (/). Untuk setiap operasi, kita memerlukan dua angka masukan dari pengguna.
Kita akan menggunakan fungsi input() untuk menerima data dari pengguna dan fungsi float() atau int() untuk memastikan input tersebut dapat diolah sebagai angka.
Pertama, kita harus meminta pengguna memasukkan angka pertama, operator yang diinginkan, dan angka kedua.
# Meminta input dari pengguna
angka1 = float(input("Masukkan angka pertama: "))
operator = input("Pilih operasi (+, -, *, /): ")
angka2 = float(input("Masukkan angka kedua: "))
float() agar kalkulator bisa menangani bilangan desimal. Jika pengguna memasukkan teks, program akan berhenti dengan error (kecuali jika kita menambahkan penanganan error, yang akan kita bahas nanti).
Di sinilah inti dari program berada. Kita akan menggunakan struktur kondisional if-elif-else untuk menentukan operasi mana yang harus dijalankan berdasarkan simbol operator yang dimasukkan pengguna.
hasil = 0
if operator == '+':
hasil = angka1 + angka2
elif operator == '-':
hasil = angka1 - angka2
elif operator == '*':
hasil = angka1 * angka2
elif operator == '/':
# Penting: Pencegahan pembagian dengan nol
if angka2 != 0:
hasil = angka1 / angka2
else:
print("Error: Tidak bisa dibagi dengan nol.")
# Keluar dari program atau menetapkan hasil ke nilai khusus
exit()
else:
print("Error: Operator tidak valid.")
exit()
# Menampilkan hasil
print(f"Hasil dari {angka1} {operator} {angka2} adalah: {hasil}")
Perhatikan penanganan kasus pembagian dengan nol (if angka2 != 0:). Ini sangat krusial dalam pembuatan kalkulator agar program tidak mengalami crash.
Untuk membuat kalkulator ini lebih berguna, kita bisa membungkus seluruh logika di dalam sebuah perulangan (loop) menggunakan while True. Ini memungkinkan pengguna melakukan perhitungan berulang kali sampai mereka secara eksplisit memilih untuk keluar.
def kalkulator_sederhana():
while True:
print("\n--- Kalkulator Python Sederhana ---")
try:
angka1 = float(input("Masukkan angka pertama: "))
operator = input("Pilih operasi (+, -, *, /) atau ketik 'keluar': ")
if operator.lower() == 'keluar':
print("Terima kasih telah menggunakan kalkulator!")
break
angka2 = float(input("Masukkan angka kedua: "))
hasil = None
if operator == '+':
hasil = angka1 + angka2
elif operator == '-':
hasil = angka1 - angka2
elif operator == '*':
hasil = angka1 * angka2
elif operator == '/':
if angka2 == 0:
print("Kesalahan: Pembagian dengan nol tidak diizinkan.")
continue
hasil = angka1 / angka2
else:
print("Kesalahan: Operator tidak dikenal.")
continue
print(f"\n=> Hasil: {angka1} {operator} {angka2} = {hasil}")
except ValueError:
print("Kesalahan input: Pastikan Anda memasukkan angka yang valid.")
except Exception as e:
print(f"Terjadi error tak terduga: {e}")
# Memanggil fungsi utama
kalkulator_sederhana()
Dalam versi yang lebih baik ini, kita juga menambahkan blok try...except. Blok ini menangani ValueError jika pengguna memasukkan teks alih-alih angka, membuat program jauh lebih tangguh.
Anda kini telah berhasil membuat kalkulator sederhana berbasis teks menggunakan Python! Proses ini mencakup pengumpulan data, penerapan logika kondisional, dan penanganan dasar terhadap kesalahan input.
Untuk mengembangkan proyek ini lebih lanjut, Anda bisa mencoba menambahkan:
**) atau modulo (%).def tambah(a, b):) untuk kode yang lebih modular.Dasar-dasar yang Anda pelajari di sini adalah fondasi kuat untuk proyek komputasi numerik yang lebih kompleks di masa depan.