membuat jam analog versi 2

BelajarPython - assalamualaikum wr. Wb.

Jumpa lagi nih temen - temen... Pada kesempatan kali ini saya akan mencoba untuk membuat contoh pembuatan produk aplikasi dari python nih.. Ya setelah kita belajar python, saya selanjutnya akan mengajak kalian untuk membuat contoh aplikasinya ya.. Biar kalian tau apa saja fungsi kita belajar bahasa pemrograman selama ini.. Heehe.. Nah lalu aplikasi apa yang akan kita buat kali ini ? Yuk langsung saja kita simak sama - sama postingan saya hingga akhir nanti...

Pengenalan Aplikasi yang akan kita buat.

Nah pada kesempatan saya kali ini saya akan mencoba untuk membuat jam analog dengan alarm. Yang artinya, kita akan membuat jam analog biasa dengan ditambahin fitur alarm. Dimana nantinya, kita bisa mengatur alarm. Jadi, saat jam sudah sama dengan jam yang kita pasangi alarm, maka alarm akan berbunyi. Nah bunyi nya ini tergantung kalian mau dikasi bunyi apa.. Tapi usahakan berformat Mp3 ya.. Hehe kalau format lain, saya tidak yakin akan support dengan modul nya.

Oya.. Perlu kalian ketahui sebelumnya ya... Aplikasi yang akan saya buat kali ini, sebenarnya merupakan aplikasi lanjutan dari aplikasi untuk membuat jam analog. Hanya saja saya menambahkan fitur baru. Yaitu alarm yang sudah saya jelaskan tadi. Oya kalian bisa membuka postingan yang sudah saya buat sebelumnya tentang pembuatan aplikasi jam analog ini DENGAN CARA KLIK DISINI YA TEMEN - TEMEN. Dan aplikasi yang akan kita buat kali ini, akan saya beri nama “jam analog alarm”. hehee kalian bisa melihat perkembangan aplikasi TIAP VERSINYA DISINI ya temen - temen.

Spesifikasi dan Fitur aplikasi jam analog alarm.

Untuk spesifikasi lengkap dari aplikasi yang akan kita buat kali ini, kalian bisa melihatnya secara lengkap yang ada di bawah ini ya temen - temen..

Nama: Jam analog alarm.
Versi : 2.
Peningkatan fitur : single alarm.
Platform : Python 3.x
Modul : Tkinter dan pygame. Klik disini untuk tutorial instalasi pygame nya.
Baris code : kurang lebih 152 baris code program.
Fitur : jam analog dan alarm.
Syarat menjalankan: install python 3.x dan pygame, punya editor atau IDE.
Cara menjalankan: install python 3, install pygame, copy dan paste code program pada editor atau IDE, simpan dalam file python, lalu jalankan.


Kalian juga bisa membuat code program ini menjadi file aplikasi loh.. iya file aplikasi seperti "exe" itu loh.. sehingga, nantinya kita cukup klik dua kali saja untuk menjalankan aplikasi ini... tanpa perlu repot - repot membuka nya di IDLE atau IDE python.. nah seperti apa caranya? cukup mudah kok.. dan saya juga sudah membuatkan tutorialnya.. untuk kalian yang menggunakan windows, KALIAN BISA KLIK DISINI ya temen - temen.. atau jika pada link pertama terlalu rumit, KALIAN BISA MENCOBA CARA INI ya.... dan bagi pengguna linux ? tenang saja.. bisa juga kok membuat file executable nya.. untuk melihat tutorialnya, KALIAN BISA KLIK DISINI temen - temen...

Code program untuk membuat jam analog alarm.

Nah setelah kita membahas aplikasi yang akan kita buat nantinya sampai mengenal aplikasi yang akan kita buat sampai cukup detail, maka selanjutnya saya akan mencoba untuk memberikan code program untuk membuat aplikasi yang sudah kita bahas tadi.. Nah seperti apakah code programnya ? Yuk langsung saja kita simak sama - sama code programnya di bawah ini...

from tkinter import *
from tkinter.ttk import Combobox
import time
from math import cos,sin,pi
import pygame

class MyApp():
    def __init__(self, root):
        self.size=300
        self.parent=root

        self.frameAlarm=Frame(root)
        self.frameJam = Frame(root)

        self.alarmHidup = False
        self.teksJam = StringVar()
        self.hidupMati = BooleanVar(False)
        self.fileMusik = 'hysteria.mp3'

        self.teksTombol = StringVar(value='set')

        self.buatFrameJam()
        self.buatJarum()
        self.buatTeksAngka()
        self.teks()
        self.buatTombol()
        self.buatComboBox()
        self.update_clock()

    def teks(self):
        self.teks = Label(text="mn-belajarpython.blogspot.com", font="Helvetica 12 bold")
        self.teks.pack()

    def buatFrameJam(self):
        root.title("Clock")
        self.w = Canvas(self.frameJam,width=320, height=320, relief= "sunken", border=10)
        self.w.pack()
        self.frameJam.pack()


    def buatJarum(self):
        self.w.create_line(0, 0, 0, 0, fill="red", tags="hour", width=3)
        self.w.create_line(0, 0, 0, 0, fill="black", tags="minute", width=6)
        self.w.create_line(0, 0, 0, 0, fill="black", tags="second", width=6)

    def buatTeksAngka(self):
        Label(self.frameJam, text="12").place(x=160, y=13)
        Label(self.frameJam, text="11").place(x=80, y=28)
        Label(self.frameJam, text="10").place(x=31, y=90)
        Label(self.frameJam, text="9").place(x=11, y=157)
        Label(self.frameJam, text="8").place(x=31, y=230)
        Label(self.frameJam, text="7").place(x=80, y=285)
        Label(self.frameJam, text="6").place(x=160, y=303)
        Label(self.frameJam, text="5").place(x=240, y=285)
        Label(self.frameJam, text="4").place(x=291, y=230)
        Label(self.frameJam, text="3").place(x=310, y=157)
        Label(self.frameJam, text="2").place(x=291, y=90)
        Label(self.frameJam, text="1").place(x=240, y=28)

    def update_clock(self):
        s=time.localtime()[5]
        m=time.localtime()[4]
        h=time.localtime()[3]

        jam = time.strftime("%H", time.localtime())
        menit = time.strftime("%M", time.localtime())
        detik = time.strftime("%S", time.localtime())

        if jam==self.comboJam.get() and menit==self.comboMenit.get() and (detik=='00') and self.hidupMati :
            pygame.init()
            pygame.mixer.init()
            pygame.mixer.music.load(self.fileMusik)
            pygame.mixer.music.play()
            self.alarmHidup=True

        if self.alarmHidup and pygame.mixer.music.get_busy()==False :
            self.perintahSetAlarm()

        degrees = 6*s
        angle = degrees*pi*2/360
        ox = 165
        oy = 165
        x = ox + self.size*sin(angle)*0.45
        y = oy - self.size*cos(angle)*0.45
        self.w.coords("hour", (ox,oy,x,y))

        degrees1 = 6*m
        angle1 = degrees1*pi*2/360
        ox1 = 165
        oy1 = 165
        x1 = ox1 + self.size*sin(angle1)*0.4
        y1 = oy1 - self.size*cos(angle1)*0.4
        self.w.coords("minute", (ox1,oy1,x1,y1))

        degrees2 = 30*h
        angle2 = degrees2*pi*2/360
        ox2 = 165
        oy2 = 165
        x2 = ox2 + self.size*sin(angle2)*0.2
        y2 = oy2 - self.size*cos(angle2)*0.2
        self.w.coords("second",(ox2,oy2,x2,y2))

        self.parent.after(1000, self.update_clock)

    def buatComboBox(self):
        Label(self.frameAlarm, text='Jam : ').grid(row=0, column=0)
        self.alarmJam = StringVar()
        self.comboJam = Combobox(self.frameAlarm, textvariable=self.alarmJam,
                                 state='readonly', width=2)
        self.comboJam['values'] = (
            '00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15',
            '16', '17', '18', '19', '20', '21', '21', '22', '23', '24')
        self.comboJam.current(0)
        self.comboJam.grid(row=0, column=1)

        Label(self.frameAlarm, text='  Menit : ').grid(row=0, column=2)
        self.alarmMenit = StringVar()
        self.comboMenit = Combobox(self.frameAlarm, textvariable=self.alarmMenit,
                                   state='readonly', width=2)
        self.comboMenit['values'] = (
            '00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15',
            '16', '17', '18', '19', '20', '21', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30',
            '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46',
            '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59')
        self.comboMenit.current(0)
        self.comboMenit.grid(row=0, column=3)

        self.frameAlarm.pack(pady=6)

    def buatTombol(self):
        self.tombolSet = Button(self.frameAlarm, textvariable=self.teksTombol, command=self.perintahSetAlarm).grid(
            row=0, column=4)

    def perintahSetAlarm(self):
        if self.teksTombol.get() == 'set':
            self.teksTombol.set('stop')
            self.hidupMati.set(True)
            self.teks.config(
                text='Alarm Terpasang.!! pada -> ' + self.comboJam.get() + ' : ' + self.comboMenit.get())
        else:
            self.hidupMati.set(False)
            self.teksTombol.set('set')
            self.alarmHidup=False
            try:
                pygame.mixer.music.stop()
            except:
                pass
            self.teks.config(text="mn-belajarpython.blogspot.com")

