Skip to content
Back to Blog
informational

Apa Itu SVG? Penjelasan Lengkap Scalable Vector Graphics

2026-05-17 9 min read

Jawaban Singkatnya: SVG Adalah File Teks yang Menggambar Gambar

SVG adalah singkatan dari Scalable Vector Graphics. Pada dasarnya, file SVG hanyalah file teks. Jika kamu membukanya di editor teks, kamu tidak akan melihat kisi-kisi piksel seperti pada JPEG atau PNG; kamu akan melihat markup XML yang menjelaskan cara menggambar bentuk. Ini adalah serangkaian instruksi matematis—jalur yang ditentukan oleh kurva, lingkaran dengan titik pusat dan jari-jari, persegi panjang dengan lebar dan tinggi—yang memberi tahu browser atau editor gambar cara merender sebuah gambar. Sebuah logo sederhana mungkin hanya berukuran 2 KB teks. Keajaiban sebenarnya ada pada namanya: 'scalable' (dapat diskalakan). Karena file ini menjelaskan geometri alih-alih kisi piksel tetap, kamu bisa menggunakan file SVG yang sama untuk favicon berukuran 16×16 piksel yang mungil dan papan reklame selebar 3 meter tanpa kehilangan kualitas sedikit pun. Coba rentangkan PNG hingga 10 kali ukuran aslinya dan kamu akan mendapatkan gambar yang buram berantakan. SVG yang direntangkan hingga 10 kali ukurannya akan terlihat sangat jernih, identik dengan aslinya. SVG adalah standar terbuka dari W3C, dengan versi stabil saat ini adalah SVG 1.1 (diterbitkan pada tahun 2011) dan SVG 2 masih dalam pengembangan. Kabar baiknya adalah kamu tidak perlu khawatir tentang kompatibilitas. Setiap browser modern—Chrome, Firefox, Safari, Edge—menangani SVG secara native. Inilah mengapa para developer web telah menggunakannya untuk segala hal mulai dari ikon dan logo hingga grafik dan ilustrasi kompleks.

Perbedaan SVG dengan Format Raster (PNG, JPEG, WebP)

Gambar raster seperti PNG, JPEG, dan WebP pada dasarnya adalah kisi-kisi besar berisi kotak-kotak berwarna. File PNG berukuran 1920×1080 menyimpan nilai warna spesifik untuk setiap 2.073.600 pikselnya. File tersebut tidak memiliki konsep 'lingkaran' atau 'garis'; ia hanya tahu bahwa piksel pada koordinat (142, 87) adalah warna biru tertentu. Metode ini sempurna untuk foto, di mana kamu memiliki jutaan variasi warna halus yang tidak mungkin bisa dijelaskan secara efisien oleh rumus apa pun. Format vektor seperti SVG bekerja dari arah yang berlawanan. SVG tidak menyimpan piksel. Sebaliknya, ia menyimpan perintah seperti 'gambar lingkaran terisi pada koordinat (150, 90) dengan jari-jari 40 piksel dan warna isian #0057FF'. Browser atau penampil gambar melakukan pekerjaan menghitung piksel mana yang akan diwarnai saat gambar ditampilkan. Ini membuat file tersebut sepenuhnya independen dari resolusi. Perbedaan ini memiliki konsekuensi praktis yang besar. Untuk menggunakan logo perusahaan di berbagai media, kamu mungkin memerlukan PNG 32px untuk favicon, versi 200px untuk header situs web, dan versi 2000px untuk brosur cetak. Dengan SVG, satu file menangani semua kasus penggunaan tersebut dengan sempurna. Di sisi lain, mencoba merepresentasikan foto gunung sebagai SVG akan menjadi bencana. File tersebut akan membutuhkan jutaan elemen jalur individual untuk mendekati detailnya sekalipun, menghasilkan file raksasa yang masih terlihat lebih buruk daripada JPEG sepersepuluh ukurannya. Jangan percaya siapa pun yang mengatakan kepadamu bahwa SVG *selalu* lebih kecil. Ukuran file sepenuhnya tergantung pada kompleksitas. Ikon dua warna sederhana kemungkinan lebih kecil sebagai SVG 800 byte daripada PNG 4 KB. Namun, ilustrasi detail dengan banyak gradien dan ratusan jalur bisa dengan mudah berukuran 200 KB sebagai SVG, sementara versi PNG terkompresi hanya 80 KB. Memilih format yang tepat membutuhkan pemahaman tentang apa yang ada dalam gambar tersebut.

Isi Sebenarnya File SVG: Mengintip ke Dalamnya

Karena SVG hanyalah XML, kamu tidak memerlukan perangkat lunak khusus untuk mengintip isinya. Berikut adalah file SVG lengkap yang menggambar lingkaran merah dengan batas biru tebal: <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="50" cy="50" r="40" fill="#E63946" stroke="#1D3557" stroke-width="4"/></svg> Seluruh gambar itu hanya terdiri dari 141 karakter teks. Atribut `viewBox` menyiapkan kanvas gambar kita—sistem koordinat 100×100. Atribut `cx`, `cy`, dan `r` mendefinisikan posisi dan ukuran lingkaran. Kamu bisa menyalin dan menempelkan kode ini langsung ke file HTML, dan browser web kamu akan merender gambar dengan sempurna. Tentu saja, SVG di dunia nyata biasanya lebih kompleks. Alat desain seperti Adobe Illustrator atau Figma terkenal karena mengekspor file yang membengkak berisi metadata, tag khusus editor, dan terkadang bahkan gambar raster tersembunyi untuk efek yang tidak dapat diekspresikan sebagai vektor. SVG yang diekspor dengan pengaturan default bisa 15–20 kali lebih besar daripada file yang sama setelah dioptimalkan. Kekuatan sebenarnya dari SVG terletak pada elemen `<path>`. Atribut `d` pada path berisi bahasanya sendiri, dengan perintah untuk memindahkan pena virtual (`M`), menggambar garis (`L`), membuat kurva kompleks (`C`), dan menutup bentuk (`Z`). Satu elemen path yang panjang dapat menggambarkan bentuk apa pun yang bisa dibayangkan, mulai dari garis besar suatu negara di peta hingga bentuk huruf kustom. Beginilah cara grafik vektor mencapai kurva halus khasnya yang tidak pernah pecah, tidak peduli seberapa jauh kamu memperbesar tampilan.

Kasus Penggunaan Umum: Di Mana SVG Unggul dan Di Mana Tidak

Logo adalah contoh utama penggunaan SVG. Satu tanda merek perlu terlihat tajam pada header situs web 120px, kartu nama 0,75 inci, dan spanduk pameran dagang berukuran beberapa kaki. Menggunakan satu file SVG master jauh lebih masuk akal dan andal daripada mencoba mengelola folder file raster untuk setiap resolusi yang mungkin. Ikon adalah kasus penggunaan sempurna lainnya. Set ikon modern seperti Font Awesome didistribusikan sebagai SVG. Pada ukuran kecil 24×24 piksel, ikon SVG bisa sama jernihnya dengan PNG yang pixel-perfect, tetapi juga dapat diskalakan dengan indah ke 48px atau 96px untuk layar high-DPI pada ponsel dan laptop modern, semua dari file sumber yang sama. Berikut adalah kasus penggunaan utama yang sering dilupakan orang: visualisasi data. Ketika kamu melihat grafik interaktif di situs berita, kemungkinan besar itu adalah SVG. Pustaka seperti D3.js membangun visualisasi ini secara dinamis di browser. Setiap batang dalam grafik batang, setiap titik pada scatter plot, dan setiap wilayah pada peta adalah elemen SVG yang berbeda yang dapat diberi gaya dengan CSS dan dimanipulasi dengan JavaScript. Sekarang mari kita bicara realistis: jangan gunakan SVG untuk foto. Nada warna yang berkelanjutan dan tekstur kompleks pada foto tidak dapat dijelaskan secara efisien dengan jalur vektor. Setiap upaya untuk 'melacak' foto menjadi SVG akan menghasilkan file yang sangat besar yang terlihat seperti proyek seni vektor murahan, bukan foto. Untuk hal-hal fotografi, tetaplah menggunakan JPEG, WebP, atau AVIF. Format tersebut akan memberimu file yang jauh lebih kecil dan kualitas yang jauh lebih unggul. Juga, berhati-hatilah dengan SVG dalam alur kerja cetak profesional. Dunia cetak masih berkisar pada warna CMYK, warna spot, dan pengaturan overprint, dan format seperti PDF serta EPS memiliki dukungan yang jauh lebih dalam dan lebih andal untuk fitur-fitur ini. Ruang warna native SVG adalah RGB, dan meskipun kamu bisa menyematkan profil CMYK, dukungan di seluruh perangkat lunak percetakan paling-paling tidak konsisten.

