Tampilkan postingan dengan label sqlite3. Tampilkan semua postingan
Tampilkan postingan dengan label sqlite3. Tampilkan semua postingan

Selasa, 03 Agustus 2021

CRUD Database Python dan Sqlite3 Part 2


Artikel ini merupakan lanjutan dari artike sebelumnya yang menjelas kan tentang input data dan mennampilkan data. Pada Artikel ini saya membuat tiga buah file yakni Update.py, Delete.py dan Search.py. Yang masing-masing mempunyai fungsinya masing-masing sesuai dengan namanya.
Oke kita langsung ke tahap pembuatan file-filenya. File Search.py berisi kode:
import sqlite3
conn = sqlite3.connect(‘testDB.db’)
print (“database sukses terbuka”)
def search():
global srccolumn,searching
#default srccolumn
print(‘Search data table Company, if it leave blank will be searched by ID’)
srccolumn = input(‘Enter searching by column :’)
if srccolumn == ”:
srccolumn = ‘ID’
searching = str(input(‘Search :’))
cursor = conn.execute(“SELECT ID, NAME, ADDRESS, SALARY from COMPANY where ” + srccolumn +” like ‘”+ searching +”%’;”)
for row in cursor:
print (“ID = “,row[0])
print (“NAME = “,row[1])
print (“ADRRESS = “,row[2])
print (“SALARY = “,row[3],”\n”)
print (“Operasi sukses”);
search()
conn.close()
Ini merupakan pencarian dimana kita bisa menentukan atribut yang akan dicari seperti berapa salarynya atau alamatnya. Tetapi bila kita ingin mencarinya berdasarkan idnya maka kosongkan inputnya.
Selanjutnya mari kita buat file Delete.py yang berfungsi untuk menghapus data yang sudah tersimpan pada database.
#!/usr/bin/python
import sqlite3
conn = sqlite3.connect(‘testDB.db’)
print (“database sukses terbuka”);
def delete():
global ids
ids = str(input(‘Which id do you want to delete :’))
conn.execute(‘delete from COMPANY where id=’+ids)
conn.commit()
print (“Jumlah data terhapus :”, conn.total_changes)
cursor = conn.execute(“SELECT ID, NAME, ADDRESS, SALARY from COMPANY”)
for row in cursor:
print (“ID = “,row[0])
print (“NAME = “,row[1])
print (“ADRRESS = “,row[2])
print (“SALARY = “,row[3],”\n”)
delete()
Ini menghapus data berdasarkan id yang dimasukan. File ini belum ditambahkan konfirmasi unrtuk menghapus data tersebut.Bila ingin tambahkan konfirmasi penghapusan data tinggal tambah global variabel confirmation dan buat logika if kalau user memasukan Y atau y maka hapus data tersebut.
Selanjutnya kita membuat file Update.py untuk mensunting data yang sudah tersimpan.
import sqlite3
conn = sqlite3.connect(‘testDB.db’)
print (“database sukses terbuka”);
def update():
global ids, salaries
ids = str(input(‘Enter the ID that you want to change:’))
salaries = input(‘Enter salary to change:’)
conn.execute(“UPDATE COMPANY set SALARY =”+ salaries +” where ID=”+ ids +””)
conn.commit()
print (“Jumlah data terupdate :”, conn.total_changes)
cursor = conn.execute(“SELECT ID, NAME, ADDRESS, SALARY from COMPANY where ID=”+ids)
for row in cursor:
print (“ID = “,row[0])
print (“NAME = “,row[1])
print (“ADRRESS = “,row[2])
print (“SALARY = “,row[3],”\n”)
print (“Operasi sukses”);
update()
conn.close()
Pada file Update.py ini mensunting SALARY pada id yang dimasukan. FIle ini masih bisa dikembangkan sesuai dengan kebutuhan.
Note : Untuk pengguna database selain sqlite3 tinggal mengganti variabel conn.

Rabu, 28 November 2018

Memanipulasi Database pada Tkinter Python part3


