Menurut sejarahnya Penanggalan Jawa merupakan hasil olah para Wali dan para leluhur Jawa dan kemudian diwariskan terutama melalui rumus perhitungan dengan cara hafalan dan hebatnya rumus perhitungan ini bersifat abadi dan sangat akurat sampai hampir 1000 tahun.
"Dengan terhafal dalam bentuk nyanyian, kalender Jawa akan terbawa kemana saja pergi, dan masih memiliki tingkat akurasi tinggi sampai 994 tahun lagi. Setelah itu baru ada koreksi +1 hari sebelum Ambal Kurup Alip Senen Kliwon, 1 Sura 2947 Jawa (26 Januari 2984 Masehi)" - REF.
Silahkan membaca lebih lanjut tentang Penanggalan Jawa di Website Kalender Jawa.
Pustaka Kalender Jawa ini merupakan pustaka khusus yang menyediakan perhitungan, informasi dan pengkonversian Penanggalan atau Kalender Jawa, dengan maksud dan tujuan supaya Penanggalan Jawa lebih mudah dikenal dan dipakai secara umum, khususnya buat para pengembang.
Pustaka Kalender Jawa ini ditulis memakai bahasa TypeScript dan memakai ES Module. Membutuhkan Node.js >= 20.0.0.
Pustaka ini mencakup perhitungan Kalender Jawa Abadi untuk kurun waktu tahun 1867 - 2106 Jawa, meliputi dua kurup:
| Kurup | Periode | Keterangan |
|---|---|---|
| Asapon | 1867 - 1986 | Alip Selasa Pon |
| Anenhing | 1987 - 2106 | Alip Senen Pahing |
Perhitungan mencakup 12 bulan (sasi) dan 8 tahun dalam siklus windu (Alip, Ehe, Jimawal, Je, Dal, Be, Wawu, Jimakir).
Rumus perhitungan abadi yang dipakai pada pustaka ini bersumber dari Kalender Jowo Digowo, Kalender Arab Digarap, Kalender Barat Diruwat (halaman rumus).
Ada 3 hasil build pada direktori dist/ dan default adalah build untuk Node.js ataupun browser yang mendukung ES Module (ESM).
| Berkas | Keterangan |
|---|---|
dist/kalenderjawa.min.js |
Node.js & browser yang mendukung ESM (default) |
dist/kalenderjawa.min.cjs |
Node.js yang tidak mendukung ESM |
dist/kalenderjawa.browser.min.js |
Browser yang tidak mendukung ESM |
Contoh penggunaan hasil build diatas ada pada direktori examples/
Pustaka Kalender Jawa bisa dipakai dilingkungan Node maupun Browser.
npm install --save @kalenderjawa/pustaka
Secara default anda akan memakai Pustaka yang mendukung ES Module, benar yaitu yang memakai import
import * as KalenderJawa from "@kalenderjawa/pustaka";
KalenderJawa.cariKurupTahunJawa(1881).then(/**...*/);Untuk Node.js yang belum mendukung ESM silahkan memakai berkas kalenderjawa.min.cjs pada direktori dist.
Jika anda memakai browser Pustaka ini bisa di ambil melalui CDN (Content Delivery Network) seperti di unpkg.com.
Kode berikut akan mengambil pustaka untuk browser yang tidak mendukung ES Module.
<script src="https://unpkg.com/@kalenderjawa/pustaka/dist/kalenderjawa.browser.min.js"></script>dan kode berikut untuk browser yang mendukung ES Module
<script type="module">
import * as KalenderJawa from "https://unpkg.com/@kalenderjawa/pustaka";
console.log(KalenderJawa);
</script>const result = await KalenderJawa.cariKurupTahunJawa(1959);
// {
// taun: { taun: 'dal', neptu: 4, urutan: 5, cacah: 355 },
// kurup: { taun: 'alip', dinten: { dino: 'selasa', ... }, pasaran: { pasaran: 'pon', ... } }
// }const result = await KalenderJawa.cariHariPasaranAwalBulanTahunJawa('mukarom', 1959);
// {
// w: 'mukarom', t: 1959,
// i: { taun: 'dal', kurup: 'alip selasa pon' },
// kH: { dino: 'jemah', urutan: 5, bobot: 6 },
// kP: { pasaran: 'kliwon', neptu: 8, urutan: 5 }
// }
// → 1 Mukarom 1959 = Jemah Kliwon (Jumat Kliwon)const result = await KalenderJawa.sasi('mukarom', 1959);
// Menghasilkan 30 hari lengkap dengan dinten, pasaran, dan neptu
// { 1: { dinten: 'jemah', pasaran: 'kliwon', neptu: 11 } }
// { 2: { dinten: 'sebtu', pasaran: 'legi', neptu: 11 } }
// ... dstUntuk menjalankan pengujian gunakan perintah:
npm run test # menjalankan sekali dengan laporan cakupan
npm run test:watch # menjalankan ulang saat berkas berubahPengujian menggunakan Vitest sehingga tidak memerlukan Chrome atau Puppeteer. Contoh ringkasan cakupan:
% Coverage report from v8
-------------------|---------|----------|---------|---------|-------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
-------------------|---------|----------|---------|---------|-------------------
All files | 92.13 | 88.88 | 80 | 92.13 |
Dokumentasi dan demo API ada di sini.
Untuk berkontribusi silahkan lihat dokumen CARA BERKONTRIBUSI.
kalenderjawa.github.io © (2019 - 2025)
