SlideShare a Scribd company logo
TECHNICAL REPORT
PRAKTIKUM PEMPROGRAMAN DEKSTOP
MODUL 8
Disusun Oleh :
TGL. PRAKTIKUM : 5 November 2019
NAMA : Adi Karna Wicitra
NIM : 180411100022
KELOMPOK : D2
ASISTEN : Sya‘ban
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA
2019
TECHNICAL REPORT
PRAKTIKUM PEMPROGRAMAN DEKSTOP
MODUL 8
A. Soal Tugas Praktikum
1. Buat program sesuai dengan listing diatas/di modul 8.
2. Lakukan pencarian berdasarkan firstname dan lastname
B. Jawaban Tugas Praktikum
1. Source code keseleruhan program dan sekaligus penjelasannya (setiap baris)
➢ Program pertama.
from PyQt5 import QtWidgets, uic, QtSql, QtCore
#Melakukan load library PyQt5. dalam contoh ini, kita juga meload class untuk
Uic dan QtWidgets,Qtsql. QCore
import sys
#Melakukan load sys
from PyQt5.QtSql import QSqlTableModel
#meload library class sql yaitu objek sqlTablemodel
class Ui(QtWidgets.QMainWindow):
#Membuat class Ui dengan parameter QtWidgets, QMainWindow
def __init__(self):
super(Ui, self).__init__()
#Inisialisasi dari class tersebut
self.model = QSqlTableModel()
#Objek QTableModel dideklarasikan
uic.loadUi('form06.ui', self)
#untuk menyambungkan dengan form06.ui
self.show()
#untuk menampilkan jendela
self.openDB()
#untuk manjalankan/mengkoneksikan database
self.model = QtSql.QSqlTableModel()
#Objek SQL dan QTableModel dideklarasikan
self.displaytable("")
#untuk menampilkan table
self.hapus.clicked.connect(self.remove)
#untuk menjalankan fungsi remove ketika objek push button dengan variable
self.hapus di klik/sambungkan.
self.addrow.clicked.connect(self.addrowempty)
#untuk menjalankan fungsi addrowempty ketika objek push button dengan
variable self.addrow di klik/sambungkan.
self.pushButtonCari.clicked.connect(self.cari)
#untuk menjalankan fungsi cari ketika objek push button dengan variable self.
pushButtonCari di klik/sambungkan.
def openDB(self): #method untuk mengkoneksi kan ke database
db = QtSql.QSqlDatabase.addDatabase('QSQLITE')
#menambahkan driver database yaitu QSQLITE dan dimasukkan dalam variabel
db
db.setDatabaseName('sports.db')
#memberi nama sports.db database yang ada di sql
if not db.open():
# memberi kondisi jika database apa sudah dimasukan sql atau belum
self.label.setText("connect db error")
###kondisi pertama ini jika data base di sql lite belum dibuka dan akan
menampilkan pesan eror
return False
else:
self.label.setText("connect db OK")
#kondisi kedua ini jika data base di sql lite sudah dibuka dan menampilkan pesan
terhubung
return True
def displaytable(self, p_filter):
#method ini digunakan untuk membaca isi table dan kemudian menampil kan isi
tabel ketableView.
if p_filter is "":
#ini menggunakan 1 parameter yang berisi kata yang di cari. Jika parameter ini
isinya kosong,maka method akan menampilkan semua isi tabel tanpa
menggunakan filter/penyaring.
self.model.setTable('sportsmen')
#membuat nama tabel di sql dengan nama sportsmen dan ditaruk di variabel model
print("no filter")
#dan akan menampilkan “no filter’’
else:
query = QtSql.QSqlQuery("select * from sportsmen "
"where firstname like '%"+p_filter + "%' ")
#sedangkan ini Query yang menggunakan filtel/penyaringan yang mana jika
kondisinya tidak kosong yaitu berupa imputan lineedit fist name dari user.
self.model.setTable("")
#set table ke model
self.model.setQuery(query)
#set Query ke model
print("select * from sportsmen "
"where firstname like '%"+p_filter + "%' ")
#maka diatas akan menampilkan query sesuai dengan filter mencari fist name
yang telah diimputkan di line edit.
self.model.setEditStrategy(QtSql.QSqlTableModel.OnFieldChange)
#Jenis enum ini menjelaskan strategi mana yang harus dipilih saat mengedit nilai
dalam database. Semua perubahan pada model akan diterapkan segera ke database.
#sementara Menetapkan strategi untuk mengedit nilai dalam database ke strategi .
Ini akan mengembalikan semua perubahan yang tertunda
self.model.select()
self.model.setHeaderData(0, QtCore.Qt.Horizontal, "ID")
#membuat kolom first name pada kolom ke 0
self.model.setHeaderData(1, QtCore.Qt.Horizontal, "First name")
#membuat kolom first name pada kolom ke 1
self.model.setHeaderData(2, QtCore.Qt.Horizontal, "Last name")
#membuat kolom last name pada kolom ke 2
#untuk menampilkan dan membuat table baris secara horizontal yang berisi ID,
first name, dan last name..
self.tableView.setModel(self.model)
#untuk menampilkan table dalam objek table view
def addrowempty(self):
self.model.rowCount()
ret = self.model.insertRows(self.model.rowCount(), 1)
#pada methold ini terdapat fungsi untuk menambahkan 1 baris kosong pada tabel
ketika tombol add dijalankan.
def remove(self):
self.model.removeRow(self.tableView.currentIndex().row())
self.displaytable("")
# pada methold ini terdapat fungsi untuk menghapus baris tabel yang yang dipilih
ketika tombol delete/hapus dijalankan.
def cari(self):
cari = self.lineEditCari.text()
self.displaytable(cari)
#method ini akan dijalankan ketika tombol cari di klik. Method ini akan
memanggil method displaytable dengan parameter kata yang akan dicari.
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
window = Ui()
app.exec_()
#ini adalah main program buat manggil class dan metholdnya
➢ Program kedua.
from PyQt5 import QtWidgets, uic, QtSql, QtCore
#Melakukan load library PyQt5. dalam contoh ini, kita juga meload class untuk Uic
dan QtWidgets,Qtsql. QCore
import sys
#Melakukan load sys
from PyQt5.QtSql import QSqlTableModel
#meload library class sql yaitu objek sqlTablemodel
class Ui(QtWidgets.QMainWindow):
#Membuat class Ui dengan parameter QtWidgets, QMainWindow
def __init__(self):
super(Ui, self).__init__()
#Inisialisasi dari class tersebut
self.model = QSqlTableModel()
uic.loadUi('form.ui', self)
#untuk menyambungkan dengan form.ui
self.show()
#untuk menampilkan jendela
self.openDB()
#untuk manjalankan/mengkoneksikan database
self.model = QtSql.QSqlTableModel()
#Objek QTableModel dideklarasikan
self.displaytable("")
#untuk menampilkan table
self.hapus.clicked.connect(self.remove)
#untuk menjalankan fungsi remove ketika objek push button dengan variable
self.hapus di klik/sambungkan.
self.addrow.clicked.connect(self.addrowempty)
#untuk menjalankan fungsi addrowempty ketika objek push button dengan variable
self.addrow di klik/sambungkan.
self.pushButton.clicked.connect(self.cari)
#untuk menjalankan fungsi cari ketika objek push button dengan variable self.
pushButton di klik/sambungkan.
self.pushButton_2.clicked.connect(self.cari2)
#untuk menjalankan fungsi cari2 ketika objek push button dengan variable self.
pushButton_2 di klik/sambungkan
def openDB(self): #method untuk mengkoneksi kan ke database
db = QtSql.QSqlDatabase.addDatabase('QSQLITE')
#menambahkan driver database yaitu QSQLITE dan dimasukkan dalam variabel db
db.setDatabaseName('tugas.db')
#memberi nama tugas.db database yang ada di sql
if not db.open():
# memberi kondisi jika database apa sudah dimasukan sql atau belum
self.label.setText("connect db error")
###kondisi pertama ini jika data base di sql lite belum dibuka dan menampilkan
pesan eror
return False
else:
self.label.setText("connect db OK")
#kondisi kedua ini jika data base di sql lite sudah dibuka dan menampilkan pesan
terhubung
return True
def displaytable(self, p_filter):
#method ini digunakan untuk membaca isi table dan kemudian menampil kan isi
tabel ketableView.
if p_filter is "":
#ini menggunakan 1 parameter yang berisi kata yang di cari. Jika parameter ini
isinya kosong,maka method akan menampilkan semua isi tabel tanpa menggunakan
filter/penyaring.
self.model.setTable('data')
#membuat nama tabel di sql dengan nama data dan ditaruk di variabel model
print("no filter")
#dan akan menampilkan “no filter’’
else:
if p_filter == self.lineEdit.text():
#sedangkan ini menggunakan filtel/penyaringan yang mana jika kondisinya line
edit tidak kosong yaitu berupa imputan lineedit pertama user.
query = QtSql.QSqlQuery("select * from data
""where firstname like '%"+p_filter + "%' ")
#inilah perintah Query yang sebagai filter atau penyaringan untuk mencri fistname
self.model.setTable("")
#set table ke self.model
self.model.setQuery(query)
#set Query ke self.model
print("select * from sportsmen ""where firstname like
'%"+p_filter + "%' ")
#maka diatas akan menampilkan query sesuai dengan filter mencari fist name yang
telah diimputkan di line edit.
if p_filter == self.lineEdit_2.text():
#ini sama untuk lineedit lastname yaitu menggunakan filtel/penyaringan yang mana
jika kondisinya tidak kosong
query = QtSql.QSqlQuery("select * from data
""where lastname like '%"+p_filter + "%' ")
#maka diatas akan mecari query untuk mencari last name.
self.model.setTable("")
#set table ke self.model
self.model.setQuery(query)
#set Query ke self.model
print("select * from sportsmen ""where lastname like
'%"+p_filter + "%' ")
#jadi kesimpulanya Jika parameter filter diisi, maka cara menampilkan data
menggunakan query dan data yang tampil adalah yang memenuhi query yang
diinputkan.
self.model.setEditStrategy(QtSql.QSqlTableModel.OnFieldChange)
#Jenis enum ini menjelaskan strategi mana yang harus dipilih saat mengedit nilai
dalam database. Semua perubahan pada model akan diterapkan segera ke database.
#sementara Menetapkan strategi untuk mengedit nilai dalam database ke strategi .
Ini akan mengembalikan semua perubahan yang tertunda
self.model.select()
self.model.setHeaderData(0, QtCore.Qt.Horizontal, "ID")
#membuat kolom id pada kolom ke 0
self.model.setHeaderData(1, QtCore.Qt.Horizontal, "Firstname")
#membuat kolom first name pada kolom ke 1
self.model.setHeaderData(2, QtCore.Qt.Horizontal, "Lastname")
#membuat kolom last name pada kolom ke 2
#untuk menampilkan dan membuat table baris secara horizontal yang berisi ID,
first name, dan last name..
self.tableView.setModel(self.model)
#untuk menampilkan table dalam objek table view
def addrowempty(self):
self.model.rowCount()
ret = self.model.insertRows(self.model.rowCount(), 1)
#pada methold ini terdapat fungsi untuk menambahkan 1 baris kosong pada tabel
ketika tombol add dijalankan.
def remove(self):
self.model.removeRow(self.tableView.currentIndex().row())
self.displaytable("")
# pada methold ini terdapat fungsi untuk menghapus baris tabel yang yang dipilih
ketika tombol delete/hapus dijalankan.
def cari(self):
cari = self.lineEdit.text()
self.displaytable(cari)
#method ini akan dijalankan ketika tombol cari di klik. Method ini akan memanggil
method displaytable dengan parameter kata yang akan dicari.
def cari2(self):
cari = self.lineEdit_2.text()
self.displaytable(cari)
#method ini akan dijalankan ketika tombol cari di klik. Method ini akan memanggil
method displaytable dengan parameter kata yang akan dicari.
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
window = Ui()
app.exec_()
#ini adalah main program buat manggil class dan metholdnya
2. Screen Hasil Run Program
➢ Program pertama.
➢ Program kedua.
• Mencari First Name
• Mencari Last name

More Related Content

Similar to 180411100022 adi karna wicitra modul8

Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Debby Ummul
 
Algoritma dan Struktur Data
Algoritma dan Struktur DataAlgoritma dan Struktur Data
Algoritma dan Struktur Data
As Faizin
 
Modul ix dan x algo
Modul ix dan x algoModul ix dan x algo
Modul ix dan x algo
STMIK AKAKOM
 
Laporan Praktikum Pertemuan 1, PBO
Laporan Praktikum Pertemuan 1, PBOLaporan Praktikum Pertemuan 1, PBO
Laporan Praktikum Pertemuan 1, PBO
setyadi_s
 
F 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajriF 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajri
Syarif Fudin
 
Jeni Web Programming Bab 15 J2 Ee Design Pattern
Jeni Web Programming Bab 15 J2 Ee Design PatternJeni Web Programming Bab 15 J2 Ee Design Pattern
Jeni Web Programming Bab 15 J2 Ee Design Pattern
Individual Consultants
 
Laporan praktikum modul vii
Laporan praktikum modul viiLaporan praktikum modul vii
Laporan praktikum modul vii
Devi Apriansyah
 
Laporan praktikum jawaban 10 algoritma(1)
Laporan praktikum jawaban 10 algoritma(1)Laporan praktikum jawaban 10 algoritma(1)
Laporan praktikum jawaban 10 algoritma(1)
Polytechnic State Semarang
 
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptxPEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
BBXSQUAD
 
Cara membuat fungsi dan prosedur pada java
Cara membuat fungsi dan prosedur pada javaCara membuat fungsi dan prosedur pada java
Cara membuat fungsi dan prosedur pada java
Devandy Enda
 
TUGAS DPP PEMOGRAMAN C++
TUGAS DPP PEMOGRAMAN C++TUGAS DPP PEMOGRAMAN C++
TUGAS DPP PEMOGRAMAN C++
28NiLuhPutuGhesiaAng
 
MatrikulasiJava.pdf
MatrikulasiJava.pdfMatrikulasiJava.pdf
MatrikulasiJava.pdf
FathiaAlishaFauzia
 
Modul xi dan xii algo
Modul xi dan xii algoModul xi dan xii algo
Modul xi dan xii algo
STMIK AKAKOM
 
Pertemuan 09 (procedure dan function database)
Pertemuan 09 (procedure dan function database)Pertemuan 09 (procedure dan function database)
Pertemuan 09 (procedure dan function database)
Rifky A Ayub
 
Technical Odoo 15 Sesi 1.pptx
Technical Odoo 15 Sesi 1.pptxTechnical Odoo 15 Sesi 1.pptx
Technical Odoo 15 Sesi 1.pptx
SyifaFauziahJuliyanz
 
fungsi algoritma
fungsi algoritmafungsi algoritma
fungsi algoritma
Dhan junkie
 
Praktikum
PraktikumPraktikum
Praktikum
inggar tri
 
Laporan PBO pratikum 2
Laporan PBO pratikum 2Laporan PBO pratikum 2
Laporan PBO pratikum 2rahmi wahyuni
 
Ringkasan materi teori algoritma
Ringkasan materi teori algoritmaRingkasan materi teori algoritma
Ringkasan materi teori algoritma
Akhmad Asari
 
Tutorial Aplikasi android client server menggunakan REST API Django
Tutorial Aplikasi android client server menggunakan REST API DjangoTutorial Aplikasi android client server menggunakan REST API Django
Tutorial Aplikasi android client server menggunakan REST API Django
Abdul Aziz Subayu
 

Similar to 180411100022 adi karna wicitra modul8 (20)

Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
 
Algoritma dan Struktur Data
Algoritma dan Struktur DataAlgoritma dan Struktur Data
Algoritma dan Struktur Data
 
Modul ix dan x algo
Modul ix dan x algoModul ix dan x algo
Modul ix dan x algo
 
Laporan Praktikum Pertemuan 1, PBO
Laporan Praktikum Pertemuan 1, PBOLaporan Praktikum Pertemuan 1, PBO
Laporan Praktikum Pertemuan 1, PBO
 
F 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajriF 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajri
 
Jeni Web Programming Bab 15 J2 Ee Design Pattern
Jeni Web Programming Bab 15 J2 Ee Design PatternJeni Web Programming Bab 15 J2 Ee Design Pattern
Jeni Web Programming Bab 15 J2 Ee Design Pattern
 
Laporan praktikum modul vii
Laporan praktikum modul viiLaporan praktikum modul vii
Laporan praktikum modul vii
 
Laporan praktikum jawaban 10 algoritma(1)
Laporan praktikum jawaban 10 algoritma(1)Laporan praktikum jawaban 10 algoritma(1)
Laporan praktikum jawaban 10 algoritma(1)
 
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptxPEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
 
Cara membuat fungsi dan prosedur pada java
Cara membuat fungsi dan prosedur pada javaCara membuat fungsi dan prosedur pada java
Cara membuat fungsi dan prosedur pada java
 
TUGAS DPP PEMOGRAMAN C++
TUGAS DPP PEMOGRAMAN C++TUGAS DPP PEMOGRAMAN C++
TUGAS DPP PEMOGRAMAN C++
 
MatrikulasiJava.pdf
MatrikulasiJava.pdfMatrikulasiJava.pdf
MatrikulasiJava.pdf
 
Modul xi dan xii algo
Modul xi dan xii algoModul xi dan xii algo
Modul xi dan xii algo
 
Pertemuan 09 (procedure dan function database)
Pertemuan 09 (procedure dan function database)Pertemuan 09 (procedure dan function database)
Pertemuan 09 (procedure dan function database)
 
Technical Odoo 15 Sesi 1.pptx
Technical Odoo 15 Sesi 1.pptxTechnical Odoo 15 Sesi 1.pptx
Technical Odoo 15 Sesi 1.pptx
 
fungsi algoritma
fungsi algoritmafungsi algoritma
fungsi algoritma
 
Praktikum
PraktikumPraktikum
Praktikum
 
Laporan PBO pratikum 2
Laporan PBO pratikum 2Laporan PBO pratikum 2
Laporan PBO pratikum 2
 
Ringkasan materi teori algoritma
Ringkasan materi teori algoritmaRingkasan materi teori algoritma
Ringkasan materi teori algoritma
 
Tutorial Aplikasi android client server menggunakan REST API Django
Tutorial Aplikasi android client server menggunakan REST API DjangoTutorial Aplikasi android client server menggunakan REST API Django
Tutorial Aplikasi android client server menggunakan REST API Django
 

Recently uploaded

Aksi Nyata Buku Non Teks Bermutu Dan Manfaatnya .pdf
Aksi Nyata Buku Non Teks Bermutu Dan Manfaatnya .pdfAksi Nyata Buku Non Teks Bermutu Dan Manfaatnya .pdf
Aksi Nyata Buku Non Teks Bermutu Dan Manfaatnya .pdf
DenysErlanders
 
(Fase B ) - Gaya Hidup Berkelanjutan (P5).docx
(Fase B ) - Gaya Hidup Berkelanjutan (P5).docx(Fase B ) - Gaya Hidup Berkelanjutan (P5).docx
(Fase B ) - Gaya Hidup Berkelanjutan (P5).docx
BAHTIARMUHAMAD
 
PEMBELAJARAN BERDIFERENSIASI kelas. pptx
PEMBELAJARAN BERDIFERENSIASI kelas. pptxPEMBELAJARAN BERDIFERENSIASI kelas. pptx
PEMBELAJARAN BERDIFERENSIASI kelas. pptx
dwiwahyuningsih74
 
laporan komunitas belajar sekolah dasar negeri botoputih
laporan komunitas belajar sekolah dasar negeri botoputihlaporan komunitas belajar sekolah dasar negeri botoputih
laporan komunitas belajar sekolah dasar negeri botoputih
SDNBotoputih
 
Modul Ajar PJOK Kelas 4 Fase B Kurikulum Merdeka
Modul Ajar PJOK Kelas 4 Fase B Kurikulum MerdekaModul Ajar PJOK Kelas 4 Fase B Kurikulum Merdeka
Modul Ajar PJOK Kelas 4 Fase B Kurikulum Merdeka
Fathan Emran
 
PPT KRITERIA KENAIKAN KELAS & KELULUSAN.pptx
PPT KRITERIA KENAIKAN KELAS & KELULUSAN.pptxPPT KRITERIA KENAIKAN KELAS & KELULUSAN.pptx
PPT KRITERIA KENAIKAN KELAS & KELULUSAN.pptx
SriKuntjoro1
 
Modul Ajar PJOK Kelas 1 Fase A Kurikulum Merdeka
Modul Ajar PJOK Kelas 1 Fase A Kurikulum MerdekaModul Ajar PJOK Kelas 1 Fase A Kurikulum Merdeka
Modul Ajar PJOK Kelas 1 Fase A Kurikulum Merdeka
Fathan Emran
 
Modul Ajar Bahasa Inggris Kelas 11 Fase F Kurikulum Merdeka
Modul Ajar Bahasa Inggris Kelas 11 Fase F Kurikulum MerdekaModul Ajar Bahasa Inggris Kelas 11 Fase F Kurikulum Merdeka
Modul Ajar Bahasa Inggris Kelas 11 Fase F Kurikulum Merdeka
Fathan Emran
 
Projek Penguatan Profil Pelajar Pancasila SD.pdf.pdf
Projek Penguatan Profil Pelajar Pancasila SD.pdf.pdfProjek Penguatan Profil Pelajar Pancasila SD.pdf.pdf
Projek Penguatan Profil Pelajar Pancasila SD.pdf.pdf
anikdwihariyanti
 
Modul Ajar Biologi Kelas 10 Fase E Kurikulum Merdeka
Modul Ajar Biologi Kelas 10 Fase E Kurikulum MerdekaModul Ajar Biologi Kelas 10 Fase E Kurikulum Merdeka
Modul Ajar Biologi Kelas 10 Fase E Kurikulum Merdeka
Fathan Emran
 
5. Rangkuman Kehadiran Guru di Kelas_SDN 8n Kranji.docx
5. Rangkuman Kehadiran Guru di Kelas_SDN 8n Kranji.docx5. Rangkuman Kehadiran Guru di Kelas_SDN 8n Kranji.docx
5. Rangkuman Kehadiran Guru di Kelas_SDN 8n Kranji.docx
StevanusOkiRudySusan
 
PPT RENCANA AKSI 2 modul ajar matematika berdiferensiasi kelas 1
PPT RENCANA AKSI 2 modul ajar matematika berdiferensiasi kelas 1PPT RENCANA AKSI 2 modul ajar matematika berdiferensiasi kelas 1
PPT RENCANA AKSI 2 modul ajar matematika berdiferensiasi kelas 1
Arumdwikinasih
 
Selamat "Hari Raya_Idul Adha 1445H / 2024H".
Selamat "Hari Raya_Idul Adha 1445H / 2024H".Selamat "Hari Raya_Idul Adha 1445H / 2024H".
Selamat "Hari Raya_Idul Adha 1445H / 2024H".
Kanaidi ken
 
RANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pdf.pdf
RANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pdf.pdfRANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pdf.pdf
RANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pdf.pdf
OswaldusDiwaDoka
 
Perangkat pembelajaran dalam kurikulum merdeka
Perangkat pembelajaran dalam kurikulum merdekaPerangkat pembelajaran dalam kurikulum merdeka
Perangkat pembelajaran dalam kurikulum merdeka
AchmadArifudin3
 
Mengenali Usia anak dan Kekerasan pada Anak
Mengenali Usia anak dan Kekerasan pada AnakMengenali Usia anak dan Kekerasan pada Anak
Mengenali Usia anak dan Kekerasan pada Anak
Yayasan Pusat Kajian dan Perlindungan Anak
 
1. Sosialisasi_Serdos_2024_PSD_PTU dan Peserta.pdf
1. Sosialisasi_Serdos_2024_PSD_PTU dan Peserta.pdf1. Sosialisasi_Serdos_2024_PSD_PTU dan Peserta.pdf
1. Sosialisasi_Serdos_2024_PSD_PTU dan Peserta.pdf
denny404455
 
Modul Ajar Bahasa Indonesia Kelas 11 Fase F Kurikulum Merdeka
Modul Ajar Bahasa Indonesia Kelas 11 Fase F Kurikulum MerdekaModul Ajar Bahasa Indonesia Kelas 11 Fase F Kurikulum Merdeka
Modul Ajar Bahasa Indonesia Kelas 11 Fase F Kurikulum Merdeka
Fathan Emran
 
pdf-powerpoint-kesehatan-reproduksi-remaja-ppt-kespro-remaja-_compress (1).pptx
pdf-powerpoint-kesehatan-reproduksi-remaja-ppt-kespro-remaja-_compress (1).pptxpdf-powerpoint-kesehatan-reproduksi-remaja-ppt-kespro-remaja-_compress (1).pptx
pdf-powerpoint-kesehatan-reproduksi-remaja-ppt-kespro-remaja-_compress (1).pptx
vivi211570
 
Modul Projek Gaya Hidup Berkelanjutan - Peduli Sampah Selamatkan Generasi - F...
Modul Projek Gaya Hidup Berkelanjutan - Peduli Sampah Selamatkan Generasi - F...Modul Projek Gaya Hidup Berkelanjutan - Peduli Sampah Selamatkan Generasi - F...
Modul Projek Gaya Hidup Berkelanjutan - Peduli Sampah Selamatkan Generasi - F...
AdeSutisna19
 

Recently uploaded (20)

Aksi Nyata Buku Non Teks Bermutu Dan Manfaatnya .pdf
Aksi Nyata Buku Non Teks Bermutu Dan Manfaatnya .pdfAksi Nyata Buku Non Teks Bermutu Dan Manfaatnya .pdf
Aksi Nyata Buku Non Teks Bermutu Dan Manfaatnya .pdf
 
(Fase B ) - Gaya Hidup Berkelanjutan (P5).docx
(Fase B ) - Gaya Hidup Berkelanjutan (P5).docx(Fase B ) - Gaya Hidup Berkelanjutan (P5).docx
(Fase B ) - Gaya Hidup Berkelanjutan (P5).docx
 
PEMBELAJARAN BERDIFERENSIASI kelas. pptx
PEMBELAJARAN BERDIFERENSIASI kelas. pptxPEMBELAJARAN BERDIFERENSIASI kelas. pptx
PEMBELAJARAN BERDIFERENSIASI kelas. pptx
 
laporan komunitas belajar sekolah dasar negeri botoputih
laporan komunitas belajar sekolah dasar negeri botoputihlaporan komunitas belajar sekolah dasar negeri botoputih
laporan komunitas belajar sekolah dasar negeri botoputih
 
Modul Ajar PJOK Kelas 4 Fase B Kurikulum Merdeka
Modul Ajar PJOK Kelas 4 Fase B Kurikulum MerdekaModul Ajar PJOK Kelas 4 Fase B Kurikulum Merdeka
Modul Ajar PJOK Kelas 4 Fase B Kurikulum Merdeka
 
PPT KRITERIA KENAIKAN KELAS & KELULUSAN.pptx
PPT KRITERIA KENAIKAN KELAS & KELULUSAN.pptxPPT KRITERIA KENAIKAN KELAS & KELULUSAN.pptx
PPT KRITERIA KENAIKAN KELAS & KELULUSAN.pptx
 
Modul Ajar PJOK Kelas 1 Fase A Kurikulum Merdeka
Modul Ajar PJOK Kelas 1 Fase A Kurikulum MerdekaModul Ajar PJOK Kelas 1 Fase A Kurikulum Merdeka
Modul Ajar PJOK Kelas 1 Fase A Kurikulum Merdeka
 
Modul Ajar Bahasa Inggris Kelas 11 Fase F Kurikulum Merdeka
Modul Ajar Bahasa Inggris Kelas 11 Fase F Kurikulum MerdekaModul Ajar Bahasa Inggris Kelas 11 Fase F Kurikulum Merdeka
Modul Ajar Bahasa Inggris Kelas 11 Fase F Kurikulum Merdeka
 
Projek Penguatan Profil Pelajar Pancasila SD.pdf.pdf
Projek Penguatan Profil Pelajar Pancasila SD.pdf.pdfProjek Penguatan Profil Pelajar Pancasila SD.pdf.pdf
Projek Penguatan Profil Pelajar Pancasila SD.pdf.pdf
 
Modul Ajar Biologi Kelas 10 Fase E Kurikulum Merdeka
Modul Ajar Biologi Kelas 10 Fase E Kurikulum MerdekaModul Ajar Biologi Kelas 10 Fase E Kurikulum Merdeka
Modul Ajar Biologi Kelas 10 Fase E Kurikulum Merdeka
 
5. Rangkuman Kehadiran Guru di Kelas_SDN 8n Kranji.docx
5. Rangkuman Kehadiran Guru di Kelas_SDN 8n Kranji.docx5. Rangkuman Kehadiran Guru di Kelas_SDN 8n Kranji.docx
5. Rangkuman Kehadiran Guru di Kelas_SDN 8n Kranji.docx
 
PPT RENCANA AKSI 2 modul ajar matematika berdiferensiasi kelas 1
PPT RENCANA AKSI 2 modul ajar matematika berdiferensiasi kelas 1PPT RENCANA AKSI 2 modul ajar matematika berdiferensiasi kelas 1
PPT RENCANA AKSI 2 modul ajar matematika berdiferensiasi kelas 1
 
Selamat "Hari Raya_Idul Adha 1445H / 2024H".
Selamat "Hari Raya_Idul Adha 1445H / 2024H".Selamat "Hari Raya_Idul Adha 1445H / 2024H".
Selamat "Hari Raya_Idul Adha 1445H / 2024H".
 
RANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pdf.pdf
RANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pdf.pdfRANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pdf.pdf
RANCANGAN TINDAKAN AKSI NYATA MODUL 1.4.pdf.pdf
 
Perangkat pembelajaran dalam kurikulum merdeka
Perangkat pembelajaran dalam kurikulum merdekaPerangkat pembelajaran dalam kurikulum merdeka
Perangkat pembelajaran dalam kurikulum merdeka
 
Mengenali Usia anak dan Kekerasan pada Anak
Mengenali Usia anak dan Kekerasan pada AnakMengenali Usia anak dan Kekerasan pada Anak
Mengenali Usia anak dan Kekerasan pada Anak
 
1. Sosialisasi_Serdos_2024_PSD_PTU dan Peserta.pdf
1. Sosialisasi_Serdos_2024_PSD_PTU dan Peserta.pdf1. Sosialisasi_Serdos_2024_PSD_PTU dan Peserta.pdf
1. Sosialisasi_Serdos_2024_PSD_PTU dan Peserta.pdf
 
Modul Ajar Bahasa Indonesia Kelas 11 Fase F Kurikulum Merdeka
Modul Ajar Bahasa Indonesia Kelas 11 Fase F Kurikulum MerdekaModul Ajar Bahasa Indonesia Kelas 11 Fase F Kurikulum Merdeka
Modul Ajar Bahasa Indonesia Kelas 11 Fase F Kurikulum Merdeka
 
pdf-powerpoint-kesehatan-reproduksi-remaja-ppt-kespro-remaja-_compress (1).pptx
pdf-powerpoint-kesehatan-reproduksi-remaja-ppt-kespro-remaja-_compress (1).pptxpdf-powerpoint-kesehatan-reproduksi-remaja-ppt-kespro-remaja-_compress (1).pptx
pdf-powerpoint-kesehatan-reproduksi-remaja-ppt-kespro-remaja-_compress (1).pptx
 
Modul Projek Gaya Hidup Berkelanjutan - Peduli Sampah Selamatkan Generasi - F...
Modul Projek Gaya Hidup Berkelanjutan - Peduli Sampah Selamatkan Generasi - F...Modul Projek Gaya Hidup Berkelanjutan - Peduli Sampah Selamatkan Generasi - F...
Modul Projek Gaya Hidup Berkelanjutan - Peduli Sampah Selamatkan Generasi - F...
 

180411100022 adi karna wicitra modul8

  • 1. TECHNICAL REPORT PRAKTIKUM PEMPROGRAMAN DEKSTOP MODUL 8 Disusun Oleh : TGL. PRAKTIKUM : 5 November 2019 NAMA : Adi Karna Wicitra NIM : 180411100022 KELOMPOK : D2 ASISTEN : Sya‘ban JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS TRUNOJOYO MADURA 2019
  • 2. TECHNICAL REPORT PRAKTIKUM PEMPROGRAMAN DEKSTOP MODUL 8 A. Soal Tugas Praktikum 1. Buat program sesuai dengan listing diatas/di modul 8. 2. Lakukan pencarian berdasarkan firstname dan lastname B. Jawaban Tugas Praktikum 1. Source code keseleruhan program dan sekaligus penjelasannya (setiap baris) ➢ Program pertama. from PyQt5 import QtWidgets, uic, QtSql, QtCore #Melakukan load library PyQt5. dalam contoh ini, kita juga meload class untuk Uic dan QtWidgets,Qtsql. QCore import sys #Melakukan load sys from PyQt5.QtSql import QSqlTableModel #meload library class sql yaitu objek sqlTablemodel class Ui(QtWidgets.QMainWindow): #Membuat class Ui dengan parameter QtWidgets, QMainWindow def __init__(self): super(Ui, self).__init__() #Inisialisasi dari class tersebut self.model = QSqlTableModel() #Objek QTableModel dideklarasikan uic.loadUi('form06.ui', self) #untuk menyambungkan dengan form06.ui self.show() #untuk menampilkan jendela self.openDB() #untuk manjalankan/mengkoneksikan database self.model = QtSql.QSqlTableModel() #Objek SQL dan QTableModel dideklarasikan
  • 3. self.displaytable("") #untuk menampilkan table self.hapus.clicked.connect(self.remove) #untuk menjalankan fungsi remove ketika objek push button dengan variable self.hapus di klik/sambungkan. self.addrow.clicked.connect(self.addrowempty) #untuk menjalankan fungsi addrowempty ketika objek push button dengan variable self.addrow di klik/sambungkan. self.pushButtonCari.clicked.connect(self.cari) #untuk menjalankan fungsi cari ketika objek push button dengan variable self. pushButtonCari di klik/sambungkan. def openDB(self): #method untuk mengkoneksi kan ke database db = QtSql.QSqlDatabase.addDatabase('QSQLITE') #menambahkan driver database yaitu QSQLITE dan dimasukkan dalam variabel db db.setDatabaseName('sports.db') #memberi nama sports.db database yang ada di sql if not db.open(): # memberi kondisi jika database apa sudah dimasukan sql atau belum self.label.setText("connect db error") ###kondisi pertama ini jika data base di sql lite belum dibuka dan akan menampilkan pesan eror return False else: self.label.setText("connect db OK") #kondisi kedua ini jika data base di sql lite sudah dibuka dan menampilkan pesan terhubung return True def displaytable(self, p_filter): #method ini digunakan untuk membaca isi table dan kemudian menampil kan isi tabel ketableView. if p_filter is "":
  • 4. #ini menggunakan 1 parameter yang berisi kata yang di cari. Jika parameter ini isinya kosong,maka method akan menampilkan semua isi tabel tanpa menggunakan filter/penyaring. self.model.setTable('sportsmen') #membuat nama tabel di sql dengan nama sportsmen dan ditaruk di variabel model print("no filter") #dan akan menampilkan “no filter’’ else: query = QtSql.QSqlQuery("select * from sportsmen " "where firstname like '%"+p_filter + "%' ") #sedangkan ini Query yang menggunakan filtel/penyaringan yang mana jika kondisinya tidak kosong yaitu berupa imputan lineedit fist name dari user. self.model.setTable("") #set table ke model self.model.setQuery(query) #set Query ke model print("select * from sportsmen " "where firstname like '%"+p_filter + "%' ") #maka diatas akan menampilkan query sesuai dengan filter mencari fist name yang telah diimputkan di line edit. self.model.setEditStrategy(QtSql.QSqlTableModel.OnFieldChange) #Jenis enum ini menjelaskan strategi mana yang harus dipilih saat mengedit nilai dalam database. Semua perubahan pada model akan diterapkan segera ke database. #sementara Menetapkan strategi untuk mengedit nilai dalam database ke strategi . Ini akan mengembalikan semua perubahan yang tertunda self.model.select() self.model.setHeaderData(0, QtCore.Qt.Horizontal, "ID") #membuat kolom first name pada kolom ke 0 self.model.setHeaderData(1, QtCore.Qt.Horizontal, "First name") #membuat kolom first name pada kolom ke 1 self.model.setHeaderData(2, QtCore.Qt.Horizontal, "Last name") #membuat kolom last name pada kolom ke 2 #untuk menampilkan dan membuat table baris secara horizontal yang berisi ID, first name, dan last name..
  • 5. self.tableView.setModel(self.model) #untuk menampilkan table dalam objek table view def addrowempty(self): self.model.rowCount() ret = self.model.insertRows(self.model.rowCount(), 1) #pada methold ini terdapat fungsi untuk menambahkan 1 baris kosong pada tabel ketika tombol add dijalankan. def remove(self): self.model.removeRow(self.tableView.currentIndex().row()) self.displaytable("") # pada methold ini terdapat fungsi untuk menghapus baris tabel yang yang dipilih ketika tombol delete/hapus dijalankan. def cari(self): cari = self.lineEditCari.text() self.displaytable(cari) #method ini akan dijalankan ketika tombol cari di klik. Method ini akan memanggil method displaytable dengan parameter kata yang akan dicari. if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) window = Ui() app.exec_() #ini adalah main program buat manggil class dan metholdnya ➢ Program kedua. from PyQt5 import QtWidgets, uic, QtSql, QtCore #Melakukan load library PyQt5. dalam contoh ini, kita juga meload class untuk Uic dan QtWidgets,Qtsql. QCore import sys #Melakukan load sys from PyQt5.QtSql import QSqlTableModel
  • 6. #meload library class sql yaitu objek sqlTablemodel class Ui(QtWidgets.QMainWindow): #Membuat class Ui dengan parameter QtWidgets, QMainWindow def __init__(self): super(Ui, self).__init__() #Inisialisasi dari class tersebut self.model = QSqlTableModel() uic.loadUi('form.ui', self) #untuk menyambungkan dengan form.ui self.show() #untuk menampilkan jendela self.openDB() #untuk manjalankan/mengkoneksikan database self.model = QtSql.QSqlTableModel() #Objek QTableModel dideklarasikan self.displaytable("") #untuk menampilkan table self.hapus.clicked.connect(self.remove) #untuk menjalankan fungsi remove ketika objek push button dengan variable self.hapus di klik/sambungkan. self.addrow.clicked.connect(self.addrowempty) #untuk menjalankan fungsi addrowempty ketika objek push button dengan variable self.addrow di klik/sambungkan. self.pushButton.clicked.connect(self.cari) #untuk menjalankan fungsi cari ketika objek push button dengan variable self. pushButton di klik/sambungkan. self.pushButton_2.clicked.connect(self.cari2) #untuk menjalankan fungsi cari2 ketika objek push button dengan variable self. pushButton_2 di klik/sambungkan def openDB(self): #method untuk mengkoneksi kan ke database db = QtSql.QSqlDatabase.addDatabase('QSQLITE') #menambahkan driver database yaitu QSQLITE dan dimasukkan dalam variabel db db.setDatabaseName('tugas.db') #memberi nama tugas.db database yang ada di sql if not db.open():
  • 7. # memberi kondisi jika database apa sudah dimasukan sql atau belum self.label.setText("connect db error") ###kondisi pertama ini jika data base di sql lite belum dibuka dan menampilkan pesan eror return False else: self.label.setText("connect db OK") #kondisi kedua ini jika data base di sql lite sudah dibuka dan menampilkan pesan terhubung return True def displaytable(self, p_filter): #method ini digunakan untuk membaca isi table dan kemudian menampil kan isi tabel ketableView. if p_filter is "": #ini menggunakan 1 parameter yang berisi kata yang di cari. Jika parameter ini isinya kosong,maka method akan menampilkan semua isi tabel tanpa menggunakan filter/penyaring. self.model.setTable('data') #membuat nama tabel di sql dengan nama data dan ditaruk di variabel model print("no filter") #dan akan menampilkan “no filter’’ else: if p_filter == self.lineEdit.text(): #sedangkan ini menggunakan filtel/penyaringan yang mana jika kondisinya line edit tidak kosong yaitu berupa imputan lineedit pertama user. query = QtSql.QSqlQuery("select * from data ""where firstname like '%"+p_filter + "%' ") #inilah perintah Query yang sebagai filter atau penyaringan untuk mencri fistname self.model.setTable("") #set table ke self.model self.model.setQuery(query) #set Query ke self.model print("select * from sportsmen ""where firstname like '%"+p_filter + "%' ")
  • 8. #maka diatas akan menampilkan query sesuai dengan filter mencari fist name yang telah diimputkan di line edit. if p_filter == self.lineEdit_2.text(): #ini sama untuk lineedit lastname yaitu menggunakan filtel/penyaringan yang mana jika kondisinya tidak kosong query = QtSql.QSqlQuery("select * from data ""where lastname like '%"+p_filter + "%' ") #maka diatas akan mecari query untuk mencari last name. self.model.setTable("") #set table ke self.model self.model.setQuery(query) #set Query ke self.model print("select * from sportsmen ""where lastname like '%"+p_filter + "%' ") #jadi kesimpulanya Jika parameter filter diisi, maka cara menampilkan data menggunakan query dan data yang tampil adalah yang memenuhi query yang diinputkan. self.model.setEditStrategy(QtSql.QSqlTableModel.OnFieldChange) #Jenis enum ini menjelaskan strategi mana yang harus dipilih saat mengedit nilai dalam database. Semua perubahan pada model akan diterapkan segera ke database. #sementara Menetapkan strategi untuk mengedit nilai dalam database ke strategi . Ini akan mengembalikan semua perubahan yang tertunda self.model.select() self.model.setHeaderData(0, QtCore.Qt.Horizontal, "ID") #membuat kolom id pada kolom ke 0 self.model.setHeaderData(1, QtCore.Qt.Horizontal, "Firstname") #membuat kolom first name pada kolom ke 1 self.model.setHeaderData(2, QtCore.Qt.Horizontal, "Lastname") #membuat kolom last name pada kolom ke 2 #untuk menampilkan dan membuat table baris secara horizontal yang berisi ID, first name, dan last name.. self.tableView.setModel(self.model) #untuk menampilkan table dalam objek table view def addrowempty(self):
  • 9. self.model.rowCount() ret = self.model.insertRows(self.model.rowCount(), 1) #pada methold ini terdapat fungsi untuk menambahkan 1 baris kosong pada tabel ketika tombol add dijalankan. def remove(self): self.model.removeRow(self.tableView.currentIndex().row()) self.displaytable("") # pada methold ini terdapat fungsi untuk menghapus baris tabel yang yang dipilih ketika tombol delete/hapus dijalankan. def cari(self): cari = self.lineEdit.text() self.displaytable(cari) #method ini akan dijalankan ketika tombol cari di klik. Method ini akan memanggil method displaytable dengan parameter kata yang akan dicari. def cari2(self): cari = self.lineEdit_2.text() self.displaytable(cari) #method ini akan dijalankan ketika tombol cari di klik. Method ini akan memanggil method displaytable dengan parameter kata yang akan dicari. if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) window = Ui() app.exec_() #ini adalah main program buat manggil class dan metholdnya
  • 10. 2. Screen Hasil Run Program ➢ Program pertama. ➢ Program kedua. • Mencari First Name