Anda di halaman 1dari 15

TECHNICAL REPORT

PEMROGRAMAN DESKTOP
MODUL II

Disusun Oleh :

TGL. PRAKTIKUM : 23 September 2019


NAMA : Rizki Nardianto
NRP : 180411100069
KELOMPOK :1
DOSEN : Mochammad Kausar Sophan,
S.Kom., M.MT.

TELAH DISETUJUI TANGGAL :


...........................................
ASISTEN PRAKTIKUM

Ayu Dwi Febriani


(160411100132)

LABORATORIUM MULTIMEDIA COMPUTING


JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA
BAB I
TUJUAN DAN DASAR TEORI

A. TUJUAN
a. Mahasiswa mampu membuat dan mengaplikasikan RadioButton dalam
program
b. Mahasiswa mampu membuat dan mengaplikasikan PushButton dalam
program
B. DASAR TEORI

a. Signal dan Slot


Event di PYQT diproses dengan mekanisme signal dan slot. Sebagai
contoh event adalah kejadian ketika kita meng-klik sebuah tombol.
Ketika kita mengklik sebuat tombol, maka sebuah signal dimunculkan.
Selanjutnya signal akan ditempatkan pada slot. Slot bisa dalam bentuk
library Qtslot atau method lain yang bisa di panggil.
di aplikasi utama, QCoreApplication berisi event utama yang berjalan
selama berulang-ulang (mainloop) dan menangkap semua event yang
terjadi.
Signal akan berhubungan dengan slot untuk memanggil method terkait.
Komunikasi ini dijalan kan oleh 2 object, sender dan receiver. dalam
contoh berikut, sender adalah push button dan receiver adalah method.

b. Radio Button
Radio Button adalah widget yang dapat menerima pilihan true atau
false. Dalam sekumpulan Radio Button hanya ada satu yang kondisinya
terpilih/true.
c. Check Box
Check Box adalah widget yang memiliki fungsi mirip dengan Radio
Button, yaitu untuk melakukan pemilihan dari sekian opsi yang ada.
Bedanya, jika Radio Button hanya dapat terpilih satu dari sekian radio
button, Check Box memungkinkan pengguna untuk memilih lebih dari
satu widget Check Box.
BAB II
PEMBAHASAN

A. SOAL

1. Modifikasi program 2: hapus tombol. Proses penghitungan total harga


terjadi tiap kali sebuah check box di click. Hint: gunakan method clicked
milik check box.
2. Buat aplikasi untuk menyimpan data diri:
a. Nama: Line Edit
b. Jenis Kelamin: Radio Button
c. Apakah memiliki: SIM, Paspor, STNK, ATM, dll. Masing-masing
pilihan menggunakan Check Box
d. Tinggi badan: Spin Box/ Double Spin Box
e. Tahun lahir: Slider. Batasi sekitar 5 tahun dari tahun kelahiran pribadi
untuk nilai maksimum dan minimum slider.
f. Tambahkan tombol yang jika diklik akan menyimpan data-data diatas
ke dalam sebuah List Widget
g. Tambahkan juga tombol untuk delete dan delete all
h. Nilai plus jika program menyimpan semua data di atas dalam satu item
& dapat melakukan edit data yang sudah ada tanpa harus mengetik
ulang data satu-per-satu.
B. JAWABAN
1. Code Program
a. Soal Nomor 1
import sys
from PyQt5.QtWidgets import
QApplication,QLabel,QMainWindow,QPushButton,QCheckBox,Qline
Edit
from soal1 import*

class Form1(QtWidgets.QWidget):
def __init__(self):
QtWidgets.QWidget.__init__(self, parent=None)
self.ui = Ui_Form()
self.ui.setupUi(self)
self.ui.checkBox.clicked.connect(self.update)
self.ui.checkBox_2.clicked.connect(self.update)
self.ui.checkBox_3.clicked.connect(self.update)
self.ui.checkBox_4.clicked.connect(self.update)

