Anda di halaman 1dari 11

REPORT

PEMROGRAMAN DESKTOP
Jam Terbilang

Disusun Oleh :
Yanuar Aliffio 130411100006

Dosen Pengampu :
Yoga Dwitya Pramudita, S.Kom., M.Cs

PROGRAM STUDI TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA
2016
A. Fungsi untuk mengambil waktu sekarang
Untuk mengambil waktu sekarang yang ada pada komputer kita,
menggunakan fungsi Qtimer pada PySide. Berikut code untuk menampilkan
jam seven segment dengan menggunakan bahasa pemrograman python :

import sys
from PySide.QtCore import *
from PySide.QtGui import *

class MyTimer(QWidget):
def __init__(self):
QWidget.__init__(self)
self.setWindowTitle('My Digital Clock')
timer = QTimer(self)
self.connect(timer, SIGNAL("timeout()"),
self.updtTime)
self.myTimeDisplay = QLCDNumber(self)

self.myTimeDisplay.setSegmentStyle(QLCDNumber.Fille
d)
self.myTimeDisplay.setDigitCount(8)
self.myTimeDisplay.resize(500,150)
timer.start(1000)

def updtTime(self):
currentTime =
QDateTime.currentDateTime().toString('hh:mm:ss')
self.myTimeDisplay.display(currentTime)

if __name__ == '__main__':
try:
myApp = QApplication(sys.argv)
myWindow = MyTimer()
myWindow.show()
myApp.exec_()
sys.exit(0)
except NameError:
print("Name Error : ", sys.exc_info()[1])
except SystemExit:
print("Closing Window...")
except Exception:
print(sys.exc_info()[1])

Hasil Runningan :
B. Fungsi untuk membuat String terbilang
Untuk membuat fungsi terbilang kita menggunakan if else dimana kita
menginisialisasi utama pada bilangan satuan dan bilangan sebelas. Berikut
potongan codenya :

