PERBANDINGAN PEMAMPATAN CITRA DENGAN
WAVELET DAUBECHIES, MORLET,
DAN
MEYER
Skripsi
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Sains
Program Studi Ilmu Komputer
Diajukan Oleh :
Christophorus Tommy Astanto NIM : 013124043
PROGRAM STUDI ILMU KOMPUTER JURUSAN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNVERSITAS SANATA DHARMA
PERSEMBAHAN
Bermimpilah tentang apa yang ingin kamu impikan, pergilah ke tempat kamu ingin pergi, jadilah seperti
yang kamu inginkan, karena kamu hanya memiliki satu kehidupan dan satu kesempatan untuk melakukan hal-hal
yang ingin kamu lakukan
Kupersembahkan karya ini untuk :
Yesus Kristus
atas segala-galanya yang ada di Bumi ini
Bp.Aloysius Hendarto & Ibu M.M Sri Utami
terima kasihku atas kasih sayang, cinta,
pengorbanan dan dukungan yang selama ini kalian berikan padaku
Yohanes Tommy Gratsianto
aku bangga memiliki adik sepertimu
ABSTRAK
Pemampatan data citra adalah suatu teknik yang digunakan untuk
memperkecil ukuran berkas citra sehingga dapat menghemat media penyimpanan.
Terdapat banyak metode pemampatan yang mempunyai prinsip kerja yang
berbeda-beda dan menghasilkan data keluaran yang ukurannya berbeda pula,
diantaranya adalah metode pemampatan dengan menggunakan wavelet
Daubechies, Morlet, dan Meyer. Penelitian ini bertujuan untuk mengetahui
metode mana yang terbaik dari ketiga metode tersebut menurut hasil pemampatan
dan waktu tempuh proses pemampatan.
Dalam penelitian ini data citra yang dipakai bertipe *.Jpg. Kriteria
perbandingan meliputi kompleksitas algoritma yang dipakai, lamanya proses
pemampatan, dan ukuran file hasil pemampatan dari ketiga metode tersebut.
Hasil analisis algoritma untuk ketiga metode pemampatan menunjukkan
bahwa waktu tempuh algoritma Morlet dan Meyer masing-masing adalah O(1),
sedangkan waktu tempuh untuk algoritma Daubechies adalah O(n). Sedangkan
dari hasil pengujian program diperoleh hasil bahwa pemampatan dengan Wavelet
Daubechies lebih baik dibandingkan dengan Wavelet Meyer dan Wavelet Morlet
untuk data yang sama. Maka dapat disimpulkan bahwa dari hasil analisis
algoritma diketahui algoritma Meyer memiliki waktu tempuh yang relatif lebih
cepat, sedangkan menurut hasil proses pemampatan, pemampatan terbaik
diperoleh dengan Wavelet Daubechies.
ABSTRACT
Image Compresion is a technic which is used to reduce the size of an
image so that it would save storage media. There are many image comparisson
methods with different mechanism as well as different output, namely image
comparisson methods using wavelet Daubechies, Morlet, and Meyer. This
research aims to discover the best method out of the three methods mentioned
above according to the result of the compression process.
The image data which is used in this research is the *.Jpg file. The
comparison criteria includes the complexity of the algorithm, the duration of the
compression process, and the size of the output file from the tree methods above.
The result of the algorithm analysis for three methods of compression
indicates that the running time for the Morlet and Meyer algorithm is O(1), while
the running time for Daubechies algorithm is O(n). As the result of some
experiment it is found that for the same data, the result of compression using
wavelet Daubechies is better than using wavelet Morlet and Meyer. Therefore, it
can be concluded that in term of algorithm analysis, it Meyer algorithm performs
a relatively faster running time than other algorithm, where as in term of the
result, the best compression is yielded from wavelet Daubechies.
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini
tidak memuat karya atau bagian karya lain, kecuali yang telah disebutkan dalam
kutipan daftar pustaka, sebagaimana layaknya karya ilmiah.
Yogyakarta, 26 Maret 2007
Penulis
KATA PENGANTAR
Puji syukur kepada Tuhan YME atas segala Berkat yang dicurahkan-Nya
sehingga penulis dapat menyelesaikan tugas akhir ini.
Pada kesempatan ini, penulis ingin menyampaikan ucapan terima kasih
yang sebesar-besarnya kepada:
1. Yang terhormat Ibu A. Rita Widiarti, S.Si., M.Kom., selaku dosen
pembimbing yang dengan kritik dan sarannya telah banyak membantu penulis
dalam mempersiapkan dan menyelesaikan skripsi ini.
2. Bapak Ir. Ig. Aris Dwiatmoko, M.Sc selaku Dekan Fakultas MIPA Universitas
Sanata Dharma.
3. Ibu P. H. Prima Rosa selaku Kepala Program Studi Ilmu Komputer
Universitas Sanata Dharma.
4. Seluruh Dosen Ilmu Komputer Universitas Sanata Dharma yang telah
membimbing penulis selama studi.
5. Pak Tukijo atas kerjasamanya selama ini.
6. Dianny Faila Sophia Hartatri yang telah memberikan semangat dan dukungan
dalam menyelesaikan studi serta skripsi ini.
7. Teman-teman M7 (Denny “Adens”, Sonie “Gontenk”, Fajar ”Boncel”, Simon
”Dewarengkong”, Dance, Rolens).terima kasih atas dukungan, semangat dan
persahabatan yang ada selama ini.
8. Teman-teman Ilmu Komputer angkatan 2001 Arief ”Pakdhe”, Roy ”C-Tepu”,
Krisnawan ”Tarzan”, Samuel, Ferdi”Koh Edi”, Wanda”Bakso”,Anto”Ndorone
Wonosobo”, Rully, Enink dll.
9. Teman-teman seperjuanganku( Wawan”Produk Gagal”, Andi ”Pakdhe”, Didit,
Nino, Samsu, Aris ”Mr. Bean” dll)
Penulis menyadari bahwa dalam menyelesaikan skripsi ini masih banyak
kekurangan, karena keterbatasan kemampuan penulis dalam pengalaman dan
pengetahuan, oleh karena itu, kritik dan saran yang bersifat membangun akan
sangat diharapkan dalam sempurnanya skripsi ini.
Besar harapan penulis semoga hasil penelitian ini dapat berguna bagi
pembaca.
Yogyakarta, 26 Maret 2007
Penulis
DAFTAR ISI
HALAMAN JUDUL... i
HALAMAN PERSETUJUAN... ii
HALAMAN PENGESAHAN... iii
HALAMAN PERSEMBAHAN... iv
ABSTRAK... v
ABSTRACT... vi
HALAMAN KEASLIAN KARYA... vii
KATA PENGANTAR... viii
DAFTAR ISI... x
DAFTAR TABEL... xiv
DAFTAR GAMBAR... xv
BAB I. PENDAHULUAN 1.1. Latar Belakang Masalah... 1
1.2. Rumusan Masalah... 2
1.3. Batasan Masalah... 2
1.4. Tujuan akhir... 2
1.5. Metodologi Penelitian... 2
1.6. Sistematika Penulisan... 4
BAB II. LANDASAN TEORI 2.1. Pengertian Citra... 5
2.2. Format Citra... 6
2.2.1. Citra Biner (Monokrom)... 7
2.2.2. Citra Skala Keabuan (Gray Scale)... 7
2.2.3. Citra Warna (True Color)... 8
2.3. Pengertian Pemampatan... 9
2.3.1. Teknik Pemampatan Data Citra... 9
2.4. Metode Terbaik... 11
2.5. Pengertian Gelombang Singkat... 11
2.5.1. Sejarah Gelombang Singkat... 13
2.6. Metode Alihragam Gelombang Singkat... 14
2.6.1. Metode Pemampatan Gelombang Singkat... 14
2.6.2. Tolak Ukur Perbedaan Citra Asli dan Rekonstruksi... 18
2.6.3. Rasio Pemampatan Data Citra... 18
2.7. Wavelet Daubechies... 19
2.7.1. Algoritma Gelombang Singkat Daubechies... 19
2.8. Wavelet Meyer... 21
2.9. Wavelet Morlet... 22
2.10. Teori Analisis Algoritma... 22
2.10.1. Kompleksitas Waktu (Time Complexity)... 24
2.10.1.1. Keadaan Dari Kompleksitas Waktu... 25
BAB III. ANALISIS DAN PERANCANGAN 3.1. Analisis Sistem... 30
3.2. Kebutuhan... 31
3.3. Perancangan Sistem... 31
3.3.1. Perancangan Proses... 31
3.4. Algoritma Program... 34
3.4.1. Algoritma Program Pemampatan Wavelet Daubechies... 34
3.5. Hubungan Antar Tampilan... 43
3.6. Perancangan Interface Program... 44
BAB IV. IMPLEMENTASI 4.1. Implementasi Program... 50
4.1.1. Tampilan Layar Utama... 51
4.2. Analisis Program... 55
4.2.1. Gelombang Singkat Daubechies... 56
4.2.2. Gelombang Singkat Meyer... 56
4.2.3. Gelombang Singkat Morlet... 57
BAB VI. KESIMPULAN DAN SARAN
6.1. Kesimpulan... 66
6.2. Saran... 67
DAFTAR PUSTAKA... 68
LAMPIRAN... 69
DAFTAR TABEL
Tabel 5.1 Hasil kompleksitas waktu... 62
Tabel 5.2 Perbandingan berdasarkan besar ukuran file hasil pemampatan... 63
Tabel 5.3 Perbandingan Berdasar waktu tempuh proses pemampatan... 64
DAFTAR GAMBAR
Gambar1.1 Diagram metode waterfall... 3
Gambar 2.1 Citra biner dan representasinya dalam data digital... 7
Gambar 2.2 Citra skala keabuan 4 bit dan representasinya dalam data digital.... 8
Gambar 2.3 Citra Warna dan representasinya dalam data digital... 8
Gambar 2.4 Penyandian Transform... 10
Gambar 2.5 Runtutan Pemampatan Data... 15
Gambar 2.6 pemrosesan citra dengan dua iterasi (a), pemrosesan citra dengan tiga iterasi (b)... 15
Gambar 2.7 Wavelet daubechies... 20
Gambar 2.8 Wavelet Meyer……….. 21
Gambar 2.9 Wavelet Morlet... 22
Gambar 3.1 Diagram Konteks... 32
Gambar 3.2. Diagram Aliran Data Level 1... 32
Gambar 3.3 Diagram Alir Data Level 2 Proses 1……… 33
Gambar 3.4 Diagram Aliran Data Level 2 Proses 2……… 34
Gambar 3.5 Flowchart pemampatan Daubechies... 35
Gambar 3.6 Flowchart pemekaran Daubechies... 37
Gambar 3.7 Flowchart pemampatan Meyer... 38
Gambar 3.8 Flowchart pemekaran Meyer... 40
Gambar 3.9 Flowchart pemampatan Morlet... 41
Gambar 3.10 Flowchart pemekaran Morlet... 43
Gambar 3.11 Hubungan antar tampilan... 44
Gambar 3.12 Form Utama... 44
Gambar 3.13 Form Informasi...45
Gambar 3.14 Form Pilihan... 45
Gambar 3.15 Form Open Citra... 46
Gambar 3.16 Form Kompresi Wavelet... 47
Gambar 3.17 Form Pemapatan Citra...48
Gambar 3.18 Form Pemekaran Citra... 49
Gambar 3.19 Form Detail...49
Gambar 4.1 Jendela Command Window... 50
Gambar 4.2 jendela pengaktifan folder (Current Directory)... 50
Gambar 4.3 Layar Utama...51
Gambar 4.3 Layar Menu Pilihan... 51
Gambar 4.4 Layar Open file... 52
Gambar 4.4 Layar Menu kompresi... 52
Gambar 4.6 Menu Pemampatan... 53
Gambar 4.7 Layar Menu Pemekaran... 54
Gambar 4.8 Layar Informasi Program... 54
Gambar 4.9 Layar Menu Detai... 55
Gambar 4.10 Tampilan peringatan... 55
Gambar 4.11 Tampilan Taylortool……….. 58
BAB I PENDAHULUAN
1.1 Latar Belakang Masalah
Media penyimpanan pada komputer walaupun sudah berukuran cukup
besar ternyata tidak dapat memenuhi kebutuhan penyimpanan data dan informasi
yang berkembang dengan cepat. Untuk mengatasi masalah tersebut maka
dikembangkan suatu teknik yang dapat memperkecil ukuran berkas data sehingga
permasalahan media penyimpanan dapat teratasi. Teknik tersebut adalah teknik
pemampatan data.
WinZip, WinRAR adalah dua contoh program untuk pemampatan berkas
data. Berdasarkan percobaan yang dilakukan penulis, dua contoh program di atas
ternyata memiliki rasio pemampatan yang baik untuk pemampatan berkas teks,
tetapi kurang baik jika digunakan untuk memampatkan berkas citra.
Dengan melihat masalah di atas, maka penulis akan membuat suatu program
yang digunakan untuk memampatkan berkas citra dengan menggunakan teknik
pemampatan berkas citra berbasis wavelet yang dianggap mampu memberikan
hasil pemampatan yang baik. Wavelet yang digunakan untuk tujuan pemampatan
berkas citra tersebut adalah Wavelet Daubechies, Morlet dan Meyer. Penulis
memilih ketiga metode tersebut dikarenakan ketiga metode tersebut mempunyai
syarat dan karakteristik yang berbeda. Selain itu, wavelet juga lebih baik dari
metode pemampatan JPEG untuk memampatkan berkas citra. (Qiao, 2005)
1.2 Rumusan Masalah
Manakah metode terbaik dalam proses pemampatan dan pemekaran berkas
citra berdasarkan metode Morlet, Meyer, dan Daubechies di tinjau dari
kompleksitas waktu dan hasil pemampatan.
1.3Batasan Masalah
Adapun batasan masalah dari tugas akhir ini adalah:
1. Pembuatan program yang dirancang menggunakan MATLAB versi
6.5.1 untuk pemampatan dan pemekaran citra dengan file yang
berekstensi *.jpg.
2. Program ini hanya akan membandingkan dua faktor yaitu
membandingkan ukuran file yang telah dimampatkan dan
membandingkan waktu proses (running time).
1.4 Tujuan
Merancang dan mengembangkan sebuah program pemampatan dan
pemekaran berkas citra menggunakan perangkat lunak MATLAB.
1.5 Metodologi
1. Metode Studi Pustaka
Metode ini sebagai penunjang dalam proses pengumpulan data dengan
mempelajari berbagai macam literatur yang berkaitan dengan
2. Metode Pengembangan Perangkat Lunak dengan paradigma Waterfall
Gambar1.1 Diagram metode waterfall
Metode ini digunakan sebagai penunjang dalam proses pembuatan
program sesuai dengan kebutuhan pemakai. Didalam metode ini
terdapat beberapa tahapan yang akan dilakukan yaitu:
1. Rekayasa Sistem
Tahapan ini digunakan untuk mengumpulkan kebutuhan program
dengan sedikit melibatkan analisis dan perancangannya.
2. Analisis
Tahapan ini digunakan untuk menganalisis tentang prosedur atau
fungsi yang akan digunakan dan user interface program.
3. Perancangan
Merupakan tahapan yang memusatkan pada karakteristik dari
user inteface dan prosedure atau fungsi secara mendetail.
4. Penulisan Program
Menterjemahkan hasil rancangan ke dalam program.
5. Pengujian
Menguji apakah program sudah sesuai dengan yang diinginkan.
Pengujian Rekayasa
Sistem
Analisis
Perancangan
1.6 Sistematika Penulisan Laporan
Untuk mempermudah memahami penulisan proposal ini, maka penulis
membuat sistematika penulisan sebagai berikut :
BAB I PENDAHULUAN
Berisi tentang latar belakang, batasan masalah, tujuan penulisan, dan
sistematika penulisan.
BAB II LANDASAN TEORI
Berisi tentang teori-teori yang dapat digunakan sebagai bahan
pendukung dari pembuatan program dan penulisan skripsi secara
keseluruhan yaitu pengertian citra, pengertian kompresi data, macam
teknik pemampatan data, pengertian wavelet, wavelet Daubechies,
Morlet dan Meyer.
BAB III ANALISIS DAN PERANCANGAN SISTEM
Berisi tentang analisis sistem, analisis kebutuhan, rancangan user
interface yang akan digunakan dalam pembuatan program beserta
algoritma yang akan digunakan.
BAB IV IMPLEMENTASI PROGRAM
Berisi tentang hasil implementasi program, menjelaskan setiap
aplikasi yang ada dalam program.
BAB V ANALISIS DAN HASIL UJI PROGRAM
Berisi tentang analisis program serta analisis perbandingan antara
ketiga wavelet tersebut berdasarkan hasil pengujian program.
BAB VI KESIMPULAN DAN SARAN
Berisi tentang kesimpulan dan saran setelah mengimplementasikan
program.
DAFTAR PUSTAKA
BAB II LANDASAN TEORI
2.1. Pengertian Citra
Citra sebagai keluaran suatu sistem perekaman data dapat bersifat optis,
contohnya foto, bersifat analog, contohnya sinyal video seperti gambar pada
monitor televisi, atau bersifat digital yang langsung disimpan pada pita magnetis.
Menurut presisi yang digunakan untuk menyatakan titik-titik koordinat pada
domain spasial atau bidang dan untuk menyatakan nilai keabuan atau warna suatu
citra, maka secara teoritis citra dapat dikelompokkan menjadi empat kelas citra,
yaitu citra kontinu-kontinu, kontinu-diskret, diskret-kontinu, dan diskret-diskret;
dengan label pertama menyatakan presisi titik-titik koordinat pada bidang citra
sedangkan label kedua menyatakan presisi nilai keabuan atau warna. Kontinu
dinyatakan dengan presisi angka tidak terhingga, sedangkan diskret dinyatakan
dengan presisi angka terhingga.
Komputer digital bekerja dengan angka-angka presisi terhingga, dengan
demikian hanya citra dari kelas diskret-diskret yang dapat diolah dengan
komputer. Citra dari kelas tersebut lebih dikenal sebagai citra digital.
Citra digital merupakan larikan dua-dimensi atau matriks yang
unsur-unsurnya menyatakan tingkat keabuan unsur gambar, jadi informasi yang
terkandung bersifat diskret. Citra digital tidak selalu merupakan hasil langsung
data rekaman sistem. Kadang-kadang hasil rekaman data bersifat kontinu seperti
gambar pada monitor televisi, foto sinar-X, dan lain sebagainya. Dengan demikian
untuk mendapatkan citra digital diperlukan suatu proses konversi, sehingga citra
tersebut selanjutnya dapat diproses dengan komputer (Murni, 1992).
2.2 Format Citra
Setiap citra digital memiliki beberapa karakteristik, antara lain ukuran citra, resolusi dan format. Umumnya citra digital berbentuk persegi panjang yang
memiliki panjang dan lebar tertentu. Ukuran inilah yang biasanya dinyatakan
dalam banyaknya titik atau piksel, sehingga ukuran selalu bernilai bulat. Dalam
hal ini tentu saja harus ada hubungan antara titik penyusun citra dengan satuan
panjang. Hal tersebut dinyatakan sebagai resolusi yang merupakan ukuran
banyaknya titik untuk setiap satuan panjang. Biasanya satuan yang digunakan
adalah dpi (dot per inch). Makin besar resolusi makin banyak titik yang
terkandung dalam citra dengan ukuran fisik yang sama. Hal ini memberikan efek
penampakan citra menjadi semakin halus.
Komputer dapat mengolah isyarat-isyarat elektronik digital yang merupakan
kumpulan sinyal biner (bernilai dua: 0 dan 1). Untuk itu citra digital harus
memiliki format tertentu sehingga dapat merepresentasikan objek pencitraan
dalam bentuk kombinasi data biner.
Pada kebanyakan kasus, terutama untuk keperluan penampilan secara visual,
nilai data digital tersebut merepresentasikan warna dari citra yang diolah, dengan
demikian format data citra digital berhubungan erat dengan warna. Format citra
digital yang banyak dipakai adalah citra biner, skala keabuan, warna dan warna
Format citra digital ada bermacam-macam. Citra yang merepresentasikan
informasi yang hanya bersifat biner untuk membedakan 2 keadaan tentu tidak
sama citra dengan informasi yang lebih kompleks. Pada citra digital semua
informasi tadi disimpan dalam bentuk angka, seadangkan penampilan angka
tersebut biasanya dikaitkan dengan warna.
2.2.1 Citra Biner (Monokrom)
Pada citra biner, setiap titik bernilai 0 atau 1, masing-masing
merepresentasikan warna tertentu. Warna hitam bernilai 0 dan warna putih
bernilai 1. Setiap titik pada citra hanya membutuhkan 1 bit, sehingga setiap byte
data dapat mengandung informasi 8 titik.
Gambar 2.1 Citra biner dan representasinya dalam data digital.
2.2.2 Citra Skala Keabuan (gray scale)
Citra skala keabuan memberi kemungkinan warna lebih banyak daripada
citra biner, karena ada nilai-nilai lain diantara nilai minimum (nilai 0) dan nilai
maksimumnya. Banyaknya kemungkinan nilai dan nilai maksimumnya
bergantung pada jumlah bit yang digunakan.
Format citra ini disebut skala keabuan karena pada umumnya warna yang
dipakai adalah warna antara warna hitam sebagai warna minimal dan warna putih
sebagai warna maksimalnya sehingga warna antaranya adalah abu-abu. = 10011101=$9D
= 01101110=$6A
= 01101101=$6D
Gambar 2.2 Citra skala keabuan 4 bit dan representasinya dalam data digital.
2.2.3 Citra Warna (true color)
Pada citra warna, setiap titik mempunyai warna yang spesifik yang
merupakan kombinasi dari tiga warna dasar yakni merah, biru, hijau. Format citra
ini sering disebut sebagai citra RGB (red-green-blue). Setiap warna dasar
memiliki intensitas sendiri dengan nilai maksimum 255 (8 bit), misalnya warna
kuning merupakan kombinasi warna merah dan hijau sehingga nilai RGB=nya
adalah 255 255 0; sedangkan warna ungu muda nilai RGB-nya adalah 150 0 150.
Dengan demikian setiap titik pada citra warna membutuhkan data 3 byte.
Jumlah kombinasi warna yang mungkin untuk format citra ini adalah 224 atau
lebih dari 16 juta warna, dengan demikian bisa dianggap mencakup semua warna
yang ada, inilah sebabnya format ini dinamakan true color.
Gambar 2.3 Citra Warna dan representasinya dalam data digital.
= 15 10 7 10 15 13 0 13=$FA 7A FD 0D
= 12 4 15 7 11 15 15 1 =$C4 F7 BF F1
= 10 5 15 7 14 14 2 15 =$A5 F7 EE 2F
= 15 15 3 11 13 15 15 7=$FF 3B DF F7
= 255 255 255 255 0 0 128 128 128 128 128 0
= 0 255 255 0 128 0 204 255 255 0 0 255
= 150 150 150 51 51 51 255 255 255 95 95 95
2.3 Pengertian Pemampatan
Pemampatan merupakan suatu proses mengubah stream data input
menjadi stream data output agar menjadi lebih kecil. Jika proses pemampatan
efektif, maka hasil berkas keluarannya akan lebih kecil dari berkas aslinya, atau
dengan kata lain pemampatan merupakan suatu teknik yang digunakan untuk
memperkecil ukuran suatu berkas masukan, sehingga dapat dimuat dalam media
penyimpanan.
Ruang penyimpanan pada komputer sebenarnya boleh dikatakan sangat
terbatas, walaupun memakai hard disk yang berukuran gigabyte.
2.3.1. Teknik Pemampatan Data Citra
Teknik ini dapat dibagi menjadi dua kelas besar yaitu:
1. Pemampatan yang bersifat tanpa merugi (lossless), dan
2. Pemampatan yang bersifat merugi (lossy)
Teknik pemampatan data bersifat tanpa merugi (lossles) adalah teknik
pemampatan dimana hasil dekompresi haruslah persis sama dengan inputannya.
Pemampatan jenis ini sering digunakan untuk memampatkan data berupa teks dan
executable file.
Teknik pemampatan data yang bersifat merugi (lossy) adalah teknik
pemampatan di mana hasil dekompres tidak harus selalu persis dengan inputan.
Perbedaan inputan dan hasil dekompres hanya cukup kecil. Teknik pemampatan
tersebut terdapat data yang jika dihilangkan tidak berpengaruh besar pada
informasi yang diberikan.(Muller, 2003)
Salah satu prosedur standar pemampatan lossy melalui penyandian
transform, ini diperlihatkan pada gambar 2.4
Gambar 2.4 Penyandian Transform
Pada gambar 2.4 menunjukkan proses penyandian transform yaitu dimana
sinyal asli pertama kali akan dikenai proses transform maju kemudian dilakukan
penyandian koefisien hasil dari transform maju. Selanjutnya setelah dilakukan
penyandian koefisien dilakukan transform balik yang selanjutnya menghasilkan
sinyal rekonstruksi. Ide ini bertujuan untuk menampilkan data menggunakan basis
matematika yang berbeda dengan harapan tampilan baru itu akan memperjelas
korelasi yang ada. Pemampatan dicapai dengan memperhitungkan transform yang
berhubungan dengan basis ini, nilai korelasi dibawah batas ambang sampai
menuju 0, dan penyandian (encoding) tanpa merugi koefisien yang tidak bernilai
0.
Data citra yang dimampatkan menggunakan file dengan ekstensi Bmp dan
JPG. Citra dengan ekstensi Bmp memiliki kelebihan, yaitu memiliki kualitas
gambar terbaik namun memiliki ukuran berkas yang relatif besar sehingga akan
menambah beban saat memanggilnya kembali ( me-load) dan membutuhkan
memori yang besar juga untuk menyimpannya.
Citra dengan ekstensi JPG merupakan kebalikan dari Bmp, yaitu ukuran
berkasnya kecil sehingga hanya membutuhkan memori yang kecil untuk
menyimpannya. Kelemahan dari JPG adalah jika sering mengedit gambar
tersebut, kualitas gambar tersebut semakin lama semakin turun karena JPG tidak
menyimpan informasi setiap piksel dari image tersebut. JPG menyimpan
berdasarkan mapping warna dan lokasi warna tersebut.
2.4 Metode Terbaik
Suatu metode pamampatan dapat disebut metode terbaik, jika memenuhi
persyaratan sebagai berikut (Mubarak, 2002) :
1. Seberapa besar prosentase berkas hasil pemampatan dapat diketahui.
2. Keutuhan file tetap terjamin.
3. Kecepatan program pelaksana proses pemampatan cukup memadahi.
4. Kemudahan pemakaian program serta kesederhanaan fasilitas tambahan
yang diperlukan.
2.5 Pengertian Gelombang-Singkat (GS)
GS adalah fungsi matematis yang memenuhi persyaratan matematika dan
digunakan dalam penyajian data atau fungsi lain. Penghitungan menggunakan
fungsi superposisi telah ada sejak tahun 1800, ketika Joseph Fourier menemukan
bahwa grafik sinus dan kosinus dapat disuperposisikan untuk menggambarkan
digunakan terhadap data mempunyai suatu fungsi tertentu. Algoritma GS
memproses data pada ukuran-ukuran atau resolusi-resolusi yang berbeda. Jika kita
melihat suatu sinyal dengan jendela (window) yang besar maka diperoleh gambar
yang besar. Demikian pula, bila kita melihat dengan window yang kecil maka
akan diperoleh gambar yang kecil pula. Hasil pada analisis GS dapat diibaratkan
seperti melihat hutan secara menyeluruh dengan pohon-pohonnya (Graps, 1995).
Para ilmuwan telah berusaha menemukan fungsi yang lebih tepat daripada
fungsi sinus dan kosinus sebagai basis analisis Fourier untuk memperkirakan
sinyal bergelombang. Menurut pengalaman mereka, tidak ada masalah bila fungsi
itu bersifat non-lokal(memiliki lingkup tidak terbatas). Namun mereka kurang
berhasil dalam menangani sharp spikes. Ternyata dengan analisis GS, dapat
digunakan fungsi penghampiran yang memiliki wilayah (domain) yang terbatas
dan teratur.
Prosedur analisis GS didasarkan pada protoripe fungsi GS, yang disebut
analyzing wavelet atau GS Induk (mother wavelet). Analisis sementara dilakukan
dengan penyusutan (contraction), versi prototipe frekuensi tinggi GS, sedangkan
analisis frekuensinya dilakukan dengan pelebaran, versi frekuensi rendah GS yang
sama, karena sinyal asli atau fungsi masukan dapat digambarkan dalam bentuk
ekspansi GS (menggunakan koefisien pada kombinasi linear sejumlah fungsi GS),
operasi data dapat digambarkan dengan mempergunakan koefisien GS terkait.
Jika selanjutnya pemilihan GS terbaik disesuaikan dengan data yang ada atau
secara jarang. Penyandian yang jarang ini menjadikan GS sangat berguna dalam
bidang pemampatan data.
2.5.1 Sejarah Gelombang Singkat
Gelombang Singkat merupakan keluarga fungsi yang dihasilkan oleh suatu
GS basis ψ (x) disebut mother wavelet. Dimana dasar teori dari Gelombang
Singkat tersebut adalah menampilkan fungsi umum dalam bentuk baku yang lebih
sederhana, meliputi ukuran dan posisi yang berbeda-beda. Teori tersebut
diciptakan untuk menelaah berbagai bidang yang berbeda, misalnya pemrosesan
sinyal terdapat teknik seperti pengkodean subbidang, tapis cermin kuadratur, dan
bagan piramid. Dalam matematika abstrak, teknik analisis berdasarkan deret
Fourier yang kadang-kadang memberikan hasil yang kurang maksimal. Sebagai
penggantinya digunakan teknik Littlewood-Paley. Teknik pengganti ini
dikembangkan pada tahun 30-an untuk memahami masalah seperti penjumlahan
deret Fourier dan sifat batas bagi fungsi gelombang singkat analisis.
Pada tahun 70-an, penguraian (dekomposition) secara atomis menjadi
jumlah fungsi yang lebih sederhana digunakan dalam teori Space Hardy. Pada
awal 80-an, Stromberg menemukan gelombang singkat ortogonal pertama untuk
lebih memahami tentang ruang Sobolev dan Hardy yang digunakan untuk
mengukur ukuran kehalusan fungsi gelombang singkat. Pada awal 80-an,
ditemukan bahwa teknik Littlewood-paley memiliki analogi tertentu dan bisa
memberikan satu penjelasan mengenai hasil dalam analisis harmonis. Hal ini
ditemukan oleh Yves Meyer dan Mike Frazier serta Bjorn Jawerth dalam
aplikasi numeris. Teori Gelombang Singkat berasal dari teori Littlewood-Paley
atas usul Yves Meyer dan Jean Morlet.
Pierre-Gilles Lemarie dan Yves Meyer mengembangkan ekspansi
Gelombang Singkat ortogonal. Selanjutnya Ingrid Daubechies memberikan reka
bentuk Gelombang Singkat yang kompak dengan ketidak teraturan tinggi tetapi
dengan sifat beraturan (regularyty). Ini membawa ke awal sejarah teori
Gelombang Singkat. Beberapa orang telah membuat tambahan penting pada
masalah tadi dalam beberapa tahun ini.
2.6 Metode Alihragam Gelombang-Singkat
Gelombang-singkat merupakan fungsi yang memenuhi persyaratan
matematis tertentu dan digunakan di dalam merepresentasikan data atau fungsi
lain. Gagasan ini adalah sesuatu yang baru.
Perkiraan menggunakan superposisi telah ada sejak awal tahun 1800-an
ketika Joseph Fourier menemukan bahwa ia bisa melakukan superposisi terhadap
sinus dan cosinus untuk merepresentasikan fungsi-fungsi lain (Graps, 1995).
2.6.1 Metode Pemampatan Gelombang Singkat
Metode pemampatan alihragam pada dasarnya terdiri atas tiga tahap, yaitu:
a. Transform.
b. Kuantisasi.
Hal tersebut dapat kita lihat dalam diagram berikut:
Gambar 2.5 Runtutan Pemampatan Data.
Pada gambar 2.5 proses kompresi citra asli terdiri dari tiga tahap, yaitu
TGS kedepan, Pengkuantisasi, Penyandian. Dari proses kompresi diperoleh citra
hasil pemampatan yang selanjutnya akan menjadi inputan dalam proses
dekomposisi. Dalam proses ini citra hasil pemampatan yang ingin dimekarkan
akan melewati tiga tahap, yaitu : Pengawasandi, Pengkuantisasi balik, TGS
belakang.
(a) (b)
Gambar 2.6 pemrosesan citra dengan dua iterasi (a), pemrosesan citra dengan tiga iterasi (b).
Pada gambar 2.6 menunjukkan bidang citra yang terdiri dari empat daerah
yang menghasilkan empat buah citra yaitu : fLL, fLH, fHL, fHH. Dari keempat citra
fLL fLH
Citra asli kedepan TGS Pengkuantisasian Penyandian
tersebut yang memiliki citra yang terbaik adalah fLL karena gambar akan
berkumpul pada daerah tersebut.
Catatan : Apabila pemrosesan terhadap baris dan kolom dianggap sebagai
satu iterasi, maka jumlah subbidang yang terbentuk dapat dihitung
melalui rumus : Jumlah Subbidang = 3n + 1, dimana n = cacah iterasi.
a. Transform
Transform merupakan salah satu proses yang bersifat pemetaan
baku untuk keefektifan dan kemudahan sesuai dengan tujuan pemampatan
data yang bersifat merugi. Transform citra bekerja terhadap blok-blok
piksel. Blok piksel biasanya berukuran kecil, misalnya dapat dipilih 4x4,
8x8, 16x16 maupun yang lain, dan bukan pada keseluruhan citra sekaligus.
Ada beberapa alasan mengapa blok-blok yang dipilih berukuran
kecil:
1. Transform blok berukuran kecil atas citra tertentu lebih mudah
dihitung dan diproses daripada transform citra dengan ukuran
penuh.
2. Korelasi antar piksel-piksel berjauhan yang lebih kecil daripada
piksel-piksel yang berdekatan akan mempermudah proses
transform itu sendiri.
b. Kuantisasi
Transform gelombang-singkat memberikan hasil berupa
koefisien-koefisien yang sebagian besar bernilai nol atau mendekati nol. Walaupun
bervariasi. Untuk itu diperlukan proses kuantisasi yang bertujuan untuk
membatasi koefisien-koefisien menjadi nilai lain yang jumlah
kemungkinannya menjadi sedikit.
Pengkuantisasi yang umum dipakai adalah pengkuantisasi vektor
dan pengkuantisasi skalar. Pengkuantisasi vektor mengkuantisasi sejumlah
nilai sekaligus menggantikan sejumlah nilai dengan sebuah lambang,
sedangkan pengkuantisasi skalar melakukan kuantisasi terhadap setiap nilai
secara individual.
Sebelum hasil pengkuantisasi disandikan ke lambang yang
sesungguhnya berdasarkan entropi, terdapat proses yang disebut
pengalokasian bit. Untuk mencapai rasio pemampatan yang sesuai dengan
kebutuhan pemakai, diperlukan upaya untuk mengalokasikan bit-bit yang
sesuai dengan anggaran bit, sedemikian rupa sehingga total distorsi untuk
seluruh koefisien gelombang-singkat menjadi sekecil mungkin.
C. Penyandian.
Penyandian adalah suatu teknik pemampatan data tanpa kerugian
yang berarti. Penyandian dapat dibagi dalam dua kategori, yaitu :
1) Penyandian dengan panjang tetap (Fixed Length Coding / FLC)
2) Penyandian dengan panjang bervariasi (Variable Length
Coding/VLC).
Pada FLC setiap simbol diganti dengan jumlah bit yang sama.
Sedangkan pada VLC yang disebut penyandian entropi, masing-masing
kata sandi yang pendek diterapkan pada simbol yang sering muncul dan
kata sandi yang lebih panjang dikenakan pada simbol yang jarang muncul.
Jika kata sandi ki mempunyai probabilitas pi maka :
∑
i pi = 1
Sehingga penyandian entropi didapatkan sebagai berikut(Swelden, 1995):
H = -
∑
ipi log2 pi
2.6.2. Tolak Ukur Perbedaan Citra Asli Dan Rekonstruksi.
Ciri khusus yang dimiliki alihragam gelombang-singkat diskret
(Discrete Wavelete Transform) sesungguhnya adalah dapat merekonstruksi
secara acak. Hal ini berarti bahwa sesungguhnya tidak ada informasi yang
hilang sesudah hasil alih ragam dikembalikan. Adanya informasi yang
hilang pada pemampatan data citra melalui alih ragam gelombang-singkat
adalah berawal pada saat terjadi kuantisasi. Kuantisasi inilah yang
menyebabkan pemampatan bersifat merugi(lossy).
Karena citra hasil rekonstruksi tidak sama persis dengan citra asli,
maka kinerja pemampatan data citra perlu diamati dengan pengukuran yang
bersifat obyektif. Tolak ukur yang dipergunakan dalam keperluan ini adalah:
a. RMSE (Root Mean-Square Error)
b. PSNR(Peak Signal-to-Noise Ratio).
2.6.3. Rasio Pemampatan Data Citra.
Ukuran kemampuan pemampatan data dapat dilakukan dengan
(Uasli) dengan ukuran citra yang dimampatkan (Umampat). Hasilnya disebut
dengan rasio pemampatan (R).
R =
Umampat Uasli
Semakin besar rasio pemampatan berarti semakin kecil ukuran
hasil pemampatan yang berarti juga semakin baik metode tersebut
digunakan untuk memampatkan.
2.7Wavelet Daubechies
Inggrid Daubechies adalah salah satu tokoh yang paling menonjol
dalam penelitian wavelet karena beliau yang menemukan apa yang disebut
pendukung wavelet orthogonal, sehingga analisis wavelet secara diskret
dapat dipraktekkan. Untuk penulisan nama wavelet Daubechies adalah
sebagai berikut: dbN, dimana N adalah urutan , sedangkan db adalah
surename.
2.7.1. Algoritma GS Daubechies
Algoritma ini digunakan berdasarkan hasil yang dilakukan
Shensa yang memperlihatkan suatu penyandian antara tapis
”Langrange a trous” dan kuadrat pemikiran dari tapis GS
Daubechies.
Perhitungan dari pengurutan skala N Daubechies tapis w
diproses dalam dua langkah yaitu:
1. Menghitung tapis P ”Langrangea trous”
Penjelasan :
• P dihubungkan tapis ”Langrange a trous” adalah suatu
tapis simetris yang panjangnya 4N-1. P diidentifikasi
sebagai :
• Kemudian, jika w menunjukkan dbN Daubechies tapis
penyekalaan dari jumlah 2 , w adalah suatu square root
dari P. Lebih jelasnya, P = conv(wrev(w), w),dan w adalah
suatu tapis dengan panjang 2N, yang berhubungan dengan
polynomial yang memiliki N zeros dilokasi pada -1 dan N –
1 zeros kurang dari 1 dalam modulus.
Bentuk dari wavelet Daubechies:
2.8 Wavelet Meyer
Wavelet Meyer dan fungsi skala didefinisikan dalam frekuensi
domain dari :
2.9 Wavelet Morlet
Wavelet Morlet tidak memiliki fungsi penyekalaan, tetapi bersifat
eksplisit. Fungsi dan bentuk wavelet Morlet :
( )
x =eψ cos (5x)
Bentuk dari waveletMorlet:
Gambar 2.9 Wavelet Morlet
2.10 Teori Analisis Algoritma
Analisis algoritma merupakan proses analisis program, secara khusus
kompleksitas waktu. Analisis algoritma digunakan untuk memperoleh
aturan-aturan yang sederhana, yang menciptakan efisiensi pada algoritma pada saat
algoritma tersebut diimplementasikan dan diuji. Efisiensi dilakukan pada sistem
komputer yang berubah-ubah. Analisis algoritma secara tepat terhadap algoritma
yang komplek biasanya tidak mungkin dilakukan, yang terjadi adalah sebuah
pendekatan yang belum sempurna. Hal ini dikarenakan algoritma yang komplek
terlalu banyak memakai faktor yang mempengaruhi algoritma tersebut. Pada
akhirnya yang dapat dilakukan adalah mencoba untuk melakukan analisis secara
tepat terhadap karakteristik utama dari algoritma.
Pendefinisian parameter-parameter nyata dan aturan-aturan yang pasti
implementasi yang rumit dapat diabaikan. Di lain pihak pendekatan yang
dilakukan tetap diharapkan mampu memberikan informasi yang signifikan tentang
algoritma. Usaha untuk membandingkan perbedaan pada algoritma, yaitu
menentukan yang terbaik sesuai tujuan yang akan dilakukan.
Tingkat efisiensi dari algoritma menyangkut dua hal, yaitu :
1. Waktu Tempuh
Proses dari suatu algoritma di dalam mencari solusi dari suatu masalah
memerlukan waktu tertentu. Satuan waktu yang dibutuhkan diharapkan
dalam waktu yang relatif singkat (efisien). Adapun hal-hal yang
mempengaruhi waktu tempuh tersebut adalah :
• Banyaknya langkah
Semakin banyak langkah atau instruksi yang digunakan, maka
semakin lama waktu tempuh yang dibutuhkan dalam proses
tersebut.
• Besar dan jenis input data
Ukuran atau besar serta jenis masukan yang digunakan akan sangat
berpengaruh pada proses perhitungan. Jika jenis data yang
diinginkan adalah dengan tingkat ketelitian tunggal (single
precision) maka waktu tempuhnya relatif lebih cepat apabila
digunakan data dengan ketelitian ganda (double precision).
Demikian pula jika dibandingkan dengan data-data yang triple
• Jenis operasi
Jenis operasi meliputi operasi aritmatika, operasi logika dan
lain-lain.
• Komputer dan kompilator
Faktor ini diluar dari rancangan atau pembuatan algoritma yang
efisien. Walaupun algoritma yang dibuat sudah mencapai waktu
tempuh yang sangat efisien, namun apabila menggunakan
komputer yang berkemampuan lambat, maka waktu tempuhnya
akan menjadi lambat pula. Kompilator yang digunakan juga akan
berpengaruh terhadap waktu tempuh suatu algoritma.
2. Jumlah Memori Yang Digunakan
Banyaknya langkah yang digunakan dan jenis variabel atau data yang
digunakan dalam suatu algoritma akan mempengaruhi penggunaan
memori. Dalam hal ini diharapkan dapat memperkirakan senerapa banyak
kebutuhan memori yang dipergunakan selama proses berlangsung hingga
diperoleh penyelesaiannya. Dengan demikian dapat disiapkan storage
yang memadai agar proses dari suatu algoritma berlangsung tanpa ada
hambatan (kekurangan memori).
2.10.1 Kompleksitas Waktu (Time Complexity)
Kompleksitas waktu adalah sebuah fungsi dengan ukuran n
masukan atau dengan kata lain waktu yang oleh suatu algoritma untuk
kompleksitas sebuah algoritma dapat diilustrasikan sebagai berikut :
(Azmoodeh,1990)
1< log log n < log n < n < n log n < n2 < n3 < …. < 2n < n!
2.10.1.1 Keadaan dari Kompleksitas Waktu
Komplesitas waktu dari suatu fungsi polinomial F(N) dengan N
input data dapat dibedakan atas tiga keadaan, yaitu : (Suryadi, 1996)
1. Worst Case
Suatu keadaan yang merupakan nilai maksimal dari fungsi F(N) untuk
setiap masukan yang mungkin. Hal ini merupakan suatu keadaan yang
terburuk dari proses di dalam suatu algoritma, sehingga waktu yang
ditempuh oleh algoritma tersebut adalah waktu yang maksimum.
2. Average Case
Average Case merupakan suatu keadaan dari waktu tempuh yang
ekivalen dengan nilai ekspektasi dari fungsi F(N) untuk setiap
masukan data yang mungkin. Nilai ekspetasi dari fungsi F(N) = E,
yang didefinisikan sebagai:
E = n1 p1 + n2 p2 + ... + nk pk
Dengan :
n1, n2, ..., nk merupakan nilai-nilai yang muncul.
P1, p2, ... , pk merupakan peluang (probabilitas) dari setiap nilai (n) yang
3. Best Case
Suatu keadaan yang merupakan nilai minimum dari fungsiF(N) untuk
setiap masukan yang mungkin. Hal ini merupakan suatu keadaan yang
terbaik dari proses didalam suatu algoritma. Dengan demikian waktu
yang ditempuh oleh algoritma tersebut adalah waktu yang minimum.
Hal pertama yang dilakukan untuk mengetahui keadaan kompleksitas
waktu dari suatu algoritma adalah dengan menghitung waktu tempuh (running
time). Waktu tempuh operasi dasar suatu program untuk ukuran masukan (n)
dinyatakan dengan T(n). Dalam beberapa hal T(n) didefinisikan sebagai waktu
tempuh dalam keadaan worst case yang merupakan nilai maksimum melebihi
semua ukuran masukan (n) dari waktu tempuh pada masukan (Aho, 1993).
Waktu tempuh dari suatu algoritma dilambangkan dengan notasi-O (”big
Oh”), dimana definisi secara matematika dari ”big Oh” adalah sebagai berikut :
” f(n) merupakan ”big Oh” dari g(n) dengan notasi (f(n) = O(g(n)) jika dan hanya
jika terdapat dua buah konstanta bulat positif c dan n0 sedemikian sehingga
| f(n) | ≤ c | g(n) | untuk setiap n ≥ n0.”
Adapun teorema-teorema dari waktu tempuh terdiri dari :
Teorema 2.1 ” Penjumlahan Waktu Tempuh ”
” Andaikan T1(n) dan T2(n) waktu tempuh dari dua bagian program P1 dan
P2, dan T1(n) adalah O(f(n)), T2(n) adalah O(g(n)). Maka T1(n) + T2(n)
Contoh 2.1:
Jika terdapat tiga langkah (step) program yang mempunyai waktu tempuh
masing-masing O(n2), (n3), dan O(n log n), maka waktu tempuh dari dua
langkah program yang pertama adalah O(max(n2,n3)) = O(n3). Sehingga
waktu tempuh dari semua langkah adalah O(max(n3,n log n)).
Teorema 2.2 ”Perkalian Waktu Tempuh”
” Andaikan T1(n) dan T2(n) waktu tempuh dari dua bagian program P1 dan
P2, dan T1(n) adalah O(f(n)), T2(n) adalah O(g(n)). Maka T1(n) . T2(n)
adalah O(f(n)g(n)), dan T2(n) . T1(n) adalah O(g(n)f(n)). Sehingga O(d f(n))
adalah O(f(n)), jika d adalah suatu konstanta positif.”
Contoh 2.2:
O(n2/2) adalah O(n2).
Prinsip-prinsip umum untuk menganalisis waktu tempuh :
1. Waktu tempuh untuk setiap perintah penugasan (assigment), read, dan
write adalah O(1).
2. Waktu tempuh dari deretan perintah atau perintah-perintah yang
berurutan diperoleh dengan menjumlahkan waktu tempuh dari setiap
perintah-perintah tersebut.
3. waktu tempuh dari statement –if adalah waktu dari statement yang
akan dieksekusi ditambah dengan waktu untuk mengevaluasi kondisi.
Umumnya waktu tempuh untuk mengevaluasi kondisi adalah O (1).
Sedangkan waktu tempuh dari statement if-then-else adalah waktu
dibutuhkan untuk mengeksekusi statement jika kondisi dipenuhi dan
untuk mengeksekusi statement ketika kondisi tidak dipenuhi.
4. Time untuk mengeksekusi perulangan (loop) adalah jumlahan dari
semua waktu selama perulangan, yaitu dari waktu untuk
mengeksekusi body dari perulangan dan waktu untuk mengevaluasi
kondisi dari perulangan (yang pada umumnya adalah O(n)).
Contoh 2.3:
If A[j-1]>A[j] then (1)
Begin
Temp:= A[j-i]; (2)
A[j-i]:=A[j]; (3)
A[j]:=temp; (4)
End;
Berdasarkan aturan 1, perintah (2), (3), dan (4) mempunyai waktu tempuh
O(1). Berdasarkan teorema penjumlahan waktu tempuh, maka waktu
tempuh untuk kelompok statement dari (2), (3), dan (4) adalah
O(max(1,1,1)) = O(1). Untuk menghitung waktu tempuh dari statement –if
dimana waktu untuk mengevaluasi kondisi mempunyai waktu O(1) dan
akan dikerjakan apabila hasil evaluasi benar (true) atau salah (false), maka
diambil asumsi worst case, yaitu mengandaikan body dari statement –if
dikerjakan. Diperoleh waktu tempuh dari kelompok statement –if diatas
Teorema 2.3 :
” Jika f(n) adalah fungsi polinomial dalam n dengan derajat (tingkat) m, yang ditulis dengan notasi :
f(n) = am nm + am-1 nm-1 + a1 n + a0
Maka ”big oh” dari f(n) adalah n yang dinotasikan f(n) = O(nm).”
Contoh 2.4:
BAB III
ANALISIS DAN PERANCANGAN
3.1 Analisis Sistem
Berkas-berkas data khususnya citra termasuk berkas yang memiliki ukuran
yang cukup besar dan karena media penyimpanan pun terbatas, maka diperlukan
suatu upaya untuk mengkompres (memampatkan) data citra tersebut sehingga
dapat dimuat dalam media penyimpanan. Kemudian, jika berkas tersebut dikirim
via internet akan lebih menguntungkan setelah dikompres daripada sebelum
dikompres karena waktu dan biaya yang diperlukan akan hemat. Maka penulis
akan merancang suatu program yang dapat digunakan untuk memampatkan data
khususnya data citra.
Adapun program pemampatan yang akan dibuat menggunakan Gelombang
Singkat (Wavelet) Morlet, Meyer, dan Daubechies. Selain membuat program
untuk pemampatan data citra dengan ketiga wavelet tersebut, penulis juga akan
membandingkan ketiga wavelet tersebut. Perbandingan yang akan diuji meliputi
waktu tempuh (running time), ukuran file setelah pemampatan.
Program tersebut dirancang dengan mengunakan perangkat lunak
MATLAB versi 6.5.1 yang nantinya dapat digunakan untuk pemapatkan dan
pemekarkan berkas citra dengan format *.Jpg, sehingga didapatkan hasil sebuah
citra baru dengan disertai ukuran berkas setelah pemampatan dan waktu yang
diperlukan selama proses pemampatan.
3.2 Kebutuhan Sistem
Dalam pembuatan tugas akhir ini penulis menggunakan perangkat lunak
MATLAB versi 6.5.1. Selain itu penulis juga menggunakan perangkat keras
yang terdiri dari :
• Processor : Intel P4
• Memory : 256 Mb
• VGA Card : 128 Mb
• Media Penyimpanan : Hard disk
• Media Masukkan : Keyboard
• Sistem Operasi : Windows XP
3.3 Perancangan
Pada tahap ini, akan dilakukan proses perancangan terhadap
program pemampatan dan pemekaran yang akan dibangun. Proses
perancangan ini akan dibagi dalam dua bagian proses yaitu : perancangan
proses, dan perancangan interface program.
3.3.1 Perancangan Proses.
Proses pemampatan dan pemekaran yang terjadi dalam sistem,
akan dijelaskan dalam diagram konteks dan diagram arus data (DAD).
Diagram konteks dan DAD untuk proses-proses yang terjadi dalam sistem
Gambar 3.1 Diagram Konteks
Pada gambar 3.14 terdapat proses pemampatan dan pemekaran data citra
dimana dalam proses tersebut mempunyai masukan ( input ) berupa data gambar (
citra, ukuran citra, format citra) dan menghasilkan keluaran (output) berupa data
pemampatan (citra pemampatan, ukuran citra pemampatan, waktu proses
pemampatan) dan data pemekaran (citra pemekaran, ukuran citra pemekaran,
waktu proses pemekaran).
Gambar 3.2. Diagram Aliran Data Level 1
Pada Diagram diatas terdapat tiga proses yaitu Proses Pemampatan, Proses
Pemekaran dan Proses Menampilkan Hasil. Dalam proses Pemampatan data
masukan (input) berupa citra asli, ukuran citra asli, format citra asli. Sedangkan
waktu proses pemampatan. Demikian juga untuk proses Pemekaran inputannya
berupa citra hasil pemampatan, ukuran citra hasil pemampatan, waktu proses
pemekaran. Dan keluarannya berupa citra hasil pemekaran, ukuran citra hasil
pemekaran, waktu proses pemekaran. Untuk proses ketiga yaitu Menampilkan
Hasil masukannya berasal dari dua proses yaitu proses Pemampatan dan proses
Pemekaran dengan data inputan yang sama yaitu citra hasil pemampatan, ukuran
citra hasil pemampatan, waktu proses pemampatan, berupa citra hasil
pemampatan, ukuran citra hasil pemampatan, waktu proses pemekaran. Untuk
keluaran pada proses ketiga ini berupa citra, ukuran citra, format citra
pemampatan maupun pemekaran.
Gambar 3.3 Diagram Alir Data Level 2 Proses 1
Pada gambar DAD Level II Proses 1 di atas menjelaskan bahwa pada proses
pemampatan data (Proses I dalam DAD Level I) dipecah lagi menjadi tiga proses
yaitu proses pemampatan meyer, proses pemampatan morlet, dan proses
Gambar 3.4 Diagram Aliran Data Level 2 Proses 2
Pada gambar DAD Level II Proses 2 di atas menjelaskan bahwa pada proses
pemekaran data (Proses 2 dalam DAD Level I) dipecah lagi menjadi tiga proses
yaitu proses pemekaran meyer, proses pemekaran morlet, dan proses pemekaran
daubechies.
3.4. Algoritma Program.
Algoritma pemampatan maupun pemekaran citra sangat penting untuk dibuat
karena akan mempermudah dalam proses coding, karena dengan menggunakan
algoritma kita dapat mengetahui jalannya proses yang akan kita buat. Untuk
algoritma program dalam tugas akhir ini terdiri dari 2, yaitu :
• Algoritma Program Pemampatan.
• Algoritma Program Pemekaran.
3.4.1 Algoritma Program Pemampatan Wavelet Daubechies
Untuk algoritma pemampatan langkah-langkahnya adalah :
1. Pilih file citra dan simpan dalam variabel x.
2. Tampilkan citra yang akan dimampatkan.
• Proses penghitungan nilai [P,R] dimana P adalah nilai
Lagrange a Trouse dan R adalah nilai parsial dari w, dimana w
adalah suatu square root dari P.
• Proses penghitungan nilai w.
4. Tampilkan hasil pemampatan.
5. Selesai.
3.4.2 Flowchard Program Pemampatan Wavelet Daubechies
Gambar 3.5 Flowchart pemampatan Daubechies.
3.4.3 Algoritma Program Pemekaran Daubechies
Untuk algoritma pemekaran langkah-langkahnya adalah :
2. Baca ukuran matrik
3. Definisikan larik baris dan kolom.
4. Rekonstruksi semua kolom
• for kolom = 1 tojumlah kolom do
• g = 2
• while g<= jumlah kolom do
- Lakukan langkah rekonstruksi
• g = g*2
• end while
• end for
5. Rekonstruksi semua baris
• for kolom = 1 tojumlah baris do
• g = 2
• while g<= jumlah baris do
- Lakukan langkah rekonstruksi
• g = g*2
• end while
• end for
6. Tampilkan citra hasil pemekaran
3.4.4 Flowchart Proses Pemekaran Daubechies
Gambar 3.6 Flowchart pemekaran Daubechies.
3.4.5 Algoritma Program Pemampatan Wavelet Meyer
Untuk algoritma pemampatan langkah-langkahnya adalah :
1. Pilih file citra simpan pada variabel x.
3. Proses pemampatan.
• P = [-20 70 -84 35 0 0 0 0]
• Y = polyval(p, [-20 70 -84 35 0 0 0 0] )
4. Tampilkan hasil pemampatan.
5. Selesai
3.4.6 Flowchard Program Pemampatan Wavelet Meyer
Gambar 3.7 Flowchart pemampatan Meyer.
3.4.7 Algoritma Program Pemekaran Meyer
Untuk algoritma pemekaran langkah-langkahnya adalah :
1. Baca citra.
2. Baca ukuran matrik
3. Definisikan larik baris dan kolom.
4. Rekonstruksi semua kolom
• g = 2
• while g<= jumlah kolom do
- Lakukan langkah rekonstruksi
• g = g*2
• end while
• end for
5. Rekonstruksi semua baris
• for kolom = 1 tojumlah baris do
• g = 2
• while g<= jumlah baris do
- Lakukan langkah rekonstruksi
• g = g*2
• end while
• end for
6. Tampilkan citra hasil pemekaran
3.4.8 Flowchart Proses Pemekaran Meyer
Gambar 3.8 Flowchart pemekaran Meyer.
3.4.9 Algoritma Program Pemampatan Wavelet Morlet
Untuk algoritma pemampatan langkah-langkahnya adalah :
1. Pilih file citra dan simpan pada variabel x.
3. Proses pemampatan.
• P = [0 -1307/36 0 389/12 0 -13 0 1]
• Y = polyval(p, [0 -1307/36 0 389/12 0 -13 0 1] )
4. Tampilkan hasil pemampatan.
5. Selesai
3.4.10 Flowchard Program Pemampatan Wavelet Morlet
Gambar 3.9 Flowchart pemampatan Morlet.
3.4.11 Algoritma Program Pemekaran Morlet
Untuk algoritma pemekaran langkah-langkahnya adalah :
1. Baca citra.
3. Definisikan larik baris dan kolom.
4. Rekonstruksi semua kolom
• for kolom = 1 tojumlah kolom do
• g = 2
• while g<= jumlah kolom do
- Lakukan langkah rekonstruksi
• g = g*2
• end while
• end for
5. Rekonstruksi semua baris
• for kolom = 1 tojumlah baris do
• g = 2
• while g<= jumlah baris do
- Lakukan langkah rekonstruksi
• g = g*2
• end while
• end for
6. Tampilkan citra hasil pemekaran
3.4.12 Flowchart Proses Pemekaran Morlet
Mulai
Baca citra
Baca ukuran matriks
Definisi larik baris dan kolom
for kolom = 1 to
3.5 Hubungan Antar Tampilan
Keseluruhan antar-muka disajikan menjadi beberapa lapisan untuk
ketingkat yang paling spesifik berdasarkan topik yang dipilih, sehingga nantinya
dapat terjadi suatu hubungan yang hirarkis.
Gambar 3.11 Hubungan antar tampilan
3.6 Perancangan Interface Program
Software yang digunakan dalam pembuatan program tugas akhir ini adalah
MATLAB versi6.5.1. Adapun rancangan untuk Form-Form dalam program tugas
akhir ini sebagai berikut :
3.6.1 Form utama
Gambar 3.12 Form Utama
LOGO
keluar Info
masuk Penyusun
PERBANDINGAN WAVELET MEYER, MORLET, DAUBHECIEST
Pada gambar 3.1 terdapat 4 buah tombol pilihan, yaitu:
• Tombol Informasi : Untuk memanggil Form Informasi dari
program.
• Tombol Masuk : Untuk memanggil Form kompresi citra.
• Tombol Keluar : Untuk keluar dari program.
3.6.2. Form Informasi Program
Pada Form ini terdapat 2 tombol, yaitu:
• Tombol Kembali : Untuk kembali ke Form sebelumnya.
• Tombol Keluar : Untuk keluar dari program.
3.6.3 Form Pilihan
Gambar 3.14 Form Pilihan.
Pada Form ini terdapat 2 buah tombol, yaitu:
• Tombol Buka File : Untuk Formju ke Form open.
• Tombol Keluar : Untuk keluar dari program.
Form Pilihan : Buka File
Keluar
penyusun
Informasi Program
logo
Kembali Keluar
3.6.4 Form Open Citra.
Gambar 3.15 Form Open Citra
Pada Form ini terdapat 2 buah tombol, yaitu :
• Tombol “Open” = memasukan file citra yang telah dipilih
ke Form pemampatan yang kemudian citra tersebut akan
diolah.
• tombol “Cancel” = membatalkan citra yang dipilh untuk
keluar ke Form Kompresi Citra.
Open File
Look in Picture
File name
Open
3.6.5 Form Pemampatan
Gambar 3.16 Form Kompresi Wavelet
Pada Form ini terdapat 6 buah tombol, yaitu :
• Tombol Detail : Untuk menampilkan detail dari citra.
• Tombol Kembali : Untuk Kembali ke Form sebelumnya.
• Tombol Batal : Untuk membatalkan pemrosesan.
• Tombol Meyer : Untuk melakukan pemrosesan citra
dengan metode Meyer.
• Tombol Morlet : Untuk melakukan pemrosesan citra
dengan metode Morlet.
• Tombol Daubechies : Untuk melakukan pemrosesan citra
dengan metode Daubechies.
Pemampatan Citra dengan Metode Wavelet
Citra Asli Citra Pemampatan
Filesize(byte) :
Detail
Kembali
Batal
Metode P
Meyer
Morlet
3.6.6 Form Pemampatan Citra
Gambar 3.17 Form Pemapatan Citra
Pada Form ini terdapat 4 buah tombol, yaitu :
• Tombol Detail : Untuk menampilkan detail dari citra.
• Tombol Kembali : Untuk kembali ke Form sebelumnya.
• Tombol Mekar : Untuk ke Form pemekaran.
• Tombol Batal : Untuk membatalkan pemrosesan.
Pemampatan Citra dengan Metode Wavelet
Citra Asli Citra Pemampatan
Filesize(byte) : Detail
Kembali
Sebelum Pemampatan :
Rasio :
Hasil Pemampatan :
FileSize(byte) :
Waktu :
Detail
Mekarkan
3.6.7 Form Pemekaran Citra.
Gambar 3.18 Form Pemekaran Citra.
Pada Form ini terdapat 2 buah tombol, yaitu :
•Tombol Detail : Untuk menampilkan detail dari citra.
•Tombol Form Utama : Untuk kembali ke Form utama.
3.6.8. Form Detail
Gambar 3.19 Form Detail
Pada Form ini terdapat 2 tombol, yaitu:
• Tombol Kembali : Untuk kembali ke Form sebelumnya.
• Tombol Keluar : Untuk keluar dari program.
Pemekaran Citra dengan Metode Wavelet
Citra Pemampatan Citra Pemekaran
FileSize(byte) : Detail
Form Utama
Pemekaran Citra dengan Metode Wavelet
Citra Pemampatan Citra Pemekaran
Filesize(byte) : Detail
Sebelum Proses : Hasil Pemekaran :
Waktu :
Informasi Citra
BAB IV
IMPLEMENTASI DAN ANALISIS
4.1 Implementasi Program.
Dalam pembuatan program pemampatan dan pemekaran ini menggunakan
perangkat lunak MATLAB versi 6.5.1. Untuk mengaktifkan program dengan
perangkat lunak ini harus menjalankan program MATLAB terlebih dahulu karena
program ini belum dibuat file .EXE nya. Untuk mengaktifkan program
pemampatan dan pemekaran ini pengguna terlebih dahulu mengetikkan perintah
”utama” pada jendela Command Window dimana perintah tersebut akan
memanggil layar tampilan utama program pemampatan dan pemekaran ini.
Gambar 4.1 Jendela Command Window
Akan tetapi sebelum menjalankan program terlebih dahulu kita mengaktifkan
direktori file atau folder tempat program tersebut kita simpan pada Current
Directory
Gambar 4.2 jendela pengaktifan folder (Current Directory)
4.1.1 Tampilan Layar Utama
Gambar 4.3 Layar Utama.
Pada layar utama ini terdapat 3 buah tombol yaitu: tombol INFO
PROGRAM, MASUK, dan KELUAR. Untuk tombol INFO PROGRAM akan
memanggil layar informasi tentang program pemampatan dan pemekaran ini.
Untuk Tombol MASUK akan memanggil tampilan menu pilihan. Sedangkan
untuk tombol KELUAR digunakan untuk keluar dari program ini.
4.1.2 Tampilan Layar Menu Pilihan.
Gambar 4.3 Layar Menu Pilihan
Pada layar utama ini terdapat 2 buah tombol yaitu: tombol BUKA FILE, dan
KELUAR. Untuk tombol BUKA FILE akan memanggil layar open dimana
dilayar tersebut kita dapat memilih file citra yang akan kita mampatkan.
4.1.3 Tampilan Layar Open.
Gambar 4.4 Layar Open file
Pada tampilan ini user akan memilih gambar yang akan dimampatkan.dalam layar
ini terdapat dua tombol yaitu : OPEN dan CANCEL. Pada tombol OPEN akan
digunakan untuk menuju layar kompresi, sedangkan untuk tombol CANCEL akan
kembali ke menu sebelumnya.
4.1.4 Tampilan Layar Kompersi
Gambar 4.4 Layar Menu kompresi
Pada tampilan diatas terdapat enam tombol yaitu : tombol DETAIL, BACK,
BATAL, MEYER, MORLET, dan DAUBECHIES. Untuk tombol DETAIL
digunakan untuk menampilkan detail dari citra yang akan dimampatkan. Tombol
BACK digunakan untuk kembali ke menu sebelumnya. Tombol BATAL
sebelumnya. Tombol MEYER, MORLET, dan DAUBECHIES digunakan untuk
melakukan proses pemampatan dengan menggunakan wavelet tersebut.
4.1.5 Tampilan Menu Pemampatan.
Gambar 4.6 Menu Pemampatan
Pada menu ini terdapat dua kolom yaitu kolom citra asli dan citra pemampatan.
Didalam kolom citra asli terdapat tampilan citra asli, ukuran file citra asli, rasio
pemampatan dan dua tombol yaitu Detail dan Back. Untuk tombol Detail akan
menampilkan detail citra asli, sedangkan untuk tombol Back akan kembali ke
menu sebelumnya. Untuk kolom citra pemampatan terdapat tampilan citra
pemampatan, ukuran citra pemampatan, flops, waktu pemampatan dan tiga
tombol yaitu : Detai, Mekarkan, Batal. Untuk tombol Detail akan menampilakan
detail citra hasil pemampatan, tombol Mekarkan akan menuju ke layar
4.1.6 Tampilan Menu Pemekaran
Gambar 4.7 Layar Menu Pemekaran
Pada menu ini terdapat dua kolom yaitu kolom citra pemampatan dan citra
pemekaran. Didalam kolom citra pemampatan terdapat tampilan citra
pemampatan, ukuran file citra pemampatan, dan tombol yaitu Detail. Untuk
tombol Detail akan menampilkan detail citra asli. Untuk kolom citra pemekaran
terdapat tampilan citra pemekaran, ukuran citra pemekaran, flops, waktu
pemekaran dan dua tombol yaitu : Detai, Menu Utama. Untuk tombol Detail akan
menampilakan detail citra hasil pemekaranan, tombol Menu Utama akan menuju
ke layar Menu Utama.
4.1.7 Tampilan Menu Informasi
Pada menu ini berisi informasi program pemampatan citra dengan metode wavelet
Daubechies, Morlet, dan Meyer.
4.1.8 Tampilan Menu Detai
Gambar 4.9 Layar Menu Detai.
Menu Detail ini berisi informasi detail dari citra yang akan dimampatkan, setelah
dimampatkan, maupun sesudah dimekarkan. Isi dari informasi tersebut adalah
nama file, ukuran file (dalam byte), format citra, lebar dan tinggi citra.
4.1.9 Tampilan Menu Peringatan.
Gambar 4.10 Tampilan peringatan
4.2 Analisis Program
Pada bagian ini akan dijelaskan bagaimana menggunakan Gelombang
Singkat Morlet, Meyer, dan Daubechies untuk pemampatan dan pemekaran
4.2.1 Gelombang Singkat Daubechies
Untuk dapat menggunakan Gelombang Singkat ini, maka diperlukan suatu
fungsi yang telah disediakan pada Perangkat Lunak MATLAB untuk tujuan
kompresi, yaitu fungsi dbaux yang diberikan dibawah ini:
%DBAUX Daubechies wavelet filter computation.
% W = DBAUX(N,SUMW) is the order N Daubechies scaling % filter such that SUM(W) = SUMW.
% Possible values for N are: % N = 1, 2, 3, ...
% Caution: Instability may occur when N is too large. % W = DBAUX(N) is equivalent to W = DBAUX(N,1) % W = DBAUX(N,0) is equivalent to W = DBAUX(N,1) if errargn(mfilename,nargin,[1:2],nargout,[0:1]), error(’*’); end if nargin < 2 | sumw==0 , sumw = 1; end
% if P is the ”Lagrange a trous” filter of order N % and if w denotes the order N daub scaling filter, % one has: P = 2*conv(wrev(w),w).
[P,R] = wlagrang(N);
% R gives partial root location of w. % w have N zeros located at -1.
W = real(poly([R(abs(R)<1);-ones(N,1)])); w = sumw*(w/sum(w));
Fungsi ini sudah disediakan oleh perangkat lunak MATLAB dengan nama
dbaux. Fungsi ini akan melakukan penghitungan nilai w yang nantinya digunakan
untuk memampatkan citra asli. Sebelum nilai w dihitung akan dilakukan
penghitung nilai [P,R] terlebih dahulu dengan menggunakan fungsi wlagrang.
Dimana nilai P adalah nilai Lagrang a Trous dari pemfilteran nilai N, dimana
dalam program ini nilai N = 1. Sedangkan nilai R adalah nilai yang digunakan
untuk menentukan lokasi dari w.
4.2.2 Gelombang Singkat Meyer.
Hal yang sama dapat dilakukan pada gelombang singkat ini.
Dengan fungsi taylortool dapat dibuat fungsi Meyer untuk keperluan