Format Gambar Modern — Performance

Format Gambar Modern Format gambar modern seperti WebP dan AVIF menawarkan kompresi yang jauh lebih baik daripada JPEG dan PNG. Perbandingan Format…

Format gambar adalah cara sebuah file menyimpan pikselnya. Foto yang sama bisa sekitar 180 KB sebagai JPEG dan sekitar 80 KB sebagai AVIF, dan mata hampir gak bisa membedakannya. Mirip melipat baju ke koper: dilipat biasa (JPEG), digulung rapat (WebP), atau dimasukkan vacuum bag (AVIF). Bajunya sama, tempatnya biasanya makin kecil. Tapi lemari tua (browser lama) cuma bisa membuka lipatan biasa, makanya kamu tetap menyiapkan versi biasa sebagai cadangan.

🧪 Tebakan cepat: logo tokomu punya latar transparan dan teks yang harus tajam. Simpan sebagai JPEG, PNG, atau SVG? Tebak dulu, jawabannya ada di bagian "Pilih format sesuai isinya".

Empat istilah dulu

Format Kompresi Transparan Cocok untuk Dukungan browser
JPEG lossy gak foto semua
PNG lossless ya logo, ikon, screenshot, teks semua
WebP lossy dan lossless ya foto dan grafik semua browser modern
AVIF lossy dan lossless ya foto browser modern, Safari sejak versi 16
SVG vector ya logo, ikon, ilustrasi sederhana semua

Berapa hematnya

Foto 1200 × 900 di Lab, dengan tampilan yang setara:

Format Ukuran Dibanding JPEG
JPEG sekitar 180 KB patokan
WebP sekitar 120 KB sepertiga lebih kecil
AVIF sekitar 80 KB lebih dari setengah lebih kecil
PNG sekitar 1,4 MB hampir 8 kali lebih besar

Patokan umumnya: WebP sekitar 25 sampai 35% lebih kecil dari JPEG di kualitas setara. AVIF sekitar setengahnya, dan untuk banyak foto bisa 2 sampai 3 kali lebih kecil (hemat sampai sekitar 70%). Jadi foto 1920 × 1080 yang 150 KB sebagai JPEG kira-kira jadi 100 KB sebagai WebP, dan bisa turun sampai sekitar 45 KB sebagai AVIF. PNG untuk foto justru salah pilih: lossless berarti semua detail kecil disimpan, jadi filenya membengkak.

Urutan cadangan dengan <picture>

Kamu sudah kenal <picture> dari pelajaran Responsive Images. Browser membaca <source> dari atas, melewati yang type-nya gak dia kenal, dan memakai yang pertama dia dukung:

<picture>
  <!-- paling hemat dulu -->
  <source srcset="foto.avif" type="image/avif">
  <source srcset="foto.webp" type="image/webp">
  <!-- cadangan untuk semua browser, plus alt dan ukurannya -->
  <img src="foto.jpg" width="1200" height="900" alt="Sawah di pagi hari">
</picture>
Browser AVIF? WebP? Yang diunduh
Chrome terbaru ya ya foto.avif, sekitar 80 KB
Safari 15 gak ya foto.webp, sekitar 120 KB
Browser sangat lama (IE 11) gak gak foto.jpg, sekitar 180 KB

Pilih format sesuai isinya

Jadi untuk logo transparan dengan teks tajam: SVG kalau logonya vector, PNG kalau cuma ada versi gambarnya. JPEG gak bisa. Itu jawaban tebakannya.

Untuk mengonversi, pakai squoosh.app di browser untuk satu-dua file, atau sharp di Node.js untuk banyak file sekaligus saat build.

⚠️ Jebakan yang sering ketemu

TL;DR: Untuk foto 1200 × 900: JPEG sekitar 180 KB, WebP sekitar 120 KB (umumnya 25 sampai 35% lebih kecil), AVIF sekitar 80 KB (sekitar setengahnya, bisa 2 sampai 3 kali lebih kecil). Sajikan lewat <picture>: <source> AVIF dengan type="image/avif", lalu <source> WebP dengan type="image/webp", lalu <img> JPEG sebagai cadangan; tiap browser mengunduh satu file pertama yang dia dukung. Logo dan ikon pakai SVG, gambar dengan teks atau transparansi pakai PNG (atau WebP lossless), animasi pakai video, dan jangan pernah simpan foto sebagai PNG.

Yang akan kamu pelajari