Skip to content Skip to sidebar Skip to footer

Widget Atas Posting

Bantu Support Dunia Programming dengan menonaktifkan Adsblock, atau gunakan browser tanpa block iklan, dan jangan lupa klik iklan yang ada disitus ini ya, agar website terus berkembang

Membuat GUI dengan Program Python CRUD Lengkap

Dunia Programming - Python merupakan bahasa pemrograman yang sekarang paling banyak dicari, namun banyak dari programmer pemula yang bingung apakah bisa python dijadikan sebagai aplikasi? jawabannya bisa, karena python nantinya akan menjadi sebuah aplikasi dengan multi device bisa android, dekstop maupun web.

Di tutorial kali ini saya akan memberikan penjelasan lengkap bagaimana cara membuat aplikasi dekstop menggunakan bahasa pemrograman python dengan metode CRUD lengkap.

Membuat GUI dengan Program Python CRUD Lengkap
Membuat GUI dengan Program Python CRUD Lengkap

Sebenarnya dari situs PyQt sendiri http://pyqt.sourceforge.net/Docs/PyQt5 sudah menyediakan tutorialnya, namun saya disini saya memberikan tutorial bahasa indonesia bagi para pemula atau yang belum pernah mencoba membuat aplikasi dari bahasa python ini.

Sebelum masuk ke pembasahan tentang pembuatan CRUD sistem menggunakan bahasa pemrograman python, kita bahas terlebih dahulu apa saja yang harus disiapkan.

Cara Install PyQt5 & PyQt5-tools

Pertama, langkah yang harus kita lakukan yaitu dengan menginstall PyQt5 terlebih dahulu. Untuk proses instalasinya menggunakan di CMD(command Prompt). Caranya buka CMD sebagai Administrator, lalu menuliskan script berikut lalu enter.
pip install pyqt5
tunggu hingga proses selesai. Selanjutnya install PyQt5-tools dengan menuliskan perintah berikut
pip install pyqt5-tools
tunggu hingga proses installasi selesai. Kemudian download file dibawah ini sekaligus lakukan instalasi, untuk linknya adalah sebagai berikut : http://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-5.4.1/PyQt5-5.4.1-gpl-Py3.4-Qt5.4.1-x64.exe

Untuk pengguna Windows disarankan juga menginstall WinPython denga link sebagai berikut : http://sourceforge.net/projects/winpython/files/WinPython_3.4/3.4.3.7/WinPython-64bit-3.4.3.7.exe/download 

File tersebut merupakan wadah yang berisi Python serta banyak juga paket Python pihak ke-3, PyQt, Qt Designer, IDE pengkodean yang disebut Spyder, dan IPython. 
 
Kemudian kita cek apakah package sudah benar terinstall di PC/Laptop kita dengan menuliskan script berikut
pip list
jika hasil ouput nya terdapat package bernama pyqt5 dan pyqt5-tools seperti ini, maka installasi berhasil. disamping itu juga kita harus mengecek apakah package PyQt5 sudah bisa diakses di Python-prompt. Caranya dengan menuliskan script berikut di Python-prompt
from PyQt5 import QtCore, QtGui, QtWidgets
jika output nya seperti ini / tidak terjadi error maka package sudah bisa diakses di python-prompt. 

Membuat Desain GUI Desktop 

Setelah kita install PyQt5, selanjutnya membuat desain GUI sederhana dengan menggunakan Qt Designer. Pasti kalian bertanya bukan apa sih Qt Designer itu dan apakah berfungsi sesuai yang nanti kita gunakan pada bahasa pemrograman python?.

Pengertian 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 kemudian open file untuk membuka aplikasi tersebut. Berikut tampilan aplikasi Qt Designer tampilan awal aplikasi 

Kemudian pilih Main Window dan create. Main Window Desain tampilan di atas adalah tampilan awal desain yang masih blank. 

Kita dapat mengedit desain tersebut dengan menambah atribut widgets seperti label, button, dan sebagainya dengan melakukan drag pada atribut-atribut widgets yang tersedia di sebelah kiri. 

Setelah selesai melakukan proses desain, simpan desain yang kalian buat tadi kedalam direktori Laptop ataupun Komputer kalian.

Ektensi yang digunakan dari file aplikasi tersebut menggunakan .ui 

Menjalankan Desain GUI di Python 

Untuk menjalankan Desain GUI yang telah dibuat tadi, kita harus melakukan convert file .ui yang kita simpan tadi ke dalam bentuk python code(.py) cara nya, buka cmd dan masuk ke direktori folder file yang sudah kita simpan tadi. 

Contoh untuk masuk ke direktori file :
pushd "E:\ProjectGUI\"
masuk ke direktori file Kemudian tuliskan script berikut
python -m PyQt5.uic.pyuic -x namafile.ui -o namafile.py
convert ui ke dalam python code untuk namafile sesuaikan dengan nama file yang sudah disimpan sebelumnya. Script di atas akan melakukan convert file .ui ke dalam bentuk file dengan ektensi .py. 

Sehingga di folder tadi akan terdapat file python nya juga. Untuk menjalankannya tuliskan script berikut
python namafile.py
atau membuka filenya melalui python-IDLE dan run. maka akan muncul tampilan window GUI yang telah kita buat tadi. 

Seperti gambar di bawah contoh tampilan GUI window yang muncul Apabila tampilan GUI yang tadi teman-teman buat dapat muncul berarti teman berhasil membuat tampilan GUI sederhana di python dengan menggunakan PyQt5-tools. 

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. 

Membuat Desain GUI

Kemudian langkah selanjutnya yaitu membuat desain tampilan GUI menggunakan Qt Designer. Buat lah desain seperti gambar berikut. 

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 kalian bisa baca di proses pertama bagian atas. 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 

Kemudian kita membuat fungsi koneksi. Berikut syntak fungsi koneksi tersebut. 

Fungsi Koneksi


def koneksi(self):
    con = pymysql.connect(db='aplikasi', 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()

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='aplikasi', 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

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='aplikasi', 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.

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='aplikasi', 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.

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='aplikasi', 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.

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.

Mungkin ini saja yang dapat saya jelaskan, mungkin nanti kita akan mencoba membuat aplikasi lebih dari 1 tabel beserta dengan login menggunakan bahasa pemrograman python.

Post a Comment for "Membuat GUI dengan Program Python CRUD Lengkap"