def update(self):
self.a = []
if self.ui.checkBox.isChecked():
self.a.append(int(10000))
if self.ui.checkBox_2.isChecked():
self.a.append(int(12000))
if self.ui.checkBox_3.isChecked():
self.a.append(int(12000))
if self.ui.checkBox_4.isChecked():
self.a.append(int(13000))
hasil = sum(self.a)
self.ui.lineEdit.setText(str(hasil))

if __name__ == '__main__':
app = QApplication(sys.argv)
myapp = Form1()
myapp.show()
sys.exit(app.exec_())
b. Soal Nomor 2
import sys
from PyQt5.QtWidgets import
QApplication,QLabel,QMainWindow,QPushButton,QCheckBox, QSlider,
QRadioButton, QSpinBox, QMenuBar, QStatusBar
from soal2 import*

class Form1(QtWidgets.QWidget):
def __init__(self):
QtWidgets.QWidget.__init__(self, parent=None)
self.ui = Ui_Form()
self.ui.setupUi(self)
self.ui.lineEdit.textChanged.connect(self.cek)
self.ui.pushButton.clicked.connect(self.update)
self.ui.pushButton_2.clicked.connect(self.edit)
self.ui.pushButton_3.clicked.connect(self.cek)
self.ui.pushButton_4.clicked.connect(self.cek)
self.ui.radioButton.clicked.connect(self.cek)
self.ui.radioButton_2.clicked.connect(self.cek)
self.ui.checkBox.clicked.connect(self.cek)
self.ui.checkBox_2.clicked.connect(self.cek)
self.ui.checkBox_3.clicked.connect(self.cek)
self.ui.checkBox_4.clicked.connect(self.cek)
self.ui.checkBox_5.clicked.connect(self.cek)
self.ui.doubleSpinBox.valueChanged.connect(self.cek)
self.ui.horizontalSlider.valueChanged.connect(self.cek)

def cek(self):
gender = ""
data = []
if self.ui.radioButton.isChecked():
gender = "Laki Laki"
if self.ui.radioButton_2.isChecked():
gender = "Perempuan"
if self.ui.checkBox.isChecked():
data.append("SIM")
if self.ui.checkBox_2.isChecked():
data.append("Passport")
if self.ui.checkBox_3.isChecked():
data.append("STNK")
if self.ui.checkBox_4.isChecked():
data.append("ATM")
if self.ui.checkBox_5.isChecked():
data.append("DLL")
nama = self.ui.lineEdit.text()
slid = self.ui.horizontalSlider.value()
spin = self.ui.doubleSpinBox.value()

def update(self):
self.ui.listWidget.addWidget("s")

def edit(self):
self.ui.lineEdit.setText("")
self.ui.checkBox.setChecked(False)
self.ui.checkBox_2.setChecked(False)
self.ui.checkBox_3.setChecked(False)
self.ui.checkBox_4.setChecked(False)
if self.ui.radioButton.isChecked():
self.ui.radioButton.setChecked(False)
if self.ui.radioButton_2.isChecked():
self.ui.radioButton_2.setChecked(False)
self.ui.horizontalSlider.valueChanged(False)