Mengonversi ke dan dari SVG: Apa yang Berhasil dan Apa yang Tidak

Mengonversi antar format vektor biasanya adalah bagian yang mudah. Berpindah dari AI ke SVG, EPS ke SVG, atau PDF berbasis vektor ke SVG seringkali merupakan proses yang bersih karena data geometris dasarnya sudah ada. Ini sebagian besar adalah terjemahan dari bahasa satu format file ke format lainnya. CocoConvert menangani konversi vektor-ke-vektor ini dengan andal, mempertahankan jalur, warna, dan tipografi. Mengubah gambar raster seperti PNG atau JPEG menjadi SVG adalah hal yang sama sekali berbeda. Proses ini, yang disebut auto-tracing, melibatkan perangkat lunak yang menebak di mana letak bentuk-bentuk dalam gambar berbasis piksel kamu dan menggambar jalur vektor untuk mendekatinya. Siapa pun yang pernah memasukkan logo kompleks ke konverter online dan mendapatkan hasil yang berantakan tahu rasa sakitnya. Hasilnya bisa diterima untuk grafik yang sangat sederhana dan kontras tinggi, tetapi untuk hal yang kompleks, itu hanyalah perkiraan. Untuk versi vektor logo yang benar-benar bersih, tidak ada yang mengalahkan seorang desainer yang menggambarnya ulang secara manual di alat seperti Illustrator atau Inkscape. Melangkah ke arah lain—dari SVG ke format raster seperti PNG—itu mudah. Karena SVG tidak memiliki ukuran piksel yang melekat, kamu hanya perlu memberi tahu konverter seberapa besar PNG akhir yang akan dibuat. CocoConvert memungkinkan kamu menentukan lebar target, dan tinggi akan dihitung secara otomatis untuk mempertahankan rasio aspek. Untuk penggunaan web, mengekspor pada ukuran 1× dan 2× (misalnya, lebar 400px dan 800px) adalah praktik umum. Untuk pencetakan 300 DPI berkualitas tinggi, ingatlah bahwa gambar selebar 4 inci perlu diekspor dengan lebar 1200 piksel. Satu konversi terakhir yang sering membuat orang bingung adalah SVG ke PDF. Karena keduanya bisa berupa format vektor, konversi biasanya lossless untuk karya seni itu sendiri. Masalahnya adalah font. Jika SVG kamu menggunakan font yang terinstal di sistem kamu tetapi tidak menyematkannya, PDF yang dihasilkan mungkin menggantinya dengan font lain, merusak desain kamu. Saran profesionalnya adalah mengubah semua teks menjadi outline di perangkat lunak desain kamu *sebelum* kamu mengekspor SVG.

SVG dalam Pengembangan Web: Menyematkan, Memberi Gaya, dan Menganimasi

