Program Arah Qiblat

T. Djamaluddin

LAPAN, Bandung

Pengetahuan tentang trigonometri bola membantu penghitungan arah qiblat.  Ini adalah pengetahuan dasar bagi mahasiswa tahun pertama astronomi atau ilmu falak. Perhitungannya hanya satu rumus sehingga mudah dibuatkan program yang sederhana. Program Basic ini saya buat tahun 1990 saat  kuliah di Kyoto atas permintaan teman-teman di Jepang.

=====================================================

10 ‘************************************

20 ‘

30 ‘         QIBLA DIRECTION

40 ‘   (DZULQAIDAH 1410/JUNE 1990)

50 ‘

60 ‘   CALCULATED BY T.DJAMALUDDIN

70 ‘       DEPT. OF ASTRONOMY

80 ‘        KYOTO UNIVERSITY

90 ‘  SAKYO-KU, KYOTO 606, JAPAN

100 ‘

110 ‘***********************************

120 INPUT “Latitude  (deg.) (South : negative) =”;PHI

130 INPUT “Longitude (deg.) (West  : negative) =”;LAMD

140 RAD = 3.14159/180

150 K = (90 – 21.43)*RAD

160 M = (90 – PHI)*RAD

170 P = ABS(LAMD – 39.75)*RAD

180 N =ATN(SIN(P)/(SIN(M)/TAN(K)-COS(M)*COS(P)))/RAD

190 IF N<0 THEN N=N+180

200 S$ = ” degrees from North to East”

210 SW$= ” degrees from North to West”

220 IF LAMD>39.75 OR LAMD<(-180+39.75) THEN S$ = SW$

230 PRINT : PRINT : PRINT “Qibla direction is “;

240 IF N=0 AND PHI>21.43 THEN PRINT “South”: END

250 IF N=0 AND PHI<21.43 THEN PRINT “North”: END

260 SS$=”determined by yourself. You are in Mecca area.”

270 IF N=0 AND PHI=21.43 THEN PRINT SS$: END

280 PRINT USING “###.##”;N;: PRINT S$

290 PRINT: INPUT “CONTINUED(Y/N) “;YN$

300 IF YN$ =”Y” OR YN$ = “y” THEN GOTO 120

310 SYSTEM

=====================================================

Ini contoh keluaran untuk kota-kota Kyoto, Kobel, dan Jakarta:

Arah Qiblat Masjid Nabawi dan Masjid Kobe

T. Djamaluddin

Profesor Riset Astronomi Astrofisika, LAPAN

Anggota Badan Hisab Rukyat, Kementerian Agama RI

Ketika shalat di masjid Nabawi (Madinah) dan masjid Kobe (Jepang), saya tidak pernah mempermasalahkan arah qiblatnya. Saya percaya saja pada arah qiblat yang selama ini diikuti oleh sekian banyak jamaah. Namun, kini ada qiblalocator (www.qiblalocator.com) perangkat lunak on-line pengukur arah qiblat yang dipadu peta satelit berbasis Google Earth. Ketika ada teman yang mempermasalahkan arah kiblat kedua masjid yang pernah saya kunjungi tersebut, saya coba periksa di qiblalocator. Hasilnya, memang ada penyimpangan. Saya coba menganalisisnya dan menyarankan cara menyikapinya.

Masjid Nabawi dilihat dengan qiblalocator terlihat ada penyimpangan sekitar 4 derajat ke arah kanan. Namun ada yang menarik. Masjid Nabawi asli adalah yang ada kubah hijau di atasnya, di samping makam Rasulullah SAW. Dari data satelit terlihat sisi Timur makam Rasulullah justru sangat tepat arahnya (lihat garis merah pada peta di bawah ini). Ini menunjukkan arah qiblat masjid Nabawi asli sangat tepat arahnya. Hanya bangunan perluasan yang tampaknya menyimpang sekitar 4 derajat tersebut. Lalu, apakah perlu dipermasalahkan penyimpangan derajat tersebut? Tidak perlu dipermasalahkan. Itu dalam batas toleransi, karena penyimpangan oleh sikap badan kita lebih besar dari 4 derajat.

Masjid Kobe di Jepang dibangun tahun 1935 oleh para pedagang asal Turki. Tampaknya mereka merujuk pada peta datar. Bila kita menggunakan peta datar, maka arah kiblat dari Kobe ke Mekkah arahnya seolah ke Barat agak ke Selatan (arah Barat Daya). Garis biru pada peta satelit di bawah ini menunjukkan arah mihrab masjid Kobe yang mengarah ke Barat Daya. Semestinya, arah qiblat ditentukan dengan menggunakan globe atau perhitungan dengan model bumi sebagai bola. Arahnya ditunjukkan oleh garis merah pada qiblalocator (lihat gambar di bawah) yang arahnya Barat agak ke Utara. Lalu bagaimana menyikapinya?  Karena penyimpangannya terlalu jauh, sekitar 50 derajat, disarankan arah qiblatnya disesuaikan. Kalau ada teman-teman Muslim yang berada di wilayah Kansai yang sempat berkunjung ke Masjid Kobe, tolong ingatkan hal ini.

Catatan:

Pada 16 Juli 2018 saya berkunjung lagi ke Masjid Kobe. Tampaknya Pengurus Masjid telah menyadari arah kiblatnya kurang tepat, tetapi tidak berani mengubahnya secara ekstrem. Berikut beberapa foto bagian dalam masjid Kobe.

20180716_163942

Arah sajadah imam hanya diserongkan sedikit

20180716_164113

Garis shaf dibandingkan dengan arah kompas dan bayangan matahari sekitar 2 jam menjelang posisi matahari di atas Mekkah. Garis bayangan matahari dekat arah kiblat yang sebenarnya (sekitar 25 derajat ke arah kanan dari arah Barat — W pada kompas).

Catatan Perjalanan

T. Djamaluddin
 

Sampai November 2010 baru 43 kota di 19 Negara. Di Afrika Selatan sempat juga sekadar transit di bandara beberapa jam (tetapi di cantukan dalam Peta tersebut karena hanya singgah di bandara). Jadi, saya pernah menginjakkan kaki di  lima benua. Hampir semuanya dalam rangka tugas dinas atau seminar dengan biaya dari sponsor (UN, ESA, NASA,  JAXA, dll) atau biaya dinas dari LAPAN. Alhamdulillah.

Program Konversi Kalender Masehi-Hijriyah

T. Djamaluddin
Seorang Profesor di South East Asia Research Center (Tonan Ajia Kenkyu Senta), Kyoto University, pernah menanyakan cara mengkonversikan kalender hijriyah ke Masehi untuk kepentingan risetnya. Dengan dasar pengetahuan astronomi, konversi itu mudah dilakukan. Maka saya buatkan program sederhana yang saya selesaikan pada sekitar awal 1991 dengan revisi terakhir Agustus 1991. List program itu saya tawarkan juga via Kontak Pembaca Tempo 31 Agustus 1991. Alhamdulillah, banyak permintaan dari tanah air dengan balasan via pos [walau saya tahu ada juga yang sebenarnya hanya beralasan untuk mendapatkan perangko Jepang :-)] .Setelah saya pulang, di surat pembaca PR ada pembaca yang minta bantuan menentukan tanggal lahirnya. Informasi yang diperoleh dari orang tuanya hanya lahir pukul 13.30 tanggal 4 Rajab tahun 1968. Dengan program konversi kalender, dengan mudah tanggal lahirnya dapat ditentukan, yaitu Kamis 26 September 1968, 4 Rajab 1388. Jawaban saya di surat pembaca itu disertai tawaran bantuan untuk menghitungkan penentuan tanggal masa lalu dan masa akan datang hanya dengan menghubungi nomor telepon saya. Maka beberapa hari setelah dimuatnya tawaran saya tersebut, telepon di rumah sering berdering dengan berbagai pertanyaan terkait dengan penentuan tanggal dan hari. Kebanyakan kasus menanyakan tanggal atau hari lahir karena tidak adanya dokumen yang pasti karena lahir di kampung dan orang tuanya hanya memberikan informasi terbatas, seperti kasus tersebut di atas. Ada juga yang menanyakan hari Ahad setelah Idul Fitri tahun depan karena berencana menikahkan putrinya. Namun, kadang ada yang lucu juga. Seorang wanita yang menanyakan hari lahir dirinya dan calon suaminya, lalu menanyakan, “Pak, baik tidak dan nasibnya bagaimana?”. Oh, saya dikira tukang ramal. Saya jelaskan, saya hanya menghitungkan berdasarkan hitungan astronomi, bukan berdasarkan ramalan dan sama sekali tidak meramalkan nasib seseorang. List programnya sebagai berikut:

