Tutorial Python: Membuat Aplikasi GUI Sederhana (Bagian 2)

Tutorial Python: Membuat Aplikasi GUI Sederhana (Bagian 2)

August 24, 2014 Programming Python 0

Artikel ini adalah bagian ke-2 dari Tutorial Python “Membuat Aplikasi GUI Sederhana”. Bagian 1 dari Tutorial ini dapat anda baca di:

Tutorial Python: Membuat Aplikasi GUI Sederhana (bagian 1)

Pada bagian 1, kita telah membuat sebuah aplikasi GUI sederhana dengan menggunakan modul Tkinter yang disediakan Python. Dalam tutorial tersebut kita telah belajar untuk menggunakan beberapa widget dasar, yakni:

  1. Entry
  2. Button
  3. Label

Dalam Tutorial Python “Membuat Aplikasi GUI Sederhana (Bagian 2)” ini kita akan mengembangkan aplikasi GUI pada Bagian 1 dengan cara:

  1. Mengganti dua widget Entry dengan widget Spinbox angka 0~10.
  2. Memberi peluang pada user untuk memilih operasi yang diinginkan: tambah, kurang, kali atau bagi.
  3. Menampilkan pesan kesalahan (menggunakan MessageBox) jika terjadi pembagian dengan nol.
  4. Membuat widget Entry untuk menampilkan jawaban menjadi readonly.

Kode program berikut ini dilengkapi dengan comment-comment penjelasan pada tiap baris untuk menjelaskan fungsinya:

[sourcecode language=”python”]

import tkinter as tk # mengimpor modul tkinter dan menamakannya tk
import tkinter.messagebox as box # mengimpor modul messagebox dan menamakannya box

class Application(tk.Frame): # membuat class Application sebagai warisan dari class Frame milik tkinter
def __init__(self, master=None): # ini adalah constructor dari class Frame dan akan dijalankan pertama kali
tk.Frame.__init__(self, master) # menjalankan contructor
self.grid() # menampilkan window utama ke screen
self.createWidgets()

def createWidgets(self):

# first field
self.field1 = tk.Spinbox(self, width=5, from_=0, to=10) # membuat spinbox 0~10
self.field1.grid(row=0,column=0) # posisi widget dalam grid

# choose operation
self.op = tk.Spinbox(self, width=2, values=["+","-","x","/"]) # membuat spinbox 0~10
self.op.grid(row=0,column=1) # posisi widget dalam grid

# second field
self.field2 = tk.Spinbox(self, width=5, from_=0, to=10) # membuat spinbox 0~10
self.field2.grid(row=0,column=2) # posisi widget dalam grid

# write "="
self.label2 = tk.Label(self, text = "=") # membuat label "="
self.label2.grid(row=0,column=3) # posisi widget dalam grid

# third field for answer
self.field3 = tk.Entry(self,width=5) # membuat field untuk menampilkan jawaban
self.field3.grid(row=0,column=4) # posisi widget dalam grid

# QUIT button
self.QUIT = tk.Button(self, text="QUIT",command=root.destroy) # membuat QUIT button
self.QUIT.grid(row=1,column=0) # posisi widget dalam grid

# CALC button
self.CALC = tk.Button(self) # membuat CALC button
self.CALC["text"] = "CALC" # tulisan pada button
self.CALC["command"] = self.calculate_numbers # method yang akan dijalankan jika button di-klik
self.CALC.grid(row=1,column=4) # posisi widget dalam grid

def calculate_numbers(self): # method untuk menjumlahkan dua angka
a = self.field1.get() # mengambil angka dari isian pertama
b = self.field2.get() # mengambil angka dari isian kedua
# cek operasi yang dipilih lalu kerjakan perhitungan
operation = self.op.get()
if operation == "+":
c = int(a)+int(b)
elif operation == "-":
c = int(a)-int(b)
elif operation == "x":
c = int(a)*int(b)
elif operation == "/":
if b == "0":
box.showinfo("Error", "Pembagian dengan NOL..!") # menampilkan pesan kesalahan
else:
c = int(a)/int(b)
d = str(c) # hasil perhitungan dikonversi menjadi String sebelum ditampilkan
self.field3["state"] = "normal" # mengaktifkan field3
self.field3.delete(0, 5) # menghapus isi field jawaban
self.field3.insert(0,d) # menuliskan jawaban
self.field3["state"] = "readonly" # membuat field3 readonly

root = tk.Tk()

# modify root window
root.title("Mini calculator ver.2") # title window aplikasi
#root.geometry("200×60") # panjang dan tinggi window aplikasi

app = Application(master=root)
app.mainloop()

[/sourcecode]

Ini screenshot aplikasi ketika dijalankan:

1

Ini screenshot aplikasi ketika melakukan operasi penjumlahan dan pengurangan:

2

Ini screenshot aplikasi ketika melakukan operasi perkalian dan pembagian:

3

Jika terjadi pembagian dengan nol, ini tampilan pesan kesalahannya:

4

Ok, demikian dulu, selamat belajar.

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *