Beberapa waktu yang lalu, saya sudah memposting konversi kalender masehi ke kalender jawa. Pada kesempatan kali ini akan dijelaskan bagaimana cara mengkonversi kalender jawa (mirip dengan kalender Hijriyah hisab Urfi) ke kalender masehi. Jadi dibalik, kalau kemarin patokannya adalah kalender masehi, sekarang yang menjadi patokan adalah kalender Hijriyah.
Memang hasil konversi ini tidak bisa dijadikan patokan untuk menentukan hari-hari besar agama Islam. Hal ini disebabkan mekanisme penghitungan didasarkan atas rata-rata pergerakan bulan dibandingkan dengan tahun-tahun sebelumnya. Sedangkan untuk menentukan hari-hari besar agama Islam tentunya yang lebih valid adalah melakukan Rukyah (melihat posisi bulan,matahari dan bumi secara langsung dengan mata telajang atau menggunakan bantuan teleskop).
Langsung saja kita bahas tata cara codingnya.
Pertama, ketika kita membuat aplikasi Android tentunya perlu dibuat dulu susunan layout-nya. Pengaturan layout (tampilan) ini bisa dilakukan dengan cara merubah file main.xml yang terletak pada folder res->layout. Script main.xml bisa dilihat seperti dibawah ini
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical" >
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Tanggal Hijriyah (format : tgl/bln/tahun ex : 1/9/1433)" />
- <EditText
- android:id="@+id/tgl"
- android:layout_width="match_parent"
- android:layout_height="wrap_content" >
- <requestFocus />
- </EditText>
- <Button
- android:id="@+id/btnKonversi"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Konversi" />
- <TextView android:id="@+id/hasil"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text=""/>
- </LinearLayout>
- package eko.kalender.hijriyah_ke_masehi;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.TextView;
- public class Hijriyah_ke_Masehi extends Activity {
- private EditText tgl_hijriyah;
- private Button btn_konversi;
- private TextView tgl_masehi;
- private String[] nama_minggu = new String[]{"Senin","Selasa","Rabu","Kamis","Jumat","Sabtu","Minggu"};
- private String[] nama_bulan_masehi = new String[]{
- "Januari", "Februari", "Maret", "April","Mei","Juni",
- "Juli","Agustus","September","Oktober","November","Desember"
- };
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- tgl_hijriyah = (EditText) findViewById(R.id.tgl);
- btn_konversi = (Button) findViewById(R.id.btnKonversi);
- tgl_masehi = (TextView) findViewById(R.id.hasil);
- btn_konversi.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- String[] tgl = tgl_hijriyah.getEditableText().toString().split("/");
- int d = Integer.parseInt(tgl[0]);
- int m = Integer.parseInt(tgl[1]);
- int y = Integer.parseInt(tgl[2]);
- String[] hasil = JawaToGregory(d, m, y);
- String temp = "";
- for(int i=0;i<4;i++){
- temp += hasil[i]+ " ";
- }
- tgl_masehi.setText(temp);
- }
- });
- }
- private double intPart(double floatNum){
- if ((float)floatNum < -0.0000001) return (double) Math.ceil(floatNum-0.0000001);
- return (double)Math.floor(floatNum +0.0000001);
- }
- //parameter :
- //d : tanggal masehi
- //m : bulan masehi
- //y : tahun masehi
- //output array :
- //
- public String[] JawaToGregory(int d, int m, int y){
- double l, n, i, j, k, tgl, bln, thn;
- double JDE =intPart((11*y+3)/30)+354*y+30*m-intPart((m-1)/2)+d+1948440-385;
- if (JDE> 2299160 )
- {
- l=JDE+68569;
- n=intPart((4*l)/146097);
- l=l-intPart((146097*n+3)/4);
- i=intPart((4000*(l+1))/1461001);
- l=l-intPart((1461*i)/4)+31;
- j=intPart((80*l)/2447);
- tgl=l-intPart((2447*j)/80);
- l=intPart(j/11);
- bln=j+2-12*l;
- thn =100*(n-49)+i+l;
- }
- else
- {
- j=JDE+1402;
- k=intPart((j-1)/1461);
- l=j-1461*k;
- n=intPart((l-1)/365)-intPart(l/1461);
- i=l-365*n+30;
- j=intPart((80*i)/2447);
- tgl=i-intPart((2447*j)/80);
- i=intPart(j/11);
- bln=j+2-12*i;
- thn=4*k+n+i-4716;
- }
- int hari = (int)JDE % 7;
- return new String[]{
- nama_minggu[hari], //hari 0
- String.valueOf((int)tgl), //tanggal masehi 1
- nama_bulan_masehi[(int)bln-1], //bulan masehi 2
- String.valueOf((int)thn) //tahun Masehi 3
- };
- }
- }
Demikian semoga ada guna dan manfaatnya.
sumber : http://www.blogkomputer.com/data-konversi-kalender-hijriyah-ke-masehi.html
Mas .. Klu membuat dari Masehi ke Hijria Gimana Bang
ReplyDelete