Python adalah bahasa pemrograman multi platform dimana bahasa ini dapat digunakan untuk aplikasi Web, Desktop, dll. Kali ini saya akan memberikan tutorial pemrograman python yang berbasis desktop. Dan saya akan membuat program kalkulator sederhana. Kali ini saya menggunakan module Tkinter yang berfungsi untuk membuat Graphical User Interface aplikasi python.

Program Kalkulator Sederhana dengan Python (Desktop Application)

Python adalah bahasa pemrograman multi platform dimana bahasa ini dapat digunakan untuk aplikasi Web, Desktop, dll.

Kali ini saya akan memberikan tutorial pemrograman python yang berbasis desktop. Dan saya akan membuat program kalkulator sederhana. Kali ini saya menggunakan module Tkinter yang berfungsi untuk membuat Graphical User Interface aplikasi python.

 

Tools:

  • python 2.7
  • editor Kesayangan anda

 

Berikut Source codenya :

 

# Program Kalkulator
# Kalkulator.py

# mengimport module Tkinter
from Tkinter import *

# mendefinisikan variabel awal
bil1="0"
bil2="0"
operator="nihil"
hasil = "kosong"

# method untuk menginputkan . def points(): global bil1 global bil2 getv = masukan.get() if "." not in getv: masukan.delete(0, END) masukan.insert(0, getv+".") if getv == bil1: bil1 = getv+"." else: bil2 = getv+"." def input_field(x): global bil1 global bil2 global operator global hasil if operator == "nihil" and hasil == "kosong": get_value = masukan.get() masukan.delete(0,END) masukan.insert(0 , get_value+x) bil1 = get_value+x elif operator != "nihil" and hasil == "kosong": get_value = masukan.get() if get_value == bil1: masukan.delete(0,END) masukan.insert(0 , x) bil2 = x else : masukan.delete(0,END) masukan.insert(0 , get_value+x) bil2 = get_value+x elif operator == "nihil" and hasil != "kosong" and bil1 != "0": getv = masukan.get() if "." in getv: masukan.delete(0,END) masukan.insert(0, getv+x) bil1 = getv+x else : masukan.delete(0,END) masukan.insert(0,x) bil1 = x hasil = "kosong" elif operator != "nihil" and hasil != "kosong": g = masukan.get() if g == bil1: masukan.delete(0 , END) masukan.insert(0, x) bil2 = x else : masukan.delete(0, END) masukan.insert(0, g+x) bil2 = g+x def clear(): global bil1 global bil2 global operator global hasil masukan.delete(0,END) bil1 = "0" bil2 = "0" operator = "nihil" hasil = "kosong" def set_operator(x): global operator if operator == "nihil": operator = x else : eksekusi() operator = x def eksekusi(): global bil1 global bil2 global operator global hasil if operator != "nihil": if operator == "/" and bil2 == "0": masukan.delete(0, END) masukan.insert(0, "Error!") hasilnya = "susah" bil1 = hasilnya else: exec("hasilnya = %s %s %s" % (bil1,operator,bil2)) masukan.delete(0,END) masukan.insert(0, hasilnya) bil1 = "%i" % hasilnya else : hasilnya = bil1 bil1 = hasilnya bil2 = "0" operator = "nihil" def bilbul(): global bil1 global bil2 global opertor getv = masukan.get() if getv == bil1: masukan.delete(0, END) exec("res = %s * -1" % getv) masukan.insert(0, res) bil1 = "%i" % res else : masukan.delete(0, END) exec("res = %s * -1" % getv) masukan.insert(0, res) bil2 = "%i" % res root = Tk() # mendefinisikan setiap komponen masukan = Entry(width=20, font=("verdana",20), justify="right") # membuat text field satu = Button(text="1", width=5, font=("verdana",13, "bold"), command= lambda x="1": input_field(x)) # membuat tombol angka 1 dua = Button(text="2",width=5,font=("verdana",13, "bold"), command= lambda x="2": input_field(x)) # membuat tombol angka 2 tiga = Button(text="3",width=5, font=("verdana",13, "bold"), command= lambda x="3": input_field(x)) # membuat tombol angka 3 clear = Button(text="C", width=11,font=("verdana",13, "bold"), command=clear) # membuat tombol clear empat = Button(text="4",width=5, font=("verdana",13, "bold"), command= lambda x="4": input_field(x)) # membuat tombol angka 4 lima = Button(text="5",width=5, font=("verdana",13, "bold"), command= lambda x="5": input_field(x)) # membuat tombol angka 5 enam = Button(text="6",width=5, font=("verdana",13, "bold"), command= lambda x="6": input_field(x)) # mebuat tombol angka 6 plus = Button(text="+", width=5, font=("verdana", 13, "bold"), command= lambda x="+": set_operator(x)) # membuat tombol plus tujuh = Button(text="7",width=5, font=("verdana",13, "bold"), command= lambda x="7": input_field(x)) # mmebuat tombol angka 7 delapan = Button(text="8",width=5, font=("verdana",13, "bold"), command= lambda x="8": input_field(x)) # mmebuat tombol angka 8 sembilan = Button(text="9",width=5, font=("verdana",13, "bold"), command= lambda x="9": input_field(x)) # mmebuat tombol angka 9 minus = Button(text="-",width=5, font=("verdana",13, "bold"), command= lambda x="-": set_operator(x)) # mmebuat tombol minus plusminus = Button(text="-/+",width=5, font=("verdana",13, "bold"), command= bilbul) # membuat tombol -/+ nol = Button(text="0",width=5, font=("verdana",13, "bold"), command= lambda x="0": input_field(x)) # mmebuat tombol 0 point = Button(text=".",width=5, font=("verdana",13, "bold"), command= points) # membuat tombol point kali = Button(text="x",width=5, font=("verdana",13, "bold"), command= lambda x="*": set_operator(x)) # membuat tombol kali bagi = Button(text="/",width=5, font=("verdana",13, "bold"), command= lambda x="/": set_operator(x)) # membuat tombol bagi samadengan = Button(text="=",width=5, height=3, font=("verdana",13, "bold"), command=eksekusi) # mengatur letak komponen kalkulator masukan.grid(column=0, row=0, columnspan=5) satu.grid(column=0, row=1) dua.grid(column=1, row=1) tiga.grid(column=2, row=1) clear.grid(column=3, row=1, columnspan=2) empat.grid(column=0, row=2) lima.grid(row=2, column=1) enam.grid(column=2, row=2) plus.grid(row=2, column=3) tujuh.grid(row=3, column=0) delapan.grid(row=3, column=1) sembilan.grid(row=3, column=2) minus.grid(row=3, column=3) plusminus.grid(row=4, column=0) nol.grid(row=4, column=1) point.grid(row=4, column=2) kali.grid(row=4, column=3) bagi.grid(row=2, column=4) samadengan.grid(row=3, column=4, rowspan=2) mainloop(}

 

