Apa itu HTML?
HTML (HyperText Markup Language) bukanlah bahasa pemrograman, melainkan bahasa markup yang digunakan untuk membuat struktur dan kerangka dari sebuah halaman web. Bayangkan HTML sebagai fondasi dan tulang dari sebuah rumah. Ia mendefinisikan elemen-elemen seperti judul, paragraf, gambar, dan tautan.
Struktur Dasar Dokumen
Setiap file HTML memiliki struktur dasar yang wajib ada. Ini memberitahu browser bahwa dokumen tersebut adalah halaman web dan mendefinisikan bagian kepala (metadata) dan tubuh (konten yang terlihat).
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<title>Judul Halaman</title>
</head>
<body>
<!-- Konten website Anda ada di sini -->
</body>
</html>
Atribut HTML
Atribut memberikan informasi tambahan tentang elemen HTML dan selalu
ditempatkan di dalam tag pembuka. Atribut biasanya datang dalam
pasangan nama/nilai seperti: nama="nilai".
Atribut Umum
id: Menentukan ID unik untuk sebuah elemen.-
class: Menentukan satu atau lebih nama kelas untuk sebuah elemen (digunakan oleh CSS dan JavaScript). -
style: Digunakan untuk menerapkan gaya CSS sebaris (inline) pada sebuah elemen. -
href: Menentukan URL tujuan untuk tag<a>. -
src: Menentukan sumber (URL) untuk tag seperti<img>dan<script>. -
alt: Menentukan teks alternatif untuk gambar jika tidak dapat ditampilkan.
Tag-tag Umum
Tag Judul: <h1> hingga <h6>
Digunakan untuk membuat judul atau heading.
<h1> adalah level tertinggi, dan
<h6> adalah yang terendah.
Contoh Kode:
<h1>Ini Judul Utama</h1>
<h2>Ini Sub-Judul</h2>
Hasil Tampilan:
Ini Judul Utama
Ini Sub-Judul
Tag Paragraf: <p>
Digunakan untuk membungkus blok teks menjadi sebuah paragraf.
Contoh Kode:
<p>Ini adalah paragraf pertama.</p>
Hasil Tampilan:
Ini adalah paragraf pertama.
Tag Tautan (Link): <a>
Membuat hyperlink. Atribut href wajib diisi dengan
URL tujuan.
Contoh Kode:
<a href="#">Ini adalah tautan</a>
Hasil Tampilan:
Tag Gambar: <img>
Menampilkan gambar. Atribut src berisi alamat gambar
dan alt adalah teks deskripsi.
Contoh Kode:
<img src="https://placehold.co/300x150/FF5733/FFFFFF?text=Gambar+Contoh" alt="Gambar placeholder">
Hasil Tampilan:
Tag Daftar (List): <ul>,
<ol>, <li>
<ul> untuk daftar tak berurutan (bullet) dan
<ol> untuk daftar berurutan (angka).
Contoh Kode:
<ul>
<li>Item 1</li>
<li>Item 2</li>
</ul>
<ol>
<li>Item Pertama</li>
<li>Item Kedua</li>
</ol>
Hasil Tampilan:
- Item 1
- Item 2
- Item Pertama
- Item Kedua
HTML Semantik
HTML Semantik adalah penggunaan tag HTML yang sesuai dengan makna atau tujuan dari konten yang dibungkusnya. Ini membantu mesin pencari dan teknologi pendukung (seperti pembaca layar) untuk lebih memahami struktur halaman Anda.
Tag Semantik Utama
Alih-alih menggunakan <div> untuk semuanya,
gunakan tag yang lebih deskriptif:
-
<header>: Untuk bagian kepala halaman atau sebuah section (berisi logo, navigasi, judul). <nav>: Untuk blok navigasi utama.-
<main>: Untuk konten utama dan unik dari halaman. -
<article>: Untuk konten mandiri seperti postingan blog atau berita. -
<section>: Untuk mengelompokkan konten terkait. -
<aside>: Untuk konten sampingan (seperti sidebar). -
<footer>: Untuk bagian kaki halaman (berisi info hak cipta, kontak, dll).
Contoh Struktur:
<header>
<h1>Judul Website</h1>
<nav> ... </nav>
</header>
<main>
<article>
<h2>Judul Artikel</h2>
<p>Isi artikel...</p>
</article>
</main>
<footer>
<p>© 2025 Hak Cipta.</p>
</footer>
Formulir dan Tabel
Formulir: <form> dan <input>
Digunakan untuk mengumpulkan input dari pengguna. Tag
<input> memiliki banyak tipe, seperti
text, password, checkbox,
radio, dan submit.
Contoh Kode:
<form>
<label for="nama">Nama:</label><br>
<input type="text" id="nama" name="nama"><br>
<label for="sandi">Kata Sandi:</label><br>
<input type="password" id="sandi" name="sandi"><br><br>
<input type="submit" value="Kirim">
</form>
Hasil Tampilan:
Tabel: <table>, <tr>,
<th>, <td>
Digunakan untuk menampilkan data dalam format baris dan kolom.
<tr> mendefinisikan baris,
<th> untuk header kolom, dan
<td> untuk sel data.
Contoh Kode:
<table>
<tr>
<th>Nama Depan</th>
<th>Nama Belakang</th>
</tr>
<tr>
<td>Izumi</td>
<td>Miyamura</td>
</tr>
</table>
Hasil Tampilan:
| Nama Depan | Nama Belakang |
|---|---|
| Izumi | Miyamura |
Elemen Multimedia
HTML5 memperkenalkan tag khusus untuk menyematkan file audio dan video secara langsung tanpa memerlukan plugin eksternal seperti Flash.
Audio: <audio>
Digunakan untuk menyematkan konten suara. Atribut
controls akan menampilkan kontrol pemutar audio
standar dari browser (play, pause, volume).
Contoh Kode:
<audio controls>
<source src="musik.mp3" type="audio/mpeg">
Browser Anda tidak mendukung elemen audio.
</audio>
Hasil Tampilan:
Di sini akan muncul pemutar audio standar dari browser.
(Membutuhkan file musik.mp3 untuk benar-benar berfungsi)Video: <video>
Digunakan untuk menyematkan konten video. Sama seperti audio,
atribut controls akan menampilkan kontrol pemutar
video.
Contoh Kode:
<video width="400" controls>
<source src="film.mp4" type="video/mp4">
Browser Anda tidak mendukung tag video.
</video>
Hasil Tampilan:
Elemen Blok vs. Inline
Elemen HTML umumnya terbagi menjadi dua kategori tampilan: blok dan inline.
-
Elemen Blok: Selalu dimulai di baris baru dan
mengambil lebar penuh yang tersedia. Contoh:
<div>,<p>,<h1>,<form>. -
Elemen Inline: Tidak dimulai di baris baru dan
hanya mengambil lebar sebanyak yang diperlukan. Contoh:
<span>,<a>,<img>,<strong>.
Contoh Kode:
<div style="background-color: lightblue;">Ini elemen blok.</div>
<div style="background-color: lightcoral;">Ini elemen blok lainnya.</div>
<span style="background-color: lightgreen;">Ini elemen inline.</span>
<span style="background-color: gold;">Ini elemen inline lainnya.</span>
Hasil Tampilan:
Ini elemen inline. Ini elemen inline lainnya.
iFrame: <iframe>
Tag <iframe> digunakan untuk menampilkan halaman
web lain di dalam sebuah halaman web (seperti jendela di dalam
jendela). Sering digunakan untuk menyematkan peta, video dari
YouTube, atau konten eksternal lainnya.
Contoh Kode:
<iframe src="https://www.openstreetmap.org/export/embed.html?bbox=..." style="border:0;"></iframe>
Hasil Tampilan:
Di sini akan muncul konten dari halaman lain, misalnya peta.
Entitas Karakter
Beberapa karakter, seperti < dan >,
memiliki makna khusus di HTML. Untuk menampilkannya sebagai teks
biasa, kita harus menggunakan entitas karakter.
Contoh Kode:
<p>Tag paragraf dibuat dengan <p>.</p>
<p>Hak cipta dilambangkan dengan ©.</p>
Hasil Tampilan:
Tag paragraf dibuat dengan <p>.
Hak cipta dilambangkan dengan ©.
Kepala Dokumen: Elemen di Dalam <head>
Bagian <head> adalah kontainer untuk metadata
(data tentang data) dan ditempatkan antara tag
<html> dan <body>. Metadata
ini tidak ditampilkan di halaman, tetapi digunakan oleh browser,
mesin pencari, dan layanan web lainnya.
Judul Halaman: <title>
Menentukan judul untuk halaman web. Judul ini akan muncul di tab browser, bookmark, dan hasil pencarian. Tag ini wajib ada di setiap dokumen HTML.
Contoh Kode:
<head>
<title>Kamus Koding - Halaman HTML</title>
</head>
Efeknya:
Teks "Kamus Koding - Halaman HTML" akan muncul di tab browser Anda.
Metadata: <meta>
Menyediakan metadata tentang dokumen HTML, seperti set karakter, deskripsi halaman, kata kunci, dan pengaturan viewport untuk desain responsif.
Contoh Kode:
<head>
<!-- Menentukan set karakter yang digunakan -->
<meta charset="UTF-8">
<!-- Pengaturan untuk tampilan di perangkat mobile (penting untuk responsif) -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Deskripsi halaman untuk mesin pencari -->
<meta name="description" content="Belajar dasar-dasar HTML dengan mudah.">
</head>
Efeknya:
Tag-tag ini tidak memiliki tampilan visual, tetapi sangat penting untuk SEO (Search Engine Optimization) dan agar website tampil dengan baik di perangkat mobile.
Menghubungkan Sumber Eksternal: <link>
Digunakan untuk menghubungkan dokumen saat ini dengan sumber daya eksternal. Penggunaan paling umum adalah untuk menautkan file stylesheet CSS.
Contoh Kode:
<head>
<!-- Menghubungkan ke file CSS eksternal -->
<link rel="stylesheet" href="/css/style.css">
<!-- Menambahkan ikon (favicon) untuk tab browser -->
<link rel="icon" href="/favicon.ico" type="image/x-icon">
</head>
Skrip dan Gaya Internal: <script> &
<style>
Selain menghubungkan file eksternal, Anda juga bisa menulis
JavaScript dan CSS langsung di dalam dokumen HTML menggunakan tag
<script> dan <style>.
Biasanya diletakkan di dalam <head> (untuk
<style>) atau sebelum penutup
</body> (untuk <script> agar
tidak menghalangi pemuatan halaman).
Contoh Kode:
<head>
<style>
body {
background-color: #f0f0f0;
}
</style>
</head>
<body>
<script>
alert('Halaman telah dimuat!');
</script>
</body>
Praktik Terbaik dan Aksesibilitas
Menulis HTML yang valid dan terstruktur bukan hanya tentang membuat halaman tampil benar, tetapi juga tentang membuatnya dapat diakses dan dikelola dengan baik.
Komentar dalam HTML
Anda dapat menambahkan komentar ke dalam kode HTML Anda untuk meninggalkan catatan, pengingat, atau menonaktifkan bagian kode untuk sementara saat debugging. Komentar tidak akan ditampilkan oleh browser.
Contoh Kode:
<!-- Ini adalah komentar. Tidak akan terlihat di halaman. -->
<p>Paragraf ini akan terlihat.</p>
<!-- <p>Paragraf ini dinonaktifkan dengan komentar.</p> -->
Hasil Tampilan:
Paragraf ini akan terlihat.
Aksesibilitas Web (Web Accessibility / a11y)
Aksesibilitas adalah praktik memastikan bahwa situs web Anda dapat
digunakan oleh semua orang, termasuk penyandang disabilitas
(misalnya, tunanetra yang menggunakan pembaca layar). Menggunakan
HTML semantik dan atribut alt pada gambar adalah
langkah dasar yang bagus. Konsep lanjutannya adalah menggunakan
atribut ARIA (Accessible Rich Internet Applications) untuk
memberikan konteks tambahan pada elemen.
Contoh Kode:
<!-- Tanpa aksesibilitas, pembaca layar mungkin hanya akan membaca "X" -->
<button>X</button>
<!-- Dengan ARIA, pembaca layar akan tahu ini adalah tombol "Tutup" -->
<button aria-label="Tutup">X</button>
Efeknya:
Secara visual, kedua tombol mungkin terlihat sama. Namun, tombol kedua memberikan informasi yang jelas ("Tutup") kepada pengguna teknologi pendukung seperti pembaca layar.
Validasi HTML
Validasi adalah proses memeriksa kode HTML Anda terhadap standar resmi dari W3C (World Wide Web Consortium) untuk memastikan tidak ada kesalahan sintaks. Kode yang valid cenderung ditampilkan secara lebih konsisten di berbagai browser.
Cara Memvalidasi:
Anda dapat menyalin dan menempelkan kode Anda ke layanan gratis seperti W3C Markup Validation Service untuk mendapatkan laporan tentang kesalahan atau peringatan apa pun dalam kode Anda.
Elemen HTML5 Lanjutan dan Grafis
HTML5 terus berkembang dan memperkenalkan tag-tag baru yang menyediakan fungsionalitas bawaan browser yang sebelumnya memerlukan JavaScript atau CSS yang rumit.
Elemen Formulir Tambahan
Selain <input>, ada elemen lain yang sangat
berguna untuk formulir yang lebih kompleks.
-
<textarea>: Untuk input teks multi-baris (seperti kolom komentar). -
<select>dan<option>: Untuk membuat daftar pilihan (dropdown).
Contoh Kode:
<label for="pilihan">Pilih Bahasa:</label>
<select name="bahasa" id="pilihan">
<option value="html">HTML</option>
<option value="css">CSS</option>
<option value="js">JavaScript</option>
</select>
<br><br>
<label for="pesan">Pesan Anda:</label><br>
<textarea id="pesan" name="pesan" rows="4" cols="50"></textarea>
Hasil Tampilan:
Tag Semantik dan Utilitas Lainnya
-
<details>&<summary>: Membuat widget "buka-tutup" (accordion) interaktif tanpa JavaScript. -
<figure>&<figcaption>: Mengelompokkan konten media (seperti gambar) dengan keterangannya.
Contoh Kode:
<details>
<summary>Klik untuk melihat detail</summary>
<p>Ini adalah konten tersembunyi yang akan muncul.</p>
</details>
<figure>
<img src="https://placehold.co/300x150/FF5733/FFFFFF?text=Gambar+Contoh" alt="Gambar placeholder">
<figcaption>Gbr. 1: Sebuah gambar placeholder.</figcaption>
</figure>
Hasil Tampilan:
Klik untuk melihat detail
Ini adalah konten tersembunyi yang akan muncul.
Grafis di Web: <canvas> dan
<svg>
HTML menyediakan dua cara utama untuk membuat grafis:
-
<canvas>: Membuat area gambar "kanvas" yang dapat dimanipulasi dengan JavaScript. Cocok untuk game, animasi, dan visualisasi data dinamis. -
<svg>: (Scalable Vector Graphics) Mendefinisikan grafis berbasis vektor menggunakan XML. Cocok untuk logo, ikon, dan ilustrasi yang harus tajam di semua ukuran.
Contoh Kode:
<!-- Canvas membutuhkan JavaScript untuk menggambar -->
<canvas id="kanvasSaya" width="200" height="100" style="border:1px solid #000;"></canvas>
<!-- SVG mendefinisikan bentuk langsung di HTML -->
<svg width="100" height="100">
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" />
</svg>