Mapping Dynamic Table ke Bentuk Tabel
Halaman ini menjelaskan bagaimana response dynamic table BPS dipetakan menjadi tabel yang bisa dirender di UI, termasuk kondisi ketika ada turtahun.
Visual 1 — Mapping dari Struktur Tabel
Visual ini membantu melihat bagaimana dimensi response dipetakan menjadi baris, kolom, dan nilai sel — tanpa bergantung ke asset SVG terpisah.
Setiap nilai tabel dibentuk dari kombinasi dimensi di atas.
Contoh: Pinrang × Jumlah Penduduk × 1999
| Wilayah | 1999 | 2000 | 2001 |
|---|---|---|---|
| Pinrang | 308.669 | 311.595 | 312.473 |
308669diambil dari
datacontent[7315310990]Inti Mapping
- Baris berasal dari
vervar - Kolom utama berasal dari
tahun - Sub-kolom bisa berasal dari
turvar - Sub-kolom level berikutnya bisa berasal dari
turtahun - Nilai sel diambil dari
datacontent - Setiap nilai dicari lewat kunci komposit:
{vervar}{var}{turvar}{tahun}{turtahun}Contoh:
7315 + 31 + 0 + 99 + 0 = 7315310990Lalu lookup:
datacontent[7315310990] = 308669Visual 2 — Mapping Lengkap termasuk turtahun
Visual berikut menunjukkan empat kondisi penting struktur header tabel:
- Kasus A: 1 turvar + 1 turtahun
- Kasus B: banyak turvar + 1 turtahun
- Kasus C: 1 turvar + banyak turtahun
- Kasus D: banyak turvar + banyak turtahun
datacontent dan merender tabel dengan header bertingkatval→ bangun key → lookup datacontent → nilai sel
| Wilayah | 1999 | 2000 |
|---|---|---|
| Pinrang | 308,669 | 311,595 |
| Wilayah | 1999 | 2000 | ||
|---|---|---|---|---|
| Kec A | Kec B | Kec A | Kec B | |
| Pinrang | 308,669 | 295,421 | 311,595 | 300,112 |
count(turvar)=2| Wilayah | 1999 | 2000 | ||
|---|---|---|---|---|
| Februari | Maret | Februari | Maret | |
| Pinrang | 101,234 | 102,887 | 103,991 | 105,112 |
count(turtahun)=2| Wilayah | 1999 | 2000 | ||||||
|---|---|---|---|---|---|---|---|---|
| Februari | Maret | Februari | Maret | |||||
| Kec A | Kec B | Kec A | Kec B | Kec A | Kec B | Kec A | Kec B | |
| Pinrang | 101,234 | 98,441 | 102,887 | 99,103 | 103,991 | 100,234 | 105,112 | 101,876 |
count(turtahun)×count(turvar)=2 × 2 = 4count(turvar)=2Aturan Mental Model
1. Baris
Selalu mulai dari vervar.
setiap item di vervar = satu baris utama2. Kolom
- kalau
turvarhanya satu / tidak ada dimensi turunan yang bermakna → kolom cukuptahun - kalau
turvarlebih dari satu → kolom menjaditurvar × tahun
3. Level tambahan turtahun
Kalau ada lebih dari satu turtahun, maka header kolom perlu satu level lagi.
Rule praktisnya:
tahunselalu jadi level atasturtahunjadi level tengah kalau jumlahnya > 1turvarjadi level bawah kalau jumlahnya > 1
Sehingga susunan header bisa menjadi:
tahunatau:
tahun -> turvaratau:
tahun -> turtahunatau kondisi penuh:
tahun -> turtahun -> turvarDalam stadata-js
Opsi 1 — toStructuredData()
Kalau mau render tabel sendiri dengan kontrol penuh:
const structured = table.toStructuredData()Opsi 2 — DynamicTableHtmlGenerator
Kalau mau cepat jadi HTML table:
import { DynamicTableHtmlGenerator } from 'stadata-js'
const html = DynamicTableHtmlGenerator.generate(table)Kapan Perlu Parse Manual?
Manual parsing biasanya cuma perlu kalau:
- mau bikin visualisasi yang sangat custom
- mau export ke format sendiri
- mau membuat pivot logic yang beda dari helper bawaan
Kalau tidak, pakai helper bawaan lebih aman.