Penjelasan Kode :

  • # mengimport module Tkinter
    from Tkinter import *

Mengimport module Tkinter

  • # mendefinisikan variabel awal
    bil1="0"
    bil2="0"
    operator="nihil"
    hasil = "kosong"

mendefinisikan variabel-variabel awal yang nantinya akan digunakan program

  • def points():
        global bil1
        global bil2
        getv = masukan.get()
        if "." not in getv:
           masukan.delete(0, END)
           masukan.insert(0, getv+".")
           if getv == bil1:
               bil1 = getv+"."
           else:
               bil2 = getv+"."

method untuk menginputkan tanda titik yang menendakan bilangan desimal

  • def input_field(x):
        global bil1
        global bil2
        global operator
        global hasil
        if operator == "nihil" and hasil == "kosong":
            get_value = masukan.get()
            masukan.delete(0,END)
            masukan.insert(0 , get_value+x)
            bil1 = get_value+x
        elif operator != "nihil" and hasil == "kosong":
            get_value = masukan.get()
            if get_value == bil1:
                masukan.delete(0,END)
                masukan.insert(0 , x)
                bil2 = x
            else :
                masukan.delete(0,END)
                masukan.insert(0 , get_value+x)
                bil2 = get_value+x
        elif operator == "nihil" and hasil != "kosong" and bil1 != "0":
            getv = masukan.get()
            if "." in getv:
                masukan.delete(0,END)
                masukan.insert(0, getv+x)
                bil1 = getv+x
            else :
                masukan.delete(0,END)
                masukan.insert(0,x)
                bil1 = x
            hasil = "kosong"
        elif operator != "nihil" and hasil != "kosong":
            g = masukan.get()
            if g == bil1:
                masukan.delete(0 , END)
                masukan.insert(0, x)
                bil2 = x
            else :
                masukan.delete(0, END)
                masukan.insert(0, g+x)
                bil2 = g+x

Method untuk menginputkan angka-angka yang diklik user

  • def clear():
        global bil1
        global bil2
        global operator
        global hasil
        masukan.delete(0,END)
        bil1 = "0"
        bil2 = "0"
        operator = "nihil"
        hasil = "kosong"

Method untuk mereset semua variabel awal

  • def set_operator(x):
        global operator
    
        if operator == "nihil":
            operator = x
        else :
            eksekusi()
            operator = x

Method untuk mengeset operator yang digunakan untuk mengoperasikan bilangan

  • def eksekusi():
        global bil1
        global bil2
        global operator
        global hasil
        if operator != "nihil":
            if operator == "/" and bil2 == "0":
                masukan.delete(0, END)
                masukan.insert(0, "Error!")
                hasilnya = "susah"
                bil1 = hasilnya
            else:
                exec("hasilnya = %s %s %s" % (bil1,operator,bil2))
                masukan.delete(0,END)
                masukan.insert(0, hasilnya)
                bil1 = "%i" % hasilnya
        else :
            hasilnya = bil1
            bil1 = hasilnya
        bil2 = "0"
        operator = "nihil"

