Gambar adalah salah satu elemen paling penting di halaman web — mempercantik tampilan, memperjelas konten, dan meningkatkan keterlibatan pengguna. Namun cara penggunaannya yang benar jauh lebih dalam dari sekadar <img src="...">.
Tag untuk menampilkan gambar adalah <img> — merupakan self-closing tag yang tidak memiliki tag penutup:
<img src="foto.jpg" alt="Deskripsi foto">
Dua atribut yang wajib selalu ada:
src — sumber / lokasi file gambaralt — teks alternatif yang mendeskripsikan gambarsrc — Sumber GambarNilai src bisa berupa URL relatif, URL absolut, atau bahkan data base64:
URL Relatif — file gambar di dalam proyek sendiri:
<!-- File di folder yang sama dengan HTML -->
<img src="foto.jpg" alt="Foto profil">
<!-- File di dalam subfolder -->
<img src="assets/images/banner.jpg" alt="Banner utama">
<!-- Naik satu level folder -->
<img src="../images/logo.png" alt="Logo perusahaan">
URL Absolut — gambar dari internet:
<img src="https://example.com/images/produk.jpg" alt="Foto produk">
Format yang didukung browser:
| Format | Ekstensi | Keunggulan |
|---|---|---|
| JPEG | .jpg, .jpeg |
Foto, ukuran kecil, kualitas baik |
| PNG | .png |
Mendukung transparansi |
| GIF | .gif |
Animasi sederhana |
| WebP | .webp |
Ukuran sangat kecil, kualitas tinggi |
| SVG | .svg |
Vektor, tidak pecah saat diperbesar |
| AVIF | .avif |
Format terbaru, ukuran paling kecil |
alt — Teks Alternatifalt adalah atribut yang menampilkan teks pengganti ketika gambar gagal dimuat, dan dibacakan oleh screen reader kepada pengguna tunanetra.
<!-- Gambar berhasil dimuat — alt tidak terlihat -->
<img src="kucing.jpg" alt="Kucing oranye sedang tidur di sofa">
<!-- Gambar gagal dimuat — alt ditampilkan sebagai teks -->
<img src="kucing-rusak.jpg" alt="Kucing oranye sedang tidur di sofa">
Saat gambar gagal dimuat, browser menampilkan:
[🖼️ Kucing oranye sedang tidur di sofa]
Gambar informatif — deskripsikan isi gambar secara spesifik:
<!-- KURANG BAIK — terlalu umum -->
<img src="presiden.jpg" alt="foto">
<img src="presiden.jpg" alt="gambar">
<img src="presiden.jpg" alt="orang">
<!-- BAIK — deskriptif dan spesifik -->
<img src="presiden.jpg" alt="Presiden Joko Widodo sedang berpidato di podium">
Gambar dekoratif — gunakan alt kosong:
Jika gambar hanya dekorasi dan tidak menambah informasi, berikan alt="" (kosong) — screen reader akan melewatinya:
<!-- Gambar dekoratif — alt dikosongkan -->
<img src="garis-pembatas.png" alt="">
<img src="background-pattern.png" alt="">
Gambar produk — sebutkan nama dan detail penting:
<img src="sepatu-nike.jpg" alt="Sepatu Nike Air Max 270 warna putih, tampak samping kiri">
Gambar grafik / infografis — jelaskan informasi yang disampaikan:
<img src="grafik-penjualan.png" alt="Grafik batang penjualan Q1 2025 menunjukkan peningkatan 35% dibanding Q4 2024">
Gambar tombol / ikon — jelaskan fungsinya:
<img src="ikon-cari.svg" alt="Cari">
<img src="ikon-keranjang.svg" alt="Keranjang belanja">
width dan heightSelalu cantumkan dimensi gambar agar browser bisa mereservasi ruang sebelum gambar selesai dimuat — mencegah layout shift yang mengganggu:
<img
src="banner.jpg"
alt="Banner promosi akhir tahun"
width="800"
height="400"
>
Nilai width dan height dalam satuan pixel. Jika hanya satu yang dicantumkan, browser akan menyesuaikan dimensi lainnya secara proporsional:
<!-- Lebar 300px, tinggi menyesuaikan otomatis -->
<img src="foto.jpg" alt="Foto" width="300">
loading — Lazy LoadingAtribut loading="lazy" membuat gambar hanya dimuat saat mendekati viewport — sangat meningkatkan performa halaman dengan banyak gambar:
<!-- Gambar di atas fold — muat segera -->
<img src="hero.jpg" alt="Hero banner" loading="eager">
<!-- Gambar di bawah fold — muat saat mendekati layar -->
<img src="produk-1.jpg" alt="Produk 1" loading="lazy">
<img src="produk-2.jpg" alt="Produk 2" loading="lazy">
<img src="produk-3.jpg" alt="Produk 3" loading="lazy">
title — Tooltip GambarMenampilkan teks kecil saat mouse diarahkan ke gambar:
<img
src="peta.jpg"
alt="Peta lokasi kantor kami di Semarang"
title="Klik untuk memperbesar peta"
>
titleberbeda denganalt—altuntuk aksesibilitas dan fallback,titlehanya tooltip tambahan.
Menggabungkan <img> di dalam <a> untuk gambar yang bisa diklik:
<a href="https://example.com" target="_blank" rel="noopener noreferrer">
<img src="banner-promo.jpg" alt="Promo akhir tahun — diskon hingga 70%">
</a>
Membuat gambar menyesuaikan lebar container secara otomatis:
<style>
img {
max-width: 100%; /* tidak melebihi lebar container */
height: auto; /* tinggi proporsional */
display: block; /* hilangkan gap bawah default inline */
}
</style>
<img src="foto-besar.jpg" alt="Foto landscape panorama gunung">
srcset — Gambar Responsif Tingkat Lanjutsrcset memungkinkan browser memilih gambar yang paling sesuai dengan ukuran layar dan resolusi perangkat — gambar kecil untuk mobile, gambar besar untuk desktop:
<img
src="foto-800.jpg"
srcset="
foto-400.jpg 400w,
foto-800.jpg 800w,
foto-1200.jpg 1200w
"
sizes="
(max-width: 480px) 400px,
(max-width: 900px) 800px,
1200px
"
alt="Pemandangan pantai Bali saat matahari terbenam"
>
srcset — daftar gambar dengan lebar masing-masing (w = width descriptor)sizes — kondisi media query dan ukuran gambar yang sesuaisrc — fallback untuk browser yang tidak mendukung srcset<figure> dan <figcaption>Untuk gambar yang membutuhkan keterangan/caption, gunakan <figure> dan <figcaption>:
<figure>
<img
src="batik-solo.jpg"
alt="Pengrajin batik tulis di Solo sedang membatik dengan canting"
width="600"
>
<figcaption>
Pengrajin batik tulis di Kampung Batik Laweyan, Solo.
Proses membatik dengan canting membutuhkan ketelitian dan kesabaran tinggi.
</figcaption>
</figure>
Hasilnya:
┌─────────────────────────────────────┐
│ │
│ [foto batik] │
│ │
└─────────────────────────────────────┘
Pengrajin batik tulis di Kampung
Batik Laweyan, Solo. Proses membatik
dengan canting membutuhkan...
<figcaption> bisa diletakkan sebelum atau sesudah <img> di dalam <figure>.
<style>
/* Gambar bulat */
.foto-profil {
width: 120px;
height: 120px;
border-radius: 50%;
object-fit: cover; /* crop gambar agar proporsional */
border: 3px solid #4a9eed;
}
/* Gambar dengan shadow */
.foto-produk {
width: 300px;
height: 300px;
object-fit: cover;
border-radius: 12px;
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
transition: transform 0.3s;
}
.foto-produk:hover {
transform: scale(1.03); /* sedikit membesar saat hover */
}
/* Caption styling */
figcaption {
text-align: center;
font-size: 14px;
color: #757575;
margin-top: 8px;
font-style: italic;
}
</style>
<!-- Foto profil bulat -->
<img src="avatar.jpg" alt="Foto profil Budi Santoso" class="foto-profil">
<!-- Gambar produk dengan hover effect -->
<figure>
<img src="produk.jpg" alt="Sepatu Nike Air Max" class="foto-produk">
<figcaption>Nike Air Max 270 — Rp 1.850.000</figcaption>
</figure>
object-fit — Mengatur Cara Gambar Mengisi ContainerProperti CSS object-fit sangat berguna saat gambar harus memenuhi container berukuran tetap:
<style>
.card-img {
width: 300px;
height: 200px;
}
.cover { object-fit: cover; } /* crop — memenuhi container, mungkin terpotong */
.contain { object-fit: contain; } /* seluruh gambar terlihat, mungkin ada ruang kosong */
.fill { object-fit: fill; } /* gambar diregangkan memenuhi container */
.none { object-fit: none; } /* ukuran asli gambar */
</style>
✓ Selalu sertakan atribut alt yang deskriptif
✓ Gambar dekoratif gunakan alt="" (kosong)
✓ Cantumkan width dan height untuk mencegah layout shift
✓ Gunakan loading="lazy" untuk gambar di bawah fold
✓ Kompres gambar sebelum upload (gunakan TinyPNG atau Squoosh)
✓ Pilih format yang tepat — WebP untuk foto, SVG untuk ikon
✓ Gunakan figure + figcaption untuk gambar dengan keterangan
✓ Pastikan gambar responsif dengan max-width: 100%
<img>| Atribut | Wajib | Fungsi |
|---|---|---|
src |
✅ Ya | Sumber/lokasi file gambar |
alt |
✅ Ya | Teks alternatif & aksesibilitas |
width |
Dianjurkan | Lebar gambar dalam pixel |
height |
Dianjurkan | Tinggi gambar dalam pixel |
loading |
Opsional | Strategi pemuatan (lazy/eager) |
title |
Opsional | Tooltip saat hover |
srcset |
Opsional | Gambar responsif multi-resolusi |
sizes |
Opsional | Kondisi ukuran untuk srcset |
💡 Tips: Alt text yang baik adalah investasi jangka panjang — membantu SEO karena mesin pencari membaca alt text untuk memahami gambar, membantu aksesibilitas bagi pengguna tunanetra, dan menjadi fallback saat gambar gagal dimuat. Luangkan waktu untuk menulis alt text yang benar-benar deskriptif di setiap gambar. 🎯
Kursus
HTML Dasar
Kategori
Link & Media
Durasi Pelajaran
20 menit