Langsung ke konten utama

Membuat Kalkulator Sederhana Menggunakan Python

 


Pendahuluan

Dalam proyek kali ini, akan membahas tentang bagaimana cara membuat kalkulator sederhana menggunakan bahasa pemrograman Python dan Tkinter untuk antarmuka pengguna grafis (GUI). Proyek ini saya buat untuk keperluan dokumentasi pekerjaan saya dan sebagai latihan dalam memahami dasar-dasar pembuatan aplikasi GUI dengan Python. Kalkulator ini memiliki fitur dasar seperti penjumlahan, pengurangan, perkalian, dan pembagian, serta fungsi lanjutan seperti akar kuadrat, pangkat, logaritma, dan fungsi trigonometri.

Tujuan Proyek:

  • Memahami Pembuatan GUI dengan Tkinter: Tkinter adalah pustaka standar Python untuk membuat aplikasi desktop berbasis GUI. Dalam proyek ini, saya memanfaatkan Tkinter untuk merancang antarmuka kalkulator yang sederhana namun fungsional.
  • Penggunaan Fungsi Matematika: Kalkulator ini tidak hanya menangani operasi dasar, tetapi juga fungsi matematika lanjutan seperti akar kuadrat, logaritma, dan fungsi trigonometri. Ini memberikan kesempatan untuk mempraktikkan penggunaan pustaka matematika di Python.
  • Validasi Input: Salah satu tantangan dalam proyek ini adalah memastikan bahwa input pengguna valid. Saya menggunakan validasi untuk membatasi karakter yang dapat dimasukkan ke dalam kalkulator.

Proyek ini adalah latihan yang sangat baik untuk pemula yang ingin meningkatkan keterampilan pemrograman Python mereka dan memahami bagaimana membangun aplikasi GUI dengan pustaka Tkinter.

Untuk melihat dan mengunduh kode sumber kalkulator ini, kunjungi repositori GitHub saya.

Persyaratan

Sebelum memulai, pastikan Anda memiliki:

  • Python 3.x: Versi terbaru dari Python, yang dapat diunduh dari python.org.
  • Pustaka Tkinter: Tkinter biasanya sudah termasuk dalam instalasi Python. Jika belum terinstal, Anda dapat menginstalnya melalui manajer paket Python seperti pip.

Instalasi

Untuk menjalankan kalkulator ini, ikuti langkah-langkah berikut:

  1. Clone repositori ke mesin lokal Anda:
    git clone https://github.com/JessicaAurelClarista/python-calculator.git
  2. Navigasi ke direktori proyek:
    cd python-calculator
  3. Jalankan skrip Python:
    python kalkulator.py

Keterangan Kode

1. Mengimpor Pustaka
import tkinter as tk # Mengimpor pustaka Tkinter untuk membuat GUI from math import sqrt, sin, cos, tan, log # Mengimpor fungsi matematika yang akan digunakan
  • Tkinter: Pustaka standar Python untuk membuat antarmuka grafis. Di sini, kita menggunakan Tkinter untuk merancang antarmuka kalkulator.
  • math: Modul Python yang menyediakan fungsi matematika seperti akar kuadrat (sqrt), sinus (sin), kosinus (cos), tangen (tan), dan logaritma (log).
2. Kelas Calculator
class Calculator: def __init__(self, root): self.root = root self.root.title("Kalkulator Python") # Menetapkan judul jendela self.expression = "" # Menyimpan ekspresi matematika yang sedang dibangun
  • __init__: Konstruktor kelas yang menyiapkan jendela aplikasi dan menginisialisasi variabel expression untuk menyimpan ekspresi matematika.
3. Membuat Widget Entry
self.entry = tk.Entry(root, width=40, borderwidth=5, font=('Arial', 14), justify='right') self.entry.grid(row=0, column=0, columnspan=5, padx=10, pady=10) self.entry.bind("<Key>", self.validate_keypress) # Mengikat fungsi validasi ke input keyboard
  • Entry Widget: Komponen GUI untuk menampilkan ekspresi matematika dan hasil perhitungan.
  • bind("<Key>", self.validate_keypress): Menghubungkan event keypress ke fungsi validate_keypress untuk memastikan input yang dimasukkan valid.
