Empat halaman berdiri, tetapi menunya masih salinan beranda yang ditempel seragam — penanda halaman aktif tidak pernah berpindah dan tiga berkas bahkan belum punya footer. Bagian ini menuntaskan dua pekerjaan terakhir itu: menu yang sama dan benar di keempat berkas, lalu footer penutup yang identik. Markupnya kecil; disiplinnya yang berat.
Menu yang Sama di Empat Berkas #
Menu pada beranda kita jadikan acuan — berikut bloknya di index.html, lengkap dengan penandanya:
<nav aria-label="Navigasi utama">
<ul>
<li><a href="index.html" aria-current="page">Beranda</a></li>
<li><a href="tentang.html">Tentang</a></li>
<li><a href="kegiatan.html">Kegiatan</a></li>
<li><a href="kontak.html">Kontak</a></li>
</ul>
</nav>Salin blok itu ke tentang.html, lalu geser penandanya:
<nav aria-label="Navigasi utama">
<ul>
<li><a href="index.html">Beranda</a></li>
<li><a href="tentang.html" aria-current="page">Tentang</a></li>
<li><a href="kegiatan.html">Kegiatan</a></li>
<li><a href="kontak.html">Kontak</a></li>
</ul>
</nav>Ke kegiatan.html:
<nav aria-label="Navigasi utama">
<ul>
<li><a href="index.html">Beranda</a></li>
<li><a href="tentang.html">Tentang</a></li>
<li><a href="kegiatan.html" aria-current="page">Kegiatan</a></li>
<li><a href="kontak.html">Kontak</a></li>
</ul>
</nav>Dan terakhir ke kontak.html:
<nav aria-label="Navigasi utama">
<ul>
<li><a href="index.html">Beranda</a></li>
<li><a href="tentang.html">Tentang</a></li>
<li><a href="kegiatan.html">Kegiatan</a></li>
<li><a href="kontak.html" aria-current="page">Kontak</a></li>
</ul>
</nav>Mari kita bedah baris demi baris:
- Struktur identik (baris 1-7 pada keempat blok):
aria-label, jumlah item, label teks, dan urutannya sama persis — pengunjung mempelajari menu sekali di halaman mana pun, lalu bergerak tanpa berpikir di halaman lain. aria-current="page"yang berpindah (baris 3-6): tiap berkas menandai item miliknya — Beranda diindex.html, Tentang ditentang.html, Kegiatan dikegiatan.html, Kontak dikontak.html. Atribut ini menyatakan “inilah halaman sekarang” dan langsung dikenali pembaca layar, materi chapter Navigasi Antarhalaman.- Beranda ikut tertaut dan bertanda (baris 3 blok pertama): berbeda dari panduan wisata yang tidak menaut beranda, menu kita menautnya — maka keempat berkas punya penanda aktif, tidak ada yang kosong, dan nilai
href-nya tetapindex.htmldi semua berkas. - Nilai
hreftidak pernah berubah antarberkas: seluruh tautan menu menunjuk berkas, bukan fragment, dan keempat berkas bertetangga di satu folder — nama berkas sudah cukup sebagai alamat. Karena itu blok nav benar-benar identik kecuali satu atribut yang berpindah; di panduan wisata dulu, tautan Kontak berubah nilai antarberkas karena mengejar fragment di beranda.
Footer yang Sama Empat Kali #
Tiga berkas masih ditutup </main> saja. Tempelkan blok penutup berikut setelahnya — di keempat berkas, sama persis:
<!-- Kaki situs -->
<footer>
<address>
<p>Kopi.dev — Komunitas Belajar Web<br>Jalan Kenari No. 12, Jakarta Selatan 12130</p>
<p>Email: <a href="mailto:[email protected]">[email protected]</a></p>
</address>
<nav aria-label="Tautan sosial">
<ul>
<li><a href="https://www.example.com/kopidev-forum" target="_blank" rel="noopener">Forum</a></li>
<li><a href="https://www.example.com/kopidev-chat" target="_blank" rel="noopener">Ruang chat</a></li>
<li><a href="https://www.example.com/kopidev-kode" target="_blank" rel="noopener">Repositori latihan</a></li>
</ul>
</nav>
<p><small>© <time datetime="2026">2026</time> Kopi.dev — Komunitas Belajar Web.</small></p>
</footer>Bedah blok penutup ini:
addressidentitas situs (baris 3-6): alamat sekretariat dan email — informasi yang berlaku untuk seluruh situs, maka tempatnya footer, bukanmainhalaman tertentu.navtautan sosial (baris 7-13): tautan komunitas di luar situs, dibuka tab baru ber-rel="noopener".footerboleh memuatnav— wilayah navigasi sekunder sah di kaki halaman, asalkanaria-label-nya dibedakan dari menu utama, materi chapter Navigasi dengan Nav.- Hak cipta ber-
timedansmall(baris 14): tahun dibungkustime datetime="2026",smallmenandai keterangan ringkas — penutup yang sama di keempat berkas menandai situs yang konsisten sampai baris terakhir.
Biaya Pemeliharaan Manual #
Kita menempelkan nav dan footer dengan tangan: satu berkas acuan, tiga kali salin-tempel, satu atribut digeser. Mudah untuk empat halaman, tetapi biayanya tumbuh mengikuti jumlah berkas:
Struktur Berkas dan Aset #
Situs lengkap kini berbentuk berikut:
website-komunitas/
├── index.html
├── tentang.html
├── kegiatan.html
├── kontak.html
└── assets/Empat berkas bertetangga — itulah sebabnya seluruh tautan situs ditulis nama berkas saja. Folder assets/ masih kosong dan tidak dirujuk berkas mana pun: situs ini murni teks, dan folder itu menunggu foto kegiatan begitu materi gambar kita sampai. Menata nama berkas sejak awal — kegiatan.html, bukan halaman2.html — adalah kebiasaan dari chapter Struktur File dan Folder; tautan rusak paling sering lahir dari berkas yang diubah namanya setelah ditaut.
Hasil pada Browser #
Buka index.html dan berkeliling lewat menu: tiap item memuat berkasnya, dan item halaman yang sedang dibuka bertanda aktif — pembaca layar mengumumkan “halaman saat ini” yang berpindah mengikuti berkas. Footer yang sama menutup keempat halaman: alamat, tautan sosial, dan hak cipta berdiri di tempat yang sama persis.
Karena demo hanya satu potongan berkas, keempat menu berikut ditampilkan berdampingan sebagai ringkasan empat halaman — bandingkan strukturnya yang identik dan satu-satunya perbedaannya: letak penanda aktif yang berpindah:
Pada demo, tautan antarhalaman dimatikan (nilainya diganti #) dan penanda aria-current diberi latar berwarna agar terlihat — pada berkas sungguhan penanda itu tidak punya tampilan bawaan, ia hanya diumumkan pembaca layar.
Dan inilah footer yang sama yang ditempelkan setelah </main> di keempat berkas:
Pada demo footer, tautan mailto: biasanya ditahan browser di dalam iframe dan tiga tautan sosial terbuka di tab baru — markupnya sama persis dengan blok yang ditempelkan keempat berkas.
Ringkasan Bagian 5 #
- Nav identik di keempat berkas; satu-satunya perbedaan adalah posisi
aria-current="page"yang berpindah mengikuti halaman. - Footer sama empat kali:
addressidentitas,navsosial berlabel sendiri, dan hak cipta ber-time. - Pemeliharaan manual menuntut suntingan serentak di semua berkas; templating kelak menghapus pekerjaan ini.
Satu bagian terakhir menutup Course: audit menyeluruh keempat halaman, uji seluruh situs, dan refleksi perjalanan belajar kita.