root = Tk()
app = MyApp(root)
mainloop()


Nah itu dia temen - temen code program nya.. Gimana ? Cukup panjang juga ya temen - temen... Ya walaupun begitu, saya harap kalian bisa memahaminya dengan baik ya... Nah setelah tau code programnya, lalu seperti apakah tampilan dari code program di atas ketika kita jalankan? Yuk langsung saja kita simak sama - sama hasilnya pada gambar yang ada di bawah ini..


Nah itu dia temen - temen tampilan code program nya ketika kita jalankan.. Dan gambar di atas merupakan gambar dimana kita belum memasang alarm.. Nah saat kita memasang alarm, makan teksnya akan berubah sesuai dengan jam alarm nya. Seperti dibawah ini temen - temen...


Nah itu dia temen - temen tampilannya ketika kita sudah memasang sebuah alarm.. Gimana ? Sudah jelaskan apa yang sudah saya bagikan di atas tadi.. Ya saya harap begitu yaa...


Sekali lagi saya ingatkan yaa... Kalian juga bisa membuat code program ini menjadi file aplikasi loh.. iya file aplikasi seperti "exe" itu loh.. sehingga, nantinya kita cukup klik dua kali saja untuk menjalankan aplikasi ini... tanpa perlu repot - repot membuka nya di IDLE atau IDE python.. nah seperti apa caranya? cukup mudah kok.. dan saya juga sudah membuatkan tutorialnya.. untuk kalian yang menggunakan windows, KALIAN BISA KLIK DISINI ya temen - temen.. atau jika pada link pertama terlalu rumit, KALIAN BISA MENCOBA CARA INI ya.... dan bagi pengguna linux ? tenang saja.. bisa juga kok membuat file executable nya.. untuk melihat tutorialnya, KALIAN BISA KLIK DISINI temen - temen...

Penjelasan code program aplikasi jam analog alarm.

Nah setelah kita mengetahui mengenai aplikasinya serta sudah mendapatkan code program untuk membuatnya dan juga sudah mendapatkan screenshoot dari tampilan aplikasinya, maka sekarang saya akan mencoba untuk menjelaskan code program tersebut.. Yaitu code program untuk membuat aplikasi jam analog alarm yang sudah saya bagikan sebelumnya... Hal ini saya lakukan agar kalian dapat lebih memahami code program yang sudah saya bagikan tadi... Nah seperti apakah penjelasannya ? Yuk langsung saja kita simak penjelasannya di bawah ini..

[NOTE : Teks yang berwarna merah pada penjelasan merupakan "Code program" yang di tambahkan pada versi kali ini. Dan tidak ada di versi sebelumnya]

from tkinter import *  //code ini digunakan untuk mengimport semua modul tkinter. Yang di tandai dengan tanda bintang.
from tkinter.ttk import Combobox  //code ini digunakan untuk mengimport combobox dari tkinter.
import time  //code ini digunakan untuk mengimport modul ‘time’ yang di sediakan oleh python. Dan akan saya gunakan untuk mendapatkan waktu di komputer kalian.
from math import cos,sin,pi  //code ini digunakan untuk mengimport operasi matematika yang disediakan oleh python. Yaitu cos, sin, pi. Yang akan digunakan untuk memutar jarum jam nantinya.
import pygame  //code ini digunakan untuk mengimport modul pygame untuk memutar nada alarm nya. Untuk menginstall Pygame nya, KALIAN BISA KLIIK DISINI.

class MyApp():  //code ini digunakan untukembuat sebbuah class dengan nama “MyApp”. 
    def __init__(self, root):  //code ini digunakan untuk membuat sebuah construktor dari class ‘MyApp’ tadi.. Construktor merupakan sebuah metode yang akan di jalankan pertama kali ketika class tersebbut di panggil.

        self.size=300  //code ini digunakan untuk meng inisialisasi variabel ‘size’ Yang akan digunakan untuk menentukan jarak perpindahan jarum jam analog nya.
        self.parent=root  //code ini digunakan untuk menampung parent atau root dari class ini nantinya.

        self.frameJam = Frame(root)  //code ini digunakan untukmembuat sebuauah frame atau tempat dari jam analognya.
        self.frameAlarm=Frame(root)  //digunakan untuk membuat frame alarm atau tombol alarm di window jam analognya.

        self.alarmHidup = False  //code ini digunakan menentukan apakah alarm sedang hidup atau tidak.
        self.teksJam = StringVar()  //code ini digunakan untuk menampilkan teks jam 
        self.hidupMati = BooleanVar(False)  //code ini digunakan sebagai nilai penentu apakah alarm hidup atau hidup.
        self.fileMusik = 'hysteria.mp3'  //code ini digunakan untuk inisialisasi atau penentu musik yang akan kita gunakan sebagai nada alarm nantinya. Silahkan isikan nama dan formatnya saja jika file mp3 nya berada 

        self.teksTombol = StringVar(value='set')  //code ini digunakan sebagai teks dari tombol alarm nya.

        self.buatFrameJam()   //code ini digunakan untuk memanggil metode dengan nama “buatFrameJam”
        self.buatJarum()   //code ini digunakan untuk memanggil metode dengan nama “buatJarum”
        self.buatTeksAngka()   //code ini digunakan untuk memanggil metode dengan nama “buatTeksAngka”
        self.buatTeks()   //code ini digunakan untuk memanggil metode dengan nama “buatTeks”
        self.buatTombol()   //code ini digunakan untuk memanggil metode dengan nama “buatTombol”
        self.buatComboBox()   //code ini digunakan untuk memanggil metode dengan nama “buatComboBox”
        self.update_clock()   //code ini digunakan untuk memanggil metode dengan nama “update_clock”

    def buatTeks(self):  //digunakan untuk membuat sebuah  metode dengan nama “buatTeks” yang akan digunakan untuk menapilkan teks.
        self.teks = Label(text="mn-belajarpython.blogspot.com")  //code ini digunakan untuk membuat label atau teks. Yang di simpan ke dalam variabel ‘teks’
        self.teks.pack()  //digunakan untuk memasukkan teks tadi ke dalam window jamnya.

    def buatFrameJam(self):  //code ini digunakan untuk membuat sebuah metode dengan nama ‘buatFrameJam” yang tentu saja akan digunakan untuk membuat atau menyetting frame/tempat jam analognya.
        root.title("Clock")  //code ini digunakan untuk merubah judul windownya.
        self.w = Canvas(self.frameJam,width=320, height=320, relief= "sunken", border=10)  //code ini digunakna untukmembuat / menginisialisasi canvasnya. Kanvas ini digunakan sebagai tempat jam analognya. Dengan kanvas, kita bisa membuat sebuah garis untuk jarum jamnya.
        self.w.pack()  //code ini digunakan untuk memasukkan canvas nya ke dalam frame ‘frameJam’ yang telah kita masukkan sebagai parent canvasnya.
        self.frameJam.pack()  //code ini digunakan untuk memasukkan frame jam nya ke dalam window utama.

    def buatJarum(self):  //code ini digunakan untuk membuat sebuah metode untuk membuat jarum jamnya.
        self.w.create_line(0,0,0,0, fill="red", tags="hour", width=3)  //digunakan untuk membuat jarum detik dengan warna merah.
        self.w.create_line(0,0,0,0, fill="black", tags="minute", width=6)  //digunakan untuk membuat jarum menit dengan warna hitam.
        self.w.create_line(0,0,0,0, fill="black", tags="second", width=6)  //digunakan untuk membuat jarum jam dengan warna hitam.

    def buatTeksAngka(self):  //code ini digunakan untuk membuat metode yang akan digunakan untuk membuat angka - angka jam nya.
        Label(self.frameJam, text="12").place(x=160, y=13)  //digunakan untuk membuat sekaligus memasukkan angka 12 ke dalam window.
        Label(self.frameJam, text="11").place(x=80, y=28)  //digunakan untuk membuat sekaligus memasukkan angka 11 ke dalam window.
        Label(self.frameJam, text="10").place(x=31, y=90)  //digunakan untuk membuat sekaligus memasukkan angka 10 ke dalam window.
        Label(self.frameJam, text="9").place(x=11, y=157)  //digunakan untuk membuat sekaligus memasukkan angka 9 ke dalam window.
        Label(self.frameJam, text="8").place(x=31, y=230)  //digunakan untuk membuat sekaligus memasukkan angka 8 ke dalam window.
        Label(self.frameJam, text="7").place(x=80, y=285)  //digunakan untuk membuat sekaligus memasukkan angka 7 ke dalam window.
        Label(self.frameJam, text="6").place(x=160, y=303)  //digunakan untuk membuat sekaligus memasukkan angka 6 ke dalam window.
        Label(self.frameJam, text="5").place(x=240, y=285)  //digunakan untuk membuat sekaligus memasukkan angka 5 ke dalam window.        Label(self.frameJam, text="4").place(x=291, y=230)  //digunakan untuk membuat sekaligus memasukkan angka 4 ke dalam window.
        Label(self.frameJam, text="3").place(x=310, y=157)  //digunakan untuk membuat sekaligus memasukkan angka 3 ke dalam window.
        Label(self.frameJam, text="2").place(x=291, y=90)  //digunakan untuk membuat sekaligus memasukkan angka 2 ke dalam window.
        Label(self.frameJam, text="1").place(x=240, y=28)  //digunakan untuk membuat sekaligus memasukkan angka 1 ke dalam window.

    def update_clock(self):  //digunakan untuk mengupdate posisi jam sesuai dengan jam terkini pada laptop / komputer anda.
        s=time.localtime()[5]  //digunakan untuk mendapatkan detik dari waktu komputer. Yang kemudian di tampung kedalam variabel ‘s’.
        m=time.localtime()[4]  //digunakan untuk mendapatkan menit dari waktu komputer. Yang kemudian di tampung kedalam variabel ‘m’.
        h=time.localtime()[3]  //digunakan untuk mendapatkan jam dari waktu komputer. Yang kemudian di tampung kedalam variabel ‘h’.

        jam = time.strftime("%H", time.localtime())  //code ini digunakan untuk mendapatkan nilai jam di komputer/laptop kalian yang di konvert menjadi string. Dan ditampung ke dalam variabel “jam”.
        menit = time.strftime("%M", time.localtime())  //code ini digunakan untuk mendapatkan nilai menit di komputer/laptop kalian yang di konvert menjadi string. Dan ditampung ke dalam variabel “me”.
        detik = time.strftime("%S", time.localtime())  //code ini digunakan untuk mendapatkan nilai detik di komputer/laptop kalian yang di konvert menjadi string. Dan ditampung ke dalam variabel “detik”.

        if jam==self.comboJam.get() and menit==self.comboMenit.get() and (detik=='00') and self.hidupMati :  //code ini digunakan untuk mencocokkan nilai yang ada pada combobox alarm  nya dengan waktu terkini pada laptop kalian yang telah di tampung sebelumnya ke dalam variabel2 diatas.
            pygame.init()  //untuk inisialisasi pygame nya.
            pygame.mixer.init()  //inisialisasi elemen pemutar musiknya.
            pygame.mixer.music.load(self.fileMusik)  //untuk memuat file yang dimaksud. Yang lokasinya berada pada variabel “fileMusik”.
            pygame.mixer.music.play()  //code ini digunakan untuk memutar musik yang sudah di mmuat sebelumnya.
            self.alarmHidup=True  //mengubah variabel “alarmHidup” menjadi true. Yang menandakan bahwa alarmnya sedang hidup.

        if self.alarmHidup and pygame.mixer.music.get_busy()==False :  //code ini digunakan untuk mengecek apakah “alarmHidup” berinilai true. Yang menandakan alarem dudah terpasang. Dan apakah musik sudah selesai.
            self.perintahSetAlarm()  //code ini digunakan untuk memanggil metode dengan nama “perintahSetAlrm”.


        degrees = 6*s
        angle = degrees*pi*2/360
        ox = 165
        oy = 165
        x = ox + self.size*sin(angle)*0.45
        y = oy - self.size*cos(angle)*0.45
        self.w.coords("hour", (ox,oy,x,y))

//code diatas digunakan untuk mendapatkan nilai yang tepat dari jarum detik. Dengan menghitung dari berbagai elemen seperti yang ada di atas. Di mana code terakhir merupakan perintah untuk memindahkan jarum detik sesuai koordinat yang telah di peroleh setelah menghitungnya.

        degrees1 = 6*m
        angle1 = degrees1*pi*2/360
        ox1 = 165
        oy1 = 165
        x1 = ox1 + self.size*sin(angle1)*0.4
        y1 = oy1 - self.size*cos(angle1)*0.4
        self.w.coords("minute", (ox1,oy1,x1,y1))

//code diatas digunakan untuk mendapatkan nilai yang tepat dari jarum menit. Dengan menghitung dari berbagai elemen seperti yang ada di atas. Di mana code terakhir merupakan perintah untuk memindahkan jarum menit sesuai koordinat yang telah di peroleh setelah menghitungnya

        degrees2 = 30*h
        angle2 = degrees2*pi*2/360
        ox2 = 165
        oy2 = 165
        x2 = ox2 + self.size*sin(angle2)*0.2
        y2 = oy2 - self.size*cos(angle2)*0.2
        self.w.coords("second",(ox2,oy2,x2,y2))


//code diatas digunakan untuk mendapatkan nilai yang tepat dari jarum jam. Dengan menghitung dari berbagai elemen seperti yang ada di atas. Di mana code terakhir merupakan perintah untuk memindahkan jarum jam sesuai koordinat yang telah di peroleh setelah menghitungnya

        self.parent.after(1000, self.update_clock)  //code ini digunakan agar metode ‘update_clock’ akn selalu  di jalankan selama 1000 milidetik sekali setelah program di jalankan.

    def buatComboBox(self):  //code ini digunakan untuk membuat sebuah metode dengan nama “buatComboBox”. Yang tentu saja akan digunakan untuk membuat Combobox.
        Label(self.frameAlarm, text='Jam : ').grid(row=0, column=0) //code ini digunakan untuk membuat label atau teks yang langsung dimasukkan ke dalam window.
        self.alarmJam = StringVar()  //ini sialisasi variabel “alrmJam”.
        self.comboJam = Combobox(self.frameAlarm, textvariable=self.alarmJam, state='readonly', width=2) //code ini digunakan untuk membuat sebuah combobox. Dengan settingan yang sudah saya tentukan di dalamnya. Yaitu “self.frameAlarm” sebagai tempat framenya. “texvareable=self.alarmJam” sebagai variabel yang menampung nilai yang terpilih. “state=’readonly’” agar tidak bisa di edit.
        self.comboJam['values'] = (
            '00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15',
            '16', '17', '18', '19', '20', '21', '21', '22', '23', '24')  //untuk memasukkan angka2 ini sebagai item dari combobox yg sudah kita bua tadi.
        self.comboJam.current(0)  //untuk memilih item pertama sebagai nilai default dari combobox nya.
        self.comboJam.grid(row=0, column=1)  //code ini digunakan untuk memasukkan combobox di dalam “combojam” ke dalam window.

        Label(self.frameAlarm, text='  Menit : ').grid(row=0, column=2)  //code ini digunakan untuk membuat label atau teks dengan isi “Menit :”. Yang langsung di masukkan ke dalam window.
        self.alarmMenit = StringVar()  //code ini digunakan untuk menginisialisasi variabel “alarmMenit”.
        self.comboMenit = Combobox(self.frameAlarm, textvariable=self.alarmMenit, state='readonly', width=2)  //code ini digunakan untuk membuat comboBox. Dengan settingan “self.frameAlarm” sebagai tempat di dalam window. “textvariable=self.alarmMenit” yang di gunakan untuk mendapatkan nilai yang terpilih. “state=’readonly’” agar comboBox nya  tidak bisa di edit. “width=2” yang artinya lebarnya sebesar 2.
        self.comboMenit['values'] = ( '00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59')  //code ini digunakan untuk memasukkan angka2 tersebut sebagi item dari combobox dalam variable “comboMenit”.
        self.comboMenit.current(0)  //code ini digunakan untuk mengatur item pertama sebagai nilai default.
        self.comboMenit.grid(row=0, column=3)  //code ini digunakan untuk memasukan combobox nya ke dalam window.

        self.frameAlarm.pack(pady=6)  //digunakan untuk memberikan jarak di bawah frame “frameAlarm”.

    def buatTombol(self):  //code ini digunakan membuat sebuah metode dengan nama”buatTombol”. Yang akan digunakan untuk membuat sebuah tombol.
        self.tombolSet = Button(self.frameAlarm, textvariable=self.teksTombol, command=self.perintahSetAlarm).grid(
            row=0, column=4)  //code ini digunakan untuk membuat serta memasukkan tombol kedalam window. Dengan perintah ketika di klik akan menjalankan metode “perintahSetAlarm” 

    def perintahSetAlarm(self):  //code ini digunakan untuk membuat metode dengan nama “perintahSetAlarm”.
        if self.teksTombol.get() == 'set':  //digunakan untuk mengecek teks tombol nya. Apakah nilainya sama dengan ‘set’ atu tidak.
            self.teksTombol.set('stop')  //digunakan untuk mengubah nilai “teksTombol” menjadi “stop”.
            self.hidupMati.set(True)  //code ini digunakan untuk mengubah nilai”hidupMati” menjadi “True”.
            self.teks.config(text='Alarm Terpasang.!! pada -> ' + self.comboJam.get() + ' : ' + self.comboMenit.get())  //mengubah teks yang tampil pada window menjadi jam alaram yang terpasang.
        else:  //kondisi yang akan di jalankan ketika “if self.teksTombol.get()==’set’ :” bernilai false. Yang artinya, teks tombolnya bukan ‘set’.
            self.hidupMati.set(False) //digunakan untuk mengubah nilai ‘hidupMati’ menjadi False. Yang artinya alarm kita matikan.
            self.teksTombol.set('set')  //digunakan untuk mengubah teks tombol menjadi “set”
            self.alarmHidup=False  //code ini  digunakan untuk mengubah nilai variabel “alarmHidup” menjadi False. Yang artinya alarm kita matikan.
            try:  //digunakan untuk mencoba sebuah code program.
                pygame.mixer.music.stop()  //code ini digunakan untuk menghentikan musik atau nada alarmnya.
            except:  //code ini digunakan untuk menjalankan code program ketika code program “try” terjadi error.
                pass  //digunakan agar kita di perbolehkan untuk tidak menjalankan code program.
            self.teks.config(text="mn-belajarpython.blogspot.com")  //digunakan untuk merubah teks yang tampil di window menjadi “mn-belajarpython.blogspot.com”.

