0% menganggap dokumen ini bermanfaat (0 suara)
3 tayangan

PyMySQL QtDesigner

Diunggah oleh

Agus Wira Permana
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
3 tayangan

PyMySQL QtDesigner

Diunggah oleh

Agus Wira Permana
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 30

Open in app

Sign up
Sign in

#Pyhton 2. Belajar CRUD & Koneksi Database


dengan PyMySQL

Rizal Saepul M
·

Follow
Published in

Bandung Code

6 min read

Nov 30, 2018

Share
Pada pembuatan aplikasi yang terpenting adalah tempat
penyimpanan data yang ada dalam aplikasi tersebut atau yang
sering kita sebut dengan Database. Pada artikel ini saya akan
berbagi pengalaman saya dalam membuat koneksi ke database
dan CRUD di pyhton desktop menggunakan PyQt5. Sebelum
masuk, buatlah database dengan nama dbyhton dan buat tabel
data dengan struktur seperti berikut

struktur tabel data

 Install PyMySQL

Di artikel yang saya buat ini, saya menggunakan PyMySQL


sebagai package yang akan menghubungkan pyhton ke
databasenya. Untuk databasenya sendiri, saya menggunakan
XAMPP. Langkah pertama yang dilakukan adalah menginstall
package PyMySQL nya terlebih dahulu dengan menuliskan
script berikut di CMD teman-teman :

pip install pymysql

tunggu sampai installasi selesai. Setelah kita akan cek apakah


package PyMySQL sudah terinstall dengan benar di perangkat
kita atau belum. Cara nya dengan menuliskan :

import pymysql

pada pyhton-crompt teman-teman. Jika hasilnya seperti di bawah


maka installasi berhasil.

cek install PyMySQL

 Membuat Desain GUI

Kemedian langkah selanjutnya yaitu membuat desain tampilan


GUI menggunakan Qt Designer. Buat lah desain seperti gambar
berikut.
desain GUI

Setelah membuat desain seperti gambar di atas, Jangan


lupa nama objek dari LineEdit dan Button dirubah dan
disesuikan. Lalu simpan desain tersebut di folder yang teman-
teman inginkan.

Kemudian convert desain tersebut ke dalam bentuk python


file(.py). Untuk melakukan convert desain ui ke dalam py bisa
dilihat di artikel saya yang sebelumnya atau klik
disini. Proses convert ini dilakukan agar kita bisa mendapatkan
file pyhton dari ui tersebut yang nantinya kita bisa otak-atik.
Apabila proses covert sudah selesai lalu buka file tersebut(yang
berektensi .py) menggunakan Pyhton-IDLE atau Python text
editor seperti PyCharm.

 Membuat Koneksi ke Database

Untuk melakukan koneksi ke database, kita harus menginport


terlebih dahulu package PyMySQL di baris setelah from PyQt5
import QtCore, QtGui, QtWidget. Seperti gambar di bawah

import pymysql

Kemudian kita membuat fungsi koneksi. Berikut syntak fungsi


koneksi tersebut.

Fungsi Koneksi
def koneksi(self):
con = pymysql.connect(db='dbpython', user='root', passwd='',
host='localhost', port=3306, autocommit=True)
cur = con.cursor()
if(cur):
self.messagebox("Koneksi", "Koneksi Berhasil")
else:
self.messagebox("Koneksi", "Koneksi Gagal")

fungsi di atas akan menghubungkan koneksi ke database yang


telah kita buat selumnya. Selain itu juga, di dalam fungsi tersebut
terdapat fungsi untuk memunculkan messagebox. Jadi ketika
program di run maka akan muncul messagebox yang isi nya
koneksi berhasil atau koneksi gagal.

Fungsi Messagebox
def messagebox(self, title, message):
mess = QtWidgets.QMessageBox()
mess.setWindowTitle(title)
mess.setText(message)
mess.setStandardButtons(QtWidgets.QMessageBox.Ok)
mess.exec_()

kemudian fungsi koneksi tersebut kita akan taruh di


fungsi setupUi. Fungsi setupUi ini adalah fungsi utamanya, jadi
ketika program di run maka fungsi koneksi akan otomatis di
panggil. Letakkan fungsi koneksi dengan menuliskan script
berikut
self.koneksi()

memanggil fungsi koneksi

kemudian run program dan cek apakah koneksi berhasil atau


gagal.

 Menyimpan data ke Database

Untuk menyimpan data yang ada di aplikasi GUI nya. Terlebih


