• Tidak ada hasil yang ditemukan

TINJAUAN PUSTAKA

E. Scalable Vector Graphics (SVG)

SVG (World Wide Web Consortium (1) 2006) adalah sebuah bahasa pemrograman berbasis XML untuk mendefinisikan grafis dua dimensi yang kemudian digunakan dalam sebuah halaman Web dan aplikasi-aplikasi lain yang menggunakan XML. SVG memungkinkan pembuatan tiga tipe objek grafis:

1. path (berupa garis dan kurva),

2. gambar, dan

3. teks.

Objek-objek grafis tersebut kemudian dapat dikelompokkan, dimodifikasi, ditransformasi dan digabungkan dengan objek-objek yang telah di bentuk sebelumnya (World Wide Web Consortium (1) 2006). SVG dapat mengkreasikan sebuah grafik yang terdiri dari banyak vektor yang berbeda-beda. Sebuah vektor pada dasarnya adalah garis yang menghubungkan dua titik.

v

i j

Gambar 3 Vektor vr yang menghubungkan titik idan j

Kelebihan SVG yang paling utama adalah gambar tidak akan kehilangan

kualitasnya apabila diperbesar atau diperkecil (scalable), karena dibuat

berdasarkan metode vektor (vector) bukan pixel (seperti format grafik pada

umumnya, GIF, JPG dan PNG). Sehingga memungkinkan pengembang Web dan

12

Gambar 4 Kualitas yang hilang pada file dengan format JPG apabila dilakukan perbesaran (zooming in)

Gambar 5 Kualitas gambar file SVG sama sekali tidak berkurang saat di lakukan perbesaran (zooming in)

Karena SVG terbentuk dari kumpulan perintah-perintah (script) XML yang berbasis teks dan bukan binary code, SVG memiliki keunggulan dalam kecepatan proses download karena kecilnya kapasitas file. Selain itu script SVG dapat dibuat, diedit, dan dimanipulasi cukup dengan menggunakan program-program teks editor sederhana seperti notepad di Microsoft Windows. Bahkan, modifikasi terhadap tampilan juga dapat dilakukan saat aplikasi dijalankan. Hal ini sebenarnya karena script SVG yang dibuat telah memiliki beberapa script yang akan berjalan saat menerima perintah (trigger).

Sementara itu, kekurangan SVG terletak pada belum semua Internet browser dapat mengenali file SVG. Untuk itu harus diinstal terlebih dulu sebuah

plug-in agar sistem dapat mengenali file SVG. Plug-in ini sering disebut sebagai SVG-Viewer. SVG-Viewer teraktual dikembangkan oleh ADOBE yaitu Adobe SVG Viewer yang saat ini telah mencapai versi ke 3.03 (Adobe Systems, 2003).

Selain itu, SVG masih kurang mendukung aplikasi multimedia, salah satinya adalah tidak mampu untuk menampilkan suara (dalam format apapun) dan video. Namun SVG memiliki kemampuan untuk melakukan integrasi dengan aplikasi

lain yang dikenal dengan SMIL (Synchronized Multimedia Integration

Language).

Tabel 2 Performa beberapa SVG viewer (World Wide Web Consortium (4)

2006).

SVG Viewers Hasil

Proses ASV6 ASV3 BATIK CSV Amaya-

81 Mozilla SVG Pass 173 168 150 116 51 48 Fail 6 10 30 53 104 126 Partial 2 3 1 12 26 7 Unknown 0 0 0 0 0 0 Total 181 181 181 181 181 181 Keterangan

ASV6 : Adobe SVG Viewer, version 6 (beta)

ASV3 : Adobe SVG Viewer version 3

Batik : Apache Batik Squiggle browser (JAVA platform)

CSV : Corel SVG viewer, version 2

Amaya-81 : Amaya Editor/browser version 8.1

Mozilla SVG : Mozilla SVG project

Tabel 2 menunjukkan performa dari beberapa SVG-viewer yang

dikembangkan oleh beberapa vendor. Dari 181 file SVG yang di akses, masing- masing viewer menunjukkan banyaknya file yang berhasil dijalankan (Pass), yang gagal dijalankan (Fail) dan yang berhasil dijalankan tetapi tidak sesuai dengan bentuk yang sebenarnya (partial).

14

Syntax SVG

Sebelum kita memulai ‘bermain’ dengan kode SVG, sangat penting sekali untuk mengetahui ‘aturan mainnya’ (syntax) terlebih dahulu.

- SVG sangat memperhatikan sistem penulisan. Semua tag, atribut dan nilai

atribut ditulis dengan huruf kecil

- Semua tag harus ditutup. Untuk tag, seperti <text> akan ditutup dengan tag

pasangannya </text>.

- Komentar memiliki kode yang sama seperti HTML yaitu diawali dengan <!--

dan diakhiri dengan -->

- Untuk memposisikan sebuah elemen digunakan atribut x dan y, bukan top atau

left seperti HTML

- Semua atribut dimulai dan diakhiri dengan tanda kutip " ... "

Contoh kode (Werld Wide Web Consortium(1) 2006)

<?XML version="1.0"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"

"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> <svg XMLns="http://www.w3.org/2000/svg"> <style type="text/css"> circle:hover {fill-opacity:0.9;} </style> <g style="fill-opacity:0.7;">

<circle cx="6.5cm" cy="2cm" r="100" style="fill:red; stroke:black; stroke-width:0.1cm"

transform="translate(0,50)" />

<circle cx="6.5cm" cy="2cm" r="100" style="fill:blue; stroke:black; stroke-width:0.1cm"

transform="translate(70,150)" />

<circle cx="6.5cm" cy="2cm" r="100" style="fill:green; stroke:black; stroke-width:0.1cm" transform="translate(- 70,150)"/>

</g> </svg>

Jika script di atas disimpan (save) dengan diberi nama file circle.svg kemudian dibuka pada jendela browser Microsoft Internet Explorer, akan diperoleh tampilan seperti Gambar 4.

Gambar 6 Tampilan dari scriptcircle.svg yang dibuka pada internet explorer

Saat ini SVG masih terus dalam pengembangan. Beberapa pihak yang telah menyatakan kesediaannya dalam mengembangkan format SVG datang dari

pimpinan industri teknologi informasi seperti Adobe Systems, AOL/Netscape,

Apple, Autodesk, Canon, Corel, CSIRO, Eastman Kodak, Excosoft, Hewlett Packard, IBM, ILOG, IntraNet Systems, Micromedia, Microsoft, OASIS, Opera, Oxford Brookes University, Quark, Sun Microsystems, dan Xerox serta beberapa pihak lain yang kemudian juga menyatakan dukungannya terhadap pengembangan SVG (Peng 2000).

Filter Effects Pada SVG

Filter Effects adalah kemampuan untuk melakukan serangkaian operasi grafis terhadap objek sumber yang akan menghasilkan bentuk-bentuk grafis yang

telah termodifikasi. Sejauh ini SVG telah mendukung enam belas jenis filter

seperti: Blend, ColorMatrix, ComponentTransfer, Composite, ConvolveMatrix,

DiffuseLighting, DisplacementMap, Flood, GaussianBlur, Image, Merge, Morphology, Offset, SpecularLighting, Tile, dan Turbulance (World Wide Web Consortium (1), 2006).

16

Interactivity pada SVG

Gambar-gambar yang dibuat dengan SVG dapat menjadi interaktif dan dinamis (World Wide Web Consortium (1), 2006). Sebagai contoh, menggerakkan

pointer mouse di atas sebuah elemen SVG, melakukan penekanan tombol pada

mouse (klik tunggal maupun klik ganda) terhadap elemen SVG, melakukan

penekanan tombol pada keyboard), akan menghasilkan sebuah umpan balik

(feedback). Animasi yang diinginkan juga dapat diatur untuk terjadi satu kali saja saat pertama kali sebuah elemen SVG ditampilkan ataupun dilakukan berulang

kali dengan menggunakan fasilitas penghitungan waktu (timer). Animasi dapat

dipicu baik secara deklaratif (dengan cara menggabungkan elemen-elemen animasi SVG dalam sebuah konten SVG) atau melalui pembuatan sebuah script.

Tabel 3 Beberapa event yang tesedia dalam SVG(World Wide Web Consortium

(1) 2006)

Nama Event Deskripsi Penulisan

Activate Dipicu saat sebuah elemen diaktifkan, sebagai

contoh, melalui penekanan tombol mouse atau

penekanan tombol pada keyboard.

Onactivate

Click Dipicu saat mouse ditekan saat berada di atas

sebuah elemen. Sebuah click didefinisikan

