Upload
trankiet
View
233
Download
0
Embed Size (px)
Citation preview
KOMPRESI CITRA MENGGUNAKAN METODE DISCRETE COSINE TRANSFORM ( DCT )
SKRIPSI
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Sains Program Studi Ilmu Komputer
Oleh:
Albertus Guritno Noviardhi
NIM : 033124001
PROGRAM STUDI ILMU KOMPUTER
JURUSAN MATEMATIKA FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA YOGYAKARTA
2008
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
IMAGE COMPRESSION USING DISCRETE COSINE TRANSFORM (DCT) METHOD
THESIS
Presented As Partial Fulfillment of The Requirenets To Obtain The Sarjana Sains Degree
In Computer Science
By: Albertus Guritno Noviardhi
Student Number : 033124001
STUDY PROGRAM OF COMPUTER SCIENCE DEPARTEMENT OF MATHEMATICS
FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY
YOGYAKARTA 2008
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vi
Teman... Jika di ambang kesedihan terpikirkah kita tentang bgmn ia bermula? "Kesedihan yg mendatang bukanlah pengakhiran sebuah kehidupan" kata yg mudah diluncurkan dr bibir yg blm pasti seikhlas hati yg merasa Teman... Jika mentari menyinari alam terpikirkah dikau tentang diri temanmu yg mungkin merindukan dirimu tapi gagal utk bertemu lantaran batasan jarak & waktu Teman... sesungguhnya aku amat menyayangimu sebagaimana batasan kasih sayang seorang teman kepada temannya Taukah dikau? Setiap kerutan di wajahmu turut melancarkan pedih di hati ini Teman... Aku tdk mampu mengucapkan pujian atau kata‐kata manis utk memikat hatimu Tetapi,jika kejujuran,kesetiaan,dan keakraban sebagai seorang teman, moga2 hati ini belum keras Teman... Air mata ini pasti akan menetes bila mengingat saat‐saat bersamamu keriangan dan senda gurau menjadi sulaman indah dari hari‐hari kita keakraban yg terjadi
kadangkala mengobati kerinduan diri ini pd keluarga yg jauh Teman... Percayalah,dirimu telah banyak menyadarkan diri tentang arti kehidupan tentang pribadi manusia yg berpendirian tentang arti persahabatan utuh tentang apa itu arti rindu dan kasih sayang tentang emosi dan perasaan yg kadang kala berubah dan datang tak diundang Bagaimana aku habiskan tulisan ini sedangkan cerita bersamamu seperti tidak akan habis Ada saja persoalan yg bakal tercerna di pikiran ini bila mengenang dirimu Yang pastinya... sering melakarkan senyum paling indah, bila saja bibir ini menyebutkan namamu aku pasti akan merindukan dirimu... (Album kenangan IKAMUDIKA 2002-2004)
Kupersembahkan karya ini untuk Jesus Christ, my Lord
Bapak dan Ibu, teladanku Mbak Ria, my Sister
Almamaterku
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vii
ABSTRAK
Pemampatan data adalah proses mengubah data masukan menjadi sebuah data lain yang ukuran file-nya lebih kecil dengan cara menghilangkan redundansi data (data yang tidak mengandung informasi terkait atau merupakan pengulangan dari informasi yang sudah dinyatakan sebelumnya atau yang sudah diketahui). Pemampatan citra adalah salah satu aplikasi dari pemampatan data dalam citra digital yang mempunyai tujuan untuk mengurangi jumlah bit dari sebuah citra, agar dapat disimpan ataupun ditransmisikan secara lebih efisien.Salah satu metode yang digunakan untuk pemampatan citra adalah Discrete Cosine Transform (DCT), yang merupakan kelas dari operasi matematika Fast Fourier Transform (FFT).
Dalam tulisan ini, DCT digunakan dalam proses pemampatan file citra, yaitu untuk mentransformasikan sebuah matriks citra menjadi sebuah matriks dengan representasi lain. Dengan demikian dapat diketahui data mana yang harus dihilangkan, sehingga ukuran file citra tersebut dapat menjadi lebih kecil. Namun jika data hasil pemampatan tersebut dikembalikan (direkonstruksi) maka data tersebut dapat menyerupai data asli.
Proses pemampatan ini dapat menggunakan 2 (dua) cara yaitu berdasarkan prosentase dan berdasarkan nilai ambang. Dari hasil pengujian yang dilakukan terhadap suatu citra dengan resolusi 128x128 pixel, maka untuk memperoleh hasil yang baik, metode yang digunakan adalah “Blok Matriks” dengan besar blok adalah 8x8 dan nilai ambang kuantisasi dibawah 50.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
viii
ABSTRACT Data compression is a process to change an input data becomes another
data which has smaller size by reducing data redundancy (data that don’t content related information or constitute repeating of information which is already mentioned or known). Image compression is one of data compression application in digital image. In order, the objective is to reduce the amount of bit of an image, so that it can be saved or tansmited efficiently.One of the method that is used to compress the image is Discrete Cosine Transform (DCT), one of mathemathic operation class Fast Fourier Transform (FFT).
In this paper, DCT is used in an image compression process, that is to transform a matrix of an image become a matrix with a different representation. Thus we can know which data that have to be erased, so the image file size can be smaller. But if the compression data output mentioned is being returned (reconstructed) then that data can be similar with the original data.
This compression process can use 2 (two) method that is percentage based and threshold value based. From the output of the experiment that has done toward and image which has resolution 128x128 pixel, so to get the good output, methode that have to used is “Blok Matriks” with the amount of the blok is 8x8 and threshhold value is under 50.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
x
KATA PENGANTAR
Puji syukur penulis panjatkan ke Tuhan atas berkat dan cinta kasih – Nya,
sehingga penulis dapat menyelesaikan penelitian dan penyusunan skripsi berjudul
“Kompresi Citra Menggunakan Metode Discrete Cosine Transform”. Skripsi ini
disusun sebagai salah satu syarat mencapai gelar Sarjana Sains (S.Si) Program Studi
Ilmu Komputer.
Dalam pelaksanaan penelitian dan penyusunan skripsi ini tidak terlepas dari
bantuan berbagai pihak. Oleh karena itu penulis ucapkan terima kasih kepada:
1. Bapak Y. Joko Nugroho, S.Si selaku dosen pembimbing, terima kasih
atas segala bimbingan, saran, kritik dan kesabarannya dalam
membimbing penulis selama menyelesaikan skripsi ini.
2. Ibu P. H. Prima Rosa, S.Si, M.Sc. , selaku Ketua Program Studi ilmu
komputer. Terima kasih atas bimbingan dan nasihatnya kepada kami,
generasi terakhir Ikom.
3. Anastasia Rita Widiarti, S.Si., M.Kom selaku dosen penguji.
4. Sri Hartati Wijono, S.Si., M.Kom selaku dosen penguji.
5. Segenap dosen Fakultas Sains dan Teknologi Universitas Sanata Dharma.
6. Bapak dan Ibu, Mbak Ria, Mbak Ayuk terima kasih atas doa, restu,
dukungan dan perhatian kalian. Luv U all...
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xi
7. ‘Adek’ yang selalu mendukung dan selalu ada untuk memberikan
dukungan, semangat, dan doa. Terima kasih telah menemaniku dalam
perjalanan ini.
8. Mas Tukijo dan Mbak Linda, beserta segenap karyawan sekretariat.
9. Mas Susilo, terima kasih atas bantuannya dan kerjasamanya selama ini.
10. Komunitas Lab, Beni, Lilik, Iyus, Hendro, Ferry, Yus, Kornel (logikamu
cemerlang), terima kasih untuk dukungan dan bantuan kalian.
11. Teman–teman IKOM angkatan 2003, Friendship never end.
12. Teman-teman Gregorius Caecilia Choir atas kebersamaan dan
kekompakan kalian. Thank’s for the wonderful voice...
13. Tim BPKnet; Didik, Dani, Anto’x, Agung Warenk, Seto, Yunan, Danan;
kalian membuat komplek kita menjadi Cyber Komplek.
14. Alfonsus Maria de Ligouri youngsters; Rena, Esta, Kiki, Yussi, Yunan,
atas kebersamaan dan kekompakannya.
15. Dan pihak-pihak yang belum dapat penulis sebutkan satu per satu.
Penulis menyadari bahwa skripsi ini masih jauh dari sempurna. Harapan
penulis semoga skripsi ini bermanfaat bagi kemajuan kita semua.
Yogyakarta, 8 Oktober 2008
Penulis
Albertus Guritno Noviardhi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xii
DAFTAR ISI
HALAMAN JUDUL................................................................................ i
HALAMAN JUDUL (INGGRIS)............................................................ ii
HALAMAN PERSETUJUAN PEMBIMBING...................................... iii
HALAMAN PENGESAHAN................................................................. iv
PERNYATAAN KEASLIAN KARYA.................................................. v
HALAMAN PERSEMBAHAN............................................................... vi
ABSTRAK................................................................................................ vii
ABSTRACT.............................................................................................. viii
HALAMAN PERSETUJUAN PUBLIKASI.......................................... ix
KATA PENGANTAR.............................................................................. x
DAFTAR ISI............................................................................................ xii
DAFTAR TABEL................................................................................. ... xvi
DAFTAR GAMBAR............................................................................... xvii
BAB I PENDAHULUAN
A. Latar Belakang......................................................................... 1
B. Perumusan Masalah................................................................. 2
C. Tujuan...................................................................................... 2
D. Manfaat.................................................................................... 3
E. Batasan Masalah....................................................................... 3
F. Metodologi............................................................................... 3
G. Sistematika Penulisan............................................................... 4
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiii
BAB II OPTIMISASI FUNGSI
A. Citra ........................................................................................ 6
B. Elemen-elemen Citra Digital.................................................... 8
1. Kecerahan (Brightness)...................................................... 9
2. Kontras (Contrast)............................................................. 9
3. Kontur (Contour)............................................................... 9
4. Warna (Color).................................................................... 9
5. Bentuk (Shape).................................................................. 9
6. Tekstur (Texture)............................................................... 10
C. Warna........................................................................................ 10
1. Intensity/brigthness/luminance............................................. 11
2. Hue...................................................................................... 11
3. Saturation............................................................................. 11
D. Format Berkas Bitmap............................................................... 12
E. Kompresi Data........................................................................... 15
1. Pendekatan Ruang............................................................... 15
2. Pendekatan Statistik............................................................ 16
3. Pendekatan Kuantisasi......................................................... 16
4. Pendekatan Fraktal............................................................... 16
F. Faktor Penting dalam Kompresi Data......................................... 18
1. Scalability.............................................................................. 18
a. Quality Progrresive........................................................ 18
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiv
b. Resolution Prograsive.................................................... 18
c. Component Prograsive................................................... 18
2. Region of Coding................................................................... 18
3. Meta Information................................................................... 18
G. Metode Kompresi Data............................................................... 19
1. Subsampling.......................................................................... 19
2. Pengurangan Kedalaman bit.................................................. 19
3. Transformasi........................................................................... 19
H. Faktor Penting dalam Pembutan Aplikasi Kompresi Data........... 20
I. Discrete Cosine Transform.......................................................... 21
J. Kuantisasi dan Zig-zag Scanning................................................. 31
K. Kompresi dengan DCT................................................................ 33
L. Matriks Jarang.............................................................................. 35
M. Pengukuran Eror dan Rasio Pemampatan dalam Kompresi Citra.. 37
BAB III ANALISIS DAN PERANCANGAN PROGRAM
A. Perancangan Secara Umum......................................................... 39
B. Perancangan Secara rinci............................................................. 40
1. Perancangan Proses................................................................. 40
a. Diagram Konteks (DAD level 0)......................................... 40
b. DAD level 1........................................................................ 41
c. DAD level 2........................................................................ 44
d. Perancangan Struktur Menu................................................ 45
e. Perancangan Antarmuka (Interface)................................... 48
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xv
D. Algoritma...................................................................................... 55
BAB IV IMPLEMENTASI DAN PEMBAHASAN PROGRAM
A. Implemantasi Program.................................................................. 60
B. Pembahasan Program................................................................... 70
C. Pengujian Program....................................................................... 73
1. Persiapan berkas sumber ...................................................... 73
2. Pengaktifan program............................................................. 74
D. Perbandingan Hasil Pemampatan................................................. 85
1. Metode “Blok Matriks”......................................................... 85
2. Metode “Langsung”.............................................................. 90
BAB V PENUTUP
A. Kesimpulan ................................................................................ 93
B. Saran........................................................................................... 94
DAFTAR PUSTAKA……...............………………………...…………. 95
LAMPIRAN............................................................................................. 97
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvi
DAFTAR TABEL
Tabel 2.1 Header berkas bitmap (panjang 14 byte)................................. 13
Tabel 2.2 Header bitmap versi lama dari Microsoft Windows (12 byte).. 13
Tabel 2.3 Header bitmap versi baru dari Microsoft Windows (40 byte).. 13
Tabel 2.4 Header bitmap versi lama dari IBM OS/2 (64 byte).............. 14
Tabel 2.5 Tabel penghitungan DCT 1 dimensi........................................ 25
Tabel 2.6 Tabel penghitungan DCT 2 dimensi........................................ 30
Tabel 4.1 Citra uji..................................................................................... 73
Tabel 4.2 Data pengujian program metode Blok Matriks 8x8................. 85
Tabel 4.3 Data pengujian program metode Blok Matriks 16x16............. 86
Tabel 4.4 Data pengujian program metode Blok Matriks 32x32............. 87
Tabel 4.5 Data pengujian program metode Blok Matriks 64x64............. 87
Tabel 4.6 Data pengujian program metode Blok Matriks 8x8................. 87
Tabel 4.7 Data pengujian program metode Blok Matriks 16x16............. 88
Tabel 4.8 Data pengujian program metode Blok Matriks 32x32............. 88
Tabel 4.9 Data pengujian program metode Blok Matriks 64x64............. 89
Tabel 4.10 Data pengujian program metode Blok Matriks 128x128....... 89
Tabel 4.11 Data pengujian program metode Langsung 64x64................ 90
Tabel 4.12 Data pengujian program metode Langsung 128x128............ 91
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvii
DAFTAR GAMBAR
Gambar 2.1 Pixel...................................................................................... 6
Gambar 2.2 Citra Biner............................................................................ 7
Gambar 2.3 Citra gray scale..................................................................... 7
Gambar 2.4 Citra berwarna....................................................................... 8
Gambar 2.5 Warna RGB........................................................................... 11
Gambar 2.6 Urutan Zig-zag scan............................................................... 32
Gambar 3.1 Rancangan DAD level 0........................................................ 40
Gambar 3.2 Rancangan DAD level 1........................................................ 41
Gambar 3.3 Rancangan DAD level 2....................................................... 44
Gambar 3.4 Rancangan menu utama........................................................ 45
Gambar 3.5 Rancangan menu edit............................................................ 46
Gambar 3.6 Rancangan menu help........................................................... 47
Gambar 3.7 Rancangan tampilan awal program....................................... 48
Gambar 3.8 Rancangan tampilan program utama..................................... 49
Gambar 3.9 Rancangan tampilan buka berkas citra.................................. 51
Gambar 3.10 Rancangan tampilan help....................................................... 52
Gambar 3.11 Rancangan tampilan pemilihan metode kuantisasi.............. 53
Gambar 3.12 Rancangan tampilan “Lihat Blok”....................................... 53
Gambar 3.13 Rancangan tampilan “Hitung Error”.................................... 54
Gambar 3.14 Flow chart transformasi........................................................ 56
Gambar 3.15 Prosedur hitung sigma DCT.................................................. 57
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xviii
Gambar 3.16 Flow chart invers................................................................. 58
Gambar 3.15 Prosedur hitung sigma invers.............................................. 58
Gambar 4.1 Tampilan awal program.......................................................... 60
Gambar 4.2 Tampilan program utama...................................................... 61
Gambar 4.3 Tombol “Buka File Citra”..................................................... 62
Gambar 4.4 Menu bar “Buka File Citra”.................................................. 62
Gambar 4.5 Radiobutton dan popup menu pemilihan metode kuantisasi.. 62
Gambar 4.6 Tombol “Transformasi”.......................................................... 63
Gambar 4.7 Menu bar “Transformasi”...................................................... 64
Gambar 4.8 Tombol “Rekonstruksi”......................................................... 64
Gambar 4.9 Menu bar “Rekonstruksi”...................................................... 64
Gambar 4.10 Tombol “Tampilkan” dan Edit text lihat blok..................... 65
Gambar 4.11 Grid citra asli, transformasi, dan rekonstruksi.................... 65
Gambar 4.12 Contoh penerapan kuantisasi............................................... 66
Gambar 4.13 Implementasi penerapan input nilai kuantisasi.................... 67
Gambar 4.14 Implementasi penerapan prosentase kuantisasi.................. 68
Gambar 4.15 Tombol “Reset”.................................................................. 69
Gambar 4.16 Menu bar “Reset”............................................................... 69
Gambar 4.17 Menu bar “Help” dan “About”.......................................... 70
Gambar 4.18 Tampilan Buka File Citra................................................... 74
Gambar 4.19 Citra asli.............................................................................. 75
Gambar 4.20 Tampilan citra transformasi................................................ 76
Gambar 4.21 Tampilan citra setelah rekonstruksi tanpa di kuantisasi..... 78
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xix
Gambar 4.22 Tampilan citra setelah rekonstruksi setelah dikuantisasi.... 79
Gambar 4.23 Tampilan report.................................................................. 80
Gambar 4.24 Tampilan petunjuk penggunaan program........................... 81
Gambar 4.25 Tampilan informasi program.............................................. 82
Gambar 4.26 Tampilan pesan error......................................................... 83
Gambar 4.27 Tampilan peringatan 1........................................................ 83
Gambar 4.28 Tampilan peringatan 2........................................................ 84
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
BAB I
PENDAHULUAN
A. Latar Belakang
Data atau informasi sekarang ini tidak hanya disajikan dalam bentuk teks
saja, tetapi juga dapat berupa gambar, suara, dan video. Keempat macam data ini
sering disebut dengan multimedia. Gambar sebagai salah satu komponen
multimedia adalah salah satu bentuk representasi data yang efisien. Gambar atau
citra mempunyai karakteristik yang tidak dipunyai oleh data teks dalam hal
penyajian data.
Pada masa sekarang ini, komputer sudah dilengkapi dengan kemampuan
grafis untuk menyampaikan sebuah informasi. Namun ada beberapa kendala yang
biasa dihadapi yaitu diantaranya adalah pada besarnya ukuran file yang
dibutuhkan untuk menyimpan data tersebut. Akibatnya jika data tersebut akan
ditransmisikan ke tempat lain tentunya membutuhkan jalur yang besar, sehingga
berdampak pula terhadap lamanya waktu yang digunakan untuk mentransmisikan
data tersebut yang akhirnya meningkatkan biaya yang dikeluarkan. Selain itu juga
banyaknya pengguna komputer yang cenderung untuk menyimpan suatu data
(dalam hal ini adalah data gambar), daripada membuangnya, walaupun belum
tentu data tersebut berguna. Hal ini mengakibatkan meningkatnya kebutuhan akan
tempat penyimpanan yang besar dalam komputer.
Untuk mengatasi berbagai masalah tersebut di atas, maka dibutuhkan suatu
teknik untuk dapat memperkecil ukuran data gambar, yaitu dengan mengurangi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
redundancy atau duplikasi data. Teknik tersebut dinamakan teknik kompresi.
Ada beberapa macam metode kompresi data citra diantaranya adalah
Discrete Cosine Transform (DCT), Fast Forier Transform (FFT), Huffman, dan
lain-lain. Dalam tugas akhir ini, penulis memilih teknik kompresi citra
menggunakan metode Discrete Cosine Transform karena metode transformasi ini
dapat secara efektif membuang data-data yang tidak diperlukan dengan
pengurangan kualitas yang masih dapat ditoleransi oleh mata manusia, jika
dibandingkan dengan citra aslinya. Jika dibandingkan dengan fourier transform,
karakteristik penyusunan kerapatan signal DCT ini lebih baik dan DCT
memberikan konsentrasi energi pada koefisien DCT frekuensi rendah.
B. Perumusan Masalah
Berdasarkan latar belakang, maka dapat dirumuskan permasalahan yaitu
bagaimana menerapkan algoritma Discrete Cosine Transform untuk memperkecil
ukuran file sebuah data citra.
C. Tujuan
1. Mengetahui penerapan DCT untuk memampatkan ukuran file citra.
2. Mengetahui efektivitas DCT untuk memampatkan ukuran file citra.
3. Mengetahui tingkatan toleransi kesalahan pada pemampatan citra dengan
metode DCT.
4. Membuat program pemampatan data citra menggunakan metode DCT
dengan menggunakan MATLAB 7.0.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
D. Manfaat
Pembuatan aplikasi ini bermanfaat untuk menganalisis sebuah file citra,
dari citra asli dan setelah citra tersebut direkonstruksi. Analisis yang dilakukan
dapat berupa perbandingan kualitas citra secara langsung maupun dengan melihat
perbedaan nilai-nilainya. Sehingga pengguna dapat mengetahui seberapa efektif
penggunaan DCT pada pemampatan data citra.
E. Batasan Masalah
Dalam pembuatan aplikasi ini, masalah dibatasi pada :
1. Citra yang akan dimampatkan adalah citra greyscale dengan format *.BMP,
karena format ini belum mengalami penurunan kualitas citra dan belum
terkompresi.
2. Citra yang akan dimampatkan mempunyai resolusi 2n x 2n.
3. Citra yang akan dimampatkan tidak terbatas ukurannya, dengan konsekuensi
semakin besar ukuran citra, maka akan semakin lama proses pemampatan.
4. Metode yang dipakai untuk kompresi citra adalah Discrete Cosine Transform
(DCT).
5. Software yang digunakan adalah Matlab 7.0.
F. Metodologi
Metodologi dalam penulisan ini adalah:
1. Studi Literatur, yaitu mempelajari teori-teori yang berhubungan dengan
kompresi data, dan khususnya kompresi citra menggunakan DCT.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
2. Perancangan sistem:
a. Desain interface.
b. Desain DAD.
c. Rancangan algoritma dan penerapannya.
3. Membuat program aplikasi dan menggabungkan dengan interface.
Metode yang digunakan untuk penelitian ini adalah dengan prototyping.
Dengan metode ini, maka penulis langsung dapat menguji program yang telah
dibuat, sehingga kesalahan-kesalahan yang ada dapat segera diperbaiki.
G. SISTEMATIKA PENULISAN
BAB I PENDAHULUAN
Bab ini berisi tentang penjelasan singkat tentang latar belakang, rumusan masalah,
tujuan, batasan masalah, dan metodologi penulisan.
BAB II DASAR TEORI
Berisi tentang dasar teori tentang kompresi data, yang digunakan untuk
mengerjakan tugas akhir ini.
BAB III ANALISIS DAN PERANCANGAN PROGRAM
Berisi tentang perancangan sistem yang terdiri dari analisis sistem dan
perancangan user interface.
BAB IV IMPLEMENTASI DAN PEMBAHASAN
Berisi tentang implementasi dari desain yang sudah dibuat, beserta dengan
pembahasannya dan hasil program.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
BAB V KESIMPULAN DAN SARAN
Berisi kesimpulan dan saran terhadap hasil-hasil dari penulisan atau pembuatan
program.
DAFTAR PUSTAKA
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
BAB II
DASAR TEORI
A. Citra
Secara harafiah, citra adalah gambar pada bidang dwimatra atau dua
dimensi (Munir, 2004). Citra dapat digolongkan menjadi 2 golongan, yaitu citra
kontinu dan citra diskrit. Citra kontinu dihasilkan oleh sistem optik yang
menerima sinyal analog, misalnya kamera analog, mata manusia. Sedangkan citra
diskrit diperoleh melalui proses digitalisasi pada citra kontinu. Beberapa sistem
optik dilengkapi dengan fungsi digitalisasi sehingga mampu untuk menghasilkan
citra diskrit, misalnya kamera digital dan scanner. Citra diskrit disebut juga citra
digital.
Citra digital dapat didefinisikan sebagai fungsi dua variabel f(x,y) dimana
x dan y adalah koordinat spasial (bidang) dan nilai f(x,y) merupakan intensitas
citra pada koordinat tersebut, atau biasa disebut pixel (picture element).
y
x
Gambar 2.1. Pixel
)1,1( yxf
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
Citra dapat dibedakan menjadi 3 kategori yaitu citra biner, citra keabuan
(grayscale) dan citra berwarna.
Citra biner terdiri dari 2 warna yaitu hitam dan putih. Satu satuan warna
atau yang biasa disebut pixel, merepresentasikan sebuah titik dalam sebuah citra.
Dalam citra biner, nilai pixel yang ada adalah 0 untuk warna hitam dan 1 untuk
warna putih.
Gambar 2.2 Citra Biner
Sedangkan untuk citra grayscale, memiliki n tingkatan warna keabuan (0
s/d n-1). Biasanya tingkatan warna keabuan tersebut terdiri dari 4, 8, 12, sampai
dengan 256 warna, tergantung dari derajat keabuannya. Kebanyakan citra
grayscale dikuantisasi pada 256 warna dan membutuhkan 8 bit (1 byte) untuk
representasi tiap pixel-nya.
Gambar 2.3 Citra gray scale
Citra berwarna pada dasarnya merupakan kombinasi dari 3 warna primer
yaitu merah, hijau dan biru (Red, Green, Blue – RGB). Tiap pixel disusun oleh
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
ketiga komponen tersebut.
Pada citra bitmap 256 warna, setiap pixel panjangnya 8 bit, dan komponen
warna RGB-nya disimpan dalam tabel RGB yang disebut palet (palette). Setiap
komponen warna panjangnya 8 bit, sehingga ada 256 nilai keabuan untuk
komponen warna merah, 256 nilai keabuan untuk komponen warna hijau, dan 256
nilai keabuan untuk komponen warna biru. Nilai setiap pixel tidak menyatakan
derajat keabuannya secara langsung, tetapi nilai pixel menyatakan index tabel
RGB yang memuat nilai keabuan merah, nilai keabuan hijau, dan nilai keabuan
biru. Dalam hal derajat keabuan tersebut, semakin tinggi nilai derajat keabuan,
maka semakin cerah warnanya.
Kebanyakan file citra berwarna berukuran besar, karena 1 pixel
memerlukan tempat berukuran 3 x 8 bit = 24 bit, atau sama dengan 3 byte.
Misalnya sebuah citra berwarna mempunyai resolusi 512 x 512, maka citra
tersebut akan disimpan dalam sebuah file berukuran 512 x 512 x 3 byte = 786.432
byte.
Gambar 2.4 Citra berwarna
B. Elemen-elemen Citra Digital
Citra digital mempunyai beberapa elemen dasar yang penting, diantaranya
adalah:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
1. Kecerahan (Brightness)
Kecerahan atau yang sering disebut dengan intensitas cahaya pada sebuah
pixel dalam sebuah citra sebenarnya bukan intensitas yang riil, tetapi merupakan
intensitas rata-rata dari suatu area yang melingkupinya. Penglihatan manusia
mampu menyesuaikan dengan tingkat kecerahan dengan jangkauan sebesar 1010.
2. Kontras (Contrast)
Kontras menyatakan sebaran terang dan gelap dalam sebuah citra. Sebuah
citra dengan kontras rendah dicirikan oleh sebagian besar komposisi citra yang
cenderung terang atau gelap. Sedangkan citra dengan kontras yang baik,
komposisi gelap dan terang tersebar dengan merata.
3. Kontur (Contour)
Kontur adalah keadaan yang ditimbulkan oleh perubahan intensitas pada
pixel-pixel yang bertetangga. Karena adanya perubahan intensitas ini, maka mata
manusia mampu mendeteksi tepi-tepi pada sebuah citra.
4. Warna (Color)
Warna adalah persepsi yang dirasakan oleh mata manusia terhadap
panjang gelombang cahaya yang dipantulkan oleh objek. Warna-warna yang
diterima oleh mata manusia merupakan hasil kombinasi cahaya dengan panjang
gelombang yang berbeda.
5. Bentuk (Shape)
Bentuk adalah sebuah properti intrinsik dari sebuah objek tiga dimensi.
Pada umumnya, citra yang dibentuk oleh mata merupakan citra dua dimensi,
sedangkan objek yang dilihat merupakan objek tiga dimensi. Informasi bentuk
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
objek dapat diekstraksi dari citra pada permulaan prapengolahan dan segmentasi
citra.
6. Tekstur (Texture)
Tekstur dicirikan sebagai distribusi spasial dari derajat keabuan di dalam
sekumpulan pixel-pixel yang bertetangga. Jadi tekstur tidak dapat didefinisikan
untuk sebuah pixel, melainkan untuk satu kesatuan citra.
C. Warna
Warna yang diterima oleh mata manusia dari sebuah objek ditentukan oleh
warna sinar yang dipantulkan oleh objek tersebut. Warna sinar yang direspon oleh
mata adalah sinar tampak (visible spectrum) dengan penjang gelombang antara
400 (biru) sampai 700 nanometer (merah).
Kombinasi warna yang memberikan rentang warna paling lebar adalah red
(R), green (G), dan blue (B). Ketiga warna tersebut dinamakan warna pokok
(primaries). Warna RGB yang sering disebut dengan truecolor (24bit/pixel) sering
dituliskan dengan 3 bilangan bulat antara 0 sampai dengan 255, yang masing-
masing merepresentasikan intensitas dari komponen warna merah, hijau, dan biru.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
Gambar 2.5 Warna RGB
Selain dari ketiga warna red, green, blue (RGB), warna juga dapat
dimodelkan berdasarkan atribut warnanya. Setiap warna mempunyai 3 atribut
yaitu:
1. Intensity/brightness/luminance
Atribut yang menyatakan banyknya cahaya yang diterima oleh mata, tanpa
mempedulikan warna. Kisaran nilainya atara gelap (hitam) dan terang (putih).
2. Hue
Hue berasosiasi dengan panjang gelombang cahaya. Hue digunakan untuk
membedakan warna-warna.
3. Saturation
Saturation menyatakan tingkat kemurnaian warna cahaya, yaitu
mengindikasikan seberapa warna putih diberikan pada warna. Sebagai contoh,
warna merah adalah 100% warna jenuh (saturated color), sedangkan warna pink
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
adalah warna merah dengan tingkat kejenuhan yang rendah, karena ada warna
putih di dalamnya. Jadi jika hue menyatakan warna sebenarnya, maka saturation
menyatakan seberapa dalam warna tersebut.
Warna RGB juga mempunyai warna-warna komplementer, yaitu warna
cyan, magenta, dan yellow (CMY). Dua buah warna komplementer tersebut jika
dicampur dengan perbandingan yang tepat akan menghasilkan warna putih.
Model warna CMY dapt digunakan untuk mencetak citra berwarna, tetapi
karena ketidaksempurnaan tinta, model CMY tidak dapat menghasilkan warna
hitam dengan baik. Karena itu, model warna CMY disempurnakan menjadi model
CMYK, yang dalam hal ini K (key) menyatakan warna keempat.
D. Format Berkas Bitmap
Sebuah citra digital disimpan dalam sebuah file yang mempunyai format
tertentu. Salah satu format file yang digunakan untuk menyimpan suatu citra yang
kita kenal adalah bitmap (BMP). Format BMP ini pada umumnya berukuran besar
karena belum dimampatkan. Sehingga kualitas citra dengan format ini belum
berkurang, karena tidak ada data yang hilang.
Saat ini beredar tiga versi berkas bitmap yaitu (i) berkas bitmap versi lama
dari Microsoft Windows atau IBM OS/2, (ii) berkas bitmap versi baru dari
Microsoft Windows, (iii) berkas bitmap versi baru dari IBM OS/2 (Munir, 2004).
Perbedaan ketiga versi tersebut adalah panjang header bitmap-nya. Sedangkan
untuk ukuran header berkas sama untuk semua versi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
Tabel 2.1 Header berkas bitmap (panjang 14 byte)
Byte ke- Panjang (byte) Nama Keterangan
1 – 2 2 BmpType Tipe berkas Bitmap
BA = bitmap array, CI = icon, BM =
bitmap, CP = color pointer, PT =
pointer
3 – 6 4 BmpSize Ukuran berkas bitmap
7 – 8 2 XhotSpot X hotspot untuk kursor
9 – 10 2 YhotSpot Y hotspot untuk kursor
11 – 14 4 OffBits Ofset ke awal data bitmap (dalam byte )
(Munir, 2004)
Tabel 2.2 Header bitmap versi lama dari Microsoft Windows (12 byte)
Byte ke- Panjang (byte) Nama Keterangan
1 – 4 4 HdrSize Ukuran header dalam satuan byte
5 – 6 2 Width Lebar bitmap dalam satuan pixel
7 – 8 2 Height Tinggi bitmap dalam satuan pixel
9 – 10 2 Planes Jumlah plane (umumnya selalu satu)
11 – 12 2 BitCount Jumlah bit per pixel
(Munir, 2004)
Tabel 2.3 Header bitmap versi baru dari Microsoft Windows (40 byte)
Byte ke- Panjang (byte) Nama Keterangan
1 – 4 4 HdrSize Ukuran header dalam satuan byte
5 – 8 4 Width Lebar bitmap dalam satuan pixel
9 – 12 4 Height Tinggi bitmap dalam satuan pixel
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
13 – 14 2 Planes Jumlah plane (umumnya selalu satu)
15 – 16 2 BitCount Jumlah bit per pixel
17 – 20 4 Compression 0=tak dimampatkan, 1=dimampatkan
21 – 24 4 ImgSize Ukuran bitmap dalam byte
25 – 28 4 HorzRes Resolusi horizontal
29 – 32 4 VertRes Resolusi vertical
33 – 36 4 ClrUsed Jumlah warna yang digunakan
37 – 40 4 ClrImportant Jumlah warna yang penting
(Munir, 2004)
Tabel 2.4 Header bitmap versi lama dari IBM OS/2 (64 byte)
Byte ke- Panjang (byte) Nama Keterangan
1 – 4 4 HdrSize Ukuran header dalam satuan byte
5 – 8 4 Width Lebar bitmap dalam satuan pixel
9 – 12 4 Height Tinggi bitmap dalam satuan pixel
13 – 14 2 Planes Jumlah plane (umumnya selalu satu)
15 – 16 2 BitCount Jumlah bit per pixel
17 – 20 4 Compression 0=tak dimampatkan, 1=dimampatkan
21 – 24 4 ImgSize Ukuran bitmap dalam byte
25 – 28 4 HorzRes Resolusi horizontal
29 – 32 4 VertRes Resolusi vertical
33 – 36 4 ClrUsed Jumlah warna yang digunakan
37 – 40 4 ClrImportant Jumlah warna yang penting
41 – 42 2 Units Satuan pengukuran yang dipakai
43 – 44 2 Reserved Field cadangan
45 – 46 2 Recording Algoritma perekaman
47 – 48 2 Rendering Algoritma haltoning
49 – 52 4 Size1 Nilai ukuran 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
53 – 56 4 Size2 Nilai ukuran 2
57 – 60 4 ClrEncoding Pengkodean warna
61 – 64 4 Identifier Kode yang digunakan aplikasi
(Munir, 2004)
Penyimpanan data bitmap di dalam berkas disusun terbalik dari bawah ke
atas dalam bentuk matriks yang berukuran M x N. Baris ke-0 pada matriks data
bitmap menyatakan data pixel di citra baris terbawah, sedangkan baris terakhir
pada matriks menyatakan data pixel di citra baris teratas.
E. Kompresi Data
Kompresi data adalah proses mengubah data masukan (input data stream,
source stream, original row data) menjadi data lain (output stream, compressed
stream) yang ukurannya lebih kecil, dengan cara mengurangi atau menghilangkan
redundancy. Redundancy adalah bagian data yang tidak mengandung informasi
terkait atau merupakan pengulangan dari informasi yang sudah dinyatakan
sebelumnya atau yang sudah diketahui.
Ada beberapa pendekatan kompresi yang dikenal, diantaranya adalah
pendekatan ruang, pendekatan statistik, pendekatan kuantisasi, dan pendekatan
fractal.
1. Pendekatan Ruang
Kompresi data berdasarkan pendekatan ruang didasarkan pada hubungan
spasial antara data di dalam suatu kelompok yang memiliki data yang sama.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
Contohnya adalah Run Length Encoding, yaitu salah satu aplikasi kompresi data
yang paling sederhana. Cara bekerja dari metode ini adalah dengan menyimpan
beberapa data yang sama dan berurutan menjadi data tunggal, dengan
mencantumkan satu data asli dan suatu nilai yang menyatakan banyaknya data
tersebut.
2. Pendekatan Statistik
Kompresi data pada pendekatan statistik didasarkan pada frekuensi
kemunculan suatu data dalam seluruh bagian data asli (data stream). Contoh
aplikasi penerapan metode ini adalah Huffman-coding. Metode kompresi Huffman
ini menggunakan prinsip bahwa suatu nilai yang sering muncul dalam suatu data
asli akan dikodekan dngan jumlah bit yang lebih sedikit. Sedangkan nilai yang
paling jarang muncul akan dikodekan dengan jumlah bit yang lebih panjang.
3. Pendekatan Kuantisasi
Pendekatan kuantisasi menggunakan suatu algoritma dengan tujuan
memampatkan data stream dengan mengurangi secara langsung jumlah bit dari
data yang ada. Contohnya adalah metode pemampatan kuantisasi dalam suatu
citra. Cara kerja dari metode ini adalah dengan mengurangi secara langsung
derajat keabuan dari suatu citra. Misalnya citra dengan derajat keabuan dari 256
menjadi 32. Hal ini tentunya akan mengurangi besarnya file citra asli, tetapi perlu
diingat bahwa pengurangan derajat keabuan yang drastis akan banyak
berpengaruh terhadap kualitas citra hasil.
4. Pendekatan Fraktal
Pendekatan fraktal adalah suatu teknik pemampatan yang dilakukan pada
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
sebuah data didasarkan pada kenyataan bahwa kemiripan bagian-bagian didalam
sebuah data, dalam hal ini adalah data citra, dapat dikurangi dengan menggunakan
matriks transformasi. Contohnya adalah fractal image compression. Prinsip dasar
dari metode ini adalah dengan mencari bagian di dalam suatu citra yang memiliki
kemiripan dengan bagian lainnya, dengan ukuran yang lebih besar. Kemudian
dicari matriks yang mentransformasikan bagian yang lebih besar tersebut dengan
bagian yang lebih kecil.
Beberapa teknik tersebut dibagi dalam 2 kategori yaitu lossless
compression dan lossy compression. Lossless compression adalah teknik untuk
memproses data asli menjadi data lain yang ukurannya lebih kecil, tanpa
hilangnya informasi dalam data aslinya. Sedangkan lossy compression adalah
teknik untuk mendapatkan data yang lebih kecil ukurannya, tetapi dengan
hilangnya sebagian kecil data, namun dengan tingkat error yang masih dapat
diterima. Artinya adalah bahwa data output yang didapat hasilnya sangat
mendekati data aslinya.
Kompresi citra merupakan salah satu aplikasi dari kompresi data.
Kompresi citra ini bertujuan untuk mengurangi jumlah bit pada sebuah citra
digital, sehingga menghasilkan sebuah citra yang sangat mendekati dengan jumlah
bit yang lebih sedikit. Teknik kompresi citra dikembangkan untuk mempermudah
dalam penyimpanan dan pengiriman citra.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
F. Faktor Penting dalam Kompresi Data
Hal-hal penting yang perlu diperhatikan dalam pemampatan sebuah citra
diantaranya adalah sebagai berikut:
1. Scalability
Scalability adalah kualitas dari hasil proses pemampatan citra karena
manipulasi bitstream tanpa adanya dekompresi atau rekompresi. Beberapa
tipe scalability adalah:
a. Quality Progressive dimana sebuah citra dimampatkan secara perlahan-
lahan dengan penurunan kualitasnya.
b. Resolution Progressive dimana sebuah citra dimampatkan dengan
mengkode resolusi citra yang lebih rendah terlebih dahulu baru
kemudian ke resolusi yang lebih tinggi.
c. Component Progressive dimana sebuah citra dimampatkan berdasarkan
komponennya. Pertama mengkode komponen grey-nya, kemudian
mengkode komponen warnanya.
2. Region of Interest Coding
Daerah-daerah tertentu dienkode dengan kualitas yang lebih tinggi
daripada yang lain.
3. Meta Information
Citra yang dimampatkan juga dapat memiliki meta information seperti
statistik warna, tekstur, small preview image, dan author atau copyright
information.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
G. Metode Kompresi Data
Selain hal-hal penting yang disebut di atas, kompresi citra juga dibagi
dalam beberapa metode, diantaranya:
1. Subsampling
Subsampling merupakan metode kompresi dengan mengurangi jumlah
pixel yang diperlukan untuk merepresentasikan sebuah citra. Metode ini
dapat dilakukan dengan dua cara. Pertama, dengan cara mengambil pixel-
pixel tertentu pada sebuah citra, misalnya pada baris dan kolom saja. Dan
yang kedua adalah dengan cara mengambil nilai rata-rata dari kelompok
pixel dan menggunakan nilai tersebut untuk mengganti nilai kelompok
pixel ini.
2. Pengurangan kedalaman bit
Metode ini dilakukan dengan mengurangi jumlah bit yang digunakan
untuk merepresentasikan suatu pixel. Misalnya dengan mengurangi
kedalaman bit dari 24 bit/pixel menjadi 16 bit/pixel. Dengan demikian,
tentu saja kualitas sebuah citra akan berkurang.
3. Transformasi
Metode ini digunakan untuk mentransformasikan data dari domain ruang
ke domain frekuensi. Cara ini menghasilkan data yang lebih mudah
diproses untuk kompresi lebih lanjut. Metode yang banyak digunakan
berdasarkan metode transformasi diantaranya adalah Wavelet dan Discrete
Cosine Transform (DCT).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
H. Faktor Penting dalam Pembuatan Aplikasi Kompresi Data
Beberapa faktor penting yang harus diperhatikan dalam pembuatan
aplikasi untuk pemampatan data diantaranya adalah sebagai berikut:
1. Seberapa prosentase berkas yang dapat dimampatkan.
Jika sebuah program aplikasi pemampatan memiliki prosentase
pemampatan berkas yang besar, maka program tersebut bisa dikatakan
baik.
2. Jaminan keutuhan berkas setelah dimampatkan dan dimekarkan
kembali.
Berkas yang telah dimampatkan kapasitasnya akan menjadi lebih kecil
dibandingkan dengan berkas aslinya, akan tetapi berkas hasil pemampatan
tersebut jika dimekarkan kembali, maka kapasitasnya harus kembali
seperti pada kapasitas semula.
3. Kecepatan pemampatan
Waktu yang dibutuhkan saat proses pemampatan juga mempengaruhi baik
atau tidaknya sebuah program pemampatan. Semakin sedikit waktu yang
diperlukan untuk proses pemampatan suatu berkas, maka semakin baik
pula program pemampatan tersebut.
4. Kemudahan pemakaian program serta fasilita tambahan yang
tersedia.
Pengguna program tidak mengalami kesulitan pada saat akan
menggunakan program pemampatan yang dibuat, dengan kata lain
program pemampatan yang dibuat bersifat user friendly. Program tersebut
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
juga akan semakin baik dan menarik apabila diberi fasilitas tambahan
seperti permainan, daftar istilah, bantuan/ pertolongan penggunaan
program, dan lain-lain jika dimungkinkan.
I. Discrete Cosine Transform (DCT)
Discrete Cosine Transform atau yang biasa disingkat DCT adalah satu
kelas operasi matematika yang termasuk dalam Fast Fourier Transform. Operasi
dasar yang ditampilkan dalam transformasi ini adalah mengambil suatu signal dan
mentransformasikannya dari representasi satu tipe ke tipe yang lain. Transformasi
ini dikerjakan secara frekuentatif yaitu dengan cara mengambil suatu nilai dari
domain spasial dan mentransformasikannya ke dalam suatu representasi yang
identik. DCT merupakan salah satu metode transformasi yang dapat digunakan
untuk kompresi data citra yang mempunyai sifat lossy. Metode kompresi DCT ini
menggunakan pendekatan nilai kosinus. Pada dasarnya DCT akan mengubah detil
warna dari gambar asli, namun karena keterbatasan indra manusia, maka
perubahan yang terjadi tidak begitu terlihat. Dalam operasi DCT ini yang
digunakan adalah nilai real. Ada 2 macam persamaan yang bisa digunakan yaitu
DCT 1 dimensi yang digunakan untuk menghitung data vektor, dan DCT 2
dimensi yang digunakan untuk menghitung data matriks.
Persamaan umum untuk DCT 1 dimensi adalah sebagai berikut:
∑−
=⎥⎦⎤
⎢⎣⎡ +
=1
0 2)12(cos)()(2)(
N
x NixxpixeliC
NiDCT π ...................................................(2.1)
dengan
DCT( i) = nilai DCT indeks ke-i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
N = ukuran matriks
Pixel(x) = nilai pixel pada indeks ke-x
1)( =iC jika x > 0
21)( =iC jika 0=x
Sedangkan persamaan untuk invers DCT 1 dimensi adalah sebagai berikut:
∑−
=⎥⎦⎤
⎢⎣⎡ +
=1
0 2)12(cos)()(2)(
N
i NixiDCTiC
NxPixel π ...................................................(2.2)
dengan
DCT(i) = nilai DCT pada indeks ke-i
N = ukuran matriks
Pixel(x) = nilai ke-x
1)( =iC jika i > 0
21)( =iC jika 0=i
Persamaan DCT dan invers DCT (IDCT) di atas disebut persamaan DCT 1
dimensi dan IDCT 1 dimensi karena kedua persamaan tersebut digunakan untuk
mentransformasi nilai pixel suatu citra berukuran 1xN.
Sebagai contoh terdapat matriks berukuran 1x8 yang ditampilkan sebagai
suatu citra sebagai berikut:
[0 25 50 75 100 125 150 200] =
Nilai DCT dari matriks di atas adalah:
[255 0 11 0 8 0 4 0] =
Sedangkan nilai IDCT dan citra hasil rekonstruksi adalah sebagai berikut:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
[0 24 49 75 99 124 150 199] =
Dari contoh di atas terlihat bahwa nilai matriks hasil rekonstruksi sangat
mendekati nilai matriks aslinya. Hasil dari nilai DCT inilah yang dapat digunakan
untuk pemampatan, karena nilai tersebut nantinya akan banyak mengandung nilai
0 (nol). Nilai nol tersebut dalam penyimpanan sebuah data dapat diabaikan (tidak
disimpan) sehingga dapat mengurangi banyaknya data yang harus disimpan.
Di bawah ini akan diilustrasikan metode DCT 1 dimensi:
Terdapat sebuah matriks 1 dimensi [1 2 3 4 5 6 7 8]. Matriks tersebut akan dikenai
persamaan (2.1) dengan:
i = 1,2,3,…N,
x = 0,1,2,…N-1,
N = 8,
pixel(x) = 1,2,3…8
C(i) = 1,jika x>0, C(i) = 2
1 , jika x=0,
Pixel(x) = nilai pixel ke-x,
maka, hasil transformasinya adalah seperti dalam tabel 2.5.
Dari tabel tersebut, dapat dilihat bahwa nilai hasil penghitungan, yaitu
yang terdapat dalam kolom DCT(i) adalah [12.727 -6.442 0 -0.673 0 -0.201 0
-0.051]. Hasil tersebut yang nantinya dapat digunakan untuk pemampatan data,
sebelum dikembalikan ke data aslinya. Pemampatan yang dilakukan tentunya
menggunakan aturan-aturan tertentu sehingga nantinya jika data tersebut
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
dikembalikan ke bentuk aslinya akan sama atau paling tidak menyerupai data asli
dengan toleransi yang masih dapat diterima.
Dari data hasil DCT tersebut, jika dikembalikan seperti semula, maka
harus dikenai fungsi inverse dari DCT (IDCT). Setelah data itu dikembalikan,
maka nilainya akan menjadi [1 2 3 4 5 6 7 8]. Terlihat bahwa nilai hasil invers
tersebut masih terlihat sama dengan data aslinya.
Sedangkan persamaan DCT 2 dimensi ditampilkan dalam matrik NxN, dan
menghasilkan matriks NxN. Persamaan DCT 2 dimensi ini digunakan untuk
transformasi matriks 2 dimensi.
Persamaan dari DCT 2-dimensi adalah sebagai berikut:
⎥⎦⎤
⎢⎣⎡ +
⎥⎦⎤
⎢⎣⎡ +
= ∑∑−
=
−
= Njy
NixyxpixeljCiC
NjiDCT
N
y
N
x 2)12(cos
2)12(cos),()()(2),(
1
0
1
0
ππ ..(2.3)
dengan
DCT(i , j)= nilai DCT pada indeks ke-(i,j)
N = ukuran matriks
pixel(x,y) = nilai pixel pada indeks ke-(x,y)
1)(),( =jCiC jika i, j> 0
21)(),( =jCiC jika i, j = 0.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
Tabel 2.5 Tabel penghitungan DCT 1 dimensi
Nilai i PENGHITUNGAN
x1 x2 x3 x4 x5 x6 x7 x8 DCT(i)
1 1 3 6 10 15 21 28 36 12.727
2 0.980 2.643 4.310 5.090 4.115 0.781 -5.038 -12.884 -6.442
3 0.923 1.689 0.541 -3.154 -7.773 -10.069 -7.391 -2.664 e-015 0
4 0.831 0.441 -2.501 -4.723 -1.945 3.939 5.304 -1.346 -0.673
5 0.707 -0.707 -2.828 -8.882 e-016 3.535 -0.707 -5.656 0 0
6 0.555 -1.406 -0.820 2.505 -1.652 -2.822 4.042 -0.401 -0.201
7 0.382 -1.465 1.306 -0.224 -2.137 3.405 -3.061 -5.3291 e-015 0
8 0.195 -0.916 1.578 -2.344 2.559 -2.429 1.459 -0.101 -0.051
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
Jika matriks berukuran MxN, maka persamaan di atas dapat dituliskan
sebagai berikut:
∑∑−
=
−
=⎥⎦⎤
⎢⎣⎡ +
⎥⎦⎤
⎢⎣⎡ +
=1
0
1
0 2)12(cos
2)12(cos),()()(22),(
M
x
N
y Njy
MixyxpixeljCiC
NMjiDCT ππ ...(2.4)
dengan
DCT(i , j)= nilai DCT pada indeks ke-(i,j)
N= ukuran baris matriks
M= ukuran kolom matriks
pixel(x,y) = nilai pixel pada indeks ke-(x,y)
1)(),( =jCiC jika i, j> 0
21)(),( =jCiC jika i, j = 0.
Sedangkan persamaan untuk invers DCT (IDCT) adalah sebagai berikut:
⎥⎦⎤
⎢⎣⎡ +
⎥⎦⎤
⎢⎣⎡ +
= ∑∑−
=
−
= Njy
NixjiDCTjCiC
NyxPixel
N
i
N
j 2)12(cos
2)12(cos),()()(2),(
1
0
1
0
ππ ....(2.5)
dengan
DCT(i , j)= nilai DCT pada indeks ke-(i,j)
N = ukuran matriks
pixel(x,y) = nilai pixel pada indeks ke-(x,y)
1)(),( =jCiC jika i, j> 0
21)(),( =jCiC jika i, j = 0.
Jika matriks berukuran MxN, maka persamaan di atas dapat dituliskan
sebagai berikut:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
∑∑−
=
−
=⎥⎦⎤
⎢⎣⎡ +
⎥⎦⎤
⎢⎣⎡ +
=1
0
1
0 2)12(cos
2)12(cos),()()(22),(
M
i
N
j Njy
MixjiDCTjCiC
NMyxPixel ππ ....(2.6)
dengan
DCT(i , j)= nilai DCT pada indeks ke-(i,j)
N, M= ukuran matriks
pixel(x,y) = nilai pixel pada indeks ke-(x,y)
1)(),( =jCiC jika i, j> 0
21)(),( =jCiC jika i, j = 0.
Invers DCT tersebut berfungsi untuk mengembalikan data citra seperti
semula.
Contoh penerapan DCT dan IDCT dalam citra greyscale:
Terdapat sebuah citra greyscale dengan matriks 8x8 dengan nilai sebagai berikut:
⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
3 13 30 22 39 28 27 4614 10 32 18 26 44 42 4540 33 35 16 22 35 31 2130 34 20 2 12 21 37 36
26 29 25 7 2 1 15 4323 30 38 17 6 0 4 3335 37 41 23 9 5 10 2839 37 40 24 11 8 19 30
=
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
Nilai DCT dari matriks di atas adalah :
⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
0 0 0 0 0 1 13 0 0 0 2 2 0 0 0 0 1 6 0 1 5 2 10 0 0 0 6 5 3 10 10 0 0 0 0 0 0 7 0 20 0 5 0 6 5 0 9 15 5 0 0 7 23 19 0 0 0 15 9 0 33 39 0 195
=
Sedangkan nilai IDCT dan citra hasil rekonstruksi adalah sebagai berikut:
⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
3 13 30 22 39 28 27 4614 10 32 18 26 44 42 4540 33 35 16 22 35 31 2130 34 20 2 12 21 37 36
26 29 25 7 2 1 15 4323 30 38 17 6 0 4 3335 37 41 23 9 5 10 2839 37 40 24 11 8 19 30
=
Di bawah ini akan diilustrasikan bagaimana DCT diterapkan dalam sebuah
matriks 2 dimensi:
Terdapat sebuah matriks 2 dimensi sebagai berikut:
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
9 8 76 5 43 2 1
Matriks ini akan dikenai operasi DCT 2 dimensi dengan persamaan 2.6, dengan:
i = 1,2,3 ; j = 1,2,3
x = 0,1,2 ; y = 0,1,2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
pixel(x,y) = 1,2,3...9
N = 3, M = 3
C(x) = 1,jika x>0, C(x) = 2
1 , jika x=0,
Pixel(x,y) = nilai pixel ke-(x,y),
Maka hasil penghitungan yang terjadi akan terlihat seperti pada tabel 2.6.
Dari tabel tersebut, dapat dilihat bahwa nilai hasil penghitungan, yaitu
yang terdapat dalam kolom DCT(i,j) adalah ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
0 0 0 0 0 7.348-0 2.449- 15
. Terlihat
bahwa matriks hasil transformasi tersebut memuat banyak elemen 0 (nol). Hal ini
tentunya tidak efisien dalam penyimpana data tersebut. Oleh karena itu, data ini
nantinya akan dapat dimampatkan dengan menghilangkan elemen 0 (nol) yang
ada.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
Tabel 2.6 Tabel penghitungan DCT 2 dimensi
Nilai (i,j)PENGHITUNGAN
(x0,y0) (x0,y1) (x0,y2) (x1,y0) (x1,y1) (x1,y2) (x2,y0) (x2,y1) (x2,y2) DCT(i,j)
(1,1) 1 3 6 10 15 21 28 36 45 15
(1,2) 0.866 0.866 -1.732 1.732 1.732 -3.464 2.598 2.598 -5.196 -2.449
(1,3) 0.5 -1.5 4.4409e-016 2 -3 1.7764e-015 3.5 -4.5 3.5527e-015 0
(2,1) 0.866 2.598 5.196 5.196 5.196 5.196 -0.866 -7.794 -15.588 -7.348
(2,2) 0.75 0.75 -1.5 -1.5 -1.5 -1.5 -6.75 -6.75 0 0
(2,3) 0.433 -1.299 2.2204e-016 3.4451e-016 3.8348e-017 2.2204e-016 -3.031 3.897 -1.3323e-015 0
(3,1) 0.5 1.5 3 -1 -6 -12 -8.5 -4.5 1.7764e-015 0
(3,2) 0.433 0.433 -0.866 -4.33 -4.33 0.866 3.897 3.897 0 0
(3,3) 0.25 -0.75 3.3307e-016 -2 3 -8.8818e-016 1.75 -2.25 0 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
J. Kuantisasi dan Zig-zag Scanning
Kuantisasi ini digunakan untuk menentukan kualitas kompresi, yaitu
dengan menghilangkan beberapa informasi dari nilai pixel yang telah
ditransformasi. Informasi yang dihilangkan adalah informasi yang dianggap
paling tidak penting, dalam hal ini adalah nilai pixel yang paling mendekati nol
(0) setelah dilakukan transformasi, ataupun pembulatan nilai desimal dari nilai
yang didapat.
Kuantisasi ini sangat penting dalam proses pemampatan data, karena
penentuan kuantisasi ini juga akan berpengaruh terhadap kualitas citra yang
dimampatkan dan tentunya besarnya file yang telah dimampatkan.
Ilustrasi dari kuantisasi ini adalah sebagai berikut:
Sebuah matriks dengan delapan data yaitu [12,10,8,10,12,10,8,11], kemudian
matriks tersebut dikenai operasi DCT 1 dimensi, sehingga hasil transformasi
menjadi [28.6375, 0.571202, 0.46194, 1.757, 3.18198, -1.72956, 0.191342, -
0.308709]. Setelah itu, matriks hasil transformasi tersebut akan dikuantisasi
menjadi [28, 0, 0, 2, 3, -2, 0, 0]. Dan digunakan operasi IDCT 1 dimensi untuk
mengembalikan data, didapat [11.236, 9.62443, 7.66286, 9.57302, 12.3471,
10.0146, 8.05304, 10.6842]. Terlihat dari hasil invers yang didapat mendekati
data aslinya. Perbedaan antara data asli (12) dan data hasil rekonstruksi (11.236)
adalah 0,764 (atau 6,4% dari 12) (David Salomon, 2001).
Nilai kuantisasi dapat pula ditentukan dengan menyatakan suatu nilai
sebagai batasan kuantisasi tersebut. Misalnya kuantisasi dinyatakan sebagai Q.
Maka nilai yang berada dalam range nilai Q dan -Q tersebut dikuantisasi menjadi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
nol (0). Sebagai contoh dalam kasus di atas, nilai [28.6375, 0.571202, 0.46194,
1.757, 3.18198, -1.72956, 0.191342, -0.308709] akan dikuantisasi dengan Q=1,
maka nilai yang berada di antara 1 dan -1 akan dikuantisasi menjadi nol (0).
Sehingga hasil dari nilai tersebut akan menjadi [28.6375, 0, 0, 1.757, 3.18198, -
1.72956, 0, 0].
Kuantisasi untuk matriks berukuran 2nx2n dapat dilakukan dengan cara
mengubah matriks menjadi vektor secara zig-zag (zig-zag scanning).
Gambar 2.6 Urutan Zig-zag scan
Ilustrasi penerapan kuantisasi secara zig-zag adalah sebagai berikut:
Terdapat matriks 4x4 dengan elemen
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
2 1 15 436 0 4 339 5 10 28
11 8 19 30
, kemudian
matriks tersebut akan ditransformasi menjadi
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
0.7604 2.2168 0.8713- 1.9927- 3.3321- 3.5000- 6.7378 8.5000 3.3713- 6.6585- 11.2604- 3.5042 3.2359 25.0000 39.2241 56.0000
.
Jika matriks hasil transformasi ini dikenai fungsi zig-zag scan, maka akan menjadi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
vector dengan urutan [56.0000 39.2241 3.5042 8.5000 -11.2604 25.0000
3.2359 -6.6585 6.7378 -1.9927 -0.8713 -3.5000 -3.3713 -3.3321
2.2168 0.7604]. Dari hasil zig-zag scan tersebut kuantisasi dapat dilakukan,
yaitu dengan cara mengambil beberapa nilai dari belakang, tergantung prosentase
yang diinginkan. Misalkan prosentase yang diinginkan untuk kuantisasi adalah
25%, maka diambil 4 nilai paling belakang, kemudian nilai tersebut dikuantisasi
menjadi nol (0). Maka hasilnya adalah [56.0000 39.2241 3.5042 8.5000 -
11.2604 25.0000 3.2359 -6.6585 6.7378 -1.9927 -0.8713 -3.5000 0 0
0 0].
Kuantisasi dapat dilakukan dengan berbagai cara, tergantung yang
diinginkan. Dapat dengan pembulatan seperti contoh yang terjadi pada DCT 1
dimensi di atas, dapat pula dengan mengambil beberapa pixel paling belakang
berdasarkan berapa persen pixel akan diambil setelah dilakukan zig-zag scan,
tergantung dari prosentase yang diinginkan.
K. Kompresi dengan DCT
Penerapan DCT dalam kompresi data diharapkan dapat secara efisien
mengurangi besar file data tersebut tanpa mengurangi kualitas dari data yang
dimampatkan. Besarnya kompresi sangat tergantung dari kuantisasi. Jika
menginginkan kompresi yang besar (ukuran file semakin kecil) maka kuantisasi
yang dilakukan juga harus besar. Namun hal ini tentunya akan mengorbankan
kualitas data hasil kompresi tersebut, jika nantinya data ini dikembalikan ke
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
bentuk aslinya. Dalam kasus kompresi citra, maka kualitas citra yang didapat akan
semakin buruk.
Sebagai contoh, matriks hasil transformasi yang terdapat dalam tabel 2.6
yaitu ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
0 0 0 0 0 7.348-0 2.449- 15
. Kemudian matriks tersebut akan dikuantisasi
dengan nilai Q=3, maka hasilnya adalah ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
0 0 0 0 0 7.348-0 0 15
.
Dapat dilihat bahwa matriks tersebut memuat banyak elemen dengan nilai
0, atau biasa disebut matriks jarang (sparse matrix). Hal ini tentunya tidak efisien.
Oleh karena itu, penyimpanan matriks hasil transformasi menggunakan suatu cara
agar lebih efisien yaitu dengan menghilangkan elemen matriks yang mempunyai
nilai 0. Maka matriks tersebut hanya akan disimpan nomor indeks matriks yang
bukan nol dan data yang ada dalam indeks tersebut, yaitu (1,1) 15 dan (2,1) -
7.348. Bilangan yang ada didalam tanda “( )” menunjukkan indeks matriks yaitu
baris dan kolom, sedangkan bilangan dibelakangnya adalah nilai matriks yang ada
pada nomor indeks tersebut.
Dalam proses penyimpanan, nilai nol (0) dapat diabaikan (tidak disimpan),
maka dalam kasus tersebut besar data sebelum dilakukan kuantisasi adalah
3x8bit=24bit, sedangkan setelah dilakukan kuantisasi besar data menjadi
2x8bit=16bit. Dalam kasus yang lebih besar, pengurangan data seperti ini
tentunya akan lebih signifikan dan dalam penyimpanan data tentunya akan lebih
efisien.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
Tetapi jika menggunakan cara yang kedua yaitu dengan metode zig-zag
scanning, maka nilai matriks akan menjadi [15 -2.449 -7.348 0 0 0 0 0 0], dan
posentase kuantisasi misalnya adalah 80%, maka sebanyak 80% data akan
dikuantisasi menjadi nol (0) (data diambil dari belakang). Sehingga setelah proses
kuantisasi, data akan menjadi [15 -2.449 0 0 0 0 0 0 0]. Dan jika data tersebut
dikembalikan dengan urutan matriks seperti semula (dezig-zag scan) maka akan
menjadi ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
0 0 0 0 0 0 0 2.449- 15
Dari sini terlihat bahwa kedua cara yang digunakan menghasilkan nilai
yang sama. Dalam kasus yang berbeda, hasil yang didapat belum tentu sama
seperti kasus di atas.
L. Matriks Jarang
Matriks jarang adalah matriks yang banyak memiliki banyak elemen nol.
Matriks jarang menyimpan sebuah informasi yang terstruktur secara efisien,
terutama saat direpresentasikan terhadap sebuah format yang dimampatkan.
Pemampatan matriks jarang dapat dilakukan dengan menyimpan elemen tidak nol.
Penyimpanan dan manipulasi matriks jarang akan menjadi efisien jika
menggunakan algoritma dan struktur data tertentu, yang dapat menyimpan hasil
pemampatan matriks jarang tersebut secara efisien pula. Keuntungan yang didapat
dengan menggunakan pemampatan ini diantaranya adalah dapat mengurangi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
tempat penyimpanan (storage) sebuah data. Sebagai contoh, matriks hasil
transformasi DCT di atas adalah:
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
0 0 0 0 0 7.348-0 2.449- 15
Matriks di atas dapat dikatakan sebuah matriks jarang, karena elemen
matriks tersebut banyak terdiri dari nol. Sehingga jika matriks tersebut akan
disimpan dalam sebuah file, maka membutuhkan tempat untuk menyimpan file
tersebut sebesar 3x8 bit = 24 bit, dengan asumsi ukuran file tiap elemen matriks
adalah 8 bit.
Jika matriks di atas dimampatkan menggunakan konsep matriks jarang,
yang dalam hal ini adalah menghilangkan elemen nol, maka akan menjadi sebagai
berikut:
Index matriks Nilai Matriks
(1,1) 15
(1,2) -2.449
(2.1) -7.348
Index matriks menandakan nomor baris dan nomor kolom dari matriks,
sedangkan nilai matriks menandakan nilai dari baris dan kolom yang ditunjuk
pada indeks matriks. Sebagai contoh pada index matriks (1,1) dan nilai matriks
15. Hal ini menunjukkan data dengan nilai 15 terletak pada matriks baris 1 dan
kolom 1. Nilai yang di depan pada indeks matriks menunjukkan nomor baris
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
sedangkan nilai yang di belakang pada indeks matriks menunjukkan nomor
kolom.
M. Pengukuran Error dan Rasio Pemampatan dalam Kompresi Citra
Dalam pemampatan citra terdapat suatu standar pengukuran error yaitu
sebagai berikut:
- Mean Square Error (MSE), yaitu sigma dari jumlah error antara citra
hasil pemampatan dengan citra asli.
[ ]∑∑==
−=N
x
M
y
yxIyxIMN
MSE1
2
1
),('),(1 ............................................(2.7)
dimana: I(x,y) adalah nilai pixel dari citra asli.
I’(x,y) adalah nilai pixel dari citra hasil pemampatan
M, N adalah resolusi citra.
- Peak Signal to Noise Ratio (PSNR), yaitu untuk menghitung error
maksimal.
)255(10log102
MSEPSNR = ..................................................................(2.8)
Nilai MSE yang rendah akan lebih baik, sedangkan nilai PSNR yang
tinggi juga akan lebih baik.
Sedangkan yang dimaksud dengan rasio pemampatan dalam sebuah
pemampatan citra adalah perbandingan antara besar file citra hasil pemampatan
dengan besar file citra asli. Hal ini dilakukan untuk melihat seberapa efektif
pemampatan yang dilakukan. Semakin besar prosentase nilai rasio, maka citra
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
hasil pemampatan akan semakin terlihat menyerupai citra asli. Demikian pula
sebaliknya, semakin kecil prosentase nilai rasio, maka citra hasil pemampatan
akan semakin buruk.
Penghitungan rasio pemampatan dapat dicari dengan persamaan berikut:
nDataMasukaesiHasilKompresiRasioKompr = .........................................................(2.9)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
BAB III
ANALISIS DAN PERANCANGAN PROGRAM
A. Perancangan Secara Umum
Pada bagian perancangan akan dibahas algoritma program secara umum,
yaitu tentang hubungan antara modul-modul yang merupakan modul terpenting
dan terpokok dalam program yang akan dibuat. Modul perancangan program
terbentuk dalam tampilan yang terdiri dari beberapa fungsi dalam bentuk berkas
yang berekstensi .m.
a. Kebutuhan perangkat lunak (software)
Perangkat lunak yang digunakan adalah MATLAB versi 7.0 dari
Mathworks, dan system operasi Windows XP.
b. Kebutuhan perangkat keras (hardware)
Perangkat keras yang digunakan adalah sebuah komputer dengan
spesifikasi minimal sebagai berikut:
- Prosesor : Pentium III 800 MHz
- Media tampilan : VGA card 64 MB
- Memori : 256 MB
- Media masukan : Keyboard dan Mouse
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
- Media penyimpanan : Harddisk 20 GB
B. Perancangan Secara Rinci
Dalam pembahasan perancangan secara rinci ini akan dibahas beberapa
hal yang terkait, diantaranya:
1. Perancangan proses
a. Diagram konteks (DAD level 0)
User0
Pemampatan Citra
Citra TransformCitra Rekonstruksi
Blok Matriks Citra AsliBlok Martriks Citra Transform
Blok Matriks Citra Rekonstruksi
Blok Matriks Citra Transform Terkuantisasi
Blok Matriks
Prosentase
Blok Baris
Blok Kolom
Nilai Kuantisasi
Citra Asli
MSE Total
PSNR Total
MSE Blok
PSNR Blok
Gambar 3.1 Rancangan DAD level 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
Pada intinya, input atau masukan dari sistem ini adalah sebuah berkas citra
greyscale yang bertipe *.BMP, dan output-nya berupa sebuah citra yang
direkonstruksi setelah mengalami proses transformasi dan dimampatkan dengan
kuantisasi.
Selanjutnya ada beberapa masukan juga dari user yang digunakan oleh
sistem untuk melihat dan membandingkan citra asli dan citra yang telah
direkonstruksi. Perbandingan tersebut dapat dilihat baik dari citranya secara
langsung, dari nilai-nilai matriksnya, maupun dari nilai error yang didapat.
b. DAD level 1
Gambar 3.2 Rancangan DAD level 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
Beberapa proses yang terlihat dalam DAD level 1 ini adalah rincian dari
proses pada level sebelumnya. Ada 5 (lima) proses didalamnya.
(i) Proses “DCT blok”
Proses ini terjadi jika user memilih metode kuantisasi blok transform.
Masukan dari proses ini adalah sebuah citra greyscale yang telah dipilih
user, kemudian user memilih metode kuantisasi blok matriks dan
menentukan besarnya blok yang akan digunakan untuk proses
transformasi.
(ii) Proses “DCT Langsung”
Proses ini terjadi jika user memilih metode kuantisasi secara langsung.
Masukan dari proses ini adalah sebuah citra greyscale yang telah dipilih
user, kemudian user memilih metode kuantisasi “langsung” dan
menentukan besarnya prosentase yang nantinya akan digunakan sebagai
prosentase nilai kuantisasi.
(iii) Proses “IDCT”
Proses IDCT digunakan untuk meng-invers nilai matriks citra setelah
dilakukan transformasi. Masukannya berupa matriks citra hasil
transformasi, ataupun matriks citra transformasi yang telah mengalami
proses kuantisasi juga. Output dari proses ini adalah sebuah citra yang
telah direkonstruksi, dan nilai matriks citra yang telah direkonstruksi pula.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
(iv) Proses “Lihat blok”
Proses ini berfungsi untuk melihat blok nilai matriks dengan ukuran 8x8.
Baik dari citra asli, citra hasil transfomasi, maupun citra hasil rekonstruksi.
Input dari proses ini berupa citra asli, citra hasil transformasi, dan citra
hasil rekonstruksi. Disini user juga diminta memasukkan sebuah nilai
integer untuk melihat baris dan kolom ke berapa blok yang akan dilihat.
(v) Proses “Kuantisasi”
Proses kuantisasi ini dapat diakses jika user memilih metode kuantisasi
blok matriks. Masukannya berupa citra hasil transformasi dan sebuah nilai
integer sebagai nilai kuantisasi. Output dari proses ini adalah sebuah
matriks citra hasil transformasi yang telah terkuantisasi nilainya.
(vi) Proses “Hitung Error Total”
Proses ini akan terjadi jika user memilih “Hitung Error Total” pada
radiobutton hitung error. Dalam proses ini ada 2 hal yang dilakukan yaitu
menghitung nilai MSE dan menghitung nilai PSNR. Nilai-nilai yang
dihitung adalah nilai-nilai matriks dari keseluruhan citra.
(vii) Proses “Hitung Error Blok”
Proses ini dilakukan jika user memilih “Hitung Error Perblok” pada
pilihan radiobutton hitung error. Proses ini mengerjakan 2 hal yaitu
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
menghitung nilai MSE dan nilai PSNR. Nilai-nilai yang dihitung adalah
nilai-nilai dari blok matriks yang sedang ditampilkan dalam grid matriks.
c. DAD level 2
6.1
Hitung MSE Total
6.2
Hitung PSNR Total
Citra Asli
Citra Rekonstruksi
Niali MSE Total Nilai PSNR Total
Nilai MSE Total
7.1
Hitung MSE Blok
7.2
Hitung PSNR Blok
Blok Citra Asli
Blok Citra Rekonstruksi
Niali MSE Blok Nilai PSNR Blok
Nilai MSE Blok
Gambar 3.3 Rancangan DAD level 2
Dalam DAD level 2 ini ada 2 macam proses, yang pertama adalah proses
untuk menghitung nilai MSE. Input yang dibutuhkan adalah citra asli dan
citra rekonstruksi, yang berfungsi untuk membandingkan antara data asli
dengan data hasil rekonstruksi, untuk kemudian dihitung error-nya.
Output dari hitung nilai MSE tersebut nantinya digunakan untuk
menghitung nilai PSNR.
Dua proses tersebut nantinya akan menghasilkan masing-masing 2 output
juga, yaitu nilai MSE dan nilai PSNR. Perbedaannya adalah proses
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
pertama untuk menghitung secara total, sedangkan proses yang kedua
digunakan untuk menghitung nilai MSE dan nilai PSNR secara perblok.
d. Perancangan struktur menu
Menu yang dimaksud adalah menu navigasi dalam program ini. Menu ini
berfungsi untuk memudahkan pengguna (user) untuk menjalankan program. Ada
beberapa menu yang dapat diakses oleh user untuk dapat mengoperasikan
program ini. Menu-menu yang digunakan diantaranya seperti di bawah ini:
Gambar 3.4 Rancangan menu utama
Di dalam menu utama terdapat tiga buah submenu, yaitu:
• Menu “Buka File Citra”
Berfungsi untuk membuka file citra bertipe *.BMP.
• Menu “Home”
Berfungsi untuk kembali ke tampilan awal.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
• Menu “Keluar”
Berfungsi untuk keluar dari program.
Edit
Reset
Transformasi
Rekonstruksi
Lihat Blok
Gambar 3.5 Rancangan menu edit
Dalam menu edit terdapat empat buah submenu yaitu menu yaitu:
• Menu “Reset”
Berfungsi untuk me-reset (mengosongkan) kotak yang digunakan
untuk menampilkan citra, penghitungan error, nama file dan
resolusi, dan mengembalikan fungsi-fungsi tombol yang lain
seperti pada saa pertama program dijalankan.
• Menu “Transformasi”
Berfungsi untuk melakukan transformasi terhadap citra yang telah
dibuka.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
• Menu “Rekonstruksi”
Berfungsi untuk melakukan rekonstruksi terhadap hasil
transformasi.
• Menu “Lihat Blok”
Berfungsi untuk melihat nilai matriks blok 8x8 pixel dari matriks
citra asli, matriks citra transformasi, maupun matriks citra
rekonstruksi, dengan sebelumnya memasukkan sebuah nilai yang
menandakan blok mana yang akan dilihat, untuk kemudian
ditampilkan dalam grid yang telah disediakan.
Gambar 3.6 Rancangan menu help
Dalam menu “Help” ini, terdapat dua submenu, yaitu:
• Menu “Help”
Berfungsi untuk melihat bantuan tentang cara pemakaian program.
• Menu “About”
Berfungsi untuk melihat informasi tentang program.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
e. Perancangan antarmuka (interface)
Antarmuka yang dimaksud adalah rancangan tampilan pada layar monitor
untuk memvisualisasikan dan menampilkan informasi yang diperlukan agar
pengguna dapat memahami bagaimana menjalankan program. Ada beberapa
rancangan tampilan antarmuka. Sebagai contoh terlihat pada gambar 3.6 di bawah
ini adalah rancangan tampilan awal saat program dijalankan. Pada tampilan awal
program ini, terdapat dua tombol yang dapat diakses yaitu tombol “Lanjutkan”
yang berfungsi untuk masuk ke program utama, dan tombol “Keluar” untuk keluar
dari program.
KOMPRESI CITRA DENGAN METODEDISCRETE COSINE TRANSFORM
Lanjutkan
LOGO USD
PROGRAM STUDI ILMU KOMPUTERJURUSAN MATEMATIKA
FAKULTAS SAINS DAN TEKNOLOGIUNIVERSITAS SANATA DHARMA
2008
Keluar
Gambar 3.7 Rancangan tampilan awal program
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
(i) Tampilan program utama
Tampilan program utama menampilkan semua isi fungsi navigasi ke
semua tampilan yang lain dalam keseluruhan program. Dalam tampilan ini
pula, terdapat tombol yang dapat dieksekusi, yaitu tombol “Buka File
Citra” untuk membuka file citra.
KOMPRESI CITRA DENGAN METODEDISCRETE COSINE TRANSFORM
CITRA ASLI
Metode Kuantisasi
Blok
CITRA TRANSFORMASI
CITRA REKONSTRUKSI
MSE :
PSNR :
Prosentase
Blok Matriks
LangsungLihat Blok
Baris :
Kolom :
Perblok
Total
Hitung Error
Matriks Blok Citra Asli
Matriks BlokCitra Transform
Matriks BlokCitra Rekonstruksi
Tampilkan
Buka File Citra
Nama File:
Resolusi:
Transformasi
Kuantisasi
Rekonstruksi Keluar
Home
Reset
Gambar 3.8 Rancangan tampilan program utama
(ii) Tampilan Citra Asli
Pada tampilan ini, citra asli sebelum dilakukan pemampatan akan tampil
dalam kolom “Citra Asli” setelah pengguna (user) membuka file citra.
Terdapat beberapa informasi yang dapat dilihat yaitu nama file cita dan
resolusi citra.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
(iii) Tampilan buka berkas citra
Jika pengguna (user) menekan tombol “Buka File” maka akan keluar
tampilan buka berkas citra. Pada tampilan buka berkas citra ini, terdapat
dua buah tombol navigasi. Pada tombol “Open” akan
membuka/menampilan berkas citra yang akan dimampatkan pada kotak
yang terdapat pada tampilan citra asli. Sedangkan tombol “Cancel” akan
membatalkan pencarian berkas citra, dan akan kembali pada tampilan
sebelumnya.
Citra yang dapat dibuka\ditampilkan adalah citra dengan tipe file *.BMP,
karena dalam hal ini, pembatasan masalah hanya pada citra bertipe file
*.BMP.
Dalam tampilan ini pula, terdapat radiobutton yang dapat dieksekusi
(menjadi aktif ketika user sudah melakukan buka file citra), yaitu “Blok
Matriks” untuk mengaktifkan popup menu pemilihan blok yang akan
digunakan untuk trasformasi, dan “Langsung” yang akan mengaktifkan
popup menu pemilihan prosentase untuk kuantisasi pemampatan yang
diinginkan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
Gambar 3.9 Rancangan tampilan buka berkas citra
(iv) Pemilihan metode kuantisasi
Pada tahap ini, user akan diminta memilih metode kuantisasi yang akan
digunakan, sebelum dapat melakukan transformasi. Ada dua metode yang
dapat dipilih yaitu dengan blok matriks atau secara langsung. Jika user
memilih “Langsung” maka kotak untuk memasukkan nilai kuantisasi (di
sebelah tombol transformasi) akan menghilang, karena kuantisasi akan
dilakukan dengan prosentase yang dipilih user.
(v) Tampilan citra transformasi
Setelah membuka citra dan memilih metode kuantisasi, maka tombol
transformasi akan aktif. Jika user mengakses tombol tersebut, maka citra
akan ditransformasi berdasarkan metode yang telah dipilih.
BUKA FILE CITRA
Look in :
File Name :
Files of Type :
Open
Cancel
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
(vi) Tampilan citra rekonstruksi
Tampilan citra rekonstruksi akan menampilkan citra hasil rekonstruksi dari
matriks hasil transformasi. Citra ini berguna untuk membandingkan
kualitas dari citra asli dengan citra yang telah dikenai fungsi transformasi
DCT dan kemudian direkonstruksi.
(vii) Fungsi-fungsi lain
Selain fungsi utama program seperti yang tersebut di atas, dalam program
ini juga terdapat beberapa tombol yang terdapat disebelah kanan tampilan
program diantaranya adalah:
• Tombol “Help”
Tombol ini berfungsi untuk menampilkan jendela help yang berisi
tentang petunjuk pemakaian program. Menu ini berguna untuk
pengguna yang belum mengerti bagaimana cara menjalankan program
ini. Gambar 3.6 di bawah ini adalah rancangan tampilan help.
Gambar 3.10 Rancangan tampilan help
KOMPRESI CITRA DENGAN METODEDISCRETE COSINE TRANSFORM
HELP
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
• Tombol “About”
Tombol ini berfungsi untuk melihat informasi program.
• Popup menu blok matriks.
Popup menu ini berfungsi untuk memilih blok matriks yang nantinya
akan digunakan untuk transformasi.
• Popup menu prosentase.
Popup menu ini berfungsi untuk menentukan prosentase kualitas
pemampatan yang akan dilakukan. Kualitas pemampatan ditentukan
dalam bentuk persen (%).
Metode Kuantisasi
Blok
Prosentase
Blok Matriks
Langsung
Gambar 3.11 Rancangan tampilan pemilihan metode kuantisasi
• Edit text lihat blok.
Edit text ini digunakan untuk melihat nilai matriks dengan blok 8x8
pixel, yang nantinya nilai-nilai tersebut akan tampil pada grid yang
telah tersedia.
Lihat Blok
Baris :
Kolom :
Tampilkan
Gambar 3.12 Rancangan tampilan “Lihat Blok”
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
• Edit text kuantisasi
Jika user memilih metode kuantisasi berdasarkan blok matriks, maka
user dapat pula memasukkan besarnya nilai kuantisasi dalam edit text
ini.
• Hitung error
Penghitungan error dalam program ini dibagi menjadi dua yaitu “per
blok” dan “total”. Penghitungan error per blok akan menghitung error
dalam blok yang ditampilkan pada grid. Sedangkan penghitungan
error total akan menghitung error pada keseluruhan matriks.
Gambar 3.13 Rancangan tampilan “Hitung Error”
• Tombol “Keluar”
Tombol ini berfungsi untuk keluar dari program.
• Tombol “Home”
Tombol ini berfungsi untuk kembali ke tampilan awal program.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
C. Algoritma
Algoritma untuk proses transformasi dan rekonstruksi file citra adalah
sebagai berikut:
• Program akan meminta masukan berupa sebuah citra greyscale
dengan resolusi 2nx2n.
• Selanjutnya user diminta untuk memilih metode kuantisasi. Ada 2
(dua) metode yang dapat dipilih yaitu “Blok Transform” dan
“Langsung”.
- Jika user memilih metode “Blok Transform” maka akan
diminta masukan berupa blok-blok yang telah tersedia.
- Jika user memilih metode “Langsung” maka user akan diminta
nilai prosentase yang nantinya akan digunakan untuk proses
kuantisasi.
• Program akan melakukan transformasi berdasarkan metode yang
telah dipilih.
• Matriks transformasi selanjutnya akan dikuantisasi. Proses
kuantisasi juga terbagi dalam 2 (dua) metode berdasarkan metode
yang telah dipilih sebelumnya.
- Jika user memilih metode “Blok Transform” maka kuantisasi
akan dilakukan berdasarkan range nilai yang dimaksukkan oleh
user.
- Jika user memilih metode “Langsung” maka kuantisasi akan
dilakukan berdasarkan prosentase yang telah dipilih, dengan
sebelumnya dilakukan zigzag scanning dan setelah nilai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
terkuantisasi akan dilakukan proses dezig-zag scanning untuk
mengembalikan ke bentuk matriks.
• Kemudian program akan melakukan proses rekonstruksi.
Algoritma di atas jika dibuat dalam sebuah flow chart akan menjadi seperti
gambar 3.17 dan gambar 3.18 di bawah ini.
Start
Baca Citra
Baca Ukuran
Citra
A
Pilih Metode
LangsungBagi
matriks dalam blok
Blok matriks
Matriks transformasi
Kuantisasi nilai
Kuantisasi dengan
prosentase
Matriks hasil kuantisasi
Pembagian dengan matriks
kuantisasi
Zig-zag scanning
Dezig-zag scanning
Hitung Nilai DCT
Prosedur Hitung
Transformasi
Prosedur Hitung
Transformasi
Hitung Nilai DCT
Matriks transformasi
Gambar 3.14 Flow chart transformasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
Gambar 3.15 Prosedur hitung sigma DCT
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
A
Citra Hasil
Selesai
Lihat metodeBlok matriks
Bagi matriks dalam blok
Kalikan dengan matriks
kuantisasi
Hitung Nilai
Invers
Langsung
Prosedur Hitung Sigma
Invers
Gambar 3.16 Flow chart invers
Gambar 3.17 Prosedur hitung sigma Invers
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
59
Pertama kali, pengguna (user) akan diminta masukan berupa berkas citra
*.BMP. Kemudian user diminta untuk memilih metode kuantisasi yang akan
dilakukan. Jika user memilih “Blok Matriks”, maka user akan diminta untuk
menentukan blok nxn yang akan dipakai untuk mentransformasi citra masukan.
Tetapi jika user memilih metode “Langsung” maka citra akan secara utuh
ditransformasi tanpa membagi-bagi kedalam blok.
Pada metode blok matriks, program akan membagi matriks citra ke dalam
blok-blok yang telah dipilih oleh user untuk selanjutnya dilakukan transformasi
berdasarkan blok-blok tersebut. Setelah matriks citra ditransformasi, maka dapat
langsung direkonstruksi. Proses rekontruksi juga dilakukan per blok, mengacu
pada blok saat dilakukan transformasi. Proses kuantisasi kemudian dilakukan
dengan memasukkan nilai yang akan menjadi range untuk proses kuantisasi.
Pada metode transformasi secara langsung, setelah matriks citra
ditransformasi, maka program akan melakukan zig-zag scanning data matriks
untuk selanjutnya dilakukan kuantisasi berdasarkan kualitas yang telah ditentukan
oleh user. Matriks yang telah dikuantisasi kemudian dimekarkan kembali dengan
dezig-zag scanning lalu dikenai fungsi invers agar data matriks dapat kembali
seperti semula, atau mirip seperti data aslinya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
60
BAB IV
IMPLEMENTASI DAN PEMBAHASAN PROGRAM
A. Implementasi Program
Program ini dibuat dengan menggunakan mfile dan beberapa tampilan
menggunakan handle grafik yang merupakan program visual dari MATLAB versi
7.0. Handle grafik merupakan salah satu elemen dari MATLAB untuk
menampilkan data dan pembuatan GUI (Graphics User Interface).
Tampilan yang menggunakan handle grafik adalah tampilan “Help” dan
“About”, sedangkan tampilan lainnya menggunakan mfile.
Tampilan awal dari program ini adalah sebagai berikut:
Gambar 4.1 Tampilan awal program
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
61
Dalam tampilan awal program ini, terdapat dua tombol yaitu “Lanjutkan”
yang berfungsi untuk masuk ke tampilan program utama, dan “Keluar” yang
berfungsi untuk keluar dari program.
Sedangkan tampilan program utama adalah sebagai berikut:
Gambar 4.2 Tampilan program utama
Dalam tampilan tersebut terdapat 3 kotak untuk menampilkan citra asli
(kotak sebelah kiri), citra hasil transformasi (kotak tengah), dan citra hasil
rekonstruksi atau nilai invers dari nilai DCT (kotak sebelah kanan).
Dalam tampilan tersebut terdapat pula beberapa operasi yang dapat diakses
yaitu:
1. Tombol “Buka File Citra”
Tombol ini berfungsi untuk membuka file citra yang akan dimampatkan.
File citra yang dapat dibuka adalah file citra bertipe *.BMP.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
62
Gambar 4.3 Tombol “Buka File Citra”
Untuk membuka file citra ini juga dapat dilakukan dengan cara lain, yaitu
melalui menu bar. Dalam menu bar tersebut, pilih “File Buka File Citra”.
Setelah membuka file citra, maka program akan mengaktifkan radiobutton untuk
memilih metode kuantisasi.
Gambar 4.4 Menu bar “Buka File Citra”
2. Pilihan metode kuantisasi
Dalam proses ini, user diminta untuk memilih metode kuantisasi yang
akan digunakan. User hanya diperkenankan memilih salah satu saja, oleh karena
itu, jika user telah memilih, maka pilihan yang lainnya akan di-nonaktif-kan.
radiobutton
popup menu
Gambar 4.5 Radiobutton dan popup menu pemilihan metode kuantisasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
63
Ada dua opsi yang dapat dipilih oleh user, yaitu “Blok Matriks” yang akan
mentransformasikan citra berdasarkan blok yang dipilih, dan “Langsung” yang
akan mentransformasikan citra secara langsung, tanpa dibagi dalam blok-blok
tertentu.
Dalam masing-masing pilihan tersebut tersedia popup menu yang
digunakan oleh masing-masing metode. Dalam metode “Blok Matriks” opsi yang
dapat dipilih adalah menentukan pembagian blok nxn pixel yang digunakan untuk
mentransformasikan citra. Sedangkan dalam metode “Langsung” adalah
menentukan prosentase yang nantinya akan digunakan untuk proses kuantisasi.
3. Tombol “Transformasi”
Tombol ini berfungsi untuk mentransformasikan citra yang telah dibuka.
Tombol ini akan aktif setelah user memilih metode transformasi yang akan
dipakai. Hasil dari transformasi ini akan ditampilkan di kotak tengah.
Gambar 4.6 Tombol “Transformasi”
Selain dengan menekan tombol “Transformasi”, cara lain yang dapat
digunakan untuk mentransformasikan citra yang telah dibuka adalah melalui menu
bar, yaitu dengan memilih “Edit Transformasi”.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
Gambar 4.7 Menu bar “Transformasi”
Setelah tombol ini ditekan, maka citra hasil trnasformasi akan tampil di
kotak tengah. Hal ini juga akan mengaktifkan tombol untuk rekonstruksi.
4. Tombol “Rekonstruksi”
Tombol ini berfungsi untuk merekontruksi citra yang telah ditransformasi.
Gambar 4.8 Tombol “Rekonstruksi”
Selain dengan menekan tombol rekonstruksi, ada cara yang lain pula untuk
keluar dari aplikasi, yaitu melalui menu bar, pilih “Edit Rekonstruksi”.
Gambar 4.9 Menu bar “Rekonstruksi”
5. Tombol “Tampil” dan Edit text “Lihat Blok”
Setelah mengoperasikan fungsi rekonstruksi, maka akan mengaktifkan
tombol “Tampil” yang berfungsi untuk melihat blok citra asli, citra hasil
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
65
transformasi, ataupun citra hasil rekonstruksi per 8x8 blok, dengan cara
memasukkan suatu nilai pada edit text yang tersedia. Nilai maksimal yang dapat
dimasukkan oleh user akan tampil di atas edit text tersebut.
Gambar 4.10 Tombol “Tampilkan” dan Edit text lihat blok
6. Grid nilai pixel
Nilai pixel blok 8x8 akan ditampilkan pada grid yang telah tersedia. Nilai
pixel tersebut akan tampil setelah user menekan tombol tampilkan, dan blok yang
akan tampil berdasarkan nilai masukan dari user.
Sebagai contoh misalnya user memasukkan nilai 5 pada “Baris” dan 6
pada “Kolom”, maka citra akan dibagi menjadi blok-blok 8x8 pixel, dan
penghitungan baris dan kolom berdasarkan dari blok-blok tersebut.
nilai pixel asli nilai pixel transformasi nilai pixel rekonstruksi
Gambar 4.11 Grid citra asli, transformasi, dan rekonstruksi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
66
7. Input “Kuantisasi”
User dapat memasukkan nilai kuantisasi jika metode yang dipilih adalah
“Blok Matriks”. Hal ini disebabkan karena jika user memilih metode “Langsung”
maka kuantisasi akan ditentukan berdasarkan prosentase yang telah dipilih.
Masukan kuantisasi berupa sebuah nilai yang digunakan untuk meng-
kuantisasi nilai dari pixel hasil transformasi (membuat nol nilai yang berada di
range masukan user). Nilai yang dimasukkan nantinya akan dijadikan batas atas
dan batas bawah. Contohnya adalah sebagai berikut:
Nilai pixel sebelum kuantisasi
-6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6
Nilai kuantisasi (Q) = 3
-6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6
Hasil kuantisasi
-6 -5 -4 0 0 0 0 0 0 0 4 5 6
Gambar 4.12 Contoh penerapan kuantisasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
67
Dalam implementasinya akan menjadi seperti gambar di bawah ini:
Nilai pixel sebelum kuantisasi
Nilai kuantisasi (Q) = 10
Hasil kuantisasi
Gambar 4.13 Implementasi penerapan input nilai kuantisasi
Dari gambar tersebut terlihat bahwa nilai yang berada di atas -10 dan di
bawah 10 ( 1010 ≤≤− x ) akan dikuantisasi menjadi nol. Dalam kasus tersebut
antara nilai asli dan nilai rekonstruksi terlihat banyak berbeda dan banyak pula
yang mempunyai selisih yang besar. Hal ini disebabkan karena contoh yang
diambil adalah sebuah citra dengan resolusi 8x8 pixel sehingga range antara nilai
terbesar dengan nilai terkecil tidak terlalu lebar. Dalam kasus yang lain, setiap
citra memiliki range yang berbeda sehingga hasil yang didapat berbeda pula.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
68
8. Prosentase kuantisasi
Prosentase kuantisasi ini dapat dipilih jika sebelumnya user memilih
metode kuantisasi “Langsung”. Nilai-nilai yang tertera pada popup menu
merupakan prosentase dari nilai yang akan digunakan untuk kuantisasi.
Sebelum kuantisasi dilakukan, program sebelumnya akan melakukan zig-
zag scanning untuk membuat matriks hasil transformasi menjadi sebuah vector.
Kemudian nilai vector tersebut akan dikuantisasi (di-nol-kan) sebanyak n% (n
persen), tergantung masukan dari user. Setelah itu dilakukan dezig-zag scanning
untuk mengembalikan vector tersebut menjadi matriks dengan ukuran seperti
semula, untuk mendapatkan nilai yang diinginkan.
Implementasi dalam program adalah sebagai berikut:
Nilai pixel sebelum kuantisasi
Prosentase kuantisasi = 50
Hasil kuantisasi
Gambar 4.14 Implementasi penerapan prosentase kuantisasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
69
Dalam gambar di atas diambil sebuah citra dengan resolusi 8x8 pixel.
Terlihat bahwa kuantisasi sebanyak 50% akan menghasilkan nilai 0 (nol)
sebanyak separuh dari ukuran citra.
Nilai-nilai yang dihasilkan setelah citra tersebut direkonstruksi terlihat
mempunyai selisih yang berbeda-beda. Hal ini juga berlaku terhadap citra yang
berbeda dengan prosentase yang berbeda pula. Semakin kecil prosentase, maka
akan semakin sedikit selisih nilai antara citra asli dengan citra hasil rekonstruksi.
9. Tombol “Reset”
Tombol ini berfungsi untuk melakukan reset (mengosongkan) kotak yang
digunakan untuk menampilkan citra, baik citra asli, citra hasil transformasi,
maupun citra hasil rekonstruksi. Selain itu, tombol ini juga berfungsi untuk
mengeset tombol-tombol dan beberapa menu kembali seperti awal saat program
ini pertama kali dijalankan.
Gambar 4.15 Tombol “Reset”
Selain dengan menekan tombol reset, ada cara yang lain pula untuk
melakukan reset, yaitu melalui menu bar, pilih “Edit Reset”.
Gambar 4.16 Menu bar “Reset”
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
70
10. Menu bar “Help” dan “About”
Menu “Help” berfungsi untuk melihat bantuan bagaimana cara menggunakan
program ini. Sedangkan menu “About” berfungsi untuk melihat informasi tentang
program.
Gambar 4.17 Menu bar “Help” dan “About”
B. Pembahasan Program
Discrete Cosine Transform (DCT) adalah salah satu kelas operasi
matematika Fast Fourier Transform (FFT), dimana teknik ini mengambil suatu
sinyal, yang dalam hal ini adalah data pixel dari suatu mariks citra, kemudian
mentransformasikannya dengan persamaan yang ada.
Satu hal yang terlihat saat menguji persamaan algoritma DCT adalah
waktu yang dibutuhkan untuk penghitungan tiap elemen dalam DCT yang sangat
tergantung pada ukuran matriks. Karena elemen matriks citra yang dihitung cukup
banyak jika citra yang diambil berukuran besar, maka komputer juga memerlukan
waktu yang lebih lama untuk melakukan penghitungan tersebut.
Untuk mengatasi hal ini, implementasi DCT biasanya membagi sebuah
gambar menjadi lebih kecil, yang biasa disebut dengan blok, dan penghitungan
dilakukan dengan basis vector. Dalam implementasi di MATLAB, penghitungan
dengan basis vector dilakukan secara langsung dan bersama-sama, tanpa harus
menggunakan proses looping.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
71
Blok-blok yang digunakan biasanya berukuran 8 x 8 atau 16 x 16 (2nx2n).
Blok-blok tersebut kemudian dihitung dengan basis vector. Hal ini bertujuan
untuk mempersingkat waktu yang lama saat mentransformasikan nilai pixel satu
per satu.
Sebagai contoh, sebuah citra dengan ukuran 128 x 128 pixel akan
ditransformasikan dengan persamaan DCT secara langsung, tanpa menggunakan
pembagian blok matriks 8 x 8 ataupun 16 x 16. Maka dari persamaan DCT 2.4
akan terjadi looping sebanyak 16.384 kali untuk menghitung nilai yang ada dalam
tanda zigma ( ∑ ). Ditambah dengan pengecekan nilai C(i) dan C(j) yang masing-
masing memerlukan looping yang sama juga. Jadi total looping yang dibutuhkan
sebanyak 268.435.456 kali.
Demikian pula yang terjadi saat akan merekontruksi citra dengan
persamaan invers DCT 2.6 yang berarti program akan melakukan looping
sebanyak 268.435.456 juga. Hal ini sangat tidak efisien dan menghabiskan banyak
waktu, apalagi jika ukuran citra jauh lebih besar.
Berbeda jika citra tersebut dibagi dalam blok 8 x 8 dan dihitung
menggunakan basis vector dalam implementasi dengan bahasa pemrograman
MATLAB. Maka hanya akan terjadi pengulangan sebanyak ((128 x 128) ÷ (8 x 8)
x 2)2 = 262.144 (Perkalian dengan dua (2) dilakukan untuk menghitung 2 proses
yaitu transformasi dan rekonstruksi, dan pengkuadratan dilakukan untuk
mengecekan nilai C(i) dan C(j)) Proses yang kedua ini tentunya dapat lebih
menghemat waktu jika dibandingkan dengan proses yang pertama.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
72
Dalam metode kuantisasi “Langsung” citra tidak dibagi dalam blok-blok,
melainkan citra akan ditransformasi secara langsung. Namun proses penghitungan
nilai transformasi maupun rekonstruksi dilakukan dengan penghitungan basis
vector. Jadi proses dapat berjalan dengan lebih cepat jika dibanding dengan
menggunakan looping dengan perintah “for”.
Listing di bawah ini adalah contoh syntax penggunaan perintah looping
dengan statement for dan contoh penghitungan dengan basis vector.
%-----------Looping dengan statement “for”----------%
for i=1:m-1
for j=1:n-1
.....Isi dari program..... end
end
%---------------------------------------------------------------%
%-----------Penghitungan dengan basis vector---------%
i=1:m-1;
j=1:n-1;
[A,B]=meshgrid(i,j);
.....Isi dari program..... %---------------------------------------------------------------%
Pada contoh listing penghitungan dengan basis vector tersebut terdapat
statement [A,B]=meshgrid(i,j); yang berfungsi untuk menghasilkan array [A,B]
berdasarkan ukuran (i,j), yang berguna untuk mengalokasikan memori yang akan
dipakai nantinya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
73
C. Pengujian Program
1. Persiapan Berkas Sumber
Berkas–berkas (file) yang disiapkan untuk menjadi citra uji ada beberapa
citra dengan resolusi yang berbeda, yang nantinya akan dimampatkan dengan
kualitas pemampatan yang berbeda dan dengan metode yang berbeda pula, untuk
membandingkan hasil dari masing-masing metode dan kualitas pemampatan.
Citra yang akan dijadikan citra uji adalah sebagai berikut:
Tabel 4.1 Citra uji
No. Citra Nama file Resolusi Jenis citra
1
64.bmp 64 x 64 Greyscale
2 naga.bmp 128 x 128 Greyscale
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
74
2. Pengaktifan Program
a. Tampilan buka citra
Saat menekan tombol “Buka File Citra”, maka akan keluar tampilan
untuk memilih citra mana yang akan dibuka, dan citra yang dibuka harus
bertipe *.BMP.
Gambar 4.18 Tampilan Buka File Citra
Listing untuk membuka file citra adalah sebagai berikut:
%==============================================%
....
[nama_file, nama_path]=uigetfile(...
{'*.bmp','File Citra(*.bmp)'},...
'Buka File Citra');
if ~isequal(nama_file,0)
fullpath=strcat(nama_path,nama_file);
lasterr('');
citra=imread(fullpath);
....
%==============================================%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
75
“Uigetfile” digunakan menampilkan antarmuka untuk membuka
file, dan tipe citra yang dibuka ditentukan pula dari script ini.
b. Tampilan citra asli
Setelah menentukan citra yang akan dibuka, maka program akan
menampilkan citra tersebut ke tampilan citra asli.
Gambar 4.19 Citra asli
Listing untuk menampilkan file citra adalah sebagai berikut:
%==============================================%
....
[citra, res_citra, nama_file, info]=buka_citra;
axes1 = axes('position',[0.120 0.37 0.25 0.446]);
imshow(citra);
....
%==============================================%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
76
[citra, res_citra, nama_file, info]=buka_citra; digunakan untuk memanggil
function buka_citra. Sedangkan axes1 digunakan untuk membuat suatu
axes untuk menampilkan citra yang dibuka dan kemudian menentukan
dimana citra tersebut nantinya akan ditampilkan, dan imshow digunakan
untuk menampilkan citra tersebut.
c. Tampilan citra hasil transformasi
Tampilan hasil transformasi ini akan menampilkan citra yang telah
mengalami proses transformasi.
Gambar 4.20 Tampilan citra transformasi
Tampilan citra transformasi ini akan muncul setelah user menekan
tombol “Transformasi”, yang sebelumnya memilih metode yang akan
digunakan. Dalam contoh di atas, metode yang digunakan adalah dengan
“Blok Matriks” dan blok yang digunakan adalah 8x8
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
77
Listing untuk menampilkan menghitung nilai transformasi (DCT):
%==============================================%
....
j1=0:blok-1;
j2=0:blok-1;
[J1,J2]=meshgrid(j1,j2);
C=cos(((2.*J1+1).*J2*pi)/(blok*2));
D=C';
citra=double(citra)./(blok/2);
ukuran=size(citra,1);
nblok=ukuran/blok;
brsklm=1:blok;
[baris,kolom]=meshgrid(0:(nblok-1), 0:(nblok-1));
baris=baris(:);
kolom=kolom(:);
citra_transform = zeros(size(citra));
for k=1:length(baris)
x=citra(baris(k)*blok+brsklm,kolom(k)*blok+brsklm);
D1=x*D;
D2=C*D1;
D2(:,1)=D2(:,1).*(1/sqrt(2));
D2(1,:)=D2(1,:).*(1/sqrt(2));
citra_transform(baris(k)*blok+brsklm,kolom(k)*blok+brsklm)=D2(brsklm,
brsklm);
end;....
%==============================================%
Dalam listing program di atas, membutuhkan sebuah masukan berupa
nilai dari variable blok. Nilai tersebut didapat dari function lain, dimana
function tersebut membaca popup menu saat user menentukan blok yang
akan dipakai.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
78
Output dari listing program tersebut adalah citra_transform yang
nantinya akan ditampilkan sebagai citra hasil transformasi.
d. Tampilan citra hasil rekonstruksi, nilai pixel serta penghitungan error
Tampilan citra hasil rekonstruksi ini akan menampilkan citra yang
telah mengalami proses transformasi, dan kemudian direkonstruksi
(dikenai fungsi invers) untuk mendapatkan citra seperti semula.
Gambar 4.21 Tampilan citra setelah rekonstruksi tanpa di kuantisasi
Gambar di atas menunjukkan hasil rekonstruksi citra sebelum dikenai
proses kuantisasi. Tampak bahwa citra hasil rekonstruksi, dan nilai matriks
yang ditampilkan dalam grid citra asli dan grid citra rekonstruksi terlihat
sama. Hal ini juga tampak pada error yang ditampilkan. Pada MSE terlihat
nilai 0 (nol) dan pada PSNR juga tidak terdefinisi yang ditunjukkan
dengan ”inf” dengan satuan desible.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
79
Namun setelah dikuantisasi dengan nilai tertentu, citra hasil
rekonstruksi maupun nilai matriks yang ditampilkan dalam grid akan
menjadi berbeda. Citra rekonstruksi akan tampak lebih buruk, tergantung
dari nilai kuantisasi yang dimasukkan. Semakin besar nilai kuantisasi,
maka akan semakin buruk hasil citra yang didapat.
Gambar di bawah ini adalah hasil setelah dikuantisasi dengan nilai
kuantisasi 100. Ini berarti nilai yang berada di antara -100 sampai dengan
100 akan dikuantisasi menjadi nol 0 (nol).
Gambar 4.22 Tampilan citra setelah rekonstruksi setelah dikuantisasi
Dalam tampilan di atas juga terlihat bahwa setelah mengalami proses
kuantisasi dengan nilai 100, terdapat nilai error MSE=460,97 dan
PSNR=21,49 dB. Semakin banyak error, maka nilai MSE semakin tinggi
dan nilai PSNR semakin rendah. Demikian pula sebaliknya, semakin
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
80
sedikit error, maka nilai MSE semakin rendah dan nilai PSNR semakin
tinggi.
e. Tampilan report
Report digunakan untuk melihat laporan secara keseluruhan dari data-
data yang dihasilkan. Dari tampilan report ini, user dapat melihat dengan
lebih ringkas data-data yang telah diproses dan output-nya.
Gambar 4.23 Tampilan report
Dalam tampilan ini pula terdapat beberapa informasi yang belum
terdapat pada tampilan program utama, yaitu besar data setelah
transformasi, selisih data antara data asli dengan data setelah transformasi,
dan juga rasio kompresi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
81
Besar data setelah mengalami proses transformasi dan kuantisasi
dengan nilai 100 dalam kasus tersebut di atas terlihat sangat jauh
berkurang, tetapi nilai MSE yang didapat juga cukup besar. Jika dilihat
dari kualitas citra setelah direkonstruksi juga terlihat buruk. Hal ini
disebabkan oleh nilai kuantisasi yang terlalu besar.
Dalam kasus ini, user dapat menentukan seberapa toleransi kualitas
hasil citra rekonstruksi yang diinginkan. Setelah itu, user dapat melihat
dari hasil report. Berapa nilai kuantisasi, besar data transformasi, selisih
data, dan rasio kompresi yang masih dapat ditoleransi, serta hasil error
yang didapat.
f. Tampilan pertolongan program (help) dan informasi program
Tampilan ini berisi tentang cara penggunaan program.
Gambar 4.24 Tampilan petunjuk penggunaan program
Tampilan informasi program adalah tampilan yang berisi tentang
informasi program yang telah dibuat.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
82
Gambar 4.25 Tampilan informasi program
Listing untuk menampilkan “Help”, dan “About”:
%==============================================%
....
h1 = uimenu('Parent',h0,'Label','Help','Tag','uimenu3');
h2 =
uimenu('Parent',h1,'Callback','pertolongan','Label','Help','Tag','help','Enable','on');
h2 =
uimenu('Parent',h1,'Callback','about','Label','About','Tag','about','Enable','on');
...
%==============================================%
g. Tampilan pesan kesalahan
Progam ini juga akan menampilkan berbagai pesan kesalahan apabila
user salah dalam mengoperasikan program. Berbagai pesan kesalahan ini
antara lain:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
83
Gambar 4.26 Tampilan pesan error
Pesan ini akan tampil jika ukuran blok yang dipilih oleh user lebih
besar daripada ukuran citra masukan. Misalnya ukuran citra masukan
adalah 64x64 pixel, sedangkan ukuran blok yang dipilih adalah 128x128,
maka pesan ini akan muncul, hal ini disebabkan karena citra dengan
resolusi 64x64 pixel tidak dapat dibagi menjadi blok 128x128.
h. Tampilan peringatan
a. Peringatan dalam memasukkan blok matriks
User juga akan mendapat peringatan jika ada input yang salah.
Peringatan kesalahan tersebut adalah sebagai berikut:
Gambar 4.27 Tampilan peringatan 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
84
Peringatan ini akan muncul jika user memilih metode kuantisasi “Blok
Matriks” dan kemudian menekan tombol “Tansformasi”, tetapi belum
memilih blok matriks pada popup menu.
b. Peringatan dalam memasukkan baris dan kolom
Jika user salah dalam memasukkan baris dan kolom yang digunakan
untuk melihat blok matriks, ataupun salah satu baris atau kolom atau
keduanya dalam keadaan kosong, dan user menekan tombol “Tampil”
maka akan muncul peringatan seperti gambar 4.28 di bawah ini:
Gambar 4.28 Tampilan peringatan 2
Di atas kotak untuk input angka baris dan kolom tercantum batas
maksimal user dapat memasukkan nilai. Jika user memasukkan sebuah
nilai yang melebihi batas maksimal tersebut maka peringatan ini akan
muncul.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
85
D. Perbandingan hasil pemampatan
Dari 2 metode transformasi yang telah diujikan terhadap citra uji,
maka didapat perbandingan hasil yang diperoleh antara citra asli dengan
citra hasil transformasi, yaitu sebagai berikut:
1. Metode “Blok Matriks”
a. Citra dengan resolusi 64 x 64 pixel
Citra ini diuji dengan berbagai ukuran blok matriks, dan dengan
nilai kuantisasi yang berbeda. Hasil dari pengujian tersebut terlihat
seperti tabel di bawah ini:
Tabel 4.2 Data pengujian program metode Blok Matriks 8x8
No Ukuran file Asli
Ambang Kuantisasi
Besar data asli (Matriks)
Besar data transformasi
MSE Total
PSNR Total (dB) Rasio (%)
1
8 KB
0 4096 4096 0 Inf 100
2 10 4096 2092 13,29 36,89 51,07
3 50 4096 318 249,47 24,16 7,76
4 75 4096 188 367,45 22,48 4,59
5 100 4096 131 471,74 21,39 3,20
Hasil pengujian dalam tabel 4.2 menyatakan bahwa banyaknya
elemen matriks pada data asli yang harus disimpan adalah 4096 (64x64
pixel). Matriks citra tersebut ditransformasi dengan menggunakan metode
“Blok Matriks” dengan besar blok 8x8, dengan nilai ambang kuantisasi
yang berbeda-beda (dapat dilihat pada kolom “Ambang Kuantisasi”).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
86
Dari pengujian tersebut terlihat bahwa semakin besar ambang
kuantisasi, maka akan semakin besar pula error yang didapat. Hal ini
ditunjukkan dengan nilai MSE (Mean Squared Error) yang didapat (dapat
dilihat dalam kolom “MSE Total”). Semakin besar nilai MSE,
menunjukkan semakin besar error yang didapat. Selain itu, besarnya
ambang kuantisasi juga akan mengakibatkan nilai PSNR (Peak Signal to
Noise Ratio) semakin kecil dan nilai rasio atau prosentase perbandingan
antara hasil pemampatan dan data asli (dalam tabel “Besar Data
Transformasi” dan “Besar Data Asli”) juga akan semakin kecil.
Hal tersebut di atas mengakibatkan kualitas citra hasil rekonstruksi
semakin buruk. Atau jika citra tersebut dilihat dalam bentuk matriks, maka
nilai matriks hasil rekonstruksi akan semakin menjauhi nilai matriks asli.
Hasil pengujian yang lain dapat dilihat pada tabel 4.3 sampai dengan
4.10. Perbedaan pengujian terletak pada blok matriks yang diujikan pada
citra yang mempunyai resolusi sama. Metode tersebut juga diujian dengan
citra yang mempunyai resolusi lebih besar dan dengan blok matriks yang
berbeda-beda pula.
Tabel 4.3 Data pengujian program metode Blok Matriks 16x16
No Ukuran file Asli
Ambang Kuantisasi
Besar data asli (Matriks)
Besar data transformasi
MSE Total
PSNR Total (dB) Rasio (%)
1
8 KB
0 4096 4096 0 Inf 100
2 10 4096 2210 14,04 36,66 53,96
3 50 4096 270 274,13 23,75 6,59
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
87
4 75 4096 137 395,88 22,16 3,34
5 100 4096 90 483,04 21,29 2,20
Tabel 4.4 Data pengujian program metode Blok Matriks 32x32
No Ukuran file Asli
Ambang Kuantisasi
Besar data asli (Matriks)
Besar data transformasi
MSE Total
PSNR Total (dB) Rasio (%)
1
8 KB
0 4096 4096 0 Inf 100
2 10 4096 2304 14,25 36,59 56,25
3 50 4096 261 307,44 23,25 6,37
4 75 4096 126 422,34 21,87 3,08
5 100 4096 77 508,02 21,07 1,88
Tabel 4.5 Data pengujian program metode Blok Matriks 64x64
No Ukuran file Asli
Ambang Kuantisasi
Besar data asli (Matriks)
Besar data transformasi
MSE Total
PSNR Total (dB) Rasio (%)
1
8 KB
0 4096 4096 0 Inf 100
2 10 4096 2579 11,99 37,34 62,96
3 50 4096 233 337,97 22,84 5,69
4 75 4096 102 450,34 21,60 2,49
5 100 4096 74 502,57 21,12 1,81
b. Citra dengan resolusi 128 x 128 pixel
Tabel 4.6 Data pengujian program metode Blok Matriks 8x8
No Ukuran file Asli
Ambang Kuantisasi
Besar data asli (Matriks)
Besar data transformasi
MSE Total
PSNR Total (dB) Rasio (%)
1 12 KB 0 16384 16384 0 Inf 100
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
88
2 10 16384 5075 5,39 40,81 30,98
3 50 16384 1772 151,77 26,32 10,82
4 75 16384 1110 303,12 23,31 6,77
5 100 16384 761 460,97 21,49 4,64
Tabel 4.7 Data pengujian program metode Blok Matriks 16x16
No Ukuran file Asli
Ambang Kuantisasi
Besar data asli (Matriks)
Besar data transformasi
MSE Total
PSNR Total (dB) Rasio (%)
1
12 KB
0 16384 16384 0 Inf 100
2 10 16384 5790 6,67 39,89 35,34
3 50 16384 1676 184,07 25,48 10,23
4 75 16384 909 358,96 22,58 5,55
5 100 16384 578 509,16 21,06 3,53
Tabel 4.8 Data pengujian program metode Blok Matriks 32x32
No Ukuran file Asli
Ambang Kuantisasi
Besar data asli (Matriks)
Besar data transformasi
MSE Total
PSNR Total (dB) Rasio (%)
1
12 KB
0 16384 16384 0 Inf 100
2 10 16384 7379 9,57 38,32 45,04
3 50 16384 1771 247,56 24,19 10,81
4 75 16384 961 432,64 21,77 5,87
5 100 16384 563 611,99 20,26 3,44
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
89
Tabel 4.9 Data pengujian program metode Blok Matriks 64x64
No Ukuran file Asli
Ambang Kuantisasi
Besar data asli (Matriks)
Besar data transformasi
MSE Total
PSNR Total (dB) Rasio (%)
1
12 KB
0 16384 16384 0 Inf 100
2 10 16384 8991 12,68 37,10 54,88
3 50 16384 1990 298,81 23,38 12,15
4 75 16384 972 529,36 20,89 5,93
5 100 16384 552 721,77 19,55 3,37
Tabel 4.10 Data pengujian program metode Blok Matriks 128x128
No Ukuran file Asli
Ambang Kuantisasi
Besar data asli (Matriks)
Besar data transformasi
MSE Total
PSNR Total (dB) Rasio (%)
1
12 KB
0 16384 16384 0 Inf 100
2 10 16384 11566 9,54 38,34 70,59
3 50 16384 2061 416,70 21,93 12,58
4 75 16384 900 675,56 19,83 5,49
5 100 16384 521 848,12 18,85 3,18
Dari tabel-tabel di atas terlihat bahwa dengan nilai kuantisasi yang
sama, semakin besar blok maka akan semakin kecil data transformasi (data
yang harus disimpan) berapapun resolusi citranya, yang menyebabkan
semakin besar pula error yang didapat. Hal ini tentunya akan berpengaruh
pada kualitas citra hasil rekonstruksi yang terlihat semakin tidak
menyerupai citra aslinya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
90
2. Metode “Langsung”
a. Citra dengan resolusi 64 x 64 pixel
Citra ini diuji dengan nilai prosentase kuantisasi yang berbeda.
Hasil dari pengujian tersebut terlihat seperti tabel di bawah ini:
Tabel 4.11 Data pengujian program metode Langsung 64x64
No Ukuran file Asli
ProsentaseKuantisasi
Besar data asli (Matriks)
Besar data transformasi
MSE Total
PSNR Total (dB) Rasio (%)
1
8 KB
10 4096 3686 223,65 24,64 89,99
2 20 4096 3276 210,66 24,90 79,98
3 50 4096 2048 144,99 26,52 50,00
4 75 4096 1024 242,64 24,28 25,00
5 90 4096 409 364,31 22,52 9,99
6 99 4096 40 731,60 19,49 0,98
Hasil pengujian citra dengan metode yang berbeda ini
menunjukkan hasil yang berbeda pula. Dalam tabel 4.11 terlihat citra
dengan besar data matriks asli adalah 4096 (64x64 pixel) diuji dengan
tingkatan prosentase kuantisasi yang berbeda. Prosentase ini yang nantinya
akan dipakai untuk melakukan proses kuantisasi, sampai seberapa persen
matriks yang akan di-nol-kan.
Dari hasil pengujian tersebut, semakin besar prosentase kuantisasi,
yang berarti bahwa semakin banyak nilai matriks yang di-nol-kan, maka
besar data yang harus disimpan (besar data transformasi) akan semakin
kecil. Hal ini berakibat pada nilai error (MSE) yang didapat semakin
besar, sedangkan nilai PSNR (Peak Signal to Noise Ratio) akan semakin
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
91
kecil. Jika nilai-nilai tersebut direpresentasikan sebagai sebuah citra, maka
kualitas citra akan terlihat lebih buruk, dan hasil matriks citra rekonstruksi
semakin berbeda dari matriks citra asli. Demikian pula yang terjadi pada
nilai rasio (prosentase perbandingan antara “Besar Data Transformasi”
dengan “Besar Data Asli”) akan semakin kecil.
b. Citra dengan resolusi 128 x 128 pixel
Tabel 4.12 Data pengujian program metode Langsung 128x128
No Ukuran file Asli
ProsentaseKuantisasi
Besar data asli (Matriks)
Besar data transformasi
MSE Total
PSNR Total (dB) Rasio (%)
1
8 KB
10 16384 14745 422,48 21,87 90,00
2 20 16384 13107 390,64 22,21 80,00
3 50 16384 8192 222,22 24,66 50,00
4 75 16384 4096 450,99 21,59 25,00
5 90 16384 1638 771,04 19,26 10,00
6 99 16384 163 1420,11 16,61 0,99
Tabel di atas menggambarkan bahwa berapapun ukuran citra, dengan
prosentase kuantisasi yang semakin besar maka data transformasi (data
yang harus disimpan) akan semakin kecil, yang berakibat pada besarnya
nilai error yang didapat. Sehingga kualitas citra pun akan semakin tidak
menyerupai citra aslinya. Demikian pula sebaliknya, semakin kecil
prosentase kuantisasi, maka semakin kecil pula error yang didapat, tetapi
data transformasi menjadi lebih besar jika dibandingkan dengan prosentase
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
92
kuantisasi yang lebih besar. Tetapi hal ini mengakibatkan kualitas citra
yang lebih baik.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
93
BAB V
KESIMPULAN DAN SARAN
A. Kesimpulan
Dari data yang diperoleh saat hasil pengujian program, maka dapat diambil
beberapa kesimpulan yang dapat diambil dari penulisan tugas akhir ini adalah:
1. Metode Discrete Cosine Transform (DCT) dapat digunakan untuk proses
pemampatan file citra.
2. Dalam proses pemampatan tersebut dapat menggunakan berbagai cara
kuantisasi, diantaranya adalah dengan menentukan nilai ambang kuantisasi
atau dengan menentukan prosentase untuk kuantisasi.
3. Kualitas pemampatan tergantung dari cara dan besarnya ambang kuantisasi.
Semakin kecil ukuran file yang dihasilkan, maka semakin besar pula nilai
MSE yang didapat dan semakin kecil nilai PSNR.
4. Dari kedua metode yang diterapkan, metode “Blok Matriks” menghasilkan
output yang lebih baik daripada metode “Langsung”. Hal tersebut disebabkan
karena nilai ambang kuantisasi pada metode “Blok Matriks” dapat ditentukan
oleh user sehingga nilai-nilai yang penting dapat diminimalisasi untuk
dikuantisasi. Sedangkan pada metode “Langsung” user tidak dapat
menentukan sendiri batas nilai yang akan dikuantisasi karena metode tersebut
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
94
akan mengambil nilai berdasarkan prosentase, dan tidak menghiraukan
apakah nilai yang dikuantisasi itu nilai yang penting atau bukan.
5. Dari hasil pengujian yang dilakukan, dengan citra “naga.bmp” yang
mempunyai resolusi 128x128 pixel, maka nilai yang didapat untuk hasil yang
masih baik adalah dengan metode blok matriks, dengan besar blok 8x8 dan
nilai ambang kuantisasi dibawah 50.
B. Saran
Pada perkembangan selanjutnya dapat dikembangkan suatu program
pemampatan citra dengan resolusi M x N dan citra berwarna. Dan juga dapat
dikembangkan sebuah aplikasi yang tidak hanya sekedar untuk menganalisis,
tetapi juga hasil dari pemampatan dapat disimpan, sehingga dapat benar-benar
menghemat media penyimpanan data.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
95
Daftar Pustaka
Gonzales, Rafael C., Richard E. Woods, Steven L. Eddins, 2004, Digital Image
Processing Using MATLAB, Upper Saddle River, Prentice Hall, New
Jersey.
Hankerson, Darel, Greg A. Harris, and Peter D. Johnson, Jr., 2003, Introduction to
Information Theory and Data Compression, 2nd ed., A CRC Press
Company, Wasington, DC.
Hansen Per C., James G. Nagy, Dianne P. O’Leary, 2006, Deblurring Images
Matrices, Spectra, and Filtering, Society for Industrial and Applied
Mathematics, Philadelphia.
Magrab, Edward B., Shapour Azarm, Balakumar Balachandran, James H.
Duncan, Keith E. Herold, Gregory C. Walsh, 2005, An Engineer’s Guide
to MATLAB, 2nd ed., Upper Saddle River, Prentice Hall, New Jersey.
Munir, Renaldi, 2004, Pengolahan Citra Digital dengan Pendekatan Algoritmik,
Informatika, Bandung.
Nelson, Mark, 1992, The Data Compression Book, M&T Publishing Inc, Borel
Avenue, San Mateo, California.
Pitas, Ioannis, 1993, Digital Image Processing Algorithms, Prentice Hall
International, United Kingdom.
Salomon, David, 2001, Data Compression The Complete Reference, Dept. Of
Computer Science, California State University, Northridge, USA.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
96
Sonka, M., Vaclav Hlavac, dan Roger Boyle, Image Processing, Analysis, and
Machine Vision, 2nd ed., 1998, International Thompson Publishing, CA
Steinmetz, Ralf dan Klara Nahrstedt, Multimedia: Computing, Communication,
and Application, 1995, Prentice Hall Inc., NJ
Yonata, Yosi, 2002, Kompresi Video, PT Elex Media Komputindo, Jakarta:
Gramedia
http://en .wikipedia.org, diakses tanggal 08 Oktober 2006
http://www.cs.af.ac.uk, diakses tanggal 20 Maret 2007
http://www.mathworks.com, diakses tanggal 20 Maret 2007
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
97
PERBANDINGAN CITRA ASLI DENGAN
CITRA HASIL REKONSTRUKSI
Citra resolusi 128x128 dengan Blok Matriks 8x8
Citra Asli
Ambang kuantisasi = 10
Ambang kuantisasi = 50
Ambang kuantisasi = 75
Ambang kuantisasi = 100
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
98
Citra resolusi 128x128 dengan Blok Matriks 16x16
Citra Asli
Ambang kuantisasi = 10
Ambang kuantisasi = 50
Ambang kuantisasi = 75
Ambang kuantisasi = 100
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
99
Citra resolusi 128x128 dengan Blok Matriks 32x32
Citra Asli
Ambang kuantisasi = 10
Ambang kuantisasi = 50
Ambang kuantisasi = 75
Ambang kuantisasi = 100
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
100
Citra resolusi 128x128 dengan Blok Matriks 64x64
Citra Asli
Ambang kuantisasi = 10
Ambang kuantisasi = 50
Ambang kuantisasi = 75
Ambang kuantisasi = 100
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
101
Citra resolusi 128x128 dengan Blok Matriks 128x128
Citra Asli
Ambang kuantisasi = 10
Ambang kuantisasi = 50
Ambang kuantisasi = 75
Ambang kuantisasi = 100
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
102
Citra resolusi 128x128 dengan metode langsung
Citra asli
Prosentase = 10%
Prosentase = 20%
Ambang kuantisasi = 50%
Ambang kuantisasi = 75%
Ambang kuantisasi = 90%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
103
LISTING PROGRAM
%----------DCT----------% function citra_transform=dct2blok(citra,blk,selek); %Input: % X - matriks harus 2^n x 2^n % blok - ukuran blok harus square (8x8, 16x16, ...) % %Output: % citra_transform - DCT matriks terbagi dalam blok % global selek if selek==1
blok=blk; elseif selek==0
[m n]=size (citra); blok=m;
end j1=0:blok-1; j2=0:blok-1; [J1,J2]=meshgrid(j1,j2); C=cos(((2.*J1+1).*J2*pi)/(blok*2)); D=C'; citra=double(citra)./(blok/2); ukuran=size(citra,1); nblok=ukuran/blok; brsklm=1:blok; [baris,kolom]=meshgrid(0:(nblok-1), 0:(nblok-1)); baris=baris(:); kolom=kolom(:); citra_transform = zeros(size(citra)); for k=1:length(baris)
x=citra(baris(k)*blok+brsklm,kolom(k)*blok+brsklm); D1=x*D; D2=C*D1; D2(:,1)=D2(:,1).*(1/sqrt(2)); D2(1,:)=D2(1,:).*(1/sqrt(2)); citra_transform(baris(k)*blok+brsklm,kolom(k)*blok+brsklm)=D2(brsklm,brsklm);
end; %----------IDCT----------% function citra_rekons=blkidct2cos(citra,dqZig,blk,selek,qZig); %Output: % citra - inverse transformed matrix % qmtrx=get(findobj(figura,'Tag','quant_axes'),'UserData'); % dqZig=round(blkproc(Z,[8 8],'x./P1',qmtrx)); if selek==1
blok=blk; else
[m n]=size (citra); blok=m;
end blok=blk; j1=0:blok-1; j2=0:blok-1; [J1,J2]=meshgrid(j1,j2); C=cos(((2.*J1+1).*J2*pi)/(blok*2)); D=C';
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
104
dqZig=double(dqZig)./(blok/2); ukuran=size(dqZig,1); nblok=ukuran/blok; brsklm=1:blok; [baris,kolom]=meshgrid(0:(nblok-1), 0:(nblok-1)); baris=baris(:); kolom=kolom(:); citra_rekons = zeros(size(dqZig)); for k=1:length(baris)
x=dqZig(baris(k)*blok+brsklm,kolom(k)*blok+brsklm); x(:,1)=x(:,1).*(1/sqrt(2)); x(1,:)=x(1,:).*(1/sqrt(2)); D1=x*C; D2=D*D1; citra_rekons(baris(k)*blok+brsklm,kolom(k)*blok+brsklm)=D2 (brsklm,brsklm);
end;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI