Dua elemen semantik ini sering diabaikan pemula padahal sangat berguna โ <aside> untuk konten sampingan yang berkaitan dengan konten utama, dan <figure> untuk media yang membutuhkan keterangan.
<aside> โ Konten Sampingan<aside> digunakan untuk konten yang berkaitan namun tidak menjadi bagian inti dari konten di sekitarnya. Jika konten <aside> dihapus, konten utama tetap bisa dipahami sepenuhnya.
<main>
<article>
<h1>Cara Belajar HTML dengan Efektif</h1>
<p>HTML adalah fondasi dari semua halaman web...</p>
</article>
<!-- Konten sampingan โ terkait tapi bukan inti -->
<aside>
<h3>Artikel Terkait</h3>
<ul>
<li><a href="#">Belajar CSS dari Nol</a></li>
<li><a href="#">JavaScript untuk Pemula</a></li>
</ul>
</aside>
</main>
<aside>?Sidebar website โ <aside>
Widget artikel terkait โ <aside>
Kotak kutipan menarik (pullquote)โ <aside>
Iklan yang relevan โ <aside>
Profil singkat penulis โ <aside>
Glosarium / definisi istilah โ <aside>
Catatan tambahan / tips โ <aside>
Konten yang sama sekali tidak โ BUKAN <aside>
berkaitan dengan konten utama
<aside> di Level Halaman vs Level ArtikelLevel halaman โ sidebar website:
<body>
<header>...</header>
<div class="layout">
<!-- Konten utama -->
<main>
<h1>Artikel Utama</h1>
<p>Isi konten utama halaman...</p>
</main>
<!-- Aside level halaman โ sidebar -->
<aside>
<section>
<h3>Kategori</h3>
<ul>
<li><a href="#">HTML (12)</a></li>
<li><a href="#">CSS (8)</a></li>
<li><a href="#">JavaScript (15)</a></li>
</ul>
</section>
<section>
<h3>Artikel Terpopuler</h3>
<ol>
<li><a href="#">Belajar Flexbox CSS</a></li>
<li><a href="#">JavaScript ES6+</a></li>
<li><a href="#">Cara Deploy Website</a></li>
</ol>
</section>
</aside>
</div>
<footer>...</footer>
</body>
Level artikel โ catatan di dalam konten:
<article>
<h1>Panduan Lengkap CSS Grid</h1>
<p>CSS Grid adalah sistem layout dua dimensi yang sangat powerful...</p>
<!-- Aside di dalam artikel โ catatan tambahan terkait -->
<aside>
<h4>Tahukah kamu?</h4>
<p>CSS Grid pertama kali didukung penuh oleh browser pada tahun 2017,
menjadikannya salah satu fitur CSS paling dinantikan developer.</p>
</aside>
<p>Untuk membuat grid, cukup tambahkan <code>display: grid</code>...</p>
</article>
<aside> yang Umum DigunakanSidebar klasik:
<style>
.layout {
display: grid;
grid-template-columns: 1fr 300px;
gap: 40px;
max-width: 1100px;
margin: 0 auto;
padding: 40px 24px;
}
aside {
display: flex;
flex-direction: column;
gap: 28px;
}
.widget {
background: #f8f9fa;
border-radius: 12px;
padding: 20px;
border: 1px solid #e5e7eb;
}
.widget h3 {
font-size: 15px;
font-weight: 700;
color: #1e1e1e;
margin-bottom: 14px;
padding-bottom: 10px;
border-bottom: 2px solid #4a9eed;
}
.widget ul {
list-style: none;
padding: 0;
display: flex;
flex-direction: column;
gap: 8px;
}
.widget ul li a {
font-size: 14px;
color: #4b5563;
text-decoration: none;
display: flex;
justify-content: space-between;
transition: color 0.2s;
}
.widget ul li a:hover {
color: #4a9eed;
}
.widget ul li a span {
color: #9ca3af;
font-size: 12px;
}
</style>
<div class="layout">
<main>
<h1>Judul Artikel Utama</h1>
<p>Isi konten panjang di sini...</p>
</main>
<aside>
<!-- Widget Kategori -->
<div class="widget">
<h3>Kategori</h3>
<ul>
<li><a href="#">HTML <span>(12 artikel)</span></a></li>
<li><a href="#">CSS <span>(8 artikel)</span></a></li>
<li><a href="#">JavaScript <span>(15 artikel)</span></a></li>
<li><a href="#">PHP <span>(6 artikel)</span></a></li>
</ul>
</div>
<!-- Widget Artikel Terpopuler -->
<div class="widget">
<h3>Terpopuler</h3>
<ul>
<li><a href="#">Belajar Flexbox CSS</a></li>
<li><a href="#">JavaScript ES6+</a></li>
<li><a href="#">Cara Deploy di VPS</a></li>
<li><a href="#">Laravel untuk Pemula</a></li>
</ul>
</div>
<!-- Widget Pullquote -->
<div class="widget" style="background:#f0f7ff; border-color:#4a9eed;">
<blockquote style="margin:0; font-style:italic; color:#374151; font-size:15px; line-height:1.7;">
"Kode yang baik adalah kode yang bisa dibaca oleh manusia,
bukan hanya oleh mesin."
</blockquote>
<cite style="display:block; margin-top:10px; font-size:13px; color:#6b7280;">
โ Donald Knuth
</cite>
</div>
</aside>
</div>
<figure> โ Media dengan Konteks<figure> digunakan untuk membungkus konten media yang berdiri sendiri dan dirujuk dari konten utama โ gambar, diagram, grafik, potongan kode, atau video yang membutuhkan keterangan.
<figure>
<img src="diagram-html.png" alt="Diagram struktur dokumen HTML">
<figcaption>Diagram 1. Hierarki elemen dalam dokumen HTML5</figcaption>
</figure>
<figcaption> โ Keterangan Figure<figcaption> adalah pasangan wajib <figure> yang memberikan keterangan atau judul. Bisa diletakkan sebelum atau sesudah konten di dalam <figure>:
<!-- Caption di bawah (paling umum) -->
<figure>
<img src="foto.jpg" alt="Foto">
<figcaption>Keterangan gambar di bawah.</figcaption>
</figure>
<!-- Caption di atas -->
<figure>
<figcaption>Keterangan gambar di atas.</figcaption>
<img src="foto.jpg" alt="Foto">
</figure>
<figure> Tidak Hanya untuk GambarGambar:
<figure>
<img
src="pantai-bali.jpg"
alt="Pantai Kuta Bali saat matahari terbenam"
width="800"
>
<figcaption>
Pantai Kuta, Bali โ salah satu destinasi wisata paling populer di Indonesia.
Foto diambil pada bulan Juni 2024.
</figcaption>
</figure>
Blok kode program:
<figure>
<pre><code>
function sapa(nama) {
return `Halo, ${nama}!`;
}
console.log(sapa("Budi"));
// Output: Halo, Budi!
</code></pre>
<figcaption>
Gambar 3. Contoh penggunaan template literal di JavaScript ES6.
</figcaption>
</figure>
Kutipan (blockquote):
<figure>
<blockquote>
<p>Pendidikan adalah senjata paling ampuh yang bisa kamu gunakan
untuk mengubah dunia.</p>
</blockquote>
<figcaption>
โ <cite>Nelson Mandela</cite>, pidato di Planetarium Johannesburg, 2003
</figcaption>
</figure>
Video:
<figure>
<video controls width="800" poster="thumbnail.jpg">
<source src="tutorial-css-grid.mp4" type="video/mp4">
</video>
<figcaption>
Video 2. Tutorial lengkap CSS Grid Layout โ durasi 45 menit.
</figcaption>
</figure>
Grafik / Tabel data:
<figure>
<table>
<thead>
<tr>
<th>Bahasa</th>
<th>Popularitas 2025</th>
<th>Pertumbuhan</th>
</tr>
</thead>
<tbody>
<tr><td>JavaScript</td><td>68%</td><td>+2%</td></tr>
<tr><td>Python</td><td>52%</td><td>+5%</td></tr>
<tr><td>TypeScript</td><td>38%</td><td>+8%</td></tr>
</tbody>
</table>
<figcaption>
Tabel 1. Popularitas bahasa pemrograman berdasarkan survei
Stack Overflow Developer Survey 2025.
</figcaption>
</figure>
<figure> dan <figcaption><style>
/* Figure dasar */
figure {
margin: 32px 0;
padding: 0;
}
figure img,
figure video {
width: 100%;
height: auto;
display: block;
border-radius: 10px;
}
figcaption {
font-size: 13px;
color: #6b7280;
text-align: center;
margin-top: 10px;
font-style: italic;
line-height: 1.6;
}
/* Figure dengan border */
figure.bordered {
border: 1px solid #e5e7eb;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 4px 16px rgba(0,0,0,0.06);
}
figure.bordered figcaption {
padding: 12px 16px;
background: #f9fafb;
border-top: 1px solid #e5e7eb;
text-align: left;
font-style: normal;
color: #4b5563;
}
/* Figure untuk kode */
figure.code-block {
background: #1e1e1e;
border-radius: 10px;
overflow: hidden;
}
figure.code-block pre {
margin: 0;
padding: 24px;
overflow-x: auto;
}
figure.code-block code {
color: #e5e5e5;
font-size: 14px;
line-height: 1.7;
font-family: 'Courier New', monospace;
}
figure.code-block figcaption {
background: #2d2d2d;
color: #9ca3af;
padding: 10px 24px;
border-top: 1px solid #374151;
font-style: normal;
text-align: left;
font-size: 12px;
}
/* Figure untuk kutipan */
figure.pullquote {
border-left: 4px solid #4a9eed;
padding: 0 0 0 24px;
margin: 32px 0;
}
figure.pullquote blockquote {
margin: 0;
font-size: 20px;
font-style: italic;
color: #1e1e1e;
line-height: 1.6;
}
figure.pullquote figcaption {
text-align: left;
margin-top: 12px;
font-style: normal;
color: #6b7280;
font-size: 14px;
}
</style>
<!-- Contoh penggunaan -->
<figure class="bordered">
<img src="dashboard.jpg" alt="Dashboard aplikasi analitik">
<figcaption>
Gambar 1. Tampilan dashboard utama aplikasi analitik WebSaya versi 3.0
</figcaption>
</figure>
<figure class="code-block">
<pre><code>
const tampilkanData = async (url) => {
const response = await fetch(url);
const data = await response.json();
return data;
};
</code></pre>
<figcaption>
Kode 2. Fungsi async/await untuk mengambil data dari API
</figcaption>
</figure>
<figure class="pullquote">
<blockquote>
Setiap developer hebat pernah menjadi pemula yang tidak menyerah.
</blockquote>
<figcaption>โ Prinsip komunitas WebSaya</figcaption>
</figure>
<aside> vs <figure>| Aspek | <aside> |
<figure> |
|---|---|---|
| Peran | Konten sampingan terkait | Media berdiri sendiri dengan keterangan |
| Posisi | Biasanya di luar alur utama | Di dalam alur konten |
| Jika dihapus | Konten utama tetap utuh | Informasi yang dirujuk hilang |
| Keterangan | Tidak wajib | <figcaption> opsional tapi dianjurkan |
| Contoh | Sidebar, artikel terkait, tips | Foto, grafik, kode, video |
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<title>Artikel โ Mengenal HTML Semantik</title>
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
font-family: sans-serif;
color: #1e1e1e;
background: #f9fafb;
}
.layout {
display: grid;
grid-template-columns: 1fr 280px;
gap: 40px;
max-width: 1060px;
margin: 40px auto;
padding: 0 24px;
align-items: start;
}
/* Artikel */
article h1 {
font-size: 28px;
margin-bottom: 8px;
}
.meta {
font-size: 13px;
color: #6b7280;
margin-bottom: 28px;
}
article p {
line-height: 1.8;
color: #374151;
margin-bottom: 20px;
}
/* Figure di dalam artikel */
figure {
margin: 28px 0;
border: 1px solid #e5e7eb;
border-radius: 12px;
overflow: hidden;
}
figure img {
width: 100%;
height: auto;
display: block;
}
figcaption {
padding: 12px 16px;
background: #f9fafb;
font-size: 13px;
color: #6b7280;
border-top: 1px solid #e5e7eb;
font-style: italic;
}
/* Aside di dalam artikel (pullquote) */
article aside {
background: #f0f7ff;
border-left: 4px solid #4a9eed;
padding: 16px 20px;
border-radius: 0 8px 8px 0;
margin: 24px 0;
font-size: 14px;
color: #1e3a5f;
}
article aside strong {
display: block;
margin-bottom: 6px;
font-size: 13px;
text-transform: uppercase;
letter-spacing: 0.05em;
color: #4a9eed;
}
/* Sidebar aside -->
.sidebar {
display: flex;
flex-direction: column;
gap: 24px;
position: sticky;
top: 80px;
}
.widget {
background: white;
border-radius: 12px;
padding: 20px;
border: 1px solid #e5e7eb;
}
.widget h3 {
font-size: 14px;
font-weight: 700;
margin-bottom: 14px;
color: #1e1e1e;
padding-bottom: 10px;
border-bottom: 2px solid #4a9eed;
}
.widget ul {
list-style: none;
display: flex;
flex-direction: column;
gap: 10px;
}
.widget ul li a {
font-size: 13px;
color: #4b5563;
text-decoration: none;
line-height: 1.5;
}
.widget ul li a:hover { color: #4a9eed; }
.tag-list {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.tag {
padding: 4px 12px;
background: #f0f4ff;
color: #4a9eed;
border-radius: 999px;
font-size: 12px;
text-decoration: none;
border: 1px solid #dbe4ff;
}
.tag:hover {
background: #4a9eed;
color: white;
}
</style>
</head>
<body>
<div class="layout">
<!-- Konten Utama -->
<article>
<header>
<h1>Mengenal Elemen Semantik HTML5</h1>
<p class="meta">
Oleh <strong>Budi Santoso</strong> ยท
20 April 2025 ยท
Waktu baca: 5 menit
</p>
</header>
<p>
HTML5 memperkenalkan sejumlah elemen semantik baru yang mengubah cara
kita menulis struktur halaman web. Sebelumnya, hampir semua bagian
halaman dibungkus dengan elemen generik seperti div dan span.
</p>
<!-- Figure gambar di dalam artikel -->
<figure>
<img src="html5-semantic.png"
alt="Diagram perbandingan struktur HTML lama vs HTML5 semantik">
<figcaption>
Gambar 1. Perbandingan struktur halaman dengan div generik (kiri)
vs elemen semantik HTML5 (kanan).
</figcaption>
</figure>
<p>
Dengan elemen semantik, setiap bagian halaman memiliki makna yang
jelas โ bukan hanya bagi developer, tapi juga bagi browser,
mesin pencari, dan teknologi assistif.
</p>
<!-- Aside di dalam artikel โ catatan tambahan -->
<aside>
<strong>Tahukah Kamu?</strong>
HTML5 secara resmi dirilis sebagai rekomendasi W3C pada Oktober 2014,
setelah proses pengembangan yang berlangsung hampir satu dekade sejak
draft pertama di tahun 2004.
</aside>
<p>
Elemen semantik yang paling sering digunakan antara lain header,
nav, main, article, section, aside, dan footer. Masing-masing
memiliki peran dan konteks penggunaan yang spesifik.
</p>
<!-- Figure blok kode di dalam artikel -->
<figure style="border-radius:10px; overflow:hidden; margin:28px 0;">
<pre style="background:#1e1e1e; padding:20px; margin:0; overflow-x:auto;">
<code style="color:#e5e5e5; font-size:13px; line-height:1.7;">
<body>
<header>...</header>
<nav>...</nav>
<main>
<article>...</article>
<aside>...</aside>
</main>
<footer>...</footer>
</body>
</code>
</pre>
<figcaption style="background:#2d2d2d; color:#9ca3af; padding:10px 20px;
font-size:12px; border-top:1px solid #374151;">
Kode 1. Struktur dasar halaman dengan elemen semantik HTML5
</figcaption>
</figure>
<p>
Mengadopsi HTML semantik bukan hanya soal mengikuti standar โ
ini adalah investasi jangka panjang untuk aksesibilitas,
SEO, dan keterbacaan kode yang lebih baik.
</p>
<footer style="margin-top:32px; padding-top:20px;
border-top:1px solid #e5e7eb;">
<div class="tag-list">
<a href="#" class="tag">HTML</a>
<a href="#" class="tag">Semantik</a>
<a href="#" class="tag">HTML5</a>
<a href="#" class="tag">Tutorial</a>
</div>
</footer>
</article>
<!-- Sidebar โ Aside level halaman -->
<aside class="sidebar">
<div class="widget">
<h3>Artikel Terkait</h3>
<ul>
<li><a href="#">Perbedaan div vs Elemen Semantik</a></li>
<li><a href="#">Cara Kerja Screen Reader di Web</a></li>
<li><a href="#">Panduan Lengkap HTML5</a></li>
<li><a href="#">SEO On-Page dengan HTML yang Benar</a></li>
</ul>
</div>
<div class="widget">
<h3>Kategori</h3>
<ul>
<li><a href="#">HTML โ 12 artikel</a></li>
<li><a href="#">CSS โ 8 artikel</a></li>
<li><a href="#">JavaScript โ 15 artikel</a></li>
<li><a href="#">Aksesibilitas โ 4 artikel</a></li>
</ul>
</div>
<div class="widget"
style="background:#fffbeb; border-color:#f59e0b;">
<h3 style="border-color:#f59e0b;">Tips Hari Ini</h3>
<p style="font-size:13px; color:#4b5563; line-height:1.7;">
Selalu validasi HTML kamu menggunakan
<a href="https://validator.w3.org"
style="color:#f59e0b;"
target="_blank"
rel="noopener noreferrer">
W3C Validator
</a>
untuk memastikan tidak ada kesalahan struktur.
</p>
</div>
</aside>
</div>
</body>
</html>
| Tag | Fungsi | Contoh Penggunaan |
|---|---|---|
<aside> |
Konten sampingan terkait | Sidebar, widget, pullquote, tips |
<figure> |
Media berdiri sendiri | Gambar, video, kode, grafik |
<figcaption> |
Keterangan figure | Caption foto, label grafik |
๐ก Tips: Gunakan
<figure>setiap kali gambar atau media dirujuk dari teks di sekitarnya โ misalnya "seperti terlihat pada Gambar 1". Jika gambar hanya dekoratif tanpa kaitan langsung dengan teks,<figure>tidak wajib digunakan. Dan ingat โ<aside>bukan sekadar "kotak di samping", melainkan konten yang secara semantik berkaitan dengan konten utama. ๐ฏ
Kursus
HTML Dasar
Kategori
Semantik HTML
Durasi Pelajaran
20 menit