Software XAMPP didirikan oleh suatu perusahaan bernama Apache Friends. Dengan
adanya beberapa tools pemrograman seperti MySQL, PHP dan Perl yang dimilikinya
tentu mengindikasikan jika anda menekuni salah satu atau semuanya berarti harus
memiliki software yang bernama XAMPP ini. Maksud dari Apache yakni selain
mengindikasikan nama pengembangnya juga merupakan suatu software yang
menghadirkan web server pada komputer anda layaknya web server sesungguhnya.
Apache adalah suatu software yang juga dikembangkan Apache Friends dengan tujuan
untuk membuat web server pribadi sehingga anda dapat membuat tampilan web yang
dinamis. Istilah ini biasa disebut Localhost. Sebagai suatu software yang bertindak
sebagai web server layaknya hosting sesungguhnya tentu saja melibatkan banyak
bagian – bagian penting yang ada pada XAMPP. Bagian-bagian tersebut berisi Htdocs,
phpmyadmin, dan control panel.
3. Install PyQt
Gambar 3. Install PyQt
5. Install PyMySQL
pip install pymysql
6. Pengecekan PyMySQL
Python
Import pymysql
Selanjutnya pilih bahasa. Pilih yang Bahasa Inggris (English). Klik OK.
Klik tombol Next.
Selanjutnya Anda akan diminta untuk memilih aplikasi yang mau diinstal. Centang
saja semua pilihan dan klik tombol Next.
Kemudian Anda akan diminta untuk menentukan lokasi folder penyimpanan file-file
dan folder XAMPP. Secara default akan diarahkan ke lokasi c:\xampp. Namun jika
Anda ingin menyimpannya di folder lain bisa klik browse dan tentukan secara manual
folder yang ingin digunakan. Jika sudah selesai, lanjutkan dan klik tombol Install.
Berikutnya, akan muncul jendela dialog seperti gambar di bawah ini yang
menanyakan Anda apakah mau langsung menjalankan aplikasi XAMPP atau tidak.
Jika ya, maka klik YES.
Klik Database
Ketikan nama database dbython di field Database name dan klik create
class Ui_MainWindow(object):
def koneksi(self):
con = pymysql.connect(db='dbython', 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")
def Tampil(self):
fullname = self.plainTextEdit.toPlainText()
db = pymysql.connect(db='dbython', user='root', passwd='', host='localhost', port=3306,
autocommit=True)
cursor = db.cursor()
cursor.execute("SELECT * FROM dbython WHERE full_name='"+str(fullname)+"'")
data = cursor.fetchall()
if (data):
for tp in data:
self.plainTextEdit.setPlainText("" + tp[0])
self.plainTextEdit_2.setPlainText("" + tp[1])
self.plainTextEdit_3.setPlainText("" + tp[2])
self.plainTextEdit_4.setPlainText("" + tp[3])
self.messagebox("INFO","Data Ada")
else:
self.messagebox("INFO", "Data belum ada")
def update(self):
fullname = self.plainTextEdit.toPlainText()
dateborn = self.plainTextEdit_2.toPlainText()
address = self.plainTextEdit_3.toPlainText()
school = self.plainTextEdit_4.toPlainText()
con = pymysql.connect(db='dbython', user='root', passwd='', host='localhost', port=3306,
autocommit=True)
cur = con.cursor()
sql = "UPDATE dbython SET date_born=%s, address=%s, school=%s WHERE
full_name=%s"
data = cur.execute(sql, (dateborn, address, school, fullname))
if (data):
self.messagebox("SUKSES", "Data Berhasil Di Update")
else:
self.messagebox("GAGAL", sql)
def delete(self):
fullname = self.plainTextEdit.toPlainText()
con = pymysql.connect(db='dbython', user='root', passwd='', host='localhost', port=3306,
autocommit=True)
cur = con.cursor()
sql = "DELETE FROM dbython where full_name=%s"
data = cur.execute(sql, (fullname))
if (data):
self.messagebox("SUKSES", "Data Berhasil Di HAPUS")
else:
self.messagebox("GAGAL", "Data GAGAL Di HAPUS")
def clear(self):
self.plainTextEdit.setPlainText("")
self.plainTextEdit_2.setPlainText("")
self.plainTextEdit_3.setPlainText("")
self.plainTextEdit_4.setPlainText("")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(320, 20, 331, 50))
self.label.setAutoFillBackground(False)
self.label.setObjectName("label")
font = QtGui.QFont()
font.setPointSize(25)
self.label.setFont(font)
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(190, 90, 171, 21))
self.label.setAutoFillBackground(False)
self.label.setObjectName("label_2")
self.label_3 = QtWidgets.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(190, 140, 171, 21))
self.label.setAutoFillBackground(False)
self.label.setObjectName("label_3")
self.label_4 = QtWidgets.QLabel(self.centralwidget)
self.label_4.setGeometry(QtCore.QRect(190, 180, 171, 21))
self.label.setAutoFillBackground(False)
self.label.setObjectName("label_4")
self.label_5 = QtWidgets.QLabel(self.centralwidget)
self.label_5.setGeometry(QtCore.QRect(190, 330, 171, 21))
self.label.setAutoFillBackground(False)
self.label.setObjectName("label_5")
self.plainTextEdit = QtWidgets.QPlainTextEdit(self.centralwidget)
self.plainTextEdit.setGeometry(QtCore.QRect(360, 90, 321, 21))
self.plainTextEdit.setObjectName("plainTextEdit")
self.plainTextEdit_2 = QtWidgets.QPlainTextEdit(self.centralwidget)
self.plainTextEdit_2.setGeometry(QtCore.QRect(360, 140, 321, 21))
self.plainTextEdit_2.setObjectName("plainTextEdit_2")
self.plainTextEdit_3 = QtWidgets.QPlainTextEdit(self.centralwidget)
self.plainTextEdit_3.setGeometry(QtCore.QRect(360, 180, 321, 121))
self.plainTextEdit_3.setObjectName("plainTextEdit_3")
self.plainTextEdit_4 = QtWidgets.QPlainTextEdit(self.centralwidget)
self.plainTextEdit_4.setGeometry(QtCore.QRect(360, 330, 321, 21))
self.plainTextEdit_4.setObjectName("plainTextEdit_4")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(190, 410, 75, 23))
self.pushButton.setObjectName("pushButton")
self.pushButton.clicked.connect(self.save)
self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(290, 410, 75, 23))
self.pushButton_2.setObjectName("pushButton_2")
self.pushButton_2.clicked.connect(self.update)
self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_3.setGeometry(QtCore.QRect(390, 410, 75, 23))
self.pushButton_3.setObjectName("pushButton_3")
self.pushButton_3.clicked.connect(self.delete)
self.pushButton_4 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_4.setGeometry(QtCore.QRect(490, 410, 75, 23))
self.pushButton_4.setObjectName("pushButton_4")
self.pushButton_4.clicked.connect(self.clear)
self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_5.setGeometry(QtCore.QRect(590, 410, 75, 23))
self.pushButton_5.setObjectName("pushButton_5")
self.pushButton_5.clicked.connect(self.Tampil)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
16. Jalankan programnya
Buka folder, dan klik cmd nya
phyton crud.py
V. Hasil
VI. Kesimpulan
Aplikasi Create, Read, Update, Detele (CRUD) adalah aplikasi standar yang pasti ada jika kita
ingin membuat aplikasi web dinamis. Dengan fungsi CRUD kita dapat melakukan manipulasi
data di dalam database melalui aplikasi yang dibuat. Pada tugas praktikum ini kita belajar
bagaimana membuat aplikasi CRUD dengan menggunakan Python dengan database yang
dipakai adalah MySQL. Untuk membuat aplikasi web CRUD di python kalian perlu
menyiapkan beberapa hal seperti:
Modul PyMySQL
PyMySQL merupakan salah satu interface atau modul yang tersedia di dalam
python, library ini berfungsi untuk menghubungkan ke server database mysql
dengan menggunakan python.
XAMPP
XAMPP adalah perangkat lunak bebas, yang mendukung banyak sistem operasi,
merupakan kompilasi dari beberapa program. Fungsinya adalah sebagai server yang
berdiri sendiri, yang terdiri atas program Apache HTTP Server, MySQL database, dan
penerjemah bahasa yang ditulis dengan bahasa pemrograman PHP dan Perl.
Modul PyQt
VII. Referensi
1. https://medium.com/ngulikid/https-medium-com-ngulikid-pyhton-2-belajar-crud-
koneksi-database-dengan-pymysql-3e29870c60e9
2. https://medium.com/ngulikid/python-1-belajar-membuat-desain-aplikasi-destkop-gui-
menggunakan-pyqt5-tools-5f0b894cba47