Anda di halaman 1dari 25

DASAR PEMROGRAMAN

JOB SHEET 11:


GUI (GRAPHICAL USER INTERFACE) /
CREATE, READ, UPDATE, DELETE (CRUD)

Mata Kuliah : Dasar Pemrograman


Dosen : 1. Mardiyono, S. Kom., M. Sc
2. Angga Wahyu Wibowo, S.Kom., M.Eng
Disusun oleh
Nama :
NIM :

PROGRAM STUDI TEKNIK INFORMATIKA


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI SEMARANG
2019
I. Tujuan Instruksional Khusus
Setelah melakukan praktikum ini Mahasiswa mampu menerapkan sistem informasi
sederhana menggunakan GUI (Graphical User Interface) / create, read, update, delete
(CRUD).

II. Dasar Teori


PyQt adalah toolkit widget GUI. Ini adalah antarmuka Python untuk Qt, salah satu
pustaka GUI lintas-platform paling kuat dan populer. PyQt adalah perpaduan dari
bahasa pemrograman Python dan perpustakaan Qt. Tutorial pengantar ini akan
membantu Anda dalam membuat aplikasi grafis dengan bantuan PyQt.

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.

III. Alat dan Bahan


1. PC / Laptop
2. Software Anaconda
3. Anaconda Prompt

IV. Langkah Kerja / Percobaan


1. Cek Versi Python
python
Gambar 1. cek versi python

2. Download PyQt disesuaikan dengan versi python di PC / laptop anda

Gambar 2. cek versi python

3. Install PyQt
Gambar 3. Install PyQt

Gambar 4. Install PyQt

Gambar 5. Install PyQt


Gambar 6. Install PyQt

Gambar 7. Install PyQt

Gambar 8. Proses Install PyQt Selesai

4. Mengecek apakah PyQt sudah terinstal apa belum


Gambar 9. Cek Versi python

5. Install PyMySQL
pip install pymysql

Gambar 10. Proses Install pymysql

6. Pengecekan PyMySQL
Python
Import pymysql

Gambar 11. Cek versi python dan import pymysql

7. Membuat Desain GUI


membuat desain GUI sederhana dengan menggunakan Qt Designer. Qt Designer adalah
tools bawaan PyQt5. Tools ini dapat diakses di direktori sistem :
C:\Program Files\Python34\Lib\site-packages\PyQt5\designer.exe
Gambar 12. Tampilan Awal pyqt designer
8. Simpan dengan nama CRUD.ui
9. Menjalankan desain GUI di python

10. Ganti file crud.ui menjadi crud.py


python -m PyQt5.uic.pyuic -x crud.ui -o crud.py
11. Hasil dan buka file crud.py dengan text editor

12. Download XAMPP


 buka dan download di website ini
apachefriends.org/download.html
 Dobel klik file XAMPP yang baru saja Anda download, nanti selanjutnya akan
muncul jendela “installer language” seperti di bawah ini:

 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.

 klik tombol Finish untuk menyelesaikannya

 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.

13. Menjalankan Aplikasi XAMPP


 Bukalah aplikasi XAMPP, bisa melalui Start Menu atau Desktop

 Setelah terbuka, silahkan klik tombol Start pada kolom Action sehingga tombol


tersebut berubah menjadi Stop. Dengan mengklik tombol tersebut, artinya itulah
aplikasi yang dijalankan. Biasanya menggunakan XAMPP, yang saya start hanyalah
aplikasi Apache dan MySQL
 Sekarang bukalah browser kesukaan Anda, dan coba
ketikkan http://localhost/xampp di address bar. Jika muncul tampilan seperti gambar
di bawah ini, instalasi telah berhasil.

14. Pembuatan Database


 Akses localhost http://localhost/phpmyadmin/
 Klik Database
 Ketikan nama database dbython di field Database name dan klik create

 Ketikan nama table, dbython, number of columns 4, klik Go


 Buat tabel database seperti gambar berikut, klik Save

 Hasilnya sebagai berikut


15. Buka file crud.py dengan teks editor dan Ketikan kode berikut

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'crud.ui'


#
# Created by: PyQt5 UI code generator 5.6
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets


import pymysql
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 messagebox(self, title, message):


mess = QtWidgets.QMessageBox()
mess.setWindowTitle(title)
mess.setText(message)
mess.setStandardButtons(QtWidgets.QMessageBox.Ok)
mess.exec_()

def save(self):
firstname = self.plainTextEdit.toPlainText()
lastname = self.plainTextEdit_2.toPlainText()
address = self.plainTextEdit_3.toPlainText()
phone = self.plainTextEdit_4.toPlainText()
insert = (firstname, lastname, address, phone)
print(insert)
con = pymysql.connect(db='dbython', user='root', passwd='', host='localhost', port=3306,
autocommit=True)
cur = con.cursor()
sql = "INSERT INTO dbython(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")
def Tampil(self):
firstname = 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 first_name='"+str(firstname)+"'")
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):
firstname = self.plainTextEdit.toPlainText()
lastname = self.plainTextEdit_2.toPlainText()
address = self.plainTextEdit_3.toPlainText()
phone = 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 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", sql)
def delete(self):
firstname = 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 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")

def clear(self):
self.plainTextEdit.setPlainText("")
self.plainTextEdit_2.setPlainText("")
self.plainTextEdit_3.setPlainText("")
self.plainTextEdit_4.setPlainText("")

def setupUi(self, MainWindow):


self.koneksi()
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.plainTextEdit = QtWidgets.QPlainTextEdit(self.centralwidget)
self.plainTextEdit.setGeometry(QtCore.QRect(360, 70, 171, 21))
self.plainTextEdit.setObjectName("plainTextEdit")
self.plainTextEdit_2 = QtWidgets.QPlainTextEdit(self.centralwidget)
self.plainTextEdit_2.setGeometry(QtCore.QRect(360, 120, 171, 21))
self.plainTextEdit_2.setObjectName("plainTextEdit_2")
self.plainTextEdit_3 = QtWidgets.QPlainTextEdit(self.centralwidget)
self.plainTextEdit_3.setGeometry(QtCore.QRect(360, 160, 171, 121))
self.plainTextEdit_3.setObjectName("plainTextEdit_3")
self.plainTextEdit_4 = QtWidgets.QPlainTextEdit(self.centralwidget)
self.plainTextEdit_4.setGeometry(QtCore.QRect(360, 310, 171, 21))
self.plainTextEdit_4.setObjectName("plainTextEdit_4")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(240, 390, 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(360, 390, 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(480, 390, 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(590, 390, 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(550, 70, 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)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.pushButton.setText(_translate("MainWindow", "Save"))
self.pushButton_2.setText(_translate("MainWindow", "Update"))
self.pushButton_3.setText(_translate("MainWindow", "Delete"))
self.pushButton_4.setText(_translate("MainWindow", "Clear"))
self.pushButton_5.setText(_translate("MainWindow", "Check"))

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 Praktik
No Praktik Hasil Program
1. Install PyQt dan PyMySQL

2. Membuat desain GUI

3. Menjalankan file GUI di python

4. Merubah file crud.ui menjadi


crud.py
5. Install dan menjalankan Localhost
XAMPP
6. Pembuatan database dan tabel

7. Penulisan Kode

VI. Tugas Individu


1. Kerjakan hasil praktik di BAB V. Hasil Praktik
2. Sebuah sekolah ingin membuat sistem informasi tentang pendaftaran siswa baru.
Sistem ini digunakan untuk mendata calon siswa baru yang mendaftar di sekolah
tersebut. Mahasiswa Program Studi Teknik Informatika Jurusan Teknik Elektro
Polines mencoba ingin membuat sistem informasi tersebut. Hasil tersebut
didokumentasikan berbentuk video.
3. Buat Kesimpulan dari praktik anda di Bab VII. Kesimpulan.
VII. Kesimpulan
Buat kesimpulan dari praktek anda.
VIII. 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

Anda mungkin juga menyukai