· 5 years ago · May 30, 2020, 10:38 AM
1from urllib.request import urlopen
2from tkinter import *
3import json
4import sqlite3
5import os
6os.system('clear')
7
8root = Tk()
9root.title("Aplikasi Data Tanaman")
10root.geometry("500x600")
11
12# Databases
13
14# create a database or connect to one
15conn = sqlite3.connect("kebun.db")
16
17# Create cursor
18kursor = conn.cursor()
19
20# Create table
21
22kursor.execute("""CREATE TABLE IF NOT EXISTS data_pohon (
23 id_tree INTEGER PRIMARY KEY,
24 sensor_tree TEXT,
25 loc_lat REAL,
26 loc_lon REAL)""")
27
28# Create Function to Delete A Record
29def delete():
30 # create a database or connect to one
31 conn = sqlite3.connect("kebun.db")
32 # Create cursor
33 kursor = conn.cursor()
34
35 # Delete a record
36 kursor.execute("DELETE FROM data_pohon WHERE oid = " + delete_box.get())
37
38 delete_box.delete(0, END)
39
40 # Commit changes
41 conn.commit()
42 # Close connection
43 conn.close()
44
45
46# Create submit function for database
47def submit():
48 # create a database or connect to one
49 conn = sqlite3.connect("kebun.db")
50 # Create cursor
51 kursor = conn.cursor()
52 # Insert Into Table
53 kursor.execute("INSERT INTO data_pohon VALUES (:id_tree, :sensor_tree, :loc_lat, :loc_lon)",
54 {
55 'id_tree': id_tree.get(),
56 'sensor_tree': sensor_tree.get(),
57 'loc_lat': loc_lat.get(),
58 'loc_lon': loc_lon.get()
59 })
60
61 # Commit changes
62 conn.commit()
63 # Close connection
64 conn.close()
65
66 # Clear The Text Boxes
67 id_tree.delete(0, END)
68 sensor_tree.delete(0, END)
69 loc_lat.delete(0, END)
70 loc_lon.delete(0, END)
71
72 for i in range(10):
73 # Get Address
74 alamat = f"https://belajar-python-unsyiah.an.r.appspot.com/sensor/read?npm=1904105010004&id_tree={id_tree.get()}&sensor_type={i}"
75 # Open URL
76 url = urlopen(alamat)
77 # Get or Read document
78 dokumen = url.read().decode("utf-8")
79 #proses
80 data = json.loads(dokumen)
81 #print(f"id : {data['id_tree']} sensor : {data['sensor_type']} value: {data['value']} date : {data['when']}")
82
83
84# Create Query function
85def query():
86 # create a database or connect to one
87 conn = sqlite3.connect("kebun.db")
88 # Create cursor
89 kursor = conn.cursor()
90
91 # Query the database
92 kursor.execute("SELECT *, oid FROM data_pohon")
93 records = kursor.fetchall()
94 #print(records)
95
96 # loop thur Result
97 print_records = ""
98 for record in records:
99 print_records += f"\nid : {record[0]} sensor : {record[1]} lat : {record[2]} lon : {record[3]}"
100
101 query_lbl= Label(root, text=print_records)
102 query_lbl.grid(row=14, column=0, columnspan=2)
103
104 # Commit changes
105 conn.commit()
106 # Close connection
107 conn.close()
108
109# Create Text Boxes
110id_tree = Entry(root, width=30)
111id_tree.grid(row=0, column=1, padx=20, pady=(10,0))
112sensor_tree = Entry(root, width=30)
113sensor_tree.grid(row=1, column=1)
114loc_lat = Entry(root, width=30)
115loc_lat.grid(row=2, column=1)
116loc_lon = Entry(root, width=30)
117loc_lon.grid(row=3,column=1)
118delete_box = Entry(root, width=30)
119delete_box.grid(row=7, column=1, pady=5)
120
121
122# Create Text Box Labels
123id_tree_lbl = Label(root, text="ID Tanaman : ")
124id_tree_lbl.grid(row=0, column=0, pady=(10,0))
125sensor_tree_lbl = Label(root, text="No. Sensor : ")
126sensor_tree_lbl.grid(row=1, column=0)
127loc_lat_lbl = Label(root, text="Latitude :")
128loc_lat_lbl.grid(row=2, column=0)
129loc_lon_lbl = Label(root, text="Longitude :")
130loc_lon_lbl.grid(row=3, column=0)
131delete_box_lbl = Label(root, text="Select ID :")
132delete_box_lbl.grid(row=8, column=0, pady=5)
133
134
135# Create submit Button
136submit_btn = Button(root, text="Tambahkan Data", command=submit)
137submit_btn.grid(row=6, column=0, columnspan=1, pady=10, padx=10, ipadx=40)
138
139# Create a Query Button
140query_btn = Button(root, text="Tampilkan Data", command=query)
141query_btn.grid(row=7, column=0, columnspan=1)
142
143# Create a Delete Button
144delete_btn = Button(root, text="Hapus Data", command=delete)
145delete_btn.grid(row=9, column=0, columnspan=1)
146
147# Create lable text box Result
148result_lbl = Label(root, text="Hasil Data Koordinat")
149result_lbl.grid(row=10, column=0, columnspan=1, pady=10)
150
151'''
152# Create an Update Button
153edit_btn = Button(root, text="Edit Records", command=edit)
154edit_btn.grid(row=11, column=0, columnspan=2, pady=10, padx=10, ipadx=143)
155'''
156
157# Commit changes
158conn.commit()
159
160# Close connection
161conn.close()
162
163# Main loop
164root.mainloop()