Seluruh komponen sudah ada di tangan: table, caption, thead, tbody, tfoot, th, td, dan scope. Chapter ini merakit semuanya menjadi satu tabel data yang utuh dan siap pakai — pola yang bisa diulang untuk daftar harga, jadwal, maupun rekap apa pun pada proyek kita.
Studi kasusnya: tabel harga lengkap lima menu Kedai Kopi Siti.
Tabel Harga Lengkap #
Berikut markup lengkapnya — seluruhnya adalah pola yang sudah kita pelajari satu per satu:
<table>
<caption>Menu dan harga Kedai Kopi Siti, per Juni 2026</caption>
<thead>
<tr>
<th scope="col">Menu</th>
<th scope="col">Porsi</th>
<th scope="col">Harga</th>
</tr>
</thead>
<tbody>
<tr>
<td>Kopi susu</td>
<td>Reguler</td>
<td>Rp18.000</td>
</tr>
<tr>
<td>Kopi tubruk</td>
<td>Reguler</td>
<td>Rp12.000</td>
</tr>
<tr>
<td>Teh tarik</td>
<td>Besar</td>
<td>Rp15.000</td>
</tr>
<tr>
<td>Roti bakar cokelat</td>
<td>2 potong</td>
<td>Rp20.000</td>
</tr>
<tr>
<td>Air mineral</td>
<td>600 ml</td>
<td>Rp8.000</td>
</tr>
</tbody>
<tfoot>
<tr>
<th scope="row">Total lima menu</th>
<td>5 pilihan</td>
<td>Rp73.000</td>
</tr>
</tfoot>
</table>Hasil Render:
Mari kita telaah kode per blok:
<caption>: judul deskriptif — apa isinya (menu dan harga), di mana berlakunya (Kedai Kopi Siti), sejak kapan (per Juni 2026).<thead>dengan tigath scope="col": tiga kolom diberi nama dan arah relasinya sejak awal.<tbody>lima baris: tiap baris satu menu — sel pertama nama, kedua porsi, ketiga harga; kolom sejajar karena jumlah sel konsisten.<tfoot>ringkasan: total harga ditulis manual — HTML tidak menghitung apa pun;th scope="row"menandai judul baris ringkasan.
Perhatikan urutan keputusan kita: konteks lebih dulu (caption), nama kolom (thead), data (tbody), lalu ringkasan (tfoot). Urutan itu kebetulan sama dengan urutan pengumuman pembaca layar — konteks, nama kolom, lalu isi — sehingga struktur yang rapi untuk mata otomatis ramah untuk telinga. Pola lima langkah ini dapat kita pakai ulang apa pun datanya: ganti isi caption, jumlah kolom, dan barisnya; kerangkanya tetap.
Detail yang Menyempurnakan #
Tiga kebiasaan kecil membuat tabel data lebih matang. Pertama, format angka Indonesia: tulis harga dengan pemisah ribuan berupa titik — Rp18.000 — konsisten pada semua baris; HTML tidak memformat angka, yang tampil di halaman persis apa yang kita tulis. Kedua, jaga satu jenis isi per kolom — kolom harga berisi harga saja, kolom porsi berisi porsi saja — jangan mencampur satuan yang tidak sejenis pada kolom yang sama. Ketiga, kolom angka lazim ditata rata kanan agar digitnya sejajar — itu urusan CSS text-align; kita cukup tahu ke mana arahnya, pembahasannya menyusul di course CSS.
Ringkasan #
- Tabel data utuh =
captiondeskriptif +theadber-scope="col"+tbodyyang konsisten +tfootringkasan — kerangka yang dapat dipakai ulang untuk data apa pun. - Format angka Indonesia ditulis manual dan konsisten; satu kolom satu jenis isi.
- Penataan visual — angka rata kanan, baris zebra — diserahkan ke CSS tanpa mengubah struktur tabel.
Pola ini belum lengkap tanpa tinjauan aksesibilitas — chapter berikutnya merangkum praktik accessible tables.