sebagai gabungan antara mousedown dan

mouseup pada lokasi yang sama secara bersamaan. Urutan dari event ini adalah:

mousedown, mouseup, click.

Onclick

Mousedown Dipicu saat mouse ditekan saat berada di atas sebuah elemen

onmousedown Mouseup Dipicu saat penekanan tombol mouse di lepas

saat berada diatas sebuah elemen

onmouseup Mouseover Dipicu saat penunjuk mouse dipindahkan tepat

diatas sebuah elemen

onmouseover Mousemove Dipicu saat penunjuk mouse digerakkan saat

masih berada tepat diatas sebuah elemen

onmousemove Mouseout Dipicu saat penunjuk mouse digerakkan

meninggalkan sebuah elemen

onmouseout beginEvent Dimulainya animasi dari sebuah elemen onbegin endEvent Dipicu saat animasi dari sebuah elemen

berakhir

onend repeatEvent Dipicu saat animasi dari sebuah elemen diulang onrepeat

Animasi Pada SVG

Dikarenakan Web adalah sebuah media yang dinamis, SVG sangat mendukung kemungkinan untuk melakukan perubahan vektor grafik setiap saat.

Elemen-elemen animasi SVG mulanya dikembangkan oleh W3C Synchronized

Multimedia (SYMM) Working Group bekerjasama dengan para pengembang dari

Synchronized Multimedia Integration Language (SMIL) 1.0 Specification (World Wide Web Consortium (6) 2006). Group pengembang SYMM, bekerjasama dengan group pengembang SVG, mengembangkan animasi yang dapat dilakukan

oleh SMIL yang kemudian dikenal dengan SMIL Animation (World Wide Web

Consortium (1) 2006), yang merepresentasikan tujuan utama dari sekumpulan fitur animasi pada XML.

SVG adalah bahasa pengantar untuk mengaktifkan SMIL Animation.

Terkecuali untuk aturan-aturan spesifik dari SVG yang disebutkan dalam spesifikasinya, definisi normatif dari elemen-elemen animasi dan atribut pada

SVG adalah menggunakan spesifikasi pada SMIL Animation (World Wide Web

Consortium (1) 2006).

Berikut beberapa elemen animasi yang dapat digunakan dalam SVG: 1. <animate> : untuk memulai penganimasian.

2. <animateMotion> : untuk animasi gerakan sepanjang sebuah path. 3. <animateColor> : untuk animasi perubahan warna.

4. <animateTransform> : untuk animasi sebuah transformasi.

5. <mpath> : untuk referensi sebuah path dari gerakan <animateMotion>.

Berikut ini contoh script SVG yang akan melakukan sebuah animasi sederhana:

<?XML version="1.0" standalone="no"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010719//EN"

"http://www.w3.org/TR/2001/PR-SVG-20010719/DTD/svg10.dtd"> <svg width="5cm" height="3cm" viewBox="0 0 500 300">

<desc>Contoh Animasi </desc>

<rect x="1" y="1" width="498" height="298" fill="none" stroke="blue" stroke-width="2" />

<!-- Membuat jalur pergerakan berwarna biru, beserta tiga buah lingkaran kecil pada awal, tengah dan akhir jalur. -->

<path d="M100,250 C 100,50 400,50 400,250"

fill="none" stroke="blue" stroke-width="7.06" /> <circle cx="100" cy="250" r="17.64" fill="blue" />

18

<circle cx="250" cy="100" r="17.64" fill="blue" /> <circle cx="400" cy="250" r="17.64" fill="blue" />

<!-- Berikut adalah sebuah segitiga yang akan bergerak sepanjang jalur -->

<path d="M-25,-12.5 L25,-12.5 L 0,-87.5 z"

fill="yellow" stroke="red" stroke-width="7.06" > <!-- Mendefinisikan animasi pergerakan -->

<animateMotion dur="6s" repeatCount="indefinite"

path="M100,250 C 100,50 400,50 400,250" rotate="auto" /> </path>

</svg>

Jika script di atas dijalankan pada sebuah browser yang telah terpasang plugins

SVG Viewer, akan tampak hasil sebagai berikut :

a. b. c.

Gambar 7 Animasi pergerakan segitiga sepanjang jalur (a) pada detik ke nol, (b) pada detik ketiga, (c) pada detik keenam

Dokumen terkait