Lompat ke isi

Modul:Pendirian/doc

Dari Mippedia bahasa Indonesia, ensiklopedia umum

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.

`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]