dahulu kita akan membuat fungsi save. Fungsi ini akan
memanggil data-data yang ada di tiap LineEdit. Kemudian
melakukan query INSERT SQL ke dalam tabel yang ada di
database. Fungsi ini di buat di bawah fungsi messagebox.

Fungsi save
def save(self):
firstname = self.FirstName.text()
lastname = self.LastName.text()
address = self.Address.toPlainText()
phone = self.Phone.text()
insert = (firstname, lastname, address, phone)
print(insert)
con = pymysql.connect(db='dbpython', user='root', passwd='',
host='localhost', port=3306, autocommit=True)
cur = con.cursor()
sql = "INSERT INTO data(first_name, last_name, address,
phone)" + \
"VALUES"+str(insert)
data = cur.execute(sql)
if(data):
self.messagebox("SUKSES", "Data Barang Tersimpan")
else:
self.messagebox("GAGAL", "Data Barang Gagal Tersimpan")

Untuk isian address saya menggunakan widgets QTextEdit.

Kemudian panggil fungsi save tersebut ketika kita meng-


click button save. Berikut cara pemanggilan fungsinya :
self.Save.clicked.connect(self.save)

letakkan script di atas di bawah baris


self.Save.setObjectName(“Save”) seperti gambar di bawah

memanggil fungsi save

run program, isi data kemudian click button save lihat apakah
proses menyimpan data berhasil atau tidak.

 Menampilkan Data dari Database

Sama seperti menyimpan data, untuk menampilkan data juga kita


terlebih dahulu membuat fungsi Tampil untuk menampilkan
data di database. Dan memanggil fungsi tersebut ketika meng-
click button check. Data yang ditampikan berdasarkan nama
depan/first name nya.

Fungsi Tampil
def Tampil(self):
firstname = self.FirstName.text()
db = pymysql.connect(db='dbpython', user='root', passwd='',
host='localhost', port=3306, autocommit=True)
cursor = db.cursor()
cursor.execute("SELECT * FROM data WHERE
first_name='"+str(firstname)+"'")
data = cursor.fetchall()
if (data):
for tp in data:
self.LastName.setText("" + tp[1])
self.Address.setText("" + tp[2])
self.Phone.setText("" + tp[3])
self.messagebox("INFO","Data Ada")
else:
self.messagebox("INFO", "Data belum ada")

panggil fungsi tersebut pada button check seperti gambar di


bawah.

memenggil fungsi Tampil pada button Check

 Mengupdate Data di Database

untuk menghapus data juga kita terlebih dahulu membuat fungsi


Hapus untuk menampilkan data di database. Dan memanggil
fungsi tersebut ketika meng-click button update. Data yang
diupdate berdasarkan nama depan/first name nya.

Fungsi Update
def update(self):
firstname = self.FirstName.text()
lastname = self.LastName.text()
address = self.Address.toPlainText()
phone = self.Phone.text()
con = pymysql.connect(db='dbpython', user='root', passwd='',
host='localhost', port=3306, autocommit=True)
cur = con.cursor()
sql = "UPDATE data SET last_name=%s, address=%s, phone=%s
WHERE first_name=%s"
data = cur.execute(sql, (lastname, address, phone,
firstname))
if (data):
self.messagebox("SUKSES", "Data Berhasil Di Update")
else:
self.messagebox("GAGAL", "Data Gagal Di Update")

dan panggil fungsi update di atas pada button update seperti


gambar di bawah kemudian coba program. Apakah data berhasil
di update atau tidak.

memanggil fungsi update

 Menghapus Data

Sama seperti menyimpan data, untuk menghapus data juga kita


terlebih dahulu membuat fungsi delete untuk menghapus data
di database dengan query SQL DELETE. Dan memanggil fungsi
tersebut ketika meng-click button delete. Data yang diahapus
berdasarkan nama depan/first name nya.

Fungsi Hapus
def delete(self):
firstname = self.FirstName.text()
con = pymysql.connect(db='dbpython', user='root', passwd='',
host='localhost', port=3306, autocommit=True)
cur = con.cursor()
sql = "DELETE FROM data where first_name=%s"
data = cur.execute(sql, (firstname))
if (data):
self.messagebox("SUKSES", "Data Berhasil Di HAPUS")
else:
self.messagebox("GAGAL", "Data GAGAL Di HAPUS")

panggil fungsi delete di atas pada button DELETE seperti gambar


di bawah kemudian coba program. Apakah data berhasil di hapus
atau tidak.

memanggil fungsi delete


 Menghapus Isian

Pada desain di atas terdapat button CLEAR. Button ini berfungsi


untuk menghapus isian yang ada di dalam LineEdit. Script untuk
menghapus isian tersebut kita letakkan pada fungsi
clear. Berikut script fungsi clear tersebut

Fungsi clear
def clear(self):
self.FirstName.clear()
self.LastName.clear()
self.Address.clear()
self.Phone.clear()

panggil fungsi clear di atas pada button CLEAR seperti pada


button yang lain kemudian coba program. Apakah data isian
berhasil di hapus atau tidak.

Terakhir coba program dan fungsi-fungsi button nya, apabila


program yang temen-temen buat berjalan dengan lancar berarti
teman-teman berhasil membuat CRUD dan Koneksi Database
pada Aplikasi Desktop Python.

Next, kita akan belajar cara menampilkan data dari database ke


dalam tabel dan lain-lain. Apabila ada saran atau komentar bisa
komen saja di bawah. Terima kasih !!

116
6

Python

Database
Desktop

Sql

Tutorial

116
6

Follow

Published in Bandung Code

51 Followers

·Last published Jun 10, 2019

Programming Sharing tips and trick

Follow
Written by Rizal Saepul M

42 Followers

·8 Following

The Miracle Of Pray


Responses (6)
To respond to this story,
get the free Medium app.
Open in app

Rizal Saepul M

Author

over 3 years ago

Kemudian kita membuat fungsi koneksi. Berikut syntak fungsi


koneksi tersebut.
di tulis di file pythoncode nya gan(ektensi .py)

Indah Yunita

about 4 years ago


terima kasih kak artikelnya bermanfaat sekali, dilanjut lagi ya kak seri artikelnya, soalnya
sumber-sumber referensi tentang pyqt masih tergolong sedikit apalagi yang berbahasa
indonesia

1
1 reply

Sultan Raja Marlindo

over 5 years ago

lanjut gan hehe

1
1 reply
See all responses
More from Rizal Saepul M and Bandung Code

In
Bandung Code

by

Rizal Saepul M

#Python 1. Belajar Membuat Desain Aplikasi Destkop(GUI)


Menggunakan PyQt5-tools
Menurut Wikipedia, Python adalah bahasa pemrograman interpreatif multiguna
dengan filosofi perancangan yang berfokus pada tingkat…

Nov 27, 2018


In

Bandung Code

by

Teten Nugraha

Datatable di Reactjs
Hallo sahabat NgulikID selama sore semuanya, oke hari ini saya akan coba
menerangkan bagaimana caranya kita mengimplementasikan jquery…

Sep 10, 2018


In

Bandung Code

by

Teten Nugraha

Belajar Go 1. Pengenalan
Menurut wikipedia, Go Language adalah sebuah sebuah bahasa pemrograman
yang diciptakan Google pada tahun 2009 oleh Robert Griesemer, Rob…

Sep 14, 2018


In
Bandung Code

by

Teten Nugraha

Install Nativebase pada Expo Project — React Native


Assalamualaikum, pada artikel ini saya akan share cara-cara instalasi
Nativebase pada project React native berbasis Expo. Jika teman-teman…

Feb 14, 2019

See all from Rizal Saepul M

See all from Bandung Code


Recommended from Medium

Harendra
How I Am Using a Lifetime 100% Free Server
Get a server with 24 GB RAM + 4 CPU + 200 GB Storage + Always Free

Oct 26
In

DataDrivenInvestor

by

Austin Starks

I used OpenAI’s o1 model to develop a trading strategy. It is


DESTROYING the market
It literally took one try. I was shocked.

Sep 16

Lists

Coding & Development


11 stories·938 saves
Predictive Modeling w/ Python
20 stories·1724 saves

Practical Guides to Machine Learning


10 stories·2095 saves

ChatGPT
21 stories·915 saves
In

The Pythoneers

by

Abhay Parashar

17 Mindblowing GitHub Repositories You Never Knew Existed


Repositories To Bookmark Right Away

2d ago
Probir Sarkar
Database Performance Benchmark: PostgreSQL 17 vs. MySQL 9
vs. MongoDB 8
Not a member? Read for free

Dec 8

In

BRACKETS

by

Dmitry Bobryshev
Architectures of modern Front-end applications
This post explores the advantages of popular architectures and helps you
choose the best solution to meet your unique requirements.

Nov 5
Jessica Stillman

Jeff Bezos Says the 1-Hour Rule Makes Him Smarter. New
Neuroscience Says He’s Right
Jeff Bezos’s morning routine has long included the one-hour rule. New
neuroscience says yours probably should too.

Oct 30

See more recommendations

Anda mungkin juga menyukai