Pada tutorial kali ini, kita akan membuat Calculator Tkinter. Tkineter sendiri merupakan library python yang menyediakan cara cepat dan mudah untuk membuat aplikasi GUI. Tkinter menydiakan antarmuka berorientasi objek yang kuat ke perangkat Tk GUI.
Sebelum mengikuti tutorial cara membuat calculator tkinter, kalian harus menginstall python di sistem operasi kalian. Kalian bisa cek dengan membuka CMD lalu mengetikan perintah python -V. Jika kalian sudah menginstall maka nanti akan muncul versi python kalian. Disarankan menggunakan python versi 3.
Selain itu, kalian juga harus menginstall text editor. Disini saya menggunakan visual studio code. Kalian bebas menggunakan text editor apapun yang penting support IDE python.
Selanjutnya, kita akan menginstall library tkinter. Dengan cara buka terlebih dahulu CMD, kemudian jalankan perintah pip install tk. Tunggu hingga instalasinya berhasil.
Sekarang, kita sudah bisa menggunakan library tkinter. Untuk selanjutnya, kita perlu membuat file main.py terlebih dahulu. Lalu buka file tersebut dengan text editor kalian.
Pertama kita perlu mengimport library tkinter seperti berikut.
from tkinter import *
Selanjutnya, kita perlu variable untuk menampung expression yang dipakai user nantinya. Kemudian kita buat fungsi untuk mengupdate expression tersebut.
expression = "" def press(num): global expression expression = expression + str(num) equation.set(expression)
Selain itu, kita perlu membuat fungsi untuk mengevaluasi final expression yang dipakai user.
def equalpress(): try: global expression total = str(eval(expression)) equation.set(total) expression = "" except: equation.set(" error ") expression = ""
Kita juga perlu membuat fungsi untuk membersihkan content yang digunakan dalam menerima input box dari user.
def clear(): global expression expression = "" equation.set("")
Sekarang, kita akan membuat GUI untuk calculator kita. Pertama kita panggil dulu library Tk. Kemudian kita atur warna background, judul, dan ukuran untuk GUI calculator. Selanjutnya, kita buat kotak input yang nantinya digunakan sebagai penerima expression yang diinputkan oleh user.
# Driver code if __name__ == "__main__": # membuat GUI window gui = Tk() # Warna background GUI window gui.configure(background="light green") # Judul GUI window gui.title("Simple Calculator") # Ukuran GUI window gui.geometry("480x520") # Membuat variable class equation = StringVar() # Membuat kotak input untuk menerima expression expression_field = Entry(gui, textvariable=equation) # Mengatur posisi kotak input expression_field.grid(columnspan=10, ipadx=150, pady=10)
Selanjutnya masih di dalam kondisi if, kita akan buat tampilan untuk tombol angka dari 0 sampai 9. Disini kita menggunakan background berwarna putih dan tulisannya berwarna hitam. Untuk ukurannya yaitu tinggi 5 dan lebar 12.
button1 = Button(gui, text=' 1 ', fg='black', bg='white', command=lambda: press(1), height=5, width=12) button1.grid(row=2, column=0) button2 = Button(gui, text=' 2 ', fg='black', bg='white', command=lambda: press(2), height=5, width=12) button2.grid(row=2, column=1) button3 = Button(gui, text=' 3 ', fg='black', bg='white', command=lambda: press(3), height=5, width=12) button3.grid(row=2, column=2) button4 = Button(gui, text=' 4 ', fg='black', bg='white', command=lambda: press(4), height=5, width=12) button4.grid(row=3, column=0) button5 = Button(gui, text=' 5 ', fg='black', bg='white', command=lambda: press(5), height=5, width=12) button5.grid(row=3, column=1) button6 = Button(gui, text=' 6 ', fg='black', bg='white', command=lambda: press(6), height=5, width=12) button6.grid(row=3, column=2) button7 = Button(gui, text=' 7 ', fg='black', bg='white', command=lambda: press(7), height=5, width=12) button7.grid(row=4, column=0) button8 = Button(gui, text=' 8 ', fg='black', bg='white', command=lambda: press(8), height=5, width=12) button8.grid(row=4, column=1) button9 = Button(gui, text=' 9 ', fg='black', bg='white', command=lambda: press(9), height=5, width=12) button9.grid(row=4, column=2) button0 = Button(gui, text=' 0 ', fg='black', bg='white', command=lambda: press(0), height=5, width=12) button0.grid(row=5, column=0)
Setelah itu, kita buat untuk tampilan ekspresi seperti penjumlahan, pengurangan, perkalian, dan pembagian. Untuk warna dan ukuran kita samakan seperti tombol angka.
plus = Button(gui, text=' + ', fg='black', bg='white', command=lambda: press("+"), height=5, width=12) plus.grid(row=2, column=3) minus = Button(gui, text=' - ', fg='black', bg='white', command=lambda: press("-"), height=5, width=12) minus.grid(row=3, column=3) multiply = Button(gui, text=' * ', fg='black', bg='white', command=lambda: press("*"), height=5, width=12) multiply.grid(row=4, column=3) divide = Button(gui, text=' / ', fg='black', bg='white', command=lambda: press("/"), height=5, width=12) divide.grid(row=5, column=3) equal = Button(gui, text=' = ', fg='black', bg='white', command=equalpress, height=5, width=12) equal.grid(row=5, column=2) Decimal = Button(gui, text='.', fg='black', bg='white', command=lambda: press('.'), height=5, width=12) Decimal.grid(row=6, column=0)
Terakhir, kita buat tombol untuk menghapus inputan. Setelah semua tampilan sudah dibuat, sekarang kita langsung start GUI.
clear = Button(gui, text='Clear', fg='black', bg='white', command=clear, height=5, width=12) clear.grid(row=5, column='1') gui.mainloop()
Kita bisa langsung menjalankan code yang kita buat dengan membuka CMD, lalu kita tuliskan perintah python main.py. Jika sudah maka akan muncul tampilan seperti berikut.