# Laporan Kinerja Triwulan — Workflow Reference

## Struktur Baku Laporan Kinerja Triwulan

Format 4 BAB yang konsisten untuk laporan kinerja bidang di lingkungan Pemda株洲:

| BAB | Judul | Isi Utama |
|-----|-------|-----------|
| I | PENDAHULUAN | Latar Belakang, Maksud & Tujuan, Sasaran/Output/Outcome |
| II | PERENCANAAN DAN REALISASI KINERJA | Perjanjian Kinerja (Tabel 1), Capaian IKU (Tabel 2) |
| III | AKUNTABILITAS KINERJA | Analisis per indikator (Produksi, PHMS, Kesmavet), Rencana Aksi, Realisasi Aksi |
| IV | PENUTUP | Kesimpulan, Tanggapan Atasan, Tanda Tangan |

## Template BAB I — Pendahuluan

```
Latar Belakang (3 paragraf):
  Paragraf 1: Fokus pembangunan peternakan, komoditas strategis, swasembada pangan hewani
  Paragraf 2: Adopsi teknologi (ISIKHNAS, formulasi pakan, rantai dingin)
  Paragraf 3: Dampak ekonomi — peternakan sebagai motor penggerak ekonomi kerakyatan

Maksud: Pertanggungjawaban administratif Triwulan X TA XXXX
Tujuan (4 poin):
  1. Peningkatan Populasi & Produktivitas Ternak (IB, TE, SIKOMANDAN)
  2. Penguatan Sistem Kesehatan Hewan (PHMS, surveilans)
  3. Penjaminan Ketahanan Pangan (ASUH)
  4. Peningkatan Jaminan Keamanan Pangan (NKV, RPH, RPU)
```

## Template Tabel 1 — Perjanjian Kinerja

```
| NO. | KINERJA UTAMA | INDIKATOR KINERJA UTAMA |
| 1 | Meningkatkan produksi peternakan | Peningkatan Produksi Daging, Telur, dan Susu\nDaging: 141.147 Ton\nTelur: 157.752 Ton\nSusu: 97 Ton |
| 2 | Pengendalian Kesehatan Hewan dan Kesmavet | 1. Persentase Penurunan Kasus PHMS (Target 85%)\n2. Persentase Unit Usaha Berstandar ASUH (Target 100%) |
```

## Template Tabel 2 — Capaian IKU Triwulan

```
| NO. | KINERJA UTAMA | INDIKATOR KINERJA UTAMA | REALISASI S.D. TRIWULAN I |
| 1 | Meningkatkan produksi peternakan | Daging: 141.147 Ton\nTelur: 157.752 Ton\nSusu: 97 Ton | Daging: 35.287 Ton (25,0%)\nTelur: 39.438 Ton (25,0%)\nSusu: 24 Ton (25,0%) |
| 2 | Pengendalian Kesehatan Hewan dan Kesmavet | PHMS: 85%\nUnit Usaha ASUH: 100% | PHMS: 21,24%\nUnit Usaha ASUH: 24,99% |
```

## Template BAB III — Akuntabilitas Kinerja

```
1. Analisis Capaian Produksi
   - Realisasi produksi triwulan: ... ton (...% dari target)
   - Faktor keberhasilan: program SIKOMANDAN, SITI HAWA LARI, iklim kondusif
   - Tantangan: keterbatasan anggaran awal tahun, SDM terbatas

2. Analisis Pengendalian Penyakit Hewan
   - Capaian penurunan PHMS dan faktor pendorongnya
   - Kendala: keterbatasan SDM veteriner, pencairan dana tertunda
   - Tindak lanjut: percepatan RUP, sinergi dengan kabupaten/kota

3. Analisis Kesehatan Masyarakat Veteriner
   - Capaian unit usaha ASUH/NKV
   - Kegiatan pengawasan yang sudah berjalan
   - Hambatan dan rencana sertifikasi NKV

Target Rencana Aksi Kinerja
  - Hasil Kerja 1: Meningkatkan Populasi Ternak (3 indikator, target 3-5%/tahun)
  - Hasil Kerja 2: Mengendalikan PHMS (target 85%)

Realisasi Rencana Aksi
  - Produksi Daging: ...% | Telur: ...% | Susu: ...%
  - Penurunan PHMS: ...% | Unit Usaha ASUH: ...%
```

## Template BAB IV — Penutup

```
Kesimpulan (3 paragraf):
  1. Pencapaian produksi triwulan — on track untuk target tahunan
  2. Keberhasilan pengendalian PHMS — modal untuk target 85%
  3. Komitmen triwulan接下来的nya — surveilans, NKV, percepatan pengadaan

Tanggapan Atasan Langsung (tabel):
  - Laporan kurang baik | Laporan sudah baik | Laporan diperbaiki
  - Realisasi diteliti ulang | Capaian diteliti ulang | Lain – lain

Tanda Tangan:
  Mengetahui: Kepala Dinas (drh. Suparmi, MS — NIP 196809111995032003)
  Banjarbaru, April 2026
  Kepala Bidang Peternakan dan Kesehatan Hewan
  drh. Edi Santosa — NIP 197409182008031001
```

## Data Source: Google Sheets → CSV

### Cara Dapat CSV dari Google Sheets
1. Buka Google Sheets → File → Download → Download as CSV
2. Atau: `https://docs.google.com/spreadsheets/d/{SHEET_ID}/export?format=csv&gid={GID}`
3. Kirim file CSV ke Hermes

### Parse Logic
Kolom penting di CSV laporan kinerja:
- Kolom (6) = Target
- Kolom (7) = Realisasi s.d. bulan ini
- Kolom (8) = Capaian (%)

Untuk triwulan: akumulatif Jan–Mar (TW I), Apr–Jun (TW II), dst.

### Angka Proyeksi Triwulan
Jika hanya ada data bulan berjalan (Jan), proyeksikan ke triwulan:
- TW I (Jan–Mar) = data bulanan × 3, atau cek apakah CSV sudah kumulatif
- TW I = 25% dari target tahunan (proporsional)

## python-docx Boilerplate

```python
from docx import Document
from docx.shared import Pt, RGBColor, Inches
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.enum.table import WD_TABLE_ALIGNMENT
from docx.oxml.ns import qn
from docx.oxml import OxmlElement

doc = Document()
section = doc.sections[0]
section.page_width = Inches(8.27)
section.page_height = Inches(11.69)
section.left_margin = Inches(1)
section.right_margin = Inches(1)
section.top_margin = Inches(1)
section.bottom_margin = Inches(0.9)

def add_para(doc, text='', bold=False, size=11,
             align=WD_ALIGN_PARAGRAPH.JUSTIFY, sb=0, sa=6):
    p = doc.add_paragraph()
    p.alignment = align
    p.paragraph_format.space_before = Pt(sb)
    p.paragraph_format.space_after = Pt(sa)
    if text:
        r = p.add_run(text)
        r.bold = bold; r.font.size = Pt(size)
    return p

def cell_bg(cell, hex_color):
    tc = cell._tc
    tcPr = tc.get_or_add_tcPr()
    shd = OxmlElement('w:shd')
    shd.set(qn('w:val'), 'clear')
    shd.set(qn('w:color'), 'auto')
    shd.set(qn('w:fill'), hex_color)
    tcPr.append(shd)

def make_tbl(doc, headers, rows_data, hdr_bg='D9EAD3'):
    tbl = doc.add_table(rows=1+len(rows_data), cols=len(headers))
    tbl.style = 'Table Grid'
    tbl.alignment = WD_TABLE_ALIGNMENT.CENTER
    hr = tbl.rows[0]
    for i, h in enumerate(headers):
        c = hr.cells[i]; c.text = h
        p = c.paragraphs[0]; p.alignment = WD_ALIGN_PARAGRAPH.CENTER
        if p.runs: p.runs[0].bold = True; p.runs[0].font.size = Pt(10)
        cell_bg(c, hdr_bg)
    for ri, rvals in enumerate(rows_data):
        row = tbl.rows[ri+1]
        for ci, v in enumerate(rvals):
            row.cells[ci].text = v
            for para in row.cells[ci].paragraphs:
                for run in para.runs: run.font.size = Pt(10)
    return tbl

# ... add content ...

doc.save('/path/to/output.docx')
```

## Pitfalls

- **Data CSV kosong (#DIV/0!)**: berarti angka belum diinput di Sheets — tanyakan ke user
- **Typo di CSV (2,25% bukan 25%)**: cek apakah angka perlu dikali 10 — kadang format desimal pakai koma
- **Triwulan vs bulanan**: pastikan data yang dikirim user memang akumulatif triwulan, bukan hanya satu bulan
- **python-docx syntax error**: pakai `write_file` + execute_code — jangan inline multi-line strings di execute_code
