Kalender Jawa merupakan salah satu warisan sangat besar dari masyarakat Jawa dan sesuai fungsinya yaitu sebagai penanggalan atau sistem kalender, keunggulannya yaitu mempunyai ketelitian sangat tinggi dan penanggalan ini diturunkan secara turun-temurun dengan sistem hapalan, hal ini bisa terjadi karena Kalender Jawa merupakan kalender aritmatis yang mempunyai Rumus Abadi.
Pustaka Kalender Jawa
Pustaka Kalender Jawa saya buat dengan tujuan untuk mengenalkan kembali dan juga mempermudah penggunaan dan hapalan Kalender Jawa. Pustaka ini dibangun memakai bahasa JavaScript sehingga bisa anda pakai di untuk membangun aplikasi web, mobile maupun desktop.
Instalasi pustaka bisa di lingkungan Node.js maupun Browser dan khusus untuk browser bisa memakai fitur Module ES6.
API
Metode atau fungsi di pustaka ini sangat mudah digunakan, dokumentasi lengkap dan contoh bisa anda lihat di dokumentasi website.
Bulan
Sebagai contoh untuk mendapatkan detil, misalnya hari, tanggal,
pasaran dari Penanggalan Jawa selama satu bulan penuh anda bisa
memakai fungsi sasi
import * as KalenderJawa from '@kalenderjawa/pustaka'
KalenderJawa.sasi('sapar', 1953).then({ k, s } => {
console.log(s.get(k))
})
Rumus
Untuk mencari Rumus Abadi anda bisa memakai metode
cariRumusAbadiAwalBulanTahunJawa
KalenderJawa.cariRumusAbadiAwalBulanTahunJawa('romadon', 1952).then(data => {
console.log(`${data.rumus.wulan.wulan}_${data.rumus.dino}_${data.rumus.pasaran}`)
//romadon_7_4 (don tu pat)
})
Rumus-rumus di Kalender Jawa ini sebenarnya untuk dihapal tetapi pustaka ini menyediakan API rumus untuk tujuan pembelajaran.
Silahkan melihat Tabel Rumus Abadi di website kalenderjawa.dev
Internal
Secara internal kerja dari API ini sangat sederhana yaitu memakai perhitungan dari rumus abadi dan tabel lookup dari Map.
/**
* Mencari Kurup dan Taun Jawa
* @param { number } input - 4 digit integer
* @returns { Promise } data - hasil promise adalah objec
*/
async function cariKurupTaun(_q: number): Promise {
const _qi = parseInt(_q)
return new Promise((resolve, reject) => {
for (const _kurup of Kurup.KURUP_ASAPON_ANENHING) {
_kurup.awal.find(query => {
if (query === _qi) resolve(_kurup)
})
}
reject(new Error('Error cariKurupTaun'))
})
}
Misalnya untuk mencari Kurup tahun Jawa tertentu fungsi
cariKurupTaun
akan mencari tahun tersebut di Map
KURUP_ASAPON_ANENHING
yang isinya sebenarnya
hanyalah data statik tahun jawa pada kurup tertentu
const JIMAKIR_ANENHING = {
taun: ARANING_TAHUN_SEWINDU.get(_JIMAKIR),
kurup: ANENHING,
awal: [
1994, 2002, 2010, 2018, 2026, 2034,
2042, 2050, 2058, 2066, 2074, 2081,
2089, 2098, 2106
]
}
Untuk mencari rumus awal bulan di tahun jawa cukup diperlukan
bulan dan tahun kurup dengan memakai fungsi
cariHariPasaranAwalBulanTahunJawa
dan dari rumus
tersebut bisa diatur hari dan pasaran.
Mungkin secara internal pustaka ini kelihatannya sangat kompleks tetapi sebenarnya konsepnya sangatlah sederhana. Silahkan mempelajari lebih lanjut di website Kalender Jawa 🙏.
Aplikasi
Sengkala merupakan salah satu aplikasi sederhana yang saya buat memakai API dari Pustaka Kalender Jawa dan pustaka Vue.
saat ini aplikasi Sengkala masih dalam tahap pengembangan tetapi anda sudah bisa memakainya untuk melihat tanggal maupun pasaran untuk tiap tahun Jawa tertentu.