PEMROGRAMAN KOMPUTER
Disusun oleh:
Nama : M. Chaeruddin Azizi
NIM : D600180073
MATERI:
MODUL I : PYTHON DASAR
MODUL II : GUI PYTHON
MODUL III : DATABASE PYTHON DENGAN MYSQL DAN SQLITE
MODUL IV : HTML & CSS
MODUL V : WEB PYTHON
i
HALAMAN PENGESAHAN
Disusun oleh:
Nama : M. Chaeruddin Azizi
NIM : D600180073
Mengetahui,
(Munajat Tri Nugroho, S.T., M.T., Ph.D) (Hafidh Munawir, S.T., M.Eng)
ii
COVER SHEET
PRAKTIKUM PEMROGRAMAN KOMPUTER
2019
Disetujui oleh:
Asisten TTD
KATA PENGANTAR
Assalamualaikum Wr Wb.
Puji syukur penulis panjatkan atas kehadirat Allah SWT yang telah
melimpahkan berkah, rahmat, serta hidayah-Nya sehingga penulis dapat
menyelesaikan Laporan Praktikum Pemrograman Komputer dengan lancar dan
tepat waktu.
Adapun maksud dan tujuan tugas Laporan Praktikum Pemrograman
Komputer adalah untuk membekali praktikan dengan ilmu terapan pemrograman
komputer memasuki dunia kerja nanti.
Dalam penyusunan laporan ini, penulis banyak mendapat banuan dan
dukungan dari berbagai pihak yang terlibat, oleh karena itu penulis mengucapkan
banyak terima kasih kepada:
1. Hafidh Munawir S.T., M.Eng. selaku Kepala Laboratorium Teknik Industri.
2. Munajat Tri Nugroho, S.T., M.T., Ph.D. selaku Dosen Pengampu Mata Kuliah
Praktikum Pemrograman Komputer.
3. Abdul Lathif Muhammad Arifin selaku Koordinator Asisten Praktikum
Pemrograman Komputer.
4. Cindy Saraswati selaku Asisten Praktikum yang telah membimbing dan
mengarahkan penulis mulai dari pelaksanaan praktikum sampai penulisan
laporan ini selesai.
5. Semua pihak yang secara langsung atau tidak langsung telah membantu penulis
dalam penyusunan laporan ini.
Besar harapan Laporan Praktikum Pemrograman Komputer ini dapat
bermanfaat bagi penulis khususnya dan bagi semua pihak pada umumnya.
Penulis menyadari bahwa masih terdapat kekurangan dalam penyusunan
laporan ini. Untuk itu penulis secara lapang hati menerima kritik dan saran untuk
kesempurnaan penyusunan laporan selanjutnya.
Wassalamualaikum Wr Wb.
Surakarta, Juni 2019
Penulis
iv
HALAMAN PERSEMBAHAN
v
MOTTO
“Sesuatu yang belum dikerjakan, seringkali tampak mustahil; kita baru yakin kalua kita
telah berhasil melakukannya dengan baik.”
(Evelyn Underhill)
“Lebih baik bertempur dan kalah daripada tidak pernah bertempur sama sekali.”
(Arthur Hugh Clough)
vi
DAFTAR ISI
viii
DAFTAR TABEL
ix
DAFTAR GAMBAR
x
MODUL I
PYTHON DASAR
A. Hasil Pratikum
1. Program Scoring
Program scoring adalah suatu pemograman yang mengacu pada suatu
nilai atau score yang dapat memudahkan dalam perhitungan cepat tanpa
harus menghitung secara manual. Program scoring itu menjelaskan
bagaimana cara menginput data peserta yang akan mengikuti tes “One Day
Service” dan dapat langsung memunculkan nilai secara langsung dari hasil
mengerjakan soal rumus dalam pratikum saya misalkan nilai
kemuhammadiyahan menjadi nilai_ke, nilai biologi menjadi nilai_b, nilai
fisika menjadi nilai_fi, dan seterusnya
a. Program Login data
Login adalah proses paling utama yang akan menjalankan suatu
program. Jadi login adalah proses utama dalam menginput data sebelum
program selanjutnya berjalan.
1) Hasil Running Program Login Data
1
2
if fakultas == "kedokteran":
print("daftar program studi : \n kedokteran umum ")
prodi=input("pilih program studi:")
prodi=prodi.lower()
if prodi == "kedokteran umum":
print("Akreditasi B")
kemuhammadiyaan()
saintek()
nilai_akhir = score_ke + score_sa
print(“ “)
print(“ “)
else:
print("Score Akhir %d",nilai_akhir)
print("Maaf anda belum lulus, Silahkan coba
lagi")
soshum()
nilai_akhir = score_ke + score_so
print(" ")
print(" ")
if nilai_akhir >= 54:
print("Score Akhir %d",nilai_akhir)
print("Selamat anda berhasil lulus tes
masuk UMS – ONE DAY SERVICE")
else:
print("Score Akhir %d",nilai_akhir)
print("Maaf anda belum lulus, Silahkan
coba lagi")
kemuhammadiyaan()
soshum()
nilai_akhir = score_ke + score_so
print(“ “)
print(“ “)
if nilai_akhir >= 54:
print("Score Akhir %d",nilai_akhir)
print("Selamat anda berhasil lulus tes
masuk UMS – ONE DAY SERVICE")
else:
print("Score Akhir %d",nilai_akhir)
print("Maaf anda belum lulus, Silahkan
coba lagi")
print(“ “)
print(“ “)
if nilai_akhir >= 60:
print("Score Akhir %d",nilai_akhir)
print("Selamat anda berhasil lulus tes
masuk UMS – ONE DAY SERVICE")
else:
print("Score Akhir %d",nilai_akhir)
print("Maaf anda belum lulus, Silahkan
coba lagi")
kemuhammadiyaan()
saintek()
nilai_akhir = score_ke + score_sa
print(“ “)
print(“ “)
if nilai_akhir >= 58:
print("Score Akhir %d",nilai_akhir)
print("Selamat anda berhasil lulus tes
masuk UMS – ONE DAY SERVICE")
else:
print("Score Akhir %d",nilai_akhir)
print("Maaf anda belum lulus, Silahkan
coba lagi")
program()
score_ke = 0
score_sa = 0
score_so = 0
def kemuhammadiyaan():
global score_ke
14
print("Soal Kemuhammadiyahan")
print("1. Dua organisasi otonom (ortom) yang berdiri
pada masa KH. Ahmad Dahlan adalah ...")
print("a. IPM dan NA")
print("b. Hizbul Wathan dan Aisiyah")
print("c. PSHW dan IMM")
Jawab=str(input("Jawab: "))
if Jawab == "b":
print("Benar,Kamu dapat 4 poin")
score_ke += 4
else:
print("Maaf Anda Salah,Kamu dapat -1 poin")
score_ke -= 1
def saintek():
global score_sa
print("Soal Saintek")
print("(1) Biologi")
print("1. Persamaan antara tumbuhan lumut dan
tumbuhan paku adalah ....")
print("a. Metagenesis")
print("b. Rizoid dan sporofit")
print("c. Struktur sporofit")
Jawab=str(input("Jawab: "))
if Jawab == "a":
print("Benar,Kamu dapat 4 poin")
score_sa += 4
else:
print("Maaf Anda Salah,Kamu dapat -1 poin")
score_sa -= 1
print("(2) Fisika")
print("1. Gerakan suatu benda dimana setiap titik pada
benda tersebut mempunyai jarak yang tetap terhadap suatu
sumbu tertentu, merupakan pengertian dari...")
print("a. Gerak Translasi")
print("b. Perpindahan")
print("c. Gerak Rotasi")
Jawab=str(input("Jawab: "))
if Jawab == "c":
print("Benar,Kamu dapat 4 poin")
score_sa += 4
else:
print("Maaf Anda Salah,Kamu dapat -1 poin")
score_sa -= 1
print("c. Percepatan")
Jawab=str(input("Jawab: "))
if Jawab == "a":
print("Benar,Kamu dapat 4 poin")
score_sa += 4
else:
print("Maaf Anda Salah,Kamu dapat -1 poin")
score_sa -= 1
print("(3) Kimia")
print("1. Sifat berikut yang merupakan perubahan
kimia,kecuali ...")
print("a. air menjadi es")
print("b. kayu menjadi arang")
print("c. kertas menjadi abu")
Jawab=str(input("Jawab: "))
if Jawab == "a":
print("Benar,Kamu dapat 4 poin")
score_sa += 4
else:
print("Maaf Anda Salah,Kamu dapat -1 poin")
score_sa -= 1
print("(4) Matematika")
print("1. Bangun kubus adalah bangun yang sisi-
sisinya berbentuk ....")
print("a. Persegi")
print("b. Persegi panjang")
print("c. Segitiga")
Jawab=str(input("Jawab: "))
if Jawab == "a":
print("Benar,Kamu dapat 4 poin")
score_sa += 4
else:
print("Maaf Anda Salah,Kamu dapat -1 poin")
score_sa -= 1
Jawab=str(input("Jawab: "))
if Jawab == "b":
print("Benar,Kamu dapat 4 poin")
score_sa += 4
else:
print("Maaf Anda Salah,Kamu dapat -1 poin")
score_sa -= 1
def soshum():
global score_so
print("Soal Soshum")
print("(1) Ekonomi")
print("1. Berikut ini yang termasuk dampak negatif
adanya pembangunan ekonomi adalah ....")
print("a. berkurangnya pengangguran")
print("b. menciptakan lapangan pekerjaan")
print("c. meningkatnya urbanisasi")
Jawab=str(input("Jawab: "))
if Jawab == "c":
print("Benar,Kamu dapat 4 poin")
score_so += 4
else:
print("Maaf Anda Salah,Kamu dapat -1 poin")
score_so -= 1
print("(2) Sejarah")
print("1. Kata sejarah adalah diambil dari kata
syajarotun, berasal dari bahasa....")
print("a. Sansekerta")
print("b. Arab")
print("c. Inggris")
Jawab=str(input("Jawab: "))
if Jawab == "b":
print("Benar,Kamu dapat 4 poin")
score_so += 4
else:
print("Maaf Anda Salah,Kamu dapat -1 poin")
21
score_so -= 1
print("(3) Sosiologi")
print("1. Pernyataan di bawah ini yang bukan manfaat
mempelajari sosiologi adalah....")
print("a. mendapatkan penghasilan yang cukup besar")
print("b. menjadi lebih tanggap dan kritis dalam
menghadapi persoalan hidup")
22
score_so += 4
else:
print("Maaf Anda Salah,Kamu dapat -1 poin")
score_so -= 1
print("(4) Sosiologi")
print("1. Lapisan di permukaan bumi yang mendukung
kehidupan organisme adalah ....")
print("a. biochore")
print("b. biocyle")
print("c. biosfer")
Jawab=str(input("Jawab: "))
if Jawab == "c":
print("Benar,Kamu dapat 4 poin")
score_so += 4
else:
print("Maaf Anda Salah,Kamu dapat -1 poin")
score_so -= 1
print("Maaf Anda
Salah,Kamu
dapat -1
poin")
score_ke -= 1
def data():
i=0
NAMA=[]
NIM=[]
ASAL=[]
JURUSAN=[]
ANGKATAN=[]
30
IPS_TERAKHIR=[]
DOSEN_PA=[]
JUMLAH_SKS=[]
while True :
print("masukan data ke-",i+1)
NAMA.append(input ("masukan nama anda
:"))
NIM.append(input ("masukan nim anda
:"))
ASAL.append(input ("masukan asal anda
:"))
JURUSAN.append(input ("masukan jurusan anda
:"))
ANGKATAN.append(input ("masukan angkatan
anda:"))
IPS_TERAKHIR.append(input ("masukan ips anda
:"))
DOSEN_PA.append(input ("masukan dosen anda
:"))
JUMLAH_SKS.append(input ("masukan sks anda
:"))
lagi=""
while lagi !="y" and lagi !="t":
lagi= input("Anda Mau Menginput data lagi
?(Y/T):")
lagi=lagi.lower()
i += 1
if lagi == "t":
break
print("==============================================
=====================")
print(" DAFTAR DATA DIRI MAHASISWA")
print("==============================================
=====================")
print("No Nama NIM Asal Jurusan
Angkatan IPS Dosen PA SKS")
print("==============================================
=======================")
for n in range(i):
print(n+1," ",NAMA[n]," ",NIM[n]," ",ASAL[n],"
",JURUSAN[n]," ",ANGKATAN[n],"
",IPS_TERAKHIR[n]," ",DOSEN_PA[n],"
",JUMLAH_SKS[n], " ")
ing=""
31
[n]
Digunakan sebagai definisi/keterangan
dari variabel (n)
if hapus == NIM[s]:
NAMA.remove(NAMA[s])
NIM.remove(NIM[s])
ASAL.remove(ASAL[s])
JURUSAN.remove(JURUSAN[s])
ANGKATAN.remove(ANGKATAN[s])
IPS_TERAKHIR.remove(IPS_TERAKHIR[s])
DOSEN_PA.remove(DOSEN_PA[s])
JUMLAH_SKS.remove(JUMLAH_SKS[s])
print("==============================================
=====================")
print(" DAFTAR DATA DIRI MAHASISWA")
print("==============================================
=====================")
print("No Nama NIM Asal Jurusan Angkatan
IPS Dosen PA SKS")
print("==============================================
=======================")
for n in range (i-1):
print(n+1,"",NAMA[n-s],"",NIM[n-s],"",ASAL[n-
s],"",JURUSAN[n-s],"",ANGKATAN[n-
s],"",IPS_TERAKHIR[n-s],"",DOSEN_PA[n-
s],"",JUMLAH_SKS[n-s], "")
ing=""
print("==============================================
==================")
data()
3) Analisis Script Program Hapus Data Berdasarkan NIM
Tabel 1.6 Program Hapus Data
Script Keterangan
hapus =input("input Digunakan untuk memasukan data
NIM yang akan
dihapus : ") (kata) “hapus data berdasarkan
NIM mahasiswa” ke dalam
program
data() Digunakan sebagai fungsi
pemanggil data yang sudah di buat
sebelumnya
.index Digunakan untuk mengambil
variabel yang diinginkan dari list
remove() Digunakan untuk menghapus data
yang diinginkan
for n in range (i-1): Menampilkan pengulangan
sejumlah anggota (n) kurang 1
35
B. Penutup
1. Kesimpulan
Dari praktikum python dasar ini praktikan dapat menyimpulakn
beberapa hal :
a. Program scoring adalah suatu pemograman yang mengacu pada suatu
nilai atau score yang dapat memudahkan dalam perhitungan cepat tanpa
harus menghitung secara manual.
b. Login adalah proses paling utama yang akan menjalankan suatu
program.
c. Program soal pilihan bertujuan agar para peserta didik baru bisa memilih
fakultas dan jurusan yang mereka kehendaki. Selain itu juga tersedia
soal ujian masuk sesuai bidang jurusan yang diambil, yaitu sintek dan
soshum dan soal wajib kemuhammadiyahan. Kesalahan sintaks pada
python mudah untuk diperbaiki
d. Program list data mahasiswa adalah program memasukkan data diri
mahasiswa pada sebuah daftar yang dikerjakan dengan bahasa
pemrograman python.
e. program Input adalah program awal dari program list data mahasiswa,
dimana pada program ini pengguna diminta untuk memasukkan data
mahasiswa yang diinginkan.
f. Program Cari Data Berdasarkan NIM adalah program yang digunakan
untuk mencari data diri mahasiswa yang telah pengguna masukkan
dengan menggunakan NIM dari mahasiswa tersebut.
g. Program Hapus Data Berdasarkan NIM adalah program yang digunakan
untuk menghapus data diri mahasiswa yang telah pengguna masukkan
dengan menggunakan NIM dari mahasiswa tersebut
2. Saran
Dari praktikum python dasar ini praktikan dapat memberikan
beberapa saran seperti:
a. Praktikan diharap memerhatikan penjelasan dari asisten
b. Praktikan diharap mencatat hal penting selama praktikum
c. Praktikan diharap datang sebelum waktu praktikum dimulai
d. Praktikan harus mematuhi segala aturan lab
e. Praktikan diharap mempelajari modul sebelum praktikum
MODUL II
GUI PYTHON
A. Hasil Pratikum
1. Menu Utama
Menu utama adalah suatu pemograman yang mengacu pada daftar
perintah-perintah suatu perangkat lunak (program) yang apabila dieksekusi
akan menjalankan suatu perintah tertentu dari aplikasi. Program menu
utama itu menjelaskan bagaimana cara kita memilih soal saintek atau
soshum untuk menyelesaikan tes “One Day Service” dan dapat langsung
memunculkan pilihannya, soal wajibnya ada 2 macam soal, yaitu
kemuhammadiyaan dan inggris.
a. Hasil Running Program Menu Utama
class menu(QWidget):
def __init__(azi):
QWidget.__init__(azi)
36
37
azi.setWindowTitle('MENU UTAMA')
azi.setGeometry(350,80,700,600)
azi.icon=QIcon('ums.png')
azi.setWindowIcon(azi.icon)
azi.title1=QLabel('<h2><b><font color=green>ONE DAY
\
SERVICE 2019</font><b></h2>', azi)
azi.title1.move(250,50)
azi.title2=QLabel('<h2><b><font
color=brown>UNIVERSITAS
MUHAMMADIYAH SURAKARTA</font><b></h2>', azi)
azi.title2.move(150,75)
azi.title3=QLabel('<h3><b><font color=black>Apa yang
ingin anda kerjakan?</font><b></h3>', azi)
azi.title3.move(19,170)
azi.title4=QLabel('Directed by M. Chaeruddin Azizi',
azi)
azi.title4.move(10,530)
azi.title5=QLabel('D600180073', azi)
azi.title5.move(10,550)
azi.title6=QLabel('@2019', azi)
azi.title6.move(10,570)
azi.pilih()
def pilih(azi):
pilih1=QRadioButton('Saintek',azi)
pilih2=QRadioButton('Soshum',azi)
pilih1.move(10,200)
pilih2.move(10,220)
pilih1.clicked.connect(azi.Saintek)
pilih2.clicked.connect(azi.Soshum)
def Saintek(azi):
dor1=QPushButton('Kemuhammadiyaan',azi)
dor1.setGeometry(10,250,140,40)
dor1.show()
dor1.clicked.connect(azi.kemuhammadiyaan)
dor2=QPushButton('Inggris',azi)
dor2.setGeometry(200,300,140,40)
dor2.show()
dor2.clicked.connect(azi.inggris)
dor3=QPushButton('Biologi',azi)
dor3.setGeometry(10,300,140,40)
dor3.show()
dor3.clicked.connect(azi.biologi)
dor4=QPushButton('Fisika',azi)
dor4.setGeometry(200,250,140,40)
dor4.show()
dor4.clicked.connect(azi.fisika)
dor5=QPushButton('Data Mahasiswa',azi)
dor5.setGeometry(400,250,140,40)
dor5.show()
dor5.clicked.connect(azi.datamaha)
def Soshum(azi):
dor1=QPushButton('Kemuhammadiyaan',azi)
dor1.setGeometry(10,250,140,40)
dor1.show()
dor1.clicked.connect(azi.kemuhammadiyaan1)
38
dor2=QPushButton('Inggris',azi)
dor2.setGeometry(200,300,140,40)
dor2.show()
dor2.clicked.connect(azi.inggris1)
dor3=QPushButton('Sejarah',azi)
dor3.setGeometry(200,250,140,40)
dor3.show()
dor3.clicked.connect(azi.sejarah)
dor4=QPushButton('Geografi',azi)
dor4.setGeometry(10,300,140,40)
dor4.show()
dor4.clicked.connect(azi.geografi)
dor5=QPushButton('Data Mahasiswa',azi)
dor5.setGeometry(400,250,140,40)
dor5.show()
dor5.clicked.connect(azi.datamaha)
def kemuhammadiyaan(azi):
from soal_kemuhammadiyaan import kemuhammadiyaan
azi.ke=kemuhammadiyaan()
azi.ke.show()
azi.hide()
def kemuhammadiyaan1(azi):
from soal_kemuhammadiyaan1 import kemuhammadiyaan1
azi.ke1=kemuhammadiyaan1()
azi.ke1.show()
azi.hide()
def inggris(azi):
from soal_inggris import inggris
azi.bing=inggris()
azi.bing.show()
azi.hide()
def inggris1(azi):
from soal_inggris1 import inggris1
azi.bing1=inggris1()
azi.bing1.show()
azi.hide()
def biologi(azi):
from soal_biologi import biologi
azi.bi=biologi()
azi.bi.show()
azi.hide()
def fisika(azi):
from soal_fisika import fisika
azi.fi=fisika()
azi.fi.show()
azi.hide()
def sejarah(azi):
from soal_sejarah import sejarah
azi.se=sejarah()
azi.se.show()
azi.hide()
def geografi(azi):
from soal_geografi import geografi
39
azi.geo=geografi()
azi.geo.show()
azi.hide()
def datamaha(azi):
from data_mahasiswa import data
azi.x=data()
azi.x.show()
azi.hide()
if __name__ == '__main__':
app = QApplication(sys.argv)
ps=menu()
ps.show()
app.exec_()
sys.exit()
c. Analisis Script Menu Utama
Tabel 2.1 Analisis Script Program Menu Utama
Script Keterangan
import sys Untuk mengimport
from PySide2.QtCore import *
from PySide2.QtGui import * modul
from PySide2.QtWidgets import * QtCore,QtGui,dan
QtWidgets
pilih1.clicked.connect(azi.Saintek) Untuk
pilih2.clicked.connect(azi.Soshum)
menghubungkan
dengan fungsi laiinya
Membuat tombol
dor1=QPushButton('Kemuhammadiyaan',azi)
pada window
from soal_fisika import fisika Untuk meng-import
program dari kelas
lain
40
2. Soal Kemuhammadiyaan
Selanjutnya adalah program soal wajib yaitu soal
kemuhammadiyaan, program ini adalah program yang menampilkan soal
kemuhammadiyaan yang akan dikerjakan saat “ONE DAY SERVICE”.
a. Hasil Running Program Soal Kemuhammadiyaan
def soal(azi):
azi.nilai=0
41
azi.comboone.activated[str].connect(azi.nilaione)
azi.combotwo.activated[str].connect(azi.nilaitwo)
azi.combothree.activated[str].connect
(azi.nilaithree)
azi.combofour.activated[str].connect(azi.nilaifour)
azi.soalfive.move(10,210)
azi.jawaban=QLabel('Jawaban Anda', azi)
azi.jawaban.move(10,225)
azi.combofive=QComboBox(azi)
azi.combofive.addItems(['','Memberikan
pertolongan
kepada masyarakat','Menempatkan al-Qur’an di
sisi
masyarakat','Menegakkan dan menjujunjung tinggi
agama islam'])
azi.combofive.move(10,240)
azi.combofive.activated[str].connect(azi.nilaifive)
def nilaione(azi,jawab):
if str(jawab)=='Hizbul Wathan dan Aisiyah':
azi.nilai += 20
else:
azi.nilai -= 10
def nilaitwo(azi,jawab):
if str(jawab)=='Takhayul, Bid’ah, Chufarat':
azi.nilai += 20
else:
azi.nilai -= 10
def nilaithree(azi,jawab):
if str(jawab)=='Manusia':
azi.nilai += 20
else:
azi.nilai -= 10
def nilaifour(azi,jawab):
if str(jawab)=='KH. Amhad Dalan':
azi.nilai += 20
else:
azi.nilai -= 10
def nilaifive(azi,jawab):
if str(jawab)=='Menegakkan dan menjujunjung
tinggi
agama islam':
azi.nilai += 20
azi.total.setText(' Hasil Akhir Nilai ' +
str(azi.nilai))
azi.total.adjustSize()
if azi.nilai >= 70:
azi.ket.setText('CONGRATULATIONS')
azi.ket.adjustSize()
else:
azi.nilai -= 10
azi.total.setText('Hasil Akhir Nilai ' +
str(azi.nilai))
azi.total.adjustSize()
if azi.nilai >= 70:
azi.ket.setText('CONGRATULATIONS')
azi.ket.adjustSize()
else:
azi.ket.setText('SORRY YOUR FAIL')
azi.ket.adjustSize()
def total(azi):
azi.batas=QLabel('===========', azi)
azi.batas.move(10,375)
azi.total=QLabel(('Your Final Score Is '), azi)
43
azi.ket=QLabel(('LOLOS/TIDAK??'), azi)
azi.total.move(10,385)
azi.ket.move(10,400)
def repeat(azi):
r=QLabel('Do You Want To Repeat??', azi)
r.move(10,420)
def ulang(azi):
pilihiya=QRadioButton('Yes', azi)
pilihtidak=QRadioButton('No', azi)
pilihiya.move(10,440)
pilihtidak.move(50,440)
pilihiya.clicked.connect(azi.apabilaiya)
pilihtidak.clicked.connect(azi.apabilatidak)
def option(azi):
lanjut=QPushButton('Next', azi)
lanjut.move(400,400)
lanjut.clicked.connect(azi.next)
def apabilaiya(azi):
note=QMessageBox.information(azi,'notice',str('If
You Have Tried 3 Times \nPlease Register
Again'))
from soal_kemuhammadiyaan import kemuhammadiyaan
azi.t=kemuhammadiyaan
azi.t.show()
azi.hide()
def apabilatidak(azi):
azi.w=QLabel('Thank You For Participating', azi)
azi.w.move(200,425)
azi.w.show()
def next(azi):
from soal_inggris import inggris
azi.k=inggris()
azi.k.show()
azi.hide()
if __name__ == '__main__':
app = QApplication(sys.argv)
ke=kemuhammadiyaan()
ke.show()
app.exec_()
sys.exit()
44
3. Soal Inggris
program soal wajib selanjutnya, yaitu soal inggris, program ini
adalah program yang menampilkan soal inggris yang akan dikerjakan saat
“ONE DAY SERVICE”.
a. Hasil Running Program Soal Inggris
azi.repeat()
azi.ulang()
azi.option()
azi.next()
def soal(azi):
azi.nilai=0
azi.soalone=QLabel('1) Do you work. . .the
evening?',
azi)
azi.soalone.move(10,10)
azi.jawaban=QLabel('Jawaban Anda', azi)
azi.jawaban.move(10,25)
azi.comboone=QComboBox(azi)
azi.comboone.addItems(['','at','in','on'])
azi.comboone.move(10,40)
azi.comboone.activated[str].connect(azi.nilaione)
azi.combotwo.activated[str].connect(azi.nilaitwo)
azi.combothree.addItems(['','attend','attended','have
attended'])
azi.combothree.move(10,140)
azi.combothree.activated[str].connect(azi.nilaithree)
azi.combofour.activated[str].connect(azi.nilaifour)
azi.combofive.activated[str].connect(azi.nilaifive)
def nilaione(azi,jawab):
if str(jawab)=='in':
azi.nilai += 20
else:
azi.nilai -= 10
def nilaitwo(azi,jawab):
if str(jawab)=='met':
azi.nilai += 20
else:
azi.nilai -= 10
def nilaithree(azi,jawab):
if str(jawab)=='have attended':
azi.nilai += 20
else:
azi.nilai -= 10
def nilaifour(azi,jawab):
if str(jawab)=='several times':
azi.nilai += 20
else:
azi.nilai -= 10
def nilaifive(azi,jawab):
if str(jawab)=='have bought':
azi.nilai += 20
azi.total.setText(' Hasil Akhir Nilai ' +
str(azi.nilai))
azi.total.adjustSize()
if azi.nilai >= 70:
azi.ket.setText('CONGRATULATIONS')
azi.ket.adjustSize()
else:
azi.nilai -= 10
azi.total.setText('Hasil Akhir Nilai ' +
str(azi.nilai))
azi.total.adjustSize()
if azi.nilai >= 70:
azi.ket.setText('CONGRATULATIONS')
azi.ket.adjustSize()
else:
azi.ket.setText('SORRY YOUR FAIL')
azi.ket.adjustSize()
def total(azi):
azi.batas=QLabel('===========', azi)
azi.batas.move(10,375)
azi.total=QLabel(('Your Final Score Is '), azi)
azi.ket=QLabel(('LOLOS/TIDAK??'), azi)
azi.total.move(10,385)
azi.ket.move(10,400)
def repeat(azi):
r=QLabel('Do You Want To Repeat??', azi)
r.move(10,420)
def ulang(azi):
pilihiya=QRadioButton('Yes', azi)
pilihtidak=QRadioButton('No', azi)
47
pilihiya.move(10,440)
pilihtidak.move(50,440)
pilihiya.clicked.connect(azi.apabilaiya)
pilihtidak.clicked.connect(azi.apabilatidak)
def option(azi):
lanjut=QPushButton('Next', azi)
lanjut.move(400,400)
lanjut.clicked.connect(azi.next)
def apabilaiya(azi):
note=QMessageBox.information(azi,'notice',str('If
You
Have Tried 3 Times \nPlease Register Again'))
from soal_inggris import inggris
azi.f=biologi
azi.f.show()
azi.hide()
def apabilatidak(azi):
azi.t=QLabel('Thank You For Participating', azi)
azi.t.move(200,425)
azi.t.show()
def next(azi):
from soal_biologi import biologi
azi.l=biologi()
azi.l.show()
azi.hide()
if __name__ == '__main__':
app = QApplication(sys.argv)
bing=inggris()
bing.show()
app.exec_()
sys.exit()
c. Analisis Script Program Soal Inggris
Tabel 2.3 Analisis Program Soal Inggris
Script Keterangan
azi.soal() Untuk Mengaktifkan fungsi
azi.total()
soal,total,repeat,ulang,option,da
azi.repeat()
azi.ulang() n next yang telah kita buat
azi.option()
azi.next()
Untuk
azi.combofive.activated[s
tr].connect(azi.nilaifive
mengaktifkan/menghubungkan
) ke fungsi jawaban yang benar
pada soal tersebut
4. Soal Saintek
program soal pilihan, yaitu soal saintek dan soshum, pada bagian
inimerupakan program soal saintek yang terdiri dari 2 macam soal yaitu,
soal biologi dan fisika.
48
a. Soal Biologi
program soal saintek pertama yaitu soal biologi, program ini
adalah program yang menampilkan soal biologi yang akan dikerjakan
saat “ONE DAY SERVICE”.
1) Hasil Running Program Soal Biologi
def soal(azi):
azi.nilai=0
azi.soalone=QLabel('1) Persamaan antara tumbuhan
lumut dan tumbuhan paku adalah ....', azi)
azi.soalone.move(10,10)
49
azi.comboone.activated[str].connect(azi.nilaione)
azi.combotwo.addItems(['','Sporofit','Sporangium',
'Gam
etofit'])
azi.combotwo.move(10,90)
azi.combotwo.activated[str].connect(azi.nilaitwo)
azi.combothree.activated[str].connect(azi.nilaithree)
azi.combofour.activated[str].connect(azi.nilaifour)
amilum'])
azi.combofive.move(10,240)
azi.combofive.activated[str].connect(azi.nilaifive)
def nilaione(azi,jawab):
if str(jawab)=='Metagenesis':
azi.nilai += 20
else:
azi.nilai -= 10
def nilaitwo(azi,jawab):
if str(jawab)=='Gametofit':
azi.nilai += 20
else:
azi.nilai -= 10
def nilaithree(azi,jawab):
if str(jawab)=='Bryophyta':
azi.nilai += 20
else:
azi.nilai -= 10
def nilaifour(azi,jawab):
if str(jawab)=='Mitokondria':
azi.nilai += 20
else:
azi.nilai -= 10
def nilaifive(azi,jawab):
if str(jawab)=='Membentuk dan menyimpan amilum':
azi.nilai += 20
azi.total.setText(' Hasil Akhir Nilai ' +
str(azi.nilai))
azi.total.adjustSize()
if azi.nilai >= 70:
azi.ket.setText('CONGRATULATIONS')
azi.ket.adjustSize()
else:
azi.nilai -= 10
azi.total.setText('Hasil Akhir Nilai ' +
str(azi.nilai))
azi.total.adjustSize()
if azi.nilai >= 70:
azi.ket.setText('CONGRATULATIONS')
azi.ket.adjustSize()
else:
azi.ket.setText('SORRY YOUR FAIL')
azi.ket.adjustSize()
def total(azi):
azi.batas=QLabel('===========', azi)
azi.batas.move(10,375)
azi.total=QLabel(('Your Final Score Is '), azi)
azi.ket=QLabel(('LOLOS/TIDAK??'), azi)
azi.total.move(10,385)
azi.ket.move(10,400)
def repeat(azi):
r=QLabel('Do You Want To Repeat??', azi)
r.move(10,420)
def ulang(azi):
pilihiya=QRadioButton('Yes', azi)
51
pilihtidak=QRadioButton('No', azi)
pilihiya.move(10,440)
pilihtidak.move(50,440)
pilihiya.clicked.connect(azi.apabilaiya)
pilihtidak.clicked.connect(azi.apabilatidak)
def option(azi):
lanjut=QPushButton('Next', azi)
lanjut.move(400,400)
lanjut.clicked.connect(azi.next)
def apabilaiya(azi):
note=QMessageBox.information(azi,'notice',str('If
You Have Tried 3 Times \nPlease Register
Again'))
from soal_biologi import biologi
azi.f=biologi
azi.f.show()
azi.hide()
def apabilatidak(azi):
azi.t=QLabel('Thank You For Participating', azi)
azi.t.move(200,425)
azi.t.show()
def next(azi):
from soal_fisika import fisika
azi.m=fisika()
azi.m.show()
azi.hide()
if __name__ == '__main__':
app = QApplication(sys.argv)
bi=biologi()
bi.show()
app.exec_()
sys.exit()
3) Analisis Script Program Soal Biologi
Tabel 2.4 Analisis Program Soal Biologi
Script Keterangan
ifstr(jawab)=='Mitokondria': Menjelaskan apabila
azi.nilai += 20
else: menjawab benar mendapat
azi.nilai -= 10 +20 dan sala -10
b. Soal Fisika
Program soal saintek kedua yaitu soal fisika, program ini adalah
program yang menampilkan soal fisika yang akan dikerjakan saat “ONE
DAY SERVICE”.
52
def soal(azi):
azi.nilai=0
azi.soalone=QLabel('1) Gerakan suatu benda
dimana
setiap titik pada benda tersebut mempunyai
jarak
yang tetap terhadap suatu sumbu tertentu,
merupakan pengertiandari...', azi)
azi.soalone.move(10,10)
53
azi.comboone.activated[str].connect
(azi.nilaione)
azi.combotwo.activated[str].connect
(azi.nilaitwo)
azi.soalthree=QLabel('3) Perbandingan
tegangan
terhadap regangan disebut ...', azi)
azi.soalthree.move(10,110)
azi.jawaban=QLabel('Jawaban Anda', azi)
azi.jawaban.move(10,125)
azi.combothree=QComboBox(azi)
azi.combothree.addItems(['','Regangan',
'Modulus
elastisitas','Modulus plastisitas'])
azi.combothree.move(10,140)
azi.combothree.activated[str].connect
(azi.nilaithree)
azi.combofour.activated[str].connect
(azi.nilaifour)
,'Daya'])
azi.combofive.move(10,240)
azi.combofive.activated[str].connect
(azi.nilaifive)
def nilaione(azi,jawab):
if str(jawab)=='Gerak Rotasi':
azi.nilai += 20
else:
azi.nilai -= 10
def nilaitwo(azi,jawab):
if str(jawab)=='Gerak Lurus Beraturan (GLB)':
azi.nilai += 20
else:
azi.nilai -= 10
def nilaithree(azi,jawab):
if str(jawab)=='Modulus elastisitas':
azi.nilai += 20
else:
azi.nilai -= 10
def nilaifour(azi,jawab):
if str(jawab)=='Massa jenis zat cair':
azi.nilai += 20
else:
azi.nilai -= 10
def nilaifive(azi,jawab):
if str(jawab)=='Usaha':
azi.nilai += 20
azi.total.setText(' Hasil Akhir Nilai ' +
str(azi.nilai))
azi.total.adjustSize()
if azi.nilai >= 70:
azi.ket.setText('CONGRATULATIONS')
azi.ket.adjustSize()
else:
azi.nilai -= 10
azi.total.setText('Hasil Akhir Nilai ' +
str(azi.nilai))
azi.total.adjustSize()
if azi.nilai >= 70:
azi.ket.setText('CONGRATULATIONS')
azi.ket.adjustSize()
else:
azi.ket.setText('SORRY YOUR FAIL')
azi.ket.adjustSize()
def total(azi):
azi.batas=QLabel('===========', azi)
azi.batas.move(10,375)
azi.total=QLabel(('Your Final Score Is '),
azi)
azi.ket=QLabel(('LOLOS/TIDAK??'), azi)
azi.total.move(10,385)
azi.ket.move(10,400)
def repeat(azi):
r=QLabel('Do You Want To Repeat??', azi)
r.move(10,420)
def ulang(azi):
55
pilihiya=QRadioButton('Yes', azi)
pilihtidak=QRadioButton('No', azi)
pilihiya.move(10,440)
pilihtidak.move(50,440)
pilihiya.clicked.connect(azi.apabilaiya)
pilihtidak.clicked.connect(azi.apabilatidak)
def option1(azi):
lanjut=QPushButton('Next', azi)
lanjut.move(400,400)
lanjut.clicked.connect(azi.next)
def option2(azi):
kembali=QPushButton('Back', azi)
kembali.move(400,440)
kembali.clicked.connect(azi.balik)
def balik(azi):
from main_menu import menu
azi.b=menu()
azi.b.show()
azi.hide()
def apabilaiya(azi):
note=QMessageBox.information(azi,'notice',str('If
You Have Tried 3 Times \nPlease Register
Again'))
from soal_fisika import fisika
azi.f=fisika
azi.f.show()
azi.hide()
def apabilatidak(azi):
azi.t=QLabel('Thank You For Participating',
azi)
azi.t.move(200,425)
azi.t.show()
def next(azi):
from soal_kemuhammadiyaan import
kemuhammadiyaan
azi.n=kemuhammadiyaan()
azi.n.show()
azi.hide()
if __name__ == '__main__':
app = QApplication(sys.argv)
fi=fisika()
fi.show()
app.exec_()
sys.exit()
56
.
57
def soal(azi):
azi.nilai=0
azi.soalone=QLabel('1) Kata sejarah adalah
diambil
dari kata syajarotun, berasal dari bahasa....',
azi)
azi.soalone.move(10,10)
azi.jawaban=QLabel('Jawaban Anda', azi)
azi.jawaban.move(10,25)
azi.comboone=QComboBox(azi)
azi.comboone.addItems(['','Sansekerta','Arab'
,'Inggris'])
azi.comboone.move(10,40)
azi.comboone.activated[str].connect(azi.nilaione)
azi.combotwo.activated[str].connect(azi.nilaitwo)
azi.combothree.move(10,140)
azi.combothree.activated[str].connect
(azi.nilaithree)
azi.combofour.activated[str].connect(azi.nilaifour)
azi.combofive.activated[str].connect(azi.nilaifive)
def nilaione(azi,jawab):
if str(jawab)=='Arab':
azi.nilai += 20
else:
azi.nilai -= 10
def nilaitwo(azi,jawab):
if str(jawab)=='penulisan peristiwa berkaitan
dengan
keindahan bahasa':
azi.nilai += 20
else:
azi.nilai -= 10
def nilaithree(azi,jawab):
if str(jawab)=='pengalaman manusia yang
sebenarnya':
azi.nilai += 20
else:
azi.nilai -= 10
def nilaifour(azi,jawab):
if str(jawab)=='terjadi berulang dan persis
sama':
azi.nilai += 20
else:
azi.nilai -= 10
59
def nilaifive(azi,jawab):
if str(jawab)=='massa sebelum manusia mengenal
tulisan':
azi.nilai += 20
azi.total.setText(' Hasil Akhir Nilai ' +
str(azi.nilai))
azi.total.adjustSize()
if azi.nilai >= 70:
azi.ket.setText('CONGRATULATIONS')
azi.ket.adjustSize()
else:
azi.nilai -= 10
azi.total.setText('Hasil Akhir Nilai ' +
str(azi.nilai))
azi.total.adjustSize()
if azi.nilai >= 70:
azi.ket.setText('CONGRATULATIONS')
azi.ket.adjustSize()
else:
azi.ket.setText('SORRY YOUR FAIL')
azi.ket.adjustSize()
def total(azi):
azi.batas=QLabel('===========', azi)
azi.batas.move(10,375)
azi.total=QLabel(('Your Final Score Is '), azi)
azi.ket=QLabel(('LOLOS/TIDAK??'), azi)
azi.total.move(10,385)
azi.ket.move(10,400)
def repeat(azi):
r=QLabel('Do You Want To Repeat??', azi)
r.move(10,420)
def ulang(azi):
pilihiya=QRadioButton('Yes', azi)
pilihtidak=QRadioButton('No', azi)
pilihiya.move(10,440)
pilihtidak.move(50,440)
pilihiya.clicked.connect(azi.apabilaiya)
pilihtidak.clicked.connect(azi.apabilatidak)
def option(azi):
lanjut=QPushButton('Next', azi)
lanjut.move(400,400)
lanjut.clicked.connect(azi.next)
def apabilaiya(azi):
note=QMessageBox.information(azi,'notice',str('If
You Have Tried 3 Times \nPlease Register
Again'))
from soal_sejarah import sejarah
azi.f=sejarah
azi.f.show()
azi.hide()
def apabilatidak(azi):
azi.t=QLabel('Thank You For Participating', azi)
60
azi.t.move(200,425)
azi.t.show()
def next(azi):
from soal_geografi import geografi
azi.o=geografi()
azi.o.show()
azi.hide()
if __name__ == '__main__':
app = QApplication(sys.argv)
se=sejarah()
se.show()
app.exec_()
sys.exit()
3) Analisis Script Program Soal Sejarah
Tabel 2.6 Program Soal Sejarah
Script Keterangan
if azi.nilai >= 70: Memberikan
azi.ket.setText('CONGRATULATIONS')
azi.ket.adjustSize() keterangan apabila
else: nilai akhir melebihi
azi.ket.setText('SORRY YOUR FAIL') 70 maka kamu
azi.ket.adjustSize()
dinyatakan lulus dan
jika tidak melebihi
maka kamu
dinyatakan gagal
b. Soal Geografi
Program soal soshum kedua yaitu soal geografi, program ini adalah
program yang menampilkan soal geografi yang akan dikerjakan saat
“ONE DAY SERVICE”.
61
azi.next()
def soal(azi):
azi.nilai=0
azi.soalone=QLabel('1) Lapisan di permukaan
bumi yang mendukung kehidupan organisme
adalah
....', azi)
azi.soalone.move(10,10)
azi.jawaban=QLabel('Jawaban Anda', azi)
azi.jawaban.move(10,25)
azi.comboone=QComboBox(azi)
azi.comboone.addItems(['','biochore','biocyle'
,'biosfer'])
azi.comboone.move(10,40)
azi.comboone.activated[str].connect(azi.
nilaione)
azi.combotwo.activated[str].connect(azi.
nilaitwo)
azi.combothree.addItems(['','stepa','tundra'
,'sabana'])
azi.combothree.move(10,140)
azi.combothree.activated[str].connect(azi.
nilaithree)
azi.jawaban.move(10,175)
azi.combofour=QComboBox(azi)
azi.combofour.addItems(['','iklim, tanah,
dan
relief','tanah, relief, dan
fauna','biocycle,
angin, dan suhu'])
azi.combofour.move(10,190)
azi.combofour.activated[str].connect(azi.
nilaifour)
azi.combofive.activated[str].connect(azi.
nilaifive)
def nilaione(azi,jawab):
if str(jawab)=='biosfer':
azi.nilai += 20
else:
azi.nilai -= 10
def nilaitwo(azi,jawab):
if str(jawab)=='hutan heterogen':
azi.nilai += 20
else:
azi.nilai -= 10
def nilaithree(azi,jawab):
if str(jawab)=='sabana':
azi.nilai += 20
else:
azi.nilai -= 10
def nilaifour(azi,jawab):
if str(jawab)=='iklim, tanah, dan relief':
azi.nilai += 20
else:
azi.nilai -= 10
def nilaifive(azi,jawab):
if str(jawab)=='anoa':
azi.nilai += 20
azi.total.setText(' Hasil Akhir Nilai
' +
str(azi.nilai))
azi.total.adjustSize()
if azi.nilai >= 70:
azi.ket.setText('CONGRATULATIONS')
azi.ket.adjustSize()
else:
64
azi.nilai -= 10
azi.total.setText('Hasil Akhir Nilai '
+
str(azi.nilai))
azi.total.adjustSize()
if azi.nilai >= 70:
azi.ket.setText('CONGRATULATIONS')
azi.ket.adjustSize()
else:
azi.ket.setText('SORRY YOUR FAIL')
azi.ket.adjustSize()
def total(azi):
azi.batas=QLabel('===========', azi)
azi.batas.move(10,375)
azi.total=QLabel(('Your Final Score Is '),
azi)
azi.ket=QLabel(('LOLOS/TIDAK??'), azi)
azi.total.move(10,385)
azi.ket.move(10,400)
def repeat(azi):
r=QLabel('Do You Want To Repeat??', azi)
r.move(10,420)
def ulang(azi):
pilihiya=QRadioButton('Yes', azi)
pilihtidak=QRadioButton('No', azi)
pilihiya.move(10,440)
pilihtidak.move(50,440)
pilihiya.clicked.connect(azi.apabilaiya)
pilihtidak.clicked.connect(azi.apabilatidak)
def option1(azi):
lanjut=QPushButton('Next', azi)
lanjut.move(400,400)
lanjut.clicked.connect(azi.next)
def option2(azi):
kembali=QPushButton('Back', azi)
kembali.move(400,440)
kembali.clicked.connect(azi.balik)
def balik(azi):
from main_menu import menu
azi.b=menu()
azi.b.show()
azi.hide()
def apabilaiya(azi):
note=QMessageBox.information(azi,'notice',
str
('If You Have Tried 3 Times \nPlease
Register
65
Again'))
from soal_geografi import geografi
azi.f=sejarah
azi.f.show()
azi.hide()
def apabilatidak(azi):
azi.t=QLabel('Thank You For Participating',
azi)
azi.t.move(200,425)
azi.t.show()
def next(azi):
from data_mahasiswa import data
azi.p=data()
azi.p.show()
azi.hide()
if __name__ == '__main__':
app = QApplication(sys.argv)
geo=geografi()
geo.show()
app.exec_()
sys.exit()
6. Data Mahasiswa
Program yang ditulis dengan Bahasa Python dan dimuculkan di
PySide2 menjadi program table data mahasiswa. Program ini akan
memperlihatkan 35 data mahasiswa yang sudah kita tulis di script.
66
class data(QWidget):
def __init__(azi):
QWidget.__init__(azi)
azi.setWindowTitle('DATA MAHASISWA')
azi.setGeometry(300,100,700,600)
azi.icon=QIcon('data.jpg')
azi.setWindowIcon(azi.icon)
azi.title1=QLabel('<h2><b><font color=green>DATA
MAHASISWA-ONE DAY SERVICE 2019</font><b></h2>',
azi)
azi.title1.move(155,20)
azi.title2=QLabel('Directed by M. Chaeruddin
Azizi',
azi)
azi.title2.move(20,540)
azi.title3=QLabel('D600180073', azi)
azi.title3.move(20,560)
azi.title4=QLabel('@2019', azi)
azi.title4.move(20,580)
azi.isinya()
def isinya(azi):
azi.isi=QTableWidget(azi)
azi.isi.setRowCount(35)
azi.isi.setColumnCount(8)
67
azi.isi.resize(660,475)
azi.isi.move(20,60)
azi.isi.show()
Industri','Teknik
Industri','Teknik
Industri','Teknik
Industri','Teknik
Industri','Teknik
Industri','Teknik
Industri','Teknik
Industri','Pend.Teknik
Informatika','Arsitektur','Teknik
Industri','PAI','PAI','PAI','PAI'
,'PAI','PAI','PAI','PAI'
,'Fisioterapi'
,'Teknik Industri','Pend.
Matematika'
,'HES','HES','HES','Psikologi'
,'Pend. Bhs.
Inggris','PAI','Teknik
Sipil'],
'Angkatan':['2018','2018','2018','2018'
,'2018','2018','2018'
,'2018','2018'
,'2018','2018','2018'
,'2018','2018'
,'2018','2018','2018'
,'2018','2018'
,'2018','2018','2018'
,'2018','2018'
,'2018','2017','2018'
,'2018','2018'
,'2018','2018','2018'
,'2018','2018'
,'2018'],
'Ips terakhir':['3,5','3.00','3.32','3,35'
,'3.6','3.6','3,61'
,'3.56','3.37'
,'3.29','3.34','3.5','3.21'
,'3,37','3.38','3.58','2,47'
,'3.4','3,3','2,0','3,11'
,'3.6','3,7','3,85','3,45'
,'3.25','3.7','3,08','3,39'
,'3,67','3,35','3.58','3.7
','3,75','2.93'],
'Dosen PA':['Indah Pratiwi','Siti
Fatimah','Ida
Nursanti','Ahmad Kholid
Alghofari'
,'Mohammad Ali','Mohammad Ali'
,'Much. Djunaidi','Much Junaidi
','Hari Prasetyo','Ahmad Kholid
Alghofari','Ahmad Kholid
Alghofari'
,'Much Djunaidi','Ida Nursanti'
,'Mila Faila Sufa','Arif
Setyawan'
,'Samsudin raidi','Ida Nursanti'
,'Najmudin','Chusniatun
','Alifiatul','Mohammad Ali'
,'Zainal Abidin','Chusniatun'
,'Maarif Jamuin','Zainal Abidin
','Wahyuni','Ahmad Kholid Al
Ghifari','Nida','Muhammad
Muinudinillah','Muhammad
MuInidinillah','Muinudillah'
,'Setya Ashanty','Sumayah'
,'Mahasri Shobahiya','Sri
69
Sunaryono'],
'Jumlah sks':['19','20','19','19','10'
,'10','19','19','19','19','19'
,'19','19','19','20','19','19'
,'20','20','20','10','20','20
','20','20','20','19','20','20
','20','20','21'
,'20','20','20']}
headers=[]
if __name__ == '__main__':
app=QApplication(sys.argv)
x=data()
x.show()
app.exec_()
sys.exit()
B. Penutup
1. Kesimpulan
Dari praktikum Gui python ini praktikan dapat menyimpulkan
beberapa hal :
a. Menu utama adalah suatu pemograman yang mengacu pada daftar
perintah-perintah suatu perangkat lunak (program) yang apabila
dieksekusi akan menjalankan suatu perintah tertentu dari aplikasi
b. Connect berfungsi untuk menyambungkan pilihan soal ke program soal
yang sudah dibuat sebelumya
c. Selanjutnya adalah program soal wajib yaitu soal kemuhammadiyaan,
program ini adalah program yang menampilkan soal
kemuhammadiyaan yang akan dikerjakan saat “ONE DAY
SERVICE”.
d. program soal pilihan, yaitu soal saintek dan soshum, pada bagian
inimerupakan program soal saintek yang terdiri dari 2 macam soal
yaitu, soal biologi dan fisika.
e. Program soal pilihan selanjutnya, yaitu soal soshum, pada bagian ini
merupakan program soal soshum yang terdiri dari 2 macam soal yaitu,
soal sejarah dan geografi.
2. Saran
Dari praktikum Gui python ini praktikan dapat memberikan beberapa
saran seperti:
a. Praktikan diharap memerhatikan penjelasan dari asisten
b. Praktikan diharap mencatat hal penting selama praktikum
c. Praktikan diharap datang sebelum waktu praktikum dimulai
d. Praktikan harus mematuhi segala aturan lab
e. Praktikan diharap mempelajari modul sebelum praktikum
MODUL III
DATABASE PYTHO DENGAN MYSQL DAN SQLITE
A. Hasil Pratikum
1. Membuat Database
Database dapat didefinisikan sebagai kumpulan data yang terdiri
dari satu atau lebih tabel yang terintegrasi satu sama lain, dimana setiap user
diberi wewenang untuk dapat mengakses (seperti mengubah, menghapus,
mencari, dan menambah) data dalam tabel-tabel tersebut. Dalam membuat
database kita perlu menggunak aplikasi XAMPP untuk membuat local host
kita sendiri.
a. Hasil Running Program Membuat Database
def basedata():
try:
koneksi = mysql.connector.connect(
host='localhost',
user='root',
password=''
)
sor=koneksi.cursor()
sor.execute('CREATE DATABASE mahasiswa')
71
72
if __name__=='__main__':
basedata()
def buattabel():
try:
koneksi = mysql.connector.connect(
host='local host',
user='root',
password='',
database='mahasiswa'
)
73
sor=koneksi.cursor()
sor.execute(tabel)
sor.close()
if __name__=='__main__':
buattabel()
3. Menambah Data
Menambah data adalah program yang difungsikan untuk memberi
isi pada tabel yang telah kita buat sebelumya. Pengisianya sesuai dengan
format yanf telah kita tentukan sebelumnya.
a. Hasil Running Program Menambah Data
def tambahdata():
try:
koneksi = mysql.connector.connect(
host='localhost',
user='root',
password='',
database='mahasiswa'
)
sor=koneksi.cursor()
data1=('D600180007',
'Wildan Bramantya B',
'Yogyakarta',
'Teknik Industri',
'2018',
'3,5',
'Indah Pratiwi',
'19')
data2=('D500180097',
'Prasetyo Budi N',
'Jakarta',
'Teknik Kimia',
'2018',
'3,00',
'Siti Fatimah',
75
'20')
data3=('D600180157',
'Yuma Setiaji S',
'Klaten',
'Teknik Industri',
'2018',
'3,32',
'Ida Nursanti',
'19')
tambahkan='''INSERT INTO mahasiswa_ums
VALUES(%s,%s,%s,%s,%s,%s,%s,%s)'''
try:
sor.execute(tambahkan,data1)
sor.execute(tambahkan,data2)
sor.execute(tambahkan,data3)
except mysql.connector.Error:
koneksi.rollback()
print('Input data gagal')
else:
print('Data berhasil ditambahkan')
koneksi.commit()
sor.close()
except mysql.connector.Error as er:
print('Error',er)
else:
koneksi.close()
if __name__=='__main__':
tambahdata()
class data(QWidget):
def __init__(azi):
QWidget.__init__(azi)
azi.setWindowTitle('DATABASE MySql')
azi.setGeometry(300,100,700,600)
azi.icon=QIcon('data.jpg')
azi.setWindowIcon(azi.icon)
azi.title1=QLabel('<h2><b><font color=green>DATA
MAHASISWA</font><b></h2>', azi)
azi.title1.move(250,20)
azi.title2=QLabel('Directed by M. Chaeruddin
Azizi', azi)
azi.title2.move(20,540)
azi.title3=QLabel('D600180073', azi)
azi.title3.move(20,560)
azi.title4=QLabel('@2019', azi)
azi.title4.move(20,580)
azi.satu()
77
azi.dua()
azi.tiga()
azi.akses()
def satu(azi):
azi.tombol1=QPushButton('Cari',azi)
azi.tombol1.clicked.connect(azi.cari)
azi.tombol1.setGeometry(620,200,70,30)
def cari(azi):
from from_cari import searching
azi.formcr = searching()
azi.formcr.show()
azi.hide()
def dua(azi):
azi.tombol2=QPushButton('Tambah',azi)
azi.tombol2.clicked.connect(azi.tambah)
azi.tombol2.setGeometry(620,160,70,30)
def tambah(azi):
from form_tambah import tambahform
azi.formtmbah = tambahform()
azi.formtmbah.show()
azi.hide()
def tiga(azi):
azi.tombol3=QPushButton('Hapus',azi)
azi.tombol3.clicked.connect(azi.dihapus)
azi.tombol3.setGeometry(620,120,70,30)
def dihapus(azi):
gui = QWidget()
azi.hapus,ok =
QInputDialog.getText(gui,"info",
"""Masukkan nim yang akan dihapus""")
gui.show()
koneksi = mysql.connector.connect(
host = "localhost",
user = "root",
password = "",
database = "mahasiswa"
)
if ok:
nim = str(azi.hapus)
cek="""SELECT * FROM MAHASISWA_UMS WHERE
NIM = %s"""
sor=koneksi.cursor()
sor.execute(cek,(nim,))
hasil=sor.fetchall()
if len(hasil)==1:
gui.hide()
sor = koneksi.cursor()
78
try:
sql = """DELETE FROM MAHASISWA_UMS
WHERE NIM = %s"""
sor.execute(sql,(nim,))
except:
QMessageBox.information(azi,'Info',
'data gagal dihapus')
koneksi.rollback()
sys.exit(1)
else:
koneksi.commit()
sor.close()
else:
koneksi.rollback()
sys.exit(1)
koneksi.close()
azi.akses()
gui.hide()
def akses(azi):
try:
koneksi = mysql.connector.connect(
host='localhost',
user='root',
password='',
database='mahasiswa'
)
azi.tabel.setItem(row_number,
column_number, newItem)
azi.tabel.setHorizontal
HeaderLabels(namafield)
azi.tabel.resizeColumnsToContents()
azi.tabel.resizeRowsToContents()
azi.tabel.move(20,40)
azi.tabel.show()
79
except:
sys.exit(1)
else:
sor.close()
except mysql.connector.Error as e:
print("ERROR", e)
else:
koneksi.close()
sor.close()
koneksi.close()
if __name__=='__main__':
app=QApplication(sys.argv)
x=data()
x.show()
app.exec_()
sys.exit()
class tambahform(QWidget):
def __init__ (azi):
QWidget.__init__(azi)
azi.setWindowTitle("Form Tambah Data")
azi.setGeometry(350,200,350,450)
azi.bli()
def bli(azi):
azi.x=QPushButton("Tambah",azi)
azi.x.move(20,380)
azi.x.resize(70,30)
azi.x.clicked.connect(azi.tambahin)
data1l.move(20,120)
azi.data1l = QLineEdit(azi)
azi.data1l.move(130,115)
def tambahin(azi):
koneksi=mysql.connector.connect(
host="local host",
user="root",
password="",
database="mahasiswa"
)
sor=koneksi.cursor()
NIM = str(azi.data1j.text())
NAMA = str(azi.data1k.text())
ASAL = str(azi.data1l.text())
JURUSAN = str(azi.data1m.text())
ANGKATAN = str(azi.data1n.text())
IPS = str(azi.data1o.text())
DOSEN_PA = str(azi.data1p.text())
SKS = str(azi.data1q.text())
dat = (str(NIM),
str(NAMA),
str(ASAL),
str(JURUSAN),
str(ANGKATAN),
str(IPS),
str(DOSEN_PA),
str(SKS)
)
sor.execute(tambah,dat)
koneksi.commit()
sor.close()
from app_data import data
azi.x=data()
azi.x.show()
azi.hide()
if __name__ == "__main__":
app=QApplication(sys.argv)
x=tambahform()
x.show()
app.exec_()
sys.exit()
if ok:
nim = str(azi.hapus)
cek="""SELECT * FROM MAHASISWA_UMS WHERE NIM =
%s"""
sor=koneksi.cursor()
sor.execute(cek,(nim,))
hasil=sor.fetchall()
if len(hasil)==1:
gui.hide()
sor = koneksi.cursor()
try:
sql = """DELETE FROM MAHASISWA_UMS WHERE
NIM = %s"""
sor.execute(sql,(nim,))
except:
QMessageBox.information(azi,'Info', '
data gagal dihapus')
koneksi.rollback()
sys.exit(1)
else:
koneksi.commit()
sor.close()
84
else:
koneksi.rollback()
sys.exit(1)
koneksi.close()
azi.akses()
gui.hide()
class searching(QWidget):
def __init__(azi):
QWidget.__init__(azi)
azi.setWindowTitle('FORM CARI')
azi.setGeometry(400,250,300,350)
azi.title=QLabel('<h2><b><font color=green>Cari
Berdasarkan Nim</font><b></h2>', azi)
azi.title.move(60,10)
azi.bla()
def bla(azi):
azi.az=QLineEdit(azi)
azi.az.move(10,40)
azi.ay=QPushButton('Search',azi)
azi.ay.move(160,35)
azi.ay.resize(70,30)
azi.ay.clicked.connect(azi.cariin)
data1j=QLabel('NIM: ',azi)
data1j.move(10,70)
azi.data1j=QLabel(azi)
azi.data1j.move(120,70)
data1k=QLabel('NAMA: ',azi)
data1k.move(10,100)
azi.data1k=QLabel(azi)
azi.data1k.move(120,100)
data1l=QLabel('ASAL: ',azi)
data1l.move(10,130)
azi.data1l=QLabel(azi)
azi.data1l.move(120,130)
data1m=QLabel('JURUSAN: ',azi)
data1m.move(10,160)
azi.data1m=QLabel(azi)
azi.data1m.move(120,160)
data1n=QLabel('ANGKATAN: ',azi)
data1n.move(10,190)
azi.data1n=QLabel(azi)
azi.data1n.move(120,190)
data1o=QLabel('IPS: ',azi)
data1o.move(10,220)
azi.data1o=QLabel(azi)
azi.data1o.move(120,220)
data1p=QLabel('DOSEN_PA: ',azi)
data1p.move(10,250)
azi.data1p=QLabel(azi)
azi.data1p.move(120,250)
data1q=QLabel('SKS: ',azi)
data1q.move(10,280)
azi.data1q=QLabel(azi)
86
azi.data1q.move(120,280)
def cariin(azi):
NIM=str(azi.az.text())
try:
koneksi = mysql.connector.connect(
host='local host',
user='root',
password='',
database='mahasiswa'
)
sor=koneksi.cursor()
try:
sor=koneksi.cursor()
sor.execute(cari,(NIM,))
for(NIM,NAMA,ASAL,JURUSAN,ANGKATAN,IPS,DOSEN_PA,SKS)
in sor:
azi.masuk_nim=str(NIM)
azi.masuk_nama=str(NAMA)
azi.masuk_asal=str(ASAL)
azi.masuk_jurusan=str(JURUSAN)
azi.masuk_angkatan=str(ANGKATAN)
azi.masuk_ips=str(IPS)
azi.masuk_dosen=str(DOSEN_PA)
azi.masuk_sks=str(SKS)
azi.data1j.setText(str(azi.masuk_nim))
azi.data1j.adjustSize()
azi.data1k.setText(str(azi.masuk_nama))
azi.data1k.adjustSize()
azi.data1l.setText(str(azi.masuk_asal))
azi.data1l.adjustSize()
azi.data1m.setText(str(azi.masuk_jurusan))
azi.data1m.adjustSize()
azi.data1n.setText(str(azi.masuk_angkatan))
azi.data1n.adjustSize()
azi.data1o.setText(str(azi.masuk_ips))
azi.data1o.adjustSize()
azi.data1p.setText(str(azi.masuk_dosen))
azi.data1p.adjustSize()
azi.data1q.setText(str(azi.masuk_sks))
azi.data1q.adjustSize()
except:
print('Data Tidak Ada')
sys.exit()
else:
sor.close()
except mysql.connector.Error as e:
print('ERROR',e)
else:
koneksi.close()
if __name__=='__main__':
app=QApplication(sys.argv)
x=searching()
x.show()
87
app.exec_()
sys.exit()
B. Penutup
1. Kesimpulan
Dari praktikum Database ini praktikan dapat menyimpulkan
beberapa hal:
a. Database dapat didefinisikan sebagai kumpulan data yang terdiri dari
satu atau lebih tabel yang terintegrasi satu sama lain, dimana setiap user
diberi wewenang untuk dapat mengakses (seperti mengubah,
menghapus, mencari, dan menambah) data dalam tabel-tabel tersebut.
Dalam membuat database kita perlu menggunak aplikasi XAMPP untuk
membuat local host kita sendiri.
b. membuat tabel database yang menggunakan python dan MySQL
kembail yang nantinya akan mucul pada database yang ada dalam local
host kita.
c. Menambah data adalah program yang difungsikan untuk memberi isi
pada tabel yang telah kita buat sebelumya. Pengisianya sesuai dengan
format yang telah kita tentukan sebelumnya.
d. Program ini menggunakan PySide sebagai GUI dan mengambil data dari
database MySQL yang terdapat pada local host kita dan menampilkan
program aplikasi yang telah kita buat.
e. Program menambah data merupakan program yang dibuat dengan
Bahasa python dan ditampilkan menggunakan PySide GUI. Program ini
dapat menambahkan data secara langsung dari GUI dan langsung akan
tersimpan ke database.
f. Program hapus data merupakan program yang dibuat dengan Bahasa
python dan ditampilkan menggunakan PySide GUI. Program ini dapat
menghapus data secara langsung dari GUI dan langsung akan tersimpan
ke database
h. Program cari data merupakan program yang dibuat dengan Bahasa
python dan ditampilkan menggunakan PySide GUI. Program ini dapat
mencari data yang ada pada database secara langsung dan langsung
menampilkan data mahasiswa yang ingin dicari.
2. Saran
Dari praktikum Gui python ini praktikan dapat memberikan beberapa
saran seperti:
a. Praktikan diharap mempelajari modul sebelum praktikum
b. Praktikan diharap memerhatikan penjelasan dari asisten
c. Praktikan diharap datang sebelum waktu praktikum dimulai
d. Praktikan harus mematuhi segala aturan lab
e. Praktikan diharap mencatat hal penting selama praktikum
MODUL IV
HTML & CSS
A. Hasil Praktikum
1. Halaman Profil
Pada praktikum ini, praktikan membuat HTML dan memperindah
bentuk tampilan HTML dengan menggunakan CSS. HTML berisi tentang
visi dan misi dari jurusan Teknik Industri, referensi yang berisikan data
laporan tugas akhir atau kerja praktik, galeri yang berisi
dokumentasi/lembar pengesahan laporan, kumpulan soal-soal di jurusan
teknik industri, dan kontak yang bisa dihubungi.
a. Hasil Running Halaman Profil
89
90
</li>
<li><a
href="galeri.html">Galeri</a></li>
<li><a href="pilih_soal.html">Pilihan
Soal</a></li>
<li><a href="contact.html">Contact
Us</a></li>
</ul>
</div>
<div class="sidebar">
<b><h3 align="center">Mahasiswa Teknik
Industri UMS<br>Tahun 2018</h3></b>
<center>
<img src="akreditasiA.png" width="auto"
height="175px" ><br>
<p>Welcome visitors to the official website of
the Industrial Engineering Department of the
Muhammadiyah University of Surakarta. Students
from the Industrial Engineering Department of
the Muhammadiyah University of Surakarta,
Batch 2018. With this web page hopefully,
visitors will get to know all the activities
and activities in the Department of Industrial
Engineering, Surakarta Muhammadiyah
University</p>
<br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br>
</center>
</div>
<div class="content">
<b><h2 align="center">Program Studi Teknik
Industri<br>Universitas Muhammadiyah
Surakarta</h2></b>
<center>
<img src="2018.jpg" width="auto"
height="300px" align="center"><br>
</center>
<center>
<p>Mahasiswa Teknik Industri Universitas
Muhammadiyah Surakarta Angkatan 2018</p>
<p>Jurusan teknik industri adalah jurusan yang
mempelajari bidang keteknikan yang memiliki
prospek kerja yang luas. Jika bidang teknik
yang lain menerapkan keterampilan yang
spesifik, berbeda halnya dengan jurusan teknik
industri yang menggabungkan berbagai ilmu yang
terlibat dalam sebuah proses industri. Aspek
yang paling khas dari teknik industri adalah
fleksibilitasnya, jurusan ini juga membahas
industri secara luas sehinggap dapat
melibatkan pembahasan bidang keteknikan
lainnya, karena itu prospek kerja jurusan
teknik indsutri sangatlah luas. Jurusan teknik
industri pada dasarnya dibagi menjadi tiga sub
bidang keahlian: 1. Sistem Manufaktur 2.
Manajemen Indsutri 3. Sistem Indsutri dan
Tekno Ekonomi</p>
</ol>
</div>
<footer>
<p align="center"><i> copyright © M.
Chaeruddin Azizi D600180073 Industri 2018 </i></p>
</footer>
</body>
</html>
91
2. Halaman Referensi
Halaman referensi ini mengenai tentang tabel dari data laporan tugas
akhir atau kerja praktik. Data ini terdiri dari beberapa bagian yaitu, judul
laporan, penulis, tahun, NIM, dan nama Dosen Pembimbing.
a. Hasil Running Halaman Referensi
</tr>
<tr>
<td align="center">5.</td>
<td height="10">PENERAPAN KONSEP CDIO PADA
PRAKTIKUM PEMROGRAMAN KOMPUTER SEBAGAI
MEDIA PEMBELAJARAN KREATIF DAN
APLIKATIF</td>
<td height="10" align="center">Yusuf
Bachtiar</td>
<td height="10"
align="center">D600090031</td>
<td height="10" align="center">2018</td>
<td height="10" align="center">Much.
Djunaidi, ST, MT</td>
</tr>
<tr>
<td align="center">6.</td>
<td height="10">ANALISIS FAKTOR PRIORITAS
DAN PENILAIAN KINERJA PERAWAT BANGSAL
RAWAT INAP RSJD SURAKARTA DENGAN METODE
INTEGRASI UMPAN BALIK 360 DERAJAT DAN AHP
(ANALYTICAL HIERARCHY PROCESS)</td>
<td height="10" align="center">Virna
Septiana Devi Kumaraningrum</td>
<td height="10"
align="center">D600140147</td>
<td height="10" align="center">2018</td>
<td height="10" align="center">Much.
Djunaidi, ST, MT</td>
</tr>
<tr>
<td align="center">7.</td>
<td height="10">IMPLEMENTASI JOINT
ECONOMIC LOT-SIZING GUNA MENGOPTIMALKAN
TOTAL BIAYA VENDOR DAN BUYER </td>
<td height="10" align="center">Muhammad
Ikhsan Rifai</td>
<td height="10"
align="center">D600130091</td>
<td height="10" align="center">2018</td>
<td height="10" align="center">Hari
Prasetyo,ST, MT, Ph.D</td>
</tr>
<tr>
<td align="center">8.</td>
<td height="10">PERBAIKAN METODE KERJA
UNTUK MENINGKATKAN PRODUKTIVITAS DENGAN
MENGGUNAKAN MOTION STUDY DAN PENERAPAN 5S </td>
<td height="10" align="center">Aprilia Dwi
Anggraini</td>
<td height="10"
align="center">D600140108</td>
<td height="10" align="center">2018</td>
<td height="10" align="center">Dr.Indah
Pratiwi,ST, MT</td>
</tr>
<tr>
<td align="center">9.</td>
<td height="10">NALISIS URUTAN
PEMBONGKARAN PRODUK MENGGUNAKAN METODE
DISASSEMBLY SEQUENCE PLANNING DENGAN DISASSEMBLY LEVEL MATRIX
</td>
<td height="10" align="center">Dyah Ajeng
Wheka S.</td>
<td height="10"
95
align="center">D600140002</td>
<td height="10" align="center">2018</td>
<td height="10" align="center">Ida
Nursanti,ST,MT,M.Eng</td>
</tr>
<tr>
<td align="center">10.</td>
<td height="10">EVALUASI BEBAN DAN POSTUR
KERJA PADA PROSES PRODUKSI ROTI DENGAN
PENDEKATAN ERGONOMI </td>
<td height="10" align="center">Andika
Kurniawan</td>
<td height="10"
align="center">D600140103</td>
<td height="10" align="center">2018</td>
<td height="10" align="center">Eko
Setiawan,ST,MT,Ph.D</td>
</tr>
</table><br><br><br>
</div>
<footer>
<p align="center"><i> copyright © M.
Chaeruddin Azizi D600180073 Industri 2018
</i></p>
</footer>
</body>
</html>
.rotate1{
transform:rotate(270deg);
}
footer{
width:100%;
color: #a8fff9;
background: #4268f4;
float:left;
height:60px;
padding-left:60px;
}
96
3. Halaman Galeri
Selanjutnya adalah halaman galeri, yang berisi foto dokumentasi
dari lembar pengesahan laporan tugas akhir atau kerja praktik yang sudah
ditandatangani oleh dosen pembimbing.
a. Hasil Running Halaman Galeri
<!DOCTYPE html>
<html>
<head>
<title>Teknik Industri UMS 2018</title>
<link rel="stylesheet" type="text/css"
href="cssazi.css"/>
</head>
<body>
<header>
<img src="ums.png" height="100px"
width="auto">
<img src="prodi.png" width="auto"
height="100px">
</header>
<div class="menu">
<ul>
<li><a
href="Halaman_Depan.html">Profil</a></li>
<li><a
href="refrensi.html">Referensi</a></li>
<li><a href="galeri.html">Galeri</a></li>
<li><a href="pilih_soal.html">Pilihan
Soal</a></li>
<li><a href="contact.html">Contact
Us</a></li>
</ul>
</div>
<div class="body">
<b><h3 align="center">Galeri Teknik
Industri</h3></b>
<table width="80%" align="center">
<tr>
<td><img src="1.png" height="250px"
width="auto"></td>
<td><img src="2.png" height="250px"
width="auto"></td>
<td><img src="3.png" height="250px"
width="auto"></td>
<td><img src="4.png" height="250px"
width="auto"></td>
</tr>
</table><br><br>
</div>
<footer>
<p align="center"><i> copyright © M.
Chaeruddin Azizi D600180073 Industri 2018 </i></p>
</footer>
</body>
</html>
c. Script CSS Halaman Galeri
header{
background-color: #4268f4;
padding-top:20px;
padding-left:20px;
width:100%;
height:120px;
}
.menu{
width:150%;
text-decoration:none;
}
.rotate{
transform:rotate(90deg);
}
98
.rotate1{
transform:rotate(270deg);
}
footer{
width:100%;
color: #a8fff9;
background: #4268f4;
float:left;
height:60px;
padding-left:60px;
}
.galeri img{
transform:rotate(90deg);
}
</body>
</html>
c. Script CSS Halaman Hubungi Kami
header{
background-color: #4268f4;
padding-top:20px;
padding-left:20px;
width:100%;
height:120px;
}
.menu{
width:150%;
text-decoration:none;
}
footer{
width:100%;
color: #a8fff9;
background: #4268f4;
float:left;
height:60px;
padding-left:60px;
}
d. Analisis Script HTML Halaman Hubungi Kami
Tabel 4.7 Analisis Script HTML Halaman Hubungi Kami
Script Keterangan
<u><li><a Digunakan untuk membuat teks
href="Halaman_Depan.html">
underline pada list
Profil</a></li>
<form Digunakan untuk menghubungkan
action="mailto:muhammadazi
content dengan email yang ada di
zi768@gmail.com">
script
<input type="submit" Digunakan untuk membuat tombol
value="Kirim">
submit sehingga inputan akan
dikirm ke email yang ada di script
e. Analisis Script CSS Halaman Hubungi Kami
Tabel 4.8 Analisis Script CSS Halaman Hubungi Kami
Script Keterangan
height:120px; Digunakan untuk mengatur tinggi content
sebesar 120 pixel
width:100%; Digunakan untuk mengatur lebar content
terhadap layar sebesar 100%
text- Digunakan untuk mengahapus garis bawah pada
decoration:none;
tag a
MATERIAL TEKNIK</a></p>
<P align="center">"Soal ini berisi tentang materi
material teknik yang ada disemester 2 jurusan
teknik industri"</p>
<p align="center"><a href="soalergonomi.html">SOAL
ERGONOMI</a></p>
<P align="center">"Soal ini berisi tentang materi
ergonomi yang ada disemester 2 jurusan teknik
industri"</p>
<footer>
<p align="center"><i> copyright © M.
Chaeruddin Azizi D600180073 Industri 2018 </i></p>
</footer>
</body>
</html>
c. Script CSS Halaman Pilihan Soal
header{
background-color: #4268f4;
padding-top:20px;
padding-left:20px;
width:100%;
height:120px;
}
.menu{
width:150%;
text-decoration:none;
}
footer{
width:100%;
color: #a8fff9;
background: #4268f4;
float:left;
height:60px;
padding-left:60px;
}
d. Analisis Script HTML Halaman Pilihan Soal
Tabel 4.9 Analisis Script HTML Halaman Pilihan Soal
Script Keterangan
align="center" Digunakan untuk mengatur tulisan agar
berada ditengah halaman
<p>...</p> Digunakan untuk membuat paragraph
<div class="menu"> Digunakan untuk mendefiniskan class CSS
bernama menu
e. Analisis Script CSS Halaman Pilihan Soal
Tabel 4.10 Analisis Script CSS Halaman Pilihan Soal
Script Keterangan
color: #a8fff9; Digunakan untuk mengatur warna huruf
background: #4268f4; Digunakan untuk mengatur warna latar
belakang
text- Digunakan untuk mengahapus garis bawah
decoration:none;
pada tag a
6. Halaman Soal
Halaman ini berisikan tentang 4 macam soal pilihan yang ada di teknik
industry
103
href="galeri.html">Galeri</a></li>
<li><a href="pilih_soal.html">Pilihan
Soal</a></li>
<li><a href="contact.html">Contact
Us</a></li>
</ul>
</div>
<b><h3 align="center">Soal Fisika
Dasar</h3></b>
<form>
<ol type="1">
104
height:120px;
}
.menu{
width:150%;
text-decoration:none;
}
footer{
width:100%;
color: #a8fff9;
background: #4268f4;
float:left;
height:60px;
padding-left:60px;
}
\
padding-left:60px;
}
tarik-menarik molekulnya</li>
<li><input type="radio">Karena kelebihan
jumlah karbon</li>
<li><input type="radio">Jumlah molekul yang
relative besa</li>
</ol>
<li>Pada suhu pemanasan diatas 695°C, dan
dengan kadar karbon antara 0 – 8% ,komposisi
besi yang terbentuk pada saat itu
adalah...</li>
<ol type="a">
<li><input type="radio">besi berada pada
fase pearlite</li>
<li><input type="radio">besi berada pada
fase austenite + ferrite</li>
<li><input type="radio">besi berada pada
fase ferrite</li>
</ol>
<li>Proses karbonitridasi memberi beberapa
manfaat pada logam sebagai berikut,
kecuali...</li>
<ol type="a">
<li><input type="radio">Memberikan
ketahanan terhadap korosi</li>
<li><input type="radio">Memberikan
kemungkinan mampu sepuh</li>
<li><input type="radio">Menaikkan mampu
keras bahan</li>
</ol>
<li>Pada proses nitridasi selektif, bagian-
bagian yang tidak memerlukan nitridasi bisa
dilapisi dengan...</li>
<ol type="a">
<li><input type="radio">Semua jawaban
benar</li>
<li><input type="radio">Lapisan
tembaga</li>
<li><input type="radio">Lapisan timah yang
dielektrolisasi</li>
</ol>
</ol>
<input type="submit" value="Kumpulkan">
<input type="reset" value="Reset">
</form>
<p><a href="pilih_soal.html">Kembali</a></p>
<footer>
<p align="center"><i> copyright © M.
Chaeruddin Azizi D600180073 Industri 2018
</i></p>
</footer>
</body>
</html>
3) Script CSS Halaman Soal Material Teknik
header{
background-color: #4268f4;
padding-top:20px;
padding-left:20px;
width:100%;
height:120px;
}
.menu{
width:150%;
text-decoration:none;
}
footer{
111
width:100%;
color: #a8fff9;
background: #4268f4;
float:left;
height:60px;
padding-left:60px;
}
4) Analisis Script HTML Halaman Soal Material Teknik
Tabel 4.15 Analisis Script HTML Halaman Soal Material Teknik
Script Keterangan
<b></b> Digunakan untuk memberi huruf tebal atau
bold
<ol type=“a”> Digunakan ketika mengaktifkan fungsi
penomoran dan abjad pada pilihan jawaban
dengan type a
align="center" Digunakan untuk mengatur tulisan agar
berada ditengah halaman
5) Analisis Script CSS Halaman Soal Material Teknik
Tabel 4.16 Analisis Script CSS Halaman Soal Material Teknik
Script Keterangan
padding-top:20px; Digunakan untuk mengatur jarak dari atas
halaman ke content sebesar 20 pixel
padding- Digunakan untuk mengatur jarak dari kiri
left:20px;
halaman ke content sebesar 20 pixel
float:left; Digunakan mengatur float kearah kiri
content
B. Penutup
1. Kesimpulan
Dari praktikum HTML dan CSS ini praktikan dapat menyimpulkan
beberapa hal:
a. CSS digunakan untuk mengendalikan beberapa komponen dalam
sebuah web sehingga akan lebih terstruktur dan seragam
b. CSS dapat mengendalikan ukuran gambar, warna body teks, warna
tabel, ukuran border, spasi antar paragraf, spasi antar teks, margin kiri,
kanan, atas, bawah, dan lain-lain
c. Dalam penulisan dokumen HMTL diperlukan tag <head></head>,
dalam tag ini diletakkan judul web page dengan menggunakan tag
<title>
d. Penyimpanan file dari aplikasi Notepad++ harus menggunakan .html
dibelakang nama file agar bisa dibuka
e. HTML dan CSS memiliki keterikatan dalam membuat halaman web
2. Saran
Dari praktikum HTML dan CSS ini praktikan dapat memberikan
beberapa saran seperti:
a. Praktikan harus bertanya kepada asisten apabila programnya eror.
b. Waktu pratikum terlalu singkat, sehingga praktikan sulit untuk
memahami dan mencatat script saat pratikum
c. Sebaiknya waktu pengerjaan tugas ditambah agar praktikan bisa tidur
dengan teratur
d. Praktikan diharapkan datang pratikum tepat waktu sehingga bisa
mengikuti kuis.
e. Sebaiknya sebelum praktikum dimulai praktikan berdo’a bersama agar
pratikum pada hari tersebut lancar
MODUL V
WEB PYTHON
A. Hasil Pratikum
1. Membuat Data Buku
Buku adalah sekumpulan lembaran yang berisi informasi atau cerita
yang ditulis oleh pengarang dan diterbitkan sehingga dapat dibaca oleh para
pembaca. Program yang saya buat ini merupakan tabel buku yang ada di
Granmedia Solo.
a. Tabel Data Buku
Tabel data buku ini adalah program web python yang didalamnya
berisi tentang resensi buku yang telah saya cari pada tugas tambahan
pratikum modul ini.
1) Hasil Running Tabel Data Buku
116
117
<ul>
<li><a
href="Profil.py">Home</a><
/li>
<li><a
href="resource.py">Resourc
e</a></li>
<li><a
href="student.py">Student<
/a></li>
<li><a
href="pilih_soal.py">Exerc
ise</a></li>
<li><a
href="galeri.py">Gallery</
a></li>
<li><a
href="contact.py">Contact
Us</a></li>
</ul>
</div>
<div class="body">
<div class="content_title">
<label><center> Daftar Resensi
Buku <center></label><br>
<left><a
href="buku_tambah.py">TAMBAH
BUKU</a></b></left>
""")
try:
zii= mysql.connector.connect(
user="root",
password="",
database="azizi"
)
try:
sorr = zii.cursor()
sql= "SELECT * FROM bukucuk"
sorr.execute(sql)
result= sorr.fetchall()
print("""
<table align="center" width="75%"
border="2px" style="text-align:center;" >
<tr>
<th>No</th>
<th>Judul</th>
<th>Pengarang</th>
<th>Tahun</th>
<th>Penerbit</th>
<th>Harga</th>
<th>Aksi</th>
</tr>
""")
for row in result:
no = row[0]
judul = row[1]
pengarang = row[2]
tahun = row[3]
penerbit = row[4]
harga = row[5]
print("<tr>")
print("<td>",no,"</td>")
print("<td>",judul,"</td>")
print("<td>",pengarang,"</td>")
print("<td>",tahun,"</td>")
118
print("<td>",penerbit,"</td>")
print("<td>",harga,"</td>")
print("<td><form action='buku_hapus.py'
method='get'>")
print("<input type='submit' value='HAPUS'
name='hapus'>")
print("<input type='hidden' name='no'
value=",no,">")
print("</form></td>")
print("</tr>")
print("""
</table>
""")
except:
print("Database tidak dapat diakses")
sys.exit(1)
else:
sorr.close()
except mysql.connector.Error as e:
print("Error", e)
else:
zii.close()
print("""
<footer>
<p align="center"><i> copyright © M. Chaeruddin
Azizi D600180073 Industri 2018 </i></p>
</footer>
</body>
</html>
""")
method="get">
No
<br><input type="text"
name="no"<br><br>
Judul Buku
<br><input type="text" name=
"judul"<br><br>
Pengarang
<br><input type="text"
name="pengarang"<br><br>
Tahun Terbit
<br><input type="text"
name="tahun"<br><br>
Penerbit
<br><input type="text"
name="penerbit"<br><br>
Harga Buku
<br><input type="text" name=
"harga"<br><br>
<input type="submit" value="SUBMIT"
<a href =
"buku_tabel.py">CANCEL</a>
</form>
<footer>
<p align="center"><i> copyright © M.
Chaeruddin Azizi D600180073 Industri 2018
</i></p>
</footer>
</body>
</html>
""")
form = cgi.FieldStorage()
sue = form.getvalue('no')
ora = form.getvalue('judul')
jamu = form.getvalue('pengarang')
badan = form.getvalue('tahun')
pegel = form.getvalue('penerbit')
linu = form.getvalue('harga')
zii = mysql.connector.connect(
user="root",
password="",
database="azizi"
)
sorr = zii.cursor()
data=(str(sue),str(ora),str(jamu),str(badan),str(pegel),str(
linu))
sql="INSERT INTO bukucuk VALUES(%s,%s,%s,%s,%s,%s)"
sorr.execute(sql,data)
zii.commit()
zii.close()
print("""
<script>
alert('Buku berhasil ditambahkan');
document.location.href="buku_tabel.py";
</script>
</body>
</html>
""")
form = cgi.FieldStorage()
no = form.getvalue('no')
zii = mysql.connector.connect(
user="root",
password="",
host="localhost",
database="azizi"
)
sorr = zii.cursor()
sql="DELETE FROM bukucuk WHERE no=%s"
sorr.execute(sql,(no,))
zii.commit()
zii.close()
123
print("""
<script>
alert('Buku berhasil dihapus');
document.location.href="buku_tabel.py";
</script>
</body>
</html>
""")
<br>
<form action="latihan_ergo_
proses.py" method="post">
1. Jenis pelindung apa yang
sering digunakan bengkel
pemesinan? <br>
<input type="radio"
name="soal_one" value="0">
A. Pelindung dengan jarak <br>
<input type="radio" name="soal_one"
value="1">
B. Alat pelindung mekanik <br>
<input type="radio"
name="soal_one" value="2">
C. Peralatan pendeteksi <br>
2. Dalam keselamatan dan
kesehatan kerja, sebutkan 3
pencemaran akibat industri...
<br>
<input type="radio" name="soal_two"
value="0">
A. Pencemaran udara, pencemaran
air, pencemaran tanah <br>
<input type="radio" name="soal_two"
value="1">
B. Pencemaran keadaan, pencemaran
air, pencemaran suhu <br>
<input type="radio" name="soal_two"
value="2">
C. Pencemaran udara, pencemaran
keadaan, pencemaran tanah <br>
3. Hal-hal yang dapat menimbulkan
kecelakaan kerja secara pesawat
tenaga produksi... <br>
<input type="radio"
name="soal_three" value="0">
A. Operator mesin <br>
<input type="radio"
name="soal_three" value="1">
B. Perlengkapan mesin <br>
<input type="radio"
name="soal_three" value="2">
C. Mesin gergaji bandar tanpa
pendorong kayu <br>
4. Apakah yang bukan faktor
lingkungan yang menyebabkan
penyakit sebelum diterapkan oleh
pembina P2K3... <br>
<input type="radio"
name="soal_four" value="0">
A. Golongan fisik <br>
<input type="radio"
name="soal_four" value="1">
B. Golongan kimia <br>
<input type="radio"name="soal_four"
value="2">C. Golongan
kapis <br>
5. Pengertian keselamatan kerja
secara etimologi adalah... <br>
<input type="radio"
name="soal_five" value="0">A. Ilmu
pengetahuan dan penerapannya dalam
upaya mencegah dan
mengurangi kecelakaan kerja <br>
126
<input type="radio"
name="soal_five" value="1">B. Suatu
upaya perlindungan tenaga kerja
<br>
<input type="radio"
name="soal_five" value="2">C. Upaya
agar produksi tidak terganggu <br>
<input type="submit"
value="SUBMIT">
<a href="pilih_soal.py">CANCEL</a>
</form>
</div>
</div>
<footer>
<p align="center"><i> copyright © M.
Chaeruddin Azizi D600180073 Industri 2018
</i></p>
</footer>
</body>
</html>
""")
form = cgi.FieldStorage()
ks_1 = int(form.getvalue('soal_one'))
ks_2 = int(form.getvalue('soal_two'))
ks_3 = int(form.getvalue('soal_three'))
ks_4 = int(form.getvalue('soal_four'))
ks_5 = int(form.getvalue('soal_five'))
print("""Content-type: text/html\r\n\r\n
<html>
<head>
<title>Teknik Industri UMS 2018</title>
<link rel="stylesheet" type="text/css"
href="cssazi.css"/>
</head>
<body>
<header>
<img src="ums.png" height="100px"
width="auto">
<img src="prodi.png" width="auto"
height="100px">
</header>
<div class="menu">
<ul>
<li><a
href="Profil.py">Home
</a></li>
<li><a
href="resource.py">Resource
</a></li>
<li><a
href="student.py">Student
</a></li>
<li><a href="pilih_soal.py">
Exercise</a></li>
<li><a href="galeri.py">
Gallery</a></li>
<li><a href="contact.py">
Contact Us</a></li>
</ul>
127
</div>
<div class="out">
<div class="content_title">
<label>Latihan Mata Kuliah
Teknik Industri</label>
</div>
</div>
<div class="out">
<div class="content">
""")
B. Penutup
1. Kesimpulan
Dari praktikum web python ini praktikan dapat menyimpulkan beberapa
hal:
a. Web merupakan program yang menampilkan data berupa teks, gambar,
suara, animasi, dan multimedia lainnya dimana diantara data-data
tersebut saling terkait dan berhubungan satu sama lain dengan yang
lainnya.
b. Website merupakan tempat penyimpanan data dan informasi
berdasarkan topik tertentu. Website diibaratkan seperti buku yang berisi
topik tertentu.
c. WWW(World Wide Web) merupakan kumpulan web server dari seluruh
dunia yang berfungsi untuk menyediakan data dan informasi dan dapat
diakses bersama-sama
d. CGI(Common Gateway Interface) merupakan suatu metode standar
yang digunakan untuk komunikasi antara web client dan web server
e. Tabel data buku ini adalah program web python yang didalamnya berisi
tentang resensi buku yang telah saya cari pada tugas tambahan pratikum
modul ini.
f. Buku adalah sekumpulan lembaran yang berisi informasi atau cerita
yang ditulis oleh pengarang dan diterbitkan sehingga dapat dibaca oleh
para pembaca.
2. Saran
Dari praktikum web python ini praktikan dapat memberikan beberapa
saran seperti:
a. Praktikan diharap tidak muda pantang menyerah dalam mengerjakan
penugasan
b. Praktikan diharap mencatat script yang ada saat pratikum
c. Praktikan diharap datang sebelum waktu praktikum dimulai
d. Praktikan harus menjaga kebersihan laboratorium.
e. Praktikan diharap meyiapkan perlengkapan sebelum asistensi
f. Praktikum sebaiknya waktunya di perpanjang
DAFTAR PUSTAKA
130
LAMPIRAN