BAB 2
LANDASAN TEORI
2.1 Sejarah Watermarking
Watermarking sudah ada sejak 700 tahun yang lalu. Pada akhir abad 13, pabrik kertas di Fabriano, Italia, membuat kertas yang diberi watermark atau tanda air dengan cara menekan bentuk cetakan gambar atau tulisan pada kertas yang baru setengah jadi. Ketika kertas dikeringkan terbentuklah suatu kertas yang berwatermark. Kertas ini biasa digunakan oleh seniman atau sastrawan untuk menulis karya mereka. Kertas yang sudah dibubuhi tanda air tersebut sekaligus dijadikan identifikasi bahwa karya seni diatasnya adalah milik mereka.
Ide Watermarking pada data digital (sehingga disebut digital Watermarking) dikembangkan di Jepang pada tahun 1900 dan di Swiss tahun 1993. Digital
Universitas Sumatera Utara
Watermarking semakin berkembang seiring dengan semakin meluasnya penggunaan internet.
2.1.1 Pengertian Watermarking
Watermarking merupakan suatu bentuk dari Steganography, yaitu ilmu yang mempelajari bagaimana menyembunyikan suatu data pada data yang lain. Watermarking (tanda air) ini agak berbeda dengan tanda air pada uang kertas. Tanda air pada uang kertas masih terlihat oleh indera manusia (dalam posisi kertas tertentu), tetapi Watermarking pada media digital tak akan dirasakan kehadirannya oleh manusia tanpa alat bantu mesin pengolah digital seperti komputer .
Watermarking ini memanfaatkan kekurangan-kekurangan sistem indera manusia seperti mata dan telinga. Dengan adanya kekurangan inilah, metode Watermarking ini dapat diterapkan pada berbagai data digital. Jadi Watermarking merupakan suatu cara untuk menyembunyikan atau menanam suatu data/informasi tertentu ke dalam suatu data digital lainnya, tetapi tidak diketahui kehadirannya oleh indera manusia.
Universitas Sumatera Utara
2.1.2 Aplikasi Watermarking
Watermarking sebagai suatu teknik penyembunyian data pada data digital lain dapat dimanfaatkan untuk berbagai tujuan seperti: a. Tamper-proofing : Watermarking yang digunakan sebagai alat untuk mengidentifikasi atau alat indikator yang menunjukkan data digital (host) telah mengalami perubahan dari aslinya. b. Feature location : Menggunakan metode Watermarking sebagai alat untuk identfikasi isi dari data digital pada lokasi-lokasi tertentu, seperti contohnya penanaman objek tertentu dari beberapa objek yang lain pada suatu citra digital. c. Annotation/caption : Watermarking dapat digunakan sebagai keterangan tentang data digital itu sendiri. d. Copyright-Labeling : Watermarking dapat digunakan sebagai metode untuk penyembunyian label hak cipta pada data digital sebagai bukti otentik kepemilikan karya digital tersebut .
Universitas Sumatera Utara
2.2 Digital Watermarking
Istilah watermarking ini muncul dari salah satu cabang ilmu yang disebut dengan steganography. Stegranography merupakan suatu cabang ilmu yang mempelajari tentang bagaimana menyembunyikan suatu informasi “rahasia” di dalam suatu informasi lainnya. Perbedaan stegranograpy dengan cryptography terletak pada bagaimana proses penyembunyian data dan hasil akhir dari proses tersebut. Cryptography melakukan proses pengacakan data aslinya sehingga menghasilkan data terenkripsi yang benar- benar acak / seolah-olah berantakan (tetapi dapat dikembalikan ke bentuk semula) dan berbeda dengan aslinya, sedangkan stegranography menyembunyikan dalam data lain yang akan ditumpanginya tanpa mengubah data yang ditumpanginya tersebut sehingga data yang ditumpanginya sebelum dan setelah proses penyembunyian hampir sama. Dengan kata lain keluaran stegranography ini memiliki bentuk persepsi yang sama dengan bentuk aslinya, tentunya persepsi disini oleh indera manusia, tetapi tidak oleh komputer atau perangkat pengolah digital lainnya.
Universitas Sumatera Utara
Watermarking (tanda air) dapat diartikan sebagai suatu teknik penyembunyian data atau informasi “rahasia” kedalam suatu data lainnya untuk “ditumpangi” (kadang disebut dengan host data), tetapi orang lain tidak menyadari kehadiran adanya data tambahan pada data host-nya. Jadi seolah-olah tidak ada perbedaan antara data host sebelum dan sesudah proses watermarking.
Watermarking ini memanfaatkan kekurangan-kekurangan sistem indera manusia seperti mata dan telinga. Jadi watermaking merupakan suatu cara untuk penyembunyian atau penanaman data/informasi tertentu (baik hanya berupa catatan umum maupun rahasia) kedalam suatu data digital lainnya, tetapi tidak diketahui kehadirannya oleh indera manusia (indera penglihatan atau indera pendengaran), dan mampu menghadapi proses-proses pengolahan sinyal digital yang tidak merusak kualitas data yang ter-watermark sampai pada tahap tertentu.
Disamping itu data yang ter-watermark harus tahan (robust) terhadap serangan-serangan baik secara sengaja maupun tidak sengaja untuk menghilangkan data watermark yang terdapat didalamnya.
Universitas Sumatera Utara
Gambar 2.1 : Steganography dan Cryptogrhapy
Mutu dari teknik watermarking meliputi beberapa parameterparameter utama yang berikut ini [2]: a. Fidelity : Perubahan yang disebabkan oleh tanda (mark) semestinya tidak mempengaruhi nilai isi, idealnya tanda harusnya tidak dapat dilihat, sehingga tidak dapat dibedakan antara data yang ter-watermark dan data yang asli. Salah satu trade-off antara karakteristik watermarking yang sangat kelihatan adalah antara robustness dengan fidelity. Dalam beberapa literatur fidelity kadang disebut dengan invisibility untuk jenis data citra dan video. Yang dimaksud dengan fidelity disini adalah derajat degradasi host data sesudah diberi watermark dibandingkan dengan sebelum diberi watermark. Biasanya bila robustness dari watermark tinggi maka memiliki fidelity yang rendah, sebaliknya robustness yang rendah dapat membuat fidelity yang tinggi. Jadi
Universitas Sumatera Utara
sebaiknya dipilih trade-off yang sesuai, sehingga keduanya dapat tercapai sesuai dengan tujuan aplikasi. Untuk host data yang berkualitas tinggi maka fidelity dituntut setinggi mungkin sehingga tidak merusak data aslinya, sedangkan host data yang memiliki noise (kualitas kurang) maka fidelitynya bisa rendah. b. Robustness : watermark di dalam host data harus tahan terhadap beberapa operasi pemrosesan digital yang umum seperti pengkonversian dari digital ke analog dan dari analog ke digital, dan manipulasi data. Pada robust watermark, data disisipkan dengan sangat kuat, sehingga jika ada yang berusaha menghapusnya maka gambar atau suara yang disisipi akan ikut rusak dan tidak punya nilai komersial lagi. c. Security
:
Watermarking
harus
tahan
terhadap
usaha
segaja
memindahkan/mencopy watermark dari satu multimedia data ke multimedia data lainnya. Pada ketiga kriteria diatas, fidelity merupakan kriteria paling tinggi.
2.3 Struktur dari Watermarking
Universitas Sumatera Utara
Penerapan watermarking pada data digital seperti text, citra, video dan audio, dilakukan langsung pada jenis data digital tersebut (misalnya untuk citra dan video pada domain spasial, dan audio pada domain waktu) atau terlebih dahulu dilakukan tranformasi ke dalam domain yang lain.
Berbagai transformasi yang dikenal dalam pemrosesan sinyal digital seperti: FFT (Fast Fourier Transform), DCT (Discreate Cosine Transform), DWT (Discreate Wavelet Transform), dan sebagainya.
Penerapan watermaking pada berbagai domain dengan berbagai transform turut mempengaruhi berbagai parameter penting dalam watermarking. Terdapat 3 sub-bagian watermarking yang membentuknya yaitu: 1. Penghasil Label Watermark 2. Proses penyembunyian Label 3. Menghasilkan kembali Label Watermark dari data yang terwatermark.
Universitas Sumatera Utara
Gambar 2.2 : Proses watermark dan menghasilkan kembali label watermark
Label watermark adalah sesuatu data/informasi yang akan kita masukkan ke dalam data digital yang ingin di-watermark. Ada 2 jenis label yang dapat digunakan : a. Text biasa : Label watermark dari text biasanya menggunakan nilai-nilai ASCII dari masing-masing karakter dalam text yang kemudian dipecahkan atas bit-per-bit, kelemahan dari label ini adalah, kesalahan pada satu bit saja akan menghasilkan hasil yang berbeda dengan text sebenarnya. b. Logo atau Citra atau Suara : Berbeda dengan text, kesalahan pada beberapa bit masih dapat memberikan persepsi yang sama dengan aslinya oleh pendengaran maupun penglihatan kita, tetapi kerugiannya adalah jumlah data yang cukup besar. Key pada gambar 2 diatas digunakan untuk mencegah penghapusan secara langsung watermark oleh pihak tak bertanggung jawab,
Universitas Sumatera Utara
dengan menggunakan metoda enkripsi yang sudah ada. Sedangkan ketahanan terhadap proses-proses pengolahan lainnya, itu tergantung pada metoda watermarking yang digunakan [2]. Tetapi dari berbagai penelitian yang sudah dilakukan belum ada suatu metoda watermarking ideal yang bisa tahan terhadap semua proses pengolahan digital yang mungkin. Biasanya masingmasing penelitian menfokuskan pada hal-hal tertentu yang dianggap penting.
2.4 Watermarking Pada Citra Digital
Terdapat banyak metoda watermarking untuk citra digital yang sudah diteliti. Teknik watermarking pada image digital dapat diklasifikasikan dalam dua kategori, yaitu teknik domain spatial (spatial watermark) dan teknik domain frekuensi (spectral watermark).
Pada watermarking untuk citra yang dilakukan pada domain spatial, penyisipan dilakukan dengan sedikit mengubah nilai pixel- pixel tertentu
Universitas Sumatera Utara
Gambar 2.3 : Proses watermarking pada citra
Sedangkan jika menggunakan domain frekuensi, maka citra tersebut diubah dahulu ke dalam domain transform (biasanya dengan DFT atau DCT) kemudian penyisipan data dilakukan dengan sedikit mengubah nilai koefisien tertentu yang dipilih.
2.4.1 LSB (Least Significant Bit)
Universitas Sumatera Utara
Metoda ini menggunakan teknik domain spatial dan merupakan metoda yang paling sederhana tetapi yang paling tidak tahan terhadap segala proses yang dapat mengubah nilai-nilai intensitas pada citra. Metoda ini akan mengubah nilai LSB (Least Significant Bit) komponen luminansi atau warna menjadi bit yang bersesuai dengan bit label yang akan disembunyikan. Memang metoda ini akan menghasilkan citra rekonstruksi yang sangat mirip dengan aslinya, karena hanya mengubah nilai bit terakhir dari data. Tetapi sayang tidak tahan terhadap proses-proses yang dapat mengubah data citra terutama kompresi JPEG. Metoda ini paling mudah diserang, karena bila orang lain tahu maka tinggal membalikkan nilai dari LSB-nya maka data label akan hilang seluruhnya.
Universitas Sumatera Utara
Gambar 2.4 : Blok Diagram dari Sistem Watermarking Penyembunyian data dilakukan dengan mengganti bit-bit data di dalam segmen citra dengan bit-bit data rahasia. Salah satu metode penyembunyian data yang sederhana adalah LSB Modification.
Perhatikan contoh sebuah susunan bit pada sebuah byte:
11010010 LSB = Least Significant Bit MSB = Most Siginificant Bit MSB
LSB
Universitas Sumatera Utara
Bit yang cocok untuk diganti adalah bit LSB, sebab perubahan tersebut hanya mengubah nilai byte satu lebih tinggi atau satu lebih rendah dari nilai sebelumnya. Misalkan byte tersebut menyatakan warna keabuan tertentu, maka perubahan satu bit LSB tidak mengubah warna keabuan tersebut secara berarti. Lagi pula, mata manusia tidak dapat membedakan perubahan yang kecil.
Misalkan segmen data citra sebelum perubahan:
00110011101000101110001001101111
Segmen data citra setelah ‘0 1 1 1 ‘ disembunyikan:
00110010101000111110001101101111
Untuk memperkuat teknik penyembunyian data, bit-bit data rahasia tidak digunakan mengganti byte-byte yang berurutan, namun dipilih susunan byte secara acak. Misalnya jika terdapat 50 byte dan 6 bit data yang akan disembunyikan, maka maka byte yang diganti bit LSB-nya dipilih secara acak, misalkan byte nomor 36, 5, 21, 10, 18, 49.
Universitas Sumatera Utara
Bilangan
acak
dibangkitkan
dengan
pseudo-random-number-generator
(PRNG) kriptografi. PRNG kriptografi sebenarnya adalah algoritma kriptografi yang digunakan untuk enkripsi. PRNG dibangun dengan algoritma DES (Data Encryption Standard), algoritma hash MD5, dan mode kriptografi CFB (Chiper-Feedback Mode). Tujuan dari enkripsi adalah menghasilkan sekumpulan bilangan acak yang sama untuk setiap kunci enkripsi yang sama. Bilangan acak dihasilkan dengan cara memilih bit-bit dari sebuah blok data hasil enkripsi
Teknik penyembunyian data untuk citra 8-bit berbeda dengan citra 24-bit. Seperti diketahui berkas citra bitmap terdiri atas bagian header, palet RGB, dan data bitmap.
2.5 Bahasa Pemrograman Matlab
MATLAB adalah sebuah bahasa dengan (high-performance) kinerja tinggi untuk komputasi masalah teknik. Matlab mengintegrasikan komputasi, visualisasi, dan pemrograman dalan suatu model yang sangat mudah untuk pakai dimana masalahmasalah dan penyelesaiannya diekspresikan dalam notasi matematika yang familiar.
Universitas Sumatera Utara
Penggunaan Matlab meliputi bidang-bidang :
Matematika dan Komputasi
Pembentukan Algoritma
Akusisi Data
Pemodelan, simulasi, dan pembuatan prototype
Analisa data, explorasi, dan visualisasi
Grafik Keilmuan dan bidang Rekayasa
MATLAB merupakan singkatan suatu system interaktif yang memiliki elemen data dalam suatu array sehingga tidak lagi kita dipusingkan dengan masalah dimensi. Hal ini memungkinkan kita untuk memecahkan banyak masalah teknis yang terkait dengan komputasi, khususnya yang berhubungan dengan matrix dan formulasi vector, yang mana masalah tersebut merupakan momok apabila kita harus menyelesaikannya dengan menggunakan bahasa level rendah seperti Pascall, C dan Basic.
Nama MATLAB merupakan singkatan dari matrix laboratory. MATLAB pada awalnya ditulis untuk memudahkan akses perangkat lunak matrik yang telah dibentuk oleh LINPACK dan EISPACK. Saat ini perangkat MATLAB telah menggabung
Universitas Sumatera Utara
dengan LAPACK dan BLAS library, yang merupakan satu kesatuan dari sebuah seni tersendiri dalam perangkat lunak untuk komputasi matrix.
Dalam lingkungan perguruan tinggi teknik, Matlab merupakan perangkat standar untuk memperkenalkan dan mengembangkan penyajian materi matematika, rekayasa dan kelimuan. Di industri, MATLAB merupakan perangkat pilihan untuk penelitian dengan produktifitas yang tinggi, pengembangan dan analisanya.
Fitur-fitur MATLAB sudah banyak dikembangkan, dan lebih kita kenal dengan nama toolbox. Sangat penting bagi seorang pengguna Matlab, toolbox mana yang mendukung untuk learn dan apply technologi yang sedang dipelajarinya. Toolbox-toolbox ini merupakan kumpulan dari fungsi-fungsi MATLAB (M-files) yang telah dikembangkan ke suatu lingkungan kerja MATLAB untuk memecahkan masalah dalam kelas particular. Area-area yang sudah bias dipecahkan dengan toolbox saat ini meliputi pengolahan sinyal, system control, neural networks, fuzzy logic, wavelets, dan lain-lain.
2.5.1 Kelengkapan pada Sistem MATLAB
Universitas Sumatera Utara
Sebagai sebuah system, MATLAB tersusun dari 5 bagian utama : 1. Development Environmet. Merupakan sekumpulan perangkat dan fasilitas yang membantu kita untuk menggunakan fungsi-fungsi dan file-file MATLAB. Beberapa perangkat ini merupakan sebuah graphical user interfaces (GUI). Termasuk didalamnya adalah MATLAB desktop dan Command Window, command history, sebuah editor dan debugger dan browsers untuk melihat help, workspace, files, dan search path. 2. MATLAB Mathematical Function Library. Merupakan sekumpulan algortima komputasi mulai dari fungsi-fungsi dasar seperti: sum, sin, cos, dan complex arithmetic, sampai dengan fungsi-fungsi yang lebih kompek seperti matrix inverse, matrix eigenvalues, Bessel functions, dan fast Fourier transforms. 3. MATLAB Language. Merupakan suatu high-level matrix/array language dengan control flow statements, function, data structures, input/output, dan fitur-fitur object-oriented programming. Ini memungkinkan bagi kita untuk melakukan kedua hal baik “pemrograman dalam lingkup yang lebih besar” untuk memperoleh hasil-hasil dan aplikasi yang komplek. 4. Graphics. MATLAB memiliki fasilitas untuk menampilkan vector dan matrices sebagai suatu grafik. Didalamnya melibatkan high-level functions
Universitas Sumatera Utara
(fungsi-fungsi level tinggi) untuk visualisai data dua dikensi dan data tiga dimensi, image processing, animation, dan presentation graphics. Ini juga melibatkan fungsi level rendah yang memungkinkan bagi kita untuk membiasakan diri untuk memunculkan grafik dari bentuk yang sederhana sampai dengan tingkat graphical user interfaces pada aplikasi MATLAB. 5. MATLAB Application Program Interface (API). Merupakan suatu library yang memungkinkan program yang telah ditulis dalam bahasa C dan Fortran mampu berinteraksi dengan MATLAB. Ini melibatkan fasilitas untuk pemanggilan routines dari MATLAB (dynamic linking), pemanggilan MATLAB sebagai sebuah computational engine, dan untuk membaca dan menuliskan MAT-files.
2.5.2 Memulai Matlab
Perhatikan Desktop pada layar monitor PC, mulai MATLAB dengan melakukan double-clicking pada shortcut icon MATLAB.
Selanjutnya kita akan mendaptkan tampilan seperti Gambar berikut ini.
Universitas Sumatera Utara
Gambar 2.5 : Memulai Program Matlab
Sedangkan untuk mengakhiri sebuah sesi MATLAB, kita bisa melakukan dengan dua cara, pertama pilih File -> Exit MATLAB dalam window utama MATLAB yang sedang aktif, atau cara kedua lebih mudah yaitu cukup ketikkan type quit dalam Command Window.
2.5.3 Menentukan Direktori Tempat Bekerja
Kita dapat bekerja dengan MATLAB secara default pada directory Work ada di dalam Folder MATLAB. Tetapi akan lebih bagus dan rapi jika kita membuat satu directory
Universitas Sumatera Utara
khusus dengan nama yang sudah kita khususkan, “IQBAL” atau nama yang lain yang mudah untuk diingat.
Hal ini akan lebih baik bagi kita untuk membiasakan bekerja
secara rapi dan tidak mencampur program yang kita buat dengan program yang lain. Untuk itu arahkan pointer mouse pada kotak bertanda yang ada di sebelah kanan tanda panah ke bawah (yang menunjukkan folder yang sedang aktif). Pilih new directory, selanjutnya ketikkan “IQBAL” dan di ikuti dengan click OK.
Gambar 2.6 : Jendela Browse Folder
Memulai Perintah Sederhana : Langkah kita yang pertama adalah dengan menentukan variable scalar dengan cara melakukan pengetikan seperti berikut : >> x = 2 (selanjutnya tekan “Enter”) x=
Universitas Sumatera Utara
2 >> y = 3 y= 3 >> z = x + y z= 5
Tugas akhir ini akan menjelaskan tentang pembuatan aplikasi watermarking dengan manggunakan GUI MATLAB. GUI merupakan sebuah graphical user interface yang dibangun dengan obyek grafis seperti tombol (button), kotak teks, slider, sumbu (axes), maupun menu. Sebagai contoh, ketika menggerakkan slider, maka kita dapat melihat perubahan sebuah nilai. Kemudian, ketika kita menekan tombol OK, maka aplikasi kita akan dijalankan.
Universitas Sumatera Utara
Aplikasi yang menggunakan GUI umumnya lebih mudah dipelajari dan digunakan karena orang yang menjalankannya tidak perlu mengetahui perintah yang ada dan bagaimana perintah bekerja.
2.5.4 Memulai GUI Untuk memulai penggunaan GUI Matlab, kita dapat melakukan dengan dua cara, yaitu:
Melalui command matlab kita ketikkan >>guide atau
Klik tombol Start Matlab kemudian klik File -> GUI
Gambar 2.7 : Tampulan Interface GUI pada Matlab
Universitas Sumatera Utara
Selanjutnya, kita dibawa ke sebuah kotak dialog pilihan GUIDE Quick Start.
Gambar 2.8 : GUIDE Quick Start
Ada dua buah pilihan, yaitu Create New GUI dan Open Existing GUI.
Create New GUI Kita dapat memilih Create New GUI jika memang belum pernah membuat aplikasi GUI matlab atau memang ingin membuat sebuah figure baru. Menu Create New GUI akan memberikan kita beberapa pilihan GUIDE tempalate. GUIDE template menyediakan beberapa tipe
dasar dari GUI. Lebih lanjut, kita dapat melakukan
modifikasi pada template agar menjadi sebuah GUI seperti yang kita harapkan.
Universitas Sumatera Utara
Keuntungan menggunakan GUIDE template adalah kita dapat membuat aplikasi GUI kita menjadi lebih cepat dan mudah karena sudah tersedia beberapa bentuk (prototype) GUI. Pada GUIDE template, kita dapat memilih : a. Blank GUI (Default) Blank GUI merupakan sebuah GUI dengan figure kosong. Kita dapat mengatur sendiri komponen yang kita butuhkan sesuai dengan aplikasi yang kita buat. Balank GUI merupakan kondisi default dari GUIDE dan dipilih jika kita memang akan membuat sebuah aplikasi dengan komponen yang layout-nya tidak terdapat pada GUI template yang lain.
Gambar 2.9 : Menu utama GUIDE
Universitas Sumatera Utara
Kita dapat memanfaatkan beberapa fasilitas yang ada pada Blank GUI, antara lain component palette untuk mendesain unicontrol yang kita butuhkan seperti pushbutton, slider, frame, radio button, dan sebagainya. Kita dapat pula menggunakan figure resize tab untuk melebarkan atau memperluas layout figure. Kemudian, kita dapat memanfaatkan beberapa tool yang disediakan seperti alignment tool untuk merapikan layout, menu editor untuk membuat fasilitas menu pulldown, M-file editor untuk membuka editor M-file, serta property inspector untuk mengatur property setiap uicontrol.
b. GUI with Uicontrols Dengan GUI Uicontrols, kita dapat membuat aplikasi Matlab dengan beberapa control, misalnya frame, radiobutton, pushbutton, edit text, dan lainnya. Jika berencana membuat aplikasi dengan layout yang mirip gambar di atas, maka kita dapat memilih template ini. Selanjutnya beberapa property yang ada dapat diatur kembali sesuai aplikasi kita.
Universitas Sumatera Utara
Gambar 2.10 : GUI dengan UIcontrols
c. GUI with Axes and Menu
Gambar 2.11 : GUI dengan Axes dan Menu
Dengan GUI with axes and menu, kita lebih mudah membuat plot berbagai bentuk data yang divisualisasikan dalam sebuah axes.
Universitas Sumatera Utara
d. Modal Question Dialog
Gambar 2.12 : Modal Question Dialog
Template Modal Question Dialog merupakan sebuah template dengan kotak dialog sebagai konfirmasi untuk menutup sebuah aplikasi. Kita dapat menggunakan template untuk mengakhiri sebuah aplikasi dan untuk menghindari penutupan aplikasi secara tidak sengaja yang dapat membawa dampak kerugian hilangnya sebuah informasi.
Universitas Sumatera Utara
Open Exisiting GUI
Jika kita sudah memiliki file figure matlab atau akan memodifikasi file fgure, maka kita dapat menggunakan pilihan Open Exisiting GUI. Kita hanya tinggal melakukan browse untuk mencari lokasi file figure. Jika menggunakan pilihan, maka kita akan
mendapatkan tampilan kotak dialog sebagai berikut :
Gambar 2.13 : Open Exisiting GUI
Jika kita melakukan browse, maka akan memperoleh tampilan :
Universitas Sumatera Utara
Gambar 2.14 : Browse pada Open Exisiting GUI
Komponen GUIDE
Untuk membuat sebuah user interface matlab dengan fasilitas GUIDE, kita harus memulai dengan membuat desain sebuah figure. Untuk membuat sebuah desain figure, kita dapat memanfaatkan uicontrol (control user interface) yang telah tersedia pada editor figure. Banyak sekali control user interface yang ada pada matlab, yaitu : a. Pushbutton
Universitas Sumatera Utara
b. Toggle button c. Radio button d. Checkboxes e. Edit text f. Static text g. Slider h. Frames i. Listboxes j. Popup menu k. Axes Kita dapat meletakkan semua control pada layout editor figure dan selanjutnya hanya tinggal mengaturnya dengan property inspector. Untuk melihat control user interface, kita dapat membukanya dengan menggunakan blank GUI maupun yang lainnya. Gambar berikut memperlihatkan beberapa control.
Universitas Sumatera Utara
Gambar 2.15 : Komponen UIcontrol Berikutnya adalah penjelasan fungsi maupun pengaturan masing-masing control. a. Pushbutton Sebuah pushbutton merupakan jenis control berupa tombol tekan yang akan menghasilkan sebuah tindakan jika diklik, misalnya tombol OK, CANCEL, dan lainnya. Untuk menampilkan tulisan yang berada pada pushbutton, kita dapat mengatur melalui property inspector dengan mengklik obyek pushbutton pada figure, lalu mengklik toolbar property inspector atau menggunakan klik kanan dan pilih property inspector. Selanjutnya, istilah tab String dengan label yang kita maksudkan, misalnya Proses atau yang lainnya.
Universitas Sumatera Utara
Gambar 2.16 : Pushbutton
b. Toggle Button Toggle button menghasilkan efek yang hamper sama dengan pushbutton. Perbedaanya adalah saat pushbutton ditekan, maka tombol akan kembali pada posisi semula jika tombol mouse dilepas. Sebaliknya, pada toggle button tombol tidak akan kembali ke posisi semula, kecuali kita menekannya kembali.
Universitas Sumatera Utara
Gambar 2.17 : Toggle button
c. Radio Button Radio button mirip dengan tombol checkbox. Pada radio button, kita hanya dapat memilih atau menandai satu pilihan dari beberapa pilihan yang ada.
Gambar 2.18 : Radio Button
Universitas Sumatera Utara
d. Checkboxes Kontrol menghasilkan suatu tindakan ketika di klik, yaitu berupa tanda atau status. Checkbox berguna jika kita ingin menyediakan sejumlah pilihan mandiri yang tidak tergantung pada pilihan lainnya. Untuk menandai apakah sebuah checkbox telah ditandai atau tidak, kita dapat melihat pada value property, yaitu masingmasing bernilai 1 dan 0.
Gambar 2.19 : Checkboxes
e. Edit Text Kontrol edit text merupakan sebuah tempat yang memungkinkan kita memasukkan atau memodifikasi text. String property berisi teks yang akan dimunculkan pada kotak edit text. Kemudian, edit text bermanfaat pula untuk menginputkan suatu data dari keyboard.
Universitas Sumatera Utara
Gambar 2.20 : Edit Text
f. Static Text Kontrol static text akan menghasilkan teks bersifat statis (tetap), sehingga pemakai tidak dapat melakukan perubahan padanya. Pada static text, kita dapat mengatur teks dengan beberapa fasilitas, antara lain jenis dan ukuran font, warna justifikasi (left, center, right), dan lain-lain. Kita dapat memodifikasi semuanya melalui property inspector.
g. Slider Slider merupakan komponen GUI yang dapat bergeser secara horizontal maupun vertical. Berbeda dengan bahasa pemrograman lain seperti VB yang memiliki scroll (penggulung) horizontal dan vertical secara terpisah, matlab hanya memiliki
Universitas Sumatera Utara
sebuah slider. Namun, dengan sebuah slider kita dapat mengaturnya menjadi slider horizontal atau slider vertical dengan men-drag mouse sesuai keinginan kita. Slider digunakan jika kita menginginkan inputan yang tidak dilakukan dari keyboard. Dengan menggunakan slider, kita lebih fleksibel dalam melakukan pemasukan data karena kita dapat mengatur sendiri nilai-nilai maksimum, minimum, atau sliderstep, dan sebagainya.
Gambar 2.21 : Slider h. Frames Frame merupakan kotak tertutup yang dapat kita gunakan untuk mengelompokkan control yang berhubungan, kecuali axes. Tidak seperti control lainnya, frame pada matlab tidak memiliki rutin callback. Frame ibarat kertas buram. Dengan demikian, jika kita menambahkan sebuah frame setelah mendesain control lain, maka control akan tertutup oleh frame. Oleh
Universitas Sumatera Utara
karena itu, kita dapat menggunakan Bring to Front atau Send to Back untuk memunculkan control.
i. Listboxes Kontrol listbox menampilkan semua daftar item yang terdapat pada String Property dan membuat kita dapat memilih satu atau lebih item yang ada. Value Property berisi indeks yang dihubungkan dengan daftar item yang dapat dipilh. Jika kita memilih item lebih dari satu, maka nilai yang dikirimkan merupakan sebuah vector. Indeks-indeks item sebuah listbox merupakan bilangan bulat, di mana item pertama diberi indeks 0, item kedua diberi indeks 1, dan seterusnya. Berikut adalah contoh aplikasi Listbox :
Gambar 2.22 : Listboxes j. Popup Menu
Universitas Sumatera Utara
Popup menu membuka tampilan daftar pilihan yang didefenisikan pada String Property ketika kita mengklik tanda panah pada aplikasi. Ketika tidak dibuka, popup menu hanya akan menampilkan satu item yang menjadi pilihan saat ini, yang ditentukan oleh sebuah indeks berisi Value Property . Item pertama pada String Property sebuah popup menu akan diberi nilai 1, item berikutnya diberi nilai 2, dan begitu seterusnya. Popup menu sangat bermanfaat ketika ingin member pemakai sebuah pilihan atau alternatif tanpa jarak, tidak seperti radio button. Contoh pemakain popup menu dapat dilihat pada gambar berikut :
Gambar 2.23 : Popup Menu
k. Axes Dengan axes, kita dapat membuat aplikasi yang dapat digunakan untuk menampilkan sebuah grafik atau gambar (image). Axes sebenarnya tidak termasuk
Universitas Sumatera Utara
golongan user interface control, tetapi axes dapat diprogram agar pemakai dapat berinteraksi dengan axes dan obyek grafik yang dapat ditampilkan melalui sebuah axes.
Gambar 2.24 : Axes
Universitas Sumatera Utara