10  PRINT “*********CALENDAR CONVERSION PROGRAM ********”
20  PRINT ” HIJRI(ISLAMIC CALENDAR) <–> SOLAR CALENDAR ”
30  PRINT ”  (CAUTION:THERE IS THE ISLAMIC DATE LINE    ”
40  PRINT ”           WHICH CAUSES THIS CALCULATION MAY ”
50  PRINT ”           DIFFER ABOUT (+/-) 1 DAY)         ”
60  PRINT ”      [6 AUGUST 1991, 25 MUHARRAM 1412]      ”
70  PRINT ”        CALCULATED BY T.DJAMALUDDIN          ”
80  PRINT ”    DEPT. OF ASTRONOMY, KYOTO UNIVERSITY     ”
90  PRINT ”        SAKYO-KU, KYOTO 606, JAPAN           ”
100 PRINT “*********************************************”
110 PRINT
120 PRINT “1. CONVERSION HIJRI(ISLAMIC CALENDAR) TO SOLAR CALENDAR”
130 PRINT “2. CONVERSION SOLAR CALENDAR TO HIJRI(ISLAMIC CALENDAR)”
140 PRINT
150 INPUT “CONVERSION (1 OR 2) OR STOP(0)”; CONV
160 IF CONV=2 GOTO 820
165 IF CONV=0 THEN GOTO 1500
170 PRINT “***CONVERSION HIJRI TO SOLAR CALENDAR***
180 PRINT
190 INPUT ” DATE                              “;HD
200 PRINT ” 1. MUHARRAM         7. RAJAB      ”
210 PRINT ” 2. SAFAR            8. SHABAN     ”
220 PRINT ” 3. RABIUL AWAL      9. RAMADAN    ”
230 PRINT ” 4. RABIUL AKHIR    10. SHAWAL     ”
240 PRINT ” 5. JUMADIL AWAL    11. ZULQAIDAH  ”
250 PRINT ” 6. JUMADIL AKHIR   12. ZULHIJJAH  ”
260 INPUT ” MONTH                             “;HM
270 INPUT ” YEAR                              “;HY
280 NHD1= (HY-1)*354.3671+(HM-1)*29.5306+HD : NHD = INT(NHD1)
290 NSD = NHD1 + 227016!
300 IF NHD > 350721! THEN GC = 10 ELSE GC = 0
310 IF NHD > 393898! THEN GC = 11
320 IF NHD > 430422! THEN GC = 12
330 IF NHD > 466946! THEN GC = 13
340 SY  = INT((NSD+GC)/365.25) + 1
350 MN  = CINT((NSD+GC)-(SY-1)*365.25)
360 MN1 = 0  :  SM = 1
370 IF MN>31 THEN MN1 = 31 : SM = 2
380 IF INT(SY/4) = SY/4 THEN GOSUB 700 ELSE GOSUB 580
390 IF SY = 1700 OR SY = 1800 THEN GOSUB 580
400 IF SY = 1900 THEN GOSUB 580
410 ‘************RESULT************
420 IF SM = 1 THEN SM$ = ” JANUARY ”
430 IF SM = 2 THEN SM$ = ” FEBRUARY ”
440 IF SM = 3 THEN SM$ = ” MARCH ”
450 IF SM = 4 THEN SM$ = ” APRIL ”
460 IF SM = 5 THEN SM$ = ” MAY ”
470 IF SM = 6 THEN SM$ = ” JUNE ”
480 IF SM = 7 THEN SM$ = ” JULY ”
490 IF SM = 8 THEN SM$ = ” AUGUST ”
500 IF SM = 9 THEN SM$ = ” SEPTEMBER ”
510 IF SM =10 THEN SM$ = ” OCTOBER ”
520 IF SM =11 THEN SM$ = ” NOVEMBER ”
530 IF SM =12 THEN SM$ = ” DECEMBER ”
540 SD  = MN – MN1
550 PRINT
560 PRINT HD;”.”;HM;”.”;HY;” HIJRI IS “;SD;SM$;SY;”A.D.”
570 PRINT : PRINT: GOTO 110
580 ‘*****ORDINARY (BASITAH) YEAR******
590 IF MN > 59 THEN MN1 = 59 : SM = 3
600 IF MN > 90 THEN MN1 = 90 : SM = 4
610 IF MN >120 THEN MN1 =120 : SM = 5
620 IF MN >151 THEN MN1 =151 : SM = 6
630 IF MN >181 THEN MN1 =181 : SM = 7
640 IF MN >212 THEN MN1 =212 : SM = 8
650 IF MN >243 THEN MN1 =243 : SM = 9
660 IF MN >273 THEN MN1 =273 : SM =10
670 IF MN >304 THEN MN1 =304 : SM =11
680 IF MN >334 THEN MN1 =334 : SM =12
690 RETURN
700 ‘*******LEAP (KABISAT) YEAR********
710 IF MN > 60 THEN MN1 = 60 : SM = 3
720 IF MN > 91 THEN MN1 = 91 : SM = 4
730 IF MN >121 THEN MN1 =121 : SM = 5
740 IF MN >152 THEN MN1 =152 : SM = 6
750 IF MN >182 THEN MN1 =182 : SM = 7
760 IF MN >213 THEN MN1 =213 : SM = 8
770 IF MN >244 THEN MN1 =244 : SM = 9
780 IF MN >274 THEN MN1 =274 : SM =10
790 IF MN >305 THEN MN1 =305 : SM =11
800 IF MN >335 THEN MN1 =335 : SM =12
810 RETURN
820 PRINT “***SOLAR CALENDAR TO HIJRI***”
830 PRINT
840 INPUT ” DATE                              “;SD
850 PRINT ” 1. JANUARY          7. JULY       ”
860 PRINT ” 2. FEBRUARY         8. AUGUST     ”
870 PRINT ” 3. MARCH            9. SEPTEMBER  ”
880 PRINT ” 4. APRIL           10. OCTOBER    ”
890 PRINT ” 5. MAY             11. NOVEMBER   ”
900 PRINT ” 6. JUNE            12. DECEMBER   ”
910 INPUT ” MONTH                             “;SM
920 INPUT ” YEAR                              “;SY
930  IF SM = 1 THEN MN =  0
940  IF SM = 2 THEN MN = 31
950  IF SM = 3 THEN MN = 59
960  IF SM = 4 THEN MN = 90
970  IF SM = 5 THEN MN =120
980  IF SM = 6 THEN MN =151
990  IF SM = 7 THEN MN =181
1000 IF SM = 8 THEN MN =212
1010 IF SM = 9 THEN MN =243
1020 IF SM =10 THEN MN =273
1030 IF SM =11 THEN MN =304
1040 IF SM =12 THEN MN =334
1050 Y  = SY + (MN+SD)/365.25
1060 IF Y>1582.76 AND Y<1582.788 THEN PRINT “GREGORIAN : OMITTED”: GOTO 110
1070 IF Y>1582.76  THEN GC = 10 ELSE GC = 0
1080 IF Y>1701 THEN GC = 11
1090 IF Y>1801 THEN GC = 12
1100 IF Y>1901 THEN GC = 13
1110 YDN = (SY-1)*365.25
1120 IF SM < 3 THEN GOTO 1160
1130    IF INT(SY/4) = SY/4 THEN MN = MN+1
1140    IF SY = 1700 THEN MN = MN – 1
1150    IF SY = 1800 OR SY = 1900 THEN MN = MN – 1
1160 NSD = YDN + MN + SD – GC
1170 NHD1= NSD – 227016! : NHD = INT(NHD1)
1180 HY  = INT(NHD1/354.3671 + 1)
1190 HM1 = CINT(NHD1 – (HY-1)*354.3671)
1200 HM  = INT(HM1/29.5306) + 1
1210 HD  = CINT(HM1 – (HM-1)*29.5306 ) : GOSUB 1400
1220 IF HD = 0 THEN HM = HM-1 : HD = 30
1230 ‘************RESULT************
1240 IF HM = 0 THEN HM$ = ” ZULHIJJAH ” : HY = HY – 1
1250 IF HM = 1 THEN HM$ = ” MUHARRAM ”
1260 IF HM = 2 THEN HM$ = ” SAFAR ”
1270 IF HM = 3 THEN HM$ = ” RABIUL AWAL ”
1280 IF HM = 4 THEN HM$ = ” RABIUL AKHIR ”
1290 IF HM = 5 THEN HM$ = ” JUMADIL AWAL ”
1300 IF HM = 6 THEN HM$ = ” JUMADIL AKHIR”
1310 IF HM = 7 THEN HM$ = ” RAJAB ”
1320 IF HM = 8 THEN HM$ = ” SHABAN ”
1330 IF HM = 9 THEN HM$ = ” RAMADAN ”
1340 IF HM =10 THEN HM$ = ” SHAWAL ”
1350 IF HM =11 THEN HM$ = ” ZULQAIDAH ”
1360 IF HM =12 THEN HM$ = ” ZULHIJJAH ”
1370 PRINT
1380 PRINT SD;”.”;SM;”.”;SY;” A.D IS “; HD; HM$; HY; ” HIJRI “;”(“;DD$;”)”
1390 PRINT : PRINT: GOTO 110
1400 ‘************THE DAY************
1410 NHD1 = NHD-7*INT(NHD/7) : DD = NHD1 MOD 7
1420 IF DD = 0 THEN DD$ = ” THURSDAY ”
1430 IF DD = 1 THEN DD$ = ” FRIDAY ”
1440 IF DD = 2 THEN DD$ = ” SATURDAY ”
1450 IF DD = 3 THEN DD$ = ” SUNDAY ”
1460 IF DD = 4 THEN DD$ = ” MONDAY ”
1470 IF DD = 5 THEN DD$ = ” TUESDAY ”
1480 IF DD = 6 THEN DD$ = ” WEDNESDAY ”
1490 RETURN
1500 SYSTEM

