· 5 years ago · May 31, 2020, 01:52 PM
1from tkinter import *
2import sqlite3
3
4root= Tk()
5root.title("aplikasi Tanaman Kopi")
6root.geometry("400x600")
7
8# Databases
9
10# membuat database
11conn = sqlite3.connect('menu.db')
12
13# menghubungkan ke kursor
14c = conn.cursor()
15
16# membuat tabel
17
18c.execute("""CREATE TABLE IF NOT EXISTS PROJECT (
19 id_tanaman INTEGER,
20 latitude FLOAT,
21 Longitude FLOAT,
22 sensor_type INTEGER,
23 nilai_sensor FLOAT
24 );""")
25
26
27# Create Edit Function to Update a record
28def update():
29 # create a database or connect to one
30 conn = sqlite3.connect('menu.db')
31 # Create cursor
32 c = conn.cursor()
33
34 id_tanaman = delete_box.get()
35
36 c.execute("""UPDATE SET
37 id_tanaman = :idTanaman,
38 latitude = :lat,
39 longitude = :lon,
40 sensor_type = :sensorType,
41 nilai_sensor= :nilaiSensor,
42
43
44 WHERE oid = :oid""",
45 {
46 'idTanaman': id_tanaman_editor.get(),
47 'lat': latitude_editor.get(),
48 'lon': longitude_editor.get(),
49 'sensorType': sensor_type_editor.get(),
50 'nilaiSensor': nilai_sensor_editor.get(),
51 'oid' : id_tanaman
52 })
53
54 # Commit changes
55 conn.commit()
56 # Close connection
57 conn.close()
58
59 editor.destroy()
60
61
62def edit():
63 global editor
64 editor = Tk()
65 #editor.title("Update A Record")
66 editor.geometry('450x200')
67
68 # create a database or connect to one
69 conn = sqlite3.connect('menu.db')
70 # Create cursor
71 c = conn.cursor()
72
73 record_id = delete_box.get()
74 # Query the database
75 c.execute("SELECT * FROM PROJECT WHERE oid = " + id_tanaman)
76 records = c.fetchall()
77
78 # Create Global Variables for text box namens
79 global id_tanaman_editor
80 global latitude_editor
81 global longitude_editor
82 global sensor_type_editor
83 global nilai_sensor_editor
84
85
86 # Create Text Boxes
87 id_tanaman_editor = Entry(editor, width=30)
88 id_tanaman_editor.grid(row=0, column=1, padx=20, pady=(10, 0))
89 latitude_editor = Entry(editor, width=30)
90 latitude_editor.grid(row=1, column=1)
91 longitude_editor = Entry(editor, width=30)
92 longitude_editor.grid(row=2, column=1)
93 sensor_type_editor = Entry(editor, width=30)
94 sensor_type_editor.grid(row=3, column=1)
95 nilai_sensor_editor = Entry(editor, width=30)
96 nilai_sensor_editor.grid(row=4, column=1)
97
98 # Create Text Box Labels
99 id_tanaman_lbl = Label(editor, text="Id Tanaman")
100 id_tanaman_lbl.grid(row=0, column=0, pady=(10,0))
101 latitude_lbl = Label(editor, text="Latitude")
102 latitude_lbl.grid(row=1, column=0)
103 longitude_lbl= Label(editor, text="Longitude")
104 longitude_lbl.grid(row=2, column=0)
105 sensor_type_lbl= Label(editor, text="Sensor Type")
106 sensor_type_lbl.grid(row=3, column=0)
107 nilai_sensor_lbl = Label(editor, text="Nilai Sensor")
108 nilai_sensor_lbl.grid(row=4, column=0)
109
110 # Loop thru result
111 for record in records:
112 id_tanaman_editor.insert(0, record[0])
113 latitude_editor.insert(0, record[1])
114 longitude_editor.insert(0, record[2])
115 sensor_type_editor.insert(0, record[3])
116 nilai_sensor_editor.insert(0, record[4])
117
118
119 # Create an Save Button To Save edited record
120 edit_btn = Button(editor, text="Save Records", command=update)
121 edit_btn.grid(row=6, column=0, columnspan=2, pady=10, padx=10, ipadx=143)
122
123
124# Create Function to Delete A Record
125def delete():
126 # create a database or connect to one
127 conn = sqlite3.connect("menu.db")
128 # Create cursor
129 c = conn.cursor()
130
131 # Delete a record
132 c.execute("DELETE FROM PROJECT WHERE oid = " + delete_box.get())
133
134 delete_box.delete(0, END)
135
136 # Commit changes
137 conn.commit()
138 # Close connection
139 conn.close()
140
141
142# Create submit function for database
143def submit():
144 # create a database or connect to one
145 conn = sqlite3.connect("menu.db")
146 # Create cursor
147 c = conn.cursor()
148 # Insert Into Table
149 c.execute("INSERT INTO PROJECT VALUES (:id_tanaman, :latitude, :longitude, :sensor_type, :nilai_sensor)",
150 {
151 'idTanaman': id_tanaman.get(),
152 'lat': latitude.get(),
153 'lon': longitude.get(),
154 'sensorType': sensor_type.get(),
155 'nilaiSensor': nilai_sensor.get()
156 })
157 # Commit changes
158 conn.commit()
159 # Close connection
160 conn.close()
161
162 # Clear The Text Boxes
163 id_tanaman.delete(0, END)
164 latitude.delete(0, END)
165 longitude.delete(0, END)
166 sensor_type.delete(0, END)
167 nilai_sensor.delete(0, END)
168
169
170# Create Query function
171def query():
172 # create a database or connect to one
173 conn = sqlite3.connect("menu.db")
174 # Create cursor
175 c = conn.cursor()
176
177 # Query the database
178 c.execute("SELECT *, oid FROM id_tanaman")
179 records = c.fetchall()
180 #print(records)
181
182 # loop thur Result
183 print_records = ''
184 for record in records:
185 print_records += str(record[0]) + " " + str(record[1]) + " " + "\t" +str(record[6]) + "\n"
186
187 query_lbl= Label(root, text=print_records)
188 query_lbl.grid(row=12, column=0, columnspan=2)
189
190 # Commit changes
191 conn.commit()
192 # Close connection
193 conn.close()
194
195# Create Text Boxes
196idTanaman = Entry(root, width=30)
197idTanaman.grid(row=0, column=1, padx=20, pady=(10,0))
198lat = Entry(root, width=30)
199lat.grid(row=1, column=1)
200lon = Entry(root, width=30)
201lon.grid(row=2, column=1)
202sensorType = Entry(root, width=30)
203sensorType.grid(row=3, column=1)
204nilaiSensor = Entry(root, width=30)
205nilaiSensor.grid(row=4, column=1)
206delete_box = Entry(root, width=30)
207delete_box.grid(row=9, column=1, pady=5)
208
209# Create Text Box Labels
210id_tanaman_lbl = Label(root, text="Id Tanaman")
211id_tanaman_lbl.grid(row=0, column=0, pady=(10,0))
212latitude_lbl = Label(root, text="Latitude")
213latitude_lbl.grid(row=1, column=0)
214longitude_lbl = Label(root, text="Longitude")
215longitude_lbl.grid(row=2, column=0)
216sensor_type_lbl= Label(root, text="Sensor Type")
217sensor_type_lbl.grid(row=3, column=0)
218nilai_sensor_lbl = Label(root, text="Nilai Sensor")
219nilai_sensor_lbl.grid(row=4, column=0)
220delete_box_lbl = Label(root, text="Select ID")
221delete_box_lbl.grid(row=9, column=0, pady=5)
222
223# Create submit Button
224submit_btn = Button(root, text="Tambah Data", command=submit)
225submit_btn.grid(row=6, column=0, columnspan=2, pady=10, padx=10, ipadx=100)
226
227# Create a Query Button
228query_btn = Button(root, text="Tampilan Data", command=query)
229query_btn.grid(row=7, column=0, columnspan=2, pady=10, padx=10, ipadx=137)
230
231# Create a Delete Button
232delete_btn = Button(root, text="Hapus Data", command=delete)
233delete_btn.grid(row=10, column=0, columnspan=2, pady=10, padx=10, ipadx=136)
234
235# Create an Update Button
236edit_btn = Button(root, text="Edit Data", command=edit)
237edit_btn.grid(row=11, column=0, columnspan=2, pady=10, padx=10, ipadx=143)
238
239
240# Commit changes
241conn.commit()
242
243# Close connection
244conn.close()
245
246# Main loop
247root.mainloop()