Wednesday, September 6, 2017

Cara Konversi Tanggal Masehi Ke Jawa Kuruf Asapon

Kalender Jawa Kuruf Asapon dimulai sejak tanggal 24 Maret 1936 dan akan berakhir pada tanggal 25 Agustus 2052. Kuruf-kuruf sebelumnya yang sudah lewat adalah Awahgi, Amiswon, dan Aboge. Perlu diketahui bahwa penyematan nama kuruf Asapon dalam judul postingan ini memang disengaja karena setiap kuruf mempunyai peraturan sendiri mengenai sebaran jumlah hari dalam setiap bulan kalender. Kenyataan ini menyebabkan algoritma perhitungan kalender untuk setiap kuruf tidak bisa sama melainkan dengan sedikit perbedaan. Bagi yang ingin mengetahui tentang kuruf bisa membaca artikel Kuruf Dalam Kalender Jawa yang diposting beberapa waktu lalu.


Baca seluruhnya...

Ciri khas dari kalender Jawa adalah adanya siklus delapan tahunan (windu). Nama-nama tahun siklus windu berturut-turut adalah Alip, Ehe, Jimawal, Je, Dal, Be, Wawu, dan Jumakir. Tahun Ehe, Je, dan Jumakir disebut juga tahun kabisat karena jumlah hari tahunnya ada 355 hari. Sedangkan yang lainnya disebut tahun biasa dengan jumlah hari setahunnya 354 hari. Dengan demikian jumlah keseluruhan hari dalam satu siklus windu adalah 2835 hari.

Sebagai kalender aritmatika, keduabelas bulan dari kalender Jawa mempunyai jumlah hari yang tetap dan dalam kuruf Asapon ditetapkan berselang-seling antara 30 dan 29 hari. Kecuali bulan kedua belas atau bulan Besar yang masih harus ditentukan berdasarkan apakah tahun yang sedang berjalan adalah tahun kabisat yakni Ehe, Je, atau Jumakir atau bukan. Pada tahun Ehe, Je, atau Jumakir jumlah hari dari bulan Besar adalah 30 hari dan diluar ketiga tahun tersebut bulan Besar berjumlah 29 hari. Khusus pada hari terakhir kuruf yang merupakan tahun kabisat (Jumakir) bulan Besar hanya 29 hari karena hari yang ketigapuluh harus ditiadakan (dikuruf).

Tabel 1. Kurun Waktu Kuruf Asapon
Masehi 24 Maret 1936 - 25 Agustus 2052
Jawa 1 Sura 1867 - 29 Besar 1986
Arab 1 Muharram 1355 - 30 Dzulhijah 1474

Tabel 2. Jumlah Hari Bulan Kuruf Asapon
NoBulanJumlah Hari
1 Sura 30
2 Sapar 29
3 Mulud 30
4 Bakmulud 29
5 Jumadilawal 30
6 Jumadilakir 29
7 Rejeb 30
8 Ruwah 29
9 Pasa 30
10 Sawal 29
11 Sela 30
12 Besar 29/30
Jumlah 354/355

Tabel 3. Jumlah Hari Siklus Windu Kuruf Asapon
Tahun
Siklus Windu
Jumlah Hari
Bulan Besar
Jumlah Hari
Tahun
Alip 29 354
Ehe 30 355
Jimawal 29 354
Je 30 355
Dal 29 354
Be 29 354
Wawu 29 354
Jumakir 30 355
Jumlah hari sewindu 2835

Algoritma Konversi

Berikut ini adalah delapan tahap untuk mengubah sebuah tanggal kalender Masehi menjadi tanggal kalender Jawa. Pendekatan yang digunakan adalah pendekatan sederhana yaitu mengurangi rentang hari dengan jumlah hari windu, tahun, dan bulan yang telah lewat dari tanggal patokan 1 Sura 1867. Selama proses pengurangan tersebut jumlah windu, tahun, bulan yang terlampaui dicatat untuk kemudian dijadikan sebagai hasil konversi.

1. Menghitung rentang hari.
Jarak = R + 1
dengan R = Rentang hari antara 24 Maret 1936 s/d tanggal yang hendak dikonversikan. Maksimum tanggal 25 Agustus 2052.

2. Menugaskan variabel larikan (array).
UmurBulan[0]  =30, UmurBulan[1]  =29
UmurBulan[2]  =30, UmurBulan[3]  =29
UmurBulan[4]  =30, UmurBulan[5]  =29
UmurBulan[6]  =30, UmurBulan[7]  =29
UmurBulan[9]  =30, UmurBulan[9]  =29
UmurBulan[10]=30, UmurBulan[11]=29

UmurTahun[0]=354, UmurTahun[1]=355
UmurTahun[2]=354, UmurTahun[3]=355
UmurTahun[4]=354, UmurTahun[5]=354
UmurTahun[6]=354, UmurTahun[7]=355

3. Menghitung variabel penting.
Windu= pembagian integer INT(Jarak/2835);
SisaHari = Jarak - (Windu * 2835);

4. Menghitung angka tahun Jawa
Warsa = 0
X = SisaHari - UmurTahun[Warsa]

Ulangi statemen-statemen berikut ini:
Jika X lebih besar nol Maka
{
SisaHari = SisaHari - UmurTahun[Warsa]
Warsa = Warsa + 1
X = SisaHari - UmurTahun[Warsa]
}

Jika X lebih kecil atau sama dengan nol Maka berhenti mengulang dan,
TahunJawa = Warsa + Windu * 8 + 1867

5. Set umur bulan kesebelas (bulan Besar) menjadi 30 hari jika tahun kabisat.
Jika Warsa = 1 (Ehe) atau Warsa = 3 (Je) atau Warsa = 7 (Jumakir) Maka UmurBulan[11]=30

6. Menghitung angka bulan Jawa
Wulan = 0
X = SisaHari - UmurBulan[Wulan]

Ulangi statemen-statemen berikut ini:
Jika X lebih besar nol Maka
{
SisaHari = SisaHari - UmurBulan[Wulan]
Wulan = Wulan + 1
X = SisaHari - UmurBulan[Wulan]
}

Jika X lebih kecil atau sama dengan nol Maka berhenti mengulang dan,
BulanJawa = Wulan + 1

7. Menghitung angka tanggal Jawa
TanggalJawa = SisaHari

8. Selesai
Hasil konversi: TahunJawa, BulanJawa, dan TanggalJawa.


Semoga bermanfaat.

Rujukan

H. Djanudji, Penanggalan Jawa 120 Tahun Kuruf Asapon, Dahara Prize, Semarang, 2013

R.Bratakesawa, Almanak Atusan Taun, Penjebar Semangat, Surabaja, 1968

http://www.babadbali.com/pewarigaan/kalender-jawa.htm