BAB
I
PENDAHULUAN
1.1 Pendahuluan
Dalam bidang ilmu
Geodesi Satelit, sistem penanggalan Julian (Julian Date) banyak digunakan,
karena sistem ini dapat mempresentasikan suatu epok hanya dengan satu bilangan.
System waktu dengan unit hari ini dihitung sejak 1 Januari SM. Pada kalender
Julian, satu tahun secara rata-rata didefinisikan sebagai 365,25 hari.
a.
Transformasi
Waktu Sipil ke Waktu Julian
Waktu
dalam penanggalan sipil dapat ditransformasikan ke waktu Julian dengan
menggunakan algoritma tertentu. Seandainya dalam waktu sipil, tahun dinyatakan
dengan bilangan bulat Y, bulan dinyatakan dengan bilangan bulat M, hari
dinyatakan dengan bilangan bulat D dan jam dinyatakan dengan bilangan pecahan
UT, maka waktu tersebut dalam penanggalan Julian dihitung dengan formulasi
berikut (Hoffmann-Wellenhof et all., 1992)
berlaku untuk epok antara Maret 1990 sampai Februari 2100:
JD = INT [365.25y] +
INT [30.6001(m+1)] + D + UT/24 + 1720981.5
Dimana
pada rumus diatas:
INT(.)
= bilangan bulat dari bilangan pecahan (.)
y=Y-1
dan m=M +12 bila M ≤ 2
y=Y
dan m=M, bila M
>2
b.
Transformasi
Waktu Julian ke Waktu Sipil
Waktu
Julian juga dapat ditransformasikan ke waktu sipil. Apabila waktu Julian (JD)
diketahui maka parameter tahun yang
dinyatakan dengan bilangan bulat Y, bulan yang dinyatakan dengan bilangan bulat
M, hari yang dinyatakan dengan bilangan bulat D, dapat dihitung dengan
algoritma berikut ini (Hoffmann-Wellenhof
et all., 1992):
D = b - d - INT(30.6001
* e) + fRAC [JD+0.5]
M =( e - 1 )- 12 * INT(e
/ 14)
Y =( c - 4715 ) –
INT[(7+M)/10]
Pada
rumus-rumus diatas:
a
= INT (JD + 0.5)
b
= a + 1537
c
= INT [(b - 122.1) / 365.25]
d
= INT (c * 365.25)
e
= INT [(b - d)/30.6001]
FRAC=nilai
pecahan dari bilangan pecahan
c.
Penentuan
Hari
Hari
dapat ditentukan dari waktu Julian (JD)-nya, melalui parameter yang dapat
dihitung dengan rumus berikut:
N=modulo {INT[JD+0.5] *
&}
Dalam
hal ini bila N=0 menunujukkan hari Senin, N=1 hari Selasa, N=2 hari Rabu, N=3
hari Kamis, N=4 hari Jum’at, N=5 hari Sabtu dan N=6 hari Minggu.
BAB II
PEMBAHASAN
2.1 Soal yang Diberikan
Buat
program untuk menkonversikan penanggalan sipil ke penanggalan Julian dan
sebaliknya. Dengan program tersebut, hitung tanggal Julian dari tanggal lahir
saudara/i (saya) dan temukan hari
kelahiran anda dan sebaliknya hitung kembali tanggal lahir berdasarkan Julian
date yang didapat.
2.2 Penyelesaian
2.2.1
Perhitungan
Manual
Tanggal lahir 02
Desember 1995 jam 04:00 UT. Berdasarkan perhitungan secara manual didapat
Julian Date (JD) = 2450053.667 dengan nilai N = 5 hari Sabtu.
2.2.2
Perhitungan
dengan Program
Program
konversi waktu sipil ke Julian Date dibuat menggunakan code block dengan bahasa
pemograman C++. Dibawah ini script dari program tersebut :
#include <stdio.h>
#include <math.h>
int
main()
{
char pilihan;
printf("Program konversi Waktu Sipil
ke Julian Date atau sebaliknya\n");
printf("Oleh Joko Purnomo (3512100037)
SAG kelas A\n");
printf("masukkan pilihan anda (a atau
b):\n");
printf("a. sipil ke julian:\n");
printf("b. julian ke sipil:\n");
scanf("%c", &pilihan);
if (pilihan == 'a') //memberikan percabangan sipil ke Julian atau Julian ke sipil
{
int
t, b, h, y, m, d, jam, mnt, dtk, N; //
pendefinisian variable dalam bil.bulat
double jul, ut, y1, m1, a, c; //pendefinisian variable dalam bil. Pecahan
printf("Mengubah waktu sipil ke
julian\n");
printf("Masukkan tahun : "); //memasukkan
variable tahun
scanf ("%d", &t);
printf("Masukkan bulan : "); //memasukkan
variable bulan
scanf ("%d", &b);
printf("Masukkan tanggal: ");//memasukkan variable tanggal
scanf("%d", &h);
printf("Masukkan jam anda
lahir\n"); //memasukkan variable jam
printf("Masukkan jam : ");
scanf("%d", &jam);
printf("Masukkan menit : ");
scanf("%d", &mnt);
printf("Masukkan detik : ");
scanf("%d", &dtk);
if((b <= 2) ) //memberikan percabangan apabila bulan > 2 atau tidak
{
m = b + 12;
y = t - 1;
}
else
{
m = b ;
y = t ;
}
a = 365.25 * y;
c
= 30.6001 * (m+1);
ut = jam + (mnt/60) + (dtk/3600);
y1 = INT (a);
m1 = INT (c);
printf ("waktu sipil %d - %d - %d
jam %d : %d :%d\n", h, b, t, jam, mnt, dtk);
printf ("julian datenya adalah
%lf\n", jul);
N = fmod((INT(jul + 0.5)),7); //perhitungan hari
if (N==0)
{
printf ("harinya adalah
senin");
}
else if (N==1)
{
printf ("harinya adalah
selasa");
}
else if (N==2)
{
printf ("harinya adalah
rabu");
}
else if (N==3)
{
printf ("harinya adalah
kamis");
}
else if (N==4)
{
printf ("harinya adalah
jumat");
}
else if (N==5)
{
printf ("harinya adalah
sabtu");
}
else if (N==6)
{
printf ("harinya adalah
minggu");
}
}
Else //percabangan
perhitungan Julian ke sipil
{
int a, hari, bln, thn, i, j, N ; //pendefinisian bilangan bulat
double frac_a, b, jul, y, m, UT, c, d,
e; //pendefinisian bilangan desimal
printf("Mengubah waktu julian ke
sipil\n");
printf("Masukkan waktu julian : ");
scanf ("%lf", &jul);
a = INT (jul + 0.5);
b = a + 1537;
c = INT ((b - 122.1) / 365.25);
d = INT (c * 365.25);
e = INT ((b - d)/30.6001);
frac_a = ( jul + 0.5) - a;
hari = b - d - INT(30.6001 * e) +
frac_a; //perhitungan hari
bln =( e - 1 )-( 12 * (INT(e / 14)) ); //perhitungan bulan
thn =( c - 4715 ) - INT((7+bln)/10); //perhitungan tahun
if (bln<=2) //percabangan
bulan <= 2 atau tidak
{
y=thn-1;
m=bln+12;
}
else
{
y=thn;
m=bln;
}
i = y*365.25;
j = (m+1)* 30.6001;
UT = (jul-(i+j+hari+1720981.5))*24; //perhitungan jam
printf ("maka hasilnya
adalah\n");
N = fmod((INT(jul + 0.5)),7); //penentuan hari
if (N==0)
{
printf ("harinya :
senin\n");
}
else if (N==1)
{
printf ("harinya :
selasa\n");
}
else if (N==2)
{
printf ("harinya :
rabu\n");
}
else if (N==3)
{
printf ("harinya :
kamis\n");
}
else if (N==4)
{
printf ("harinya :
jumat\n");
}
else if (N==5)
{
printf ("harinya :
sabtu\n");
}
else if (N==6)
{
printf ("harinya :
minggu\n");
}
printf ("tanggal : %d\n",
hari);
printf ("bulan : %d\n", bln);
printf ("tahun : %d\n", thn);
printf ("jam : %lf\n", UT);
}
}
Adapun
tampilan program seperti pada gambar berikut.
Gambar
1.
Tampilan Sebelum di built-run
Gambar
2. Program
sebelum di masukkan pilihan
Gambar
3.
Program setelah dimasukkan waktu sipil
Pada
gambar diatas telah di input waktu yang diberikan yaitu 02 desember 1995 untuk
diubah ke system penanggalan Julian Date.
Gambar
4.
Program Setelah Diinput Julian Date
Pada
gambar diatas telah diinput Julian Date yaitu 2450053.667 untuk diubah kedalam
system penanggalan sipil.
2.3 Analisis
Berdasarkan
perhitungan secara manual tanggal 02 Desember 1995 jam 04.00 waktu Julian
(JD)-nya adalah 2450053.667. Setelah di hitung menggunakan Program yang dibuat
menggunakan bahasa C++ dihasilkan JD= 2450053.667 seperti yang tampak pada
command prompt diatas. Begitupun Sebaliknya JD= 2450053.667 apabila dihitung
kembali menghasilkan tanggal 02 Desember 1995 jam 04.00. Jadi hasil dari
Program Terbukti Benar.
Berdasarkan
Kalender Sipil tanggal 02 Desember Merupakan hari Sabtu.
Gambar 5. Waktu Sipil 02 Desember 1995
Berdasarkan
perhitungan manual N= 5 sehingga pada tanggal tersebut adalah hari Sabtu.
Berdasarkan perhitungan program dihasilkan hari sabtu. Jadi hasil dari program
tersebut terbukti benar. Dengan menggunakan program perhitungan yang dihasilkan
memiliki ketelitian yang sama dengan perhitungan secara manual.
BAB III
PENUTUP
3.1 Kesimpulan
Dari
pembahasan diatas dapat disimpulkan:
1. Julian
Date sangat berguna dalam penentuan hari
2. Transformasi
waktu Julian ke waktu Sipil atau sebaliknya
memiliki ketelitian yang sama antara perhitungan dengan program dan
secara manual.
3. Penggunaan
program untuk mentransformasikan waktu Julian ke waktu Sipil atau sebaliknya
dapat mengurahi kesalahan perhitungan yang dilakukan secara manual. Selain itu
penggunaan program dapat menghemat waktu karena tinggal menginput data-data
yang ingin ditransformasikan.
DAFTAR
PUSTAKA
Abidin,
H.Z. 2001. Geodesi Satelit. Jakarta: PT.Pradnya
Paramita.
Tidak ada komentar:
Posting Komentar
Silahkan Tinggalkan Jejak