if __name__ == '__main__':
app = QApplication(sys.argv)
myapp = Form1()
myapp.show()
sys.exit(app.exec_())
2. Penjelasan Code Program
a. Soal Nomor 1
1.) Baris Pertama merupakan perintah untuk mengimport modul
sys
2.) Baris ke dua merupakan perintah untuk mengimport liblary
QApplication, QLabel, QMainWindow, QPushButton,
QCheckBox, QlineEdit dari Modul PyQt5.QtWigdets
3.) Baris ke empat merupakan perintah yang digunakan untuk
mengambil data dari soal1
4.) Beris ke enam adalah class Form1 diturunkan dari QtWidgets
dan Qwidget, maka class From1 mewarisi atribut dari
keduanya
5.) Baris ke tujuh membuat inisialisasi class Form1
6.) Baris ke delapan untuk memanggil super.class
7.) Baris ke sembilan digunakan untuk menjelaskan bahwa self.ui
= Ui_Form1
8.) Baris ke sepuluh digunakan untuk mengeset ui ke dirinya
sendiri(self)
9.) Baris ke sebelas menjelaskan ketika kita mengclick tombol
checkBox maka akan terhubung dengan self.update
10.) Baris ke dua belas menjelaskan ketika kita mengclick tombol
checkBox_2 maka akan terhubung dengan self.update
11.) Baris ke tiga belas menjelaskan ketika kita mengclick tombol
checkBox_3 maka akan terhubung dengan self.update
12.) Baris ke empat balas menjelaskan ketika kita mengclick
tombol checkBox_4 maka akan terhubung dengan self.update
13.) Baris ke enam belas membuat fungsi update
14.) Baris ke tujuh belas digunakan sebagai penampung data dalam
bentuk list dari perintah yang berada pada bawahnya
15.) Baris ke delapan belas merupakan kondisi jetika checkBox di
check maka akan meng append data berbentuk integer 10.000
16.) Baris ke dua puluh merupakan kondisi jetika checkBox_2 di
check maka akan meng append data berbentuk integer 12.000
17.) Baris ke dua puluh dua merupakan kondisi jetika checkBox_3
di check maka akan meng append data berbentuk integer 12.000
18.) Baris ke dua puluh empat merupakan kondisi jetika
checkBox_4 di check maka akan meng append data berbentuk
integer 13.000
19.) Baris ke dua puluh enam merupakan program untuk
menjumlahkan semua data yang ada dalam list ‘self.a’
20.) Baris ke dua puluh tujuh merupakn perintah untuk
mengeluarkan hasil dari penjumlahan dalam lineEdit berbentuk
text string
21.) Baris ke dua puluh sembilan merupakan perintah untuk
menjalakan program
22.) Baris ke tiga puluh QApplication berfungsi untuk mengatur
pengaturan umum dan memanagement setiap window yang ada
di aplikasi kita, sedangkan sys.argv, itu adalah parameter dari
command line. Sehingga kita bisa mengontrol bagaimana
aplikasi kita akan dieksekusi untuk pertama kali.
23.) Baris ke tiga puluh satu untuk menampung class Form1 ke
myapp
24.) Baris ke tiga puluh dua menampilkan myapp
25.) Baris ke tiga puluh tiga fungsi app.exec_() akan memulai main
loop aplikasi dan menerima semua inputan dari user sampai
akhirnya aplikasi selesai, maka hasil kembalian dari fungsi
app.exec_() dipassing ke fungsi sys.exit() untuk mengakhiri
script python.
b. Soal Nomor 2
1.) Baris pertama untuk mengimport sys
2.) Baris selanjutnya untuk mengimpoert Qapplication, Qlabel,
QmainWindow, QpushButton, QcheckBox, QSlider,
QRadioButton, QSpinBox, QMenuBar, QstatusBar
3.) Baris selanjutnya untuk mengimport program dari soal2
4.) Baris selanjutnya untuk membuat kelas Form1 dengan object
QtWidgets, dan Qwidget
5.) Baris selanjutnya membuat inisialisasi class Form1
6.) Selanjutnya untuk memanggil super.class
7.) Baris selanjutnya digunakan untuk menjelaskan bahwa self.ui
= Ui_Form1
8.) Baris selanjutnya digunakan untuk mengeset ui ke dirinya
sendiri(self)
9.) Selanjutnya digunakan untuk apabila line edit di ubah maka
anak menghubungkan dengan self.cek
10.) Selanjutnya mengkondisikan jika pushbutton di klik maka akan
terhubung dengan self.update
11.) Selanjutnya mengkondisikan jika pushbutton_2 di klik maka
akan terhubung dengan self.edit
12.) Selanjutnya mengkondisikan jika pushbutton_3 di klik maka
akan terhubung dengan self.cek
13.) Selanjutnya mengkondisikan jika pushbutton_4 di klik maka
akan terhubung dengan self.cek
14.) Selanjutnya mengkondisikan jika radiobutton di klik maka
akan terhubung dengan self.cek
15.) Selanjutnya mengkondisikan jika radiobutton_2 di klik maka
akan terhubung dengan self.cek
16.) Selanjutnya mengkondisikan jika checckbox di klik maka akan
terhubung dengan self.cek
17.) Selanjutnya mengkondisikan jika checckbox_2 di klik maka
akan terhubung dengan self.cek
18.) Selanjutnya mengkondisikan jika checckbox_3 di klik maka
akan terhubung dengan self.cek
19.) Selanjutnya mengkondisikan jika checckbox_4 di klik maka
akan terhubung dengan self.cek
20.) Selanjutnya mengkondisikan jika checckbox_5 di klik maka
akan terhubung dengan self.cek
21.) Selanjutnya mengkondisikan jika doublespinBok di ubah
valuemya maka akan terhubung dengan self.cek
22.) Selanjutnya mengkondisikan jika horizontalSlider di ubah
valuemya maka akan terhubung dengan self.cek
23.) Selanjutnya membuat fungsion cek
24.) Membuat tampungan data yang bernama gender
25.) Membuat tampungan data list yang bernama data
26.) Membuat kondisi dimana ketika di cek tombol radio button
maka akan memasukkan data laki-laki
27.) Membuat kondisi dimana ketika di cek tombol radio button_2
maka akan memasukkan data paerempuan
28.) Selanjutnya kondisi jika checkbox di cek maka akan
memasukkan data SIM
29.) Selanjutnya kondisi jika checkbox_2 di cek maka akan
memasukkan data Passport
30.) Selanjutnya kondisi jika checkbox_3 di cek maka akan
memasukkan data STNK
31.) Selanjutnya kondisi jika checkbox_4 di cek maka akan
memasukkan data ATM
32.) Selanjutnya kondisi jika checkbox_5 di cek maka akan
memasukkan data DLL
33.) Kemudian membuat masukkan untuk mengisi lineEdit
34.) Kemudian membuat masukkan untuk slid horizontal dalam
mengisi value
35.) Selanjutnya membuat masukkan spin agar spin dapat di ubah
valuenya
36.) Selanjutnya membuat fungsi update dimana di dalam fungsi ini
terdapat masukkan untuk mengupload data ke list widget
37.) Kemudian baris selanjutnya merupakan fungsi dengan nama
edit untuk mengreset ulang data yang sudah dimasukkan
38.) Baris ini merupakan perintah untuk menjalakan program
39.) Selanjutnya QApplication berfungsi untuk mengatur
pengaturan umum dan memanagement setiap window yang ada
di aplikasi kita, sedangkan sys.argv, itu adalah parameter dari
command line. Sehingga kita bisa mengontrol bagaimana
aplikasi kita akan dieksekusi untuk pertama kali.
40.) Kemudian untuk menampung class Form1 ke myapp
41.) Baris selanjutnya puluh dua menampilkan myapp
42.) Baris terakhir fungsi app.exec_() akan memulai main loop
aplikasi dan menerima semua inputan dari user sampai
akhirnya aplikasi selesai, maka hasil kembalian dari fungsi
app.exec_() dipassing ke fungsi sys.exit() untuk mengakhiri
script python.
3. Hasil Running Program
a. Soal Nomor 1
b. Soal Nomor 2
BAB II
PENUTUP

A. Kesimpulan
1. Mahasiswa dapat menggunakan fungsi kelas TextField untuk membuat
input field.
2. Mahasiswa dapat menggunakan fungsi kelas Label untuk mebuat label.
3. Mahasiswa dapat menggunakan fungsi kelas RadioButton untuk membuat
input RadioButton.
4. Mahasiswa dapat menggunakan fungsi kelas CheckBox untuk membuat
input Check.

B. Saran
Pada praktikum ke dua ini saya mengalami kesulitan pada pembuatan
program soal nomor dua.

Anda mungkin juga menyukai