CALENDAR CONVERSION PROGRAM
PROGRAM KONVERSI KALENDER

(Kalender Hijri <—> Kalender Masehi)

Penjelasan Umum

Kalender  Islam  (Hijri) ditentukan  berdasarkan  penampakan
hilal  dengan  siklus  rata-rata 29,5306 hari.  Maka  satu  tahun
hijriyah  adalah 354,3671 hari. Dan menurut data sejarah  tentang
hijrah  Rasulullah  s.a.w.,  1 Muharram 1  H.  bertepatan  dengan
tanggal  16  Juli 622 M. Dengan data ini dapat  dihitung  selisih
jumlah hari suatu tanggal hijriyah terhadap kalender Masehi untuk
menentukan konversinya.

Kalender  syamsiah (Masehi) ditentukan  berdasarkan  periode
kembalinya matahari ke titik musim semi, yaitu 365,2422 hari. Se-
dangkan  jumlah hari setiap bulannya ditentukan berdasarkan  kon-
vensi  saja. Sebelum Reformasi Gregorius pada 1582,  jumlah  hari
rata-rata  per tahun adalah 365,25 hari dengan  menggunkan  tahun
kabisat  setiap empat tahun. Gregorius memperbarui sistem  Julius
tersebut  dengan  menggunakan  jumlah hari  rata-rata  per  tahun
365,2425 hari yang lebih mendekati kenyataan. Reformasi Gregorius
ini menyebabkan “lompatan” tanggal dari 4 Oktober langsung ke  15
Oktober 1582, tanpa mengubah urutan harinya.

