Di dalam buku Hisab Falak yang disusun oleh bapak H
Ilya Asyhari Nawawi dari Bandungsari Grobogan, terdapat rumus Visual Basic Editor
yang kompatibel untuk perangkat lunak Microsoft Excel. Fungsi dari rumus
tersebut adalah untuk mengetahui diantaranya; awal waktu salat, arah kiblat dan
rashdul kiblat. Namun, semenjak rumus itu ditulis sekitar sepuluh tahun yang
lalu, nampaknya belum pernah direvisi ulang oleh penulis. Maklum, di PP Fadllul
Wahid, materi ini tidak pernah diajarkan sama sekali.
Untuk rumus penentuan awal waktu salat, dalam buku
itu hanya dirancang untuk Waktu Indonesia Barat (WIB) atau zona GMT+7. Padahal
saat ini, berdasarkan keputusan Presiden Soeharto tahun 1988, Negara Kesatuan
Republik Indonesia dibagi menjadi tiga zona waktu. Dengan ketentuan sebagai
berikut; Waktu Indonesia Barat untuk pulau Sumatra, Jawa, Kalimantan Barat dan
Kalimantan Tengah. Waktu Indonesia Tengah (WITA) untuk Bali, NTB, NTT, Kalsel,
Kaltim dan Sulawesi. Waktu Indonesia Timur (WIT) untuk Gorontalo, Maluku dan
Papua.
Maka dari itu, untuk bisa digunakan pada daerah-daerah
yang berada di zona WITA atau WIT harus diedit sendiri dengan cara menambahkan
function-function baru atau menambah argumen. Dan cara terakhirlah yang saya
pilih karena lebih praktis.
Tulisan di bawah ini adalah kumpulan formula yang
telah saya revisi agar bisa sesuai dengan seluruh daerah di Indonesia.
Function
Tafaut1(Tgl, Bt, Markaz)
Tafaut1
= ((Bt - Markaz) / 15) - Tafaut(Tgl)
End
Function
Function
H_Sunset(Ard, Tgl, Ttmp)
Dekl
= Mail(Tgl)
Sdm
= Asinus(Sinus(-0.25) / Cosinus(Ard) / Cosinus(Dekl))
Refraksi
= Asinus(Sinus(0 - 33 / 60 - 30 / 3600) / Cosinus(Ard) / Cosinus(Dekl))
Dip
= -1.76 * Sqr(Ttmp) / 60
H_Sunset
= Sdm + Refraksi + Dip
End
Function
Function
Terbit1(Ard, Bt, Tgl, Ttmp, Markaz)
Taf
= Tafaut1(Tgl, Bt, Markaz)
Terbi
= Terbit(Ard, Tgl, Ttmp)
Terbit1
= Terbi - Taf
End
Function
Function
Magrib1(Ard, Bt, Tgl, Ttmp, Markaz)
Taf
= Tafaut1(Tgl, Bt, Markaz)
Magri
= Magrib(Ard, Tgl, Ttmp)
Magrib1
= Magri - Taf
End
Function
Function
Dluha1(Ard, Bt, Tgl, Markaz)
Taf
= Tafaut1(Tgl, Bt, Markaz)
Dluh
= Dluha(Ard, Tgl)
Dluha1
= Dluh - Taf
End
Function
Function
Dluhur1(Tgl, Bt, Markaz)
Dluhur1
= 12 - Tafaut1(Tgl, Bt, Markaz)
End
Function
Function
Ashar1(Ard, Bt, Tgl, Markaz)
Taf
= Tafaut1(Tgl, Bt, Markaz)
Asar
= Ashar(Ard, Tgl)
Ashar1
= Asar - Taf
End
Function
Function
Isya1(Ard, Bt, Tgl, Markaz)
Taf
= Tafaut1(Tgl, Bt, Markaz)
Isy
= Isya(Ard, Tgl)
Isya1
= Isy - Taf
End
Function
Function
Range360(x As Double) As Double
Range360
= x - 360 * Int(x / 360)
End
Function
Function
AzimutQiblat(LintangT As Double, BujurT As Double) As Double
Dim
AQ As Double
AQ
= Application.Degrees(Application.Atan2((Cos(Application.Radians(LintangT)) _
*
Tan(Application.Radians(21 + 25 / 60)) - Sin(Application.Radians(LintangT)) _
*
Cos(Application.Radians((39 + 50 / 60) - BujurT))), _
Sin(Application.Radians((39
+ 50 / 60) - BujurT))))
AzimutQiblat
= Range360(AQ)
End
Function
Function
Drj(x)
Jam
= Format(Fix(x), "0#")
Mnt
= Format(Fix(Abs((x - Fix(x)) * 60)), "0#")
Dtk
= Format((Abs(((x - Fix(x)) * 60) - Fix((x - Fix(x)) * 60))) * 60,
"0#")
If
Jam = 0 And x < 0 Then
Jam
= "-00"
Else
Jam
= Jam
End
If
Drj
= Jam & Chr(176) & " " & Mnt & Chr(39) & "
" & Dtk & Chr(34)
End
Function
Function
Hpasar(tgl As Date)
Dim
Myweek, Mypasar, Har, Pas
Har
= tgl Mod 7
Pas
= tgl Mod 5
Myweek
= Array("Sabtu", "Ahad", "Senin",
"Selasa", "Rabu", "Kamis", "Jum'at")
Mypasar
= Array("Kliwon", "Legi", "Pahing",
"Pon", "Wage")
Hpasar
= Myweek(Har) & " " & Mypasar(Pas)
End
Function
Function
Terbilang(n As Long) As String 'max 2.147.483.647
Dim
satuan As Variant
On
Error GoTo terbilang_error
satuan
= Array("", "Satu", "Dua", "Tiga",
"Empat", "Lima", "Enam", "Tujuh",
"Delapan", "Sembilan", "Sepuluh",
"Sebelas")
Select
Case n
Case
0 To 11
Terbilang
= " " + satuan(Fix(n))
Case
12 To 19
Terbilang
= Terbilang(n Mod 10) + " Belas"
Case
20 To 99
Terbilang
= Terbilang(Fix(n / 10)) + " Puluh" + Terbilang(n Mod 10)
Case
100 To 199
Terbilang
= " Seratus" + Terbilang(n - 100)
Case
200 To 999
Terbilang
= Terbilang(Fix(n / 100)) + " Ratus" + Terbilang(n Mod 100)
Case
1000 To 1999
Terbilang
= " Seribu" + Terbilang(n - 1000)
Case
2000 To 999999
Terbilang
= Terbilang(Fix(n / 1000)) + " Ribu" + Terbilang(n Mod 1000)
Case
1000000 To 999999999
Terbilang
= Terbilang(Fix(n / 1000000)) + " Juta" + Terbilang(n Mod 1000000)
Case
Else
Terbilang
= Terbilang(Fix(n / 1000000000)) + " Milyar" + Terbilang(n Mod
1000000000)
End
Select
Exit
Function
terbilang_error:
MsgBox
Err.Description, vbCritical, "^_^ Terbilang Error"
End
Function
Catatan:
Kombinasi karakter spasi dan underscore (
_) digunakan untuk pindah ke baris bawah tanpa memutus susunan rumus tersebut.
Anda juga masih harus menulis rumus-rumus yang ada di
buku Hisab Falak, karena antara satu dengan yang lainnya masih berkesinambungan.
Tidak ada komentar:
Posting Komentar
Silakan berkomentar dan tunggu kunjungan balik dari saya. Tabik!