Laporan Praktikum
Algoritma dan Pemrograman
PyQt5: Layout
Asisten :
Hadad Fadilah 11221029
Fakhrizal Naufal 11221057
Disusun Oleh :
Nailah Nazhifah 22241038
Aan Aniarta 09241001
Angga Praseta Arahman 09241013
Ibnu Fadillah 09241036
Muhammad Naufal Mei Rahman 09102460
Dhea Nabila Destiariandini 22241014
21 November 2024
Dasar Teori
Pada tanggal 7 November 2024 telah dilaksanakan praktikum algoritma pemrograman
dengan berjudul pyQt5: Layout yang bertujuan untuk:
Setelah mengikuti praktikum ini, praktikan diharapkan mampu menggunakan layout pada
PyQt5.
A. pyQt5:Layout
PyQt adalah pustaka yang memungkinkan Anda menggunakan kerangka kerja GUI Qt dari
Python,sedangkan PyQt5 layout adalah sistem yang digunakan untuk mengatur widget atau
komponen grafis pada GUI (Graphical User Interface) dalam aplikasi Python.
Berikut beberapa hal yang bisa dilakukan dengan PyQt5 Layout:
1. Menata widget secara terprogram.
2. Memilih pengelola tata letak yang tepat.
3. Menata widget di aplikasi berbasis jendela utama dan berbasis dialog.
4. Memposisikan widget dengan menggunakan QVBoxLayout, QHBoxLayout,
QGridLayout, QStackedLayout.
5. Membuat tata letak dengan Qt Designer.
Dengan menggunakan layout, pengembang dapat menghindari pengaturan posisi widget
secara manual, sehingga membuat antarmuka lebih mudah diatur dan lebih responsif terhadap
perubahan ukuran jendela aplikasi. Layout mempermudah pembuatan aplikasi desktop yang
efisien, konsisten, dan mudah digunakan.
1
Source Code
No.
1. def kalkulator():
3. print("=== Kalkulator Sederhana ===")
4. print("Pilih operasi:")
5. print("1. Penjumlahan (+)")
6. print("2. Pengurangan (-)")
8. print("3. Perkalian (*)"
9. print("4. Pembagian (/)")
10 print("5. Pangkat (^)")
11. print("6. Modulus (%)")
12. # Memilih operasi
13. pilihan = input("Masukkan pilihan (1/2/3/4/5/6): ")
14 # Memeriksa apakah pilihan valid
15. if pilihan in ['1', '2', '3', '4', '5', '6']:
16. # Memasukkan angka
17 angka1 = float(input("Masukkan angka pertama: "))
2
No angka2 = float(input("Masukkan angka kedua: "))
1. # Penjumlahan
2. if pilihan == '1':
4. hasil = angka1 + angka2
5. print(f"Hasil: {angka1} + {angka2} = {hasil}")
6. # Pengurangan
7. elif pilihan == '2':
8. hasil = angka1 - angka2
9. print(f"Hasil: {angka1} - {angka2} = {hasil}")
10. # Perkalian
11. elif pilihan == '3':
12. hasil = angka1 * angka2
13. print(f"Hasil: {angka1} * {angka2} = {hasil}")
14 # Pembagian
15. elif pilihan == '4':
16. if angka2 != 0:
17. hasil = angka1 / angka2
3
18. print(f"Hasil: {angka1} / {angka2} = {hasil}")
19. else:
20. print("Error: Pembagian dengan nol tidak diperbolehkan.")
21. # Pangkat
22. elif pilihan == '5':
23. hasil = angka1 ** angka2
24. print(f"Hasil: {angka1} ^ {angka2} = {hasil}")
25. # Modulus
26. elif pilihan == '6':
27. hasil = angka1 % angka2
28. print(f"Hasil: {angka1} % {angka2} = {hasil}")
29. else:
30. print("Pilihan tidak valid. Silakan coba lagi.")
31. # Memanggil fungsi kalkulator
32. kalkulator()
4
Screenshot
Tugas alpro ming13 no1.py
Tampilan awal program, untuk membuat aplikasi kalkulator.
5
Tampilan hasil program, tampilan kalkulator sebelum memasukan angka.
6
Setelah memasukkan input angka , hasil akan ditampilkan.
7
Pembahasan
tugas alpro ming13 no2.py
No. Penjelasan.
Penjelasan singkat tentang tujuan program: Membuat kalkulator sederhana yang
1 dapat melakukan operasi matematika dasar seperti penjumlahan, pengurangan,
perkalian, pembagian, pangkat, dan modulus.
Tentukan operasi apa saja yang perlu didukung dan Identifikasi alat atau
3 perangkat lunak yang akan digunakan (Python, editor teks, atau IDE).
Buat alur kerja program:,Tampilkan menu pilihan operasi kepada
pengguna.Minta pengguna memasukkan dua angka.Jalankan operasi sesuai
4
pilihan.Tampilkan hasil.Susun logika program dengan diagram alur sederhana
(flowchart, jika diperlukan).
Buat fungsi sederhana untuk menghitung penjumlahan dua angka hasil = angka1+angka2
5 Tambahkan fungsi untuk pengurangan: hasil = angka1 - angka2.
6 Buat fungsi untuk melakukan perkalian: hasil = angka1 * angka2.
Buat fungsi untuk pembagian: hasil = angka1 / angka setelah itu tambahkan
8
validasi untuk pembagian dengan nol.
9 Tambahkan fungsi untuk menghitung pangkat: hasil = angka1 ** angka2.
Tambahkan fungsi untuk menghitung sisa hasil bagi: hasil = angka1 % angka2.
10
11 Buat tampilan menu menggunakan fungsi print() untuk daftar operasi:
Gunakan fungsi input() untuk meminta pengguna memilih operasi dan
12 memasukkan angka:Pilihan operasi (int) dan dua angka (float).
8
Gunakan if-elif-else untuk menangani pilihan operasi yang dimasukkan
pengguna:Contoh: Jika pilihan adalah 1, maka jalankan fungsi penjumlahan.
13
Pastikan input dari pengguna valid: Tangani kesalahan jika pengguna
memasukkan pilihan selain 1-6 dan tangani error pembagian dengan nol
14 menggunakan if angka2 ==
Gunakan print() untuk menampilkan hasil operasi ke layar Format hasil agar mudah
15 dibaca, misalnya: Hasil penjumlahan: 10 + 20 = 30.
Gunakan blok try-except untuk menangani input yang tidak valid, seperti karakter
16 non-angka dan tampilkan pesan error yang jelas, seperti: "Input tidak valid,
silakan masukkan angka."
Lakukan pengujian dengan berbagai skenario:Input valid (misalnya, 10 + 5).Input
tidak valid (misalnya, 10 / 0 atau pilihan di luar 1-6).Periksa semua operasi
17 bekerja sesuai spesifikasi.
Tambahkan komentar di dalam kode untuk menjelaskan setiap bagian program:
Tambahkan fitur tambahan, seperti:Memungkinkan pengguna melakukan
perhitungan ulang tanpa harus menjalankan program dari awal.Menampilkan
19 riwayat perhitungan.Menyimpan hasil perhitungan ke dalam file.
simpulkan bahwa kalkulator berhasil dibuat dengan fitur yang
mendukung:Penjumlahan, pengurangan, perkalian, pembagian, pangkat, dan
20 modulus.Jelaskan pengembangan lebih lanjut yang dapat dilakukan:Antarmuka
grafis (GUI) menggunakan pustaka Tkinter atau PyQt.Fitur tambahan, seperti
akar kuadrat atau logaritma.
9
Kesimpulan
Kesimpulan mengenai materi PyQt5: Layout adalah bahwa layout di PyQt5 berfungsi untuk
mengatur dan menata komponen GUI (Graphical User Interface) seperti tombol, label, dan
input agar tampil dengan rapi dan responsif. Layout ini memudahkan pengaturan elemen-
elemen dalam aplikasi agar sesuai dengan ukuran dan posisi yang diinginkan, serta dapat
menyesuaikan dengan perubahan ukuran jendela aplikasi.
Saran
Disarankan kepada kakak yang memberikan materi agar dapat memberikan materi secara
lebih terstruktur dan jangan terlalu cepat,agar pendengar lebih mudah memahami materi yang
disampaikan.
10
Daftar pustaka
Dharmesta, P. A., Suarjaya, I. M. A. D., & Raharja, I. M. S. (2020). Effectiveness of Sniffer
Using Natural Language in Learning Computer Network Traffic. Jurnal RESTI (Rekayasa
Sistem dan Teknologi Informasi), 4(3), 392-403.
Siahaan, V., & Sianipar, R. H. (2019). Langkah Demi Langkah Pemrograman Database
Sqlite Dan Mysql Dengan Gui Python. SPARTA PUBLISIHING.
11