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 | ||
---|---|---|
No | Bulan | Jumlah 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.
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, 2013R.Bratakesawa, Almanak Atusan Taun, Penjebar Semangat, Surabaja, 1968
http://www.babadbali.com/pewarigaan/kalender-jawa.htm
mantap blognya min, sangat membantu.. btw, ada Blog pasarang angka jitu gak min.. kalau ada sedikti rezeki, bagi2 ya min..
ReplyDeleteSalam dari pecinta Situs Judi Online Terbaik , makasih min..
Judi tidak ada hubungan dengan ilmu Kalender, tetapi dengan ilmu Metematika Judi (the mathematics of gambling), misalnya artikel dari univ terkenal USA ini:
DeleteShould You Bet On It atau Wikipedia ini Gambler's_fallacy
Wah sangat bermanfaat, kalau nama tahun Jawa mau dibikin fungsi ke PHP bagaimana ya rumusnya?
ReplyDeletefunction namaTahunJawa($tahunJawa){
Delete$Warsa = ["Alip", "Ehe", "Jimawal", "Je", "Dal", "Be", "Wawu", "Jumakir"];
return $Warsa[($tahunJawa-1867)%8];
}
echo namaTahunJawa(1941); // 1941 AJ = Jimawal
Mantab, izin repost ya 🙏🏻
ReplyDelete