class konversi(Alarm):
def kalimat(self, w):
kalimat = "";
huruf = ["nol", "satu", "dua", "tiga",
"empat", "lima", "enam", "tuju", "delapan",
"sembilan"];
if str(w)[0] == '1' and str(w)[1] == '0':
kalimat = 'sepuluh'
elif str(w)[0] == '1' and str(w)[1] == '1':
kalimat = 'sebelas'
elif str(w)[0] == '1' and int(str(w)[1]) >=
2:
kalimat = huruf[int(str(w)[1])]+'
belas'
elif int(str(w)[0]) >= 2 and int(str(w)[1])
> 0:
kalimat = huruf[int(str(w)[0])]+' puluh
'+huruf[int(str(w)[1])]
elif int(str(w)[0]) > 1 and str(w)[1] ==
'0':
kalimat = huruf[int(str(w)[0])]+'
puluh'
else:
kalimat = huruf[int(str(w)[1])]
return kalimat
def cekWaktu(self, h, m, s):
if m == 0: return str('Sekarang pukul
'+self.kalimat(h)+' tepat lewat '+self.kalimat(s)+'
detik')
elif m == 15: return str('Sekarang pukul
'+self.kalimat(h)+' lewat seperempat menit
'+self.kalimat(s)+' detik')
elif m == 30: return str('Sekarang pukul
setengah '+self.kalimat(h+1)+' lewat
'+self.kalimat(s)+' detik')
elif m == 45: return str('Sekarang pukul
'+self.kalimat(h+1)+" kurang seperempat lewat
"+self.kalimat(s)+' detik')
else: return str('Sekarang pukul
'+self.kalimat(h)+" lewat "+self.kalimat(m)+' menit
'+self.kalimat(s)+' detik')
C. Full Code
Berikut full code untuk membuat jam digital lengkap dengan setting
alarm dan terbilang dengan menggunakan bahasa pemrograman python :

import sys
import os
from PySide.QtGui import *
from PySide.QtCore import *
from PySide.phonon import *
class Alarm(QWidget):
def __init__(self):
super(Alarm, self).__init__()
self.initUI()
self.konversi = konversi()
self.playMusic()
self.jam = ""
self.menit = ""
self.detik = ""
timer = QTimer(self)
timer.start(1000)
timer.timeout.connect(self.showlcd)
QToolTip.setFont(QFont("Decorative", 8,
QFont.Bold))
def initSet(self):
self.Button1 = QPushButton('Set Alarm', self)
self.Button1.move(200, 150)
self.Button1.clicked.connect(self.evenButton1)
self.Button1.setToolTip('Set Alarm')
self.LabelIcon = QLabel(self)
self.Icon2 = QIcon("assets/Icon2.png");
pixmap = self.Icon2.pixmap(25, 25,
QIcon.Disabled, QIcon.Off)
self.LabelIcon.setPixmap(pixmap)
self.LabelIcon.setToolTip('Alarm Tidak Aktif')
self.LabelIcon.move(345, 150)
self.comboJam = QComboBox(self)
self.comboJam.move(15, 150)
self.comboJam.setFixedWidth(45)
self.comboJam.setFixedHeight(30)
self.comboJam.setToolTip('Set Jam')
for x in range(0, 24):
text = str(x)
if x < 10:
text = '0'+text
self.comboJam.addItem(text)
self.comboMenit = QComboBox(self)
self.comboMenit.setFixedWidth(45)
self.comboMenit.setFixedHeight(30)
self.comboMenit.move(70, 150)
self.comboMenit.setToolTip('Set Menit')
for x in range(0, 61):
text = str(x)
if x < 10:
text = '0'+text
self.comboMenit.addItem(text)
self.comboDetik = QComboBox(self)
self.comboDetik.setFixedWidth(45)
self.comboDetik.setFixedHeight(30)
self.comboDetik.move(125, 150)
self.comboDetik.setToolTip('Set Detik')
for x in range(0, 61):
text = str(x)
if x < 10:
text = '0'+text
self.comboDetik.addItem(text)
self.label = QLabel(self)
self.label.setAlignment(Qt.AlignLeft)
self.label.move(15, 120)
self.label.setFixedWidth(400)
self.label.setFixedHeight(30)
self.label.setText('<h2
style="color:blue;">Alarm belum diseting!</h2>')
def initUI(self):
self.setGeometry(300, 300, 400, 200)
self.setWindowTitle('Digital Clock + Alarm')
self.setToolTip("My Digital Clock")
self.setIcon()
self.initSet()
self.lcd = QLCDNumber(self)
self.lcd.setDigitCount(8)
vbox = QVBoxLayout()
vbox.addWidget(self.lcd)
vbox.addStretch()
self.lcd.setFixedWidth(400)
self.lcd.setFixedHeight(100)
self.setLayout(vbox)
self.show()
def setIcon(self):
appIcon = QIcon("assets/Icon1.png")
self.setWindowIcon(appIcon)
def playMusic(self):
file_path =
os.path.join(os.path.dirname(__file__), 'assets/bunga-
cinta.mp3')
media_src = Phonon.MediaSource(file_path)
self.media_obj = Phonon.MediaObject(self)
self.media_obj.setCurrentSource(media_src)
video_widget = Phonon.VideoWidget(self)
Phonon.createPath(self.media_obj, video_widget)
audio_out =
Phonon.AudioOutput(Phonon.VideoCategory, self)
Phonon.createPath(self.media_obj, audio_out)
def evenButton1(self):
if self.Button1.text() == "Set Alarm":
self.jam = self.comboJam.currentText()
self.menit = self.comboMenit.currentText()
self.detik = self.comboDetik.currentText()
self.comboJam.setCurrentIndex(0)
self.comboMenit.setCurrentIndex(0)
self.comboDetik.setCurrentIndex(0)
self.label.setText('<h2
style="color:blue;">Alarm :
'+str(self.jam+":"+self.menit+":"+self.detik)+'</h2>')
self.Button1.setText("Cancel Alarm")
self.Button1.setToolTip('Batalkan Alarm')
else:
userInfo = QMessageBox.question(self,
'Confirmation', 'Anda yakin akan membatalkan Alarm?',
QMessageBox.Yes | QMessageBox.No)
if userInfo == QMessageBox.Yes:
self.jam = ""
self.menit = ""
self.detik = ""
self.media_obj.stop()
self.Icon2 = QIcon("assets/Icon2.png");
pixmap = self.Icon2.pixmap(25, 25,
QIcon.Disabled, QIcon.Off)
self.LabelIcon.setPixmap(pixmap)
self.LabelIcon.setToolTip('Alarm Tidak
Aktif')
self.Button1.setText("Set Alarm")
self.Button1.setToolTip('Set Alarm')
self.label.setText('<h2
style="color:blue;">Alarm belum diseting!</h2>')
def showlcd(self):
time = QTime.currentTime()
text = time.toString('hh:mm:ss')
if time.toString('hh') == self.jam and
time.toString('mm') == self.menit and
time.toString('ss') == self.detik:
self.label.setText('<h2
style="color:blue;">Sekarang Sudah Jam
'+str(self.jam+":"+self.menit+":"+self.detik)+'</h2>')
Icon2 = QIcon("assets/Icon3.png");
self.media_obj.play()
pixmap = Icon2.pixmap(25, 25, QIcon.Active,
QIcon.On)
self.LabelIcon.setPixmap(pixmap)
self.LabelIcon.setToolTip('Waktu telah tiba
sekarang sudah pukul
'+str(self.jam+":"+self.menit+":"+self.detik))
elif time.toString('mm') > self.menit and
(self.jam != "" and self.menit != ""):
Icon2 = QIcon("assets/Icon1.png");
self.media_obj.stop()
pixmap = Icon2.pixmap(25, 25, QIcon.Active,
QIcon.On)
self.LabelIcon.setPixmap(pixmap)
self.LabelIcon.setToolTip('Alarm aktif')
self.label.setText('<h2
style="color:blue;">Alarm :
'+str(self.jam+":"+self.menit+":"+self.detik)+'</h2>')
self.lcd.display(text)

self.lcd.setToolTip(self.konversi.cekWaktu(time.toStrin
g('hh'),time.toString('mm'),time.toString('ss')))
def main():
app = QApplication(sys.argv)
ex = Alarm()
sys.exit(app.exec_())
if __name__ == '__main__':
main()

class konversi(Alarm):
def kalimat(self, w):
kalimat = "";
huruf = ["nol", "satu", "dua", "tiga", "empat",
"lima", "enam", "tuju", "delapan", "sembilan"];
if str(w)[0] == '1' and str(w)[1] == '0':
kalimat = 'sepuluh'
elif str(w)[0] == '1' and str(w)[1] == '1':
kalimat = 'sebelas'
elif str(w)[0] == '1' and int(str(w)[1]) >= 2:
kalimat = huruf[int(str(w)[1])]+' belas'
elif int(str(w)[0]) >= 2 and int(str(w)[1]) >
0:
kalimat = huruf[int(str(w)[0])]+' puluh
'+huruf[int(str(w)[1])]
elif int(str(w)[0]) > 1 and str(w)[1] == '0':
kalimat = huruf[int(str(w)[0])]+' puluh'
else:
kalimat = huruf[int(str(w)[1])]
return kalimat
def cekWaktu(self, h, m, s):
if m == 0: return str('Sekarang pukul
'+self.kalimat(h)+' tepat lewat '+self.kalimat(s)+'
detik')
elif m == 15: return str('Sekarang pukul
'+self.kalimat(h)+' lewat seperempat menit
'+self.kalimat(s)+' detik')
elif m == 30: return str('Sekarang pukul
setengah '+self.kalimat(h+1)+' lewat '+self.kalimat(s)
+' detik')
elif m == 45: return str('Sekarang pukul
'+self.kalimat(h+1)+" kurang seperempat lewat
"+self.kalimat(s)+' detik')
else: return str('Sekarang pukul
'+self.kalimat(h)+" lewat "+self.kalimat(m)+' menit
'+self.kalimat(s)+' detik')

Hasil Running :

Anda mungkin juga menyukai