4. Membuat Tombol
button_labels = [ '7', '8', '9', '/', 'C', # Baris pertama tombol '4', '5', '6', '*', 'sqrt', # Baris kedua tombol '1', '2', '3', '-', '^', # Baris ketiga tombol '0', '.', '=', '+', 'log', # Baris keempat tombol '(', ')', 'sin', 'cos', 'tan', # Baris kelima tombol 'DEL' # Tombol hapus satu karakter ]
  • button_labels: Daftar label untuk setiap tombol pada kalkulator. Ini mencakup tombol untuk operasi dasar dan lanjutan.
row = 1 # Baris awal untuk penempatan tombol col = 0 # Kolom awal untuk penempatan tombol for label in button_labels: button = tk.Button(root, text=label, padx=20, pady=20, font=('Arial', 12)) if label not in ['C', '=', 'sqrt', 'log', 'sin', 'cos', 'tan', 'DEL']: button.config(command=lambda l=label: self.on_button_click(l)) # Mengatur fungsi tombol biasa elif label == 'C': button.config(command=self.on_clear) # Fungsi tombol Clear elif label == '=': button.config(command=self.on_equal) # Fungsi tombol sama dengan elif label == 'DEL': button.config(command=self.on_backspace) # Fungsi tombol Backspace else: button.config(command=lambda l=label: self.on_function_click(l)) # Fungsi tombol fungsi matematika khusus button.grid(row=row, column=col, padx=5, pady=5, sticky='nsew') # Menempatkan tombol di grid col += 1 if col > 4: # Pindah ke baris berikutnya jika kolom melebihi 4 col = 0 row += 1
  • Membuat dan Menempatkan Tombol: Tombol-tombol ditambahkan ke grid dan dikonfigurasi dengan fungsi yang sesuai. Tombol-tombol khusus seperti C, = dan DEL memiliki fungsi spesifik yang terikat padanya.
5. Fungsi Validasi Input
def validate_keypress(self, event): valid_keys = "0123456789+-*/().^" # Karakter yang diizinkan if event.char in valid_keys: return True # Mengizinkan karakter yang valid elif event.keysym in ('Return', 'BackSpace'): return True # Mengizinkan tombol Enter dan BackSpace else: return "break" # Menghentikan input karakter yang tidak valid
  • validate_keypress: Memastikan hanya karakter yang valid yang dapat dimasukkan ke dalam entry widget.
6. Fungsi Tombol
def on_button_click(self, char): self.expression += str(char) # Menambahkan karakter ke ekspresi self.entry.delete(0, tk.END) # Menghapus isi entry self.entry.insert(tk.END, self.expression) # Menampilkan ekspresi yang diperbarui
  • on_button_click: Menambahkan karakter ke ekspresi dan memperbarui tampilan entry widget.
def on_function_click(self, func): if func == 'sqrt': self.expression += 'sqrt(' # Menambahkan 'sqrt(' ke ekspresi elif func == 'log': self.expression += 'log(' # Menambahkan 'log(' ke ekspresi elif func == 'sin': self.expression += 'sin(' # Menambahkan 'sin(' ke ekspresi elif func == 'cos': self.expression += 'cos(' # Menambahkan 'cos(' ke ekspresi elif func == 'tan': self.expression += 'tan(' # Menambahkan 'tan(' ke ekspresi self.entry.delete(0, tk.END) # Menghapus isi entry self.entry.insert(tk.END, self.expression) # Menampilkan ekspresi yang diperbarui
  • on_function_click: Menambahkan fungsi matematika khusus (seperti sqrt, log, sin, cos, tan) ke ekspresi.

def on_clear(self): self.expression = "" # Mengosongkan ekspresi self.entry.delete(0, tk.END) # Menghapus isi entry
  • on_clear: Menghapus seluruh ekspresi yang sedang dibangun.
def on_backspace(self): self.expression = self.expression[:-1] # Menghapus karakter terakhir dari ekspresi self.entry.delete(0, tk.END) # Menghapus isi entry self.entry.insert(tk.END, self.expression) # Menampilkan ekspresi yang diperbarui
  • on_backspace: Menghapus karakter terakhir dari ekspresi.
def on_equal(self): try: self.expression = self.expression.replace('^', '**') # Mengganti '^' dengan '**' untuk eksponen result = eval(self.expression) # Mengevaluasi ekspresi matematika self.entry.delete(0, tk.END) # Menghapus isi entry self.entry.insert(tk.END, str(result)) # Menampilkan hasil self.expression = str(result) # Menyimpan hasil sebagai ekspresi baru except Exception as e: self.entry.delete(0, tk.END) # Menghapus isi entry self.entry.insert(tk.END, "Error") # Menampilkan pesan error self.expression = "" # Mengosongkan ekspresi
  • on_equal: Mengevaluasi ekspresi matematika dan menampilkan hasil. Jika ada kesalahan dalam evaluasi, menampilkan pesan error.
7. Menjalankan Aplikasi
if __name__ == "__main__": root = tk.Tk() # Membuat instance Tkinter calculator = Calculator(root) # Membuat instance kalkulator root.mainloop() # Memulai loop utama Tkinter
  • root.mainloop(): Memulai loop utama Tkinter yang menjaga jendela aplikasi tetap terbuka dan responsif.

Kesimpulan

Dengan mengikuti panduan ini, Anda dapat membuat kalkulator sederhana menggunakan Python dan Tkinter. Proyek ini memberikan pemahaman dasar tentang pembuatan GUI dan penerapan fungsi matematika dalam aplikasi. Selamat mencoba, dan semoga Anda mendapatkan pengalaman berharga dari proyek ini!

Komentar

Postingan populer dari blog ini

Perbedaan Antara Frontend, Backend, dan Full-Stack dalam Pengembangan Web

Pendahuluan Dalam pengembangan web, ada tiga komponen utama yang membentuk sebuah aplikasi atau situs web: frontend , backend , dan full-stack . Keduanya (frontend dan backend) bekerja sama untuk memastikan situs web atau aplikasi berjalan dengan lancar, sementara seorang full-stack developer memiliki kemampuan untuk menangani keduanya. Meskipun ketiganya saling terkait, mereka memiliki peran dan tanggung jawab yang berbeda. Artikel ini akan membahas perbedaan antara frontend, backend, dan full-stack dalam pengembangan web. 1. Apa Itu Frontend? Frontend adalah bagian dari aplikasi atau situs web yang langsung berinteraksi dengan pengguna. Bagian ini bertanggung jawab atas segala yang dilihat dan digunakan oleh pengguna di browser. Teknologi yang Digunakan : HTML (HyperText Markup Language): Untuk struktur halaman. CSS (Cascading Style Sheets): Untuk desain dan tata letak. JavaScript : Untuk interaktivitas dan dinamika. Framework/library yang populer: React , Angular , Vue.js . Tuga...

Mengenal AI dan Peranannya di Kehidupan Sehari-hari

Pendahuluan Artificial Intelligence (AI) atau Kecerdasan Buatan telah menjadi salah satu inovasi paling signifikan dalam beberapa dekade terakhir. AI bukan lagi konsep fiksi ilmiah, tetapi sudah menjadi bagian integral dari kehidupan sehari-hari. Teknologi ini hadir dalam berbagai bentuk dan telah meresap ke dalam hampir setiap aspek kehidupan manusia, mulai dari cara kita bekerja hingga bagaimana kita berinteraksi dengan teknologi, bahkan dalam urusan pribadi kita. Artikel ini akan membahas apa itu AI, bagaimana teknologi ini berkembang, dan peran pentingnya dalam kehidupan sehari-hari kita. Apa Itu AI? AI merujuk pada kemampuan mesin untuk melakukan tugas-tugas yang biasanya membutuhkan kecerdasan manusia. Ini mencakup tugas-tugas seperti pengenalan suara, pengolahan bahasa alami, pengambilan keputusan, dan bahkan penyelesaian masalah kompleks. Ada beberapa sub-bidang dalam AI, termasuk machine learning (pembelajaran mesin), deep learning (pembelajaran mendalam), dan natural language...