Tutorial Project Python - Kalkulator GUI

Banner Project Kalkulator Python

Selamat datang di project Python pertama kita! Di sini kita akan membuat kalkulator sederhana berbasis GUI menggunakan pustaka tkinter. Project ini cocok banget buat kamu yang sedang belajar membuat aplikasi desktop sederhana menggunakan Python. Kalkulator ini bisa digunakan untuk operasi dasar seperti penjumlahan, pengurangan, perkalian, dan pembagian.

📌 Catatan: Semua project Python kita hanya ditampilkan sebagai daftar di halaman utama. Tutorial lengkap seperti ini akan tersedia di postingan terpisah.

📋 Persyaratan

Sebelum menjalankan project ini, pastikan kamu sudah memiliki Python dan tkinter. Biasanya tkinter sudah termasuk saat kamu menginstall Python.

Cara Cek Tkinter:

python -m tkinter
  • Jika jendela Tkinter muncul, artinya sudah terinstall.
  • Jika belum:
    • Linux (Ubuntu/Debian): sudo apt-get install python3-tk
    • Windows/macOS: Tkinter sudah otomatis terinstall dengan Python.

🚀 Cara Menjalankan

  1. Buka terminal atau command prompt di folder tempat file disimpan.
  2. Jalankan perintah:
python project-1.py

Jendela kalkulator akan muncul dan siap digunakan!

✨ Fitur Utama

  • ✅ Operasi Aritmatika: Tambah, kurang, kali, bagi.
  • ✅ Tombol “AC” untuk menghapus input.
  • ✅ Penanganan error saat input tidak valid atau pembagian nol.

⚠️ Keterbatasan

  • Belum mendukung perhitungan berantai (contoh: 2 + 3 × 4).
  • Tidak memiliki fitur kalkulator ilmiah atau penyimpanan hasil.

🚧 Pengembangan Selanjutnya

  • ➕ Dukungan perhitungan berantai.
  • 🔢 Tambah fitur kalkulator ilmiah seperti akar, pangkat, dan trigonometri.
  • 🎨 Tampilan UI lebih modern dan interaktif.

🔗 Link Terkait

🧠 Source Code Lengkap

Kamu juga bisa langsung salin kode Python-nya di bawah ini untuk dijalankan di editor Python-mu:

# Project-1 : Calculator - Codesphered01010

import tkinter as tk

root = tk.Tk() 
root.title("Calculator")  
root.resizable(0, 0)  

e = tk.Entry(root, width=35, bg='#f0ffff', fg='black', borderwidth=5, justify='right', font='Calibri 15')
e.grid(row=0, column=0, columnspan=3, padx=12, pady=12)

def buttonClick(num):  
    temp = e.get()
    e.delete(0, tk.END)
    e.insert(0, temp + num)

def buttonClear():  
    e.delete(0, tk.END)

def buttonGet(oper):  
    global num1, math 
    num1 = e.get()
    math = oper
    e.insert(tk.END, math)
    try:
        num1 = float(num1)
    except ValueError:
        buttonClear()

def buttonEqual():  
    inp = e.get()
    num2 = float(inp[inp.index(math) + 1:])
    e.delete(0, tk.END)
    if math == '+':
        e.insert(0, str(num1 + num2))
    elif math == '-':
        e.insert(0, str(num1 - num2))
    elif math == 'x':
        e.insert(0, str(num1 * num2))
    elif math == '/':
        try:
            e.insert(0, str(num1 / num2))
        except ZeroDivisionError:
            e.insert(0, 'Undefined')

# Buttons
b1 = tk.Button(root, text='1', padx=40, pady=10, command=lambda: buttonClick('1'), font='Calibri 12')
b2 = tk.Button(root, text='2', padx=40, pady=10, command=lambda: buttonClick('2'), font='Calibri 12')
b3 = tk.Button(root, text='3', padx=40, pady=10, command=lambda: buttonClick('3'), font='Calibri 12')
b4 = tk.Button(root, text='4', padx=40, pady=10, command=lambda: buttonClick('4'), font='Calibri 12')
b5 = tk.Button(root, text='5', padx=40, pady=10, command=lambda: buttonClick('5'), font='Calibri 12')
b6 = tk.Button(root, text='6', padx=40, pady=10, command=lambda: buttonClick('6'), font='Calibri 12')
b7 = tk.Button(root, text='7', padx=40, pady=10, command=lambda: buttonClick('7'), font='Calibri 12')
b8 = tk.Button(root, text='8', padx=40, pady=10, command=lambda: buttonClick('8'), font='Calibri 12')
b9 = tk.Button(root, text='9', padx=40, pady=10, command=lambda: buttonClick('9'), font='Calibri 12')
b0 = tk.Button(root, text='0', padx=40, pady=10, command=lambda: buttonClick('0'), font='Calibri 12')
bdot = tk.Button(root, text='.', padx=41, pady=10, command=lambda: buttonClick('.'), font='Calibri 12')
badd = tk.Button(root, text='+', padx=29, pady=10, command=lambda: buttonGet('+'), font='Calibri 12')
bsub = tk.Button(root, text='-', padx=30, pady=10, command=lambda: buttonGet('-'), font='Calibri 12')
bmul = tk.Button(root, text='x', padx=30, pady=10, command=lambda: buttonGet('x'), font='Calibri 12')
bdiv = tk.Button(root, text='/', padx=30.5, pady=10, command=lambda: buttonGet('/'), font='Calibri 12')
bclear = tk.Button(root, text='AC', padx=20, pady=10, command=buttonClear, font='Calibri 12')
bequal = tk.Button(root, text='=', padx=39, pady=10, command=buttonEqual, font='Calibri 12')

# Layout
b1.grid(row=3, column=0); b2.grid(row=3, column=1); b3.grid(row=3, column=2); badd.grid(row=3, column=3)
b4.grid(row=2, column=0); b5.grid(row=2, column=1); b6.grid(row=2, column=2); bmul.grid(row=2, column=3)
b7.grid(row=1, column=0); b8.grid(row=1, column=1); b9.grid(row=1, column=2); bdiv.grid(row=1, column=3)
b0.grid(row=4, column=0); bdot.grid(row=4, column=1); bequal.grid(row=4, column=2); bsub.grid(row=4, column=3)
bclear.grid(row=0, column=3)

root.mainloop()
📱 Belum tau caranya? Masih awam dalam pemrograman?
Tenang aja, kamu tetap bisa jalankan project ini langsung dari HP kamu!

💡 Lihat tutorial lengkapnya di sini yaa:
📘 Klik untuk buka tutorial versi android

Setelah itu tinggal salin kode Python nya dan langsung praktek! 🔥

Posting Komentar

Lebih baru Lebih lama