FLOW DPR -> PDF

Bagus. Ini Flow Checklist versi engineer, bukan versi tutorial.
Kalau kamu disiplin pakai checklist ini, kecepatan + kualitas plugin kamu akan naik drastis.

Saya susun urut sesuai kenyataan di lapangan, bukan urutan ideal buku.

✅ FLOW CHECKLIST – WordPress Plugin (Form → PDF)
Anggap ini SOP mental setiap kali kamu bikin form baru apa pun.

0️⃣ PROBLEM & OUTPUT (WAJIB, sebelum coding)
❗ Kalau tahap ini kabur, STOP.

Masalah apa yang diselesaikan?
Siapa user-nya? (RC / Admin / Client)
Output akhirnya apa?

PDF?
Print?
Arsip?
Data mana yang paling fatal kalau salah?
📌 Contoh DPR:

Fatal: tanggal, lokasi, manhour, signature
Tidak fatal: caption foto

1️⃣ DOMAIN & DATA MODEL
Jangan buka editor sebelum ini jelas.

Apa entitas utamanya?

report
activity
personnel
Relasinya?

1 report → many activity
Mana yang:

single field
repeater
calculated field
📌 Prinsip:

Field mengikuti realitas kerja, bukan selera UI

2️⃣ INPUT FORM (UX dulu, bukan backend)
Form jelek = data jelek.

Urutan field sesuai alur kerja nyata
Default / prefill kalau masuk akal
Minim klik & scroll
Field wajib diberi penanda jelas
Tidak ada field “pajangan”
📌 Rule keras:

Kalau user harus mikir “ini diisi apa?”, form-mu gagal.

3️⃣ VALIDASI & SANITASI (JANGAN DILOMPATI)
Ini sering diremehkan.

Nonce (wp_verify_nonce)
Capability (current_user_can)
Sanitasi sesuai tipe:

text → sanitize_text_field
number → (int) / (float)
textarea → sanitize_textarea_field
Validasi logis (bukan cuma teknis)

finish > start
jumlah >= 0
📌 Ingat:

User bukan musuh, tapi input mereka bisa merusak sistem.

4️⃣ PERSIST DATA (STRUKTUR > CEPAT)
Menyimpan data itu keputusan arsitektural.

Custom Post Type jelas
Meta key konsisten & bernama jelas
Repeater tidak nested berlebihan
Tidak ada duplikasi data yang tidak perlu
📌 Rule:

Data harus bisa dibaca ulang 6 bulan lagi tanpa bingung.

5️⃣ BUSINESS LOGIC (INI OTaknya)
Ini bukan UI, ini nilai jual.

Penomoran (kalau ada)
Kalkulasi (manhour, progress, KPI)
Status logic (draft / final)
Rule khusus domain
📌 Pisahkan:

logic ≠ template
logic ≠ JS
Kalau tercampur → nanti kamu sendiri yang pusing.

6️⃣ RENDER VIEW (SCREEN)
Yang dilihat user sehari-hari.

Readable
Konsisten urutan dengan form
Tidak semua field harus ditampilkan
Aman dari empty data
📌 Jangan over-design:

Ini alat kerja, bukan landing page.

7️⃣ RENDER VIEW (PRINT)
Print ≠ screen.

Margin rapi
Font aman print
Table tidak pecah aneh
Signature tidak lompat
📌 Banyak plugin gagal di sini.
Kalau print rapi → nilai profesional langsung naik.

8️⃣ GENERATE PDF
Anggap ini “export final”.

Source dari HTML print (bukan bikin ulang)
Page break terkendali
Ukuran file masuk akal
Tidak error saat data kosong
📌 Prinsip:

PDF itu snapshot, bukan tempat logic.

9️⃣ EDIT & REVISI (REALITA LAPANGAN)
Laporan pasti direvisi.

Bisa edit tanpa rusak data lama
Tidak generate duplikat
Update logic aman
📌 Rule:

Sistem yang tidak siap revisi = sistem naif.

🔟 REUSABILITY CHECK (INI YANG KAMU INCAR)
Sebelum bilang “selesai”, cek:

Kalau field beda → flow tetap sama?
Kalau output beda → input tetap?
Kalau domain beda → logic masih reusable?
Kalau jawabannya ya, berarti:

skill kamu naik, bukan cuma plugin selesai.

Checklist versi singkat (tempel di kepala)

Problem → Data → Form → Validate → Store
→ Logic → View → Print → PDF → Revisi

Kalau urutan ini kamu lompat-lompat,
bug + revisi akan nyusul.