Saatnya merangkai. Chapter ini menyusun satu halaman blog utuh — dari deklarasi doctype sampai kaki halaman — memakai seluruh elemen yang telah kita kenal: header, nav, main, article, section, aside, dan footer.
Studi kasusnya blog fiktif Catatan Budi: satu artikel kopi lengkap dengan komentar dan tautan terkait. Kita bedah per blok, lalu menutup dengan pemeriksaan pohon hasil — kebiasaan yang layak dibawa ke setiap proyek.
Halaman Utuh #
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<title>Kopi Tubruk ala Siti — Catatan Budi</title>
</head>
<body>
<header>
<p><strong>Catatan Budi</strong> — catatan kopi seorang pemula</p>
<nav aria-label="Menu utama">
<ul>
<li><a href="index.html">Beranda</a></li>
<li><a href="arsip.html">Arsip</a></li>
<li><a href="kontak.html">Kontak</a></li>
</ul>
</nav>
</header>
<main>
<article>
<header>
<h1>Kopi Tubruk ala Siti</h1>
<p>Oleh Budi — <time datetime="2026-11-02">2 November 2026</time></p>
</header>
<p>Kopi tubruk adalah kopi paling sederhana: bubuk dan air mendidih.</p>
<p>Siti menakar dua sendok bubuk, menuang air baru mendidih, lalu menunggu tiga menit.</p>
<section>
<h2>Komentar</h2>
<article>
<h3>Dewi</h3>
<p>Langsung coba besok pagi!</p>
</article>
</section>
<footer>
<p>Seri seduh manual: <a href="v60.html">Racik V60 di Rumah</a></p>
</footer>
</article>
<aside>
<h2>Baca Juga</h2>
<ul>
<li><a href="v60.html">Racik V60 di Rumah</a></li>
<li><a href="gayo.html">Kenali Bijimu</a></li>
</ul>
</aside>
</main>
<footer>
<p>© 2026 Catatan Budi — <a href="mailto:[email protected]">[email protected]</a></p>
</footer>
</body>
</html>Hasil Render: nama blog, tiga menu, judul artikel dengan penulis dan tanggal, dua paragraf, satu komentar, dua tautan Baca Juga, dan baris copyright — semua tersusun menurun karena belum ada CSS. Mari kita bedah per blok:
- Blok
head(baris 3-6): metadata minimal — charset UTF-8 dan judul dokumen; tanpa CSS halaman tetap sah. - Blok
headersitus (baris 8-17): nama blog sebagai pengantar plus nav utama ber-aria-label; blok ini berulang di seluruh halaman blog. - Blok
main(baris 18-44): satu-satunyamain— membungkusarticledanasidesekaligus; sasaran pintasan “skip to content”. - Blok
headerartikel (baris 20-23):h1judul artikel plus penulis dan waktu lewattime. - Blok isi (baris 24-25): dua paragraf artikel — murni isi, tidak perlu dibungkus lagi.
- Blok komentar (baris 26-32):
sectionberjudul, satuarticleper komentar — mandiri di dalam mandiri. - Blok
footerartikel (baris 33-35): tautan lanjutan milik artikel semata. - Blok
aside(baris 37-43): Baca Juga — pelengkap yang boleh dihapus tanpa melukai artikel. - Blok
footersitus (baris 45-47): copyright dan kontak — penutup seluruh halaman.
Cek Pohon Hasil #
Sebelum menyimpan, periksa pohon hasil dengan daftar periksa tujuh butir ini:
- Tepat satu
mainyang terlihat — tidak adamainkedua. - Tepat satu
h1, dan heading tidak melompat tingkat (h1 → h2 → h3). - Setiap
sectiondanarticlepunya heading. - Setiap
articlelulus uji “dicabut tetap masuk akal”. - Setiap
asidelulus uji “dihapus tanpa merusak isi utama”. navhanya untuk blok navigasi utama; lebih dari satu berarti perluaria-labelpembeda.headerdanfootersitus masing-masing satu; sisanya milik bagian.
Halaman kita lulus semua: main satu, urutan heading rapi, komentar dan artikel lulus uji mandiri, dan Baca Juga memang pelengkap.
Ringkasan #
- Halaman semantik utuh:
header+nav, satumainberisiarticledanaside, ditutupfootersitus. - Bedah per blok menjaga setiap elemen tetap punya alasan berada di posisinya.
- Daftar periksa tujuh butir: satu
main, satuh1, heading berurutan, uji mandiri, uji pelengkap,navberlabel, lapis situs tunggal. - Pola yang sama dipakai ulang di proyek website komunitas.
Section berikutnya berpindah ke Tables — cara menyajikan data baris-kolom dengan tabel yang benar.