root = Tk()  //code ini digunakan untuk memanggil window dari tkinter yang kemudian di tampung ke dalam variabel ‘root’.
app = MyApp(root)   //digunakan untuk memanggil class MyApp yang sudah kita masukkan tadi. Dan memasukkan root sebagai parent.

mainloop()  //digunakan agar window yanng kita buat tidak langsung selesai atau langsung close secara otomatis.



Nah itu dia temen - temen penjelasan saya mengenai code program yang sudah saya bagikan sebelumnya ya. Ya semoga usaha keras saya dapat bermanfaat kalian ya... Semoga dapat menjelaskan code program nya... Dan jika ada yang masih kurang jelas, kalian bisa menghubungi saya atau menanyakannya di kolom komentar yang ada di bawah ini ya temen - temen.

Terakhir kalinya saya ingatkan kembali... Kalian juga bisa membuat code program ini menjadi file aplikasi loh.. iya file aplikasi seperti "exe" itu loh.. sehingga, nantinya kita cukup klik dua kali saja untuk menjalankan aplikasi ini... tanpa perlu repot - repot membuka nya di IDLE atau IDE python.. nah seperti apa caranya? cukup mudah kok.. dan saya juga sudah membuatkan tutorialnya.. untuk kalian yang menggunakan windows, KALIAN BISA KLIK DISINI ya temen - temen.. atau jika pada link pertama terlalu rumit, KALIAN BISA MENCOBA CARA INI ya.... dan bagi pengguna linux ? tenang saja.. bisa juga kok membuat file executable nya.. untuk melihat tutorialnya, KALIAN BISA KLIK DISINI temen - temen...




Oke sampai disini dulu ya temen - temen pembahasan saya mengenai cara untuk membuat jam analog alarm kali ini,, semoga postingan ini dapat bermanfaat bagi kalian.. Jangan lupa liat tutorial menarik lainnya ya temen - temen.. Oke terimakasih sudah berkunjung ke blog saya.. Mohon maaf atas kekurangan yang ada, dan atas ketidak akuratan informasi yang ada serta jika ada penjelasan yang kuran g jelas.. Oke sampai disini dulu.. Terimakasih.. Sekian dan akhir kata,

Wassalamualaikum wr. wb.
Previous
Next Post »
Thanks for your comment