PEMROGRAMAN DESKTOP
Jam Terbilang
Disusun Oleh :
Yanuar Aliffio 130411100006
Dosen Pengampu :
Yoga Dwitya Pramudita, S.Kom., M.Cs
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 Jam(QWidget):
def __init__(self):
self.initUI()
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 initUI(self):
self.setGeometry(300, 300, 400, 200)
self.setWindowTitle('Digital Clock')
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()
media_src = Phonon.MediaSource(file_path)
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')