PEMROGRAMAN DESKTOP
MODUL II
Disusun Oleh :
A. TUJUAN
a. Mahasiswa mampu membuat dan mengaplikasikan RadioButton dalam
program
b. Mahasiswa mampu membuat dan mengaplikasikan PushButton dalam
program
B. DASAR TEORI
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
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.