Method untuk mengeksekusi bilangan yang diinputkan user

  • def bilbul():
        global bil1
        global bil2
        global opertor
        getv = masukan.get()
        if getv == bil1:
            masukan.delete(0, END)
            exec("res = %s * -1" % getv)
            masukan.insert(0, res)
            bil1 = "%i" % res
        else :
            masukan.delete(0, END)
            exec("res = %s * -1" % getv)
            masukan.insert(0, res)
            bil2 = "%i" % res

Method ini berfungsi untuk mengeset bilangan menjadi positif atau negatif

  • root = Tk()
    
    # mendefinisikan setiap komponen
    masukan = Entry(width=20, font=("verdana",20), justify="right")                 # membuat text field
    satu = Button(text="1", width=5, font=("verdana",13, "bold"), command= lambda x="1": input_field(x))                   # membuat tombol angka 1
    dua = Button(text="2",width=5,font=("verdana",13, "bold"), command= lambda x="2": input_field(x))                      # membuat tombol angka 2
    tiga = Button(text="3",width=5, font=("verdana",13, "bold"), command= lambda x="3": input_field(x))                    # membuat tombol angka 3
    clear = Button(text="C", width=11,font=("verdana",13, "bold"), command=clear)                  # membuat tombol clear
    empat = Button(text="4",width=5, font=("verdana",13, "bold"), command= lambda x="4": input_field(x))                   # membuat tombol angka 4
    lima = Button(text="5",width=5, font=("verdana",13, "bold"), command= lambda x="5": input_field(x))                    # membuat tombol angka 5
    enam = Button(text="6",width=5, font=("verdana",13, "bold"), command= lambda x="6": input_field(x))                    # mebuat tombol angka 6
    plus = Button(text="+", width=5, font=("verdana", 13, "bold"), command= lambda x="+": set_operator(x))                  # membuat tombol plus
    tujuh = Button(text="7",width=5, font=("verdana",13, "bold"), command= lambda x="7": input_field(x))                   # mmebuat tombol angka 7
    delapan = Button(text="8",width=5, font=("verdana",13, "bold"), command= lambda x="8": input_field(x))                 # mmebuat tombol angka 8
    sembilan = Button(text="9",width=5, font=("verdana",13, "bold"), command= lambda x="9": input_field(x))                # mmebuat tombol angka 9
    minus = Button(text="-",width=5, font=("verdana",13, "bold"), command= lambda x="-": set_operator(x))                   # mmebuat tombol minus
    plusminus = Button(text="-/+",width=5, font=("verdana",13, "bold"), command= bilbul)             # membuat tombol -/+
    nol = Button(text="0",width=5, font=("verdana",13, "bold"), command= lambda x="0": input_field(x))                     # mmebuat tombol 0
    point = Button(text=".",width=5, font=("verdana",13, "bold"), command= points)                   # membuat tombol point
    kali = Button(text="x",width=5, font=("verdana",13, "bold"), command= lambda x="*": set_operator(x))                    # membuat tombol kali
    bagi = Button(text="/",width=5, font=("verdana",13, "bold"), command= lambda x="/": set_operator(x))                    # membuat tombol bagi
    samadengan = Button(text="=",width=5, height=3, font=("verdana",13, "bold"), command=eksekusi)

Nah ini untuk membuat komponen-komponen Kalkulator yang berupa tombol-tombol dan text field.

  • # mengatur letak komponen kalkulator
    masukan.grid(column=0, row=0, columnspan=5)
    satu.grid(column=0, row=1)
    dua.grid(column=1, row=1)
    tiga.grid(column=2, row=1)
    clear.grid(column=3, row=1, columnspan=2)
    empat.grid(column=0, row=2)
    lima.grid(row=2, column=1)
    enam.grid(column=2, row=2)
    plus.grid(row=2, column=3)
    tujuh.grid(row=3, column=0)
    delapan.grid(row=3, column=1)
    sembilan.grid(row=3, column=2)
    minus.grid(row=3, column=3)
    plusminus.grid(row=4, column=0)
    nol.grid(row=4, column=1)
    point.grid(row=4, column=2)
    kali.grid(row=4, column=3)
    bagi.grid(row=2, column=4)
    samadengan.grid(row=3, column=4, rowspan=2)
    
    mainloop(}

Dan skrip diatas digunakan untuk mengatur letak komponen-komponen kalkulator.

 

Skrip di atas masih sangat sederhana dan masih bisa dikembangkan. Selesai sudah tutorial membuat kalkulator dengan Python


About Author

Ananda Mukhammad Ikhsan

Hanya Pelajar yang terobsesi dengan bahasa pemrograman


Comment & Discussions

    Please LOGIN before if you want to give the comment.