Anda di halaman 1dari 30

DASAR PEMROGRAMAN

TUGAS JOB SHEET 11


PROGRAM PENDAFTARAN SISWA

Mata Kuliah : Dasar Pemrograman


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

PROGRAM STUDI TEKNOLOGI REKAYASA KOMPUTER


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI SEMARANG
2020/2021
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


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 siswa.ui
9. Menjalankan desain GUI di python
10. Ganti file crud.ui menjadi crud.py
python -m PyQt5.uic.pyuic -x siswa.ui -o siswa.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 'siswa.ui'


#
# Created by: PyQt5 UI code generator 5.15.2
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.

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):
fullname = self.plainTextEdit.toPlainText()
dateborn = self.plainTextEdit_2.toPlainText()
address = self.plainTextEdit_3.toPlainText()
school = self.plainTextEdit_4.toPlainText()
insert = (fullname, dateborn, address, school)
print(insert)
con = pymysql.connect(db='dbython', user='root', passwd='', host='localhost', port=3306,
autocommit=True)
cur = con.cursor()
sql = "INSERT INTO dbython(full_name, date_born, address, school)" + \
"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):
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("")

def setupUi(self, MainWindow):


self.koneksi()
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")

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)

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"))

self.label.setText(_translate("MainWindow", "PENDAFTARAN SISWA"))


self.label_2.setText(_translate("MainWindow", "Full Name"))
self.label_3.setText(_translate("MainWindow", "Date Born"))
self.label_4.setText(_translate("MainWindow", "Address"))
self.label_5.setText(_translate("MainWindow", "School"))

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

PyQt merupakan aplikasi lintas-platform dan UI framework yang dipakai untuk


mengembangkan aplikasi-aplikasi GUI. PyQy dikenal juga sebagai toolkit
widget karena menyediakan sejumlah widget seperti  tombol, label, textbox dan
lain-lain yang diperlukan dalam merancang sebuah GUI.

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

Anda mungkin juga menyukai