Asisten :
Muhammad Putra Age 10171052
Disusun Oleh :
Resty Annisa Kusnadi 08191059
06 Mei 2020
Dasar Teori
A. PyQt
PyQt adalah lintas platform GUI perangkat Qt yang mengikat pada Python,
diimplementasikan sebagai plug-in. PyQy dikenal juga sebagai toolkit widget karena
menyediakan sejumlah widget seperti tombol, label, textbox dan lain-lain yang
diperlukan dalam merancang sebuah GUI. PyQt adalah perangkat lunak gratis yang
dikembangkan oleh perusahaan InggrisRiverbank Computing. Ini tersedia di bawah
persyaratan yang sama untuk Qt versi yang lebih tua dari 4,5; ini berarti berbagai
termasuk lisensi GNU General Public License (GPL) dan lisensi komersial, tetapi tidak
GNU Lesser General Public License(LGPL). PyQt mendukung Microsoft Windows serta
berbagai varian dari UNIX, termasuk Linux dan MacOS (atau Darwin).
PyQt mengimplementasikan sekitar 440 kelas dan lebih dari 6.000 fungsi dan metode
termasuk:
Pada bulan agustus 2009, Nokia, pemilik perangkat Qt, merilis PySide, menyediakan
fungsi yang sama, tetapi di bawah LGPL, setelah gagal mencapai kesepakatan dengan
Riverbank Computing untuk mengubah persyaratan lisensinya untuk memasukkan LGPL
sebagai lisensi alternatif.
B. Widgets
1
Widget merupakan istilah yang digunakah oleh Qt sebagai objek utama antarmuka.
Pengguna dapat berinteraksi langsung dengan antarmuka grafis melalui widget yang telah
disediakan oleh PyQt. Antarmuka dapat terdiri dari beberapa widget yang disematkan pada
jendela utama.
Widgets Deskripsi
Widget untuk wadah atau kotak, frame dapat diberi border dan background
Frame
serta dapat digunakan untuk mengelompokan widget lainnya ketika
membuat aplikasi atau layout dialog
Label Menampilkan teks atau gambar
Menampilkan sebuah teks, sama seperti widget label, tetapi teks dapat
Message
diatur tata letaknya secara otomatis
Mempresentasikan suatu nilai dari variabel yang dapat memiliki satu atau
Radiobutton
banyak nilai, klik tombol tersebut artinya mengumpulkan nilai untuk
variabel dan
Radiobutt
menghapus semua radiobutton mengelompokan dengan variabel yang
on
sama.
(lanjutan)
Menyarankan anda untuk mengeset nilai numerik dengan melakukan
Scale
dragging pada panel
Scrollbar Digunakan untuk menggulung canvas, entry, listbox, dan widget teks
2
Memformat tampilan teks, menyarankan anda untuk menampilkan dan
Text
mengedit teks dengan gaya dan atribut, juga mendukung pemasangan
image dan window
Sebuah widget wadah untuk menampilkan secara terpisah atas tingkatan
Toplevel
window
3
Source Code
No Harga barang.py
.
1 import sys
2 from PyQt5.QtWidgets import *
3 app = QApplication([])
4
5 window = QMainWindow()
6 window.setMaximumHeight(500)
7 window.setMaximumWidth(800)
8 window.setGeometry(500, 200, 800, 500)
9 window.setWindowTitle("Data Harga Barang")
10
11 table = QTableWidget(window)
12 table.setGeometry(1, 1, 800, 500)
13 table.setColumnCount(3)
14 table.setRowCount(1)
15 table.setColumnWidth(0, 250)
16 table.setColumnWidth(1, 250)
17
18 judul1 = QTableWidget(table)
19 judul1.setGeometry(16, 1, 250, 25)
20 barang = QLabel(judul1)
21 barang.setText("Nama Barang")
22 barang.move(80, 5)
23
24 judul2 = QTableWidget(table)
25 judul2.setGeometry(265, 1, 250, 25)
26 harga = QLabel(judul2)
27 harga.setText("Harga Barang(Rp)")
28 harga.move(80, 5)
29
30 judul3 = QTableWidget(table)
31 judul3.setGeometry(515, 1, 100, 25)
32 jumlah = QLabel(judul3)
33 jumlah.setText("Jumlah Barang")
34 jumlah.move(10, 5)
35
36
37 tombol_tambah = QPushButton(window)
38 tombol_tambah.move(650, 30)
39 tombol_tambah.setText("Tambah Tabel")
40 tombol_hapus = QPushButton(window)
41 tombol_hapus.move(650, 60)
42 tombol_hapus.setText("Hapus Tabel\nSebelumnya")
43
44 def tambah_tabel():
45 table.insertRow(0)
46 def hapus_tabel():
47 table.removeRow(1)
48
49 tombol_tambah.clicked.connect(tambah_tabel)
50 tombol_hapus.clicked.connect(hapus_tabel)
51
52 window.show()
53 sys.exit(app.exec_())
4
No Investasi.py
.
1 import sys
2 from PyQt5.QtWidgets import
3 * from PyQt5.QtGui import *
4 app =
5 QApplication([])
6 window =
7 QMainWindow()
8 window.setGeometry(450,300,500,300)
9 window.setWindowTitle("Investasi anda")
10 labelKeluar = QLabel(window)
11 labelKeluar.setText("Jumlah Pengeluaran :
12 ") labelKeluar.setFixedWidth(150)
13 labelKeluar.move(20,20)
14 leditKeluar =
15 QLineEdit(window)
16 leditKeluar.setText('')
17 leditKeluar.setToolTip('Silhkan masukkan jumlah pengeluaran')
18 leditKeluar.move(150,20)
19 leditKeluar.setFixedWidth(300)
20 labelBunga = QLabel(window)
21 labelBunga.setText("Bunga(%) :
22 ")
23 labelBunga.setFixedWidth(150)
24 labelBunga.move(20,60)
25 leditBunga = QLineEdit(window)
26 leditBunga.setText('')
27 leditBunga.setToolTip('Silahkan masukan jumlah bunga pertahun')
28 leditBunga.move(150,60)
29 leditBunga.setFixedWidth(300)
30 labelTahun = QLabel(window)
31 labelTahun.setText("Tahun ke- :
32 ") labelTahun.setFixedWidth(150)
33 labelTahun.move(20,100)
34 leditTahun = QLineEdit(window)
35 leditTahun.setText('')
36 leditTahun.setToolTip('Silahkan Masukkan
37 Tahun') leditTahun.move(150,100)
38 leditTahun.setFixedWidth(300)
39 btn_calculate =
40 QPushButton(window)
41 btn_calculate.setText('Calculate'
42 ) btn_calculate.setFixedWidth(60)
43 btn_calculate.move(230,160)
44 labelResult = QLabel(window)
45 labelResult.move(130,200)
46 labelResult.setFixedWidth(400)
47 def calculate():
48 isiKeluar =
49 leditKeluar.text() isiKeluar
50 = int(isiKeluar) isiBunga =
51 leditBunga.text() isiBunga =
52 int(isiBunga) isiTahun =
53 leditTahun.text() isiTahun =
54 int(isiTahun)
if(isiTahun != 0 and isiKeluar !=0 and isiBunga !=0):
5
55 isiResult =
56 (isiKeluar*isiBunga/100+isiKeluar)*isiTahun isiResult
= int(isiResult) labelResult.setText(f"Investasi anda
selama {isiTahun}
tahun menjadi RP. {isiResult}")
btn_calculate.clicked.connect(calculat
e) window.show()
sys.exit(app.exec_())
6
Screenshot
Tampilan awal program, akan menampilkan tabel sesuai dengan program yang dibuat dan data dapat
dimasukan oleh pengguna yaitu mulai dari nama barang, harga barang, dan jumlah
Setelah memasukkan nama barang dan harga barang serta jumlah barang , akan muncul seperti
pada gambar dibawah ini
7
Tampilan awal program, akan menampilkan tabel sesuai dengan program yang dibuat dan data
dapat dimasukan oleh pengguna mulai dari jumlah pengeluaran, bunga yang di inginkan, dan
tahun berapa pengguna melakukan investasi
Setelah memasukkan nilai dan data yang diinginkan pengguna , akan muncul hasil dari investasi
seperti pada gambar dibawah ini
8
Pembahasan
Harga Barang.py
No. Penjelasan
5-9 Membuat Qmainwindow dan mengatur maximum height dari bilah status,
maximum width dari bilah status dan atur posisinya, lalu membuat judul
sebagai status bar pada program
18-22 Mengatur judul kalimat “Nama barang” pada kolom pertama dengan geometri
yang disesuaikan dengan program yang telah ada pada program
24-28 Mengatur judul kalimat “Harga barang” pada kolom kedua dengan geometri
tabel yang disesuaikan dengan program yang telah ada pada program
30-34 Mengatur kalimat “Jumlah barang” pada kolom ketiga dengan geometri tabel
yang disesuaikan dengan program yang telah ada pada program
40-41 Menambahkan tombol hapus yang digunakan sebagai penghapus tabel apabila
tabel yang ada di rasa berlebih dengan judul kalimat “ hapus tabel
sebelumnya”
44-45 Menggunakan def sebagai fungsi untuk dapat menjalankan tombol tambah
tabel pada program yang dibuat
46-47 Menggunakan def sebagai fungsi untuk dapat menjalankan tombol hapus
tabel yang dibuat pada program
53 Mengakhiri program
9
Investasi.py
No. Penjelasan
5-7 Membuat Qmainwindow dan atur posisinya, lalu membuat judul sebagai
status bar pada program
26-34 Pembuatan label tahun dengan mengatur kalimat “ masukan tahun” dan
menambahkn Qline agar dapat memasukan string. Dan atur kembali
kalimatnya “ silahkan masukan tahun”
35-38 Penggunaan QpushButton sebgai sebuah tombol pada program yang dapat
menghitung nilai yang dimasukan oleh pengguna
42-53 Penggunaan fungsi def sebagai salah satu fungsi agar perhitungan dapat
dijalankan dengn rumus yang diguankan
def calculate():
isiKeluar = leditKeluar.text()
isiKeluar = int(isiKeluar)
isiBunga = leditBunga.text()
isiBunga = int(isiBunga)
isiTahun = leditTahun.text()
isiTahun = int(isiTahun)
if(isiTahun != 0 and isiKeluar !=0 and isiBunga !=0):
isiResult =
(isiKeluar*isiBunga/100+isiKeluar)*isiTahun
isiResult = int(isiResult)
labelResult.setText(f"Investasi anda selama
{isiTahun} tahun menjadi RP. {isiResult}")
10
54 Tombol perhitungan
11
Kesimpulan
Praktikan dapat mengetahui penggunaan grafis yang telah disediakan oleh modul
PyQt5 dari pustaka dan melalui widget. Dapat mengetahui beberapa penggunaan dan fungsi
dari beberapa widget yang ada pada modul. Serta dapat banyak mengerti tentang daftar
pustaka yang ada pada PyQt5.
Saran
Sebaiknya saat daring kakak aslab menjelaskan kepada praktikan bagaimana cara
menjalankan program beserta contohnya. Jika tidak dapat melaksanakan daring maka
sebaiknya kakak aslab mengupload panduan membuat program. Sebab tidak semua dari kami
paham dengan sangat mengenai kodingan.
12