Komputika: Jurnal Sistem Komputer Vol. No. Oktober 2017, hlm. 67 - 73 DOI: 10. 34010/komputika. p-ISSN: 2252-9039 Implementasi Julian Day Dalam Penentuan Waktu Shalat Implementation of Julian Day in determination of Time Prayer Sutono Program Studi Sistem Komputer. Fakultas Teknik dan Ilmu Komputer. Universitas Komputer Indonesia Jl. Dipati Ukur No. 112 Ae 116. Bandung. Indonesia 40132 email: sutono@email. ABSTRACT Ae The purpose of designing Prayer Hours is to overcome the problems of prayer times every day, starting from Shubuh to IsyaAo. By using the algorithm for calcuting the prayer time scheduling formula based on time zone, langitude, latitute, altitude, date, month and year, we do not need to create a database and include it in Arduino memory, making it easier to use prayer time calculations without updating data annually. Keywords Ae prayer time, julian day, latitude, longitude, date ABSTRAK Ae Tujuan dari perancangan Jam Shalat untuk mengatasi permasalahan waktu shalat setiap harinya, mulai dari Shubuh hingga IsyaAo. Dengan menggunakan algoritma rumus penjadualan waktu shalat berdasarkan zone waktu, bujur, lintang, ketinggian, tanggal, bulan dan tahun, kita tidak perlu membuat database dan memasukkannya dalam memori Arduino sehingga memudahkan dalam penggunaan perhitungan waktu shalat tanpa perlu update data setiap Kata Kunci Ae waktu shalat, juian day, lintang, bujur, tanggal PENDAHULUAN Jam Shalat adalah suatu rangkaian digital yang dirancang khusus untuk menampilkan waktuAewaktu shalat sesuai dengan Departemen Agama dengan tampilan jam. Jam Shalat ini akan memperbaharui waktu shalat secara otomatis jika terdapat perbedaan waktu shalat setiap harinya, serta dilengkapi bunyi alarm jika telah datang waktu shalat. Ae. Jam Shalat ini dibuat untuk mempermudah dalam mengetahui waktuAewaktu shalat dengan tepat sesuai dengan Departemen Agama tanpa harus membaca tabel, serta dilengkapi dengan penutup acrylic pada bagian depan sehingga tidak mudah pecah dan frame untuk memperindah tampilan. Background pun dapat didesain sesuai keinginan. Untuk dapat menunjukkan waktu shalat yang tepat waktu. Jam Shalat ini didesain dengan mikrokontroler Arduino Nano dan RTC DS1307, hal tersebut dikarenakan mikrokontroler Arduino Nano tidak dilengkapi internal waktu RTC sehingga penunjuk waktu berupa modul RTC DS1307. Modul Arduino dan RTC diperlihatkan pada gambar 1. Selanjutnya agar dapat menunjukkan waktu shalat dengan tepat maka pada pemrograman Arduino Nano tersebut dibutuhkan library tambahan PrayerTime perhitungan waktu shalat yang mengacu pada perhitungan Julian Day. Ae. yang semua perhitungan tersebut sudah ada pada library PrayerTime sehingga kita tidak perlu lagi melakukan perhitungan secara manual, karena hal ini telah dilakukan secara otomatis dengan menggunakan library PrayerTime yang dapat didownload secara gratis melalui situs resminya yang ditampilkan pada Tersedia di https://ojs. id/index. php/komputika Copyright A 2017. Komputika: Jurnal Sistem Komputer. ISSN: 2252-9039 Gambar 1. Modul Arduino dan RTC Sutono Komputika. Vol. No. Oktober 2017 Gambar 2. Library PrayerTime B D. Misalkan untuk menentukan Julian Day untuk hari kemerdekaan RI tanggal 17 Agustus 1945, artinya D = 17. M = 8 dan Y = 1945, sehingga A = INT. = INT. atau A = 19. B = 2 INT. Ae 19 = 2 4 Ae 19 atau B = -13, dengan demikian JD = 1720994,5 INT. ,25*Y) INT. ,6001*(M . ) B D = 1720994,5 INT. ,25*1. INT. ,6001*. ) (-. 17 = 2431684,5. Sehingga nilai Julian day pada tanggal 17 Agustus 1945 adalah 2431684,5. RTC merupakan komponen yang diperlukan untuk memberikan informasi mengenai waktu. Waktu disini dapat berupa detik, menit, hari, bulan dan tahun. Arduino Nano tidak dilengkapi secara internal dengan RTC. Dengan demikian, untuk aplikasi yang memerlukan pewaktuan, kita harus menyertakan secara tersendiri. Agar tetap dapat bekerja, sebuah RTC dilengkapi dengan baterai CMOS. Agar modul RTC dapat digunakan oleh mikrokontroler Arduino Nano dibutuhkan dua buah library untuk mendukung pewaktuan dan melakukan perhitungan waktu shalat. Library RTCLib yang digunakan untuk mengambil data Ae data yang tersimpan didalam modul RTC DS1307 dan Library PrayerTime untuk melakukan perhitungan waktu shalat dengan menggunakan metode Julian Day. METODE DAN BAHAN Dalam ilmu hisab Astronomi kontemporer, pemahaman terhadap Julian Day sangat penting. Julian Day menjadi syarat kita dapat menghitung posisi benda seperti bulan, matahari dan planet Ae planet yang selanjutnya dipakai untuk menentukan bulan baru, waktu shalat, dan lain Ae lain. Julian Day juga menjadi dasar untuk menentukan fenomena orbit rotasi bumi, menghitung kapan terjadinya ekuinoks dan solstis dan sebagainya. Berikut metode yang digunakan untuk menghitung Julian Day : . Misalkan tahun adalah Y (Y dapat berupa negatif, asalkan tidak lebih kecil dari 4. Nomor bulan adalah M, dimana M = 1 untuk Januari. M = 2 untuk Februari dan seterusnya hingga M = 12 untuk Desember. Nomor hari/tanggal adalah D. D dapat pula berbentuk Namun perlu diperhatikan bahwa nilai maksimal D harus menyesuaikan dengan bulan M. Sebagai contoh, jika M = 4 . ulan Apri. , maka D tidak mungkin sama dengan 31. Jika M > 2 dan Y tidak berubah. Jika M = 1 atau M = 2, maka nilai M = M 2 dan Y = Y-1. Dengan kata lain untuk bulan Januari dan Februari dapat dinggap bulan ke 13 dan 14 dari tahun sebelumnya. Untuk kalender Gregorian. A = INT(Y/. dan B = 2 INT(A/. -A. Untuk kalender Julian. A tidak perlu dihitung, sedangkan B = 0. Julian Day dirumuskan sebagai JD = 1720994,5 INT. ,25*Y) INT. ,6001(M . ) Sutono Komputika. Vol. No. Oktober 2017 HASIL DAN PEMBAHASAN penentuan waktu shalat, diantaranya seperti yang diperlihatkan pada tabel 1. Selanjutnya dari nilai Julian Day tersebut dapat kita cari beberapa variabel yang menjadi dasar Tabel 1. Rumus Awal Perhitungan Julian Day Istilah Keterangan Koordinat Lintang Tempat/Latitude (L) Daerah yang terletak di sebelah utara garis khatulistiwa . memiliki lintang positif, sebaliknya untuk yang di sebelah selatan lintangnya negatif. Koordinat Bujur Tempat/Longitude (B) Daerah yang terletak di sebelah Timur Greenwich memiliki bujur positif, sedangkan di sebelah barat Greenwichnya memiliki bujur negatif. Zona Waktu Tempat (Z) Daerah yang terletak di sebelah Timur Greenwich memiliki Z positif, sedangkan di sebelah Barat Greenwich memiliki Z negatif. Ketinggian Lokasi dari Permukaan Laut (H) Ketinggian lokasi dari permukaan laut (H) menentukan waktu kapan terbit dan terbenamnya matahari. Satuan H adalah meter. Tanggal (D). Bulan (M) dan Tahun (Y) Tanggal, bulan dan tahun tentu saja menjadi parameter, karena kita ingin menentukan waktu shalat pada tanggal tersebut. Dari tanggal, bulan dan tahun selanjutnya dihitung nilai Julian Day (JD) dengan rumus yaya = 1720994,5 yaycAycN. ,25 O ycU) yaycAycN. ,6001. cA . ) yaA ya Sudut Deklinasi Matahari () Dari sudut tanggal ycN = 2yuU ( Equation of Time (ET) Pertama kali perlu dihitung dahulu Bujur rata Ae rata matahari (L. yang dirumuskan yayaOe2451545 ya0 = 280,46607 36000,7698 O ycO, dimana ycO = , sehingga yaycN = (Oe . 9 237 O ycO) O ycycnycu. Ae . 6 Ae 62 O ycO) O ycaycuyc. 4 Ae 14 O ycO) O ycycnycu. O ya. Ae . 5 O ycO) O ycaycuyc. O ya. 10 O ycO) O ycycnycu. O ya. Ae 4 O ycO) O ycaycuyc. O ya. Ae 212 O ycycnycu. O ya. )/1000 Altitude Matahari Waktu Shubuh dan IsyaAo Nilai altitude matahari berasal dari ketika langit berubah dari gelap menjadi mulai terang, ketika fajar menyingsing di pagi hari dan menyebar secara horisontal dengan Altitude matahari sangat menentukan metode perhitungan waktu shalat, dimana perbedaan 1 derajat dapat memberikan perbedaan waktu sekitar 4 menit. Tetapan Panjang Bayangan Ashar Ada 2 pendapat. Pendapat Mazhab SyafiAoi panjang benda saat Ashar = tinggi benda panjang bayangan benda saat Zhuhur. Sementara pendapat Mazhab Hanafi menyatakan panjang bayangan benda saat Ashar = 2 * tinggi benda panjang bayangan benda saat Zhuhur. yayaOe254154 365,25 ), deklinasi matahari () untuk satu tanggal tertentu dapat dihitung dengan menggunakan rumus: yu = 0,37877 23,264 O sin. ,297 O ycN Oe 79,. 0,3812 O sin. O 57,297 O ycN Oe 82,. 0,17132 O sin. O 57,297 O ycN Oe 59,. Sutono Komputika. Vol. No. Oktober 2017 Tabel 1. Rumus Awal Perhitungan Julian Day (Lanjuta. Istilah Keterangan Waktu Shalat Untuk menentukan waktu shalat tergantung nilai transit yang di tentukan dengan yaA yaycN rumus ycNycycaycuycycnyc = 12 ycs Oe Oe , dengan demikian rumus Ae rumus waktu shalat dapat ditentukan sebagai berikut: ycsEaycEaycyc = ycNycycaycuycycnyc ycoycuycyceycoycycn ycyceycyciyceycoycnycuycaycnycycuycyca ycoycaycycaEaycaycycn yaycEaycayc = ycNycycaycuycycnyc yaycuycyc yaycuyciycoyce yaycEaycayc ycAycayciEaycycnyca = ycNycycaycuycycnyc yaycycycaA = ycNycycaycuycycnyc yaycuycyc yaycuyciycoyce ycAycayciEaycycnyca yaycuycyc yaycuyciycoyce yaycycycaA ycIEaycycaycEa = ycNycycaycuycycnyc Oe yaycuycyc yaycuyciycoyce ycIEaycycaycEa Tabel 2. Penentuan Altitude Waktu Shalat Waktu Shalat Keterangan Ashar yaycoycycnycycyccyce yaycEaycayc = tanOe1 . aya tan. ayaAycI. u Oe yaycnycuycycaycuyc. )). Untuk Mazhab SyafiAoi KA = 1 dan untuk Hanafi KA = 2. ABS menunjukkan nilai absolut atau nilai mutlak. Maghrib yaycoycycnycycyccyce ycAycayciEaycycnyca = Oe0,8333 Oe 0,0347 O Ooya. H merupakan nilai dari ketinggian di atas permukaan laut. IsyaAo yaycoycycnycycyccyce yaycycycaA = Oe. cIycyccycyc yaycycycaA). Jika IsyaAo yaycoycycnycycyccyce yaycycycaA = Oe18 yccyceycycaycycayc. Shubuh cos. Ocos. Oe1 . yaycoycycnycycyccyce ycIEaycycaycEa = Oe. cIycyccycyc ycIEaycycaycE. Dari rumus Ae rumus waktu shalat . , nampak bahwa waktu shalat bergantung pada Hour Angle. Rumus Hour Angle (HA) adalah cos. = sin. Oesin. Osin. shalat seperti yang di jelaskan pada tabel 2. Dengan menggunakan library PrayerTime kita tidak perlu melakukan perhitungan Ae perhitungan tersebut, hal yang perlu kita lakukan adalah menentukan beberapa parameter yang menjadi dasar perhitungan dari library PrayerTime, untuk lebih jelasnya perhatikan gambar 3 dan tabel 3. yaya = Rumus HA tergantung pada altitude Matahari atau Sudut Ketinggian Matahari dari ufuk inilah yang berbeda nilainya untuk setiap waktu Sutono Komputika. Vol. No. Oktober 2017 Gambar 3. Parameter utama dalam perhitungan Waktu Shalat program Arduino Dari gambar 3 terlihat dengan jelas, untuk dapat menentukan waktu shalat kita hanya perlu menentukan tanggal, bulan, tahun saat sekarang, posisi latitude dan longitude, time zone, sudut shubuh dan sudut isyaAo. Untuk lebih jelasnya perhatikan tabel 3. mengimplementasikan Julian Day dalam merancang jam shalat kita membuat program jam shalat secara lengkap yang dilengkapi dengan 2 library tambahan yaitu library RTCLib dan PrayerTime, agar penentuan waktu shalat dapat berjalan secara Berikut beberapa langkah saat akan membuat program jam shalat menggunakan Arduino IDE. Selanjutnya setelah menentukan parameter Ae parameter apasaja yang dibutuhkan dalam Tabel 3. Parameter Dasar Perhitungan Program Arduino Parameter Keterangan Tanggal, bulan dan tahun Dengan menggunakan modul RTC DS1307 maka perubahan tanggal, bulan dan tahun secara otomatis akan berubah sesuai dengan tanggal, bulan dan tahun saat sekarang, jadi kita cukup sekali menentukan tanggal, bulan dan tahun selanjutnya programlah yang mengatur secara otomatis tanpa perlu merubahnya secara manual. Menentukan lintang dan bujur lokasi Lintang dan bujur lokasi tertentu dapat kita tentukan dengan menggunakan aplikasi google map. Time Zone Time Zone . ona wakt. di Indonesia ada 3, yaitu WIB . aktu Indonesia Bara. WITA (Waktu Indonesia Tenga. dan WIT (Waktu Indonesia Timu. WIB. WITA dan WIT memiliki nilai masing Ae masing. Untuk WIB = 7. WITA = 8 dan WIT = 9. Pengaturan sudut Shubuh dan IsyaAo Berdasarkan ketetapan dari KEMENAG, sudut Shubuh dan IsyaAo untuk seluruh wilayah di Indonesia telah ditetapkan. Jadi kita tidak perlu mengganti nilai tersebut selama kita tinggal di Indonesia. Sutono Komputika. Vol. No. Oktober 2017 Langkah pertama adalah menentukan tanggal, bulan dan tahun sekarang saat akan memprogram Arduino, misalkan tanggal 1 Juni 2019. Dari gambar 2, maka potongan koding programnya adalah sebagai berikut: tahun, bulan dan tanggal yang tersimpan di dalam modul RTC DS1307 sehingga dapat dilakukan kalkulasi di dalam program Arduino. Langkah keenam, menetukan Mazhab yang digunakan dalam menentukan waktu shalat dengan potongan program sebagai berikut: int _tahun=2019. int _bulan=6. int _tanggal=1. set_calc_method(MWL). set_asr_method(Shafi. set_high_lats_adjust_method(AngleBase. set_fajr_angle. set_isha_angle. get_prayer_times. year(), now. month(), day(), _lat, _lng, _time_zone, wakt. Langkah kedua adalah menentukan latitude dan longitude dari suatu lokasi dengan menggunakan bantuan aplikasi google map, seperti yang diperlihatkan pada gambar 3. Langkah terakhir adalah menyatukan potongan Ae potongan program tersebut menjadi satu Ae kesatuan sehingga menghasilkan suatu program yang dapat menampilkan penunjuk waktu . dan penunjuk waktu shalat secara otomatis dengan tepat tanpa melakukan perubahan setiap tahunnya. Gambar 4. Latitude dan Longitude suatu lokasi dari gambar 4, maka koding program untuk latitude dan longitude adalah sebagai berikut: KESIMPULAN Dari Hasil dan Pembahasan yang telah dilakukan, dapatlah kita simpulkan bahwa mikrokontroler Arduino yang dibantu dengan library tambahan berupa RTCLib dan PrayerTime dapat kita gunakan untuk merancang penunjuk waktu shalat secara otomatis tanpa perlu direpotkan untuk melakukan perubahan data setiap tahunnya, serta dengan menambahkan indikator buzzer dapat kita gunakan sebagai pengingat kita saat telah memasuki waktu shalat agar kita dapat melaksanakan shalat tepat float _lat=-6. float _lng=107. Langkah ketiga adalah nenetukan lokasi zona waktu kota Bandung yang berada pada zona WIB, sehingga nilai zona waktu adalah 7. Dengan demikian int _timezone=7. Langkah keempat adalah menentukan sudut shubuh dan isyaAo yang telah ditetapkan oleh KEMENAG, yaitu sudut shubuh = 20 dan sudut isyaAo = 18, sehingga koding programnya menjadi DAFTAR PUSTAKA