Bagaimana membuat aplikasi data sederhana di Python, tentunya masih dengan Tkinter.
Penjelasan Singkat Program:
- Program menggunakan Tkinter beserta komponennya, diantaranya adalah
Button
,Entry
,Label
,Listbox
, danFrame
. - Tata layout komponen menggunakan gabungan
Pack()
danGrid()
. - Data disimpan dalam bentuk Tuple yang berisi beberapa data
List
.
Source Code
# file: datListbox.py # versi: Python 3.2 # Dasar pemrograman GUI dengan data sederhana # untuk selanjutnya kita akan belajar # menggunakan database SQLite. from tkinter import * class DemoListbox: def __init__(self, parent, title): self.parent = parent self.parent.title(title) #self.parent.geometry("600x400") self.parent.protocol("WM_DELETE_WINDOW", self.onKeluar) self.dataSiswa = ( ["1", "Ayu Silvia", "Malang", "0341-672541", "6 SD"], ["2", "Beni Wahyudi", "Malang", "0341-435271", "6 SD"], ["3", "Cahyo Gunawan", "Malang", "0341-123456", "6 SD"], ["4", "Derbi Ratno", "Malang", "0341-234567", "6 SD"], ["5", "Deasy Ratna", "Malang", "0341-213212", "6 SD"], ["6", "Purba Swari", "Malang", "0341-343434", "6 SD"], ["7", "Erik Kurniawan", "Malang", "0341-212121", "6 SD"], ["8", "Restu Singgih", "Malang", "0341-567489", "6 SD"], ["9", "Sri Utami", "Malang", "0341-867855", "6 SD"], ["10", "Jesica Rahma", "Malang", "0341-555432", "6 SD"], ["11", "Lukita Willi", "Malang", "0341-111121", "6 SD"], ["12", "Rohandi Yusuf", "Malang", "0341-768594", "6 SD"], ["13", "Bakar Agung", "Malang", "0341-536829", "6 SD"], ["14", "Romi Kuliti", "Malang", "0341-986794", "6 SD"], ["15", "Den Bagus", "Malang", "0341-324689", "6 SD"]) self.aturKomponen() self.aturKejadian() self.isiListbox() self.isiData() self.listboxData.focus_set() def aturKejadian(self): self.listboxData.bind('<ButtonRelease-1>', self.onKlikLB) self.listboxData.bind('<KeyRelease>', self.onKlikLB) def onKlikLB(self, event=None): self.isiData() def isiData(self): indeks = self.listboxData.curselection() kode = int(indeks[0]) # hapus data self.entNomor.delete(0, END) self.entNama.delete(0, END) self.entAlamat.delete(0, END) self.entTelp.delete(0, END) self.entKelas.delete(0, END) # isi data self.entNomor.insert(END, self.dataSiswa[kode][0]) self.entNama.insert(END, self.dataSiswa[kode][1]) self.entAlamat.insert(END, self.dataSiswa[kode][2]) self.entTelp.insert(END, self.dataSiswa[kode][3]) self.entKelas.insert(END, self.dataSiswa[kode][4]) def isiListbox(self): for dat in range(len(self.dataSiswa)): self.listboxData.insert(END, self.dataSiswa[dat][1]) self.listboxData.selection_set(0) def aturKomponen(self): mainFrame = Frame(self.parent) mainFrame.pack(fill=BOTH, expand=YES) self.statusBar = Label(mainFrame, text="www.KlinikPython.Wordpress.Com", relief=SUNKEN, bd=1) self.statusBar.pack(side=BOTTOM, fill=X) # frame_kiri fr_kiri = Frame(mainFrame, bd=10) fr_kiri.pack(fill=BOTH, expand=YES, side=LEFT) scroll = Scrollbar(fr_kiri, orient=VERTICAL) self.listboxData = Listbox(fr_kiri, width=30, yscrollcommand=scroll.set) self.listboxData.pack(fill=Y, side=LEFT) scroll.configure(command=self.listboxData.yview) scroll.pack(side=LEFT, fill=Y) # frame_kanan fr_kanan = Frame(mainFrame, bd=10) fr_kanan.pack(fill=BOTH, expand=YES, side=RIGHT) # fr_kanan_atas fr_katas = Frame(fr_kanan) fr_katas.pack(side=TOP, expand=YES) # data Nomor Label(fr_katas, text='Nomor Urut').grid( row=0, column=0, sticky=W) self.entNomor = Entry(fr_katas) self.entNomor.grid(row=0, column=1) # data Nama Label(fr_katas, text='Nama Lengkap').grid( row=1, column=0, sticky=W) self.entNama = Entry(fr_katas) self.entNama.grid(row=1, column=1) # data Alamat Label(fr_katas, text='Alamat').grid( row=2, column=0, sticky=W) self.entAlamat = Entry(fr_katas) self.entAlamat.grid(row=2, column=1) # data NoTelp Label(fr_katas, text='No. Telp').grid( row=3, column=0, sticky=W) self.entTelp = Entry(fr_katas) self.entTelp.grid(row=3, column=1) # data Kelas Label(fr_katas, text='Kelas').grid( row=4, column=0, sticky=W) self.entKelas = Entry(fr_katas) self.entKelas.grid(row=4, column=1) # fr_kanan_bawah fr_kawah = Frame(fr_kanan) fr_kawah.pack(side=BOTTOM, expand=YES) self.btnAwal = Button(fr_kawah, text='<<', command=self.onAwal, width=5) self.btnAwal.pack(side=LEFT) self.btnPrev = Button(fr_kawah, text='<', command=self.onPrev, width=5) self.btnPrev.pack(side=LEFT) self.btnNext = Button(fr_kawah, text='>', command=self.onNext, width=5) self.btnNext.pack(side=LEFT) self.btnAkhir = Button(fr_kawah, text='>>', command=self.onAkhir, width=5) self.btnAkhir.pack(side=LEFT) def onAwal(self, event=None): datIndex = self.listboxData.curselection() self.listboxData.selection_clear(int(datIndex[0])) self.listboxData.selection_set(0) self.listboxData.activate(0) self.isiData() def onPrev(self, event=None): datIndex = self.listboxData.curselection() if int(datIndex[0]) == 0: pass else: self.listboxData.selection_clear(int(datIndex[0])) self.listboxData.selection_set(int(datIndex[0])-1) self.listboxData.activate(int(datIndex[0])-1) self.isiData() def onNext(self, event=None): jumDat = len(self.dataSiswa) datIndex = self.listboxData.curselection() if int(datIndex[0]) == jumDat-1: pass else: self.listboxData.selection_clear(int(datIndex[0])) self.listboxData.selection_set(int(datIndex[0])+1) self.listboxData.activate(int(datIndex[0])+1) self.isiData() def onAkhir(self, event=None): jumDat = len(self.dataSiswa) datIndex = self.listboxData.curselection() self.listboxData.selection_clear(int(datIndex[0])) self.listboxData.selection_set(jumDat-1) self.listboxData.activate(jumDat-1) self.isiData() def onKeluar(self, event=None): self.parent.destroy() if __name__ == '__main__': root = Tk() aplikasi = DemoListbox(root, "Demo Listbox - Aplikasi Data di Python") root.mainloop()
AMDHIKA ARIF SETYAWAN. Diberdayakan oleh Blogger.
0 komentar:
Posting Komentar