Selanjutnya kita akan membuat fungsi select untuk memilih data yang ada di treeview ke kolom-kolom input untuk kita sunting menjadi data yang baru. Tetapi sebelumnya mari kita buat Treeview.bind() untuk membuat aksi ketika data di double-clicked. Masukan tree.bind(‘<Double-Button-1>’, onSelected) ke dalam kode yang telah kita buat posisinya dibawah tree.grid. Di bawah ini merupakan kode untuk fungsi OnSelected().

def onSelected(event):
global ID;
curItem = tree.focus()
contents =(tree.item(curItem))
selecteditem = contents[‘values’]
ID = selecteditem[0]
clear()
name.set(selecteditem[1])
age.set(selecteditem[2])
address.set(selecteditem[3])
salary.set(selecteditem[4])

Silahkan eksekusi untuk mengecek apakah kode yang dimasukan benar. Doubled-click data yang akan dipilih. Bila semua data langsung tampil pada kolom-kolomnya. Selanjutnya buat fungsi update.

def update():
database()
if salary.get() == 0:
sta.config(text=”Please input salary”, foreground=”red”)
else:
tree.delete(*tree.get_children())
cursor.execute(“UPDATE `COMPANY` SET `NAME` = ?, `AGE` = ?, `ADDRESS` =?, `SALARY` = ? WHERE `ID` = ?”, (name.get(),age.get(),address.get(),salary.get(), int(ID)))
conn.commit()
read()
conn.close()
clear()
sta.config(text=”Successfully updated the data”, foreground=”black”)

Lalu tambahkan tombol Update dan tambahkan grid untuk posisinya denga kode ini.
bUpdate = ttk.Button(win, text=’Update’, command=update)

Selesai untuk aksi sunting pada Tkinter selanjutnya kita buat aksi remove untuk menghapus data yang sudah tersimpan di database.

Ini merupakan fungsi remove.

remove():
if not tree.selection():
sta.config(text=”Please select an item first”, foreground=”red”)
else:
result = tkMessageBox.askquestion(‘Manipulation Data Application Python’, ‘Are you sure you want to delete this record?’, icon=”warning”)
if result == ‘yes’:
curItem = tree.focus()
contents =(tree.item(curItem))
selecteditem = contents[‘values’]
tree.delete(curItem)
database()
cursor.execute(“DELETE FROM `COMPANY` WHERE `ID` = %d” % selecteditem[0])
conn.commit()
cursor.close()
conn.close()
sta.config(text=”Successfully deleted the data”, foreground=”black”)

Lalu buat tombol Remove dan posisikan di tempat yang bagus.
bRemove = ttk.Button(win, text=’Remove’, command=remove)

Jangan lupa untuk import tkMessageBox. dengan menempatkan import tkinter.messagebox as tkMessageBox pada import module dibagian atas. Untuk tambahan pencarian data pada big data bisa buat fungsi search dengan sql yang benar. Ini juga masih sangat bisa dikembangkan dengan scrool di Treeview. Bila berhsil maka kurang lebih tampilan applikasi anda akan seperti ini.

Note: Pada koneksi database yang lain tinggal modif variabel conn pada fungsi database yang sudah ada. Bila tidakmuncul tombonya jangan lupa buat grid pada tiap-tiap tombolnya.

.: GOOD LUCK :.

Memanipulasi Database pada Tkinter Python part2



Ini merupakan lanjutan tutorial yang sebelumnya. Disini kita memodifikasi file yang sudah kita buat. Dengan menambahkan Treeview untuk melihat data yang sudah kita simpan. Tetapi sebelumnya mari kita rapihkan kode yang sudah kita buat agar mudah mengembangkannya.
#import modules
import tkinter as tk
import sqlite3
from tkinter import ttk
win = tk.Tk()
win.title(‘CRUD Tkinter’)
#buat fungsi-fungsi
def database():
global conn, cursor
conn = sqlite3.connect(‘testDB.db’)
cursor = conn.cursor()
cursor.execute(“CREATE TABLE IF NOT EXISTS ‘COMPANY'(ID integer primary key autoincrement not null,NAME text not null, AGE int not null , ADDRESS char(50), SALARY real);”)
def entry():
database()
conn.execute(“INSERT INTO COMPANY ( NAME, AGE, ADDRESS, SALARY) values (?,?,?,? )”, (name.get(),age.get(),address.get(),salary.get(),));
conn.commit()
sta.configure(text = ‘Status :Entry data success!’)
sta.configure(foreground = ‘green’)
clear()
def clear():
name.set(”)
age.set(0)
address.set(”)
salary.set(0)
#buat variabel-variabel
name = tk.StringVar()
age = tk.IntVar()
address = tk.StringVar()
salary = tk.IntVar()
#menginisiasi komponen-komponen
labTittle = ttk.Label(win, font=(16), foreground=’#0000FF’, text=’Add An employee’)
labNama = ttk.Label(win, text=’Name ‘)
labAge = ttk.Label(win, text=’Age ‘)
labAddress = ttk.Label(win, text=’Address’)
labSalary = ttk.Label(win, text=’Salary’)
sta = ttk.Label(win, text=’Status :’)
#colom-colom
colName = ttk.Entry(win, textvariable=name)
colAge = ttk.Entry(win, textvariable=age)
colAddress = ttk.Entry(win, textvariable=address)
colSalary = ttk.Entry(win, textvariable=salary)
#Tombol tombol
bAdd = ttk.Button(win, text=’Add’, command=entry)
bReset = ttk.Button(win, text=’Reset’, command=clear)
#menempatkan komponen-komponen
labTittle.grid(column=1,sticky=tk.W+tk.E)
labNama.grid(column=0,row=1)
labAge.grid(column=0,row=2)
labAddress.grid(column=0,row=3)
labSalary.grid(column=0,row=4)
sta.grid(column=1,row=5,sticky=tk.W+tk.E)
colName.grid(column=1, row=1)
colAge.grid(column=1, row=2)
colAddress.grid(column=1, row=3)
colSalary.grid(column=1, row=4)
bAdd.grid(column=0, row=6,sticky=tk.W+tk.E)
bReset.grid(column=1, row=6,sticky=tk.W+tk.E)
#menjalankan applikasi
win.mainloop()
Selanjutnya mari kita tambahkan Treeview diatas kode win.mainloop().
#menambahkan Treeview
tree = ttk.Treeview(win,columns=(“ID”, “NAME”, “AGE”, “ADDRESS”, “SALARY”), selectmode=”extended”, height=500)
tree.heading(‘ID’, text=”ID”, anchor=W)
tree.heading(‘NAME’, text=”NAME”, anchor=W)
tree.heading(‘AGE’, text=”AGE”, anchor=W)
tree.heading(‘ADDRESS’, text=”ADDRESS”, anchor=W)
tree.heading(‘SALARY’, text=”SALARY”, anchor=W)
tree.column(‘#0’, stretch=NO, minwidth=0, width=0)
tree.column(‘#1’, stretch=NO, minwidth=0, width=40)
tree.column(‘#2’, stretch=NO, minwidth=0, width=120)
tree.column(‘#3’, stretch=NO, minwidth=0, width=40)
tree.column(‘#4’, stretch=NO, minwidth=0, width=120)
tree.grid(column=0,columnspan=3,row=7)
Kemudian kita buat fungsi read untuk membaca datanya.
def read():
tree.delete(*tree.get_children())
database()
cursor.execute(“SELECT * FROM `COMPANY` ORDER BY `NAME` ASC”)
fetch = cursor.fetchall()
for data in fetch:
tree.insert(”, ‘end’, values=(data[0], data[1], data[2], data[3], data[4]))
cursor.close()
conn.close()
sta.config(text=”Successfully read the data from database”, foreground=”black”)
Kemudian eksekusi fungsi read saat program dimulai dengan menambahkan kode read() sebelum win.mainloop(). Lihatlah maka akan muncul data yang sudah kita masukan. Dan masukan kode read() juga pada akhir baris fungsi entry agar langsung merefresh setelah data ditambahkan.
.:GOOD LUCK:.

Minggu, 25 November 2018

Memanipulasi Database pada Tkinter Python


Pada artikel ini, saya membuat file yang bisa memanipulasi database yang bisa menambahkan menambahkan menampilkan, mensunting, mencari dan menghapus data. Sehingga ini cukup powerfull untuk membuat applikasi sekala besar yang berbasis dekstop pada python.
Bahan yang diperlukan untuk membuatnya:
  • Python3
  • Tkinter(module python)
  • Sqlite3
  • Text Editor (geany)
  • Console / Command prompt / Terminal
Untuk penginstalan modul Tkinter tyani dengan masuk ke Python3 dan ketikan perintah import tkinter. Untuk mengetahui bahwa module Tkinter sudah termuat ketik perintah python3 -m tkinter, bila berhasil akan muncul jendela tkinter seperti gambar dibawah ini.

Oke. Pada tahap selanjutnya kita buat file tkinterAdd.py. Ini kode dari file tkinterAdd.py :
import tkinter as tk
import sqlite3
from tkinter import ttk
win = tk.Tk()
win.title(‘Inserting Data with GUI Python’)
def database():
global conn, cursor
conn = sqlite3.connect(‘testDB.db’)
cursor = conn.cursor()
cursor.execute(“CREATE TABLE IF NOT EXISTS ‘COMPANY'(ID integer primary key autoincrement not null,NAME text not null, AGE int not null , ADDRESS char(50), SALARY real);”)
def entry():
database()
conn.execute(“INSERT INTO COMPANY ( NAME, AGE, ADDRESS, SALARY) values (?,?,?,? )”, (name.get(),age.get(),address.get(),salary.get(),));
conn.commit()
sta.configure(text = ‘Status :Entry data success!’)
sta.configure(foreground = ‘green’)
clear()
def clear():
name.set(”)
age.set(”)
address.set(”)
salary.set(”)
name = tk.StringVar()
age = tk.IntVar()
address = tk.StringVar()
salary = tk.IntVar()
ttk.Label(win, font=(16), foreground=’#0000FF’, text=’Add An employee’).grid(column=1,sticky=tk.W+tk.E)
ttk.Label(win, text=’Name ‘).grid(column=0,row=1)
ttk.Entry(win, textvariable=name).grid(column=1, row=1)
ttk.Label(win, text=’Age ‘).grid(column=0,row=2)
ttk.Entry(win, textvariable=age).grid(column=1, row=2)
ttk.Label(win, text=’Address’).grid(column=0,row=3)
ttk.Entry(win, textvariable=address).grid(column=1, row=3)
ttk.Label(win, text=’Salary’).grid(column=0,row=4)
ttk.Entry(win, textvariable=salary).grid(column=1, row=4)
sta=ttk.Label(win, text=’Status :’)
sta.grid(column=1,row=5,sticky=tk.W+tk.E)
ttk.Button(win, text=’Add’, command=entry).grid(column=0, row=6,sticky=tk.W+tk.E)
ttk.Button(win, text=’Reset’, command=clear).grid(column=1, row=6,sticky=tk.W+tk.E)
win.mainloop()
Nah bila berhasil maka kita akan menampilkan jendela Inserting Data with GUI Python seperti gabar dibawah ini.

Isi data pegawai lalu tekan tombol add untuk menambahkannya pada database testDB.db. Untuk melihat data yang sudah terinput kita bisa melihatnya dengan sqlite3 dengan mengetik sqlite3 testDB.db pada console. kemudian ketik select * from COMPANY; Maka akan muncul data yang sudah kita input.
Bila belum memasang sqlite3 pada komputer kita maka pasanglah silahkan lihat website resmi sqlite untuk menginstallny dengan benar. Pada saat menuliskan tutorial ini penulis menggunakan linux. Pada linux installah dengan perintah sudo apt-get install sqlite3.
Note : Untuk pengguna database selain sqlite3 tinggal mengganti variabel conn.
.:: GOOD LUCK ::.