
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.
- Linux (Ubuntu/Debian):
🚀 Cara Menjalankan
- Buka terminal atau command prompt di folder tempat file disimpan.
- 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! 🔥
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! 🔥