Dalam  program  ini reformasi  Gregorius  tersebut  dianggap
segera  diterapkan,  walaupun tidak  semua  negara  melakukannya,
misalnya  Jepang  masih menggunakan sistem  Julius  sampai  1872.
Program  ini berlaku untuk mengkonversikan kalender sampai  tahun
2099, termasuk juga menentukan hari sejak 1 Januari 1 M.

Satu hal yang harus diperhatikan adalah kemungkinan  “perbe-
daan”,  plus atau minus, sekitar satu hari.  Kemungkinan  “perbe-
daan”  ini  tidak dapat dihindarkan karena  Garis  Tanggal  Islam
bergeser  setiap bulan, relatif terhadap Garis  Tanggal  Interna-
sional. Selain itu, perhitungan dengan kriteria penampakan  hilal
tidak  praktis  untuk  konversi  kalendar.  Karenanya  perbedaan,
sekitar satu hari,  dengan hasil rukyat (mengamati hilal) mungkin
juga terjadi. Karenanya untuk konversi kalender hijri ke  masehi,
hari tidak dihitung.

Penjelasan Program (Explanation of the program)
————————————————–

Masukan yang diperlukan (INPUT):

*> Pilihan konversi (Conversion type):

1. Konversi Kalender Islam (Hijri) ke Masehi
(Convert the Islamic Calendar to the Solar one)
2. Konversi Kalender Masehi ke Hijri
(Convert the Solar calendar to the Islamic one)

*> Tanggal, bulan dan tahun (date, month, year).

Untuk  mencari hari suatu tanggal Masehi sampai tahun  2099,
gunakan pilihan 2 (To find any date on the solar calendar up  to
the year 2099, select the conversion type 2).

Hasil Konversi (Examples of the result)
————————————–
Untuk  menguji  kebenaran menyalin  program,  termasuk  juga
memberikan  contoh  hasil program ini,  berikut  ini  ditunjukkan
beberapa hasil konversi.

Konversi                     Masukan                 Keluaran
Conversion type          INPUT                   OUTPUT
—————————————————————–
1            1 Muharram 1 H             16 Juli 622 M
2           16 Juli 622 M                  1 Muharram 1 H (Jumat)

1           16 Ramadan 990 H           4 Oktober 1582 M
2            4 Oktober 1582 M         16 Ramadan 990 H (Kamis)

1           17 Ramadan 990 H          15 Oktober 1582 M
2           15 Oktober 1582 M         17 Ramadan 990 H (Jumat)
1            8 Ramadan 1364 H        *18 Agustus 1945 M
2           17 Agustus 1945 M *        8 Ramadan 1364  (Jumat)

1           13 Sya’ban 1411 H         28 Februari 1991 M
2           28 Februari 1991 M        13 Sya’ban 1411 (Kamis)
1           14 Sya’ban 1411 H          1 Maret 1991 M
2            1 Maret 1991 M           14 Sya’ban 1411 (Jumat)

1           10 Dzulhijjah 1412        23 Juni 1991 M
2           23 Juni 1991 M            10 Dzulhijjah 1412(Ahad)

1            1 Muharram 1412 H       *14 Juli 1991 M
2           13 Juli 1991 M *           1 Muharram 1412 (Sabtu)
—————————————————————–
*  : “Perbedaan” pada kalender Masehi untuk tanggal hijriah  yang
sama dijelaskan di atas.

NOTE: THIS PROGRAM MAY BE USED TO PREDICT THE BEGINNING OF RAMADAN, EID AL FITR, AND EID AL ADHA. TO  FIND  THE  ACCURATE  DATE, YOU HAVE TO MAKE OBSERVATION OF THE  HILAL  OR  ASTRONOMICAL CALCULATION BASED ON LOCAL DATA OF SUNSET AND MOONSET.

Kyoto, Agustus 1991

T. DJAMALUDDIN

Dept. of Astronomy
Kyoto University
Sakyo-ku, Kyoto 606
JAPAN
(Alamat sekarang: LAPAN, Jl. Dr. Djundjunan 133, Bandung 40173)

Program Jadwal Shalat

T. Djamaluddin
 

Awal tahun 1990 ketika kuliah S2 dan S3 di Kyoto University, Department of Astronomy, saya menyusun program jadwal shalat berdasarkan algoritma posisi matahari. Pembuatan program itu terdorong oleh kebutuhan teman-teman mahasiswa Muslim di Jepang untuk menentukan jadwal waktu shalat di kota mereka. Internet belum banyak berkembang, selain untuk e-mail. Sehingga tidak ada sumber informasi untuk mendapatkan jadwal shalat. Sewaktu ada tawaran seminar Islamic Computation (nama tepatnya lupa) di AS tahun 1991, saya kirim program saya dalam bahasa Basic (tanpa kehadiran saya) kepada Organizing Committee. Rupanya program jadwal shalat itu menarik perhatian dan diterjemahkan menjadi bahasa fortran untuk SO UNIX. Alhamdulillah, program itu termasuk generasi pertama yang menyebar ke berbagai negara yang direlease 1991. Ada juga yang meminta izin untuk menterjemahkan ke bahasa C. Catatan program jadwal shalat generasi pertama bisa di lihat di

http://www.faqs.org/faqs/islam-faq/part11/

http://www.africa.upenn.edu/Software/Islamic_Computing_11765.html

5 ‘************************************************
10 ‘PRAYER TIME TABLE FOR ANY REGION IN THE WORLD
20 ‘BETWEEN LATITUDE 65 N – 65 S
30 ‘ CALCULATED BY T.DJAMALUDDIN
40 ‘ DEPT. OF ASTRONOMY, KYOTO UNIVERSITY
50 ‘ SAKYO-KU, KYOTO 606, JAPAN
60 ‘************************************************
61 INPUT “NAME OF FILE, e.g. D:SALAT.TKY”;FILE$
65 OPEN FILE$ FOR OUTPUT AS #1
70 RAD = 3.14159/180
80 INPUT “CITY’S NAME =”;CITY$
90 INPUT “CITY’S LONGITUDE; WEST : negative (in DEGREES)=”;LAMD
100 INPUT “CITY’S LATITUDE ; SOUTH: negative (in DEGREES)=”;PHI
110 PRINT “TIME DIFFERENCE = STANDARD TIME – GMT or UT”
120 INPUT “TIME DIFFERENCE ; WEST : negative (in HOURS) =”;TD
130 PRINT #1,” PRAYER TIME TABLE FOR “;CITY$ : PRINT #1,” “:PRINT #1,” ”
140 LAMD = LAMD/360 * 24
150 PHI = PHI*RAD
160 DATA “JANUARY”,31,”FEBRUARY”,28,”MARCH”,31,”APRIL”,30,”MAY”,31
170 DATA “JUNE”,30,”JULY”,31,”AUGUST”,31,”SEPTEMBER”,30
180 DATA “OCTOBER”,31,”NOVEMBER”,30,”DECEMBER”,31
190 N0 = 0
200 FOR MN = 1 TO 12
210 READ MONTH$,D
220 PRINT #1,” “,MONTH$
230 PRINT #1,” ”
240 PRINT #1,”DATE FAJR SUNRISE ZUHR ASR MAGHRIB ISHA”
250 FOR K = 1 TO D
260 N = N0 + K
270 A = 6
280 Z = 108*RAD : GOSUB 530
290 IF ABS(X) > 1 THEN GOTO 310
300 T(1) = ST
310 Z = (90+5/6)*RAD : GOSUB 530
320 T(2) = ST
330 A = 18
340 Z = (90+5/6)*RAD : GOSUB 530
350 SUNSET = ST : T(5) = ST + 2/60
360 Z = 108*RAD : GOSUB 530
370 IF ABS(X) > 1 THEN GOTO 390
380 T(6) = ST
390 MIDDAY = (T(2) + SUNSET)/2 : T(3) = MIDDAY + 2/60
400 T(4) = (T(3) + T(5))/2
410 PRINT #1,USING “##”;K; : PRINT #1,” “;
420 FOR I= 1 TO 6
430 TH = INT(T(I)) : TM = INT((T(I)-TH)*60)
440 PRINT #1,USING “##”;TH; : PRINT #1,”:”;
450 PRINT #1,USING “##”;TM; : PRINT #1,” “;
460 NEXT I : PRINT #1,” ”
470 NEXT K : N0 = N
480 PRINT #1,” “:PRINT #1,” ” : PRINT:PRINT
490 NEXT MN
500 CLOSE
520 END
530 T = N + (A – LAMD)/24
540 M = (.9856*T – 3.289)*RAD
550 L = M + 1.916*RAD*SIN(M) + .02*RAD*SIN(2*M) + 282.634*RAD
560 LH = L/3.14159*12 : QL = INT(LH/6)+1
570 IF INT(QL/2)*2-QL<>0 THEN QL=QL-1
580 RA = ATN(.91746*TAN(L))/3.14159*12
590 RA = RA + QL*6
600 SIND = .39782*SIN(L)
610 COSD = SQR(1-SIND*SIND)
620 X = (COS(Z) – SIND*SIN(PHI))/(COSD*COS(PHI))
630 IF ABS(X) > 1 THEN GOTO 720
640 ATNX = ATN(SQR(1-X*X)/X)/RAD
650 IF ATNX < 0 THEN ATNX = ATNX + 180
660 H = (360 – ATNX)*24/360
670 IF A = 18 THEN H = 24 – H
680 TLOC = H + RA – .06571*T – 6.622
690 TLOC = TLOC + 24
700 TLOC = TLOC – INT(TLOC/24)*24
710 ST = TLOC – LAMD + TD
720 RETURN

Setelah saya pulang ke LAPAN Bandung 1994, saya buat modifikasi menyesuaikan dengan kriteria Depag RI. Ini versi jadwal shalat harian selama 1 tahun:

