membuat jam analog versi 1

BelajarPython - Assalamualaikum wr. wb.

Jumpa lagi nih temen - temen.. Pada kesempatan kali ini saya akan mencoba untuk mengajak kalian untuk berkreasi produk nih.. Maksudnya adalah produk setelah kita belajar bahasa pemrograman di web atau di blog ini tentunya... Ya.. Jadi, setelah kita belajar dasar pemrograman python, hingga belajar untuk menampilkan beberapa elemen UI atau interface, sekarang saya akan mencoba untuk sedikit berkreasi seperti yang sudah saya katakan tadi ya temmen - temen... Nah produk apa yang akan saya hasilkan kali ini ? Silahkan simak sama - sama ya postingan saya di bawah ini.. Let’s check it out temen - temen....


Pengenalan aplikasi yang akan kita buat.

Oke saya jelaskan lagi ya... Pada kesempatan kali ini saya akan membuat sebuah aplikasi sederhana ya.. Aplikasi apa ? Sudah tau dong ? Ya.. Aplikasi sederhana yang akan saya buat kali ini adalah aplikasi yang menampilkan sebuah informasi waktu alias jam. Hehe.. Namun, yang paling menarik adalah, jam yang akan saya buat ini bukan lah jam digital seperti pada umumnya.. Nah lalu seperti apa? Jadi jam yang akan saya buat kali ini adalah jam analog.. Jadi agak unik ya.. Itu menurut saya.. Hehe karena biasanya yang di biasa atau yang lumrah di praktekkan adalah jam digital yang hanya menampilkan angka saja.. Hal ini wajar.. Karena memang untuk membuat jam analog ini sedikit lebih rumit dibandingkan dengan membuat jam digital saja...

Di bandingkan jam digital, jam analog harus memiliki ketepatan yang cukup rumit.. Karena bila jam digital kita menunjukkan waktu secara langsung dengan angka, maka pada jam analog ini kita harus membuat beberapa jarum untuk menunjuk ke beberapa angka yang telah dipasang.. Ya seperti pada jam analog pada umumnya ya... Dan pada jam yang akan saya buat ini terdapat 3 jarum yang menandakan jam, menit, dan detik... Nah disinilah ujian yang cukup berat.. Kita harus memiliki ketepan untuk menunjukkan jarum ke angka yang benar... Gimana? Sudah merasakan kesulitannya kan ?

Dan perlu kalian ketahui ya.. Aplikasi ini merupakan aplikasi versi pertama.. Untuk melihat perkembangan tiap versinya, kalian BISA KLIK DISINI untuk lebih memahaminya.

Spesifikasi dan fitur jam analog tkinter python.

Oya perlu kalian ketahui ya.. Modul untuk membuat tampilan jam ini, saya menggunakan tkinter ya... Nah untuk lebih jelasnya, simak penjabaran berikut ini ya temen - temen....

Nama: mn-analog
Versi: 1.
Platform: Python 3.x
Modul: Tkinter
Baris Code: kurang lebih 80 baris code program.
Fitur: jam analog dengan ketepatan jam yang cukup baik.
syarat: install python 3.x, punya editor atau IDE.
Cara Run: install python 3, 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 tkinter python.

Nah biar tidak lama - lama penasaran, yuk langsung saja simak sama - sam code program untuk membuat jam analog ini... Silahkan di simak di bawah ini ya temen - temen.. Let’s check it out...

from tkinter import *
import time
from math import cos,sin,pi

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

        self.frameJam = Frame(root)

        self.buatFrameJam()
        self.buatJarum()
        self.buatTeksAngka()
        self.buatTeks()
        self.update_clock()

    def buatTeks(self):
        self.teks = Label(text="mn-belajarpython.blogspot.com")
        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]

        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)

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


Nah itu dia temen - temen program nya.. Sebenernya cukup pendek ya.. Oya.. Untuk membuat jarum dari sebuah garis yang dibuat diatas kanvas yang sudah disediakan oleh tkinter. Kalian bisa menggambar bentuk - bentuk lain dikanvas ini loh.. Saya juga sudah membuatkan tutorialnya loh.. Untuk melihatnya kalian bisa KLIK DISINI atau Klik menu utama TKINTER diatas ya temen - temen.... Atau juga bisa mencarinya pada Daftar isi blog ini ya...

Oya lalu sepertii apa ya temen - temen tampilan yang akan di hasilkan dari code program di atas? Nah, biar gak penasaran, langsung saja di simak gambar yang ada di bawah ini ya...


Nah itu dia temen - temen hasil dari code program di atas.. Gimana ? Cukup bagus ya.. Hehe... Ya saya harap kalian sependapat dengan saya.. Hehe


Sekali lagi saya ingatkan.. 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 untuk membuat jam Analog.

nah pada bagian ini saya akan mencoba untuk menjelaskan code program yang telah saya bagikan diatas tadi yaa.. Hal ini saya lakukan agar kalian bisa memahami code program untuk membuat code program untuk membuat jam analog ini... Yuk tanpa lama - lama lagi langsung saja kita simak sama - sama penjelasan saya di bawah ini...



from tkinter import *  //code ini digunakan untuk mengimport semua modul tkinter. Yang di tandai dengan tanda bintang.
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.

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.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.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’.

        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.

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 dari code program diatas.. Semoga penjelasan yang sudah saya berikan tadi dapat sedikit membantu penjelasan code program untuk membuat jam analog nya ya...

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 temen - temen itu dia cara untuk membuat jam analog nya.. Semoga apa yang telah saya sampaikan di atas dapat memberikan manfaat bagi kalian yaa... Dan tentu saja saya harap dapat menjadikan referensi untuk membuat sebuah produk atau untuk belajar python..

Oke sampai deisini dulu ya temen - temen bahasan pada postingan saya kali ini,, jangan lupa baca tutorial menarik lainnya ya.. Dan jangan lupa berkomentar atau berikan masukan atau kertikan kalian ya... Terimakasih.. Sampai jumpa di tutorial yang lainnya ya...

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