Input identitas,
username, dan
password
Menu utama
Pie Chart
Selesai
Gambar 2.1 Flowchart Program
Analisis:
Langkah pertama masuk pada menu login. Pada menu login terdapat
beberapa komponen, seperti identitas, username, dan password yang nantinya
diisikan sesuai dengan data. Setelah diisi lalu klik tombol login, jika pada saat
pengisian data benar maka akan muncul pesan selamat datang dan dapat berlanjut
ke menu selanjutnya, dan apabila salah dalam mengisi data maka akan muncul
pesan error dan dapat mengulang untuk mengisi data kembali. Pada menu
selanjutnya yaitu menu utama terdapat beberapa menu pilihan, seperti folder,
akun, dan info. Jika klik pada pilihan folder maka akan muncul pilihan logout dan
exit. Jika memilih logout maka akan kembali ke menu login dan jika memilih exit
maka akan langsung keluar dari program. Jika klik pilihan Akun maka akan
muncul pilihan data, kalkulator, dan chart. Apabila memilih data maka akan
masuk ke menu baru yang berisi daftar meubel dan lain-lain. Daftar meubel
berisikan data spesifikasi dan meubel yang dijual, sedangkan dan lain-lain
berisikan stok produk yang tersedia. Dari menu ini kita dapat next untuk menuju
ke menu baru yaitu kalkulator atau bisa back untuk menuju ke manu utama
kembali. Apabila klik pilihan kalkulator, maka akan menuju ke menu baru yang
berisikan waktu pembelian, jenis produk, harga produk, jumlah produk, biaya
package, harga awal dan harga akhir. Pada menu ini dimulai dari mengisi waktu
pembelian kemudian memilih jenis produk yang akan dibeli yang nantinya akan
muncul harga produk tersebut secara otomatis. Lalu mengisikan jumlah produk
yang akan dibeli. Jika belum yakin maka bisa klik tombol hapus dan memulai
kembali mengisi dari awal yaitu waktu pembelian, apabila sudah yakin bisa klik
tombol hitung dan nantinya muncul harga awal dan harga akhir dari produk
tersebut. Dan pada pilihan chart terdapat beberapa kolom untuk mengisikan Nama
Meubel, Penjualan, Tong Sampah, Tempat Tidur, Rak Penyimpanan, Lemari,
Kabinet Dapur. Jika sudah diisi lalu klik tombol Pie Chart jika ingin mengetahui
grafik dan jika ingin menghapus data maka klik hapus untuk mengulang isi data.
Pada pilihan info terdapat lokasi dan nomor telepon PT. Home Center Indonesia.
2.2.2 Program Login
Program login yaitu menu sign dan registrasi untuk masuk ke dalam
sistem bagi admin. Karyawan atau admin yang sudah memiliki akun dapat
langsung memasukkan username dan password. Tujuan dibuat halaman program
login sebagai akses memasukkan data pengguna sebelum masuk ke program menu
selanjutnya. Dalam menu program ini dijelaskan bahwa akan terlihat tampilan
sebuah frame yang memiliki judul program login | PT. Home Center Indonesia
dan tersedia beberapa komponen untuk memasukkan data, seperti identitas,
username, dan password. Selain itu, juga terdapat tombol login untuk
mengkonfirmasi data yang dimasukkan. Dengan memasukkan data yang benar
nanti akan berlanjut ke halaman program selanjutnya.
a. Hasil Running Program Login
Analisis:
Gambar tersebut merupakan tampilan dari program login PT. Home Center
Indonesia. Cara kerja dari program login ini dengan memasukkan data admin atau
karyawan. Pertama, masukkan identitas, username, dan password. Seletah semua
diisi, kemudian klik tombol login untuk memproses data yang dimasukkan. Jika
data yang dimasukkan sesuai maka akan muncul tampilan sambutan selamat
datang di PT. Home Center Indonesia dan jika salah memasukkan data maka akan
muncul tampilan password salah, silahkan coba lagi.
b. Script Program Login
import sys
from PySide2.QtCore import*
from PySide2.QtGui import*
from PySide2.QtWidgets import*
class Login(QWidget):
def __init__(self):
QWidget.__init__(self)
self.setWindowTitle('Login | PT. Home Center Indonesia')
frame=self.frameGeometry()
center=QDesktopWidget().availableGeometry().center()
frame.moveCenter(center)
icon=QIcon('login.png')
self.setWindowIcon(icon)
self.resize(450,600)
self.background()
self.user()
def background(self):
bg=QLabel(self)
bg.setPixmap(QPixmap('bg.login.png'))
bg.setScaledContents(True)
bg.resize(450,600)
def identitas(self):
user=QPixmap('user.png')
label=QLabel(self)
label.setPixmap(user)
label.move(1000,90)
label.resize(150,150)
label.setScaledContents(True)
def user(self):
user=QPixmap('user.png')
label=QLabel(self)
label.setPixmap(user)
label.move(150,90)
label.resize(150,150)
label.setScaledContents(True)
def password_check(self):
message=QMessageBox()
if self.username.text()=='Informa' and
self.password.text()=='890' and self.identitas.text()=='Faretha Akila':
message.setText('Selamat Datang Faretha Akila di PT. Home
Center Indonesia')
message.exec_()
from menu_utama import menuutama
self.a=menuutama()
self.a.show()
self.hide()
elif self.username.text()=='Informa' and
self.password.text()=='890' and self.identitas.text()=='Arya Dewa':
message.setText('Selamat Datang Arya Dewa di PT. Home Center
Indonesia')
message.exec_()
from menu_utama import menuutama
self.a=menuutama()
self.a.show()
self.hide()
else:
message.setText(('Password Salah, Silakan Anda Coba Lagi'))
message.exec_()
if __name__=='__main__':
app=QApplication(sys.argv)
ex=Login()
ex.show()
sys.exit
c. Analisis Script Program Login
Tabel 2.1 Analisis Script Program Login
Script Keterangan
import sys Digunakan untuk
menjalankan program
pada python.
from PySide2.QtCore import* Mengimport modul
from PySide2.QtGui import* PySide2 yang
from PySide2.QtWidgets import* digunakan untuk
membuat tampilan
pada sebuah program.
class Login(QWidget): Digunakan untuk
mengatur
pengelompokan pada
konten yang dibuat,.
def __init__(self): Digunakan untuk
QWidget.__init__(self) membuat tampilan
self.setWindowTitle('Login | PT. Home Center dan memanggil
Indonesia') beberapa script
frame=self.frameGeometry() program pada menu
center=QDesktopWidget().availableGeometry().center() login.
frame.moveCenter(center)
icon=QIcon('login.png')
self.setWindowIcon(icon)
self.resize(450,600)
self.background()
self.user()
#Membuat Copyright Label Digunakan untuk
self.name=QLabel("<i><font membuat table
color=Black>Informa</font></i>",self) copyright.
self.name.move(180,50)
self.name.setFont(QFont('Calibri', 20))
self.name_down=QLabel("<i><font
color=White>@Informa 2022</font></i>",self)
self.name_down.move(320,550)
self.name_down.setFont(QFont('Calibri', 12))
def identitas(self):
user=QPixmap('user.png')
label=QLabel(self)
label.setPixmap(user)
label.move(1000,90)
label.resize(150,150)
label.setScaledContents(True)
def user(self):
user=QPixmap('user.png')
label=QLabel(self)
label.setPixmap(user)
label.move(150,90)
label.resize(150,150)
label.setScaledContents(True)
def password_check(self):
message=QMessageBox()
if self.username.text()=='Informa' and
self.password.text()=='890' and
self.identitas.text()=='Faretha Akila':
message.setText('Selamat Datang Faretha Akila di
PT. Home Center Indonesia')
message.exec_()
from menu_utama import menuutama
self.a=menuutama()
self.a.show()
self.hide()
elif self.username.text()=='Informa' and
self.password.text()=='890' and
self.identitas.text()=='Arya Dewa':
message.setText('Selamat Datang Arya Dewa di
PT. Home Center Indonesia')
message.exec_()
from menu_utama import menuutama
self.a=menuutama()
self.a.show()
self.hide()
else:
message.setText(('Password Salah, Silakan Anda
Coba Lagi'))
message.exec_()
Analisis:
Pada menu utama program dari PT. Home Center Indonesia terdapat
tampilan background dengan logo informa. Pada menu utama ini terdapat
beberapa kategori atau pilihan, seperti folder, akun, dan info. Pada menu folder
terdapat pilihan logout untuk kembali ke menu login dan exit untuk keluar dari
program. Dan pada kategori akun terdapat pilihan data yang nantinya akan masuk
ke menu data untuk mengetahui beberapa produk dan spesifikasinya, terdapat
pilihan kalkulator untuk menuju ke menu kalkulator atau tempat untuk
menghitung biaya produk, dan terdapat pilihan chart untuk menuju ke menu
chart. Dan kategori info akan menampilkan lokasi dan nomor telepon dari PT.
Home Center Indonesia.
b. Script Program Menu Utama
import sys
from PySide2.QtCore import*
from PySide2.QtGui import*
from PySide2.QtWidgets import*
class menuutama(QWidget):
def __init__(self):
QWidget.__init__(self)
self.setWindowTitle('Login | PT. Home Center Indonesia')
frame=self.frameGeometry()
center=QDesktopWidget().availableGeometry().center()
frame.moveCenter(center)
icon=QIcon('login.png')
self.setWindowIcon(icon)
self.resize(450,600)
self.background()
self.addmenu()
self.name_down=QLabel("<i><font color=White>@Informa
2022</font></i>",self)
self.name_down.move(320,550)
self.name_down.setFont(QFont('Calibri', 12))
def background(self):
bg=QLabel(self)
bg.setPixmap(QPixmap('bg.menu.png'))
bg.setScaledContents(True)
bg.resize(450,600)
def addmenu(self):
menu=self.menuBar()
foldermenu=menu.addMenu('Folder')
akunmenu=menu.addMenu('Akun')
aboutmenu=menu.addMenu('Info')
outaction=QAction(QIcon('masuk.png'), 'Logout',self)
exitaction=QAction(QIcon('keluar.png'), 'Exit',self)
dataction=QAction(QIcon('tabel.png'), 'Data',self)
kalkulatoraction=QAction(QIcon('kalkulator.png'),
'Kalkulator',self)
chartaction=QAction(QIcon('grafik.png'), 'Chart',self)
foldermenu.addAction(outaction)
foldermenu.addAction(exitaction)
akunmenu.addAction(dataction)
akunmenu.addAction(kalkulatoraction)
akunmenu.addAction(chartaction)
aboutmenu.addAction(alamataction)
aboutmenu.addAction(teleponaction)
dataction.triggered.connect(self.data)
kalkulatoraction.triggered.connect(self.kalkulator)
chartaction.triggered.connect(self.chart)
outaction.triggered.connect(self.logout)
exitaction.triggered.connect(self.exit_app)
def data(self):
from data import Data
self.a=Data()
self.a.show()
self.hide()
def kalkulator(self):
from kalkulator import Kalkulator
self.a=Kalkulator()
self.a.show()
self.hide()
def chart(self):
from chart import Chart
self.a=Chart()
self.a.show()
self.hide()
def exit_app(self):
self.close()
def logout(self):
from login import Login
self.a=Login()
self.a.show()
self.hide()
if __name__=='__main__':
app=QApplication(sys.argv)
ex=menuutama()
ex.show()
sys.exit
c. Analisis Script Program Main Menu
Script Keterangan
import sys Digunakan untuk
from PySide2.QtCore import* mengimport modul
from PySide2.QtGui import* PySide2 yang berfungsi
from PySide2.QtWidgets import*
untuk membuat
tampilan dan
menjalankan program
Python.
class menuutama(QWidget): Digunakan untuk
def __init__(self): membuat sebuah
QWidget.__init__(self) tampilan dan
self.setWindowTitle('Login | PT. Home Center
memanggil beberapa
Indonesia')
frame=self.frameGeometry() script program pada
menu utama.
center=QDesktopWidget().availableGeometry().center(
)
frame.moveCenter(center)
icon=QIcon('login.png')
self.setWindowIcon(icon)
self.resize(450,600)
self.background()
self.addmenu()
self.name_down=QLabel("<i><font Digunakan untuk
color=White>@Informa 2022</font></i>",self) menampilkan sebuah
self.name_down.move(320,550) copyright atau nama
self.name_down.setFont(QFont('Calibri', 12))
hak cipta.
outaction=QAction(QIcon('masuk.png'), Digunakan untuk
'Logout',self) memberikan aksi pada
exitaction=QAction(QIcon('keluar.png'), setiap kategori atau
'Exit',self)
pilihan yang tersedia
dataction=QAction(QIcon('tabel.png'), 'Data',self) pada menu utama.
kalkulatoraction=QAction(QIcon('kalkulator.png'),
'Kalkulator',self)
chartaction=QAction(QIcon('grafik.png'),
'Chart',self)
alamataction=QAction(QIcon('info.png'), 'Mall
Paragon Solo Jl Yosodipuro No133 Kota Surakarta
Jawa Tengah 57139',self)
teleponaction=QAction(QIcon('telepone.png'),
'0815-1100-2000',self)
foldermenu.addAction(outaction)
foldermenu.addAction(exitaction)
akunmenu.addAction(dataction)
akunmenu.addAction(kalkulatoraction)
akunmenu.addAction(chartaction)
aboutmenu.addAction(alamataction)
aboutmenu.addAction(teleponaction)
dataction.triggered.connect(self.data)
kalkulatoraction.triggered.connect(self.kalkulator)
chartaction.triggered.connect(self.chart)
outaction.triggered.connect(self.logout)
exitaction.triggered.connect(self.exit_app)
def addmenu(self): Digunakan untuk
menu=self.menuBar() menampilkan sebuah
foldermenu=menu.addMenu('Folder') kategori atau pilihan
akunmenu=menu.addMenu('Akun')
pada menu utama.
aboutmenu=menu.addMenu('Info')
def data(self):
from data import Data
self.a=Data()
self.a.show()
self.hide()
def kalkulator(self):
from kalkulator import Kalkulator
self.a=Kalkulator()
self.a.show()
self.hide()
def chart(self):
from chart import Chart
self.a=Chart()
self.a.show()
self.hide()
def exit_app(self):
self.close()
def logout(self):
from login import Login
self.a=Login()
self.a.show()
self.hide()
if __name__=='__main__': Digunakan untuk
app=QApplication(sys.argv) mengeksekusikan
ex=menuutama() program yang dibuat.
ex.show()
sys.exit
2.2.4 Program Data Tabel
2.2.6 Program Kalkulator (Program Kalkulator)
kalkulator adalah alat untuk menghitung dari perhitungan sederhana
seperti penjumlahan, pengurangan, perkalian dan pembagian sampai kepada
kalkulator sains yang dapat menghitung rumus matematika tertentu. Kalkulator
sederhana ini memiliki beberapa fungsi yaitu penjumlahan, pengurangan,
perkalian dan pembagian. Tujun dari program kalkulator ini yaitu untuk
menghitung biaya pembelian dari sebuah produk meubel PT. Home Center
Indonesia. Program kalkulator ini berisikan beberapa komponen, seperti waktu
pembelian, jenis produk, harga produk, jumlah produk, biaya pakage, harga awal,
dan harga akhir. Pengguna diharapkan untuk mengisi dengan benar yang pada
akhirnya nanti akan keluar biaya yang harus dibayarkan.
a. Hasil Running Program Kalkulator
Analisis:
Pada program menu kalkulator ini dapat dilakukan dengan pengisian data
yang telah tersedia, seperti kapan waktu pembelian, memilih jenis produk yang
akan dibeli dan dikolom tersebut sudah disediakan produk yang tersedia jadi
tinggal memilih salah satu produk tersebut, setelah itu akan muncul harga produk
sesuai yang dipilih, lalu mengisi jumlah produk yang akan dibeli, harga tersebut
akan ditambah dengan biaya package sebesar 7%. Kemdian klik tombol hitung
jika sudah yakin yang nantinya akan muncul harga awal beserta harga akhir dan
jika belum yakin bisa klik tombol hapus yang nantinya akan menghapus semua
dan mengisi kembali.
b. Script Program Kalkulator
import sys
from PySide2.QtCore import*
from PySide2.QtGui import*
from PySide2.QtWidgets import*
class kalkulator (QWidget):
def __init__(self):
QWidget.__init__(self)
self.setWindowTitle('Kalkulator | PT. Home Center Indonesia')
frame=self.frameGeometry()
center=QDesktopWidget().availableGeometry().center()
frame.moveCenter(center)
icon=QIcon('kalkulator.png')
self.setWindowIcon(icon)
self.resize(450,600)
self.background()
self.konten()
self.button()
self.layout()
self.name_down=QLabel("<i><font color=White>@Informa
2022</font></i>",self)
self.name_down.move(320,550)
self.name_down.setFont(QFont('Calibri', 12))
def background(self):
bg=QLabel(self)
bg.setPixmap(QPixmap('bg.png'))
bg.setScaledContents(True)
bg.resize(450,600)
def konten(self):
self.waktu=QLabel('Waktu Pembelian:', self)
self.line1=QDateEdit(self)
self.produk=QLabel('Jenis Produk:', self)
self.line2=QComboBox(self)
self.line2.addItems(["","Mont Kursi Lipat",
"Dianatoo Meja Tamu",
"Hove Bangku",
"Maxy 2 Lemari Pakaian 2 Pintu",
"Selma Set Tempat Tidur Sharon",
"Kabinet Dapur",
"Rak Sepatu 5 Tingkat",
"Walley Rak Piring Extendable",
"Rak Penyimpanan 4 Tingkat",
"Tempat Sampah 10 Ltr Open Top"])
self.line2.activated[str].connect(self.process)
self.harga=QLabel('Harga Produk:',self)
self.line3=QLineEdit(self)
self.line3.setReadOnly(True)
self.jumlah=QLabel('Jumlah Produk:',self)
self.line4=QSpinBox(self)
self.biaya=QLabel('Biaya Package(%):',self)
self.line5=QLineEdit('7',self)
self.line5.setReadOnly(True)
self.harga_awal=QLabel('Harga Awal',self)
self.line6=QLineEdit(self)
self.line6.setReadOnly(True)
self.harga_akhir=QLabel('Harga Akhir',self)
self.line7=QLineEdit(self)
self.line7.setReadOnly(True)
def process(self,harga):
try:
if str(harga)=='Mont Kursi Lipat':
p = 169000
elif str(harga)=='Dianatoo Meja Tamu':
p = 899000
elif str(harga)=='Hove Bangku':
p = 79000
elif str(harga)=='Maxy 2 Lemari Pakaian 2 Pintu':
p = 1995000
elif str(harga)=='Selma Set Tempat Tidur Sharon':
p = 1899000
elif str(harga)=='Kabinet Dapur':
p = 3999000
elif str(harga)=='Rak Sepatu 5 Tingkat':
p = 119000
elif str(harga)=='Walley Rak Piring Extendable':
p = 199000
elif str(harga)=='Rak Penyimpanan 4 Tingkat':
p = 259000
elif str(harga)=='Tempat Sampah 10 Ltr Open Top':
p = 89000
else:
p=0
self.line3.setText(str(p))
except:
print('False')
def process1(self):
harga=float(self.line3.text())
jumlah=float(self.line4.text())
biaya=float(self.line5.text())
harga_awal=harga*jumlah
self.line6.setText(str(harga_awal))
harga_akhir=((harga_awal*(biaya/100))+harga)
self.line7.setText(str(harga_akhir))
def button(self):
self.count=QPushButton('Hitung',self)
self.count.clicked.connect(self.process1)
self.delete=QPushButton('Hapus',self)
self.delete.clicked.connect(self.hapus)
self.back=QPushButton('Kembali',self)
self.back.move(40,500)
self.back.clicked.connect(self.kembali)
self.next=QPushButton('Lanjut',self)
self.next.move(300,500)
self.next.clicked.connect(self.lanjut)
def hapus(self):
pesan=QMessageBox.question(self,'Warning', "Are you gonna
delete the data?",
QMessageBox.Yes | QMessageBox.No)
if pesan ==QMessageBox.Yes:
from kalkulator import Kalkulator
self.p= Kalkulator()
self.p.show()
self.hide()
if pesan == QMessageBox.No:
pass
def layout(self):
self.layout=QFormLayout()
self.layout.addRow(self.waktu,self.line1)
self.layout.addRow(self.produk,self.line2)
self.layout.addRow(self.harga,self.line3)
self.layout.addRow(self.jumlah,self.line4)
self.layout.addRow(self.biaya,self.line5)
self.layout.addRow(self.harga_awal,self.line6)
self.layout.addRow(self.harga_akhir,self.line7)
self.layout.addRow(self.count)
self.layout.addRow(self.delete)
self.setLayout(self.layout)
def kembali(self):
from menu_utama import menuutama
self.a=menuutama()
self.a.show()
self.hide()
def lanjut(self):
from chart import Chart
self.a=Chart()
self.a.show()
self.hide()
if __name__=='__main__':
app=QApplication(sys.argv)
ex=kalkulator()
ex.show()
sys.exit
c. Analisis Script Program Kalkulator
Script Keterangan
import sys Digunakan untuk
from PySide2.QtCore import* mengimport modul
from PySide2.QtGui import* PySide2 yang berfungsi
from PySide2.QtWidgets import*
untuk membuat
tampilan dan
menjalankan program
Python.
class kalkulator (QWidget): Digunakan unttuk
def __init__(self): membuat sebuah
QWidget.__init__(self) tampilan dan
self.setWindowTitle('Kalkulator | PT. Home
memanggil beberapa
Center Indonesia')
frame=self.frameGeometry() script program pada
menu kalkulator.
center=QDesktopWidget().availableGeometry().center(
)
frame.moveCenter(center)
icon=QIcon('kalkulator.png')
self.setWindowIcon(icon)
self.resize(450,600)
self.background()
self.konten()
self.button()
self.layout()
self.name_down=QLabel("<i><font Digunakan untuk
color=White>@Informa 2022</font></i>",self) menampilkan sebuah
self.name_down.move(320,550) copyright atau nama
self.name_down.setFont(QFont('Calibri', 12))
hak cipta.
def konten(self): Digunakan untuk
self.waktu=QLabel('Waktu Pembelian:', self) membuat isi konten
self.line1=QDateEdit(self) pada tampilan menu
self.produk=QLabel('Jenis Produk:', self) kalkulator.
self.line2=QComboBox(self)
self.line2.addItems(["","Mont Kursi Lipat",
"Dianatoo Meja Tamu",
"Hove Bangku",
"Maxy 2 Lemari Pakaian 2
Pintu",
"Selma Set Tempat Tidur
Sharon",
"Kabinet Dapur",
"Rak Sepatu 5 Tingkat",
"Walley Rak Piring
Extendable",
"Rak Penyimpanan 4 Tingkat",
"Tempat Sampah 10 Ltr Open
Top"])
self.line2.activated[str].connect(self.process)
self.harga=QLabel('Harga Produk:',self)
self.line3=QLineEdit(self)
self.line3.setReadOnly(True)
self.jumlah=QLabel('Jumlah Produk:',self)
self.line4=QSpinBox(self)
self.biaya=QLabel('Biaya Package(%):',self)
self.line5=QLineEdit('7',self)
self.line5.setReadOnly(True)
self.harga_awal=QLabel('Harga Awal',self)
self.line6=QLineEdit(self)
self.line6.setReadOnly(True)
self.harga_akhir=QLabel('Harga Akhir',self)
self.line7=QLineEdit(self)
self.line7.setReadOnly(True)
def process(self,harga):
try:
if str(harga)=='Mont Kursi Lipat':
p = 169000
elif str(harga)=='Dianatoo Meja Tamu':
p = 899000
elif str(harga)=='Hove Bangku':
p = 79000
elif str(harga)=='Maxy 2 Lemari Pakaian 2
Pintu':
p = 1995000
elif str(harga)=='Selma Set Tempat Tidur
Sharon':
p = 1899000
elif str(harga)=='Kabinet Dapur':
p = 3999000
elif str(harga)=='Rak Sepatu 5 Tingkat':
p = 119000
elif str(harga)=='Walley Rak Piring
Extendable':
p = 199000
elif str(harga)=='Rak Penyimpanan 4
Tingkat':
p = 259000
elif str(harga)=='Tempat Sampah 10 Ltr
Open Top':
p = 89000
else:
p=0
self.line3.setText(str(p))
except:
print('False')
def process1(self): Digunakan untuk
harga=float(self.line3.text()) memproses perhitungan
jumlah=float(self.line4.text()) harga produk yang
biaya=float(self.line5.text())
dipilih.
harga_awal=harga*jumlah
self.line6.setText(str(harga_awal))
harga_akhir=((harga_awal*(biaya/100))
+harga)
self.line7.setText(str(harga_akhir))
def layout(self): Digunakan untuk
self.layout=QFormLayout() mengatur tata letak
self.layout.addRow(self.waktu,self.line1) secara berurutan pada
self.layout.addRow(self.produk,self.line2)
konten yang telah
self.layout.addRow(self.harga,self.line3)
self.layout.addRow(self.jumlah,self.line4) dibuat.
self.layout.addRow(self.biaya,self.line5)
self.layout.addRow(self.harga_awal,self.line6)
self.layout.addRow(self.harga_akhir,self.line7)
self.layout.addRow(self.count)
self.layout.addRow(self.delete)
self.setLayout(self.layout)
def button(self): Digunakan untuk
self.count=QPushButton('Hitung',self) membuat tombol
self.count.clicked.connect(self.process1) hitung, hapus, kembali,
self.delete=QPushButton('Hapus',self)
dan lanjut yang
self.delete.clicked.connect(self.hapus)
self.back=QPushButton('Kembali',self) memiliki fungsi
self.back.move(40,500) masing-masing.
self.back.clicked.connect(self.kembali)
self.next=QPushButton('Lanjut',self)
self.next.move(300,500)
self.next.clicked.connect(self.lanjut)
def hapus(self):
pesan=QMessageBox.question(self,'Warning',
"Are you gonna delete the data?",
QMessageBox.Yes |
QMessageBox.No)
if pesan ==QMessageBox.Yes:
from kalkulator import Kalkulator
self.p= Kalkulator()
self.p.show()
self.hide()
if pesan == QMessageBox.No:
pass
def kembali(self):
from menu_utama import menuutama
self.a=menuutama()
self.a.show()
self.hide()
def lanjut(self):
from chart import Chart
self.a=Chart()
self.a.show()
self.hide()
if __name__=='__main__': Digunakan untuk
app=QApplication(sys.argv) mengeksekusikan
ex=menuutama() program yang dibuat.
ex.show()
sys.exit
2.2.7 Program Chart
Grafik atau chart dapat diartikan sebagai suatu kerangka atau gambar yang
akan digunakan untuk membuat suatu objek visualisasi dari data-data pada tabel
dengan tujuan dapat memberikan informasi mengenai suatu data dari penyaji
materi kepada penerima materi. Chart juga dapat ditampilkan dalam bentuk
gambar, seperti persegi, lingkaran, tabung, segitiga, balok, kerucut atau yang lain-
lain. Program ini dijelaskan bahwa pengguna akan diminta untuk mengisi
beberapa data mulai dari nama meubel, tahun penjualan, dan beberapa produk
yang dijual. Dan terdapat bebrapa tombol, seperti pie chart yang digunakan untuk
mengaplikasikan data agar menjadi sebuah grafik, tombol hapus yang digunakan
untuk menghapus dari data tersebut, dan tombol kembali untuk menuju kembali
ke menu utama.
a. Hasil Running Program Chart
Gambar 2.7 Running Program Chart
Analisis:
Pada program chart ini akan beroperasi jika pengguna telah mengisi data
yang telah tersedia pada kolom-kolom tersebut. Dimulai dari awal yaitu
memasukkan nama meubel, tahun penjualan, produk yang telah terjual tong
sampah, tempat tidur, rak penyimpanan, lemari, dan kabinet dapur. Jika sudah
terisi semua maka langkah selanjutnya yaitu klik tombol pie chart jika ingin
melihat grafik dari data tersebut dan klik hapus jika ada kesalahan saat mengisi
data atau ingin mengisi ulang data. Dan terdapat tombol kembali yang bertujuan
untuk kembali ke menu utama.
b. Script Program Chart
import sys
from PySide2.QtCore import*
from PySide2.QtGui import*
from PySide2.QtWidgets import*
import matplotlib.pyplot as plt
class Chart(QWidget):
def __init__(self):
QWidget.__init__(self)
self.setWindowTitle('Chart | PT. Home Center Indonesia')
frame=self.frameGeometry()
center=QDesktopWidget().availableGeometry().center()
frame.moveCenter(center)
icon=QIcon('grafik.png')
self.setWindowIcon(icon)
self.resize(450,600)
self.background()
self.label()
self.line()
self.layout()
def background(self):
bg=QLabel(self)
bg.setPixmap(QPixmap('bg.png'))
bg.setScaledContents(True)
bg.resize(450,600)
def label(self):
self.judul=QLabel('Nama Meubel :', self)
self.ketX=QLabel('Penjualan :', self)
self.X1=QLabel('Tong Sampah :', self)
self.X2=QLabel('Tempat Tidur :', self)
self.Y1=QLabel('Rak Penyimpanan :', self)
self.Y2=QLabel('Lemari :', self)
self.Y3=QLabel('Kabinet Dapur :', self)
def line(self):
self.line1=QLineEdit(self)
self.line2=QLineEdit(self)
self.line4=QLineEdit(self)
self.line5=QLineEdit(self)
self.line6=QLineEdit(self)
self.line7=QLineEdit(self)
self.line8=QLineEdit(self)
self.pie=QPushButton('Pie Chart',self)
self.pie.clicked.connect(self.process_pie)
self.delete=QPushButton('Hapus',self)
self.delete.clicked.connect(self.hapus)
self.back=QPushButton('Kembali',self)
self.back.clicked.connect(self.kembali)
self.back.move(30,550)
def layout(self):
self.layout=QFormLayout()
self.layout.addRow(self.judul, self.line1)
self.layout.addRow(self.ketX, self.line2)
self.layout.addRow(self.X1, self.line4)
self.layout.addRow(self.X2, self.line5)
self.layout.addRow(self.Y1, self.line6)
self.layout.addRow(self.Y2, self.line7)
self.layout.addRow(self.Y3, self.line8)
self.layout.addRow(self.pie)
self.layout.addRow(self.delete)
self.setLayout(self.layout)
def process_pie(self):
title=str(self.line1.text())
sumbuX=str(self.line2.text())
labels = ['Tong Sampah', 'Tempat Tidur', 'Rak Penyimpanan',
'Lemari', 'Kabinet Dapur']
X1=int(self.line4.text())
X2=int(self.line5.text())
X3=int(self.line6.text())
X4=int(self.line7.text())
X5=int(self.line8.text())
plt.title(title)
plt.xlabel(sumbuX)
x=[X1,X2,X3,X4,X5]
plt.pie(x, labels=labels, autopct='%1.1f%%', shadow=True,
startangle=90)
plt.axis('equal')
plt.show()
def hapus(self):
pesan=QMessageBox.question(self,'Warning', "Are you gonna delete
the data?",
QMessageBox.Yes | QMessageBox.No)
if pesan ==QMessageBox.Yes:
from chart import Chart
self.a= Chart()
self.a.show()
self.hide()
if pesan == QMessageBox.No:
pass
def kembali(self):
from menu_utama import menuutama
self.a=menuutama()
self.a.show()
self.hide()
if __name__=='__main__':
app=QApplication(sys.argv)
ex=Chart()
ex.show()
sys.exit
c. Analisis Script Program Chart
Script Keterangan
import sys Digunakan untuk
from PySide2.QtCore import* mengimport
from PySide2.QtGui import* modul PySide2
from PySide2.QtWidgets import* yang berfungsi
import matplotlib.pyplot as plt untuk membuat
tampilan dan
menjalankan
program serta
untuk
membangun
visualisasi data
pada program
Python.
class Chart(QWidget): Digunakan untuk
def __init__(self): membuat sebuah
QWidget.__init__(self) tampilan dan
self.setWindowTitle('Chart | PT. Home Center memanggil
Indonesia') beberapa script
frame=self.frameGeometry() program pada
menu chart.
center=QDesktopWidget().availableGeometry().center()
frame.moveCenter(center)
icon=QIcon('grafik.png')
self.setWindowIcon(icon)
self.resize(450,600)
self.background()
self.label()
self.line()
self.layout()
def background(self): Digunakan untuk
bg=QLabel(self) menampilkan
bg.setPixmap(QPixmap('bg.png')) background
bg.setScaledContents(True) tampilan dan isi
bg.resize(450,600) konten pada
menu chart
def label(self): secara berurutan.
self.judul=QLabel('Nama Meubel :', self)
self.ketX=QLabel('Penjualan :', self)
self.X1=QLabel('Tong Sampah :', self)
self.X2=QLabel('Tempat Tidur :', self)
self.Y1=QLabel('Rak Penyimpanan :', self)
self.Y2=QLabel('Lemari :', self)
self.Y3=QLabel('Kabinet Dapur :', self)
def line(self):
self.line1=QLineEdit(self)
self.line2=QLineEdit(self)
self.line4=QLineEdit(self)
self.line5=QLineEdit(self)
self.line6=QLineEdit(self)
self.line7=QLineEdit(self)
self.line8=QLineEdit(self)
self.pie=QPushButton('Pie Chart',self)
self.pie.clicked.connect(self.process_pie)
self.delete=QPushButton('Hapus',self)
self.delete.clicked.connect(self.hapus)
self.back=QPushButton('Kembali',self)
self.back.clicked.connect(self.kembali)
self.back.move(30,550)
def layout(self):
self.layout=QFormLayout()
self.layout.addRow(self.judul, self.line1)
self.layout.addRow(self.ketX, self.line2)
self.layout.addRow(self.X1, self.line4)
self.layout.addRow(self.X2, self.line5)
self.layout.addRow(self.Y1, self.line6)
self.layout.addRow(self.Y2, self.line7)
self.layout.addRow(self.Y3, self.line8)
self.layout.addRow(self.pie)
self.layout.addRow(self.delete)
self.setLayout(self.layout)
def hapus(self):
pesan=QMessageBox.question(self,'Warning', "Are
you gonna delete the data?",
QMessageBox.Yes |
QMessageBox.No)
if pesan ==QMessageBox.Yes:
from chart import Chart
self.a= Chart()
self.a.show()
self.hide()
if pesan == QMessageBox.No:
pass
def kembali(self):
from menu_utama import menuutama
self.a=menuutama()
self.a.show()
self.hide()
def process_pie(self): Digunakan untuk
title=str(self.line1.text()) proses dalam
sumbuX=str(self.line2.text()) pembuatan
labels = ['Tong Sampah', 'Tempat Tidur', 'Rak grafiknya.
Penyimpanan', 'Lemari', 'Kabinet Dapur']
X1=int(self.line4.text())
X2=int(self.line5.text())
X3=int(self.line6.text())
X4=int(self.line7.text())
X5=int(self.line8.text())
plt.title(title)
plt.xlabel(sumbuX)
x=[X1,X2,X3,X4,X5]
plt.pie(x, labels=labels, autopct='%1.1f%%',
shadow=True, startangle=90)
plt.axis('equal')
plt.show()
if __name__=='__main__': Digunakan untuk
app=QApplication(sys.argv) mengeksekusikan
ex=Chart() program yang
ex.show() dibuat.
sys.exit
2.3 Penutup
2.3.1 Kesimpulan
Dari penugasan program python GUI dengan PySide2 dapat diambil kesimpulan
sebagai berikut:
a. GUI merupakan sebuah modul dari program Python.
b. Modul GUI, Core, dan Widget dapat menampilkan tampilan pada program
python.
c. Matplotlib berfungsi untuk membangun visualisasi data pada program python.
2.3.2 Saran
Dari penugasan program Python GUI dengan PySide2 dapat diberikan saran
sebagai berikut:
a. Praktikan harus tetap saling bekerja sama dengan baik.
b. Praktikan harus memiliki hubungan berkomunikasi yang baik.
c. Praktikan dapat saling mengingatkan jika ada agenda praktikum.
d. Praktikan diharapkan untuk mencari dan membaca materi Python GUI dengan
PySide2 terlebih dahulu.