Modul:Pendirian/doc
Ini adalah halaman dokumentasi untuk Modul:Pendirian
Module:Pendirian adalah modul mesin backend berbasis Lua yang menangani kalkulasi tanggal, waktu relatif, tahun kabisat, serta penyesuaian selisih waktu dinamis (Tahun, Bulan, Hari) untuk {{Pendirian}}.
Modul ini dibuat mandiri (standalone) tanpa ketergantungan pada modul eksternal seperti `Module:Arguments`, sehingga performanya sangat cepat, ringan, dan minim risiko bentrok pustaka.
Fungsi
[sunting sumber]`p.utama(frame)`
[sunting sumber]Fungsi utama yang dipanggil oleh wikitext melalui "#invoke:Pendirian".
Fungsi ini menjalankan alur kerja berikut: 1. Parsing Argumen: Membaca parameter dari `frame` pemanggil atau `getParent()` (termasuk trimming otomatis untuk menghilangkan spasi berlebih). 2. Parsing Tanggal: Mendukung format input ISO (`YYYY-MM-DD`), format garis miring (`YYYY/MM/DD`), format tahun saja (`YYYY`), parameter terpisah berurutan (`YYYY|MM|DD`), maupun parameter nama (`tahun=`, `bulan=`, `hari=`). 3. Kalkulasi Selisih Waktu:
- Menghitung selisih tahun, bulan, dan hari secara presisi.
- Memeriksa dan memperhitungkan jumlah hari pada setiap bulan (28–31 hari).
- Memperhitungkan tahun kabisat (pembagi 4, 100, dan 400).
- Mengidentifikasi apakah tanggal yang dimasukkan berada di masa depan (rencana peluncuran) atau masa lalu.
4. Pengformatan Mode Output: Menyesuaikan hasil tampilan sesuai nilai parameter `mode`:
- `otomatis` / `smart` (default): Menyesuaikan unit dominan secara otomatis.
- `detail` / `presisi`: Menampilkan `X tahun, Y bulan, Z hari`.
- `ringkas` / `sederhana`: Menampilkan unit tertinggi saja.
- `hanya_usia`: Menampilkan teks usia tanpa menyertakan string tanggal pendirian.
5. Kategorisasi Otomatis: Menambahkan kategori wiki otomatis jika parameter `kategori=ya` diaktifkan.
Parameter Yang Didukung
[sunting sumber]| Parameter | Tipe | Deskripsi |
|---|---|---|
| `1`, `tanggal`, `date` | String / Angka | Input tanggal pendirian. Contoh: `2020-05-15`, `2020/05/15`, atau `2020`. |
| `2`, `bulan` | Angka | Bulan pendirian (jika menggunakan parameter terpisah). Contoh: `5`. |
| `3`, `hari` | Angka | Hari pendirian (jika menggunakan parameter terpisah). Contoh: `15`. |
| `mode`, `format`, `opsi` | String | Mengatur gaya tampilan output (`otomatis`, `detail`, `ringkas`, `hanya_usia`). |
| `tampilkan_tanggal`, `show_date` | String | Mengontrol tampilan tanggal awal (`ya` / `tidak`). |
| `kurung` | String | Memberikan pembungkus tanda kurung pada teks selisih waktu (`ya` / `tidak`). |
| `kategori`, `cat` | String | Mengaktifkan Kategori otomatis berdasarkan tahun pendirian (`ya` / `tidak`). |
| `tipe`, `jenis` | String | Jenis entitas untuk penentuan nama kategori (`organisasi`, `perusahaan`, `produk`, `papan`). |
| `ref_tahun`, `ref_bulan`, `ref_hari` | Angka | Parameter pengujian/overriding untuk mengubah tanggal acuan "saat ini" (default: server time UTC). |
Penggunaan dari Modul Lua Lain
[sunting sumber]Jika Anda ingin memanggil logika modul ini langsung dari modul Lua lainnya, Anda dapat meng-import modul dan memanggil fungsi `utama` dengan mengirimkan objek `frame` buatan:
local pendirian = require("Module:Pendirian")
-- Contoh simulasi panggilan frame
local res = pendirian.utama({
getParent = function()
return {
args = {
[1] = "2020-05-15",
mode = "detail"
}
}
end,
args = {}
})Struktur File Modul
[sunting sumber]- Module:Pendirian — Kode utama modul Lua.
- Template:Pendirian — Template wikitext tingkat pengguna.
- Template:Pendirian/doc — Dokumentasi panduan pengguna template.