Kamu memiliki beberapa cara untuk menempatkan SVG ke halaman web, dan metode yang kamu pilih memiliki konsekuensi nyata. Yang paling sederhana adalah tag `<img>`: `<img src="logo.svg" alt="Logo perusahaan">`. Ini mudah, tetapi ini adalah kotak hitam. Kamu tidak bisa menjangkau ke dalamnya dengan CSS untuk mengubah warna bentuk, juga tidak bisa menganimasikannya dengan JavaScript. Untuk mendapatkan kontrol penuh, kamu harus menyematkan SVG langsung ke dalam HTML kamu. Markup SVG menjadi bagian dari DOM, sama seperti `<div>` dan `<p>` kamu. Di sinilah SVG benar-benar bersinar di web. Kamu bisa menargetkan elemen apa pun di dalam SVG dengan selector CSS untuk mengubah isian saat hover, atau menggunakan JavaScript dan Web Animations API untuk membuat interaksi kompleks. Beginilah cara framework front-end modern menggunakan SVG untuk ikon—mereka dirender secara inline sebagai komponen. Menggunakan `background-image: url('icon.svg')` di CSS kamu adalah pilihan ketiga, bagus untuk pola berulang atau elemen dekoratif. Namun, seperti tag `<img>`, ini mengisolasi SVG, mencegah styling internal apa pun. Kamu bisa mengatasi ini dengan membuat dan menautkan ke file SVG yang berbeda untuk status yang berbeda, tetapi ini bukan solusi yang sangat elegan. Animasi adalah di mana SVG menjadi sangat menyenangkan. Kamu bisa menerapkan animasi dan transisi CSS standar ke elemen apa pun dalam SVG inline. Trik populer untuk efek 'menggambar' menggunakan properti CSS `stroke-dasharray` dan `stroke-dashoffset` untuk membuat sebuah path seolah-olah menggambar dirinya sendiri di layar. Ada juga sintaks animasi SVG native yang disebut SMIL, tetapi dengan riwayat dukungannya yang tidak merata (tidak pernah berfungsi di Internet Explorer), sebagian besar developer saat ini tetap menggunakan CSS atau JavaScript. Akhirnya, sedikit tentang performa. Jangan biarkan kemurnian vektor menurunkan kecepatan situs kamu. SVG yang sangat besar dan kompleks dengan ribuan path bisa lambat untuk dirender oleh browser. Jika kamu memiliki ilustrasi rumit yang digunakan sebagai latar belakang, mungkin lebih baik kamu merasterkannya ke file WebP yang dioptimalkan. Kehilangan sedikit dalam skalabilitas itu sepadan jika menghemat 300ms waktu rendering pada perangkat seluler.

Mengoptimalkan File SVG: Mengurangi Ukuran Tanpa Kehilangan Kualitas

Jangan pernah percaya file SVG yang langsung keluar dari alat desain. File tersebut hampir selalu membengkak dengan data yang tidak perlu. Illustrator dan editor lain menambahkan banyak metadata XML, atribut khusus editor, lapisan tersembunyi, dan definisi yang tidak terpakai. Tidak jarang melihat file logo 18 KB menyusut menjadi 3 KB setelah optimasi—pengurangan 80% tanpa perubahan visual sama sekali. Alat standar industri untuk pekerjaan ini adalah SVGO (SVG Optimizer). Meskipun ini adalah utilitas baris perintah, cara termudah menggunakannya adalah melalui GUI berbasis web, dan yang terbaik adalah SVGOMG oleh Jake Archibald. Kamu bisa menempelkan kode SVG kamu atau mengunggah file dan secara visual mengaktifkan/menonaktifkan pengaturan optimasi yang berbeda untuk melihat efeknya pada ukuran file dan rendering. Keuntungan terbesar biasanya berasal dari penghapusan metadata, penggabungan grup, penghapusan elemen tersembunyi, dan konversi bentuk sederhana seperti `<rect>` menjadi elemen `<path>` yang lebih efisien. Perhatikan secara khusus slider 'Precision', yang mengontrol jumlah desimal dalam koordinat. Menurunkannya dari 6 menjadi 2 seringkali dapat mengurangi ukuran file sebesar 20-30% tanpa perbedaan yang terlihat. Jika kamu menyematkan SVG langsung ke HTML kamu untuk ikon, kamu bisa lebih agresif lagi. Atribut `xmlns` tidak diperlukan untuk SVG inline di HTML5, dan kamu bahkan bisa menghapus `viewBox` jika kamu tahu ikon akan selalu memiliki ukuran tetap (meskipun ini kurang umum dan bisa berisiko). CocoConvert memang menerapkan beberapa optimasi dasar secara otomatis, seperti menghapus metadata dan mengurangi presisi koordinat. Ini memberimu titik awal yang baik. Namun, untuk penggunaan web produksi di mana setiap kilobyte sangat berarti, kami sangat merekomendasikan untuk menjalankan file kamu melalui SVGOMG. Alat otomatis harus konservatif, tetapi manusia yang dapat memeriksa hasilnya dapat dengan aman mendorong optimasi lebih jauh untuk mendapatkan file sekecil mungkin.