Rabu, 11 Februari 2015

Algoritma Julian Date

Saya akan memberikan salah satu algoritma yang ada di astronomi. Algoritma Julian Date adalah algoritma pada kalender atau penanggalan. Algoritma ini terkadang dibutuhkan juga untuk menyelesaikan soal olimpiade astronomi. Dari algoritma ini kita bisa mengetahui hari dari tanggal yang diberikan atau mengubah format penanggalan masehi ke penanggalan Julian Date



1. Mengubah Tanggal pada Kalender Masehi Menjadi Julian Date



Algoritma berikut ini digunakan untuk mengubah tanggal di kalender masehi menjadi Julian Date

Simbol atau tanda

tanggal = d
bulan = m
tahun = y

→Langkah pertama, cari nilai m' dan y'. Bila m bernilai 1 atau 2, tambahkan 12 pada m dan kurangkan y dengan satu (y - 1).

Bila m lebih besar dari 2, biarkan nilai m dan y seperti semula atau m = m' dan y = y'

→Setelah kita memiliki nilai d, m' dan y' , kita lanjutkan ke langkah berikutnya.

→Tentukan A

A = INT (y'/100)

Masukkan nilai y' dan yang diambil hanya integer. Ingat, pada integer yang diambil hanya bilangan bulat. Misal INT 18,999 adalah 18. Tidak boleh dilakukan pembulatan.

→Tentukan B

B = 2 - A + INT(A/4)

Bila nilai y' < 1582 , maka nilai B = 0

→Tentukan C

C = INT 365,25y' (Bila y' positif)
C = INT (365,25y' - 0,75) (Bila y' negatif)

→Tentukan D

D = INT [ 30,6001 (m' + 1) ]


→Tentukan Julian Date (JD)

JD = B + C + D + d + 1720994,5

Selesai.

Contoh :

1.1 Tentukan Julian date dari 21 Desember 2012 !

d = 21
m = 12
y = 2012

m' = 12
y' = 2012

A = INT (2012 / 100)
A = 20

B = 2 - 20 + INT (20/4)
B = 2 - 20 + 5
B = -13

C = INT 365,25 x 2012
C = 734883

D = INT 30,6001 (12 + 1)
D = 397

JD = B + C + D + d + 1720994,5
JD = 2456282,5

1.2 Tentukan Julian Date dari 1 Januari 2015 !

d = 1
m = 1
y = 2015

m' = 13
y' = 2014

A = INT (y'/100) = 20
B = 2 - 20 + INT (20/4) = -13
C = INT 365,25y' = 735613
D = INT (30,6001 x 14) = 428

JD = 2457023,5



2. Mengubah Julian Date Menjadi Tanggal Masehi




→Pertama, tambahkan 0,5 pada Julian Date

JD + 0,5

Kemudian tentukan Integer (I) dan Fraksi (F)

Misal, I dari 20,5 adalah 20. F dari 20,5 adalah 0,5

→ Tentukan A

A = INT [ ( I - 1867216,25) / 36524,25 ]

→ Tentukan B

B = 1 + I + A - INT (A/4)

Bila JD < 2299160, maka nilai B = I

→ Tentukan C

C = B + 1524

→ Tentukan D

D = INT [ (C - 122,1) / 365,25 ]

→ Tentukan E

E = INT (365,25D)

→ Tentukan G

G = INT [ (C - E / 30,6001 ]

→Tentukan Tanggal

d = C + F - E - INT (30,6001G)

→Tentukan Bulan

m = G - 13 (Bila nilai G >13,5)

m = G - 1 (Bila nilai G<13
→Tentukan Tahun

y = D - 4716 (Bila m > 2,5)
y = D - 4715 (Bila m < 2,5)

Selesai.

Contoh :

2.1 Tanggal berapakah yang bertepatan dengan 2456282,5 JD ?

Tambahkan 0,5 pada JD kemudian tentukan I dan F.

JD = 2456283
I = 2456283
F = 0

A = INT [ (2456283 - 1867216,25 ) / 36524,25 ]
A = 16

B = 1 + 2456283 + 16 - INT (16/4)
B = 2456296

C = 2456296 + 1524
C = 2457820

D = INT [ (2457820 - 122,1) / 365,25 ]
D = 6728

E = INT (365,25D)
E = 2457402

G = INT [ (2457820 - 2457402) / 30,6001 ]
G = 13

→Tentukan d

d = C + F - E - INT 30,6001G
d = 2457820 + 0 + - 2457402 - 397
d = 21

Tanggal sudah didapatkan

→Tentukan m

Karena G<13
m = G - 1 = 13 - 1 = 12

Bulan sudah didapatkan

→Tentukan y

Karena m > 2,5 , maka

y = D - 4716
y = 6728 - 4716
y = 2012

Tahun sudah didapatkan.

Selesai.



3. Mengetahui Hari dari Julian Date



Kita dapat mengetahui pada hari apa yang bertepatan dengan Julian Date. Atau ketika kita tidak mengetahui hari dari suatu tanggal, kita dapat mencarinya dengan algoritma JD.

→Tentukan JD pada tanggal yang tersebut. Kemudian tambahkan nilai 1,5 pada JD. Setelah itu bagi dengan 7.

(JD + 1,5) / 7

Kemudian dari hasil sisa pembagian, kita bisa tahu nama hari dari aturan sebagai berikut.

Sisa 0 = Hari Minggu
Sisa 1 = Hari Senin
Sisa 2 = Hari Selasa
Sisa 3 = Hari Rabu
Sisa 4 = Hari Kamis
Sisa 5 = Hari Jum'at
Sisa 6 = Hari Sabtu

Contoh :

1. Pada hari apakah yang bersesuaian dengan tanggal 1 Januari 2015 ?

Tentukan JD

JD = 2457023,5

(JD + 1,5) / 7 = 351003 dengan sisa 4.
Berarti 1 Januari 2015 jatuh pada hari Kamis. Coba cek kalender untuk membuktikan.

1 komentar: