RSS

Dokumentasi Program Jadwal Shalat

16 Sep
Program Jadwal Shalat v. 1
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


Situs http://www.geocities.com/Athens/Acropolis/2663/pshalat2.html
masih menyimpan versi awal dalam bahasa Basic (sebenarnya yang ini modifikasi
ke sekian yang update terakhir 18 Nov 1992, bukan versi yang diterjemahkan ke
bahasa fortran dan C).

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 awalnya:

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

[Bila
berminat executable programnya –versi 1 tahun harian dan 1 tahun 5
harian–, silakan kontak via e-mail yang tercantum di halaman muka]

 
2 Komentar

Ditulis oleh pada September 16, 2008 in Hisab-Rukyat

 

2 responses to “Dokumentasi Program Jadwal Shalat

  1. angga

    Mei 7, 2011 at 1:05 pm

    assalamualaikum

    mas kok saya gak ketemu alamat email mas

    saya mw minta source code programn penjadwalan shalat dalam bentuk j2me..
    klo bisa tolong di krimin ke email sya ini mas

    angga.dwimaputra@gmail.com

    terima kasih

     

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

 
%d blogger menyukai ini: