Anda di halaman 1dari 13

Laporan Praktikum

Algoritma dan Pemrograman


PyQt5:Widget

Asisten :
Muhammad Putra Age 10171052

Priskila Destriani BN 12181057

Disusun Oleh :
Resty Annisa Kusnadi 08191059

Yengky Agita Pranata 03191083

Muhammad Fajar Rivani 05191043

Irfan Wahyudi 08191033

Salman Ma’ruf Setiawan 11191066

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:

 seperangkat widget GUI yang substansial


 kelas-kelas untuk mengakses SQLdatabase (ODBC, MySQL, PostgreSQL,
Oracle, SQLite)[6]
 QScintilla, widget editor teks kaya berbasis Scintilla
 widget data aware yang diisi secara otomatis dari database
 aplikasi XML parser
 dukungan SVG
 kelas-kelas untuk menyematkan kontrol ActiveX pada Windows (hanya dalam
versi komersial)

Untuk secara otomatis menghasilkan binding ini, Phil Thompson mengembangkan


alat SIP, yang juga digunakan pada proyek-proyek lainnya.

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

Tombol sederhana, digunakan untuk mengeksekusi suatu perintah atau


Button
operasi lainnya

Grafis terstruktur, widget dapat digunakan untuk menggambar grafik dan


Canvas plot, membuat editor grafik, dan untuk mengimplementasikan pengubahan
widget
Checkbutton Mempresentasikan sebuah variable yang dapat di pilih lebih dari dua nilai

Entry Field untuk memasukan teks

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 daftar pilihan, listbox dapat dikonfigurasi untuk


Listbox
mendapatkan radiobutton atau checklist

Menubutton Tombol menu, digunakan untuk mengimplementasikan pulldown menu

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

1-3 Mengimport sys dari PyQt 5

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

11-16 Membuat tabel pada program dengan memasukan Qtablewidget dengan


mengatur baris dan kolom yang diingkan serta mengatur nilai geometrinya

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

37-39 Menggunakan tombol tambah yang digunakan sebagai penambah tabel


dengan judul kalimat “tambah tabel”

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

49 Tombol tambah tabel

50 Tombol hapus tombol

52 Untuk menampilkan windows atau aplikasinya

53 Mengakhiri program

9
Investasi.py
No. Penjelasan

1-4 Mengimport sys dari PyQt 5

5-7 Membuat Qmainwindow dan atur posisinya, lalu membuat judul sebagai
status bar pada program

17-25 Membuat label bunga dengan mengatur kalimat “Bunga%” dan


menambahkan Qline agar dapat memasukan string. Dan mengatur kalimat “
silahakn masukan jumlh bunga pertahun”

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

39-40 Penamabahan Qlabel yang digunakan sebagai yang memberikan informasi


teks

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

55 Untuk menapilkan windows atau aplikasinya

56 Akhiri program atau program telah selesai

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

Anda mungkin juga menyukai