10  ‘JADWAL SALAT SELURUH DUNIA ANTARA LINTANG 65 S – 65 U
20  ‘OLEH T.DJAMALUDDIN (LAPAN BANDUNG)
30  ‘MENGIKUTI KRITERIA DEPAG RI
40  ‘*********************************************
50  INPUT “NAMA FILE, e.g. D:SALAT.JAD”; FILE$
60  OPEN FILE$ FOR OUTPUT AS #1
70  RAD = 3.14159 / 180
80  INPUT “NAMA KOTA                             =”; CITY$
90  INPUT “BUJUR ;  BB:-, BT:+ (DERAJAT)         =”; LAMD
100 INPUT “LINTANG; LS:-, LU:+ (DERAJAT)         =”; PHI
110 PRINT “BEDA WAKTU= WAKTU STANDAR – GMT, e.g. WIB:7 ”
120 INPUT “BEDA WAKTU; BB:-, BT:+ (JAM)          =”; TD
130 PRINT #1, ”       JADWAL SALAT “; CITY$: PRINT #1, ” “: PRINT #1, ” ”
140 LAMD = LAMD / 360 * 24
150 PHI = PHI * RAD
160 DATA “JANUARI”,31,”FEBRUARI”,28,”MARET”,31,”APRIL”,30,”MEI”,31
170 DATA “JUNI”,30,”JULI”,31,”AGUSTUS”,31,”SEPTEMBER”,30
180 DATA “OKTOBER”,31,”NOVEMBER”,30,”DESEMBER”,31
190 N0 = 0
200 FOR MN = 1 TO 12
210   READ MONTH$, D
220   PRINT #1, ”            “, MONTH$
230   PRINT #1, ” ”
240   PRINT #1, “TGL SHUBUH  TERBIT  DHUHUR  ASHAR  MAGHRIB  ISYA”
250   FOR K = 1 TO D
260     N = N0 + K
270     A = 6
280     Z = 110 * RAD: GOSUB 540
290     IF ABS(X) > 1 THEN GOTO 310
300     T(1) = ST
310     Z = (90 + 5 / 6) * RAD: GOSUB 540
320     T(2) = ST
330     A = 18
340     Z = (90 + 5 / 6) * RAD: GOSUB 540
350     SUNSET = ST: T(5) = ST + 2 / 60
360     Z = 108 * RAD: GOSUB 540
370     IF ABS(X) > 1 THEN GOTO 390
380     T(6) = ST
390     A = 12: GOSUB 540
400     MIDDAY = ST: T(3) = MIDDAY + 2 / 60
410     ZD = ABS(DEK – PHI): A = 15: GOSUB 540: T(4) = ST
420     PRINT USING “###”; N: PRINT #1, USING “##”; K; : PRINT #1, ”  “;
430     FOR I = 1 TO 6
440       TH = INT(T(I)): TM = INT((T(I) – TH) * 60)
450       PRINT #1, USING “##”; TH; : PRINT #1, “:”;
460       PRINT #1, USING “##”; TM; : PRINT #1, ”   “;
470     NEXT I: PRINT #1, ” ”
480   NEXT K: N0 = N
490   PRINT #1, ” “: PRINT #1, ” ”
500 NEXT MN
510 CLOSE
520 SYSTEM
530 END
540   T = N + (A – LAMD) / 24
550   M = (.9856 * T – 3.289) * RAD
560   L = M + 1.916 * RAD * SIN(M) + .02 * RAD * SIN(2 * M) + 282.634 * RAD
570   LH = L / 3.14159 * 12: QL = INT(LH / 6) + 1
580   IF INT(QL / 2) * 2 – QL <> 0 THEN QL = QL – 1
590   RA = ATN(.91746 * TAN(L)) / 3.14159 * 12
600   RA = RA + QL * 6
610   SIND = .39782 * SIN(L)
620   COSD = SQR(1 – SIND * SIND)
630   DEK = ATN(SIND / COSD)
640   IF A = 15 THEN Z = ATN(TAN(ZD) + 1)
650   X = (COS(Z) – SIND * SIN(PHI)) / (COSD * COS(PHI))
660   IF ABS(X) > 1 THEN GOTO 720
670   ATNX = ATN(SQR(1 – X * X) / X) / RAD
680   IF ATNX < 0 THEN ATNX = ATNX + 180
690   H = (360 – ATNX) * 24 / 360
700   IF A = 18 THEN H = 24 – H
710   IF A = 12 THEN H = 0
720   IF A = 15 THEN H = 24 – H
730   TLOC = H + RA – .06571 * T – 6.622
740   TLOC = TLOC + 24
750   TLOC = TLOC – INT(TLOC / 24) * 24
760   ST = TLOC – LAMD + TD
770   RETURN

===================================================================

Aplikasi berbasis web telah dikembangkan oleh Murdjoko (Indonesia SciTech Academy) dengan beberapa modifikasi (antara lain penambahan waktu dhuha).

===================================================================