Analisis Perbandingan Kompresi Citra Mengunakan Algoritma Transformasi Walsh-Hadamard Dengan Run Length Encoding (RLE)
ANALISIS PERBANDINGAN KOMPRESI CITRA MENGUNAKAN
ALGORITMA TRANSFORMASI WALSH-HADAMARD
DENGAN
RUN LENGTH ENCODING
(RLE)
DRAFT SKRIPSI
RACHMI HANDRIYATI
081401036
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2013
(2)
ANALISIS PERBANDINGAN KOMPRESI CITRA MENGUNAKAN ALGORITMA TRANSFORMASI WALSH-HADAMARD
DENGAN RUN LENGTH ENCODING (RLE)
DRAFT SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer
RACHMI HANDRIYATI 081401036
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2013
(3)
PERSETUJUAN
Judul : ANALISIS PERBANDINGAN KOMPRESI CITRA
MENGUNAKAN ALGORITMA TRANSFORMASI WALSH-HADAMARD DENGAN RUN LENGTH ENCODING (RLE)
Kategori : SKRIPSI
Nama : RACHMI HANDRIYATI
Nomor Induk Mahasiswa : 081401036
Program Studi : SARJANA (S1) ILMU KOMPUTER
Departemen : ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI
Komisi Pembimbing :
Pembimbing II, Pembimbing I,
Drs. Partano Siagian, M.Sc Dr. Poltak Sihombing, M.Kom
NIP.195112271980031001 NIP. 196203171991021001
Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer Ketua,
Dr. Poltak Sihombing, M.Kom NIP. 196203171991021001
(4)
PERNYATAAN
ANALISIS PERBANDINGAN KOMPRESI CITRA MENGUNAKAN ALGORITMA TRANSFORMASI WALSH-HADAMARD DENGAN RUN LENGTH ENCODING
(RLE)
DRAFT SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, 22 Oktober 2013
RACHMI HANDRIYATI 081401036
(5)
PENGHARGAAN
Alhamdulillahhirabbilalamin puji dan syukur tak lupa penulis ucapkan kepada Allah SWT atas limpahan berkat, rahmat, serta kemudahan yang telah diberikan sehingga penulis dapat menyelesaikan skripsi ini yang dimana merupakan syarat untuk mendapatkan gelar Sarjana Komputer pada Departemen Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi. Tak lupa juga shalawat serta salam kepada teladan terbesar kita kepada Nabi Muhammad SAW.
Dalam periode pengerjaan skripsi yang berjudul Analisis Perbandingan Kompresi Citra Menggunakan Algoritma Transformasi Walsh-Hadamard dengan Run Length Encoding (RLE) ini, penulis menyadari bahwa sangat banyak pihak yang sangat berjasa untuk turut membantu penulis dalam penyelesaian skripsi ini. Dalam kesempatan ini penulis sangat ingin mengucapkan terima kasih kepada :
1. Rektor Universitas Sumatera Utara Bapak Prof. Dr. dr. Syahril Pasaribu, DTM&H, M.Sc (CTM)
2. Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Bapak Prof. Dr. Muhammad Zarlis.
3. Bapak Dr.Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer dan Pembimbing I yang telah memberikan banyak nasehat, arahan, dan motivasi kepada penulis dalam pengerjaan skripsi ini.
4. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi Ilmu Komputer. 5. Bapak Drs. Partano Siagian,MSc selaku Pembimbing II yang telah memberikan
banyak nasehat, arahan, dan motivasi kepada penulis dalam pengerjaan skripsi ini. 6. Bapak Drs. Open Darius,M.Sc selaku Pembanding I yang telah memberikan kritik
dan saran kepada penulis dalam penyempurnaan skripsi ini.
7. Bapak Handrizal, S.Si, M.Comp.Sc selaku Pembanding II yang telah memberikan kritik dan saran kepada penulis dalam penyempurnaan skripsi ini. serta Dekan dan Pembantu Dekan Fakultas IlmuKomputer dan Teknologi Informasi, semua dosen dan semua pegawai di Program Studi S1 Ilmu Komputer Fakultas Ilmu KomputerdanTeknologiInformasi Universitas Sumatera Utara.
8. Ayahanda Ir.M.Taufik Batubara MSi serta Ibunda Handriyana atas doa, motivasi dan kasih sayang yang tulus tak terhingga kepada penulis.
(6)
9. Khususnya kepada Andi Parlindungan Lubis yang selalu mendukung, mendoakan dengan tulus serta selalu setia kepada penulis.
10. Adik-adik tercinta Muhammad Hilman, Muhammad Fikri dan Laila Farhan Bawazir
11. Dendy Muhara Zulfi sahabat yang selalu memberikan motivasi, saran, dan do’a kepada penulis.
12. Seluruh Mahasiswa/mahasiswi IlKOM senior maupun Junior
Penulis menyadari bahwa skripsi ini jauh dari kata sempurna, sehingga penulis tidak ragu untuk menerima kritik dan saran yang berguna dalam membangun serta mengembangkan skripsi ini.Sehingga akhirnya dapat bermanfaat bagi kita semua.
Medan, Oktober 2013
(7)
ABSTRAK
Run length encoding merupakan metode kompresi yang bersifat lossless kemudian terdapat juga metode walsh-hadamard yang bersifat lossy. Kedua metode ini memberikan hasil yang berbeda mengenai hasil citra kompresinya. Didalam melakukan kompresi terhadap citra salah satu yang menjadi masalah yaitu rasio kompresi yang dihasilkan metode yang digunakan sudah termasuk tinggi atau tidak, semakin tinggi rasio yang didapatkan maka semakin baik metode kompresi tersebut. Selain itu waktu juga merupakan salah satu faktor yang menjadi pertimbangan didalam pemilihan metode kompresi yang baik tersebut. Pada penelitian ini dibuat suatu aplikasi yang dapat menghitung rasio dan waktu kompresi pada metode run length encoding dan walsh-hadamard. Dalam percobaan yang dilakukan didapatkan bahwa kedua metode ini memberikan hasil yang berbeda dimana metode walsh-hadamard memberikan hasil kompresi yang lebih baik tetapi membutuhkan waktu yang lama dalam proses pengkompresannya. Sedangkan metode run length encoding memberikan hasil yang terkadang baik tetapi terkadang metode ini tidak mengkompres citra sama sekali karena tidak adanya data yang berulang pada citra, tetapi metode ini mempunyai waktu yang jauh lebih cepat saat melakukan proses kompresi.
Kata Kunci : BMP, Citra, Dekompresi, Kompresi, Lossy, Lossless, Run Length Encoding, Transformasi Walsh-Hadamard
(8)
COMPARASION ANALYSIS IMAGE COMPRESSION WITH USING ALGORITHM WALSH-HADAMARD TRANSFORMATION AND RUN
LENGTH ENCODING (RLE)
ABSTRACT
Run length encoding is compression methods that have trait lossless then there are also walsh-hadamard method have trait lossy. The second method these give result that different about results image compression. In the compression the image one of that be problem is compression ratio that result methode that be use has included high or not, higher ratio that can the better the compression method. Moreover time also is one factor that into consideration in the selection method a good compression. In this study made an application that can calculate ratio and compression time with run length encoding method and walsh-hadamard. In the experiment that do can that two method give result that different where walsh-hadamard method give compression result that more better but need long time in compression process. Whereas run length encoding method give result that sometimes good but sometimes this method not image compression because absence of data repeated on the image but this method has fast time when performing compression process.
Keywords: BMP, Compression, Decompression, Image, Lossy, Lossless, Run Length Encoding, Walsh-Hadamard Transformation
(9)
DAFTAR ISI
Halaman
Persetujuan iii
Pernyataan iv
Penghargaan v
Abstrak vii
Abstract viii
Daftar Isi ix
Daftar Tabel xi
Daftar Gambar xii
BAB 1 Pendahuluan 1
1.1 Latar Belakang Masalah 1
1.2 Rumusan Masalah 2
1.3 Batasan Masalah 3
1.4 Tujuan Penelitian 3
1.5 Manfaat Penelitian 3
1.6 Metode Penelitian 4
1.7 Sistematika Penulisan 5
BAB 2 Landasan Teori 6
2.1 Citra Digital 6
2.1.1 Pengertian Citra Digital 7
2.1.2 Format File Citra 8
2.1.3 Pixel Pada Citra Digital 10
2.2 Struktur Citra Format Bitmap 10
2.3 Kompresi 13
2.3.1 Kompresi Lossless 14
2.3.2 Kompresi Lossy 14
2.4 RLE (Run Length Encoding) 15
2.4.1 Varian dari RLE(Run Length Encoding) 16
2.5 Walsh Hadamard Transform 17
2.6 Flowchart 19
BAB 3 Analisis dan Perancangan Sistem 21
3.1 Analisis 21
3.2 Proses Kompresi 26
3.3 Proses Dekompresi 29
3.4 Perancangan Antar Muka 31
3.4.1 Form Utama 31
3.4.2 Form Profil 33
BAB 4 Implementasi dan Pengujian 34
4.1 Implementasi 34
4.2 Tampilan Utama 34
(10)
4.4 Hasil Pengujian 43
BAB 5 Kesimpulan dan Saran 47
5.1 Kesimpulan 47
5.2 Saran 48
Daftar Pustaka 49
(11)
DAFTAR TABEL
Nomor Tabel
Nama Tabel Halaman
2.1 2.2 2.3 3.1 4.1
Format file citra bitmap Struktur File Bitmap Simbol-simbol flowchart Hasil kernel walsh-hadamard
Perbandingan Hasil kompresi menggunakan metode run length encodingdengan Transformasi Walsh-Hadamard
9 11 20 28 43
(12)
DAFTAR GAMBAR
Nomor Gambar
Nama Gambar Halaman
2.1 2.2 2.3 2.4 2.5 2.6 3.1 3.2 3.3 3.4 3.5 3.6 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15
Ilustrasi digitalisasi citra (pixel pada koordinat x = 10, y = 7 memiliki nilai 110)
Struktur file BMP
Model umum kompresi citra Illustrasi kompreso Lossless
Illustrasi kompreso Lossy
Varian RLE (Run Length Encoding) Flowchart kompresi Run Length Encoding
Flowchart dekompresi Run Length Encoding
Flowchart kompresi Walsh-Hadamard
Flowchart dekompresi Walsh-Hadamard
Rancangan form utama Rancangan form profil Tampilan program utama
Tampilan jendela pemilihan gambar Tampilan pesan pembacaan data
Tampilan pesan proses kompresi selesai Tampilan pesan penyimpanan citra Tampilan penyimpanan hasil kompresi Tampilan pesan penyimpanan berhasil
Tampilan hasil kompres menggunakan run length encoding
Tampilan nilai hasil kompresi metode run length encoding
Tampilan nilai hasil dekompresi metode run length encoding
Tampilan nilai hasil kompresi metode walsh-hadamard
(a) Citra Asli
(b) Hasil dekompresi run length encoding
(c) Hasil dekompresi walsh-hadamard
Tampilan profil pemrogram Grafik rasio kompresi gambar Grafik waktu kompresi gambar
7 12 13 14 15 17 22 23 24 25 31 33 34 35 36 36 37 38 38 39 40 41 41 42 43 44 45
(13)
ABSTRAK
Run length encoding merupakan metode kompresi yang bersifat lossless kemudian terdapat juga metode walsh-hadamard yang bersifat lossy. Kedua metode ini memberikan hasil yang berbeda mengenai hasil citra kompresinya. Didalam melakukan kompresi terhadap citra salah satu yang menjadi masalah yaitu rasio kompresi yang dihasilkan metode yang digunakan sudah termasuk tinggi atau tidak, semakin tinggi rasio yang didapatkan maka semakin baik metode kompresi tersebut. Selain itu waktu juga merupakan salah satu faktor yang menjadi pertimbangan didalam pemilihan metode kompresi yang baik tersebut. Pada penelitian ini dibuat suatu aplikasi yang dapat menghitung rasio dan waktu kompresi pada metode run length encoding dan walsh-hadamard. Dalam percobaan yang dilakukan didapatkan bahwa kedua metode ini memberikan hasil yang berbeda dimana metode walsh-hadamard memberikan hasil kompresi yang lebih baik tetapi membutuhkan waktu yang lama dalam proses pengkompresannya. Sedangkan metode run length encoding memberikan hasil yang terkadang baik tetapi terkadang metode ini tidak mengkompres citra sama sekali karena tidak adanya data yang berulang pada citra, tetapi metode ini mempunyai waktu yang jauh lebih cepat saat melakukan proses kompresi.
Kata Kunci : BMP, Citra, Dekompresi, Kompresi, Lossy, Lossless, Run Length Encoding, Transformasi Walsh-Hadamard
(14)
COMPARASION ANALYSIS IMAGE COMPRESSION WITH USING ALGORITHM WALSH-HADAMARD TRANSFORMATION AND RUN
LENGTH ENCODING (RLE)
ABSTRACT
Run length encoding is compression methods that have trait lossless then there are also walsh-hadamard method have trait lossy. The second method these give result that different about results image compression. In the compression the image one of that be problem is compression ratio that result methode that be use has included high or not, higher ratio that can the better the compression method. Moreover time also is one factor that into consideration in the selection method a good compression. In this study made an application that can calculate ratio and compression time with run length encoding method and walsh-hadamard. In the experiment that do can that two method give result that different where walsh-hadamard method give compression result that more better but need long time in compression process. Whereas run length encoding method give result that sometimes good but sometimes this method not image compression because absence of data repeated on the image but this method has fast time when performing compression process.
Keywords: BMP, Compression, Decompression, Image, Lossy, Lossless, Run Length Encoding, Walsh-Hadamard Transformation
(15)
BAB 1 PENDAHULUAN
1.1 Latar Belakang Masalah
Perkembangan teknologi informasi ternyata berdampak pada perkembangan ilmu pengetahuan yang lain. Semuanya merupakan informasi yang sangat penting. Oleh karena itu, detail karakteristik citra tidak boleh ada yang hilang. Sebelum ada teknologi informasi, citra-citra tersebut disimpan dalam bentuk film sehingga disimpan dalam jumlah yang besar dan tentu saja data citra tersebut memerlukan tempat penyimpanan yang besar. Dengan hadirnya teknologi informasi, citra-citra tersebut disimpan dalam bentuk file. Sayangnya, file-file jenis citra ini berukuran relatif besar sehingga file-file tersebut belum dapat disimpan. Salah satu solusi memperkecil ukuran file adalah dengan melakukan kompresi citra [11].
Dalam ilmu komputer kompresi citra bertujuan untuk meminimalkan jumlah bit yang diperlukan untuk merepresentasikan citra [9]. Kompresi citra adalah waktu pengiriman data pada saluran komunikasi lebih singkat dan membutuhkan ruang memori dalam storage yang lebih sedikit [11].
Kompresi citra dikembangkan untuk memudahkan penyimpanan dan pengiriman citra. Teknik kompresi yang ada sekarang memungkinkan citra dikompresi sehingga ukurannya menjadi jauh lebih kecil dari pada ukuran asli [9]. Secara umum, metode kompresi data dapat dibagi kedalam dua kelompok yaitu lossy dan losseless. Lossy merupakan kompresi citra dimana hasil kompresi dari citra yang terkompresi tidak sama dengan citra aslinya karena ada informasi yang hilang, tetapi masih bisa ditolerir oleh persepsi mata. Mata dapat membedakan perubahan kecil pada gambar. Metode ini menghasilkan rasio kompresi lebih tinggi dari pada metode lossless. Contohnya adalah transformasi walsh-hadamard, transformasi fourier, wavelet, dan lain-lain [11].
Metode lossless merupakan kompresi citra dimana hasil dekompresi dari citra yang terkompresi sama denga citra aslinya, tidak ada informasi yang hilang. Sayangnya, rasio kompresi citra metode ini sangat rendah. Banyak aplikasi yang memerlukan kompresi tanpa cacat, seperti pada aplikasi radiografi, kompresi citra hasil diagnosa medis atau gambar satelit, dimana kehilangan gambar sekecil apa pun akan
(16)
menyebabkan hasil yang tak diharapkan. Contohnya adalah run length encoding (RLE), entropy encoding (huffman aritmatik), dan adaptive dictionary based (LZW) [11].
Pada penelitian ini algoritma yang digunakan untuk membandingkan kompresi data adalah Transformasi Walsh-Hadamard dan Run Length Encoding (RLE). Transformasi citra merupakan pokok bahasan yang sangat penting dalam pengolahan citra. Citra hasil proses transformasi dapat dianalisis kembali, diinterpretasikan dan dijadikan acuan untuk melakukan pemrosesan selanjutnya. Tujuan diterapkannya transformasi citra adalah untuk memperoleh informasi (feature extraction) yang lebih jelas yang terkandung dalam suatu citra [11]. Transfromasi walsh-hadamard merupakan suatu transformasi orthogonal yang menjadikan suatu signal menjadi suatu himpunan gelombang yang berbentuk tegak lurus (orthogonal) dan segi empat (rectangluar). Transformasi walsh-hadamard dapat didefinisikan dengan dua cara yaitu representasi rekursif dna biner. Kedua cara tersebut akan menghasilkan matriks yang sama. Apabila dari matriks tersebut diambol dua baris secara acak, maka dua baris matriks tersebut akan bersifat saling orthogonal [5].
Algoritma Run Length Encoding (RLE) bekerja berdasarkan sederetan karakter yang berurutan. Algoritma ini bekerja dengan memindahkan pengulangan byte yang sama berturut-turut (secara terus menerus) [2]. Metode ini digunakan untuk mengompresi citra yang memiliki kelompok pixel yang berderajat keabuan yang sama. Berdasarkan hal yang telah diuraikan diatas maka pada penelitian ini penulis mengambil judul “Analisis Perbandingan Kompresi Citra Menggunakan Algoritma Transformasi Walsh-Hadamard denga Run Length Encoding (RLE)”.
1.2 Rumusan Masalah
Rumusan masalah dalam penelitian ini adalah:
a. Bagaimana membuat sistem yang dapat mengetahui rasio hasil kompresi menggunakan metode run length encoding dan metode walsh-hadamard
b. Bagaimana mengetahui rasio kompresi yang terbaik antara algoritma
Transformasi Walsh-Hadamard dengan Run Length Encoding (RLE) dalam melakuan kompresi file citra
(17)
c. Bagaimana mengetahui waktu yang dibutuhkan untuk mengkompres gambar untuk masing-masing algoritma Transformasi Walsh-Hadamard dan Run Length Encoding (RLE)
d. Bagaimana mengetahui metode mana yang mempunyai sifat lossy maupun
lossless.
1.3 Batasan Masalah
Adapun yang menjadi batasan masalah dalam penelitian ini adalah: 1. File citra yang dikompresi bertipe BMP
2. Tidak membahas perubahan resolusi citra hasil kompresi
3. Metode Walsh-Hadamard yang digunakan metode transformasi 1 dimensi 4. Yang dikompres merupakan struktur citra tipe BMP
5. Bahasa pemrograman yang digunakan adalah Microsoft Visual Basic.NET
6. Resolusi maksimal citra 64x64 pixel
7. Parameter yang digunakan adalah rasio serta kecepatan kompresi.
1.4 Tujuan Penelitian
Tujuan dari penelitian ini adalah:
1. Untuk mengetahui rasio dan kecepatan kompresi masing-masing file citra 2. Untuk membangun sebuah perangkat lunak kompresi fie citra
1.5 Manfaat Penelitian
Manfaat yang diharapkan dari penelitian ini adalah:
1. Untuk menghasilkan sebuah perangkat lunak yang mampu melakukan kompresi file citra digital dengan algoritma Transformasi Walsh-Hadamard dan Run Length Encoding (RLE)
2. Sebagai bahan referensi mengenai algoritma Transformasi Walsh-Hadamard dan Run Length Encoding (RLE) pada proses kompresi file
3. Untuk mengetahui tingkat efisiensi kompresi menggunakan metode Transformasi Walsh-Hadamard dan Run Length Encoding (RLE)
(18)
1.6 Metode Penelitian
Didalam penyusunan skripsi ini penulis melakukan tahapan sebagai berikut :
1. Studi Literatur
Pengerjaan skripsi ini dimulai dengan mengumpulkan informasi tentang kompresi/dekompres, algoritma kompresi Transformasi Walsh hadamard dan Run Length Encoding, file citra BMP yang diperlukan menggunakan metode
Library Research. Penulis mengumpulkan informasi sebagai referensi baik dari buku, paper, jurnal, makalah, dan sumber-sumber lain yang berkaitan dan beberapa referensi lainnya untuk menunjang pencapaian penelitian.
2. Analisis dan Perancangan
Pada tahap ini, dilakukan analisis permasalahan yang ada, batasan yang dimiliki,
flowchart sistem kompresi serta kebutuhan lain yang diperlukan untuk arsitektur perangkat lunak serta merancang user interface dan struktur program kompresi.
3. Implementasi Program
Implementasi program dilakukan dengan pengkodean menggunakan bahasa pemrograman Microsoft Visual Basic.NET
4. Pengujian
Pada tahap ini dilakukan pengujian terhadap aplikasi yang dibangun sesuai dengan tujuan yang ingin dicapai, yaitu melakukan dua algoritma kompresi
citra di atas untuk mengetahui hasil dari rasio kompresi.
5. Penyusunan Laporan dan Kesimpulan Akhir
Metode ini akan dilaksanakan dengan melakukan pendokumentasian hasil analisa dan pengujian secara tertulis dalam bentuk laporan skripsi.
1.7 Sistematika Penulisan
(19)
BAB 1 PENDAHULUAN membahas Latar Belakang, Perumusan Masalah, Batasan Masalah, Tujuan penelitian, Manfaat Penelitian, Metode Penelitian yang dilakukan serta Sistematika penulisan.
BAB 2 LANDASAN TEORI membahas tentang landasan teori audio, kompresi/dekompresi, algoritma Run Length Encoding serta flow chart.
BAB 3 ANALISIS DAN PERANCANGAN membahas mengenai perhitungan nilai piksel citra, coding sample citra, decoding sample citra, flow chart sistem serta perancangan antar muka pengguna.
BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM membahas tentang implementasi dan pengujian sistem.
BAB 5 PENUTUP merupakan kesimpulan dari semua pembahasan yang ada dengan saran-saran yang ditujukan bagi para pembaca atau pengembang.
(20)
BAB 2
LANDASAN TEORI
2.1 Citra Digital
Secara harfiah citra (image) adalah gambar pada bidang dwimatra atau dua dimensi. Citra juga dapat diartikan sebagai kumpulan titik-titik dengan intesitas warna tertentu yang membentuk suatu kesatuan dan mempunyai pengertian artistik. Citra sebagai salah satu komponen multimedia yang memegang peranan sangat penting sebagai salah satu bentuk informasi visual [1].
Pada umumnya representasi citra digital membutuhkan memori yang besar. Semakin besar ukuran citra tentu semakin besar pula memori yang dibutuhkannya. Pada sisi lain, kebanyakan citra mengandung duplikasi data. Duplikasi data pada citra dapat berarti dua hal. Pertama, besar kemungkinan suatu pixel dengan pixel tetangganya memiliki intensitas yang sama, sehingga penyimpanan setiap pixel memboroskan tempat. Kedua, citra banyak mengandung bagian (region) yang sama, sehingga bagian yang sama ini tidak perlu dikodekan berulang kali karena redundan .[9]
Citra tidak sama dengan teks yang hanya memberikan informasi secara jelas dengan kata-kata yang dipaparkan, sedangkan citra memberikan informasi yang jelas dengan memberikan gambaran visual dan terkadang informasi yang diberikan dapat memacu imajinasi dari orang yang melihat citra untuk menyimpulkan informasi dari citra tersebut.
Citra merupakan keluaran dari suatu sistem perekaman data yang bersifat optik, analog ataupun digital. Perekaman data citra dapat dibagi menjadi dua yaitu:
1. Citra Analog
Citra analog yaitu terdiri dari sinyal-sinyal elektromagnetik yang tidak dapat dibedakan sehingga pada umumnya tidak dapat ditentukan ukurannya. Citra analog mempunyai fungsi yang kontinu. Hasil perekaman citra analog dapat bersifat optik yakni berupa foto (film foto konvensional) dan bersifat sinyal video seperti gambar pada monitor televisi.
(21)
2. Citra Digital
Citra digital terdiri dari sinyal-sinyal yang dapat dibedakan dan mempunyai fungsi yang tidak kontinu yakni berupa titik-titik warna pembentuk citra. Hasil perekaman citra digital dapat disimpan pada suatu media magnetik [1].
2.1.1 Pengertian Citra Digital
Secara umum, pengolahan citra digital menunjuk pada pemrosesan gambar 2 dimensi menggunakan komputer. Dalam konteks yang lebih luas, pengolahan citra digital mengacu pada pemrosesan setiap data 2 dimensi. Citra digital merupakan sebuah larik (array) yang berisi nilai-nilai real maupun komplek yang direpresentasikan dengan deretan bit tertentu [8].
Suatu citra dapat didefinisikan sebagai fungsi f(x,y) berukuran M baris dan N kolom, dengan x dan y adalah koordinat spasial, dan amplitudo f di titik koordinat (x,y) dinamakan intensitas atau tingkat keabuan dari citra pada titik tersebut. Apabila nilai x,y, dan nilai amplitudo f secara keseluruhan berhingga (finite) dan bernilai diskrit maka dapat dikatakan bahwa citra tersebut adalah citra digital. Gambar 2.1 menunjukkan posisi koordinat citra digital [8].
Sumber: Darma, Putra. 2009.
Gambar 2.1 Ilustrasi digitalisasi citra (pixel pada koordinat x = 10, y = 7 memiliki nilai 110)
(22)
Citra dapat ditulis dalam bentuk matrik sebagai berikut:
2.1.2 Format File Citra
Ada dua jenis format file citra yang sering digunakan dalam pengolahan citra, yaitu citra bitmap dan citra vektor. Istilah ini biasanya digunakan pada saat melakukan desain grafis.
1. Format File Citra Bitmap
Citra bitmap sering disebut juga dengan citra raster. Citra bitmap menyimpan data kode citra secara digital dan lengkap (cara penyimpanannya adalah per pixel). Citra bitmap dipresentasikan dalam bentuk matriks atau dipetakan dengan menggunakan bilangan biner atau sistem bilangan lain. Citra ini memiliki kelebihan untuk memanipulasiwarna, tetapi untuk mengubah objek lebih sulit. Tampilan bitmap mampu menunjukkan kehalusan gradasi bayangan dan warna dari sebuah gambar. Oleh karena itu, bitmap merupakan media elektronik yang paling tepat untuk gambar-gambar dengan perpaduan gradasi warna yang rumit, seperti foto dan lukisan digital. Citra bitmap biasanya diperoleh dengan cara
scanner, kamera digital, video capture, dan lain-lain. Bila diperbesar maka tampilan di monitor akan tampak pecah-pecah (kualitas citra menurun). Beberapa format yang umum digunakan dalam pemrograman pengolahan citra disajikan dalam tabel 2.1 [9].
(23)
Tabel 2.1 Format file citra bitmap
Nama Format Ekstensi Keterangan Microsoft Windows
Bitmap Format
BMP Format umum untuk menyimpan citra bitmap yang dikembangkan oleh Microsoft
Compuserve Graphics
Interchange Format
GIFF Format umum citra yang dirancang untuk keperluan transmisi melalui modem Aldus Tagged Image
File Format
TIF Format kompleks dan multiguna yang
dikembangkan oleh Aldus bersama microsoft Word Perfect
Graphics Format
WPG Format vektor yang juga mendukung citra bitmap
GEM Image Format IMG Format bitmap yang dikembangkan untuk riset digital dilingkungan GEM
Zsoft Pengolahan Citra Paintbrush Format
PCS Dirancang untuk menyimpan citra layar dan merupakan formatbitmap yang didukung luas Microsoft Paint
Bitmap Format
MSP Secara fungsional mirip dengan IMG dan PCX, tapi kurang popular
AT & T Targa Format
TGA Format untuk 16-bit dan 24-bit citra warna penuh diciptakan untuk system Truevision Apple Macpaint
Format
PNTG Format asli dari Macintosh Macpaint program Sun Microsystem
Raster Format
RAS Format bitmap asli yang digunakan Sun SPARCS
X Windows X-11 Bitmap Format
XBM Format umum untuk menyimpan bitmap yang dikembangkan untuk Windows.
2. Format File Citra Vektor
Citra vektor dihasilkan dari perhitungan matematis dan tidak berdasarkan pixel, yaitu data tersimpan dalam bentuk vektor posisi, di mana yang tersimpan hanya informasi vektor posisi dengan bentuk sebuah fungsi. Pada citra vektor, mengubah warna lebih sulit dilakukan, tetapi membentuk objek dengan cara mengubah nilai lebih mudah. Oleh karena itu, bila citra diperbesar atau diperkecil, kualitas citra relatif tetap baik dan tidak berubah. Citra vektor biasanya dibuat menggunakan aplikasi-aplikasi citra vektor, seperti CorelDRAW, Adobe Ilustrator, Macromedia Freehand, Autocad, dan lain-lain [9].
(24)
2.1.3 Pixel Pada Citra Digital
Setiap pixel mewakili tidak hanya satu titik dalam sebuah citra melainkan sebuah bagian berupa kotak yang merupakan bagian terkecil (sel) [8]. Nilai dari sebuah pixel haruslah dapat menunjukkan nilai rata-rata yang sama untuk seluruh bagian dari sel tersebut.
Selain itu dalam pembahasan citra digital juga terdapat istilah resolusi citra. Resolusi citra merupakan tingkat detail suatu citra. Semakin tinggi resolusi citra maka akan semakin tinggi pula tingkat detail dari citra tersebut. Satuan dalam pengukuran resolusi citra dapat berupa ukuran fisik (jumlah garis per mm/jumlah garis per inchi) ataupun dapat juga berupa ukuran citra menyeluruh (jumlah garis per tinggi citra) [8].
2.2 Struktur Citra Format Bitmap(BMP)
Bitmap merupakan format gambar asli yang sama sekali belum mengalami proses kompresi. Format file bmp dikembangkan oleh Microsoft untuk menyimpan gambar bitmap dan memungkinkan windows untuk menampilkan kembali gambar tersebut. Struktur file bmp ini terdiri dari header yang berisi informasi mengenai file, infoheader yang mengandung informasi mengenai gambar seperti resolusi, kedalaman warna, pixel dan lain sebagainya [4]. Untuk lebih jelasnya mengenai struktur file bmp ini dapat dilihat pada tabel 2.2 berikut ini.
(25)
Tabel 2.2 Struktur File Bitmap Alamat Ukuran
(Byte)
Nama Nilai Standar
Keterangan
1 2 BfType 19778 ASCI=’BM’
3 4 BfSize ? Ukuran file dalam bmp
7 2 BfReserved1 0 Tidak digunakan
9 2 BfReserved2 0 Tidak digunakan
11 4 BfOfBits 1078 Posisi byte dimana
gambar berada
15 4 BiSize 40 Ukuran dari info dalam
byte
19 4 BiWidth 100 Lebar gambar dalam
pixel
23 4 BiHeight 100 Lebar gambar dalam
pixel
27 2 BiPlanes 1 Jumlah bidang gambar
29 2 BiBitCount 8 Jumlah bit per pixel
31 4 BitCompression 0 Jenis kompresi
35 4 BiSizeImage 0 Ukuran data gambar
39 4 BiXPelsPerMeter 0 Resolusi horizontal
pixel meter 43 4 BiYPelsPerMeter 0 Resolusi vertikal pixel
meter
47 4 BiClrUsed 0 Jumlah warna yang
digunakan
51 4 BiClrImport 0 Jumlah warna
Untuk penyimpanan nilai pixel yang membentuk gambar dimulai dari alamat 54 sampai tidak berhingga, sesuai dengan banyaknya nilai pixel pada gambar. Jumlah warna yang terdapat pada gambar ditentukan oleh BiBitCount. Kemungkinan nilai untuk BiBitCount adalah 1 (hitam/putih), 4 (16 warna), 8 (256 warna), dan 24 (16,7 juta warna). Elemen data BiBitCount sekaligus menentukan apakah pada file BMP terdapat tabel warna atau tidak, sekaligus susunan dari tabel warnanya.
Untuk gambar 1 bit, tabel warna hanya berisi dua warna (biasanya hitam dan putih). Jika setiap bit dari data gambar bernilai 0 maka warna yang ditunjuknya adalah warna pertama di dalam tabel warna. Jika setiap bit dari data gambar bernilai 1 maka warna yang ditunjuknya adalah warna kedua yang terdapat di dalam tabel warna [2].
(26)
Offset didefinisikan byte ke (yang dimulai dari angka 0), sedangkan size merupakan ukuran dari panjang byte. Dimana dengan byte ke – 0 ukuran panjang 2 byte dispesifikasikan dengan nama tipe file yang diindikasikan berupa kode ASCII “BM”. Pada byte ke- 2 dengan ukuran panjang 4 byte, nama spesifikasinya bitmap file size yang berupa ukuran dari file dalam bentuk bytes.Untuk byte ke – 6 dan 8 yang ukurannya 2 byte berupa field cadangan di set 0. Pada byte ke – 10 ukurannya 4 byte yang merupakan spesifikasi dari struktur bitmap file header ke bit bitmap, dimana file gambar dimulai pada tahap ini. Byte ke – 14, panjangnya 4 byte dengan spesifikasi nama bitmap size yang mempunyai ukuran header 40 bytes. Byte ke – 18 dengan panjang 4 bytes merupakan lebar gambar dalam satuan pixel, serta byte ke 22 dengan panjang 4 bytes merupakan tinggi gambar dalam satuan pixel. Untuk byte ke – 26 dengan panjang 2 bytes merupakan bitmap planes dengan sejumlah planes (umumnya 1). Pada byte ke – 28 dengan panjang 2 byte merupakan jumlah bit per pixel: 1, 4, 8, atau 24. Dan untuk byte ke – 30 dengan panjang 4 byte yang merupakan tipe kompresi [13].
(Reny, 2012)
Gambar 2.2 Struktur File BMP
Pada 1 – 14 bytes pertama disebut File header yang merupakan tempat penyimpanan informasi umum tentang file gambar bitmap. Untuk 15 – 54 bytes berikutnya disebut info header, dimana pada blok ini berisi tentang informasi secara detail tentang gmabar bitmapnya. Dan pada 55 byte seterusnya berupa data/pixel dan padding yang merupakan isi dari gambar bitmap.
(27)
2.3 Kompresi
Proses kompresi merupakan proses mereduksi ukuran suatu data untuk menghasilkan representasi digital yang padat atau mampat namun tetap dapat mewakili kuantitas informasi yang terkandung pada data tersebut. Pada citra, video, dan audio, kompresi mengarah pada minimisasi jumlah bit rate untuk representasi digital. Pada beberapa literatur, istilah kompresi sering disebut juga
source coding, data compression, bandwidth compression, dan signal compression [8]. Kompresi data adalah proses mengubah suatu input data menjadi data lain dengan format berbeda dan ukuran yang lebih kecil, atau proses pengkodean dari suatu data untuk mengurangi kebutuhan akan media penyimpanan. Salah satu jenis berkas yang paling banyak membutuhkan proses kompresi adalah berkas citra. Citra asli umumnya disimpan dalam format
Bitmap. Format ini menghasilkan ukuran berkas yang besar dan tidak efektif untuk disimpan atau ditransfer. Teknik dan algoritma kompresi dapat digunakan untuk menghasilkan berkasbaru dari citra yang asli dengan ukuran yang lebih kecil dari berkasaslinya tanpa mengurangi kualitas dari citranya [7].
Data dan informasi adalah dua hal yang berbeda pada data terkandung suatu informasi. Namun tidak semua bagian data terkait dengan informasi tersebut atau pada suatu data terdapat bagian-bagian data yang berulang untuk mewakili informasi yang sama. Bagian data yang tidak terkait atau bagian data yang berulang tersebut disebut dengan data berlebihan (redudancy data). Tujuan daripada kompresi data tiada lain adalah untuk mengurangi data berlebihan tersebut sehingga ukuran data menjadi lebih kecil dan lebih ringan dalam proses transmisi [8].
Kompresi citra dapat dimodelkan dan dibuat menjadi dua bagian utama yaitu bagian encoder dan decoder. Encoder berfungsi membuat representasi simbol-simbol (kode) dari citra input f(x,y). Dengan kata lain encoder berfungsi membuat citra kompresi dari citra input. Setelah melalui transmisi pada kanal (channel), citra terkompresi tersebut masuk ke sistem decoder. Pada sistem ini,
(28)
citra terkompresi akan direkonstruksi kembali untuk menghasilkan citra output f’(x,y) [8].
Sumber: Putra, Darma. 2009.
Gambar 2.3 Model umum kompresi citra
Berdasarkan kandungan informasi pada citra hasil maka sifat kompresi data dapat dikelompokkan menjadi dua yaitu kompresi lossless dan kommpresi lossy.
2.3.1 Kompresi Lossless
Kompresi jenis ini informasi yang terkandung pada citra hasil sama dengan informasi pada citra asli. Citra hasil proses kompresi dapat dikembalikan secara sempurna menjadi citra asli, tidak terjadi kehilangan informasi, tidak terjadi kesalahan informasi. Oleh karena itu metode ini disebut juga error free compression [8].
Pada kompresi lossless, karena harus mempertahankan kesempurnaan informasi, sehingga hanya terdapat proses coding dan decoding, tidak terdapat proses kuantisasi. Kompresi tipe ini cocok diterapkan pada berkas basis data,
spread sheet, berkas word processing, citra biomedis, dan lain sebagainya.
Sumber: Putra, Darma. 2009.
Gambar 2.4 Ilustrasi kompresi lossless Algoritma Coding
Algoritma Decoding
BAABB 000011100101011
BAABB 000011100101011
Source Encoder
Channel
Encoder Channel
Source Decoder Channel
Decoder
Decoder Encoder
f(x,y)
(29)
2.3.2 Kompresi Lossy
Kompresi data yang bersifat lossy mengijinkan terjadinya kehilangan sebagian data tertentu dari pesan tersebut, sehingga dapat menghasilkan rasio kompresi yang tinggi. Apabil citra terkompresi direkonstruksi kembali maka hasilnya tidak sama dengan citra aslinya, tetapi informasi yang terkandung tidak sampai berubah atau hilang. Sebagian besar kompresi data lossy memiliki pengaturan tingkat kompresi yang berbeda-beda. Hal ini dilakukan agar kompresinya lebih efektif dan informasi yang terkandung pada citra tidak sampai berubah dan hilang. Kompresi data lossy ini efektif jika diterapkan pada penyimpanan data analog yang didigitalisasi seperti gambar, video dan suara.
Sumber: Putra, Darma. 2009.
Gambar 2.5Ilustrasi kompresi Lossy
2.4 RLE (Run Length Encoding)
RLE (Run Length Encoding) adalah kompresi yang umum digunakan untuk data grafis (citra). Kompresi citra dengan menggunakan RLE didasarkan pada pengamatan bahwa suatu pixel dalam suatu citra akan memiliki nilai yang cenderung sama dengan nilai piksel tetangganya. Bila suatu citra biner dimulai dengan 20 pixel putih kemudian diikuti dengan 3 pixel hitam kemudian diikuti lagi dengan 65 pixel putih maka hanya nilai 20, 3 dan 65 yang akan menjadi output untukmewakili nilai dari masing-masing pixel input [8].
Metode ini mengasumsikan bahwa setiap citra dimulai dengan suatu pixel putih. Apabila dimulai dengan pixel warna hitam maka di awal output ditambah nilai 0 yang artinya 0 pixel putih. RLE juga dapat digunakan untuk melakukan kompresi pada citra grayscale. Setiap deret pixel dengan intensitas yang sama
Algoritma Coding
Algoritma Decoding
3.26 0001100001010110
5.26 00011000010101
(30)
akan dikompres menjadi sepasang nilai yang masing-masing mewakili banyaknya nilai pixel yang sama dan kemudian diikuti dengan nilai pixel.
Permasalahan dari RLE adalah untuk membedakan angka yang menyatakan banyaknya nilai suatu pixel dengan nilai pixel itu sendiri. Beberapa langkah yang sering ditempuh untuk menyelesaikan masalah di atas sebagai berikut [8].
1. Jika citra grayscale memiliki nilai maksimum 128 maka 1 bit pada setiap byte dapat digunakan untukmembedakan byte nilai grayscale atau nilai menyatakan jumlah.
2. Jika citra grayscale dengan nilai maksimum 256, maka nilai tersebut dapat dikurangi menjadi 255 dengan 1 nilai disiapkan sebagai penanda. Misalkan saja nilai penanda tersebut adalah 255.
3. Solusi ketiga adalah 1 bit dari setiap byte disiapkan sebagai penunjuk byte tersebut merupakan nilaiintensitas atau nilai banyaknya pixel. Namun pada solusi ketiga ini 1 bit ekstra tersebut disisipkan ke dalam deret 8 bit. Deret bit ekstra tersebut kemudian diikuti atau didahului oleh nilai-nilai menyatakan intensitas dan banyaknya pixel.
4. Solusi keempat adalah menggunakan nilai negatif dari selisih antara nilai intensitas dan banyaknya pixel yang ditempatkan setelah deretan intesintas dan banyaknya pixel.
Algoritma metode kompresi RLE hanya efisien dengan data file yang berisi kelompok data(byte/karakter) yang berulang dan dapat digunakan pada file teks. File teks berisi banyak kelompok data yang berupa spasi atau tabulator, tetapi juga dapat diterapkan untuk citra (gambar) yang berisi area hitam atau putih yang besar. [10]
Secara fisik, citra adalah representasi dari objek-objek dalam keadaan diam atau bergerak pada suatu media seperti kertas, film atau monitor. Representasi objek untuk menghasilkan suatu citra dapat dilakukan secara analog dan secara digital.[10]
(31)
2.4.1 Varian dari Run Length Encoding
Ada sejumlah varian run-length encoding. Data citra biasanya run-length encoded dalam proses sekuensial yang memperlakukan data gambar sebagai aliran 1D, bukan sebagai peta 2D data. Dalam pengolahan sekuensial, bitmap dikodekan mulai di sudut kiri atas dan melanjutkan dari kiri ke kanan di setiap garis pindai (sumbu X) ke sudut kanan bawah bitmap (ditunjukkan dalam Gambar 2.6, a). Tapi skema RLE alternatif juga dapat ditulis untuk menyandikan data di sepanjang bitmap (sumbu Y) sepanjang kolom (ditunjukkan dalam Gambar 2.6, b), untuk menyandikan bitmap menjadi keramik 2D (ditunjukkan dalam Gambar 2.6 , c), atau bahkan untuk mengkodekan piksel pada diagonal secara zig-zag (ditunjukkan dalam Gambar 2.6, D). RLE varian aneh seperti yang terakhir ini mungkin digunakan dalam aplikasi yang sangat khusus namun biasanya cukup langka [13].
(Reny, 2012)
(32)
2.5 Walsh Hadamard Transform
Transformasi walsh hadamard merupakan transformasi yang hanya memiliki fungsi basis dalam dua jenis nilai yaitu -1 dan 1. Transformasi walsh hadamard dapat digunakan untuk melakukan kompresi citra dengan sifat kompresi yaitu
lossy dimana diperbolehkan terjadinya kehilangan beberapa data maupun sebagian besar data pada citra. Transformasi walsh hadamard 1 dimensi pada citra f(x) dapat dinyatakan dengan rumus walsh maupun rumus hadamard. Untuk fungsi basis (kernel) dari transformasi hadamard dapat menggunakan rumus sebagai berikut.
�(�,�) =1
�(−1)∑ ��
(�)��(�) �−1
�=0 ... (2.1)
Dengan u = 0,1,2,...,N-1, dan x=0,1,2,...,N-1, sedangkan nilai n mengikuti aturan N=2n. Dari rumus diatas N merupakan banyaknya data, bi(x) menyatakan bit ke-i dari representasi biner x. Begitu juga berlaku untuk bi(u) dimana nilai bit-bitnya tergantung pada nilai u. Setelah diperoleh matriks walsh hadamard kemudian matriks tersebut dikalikan dengan nilai pixel pada citra kemudian dilakukan proses perhitungan walsh hadamard.
Dalam metode ini rumus yang digunakan adalah rumus hadamard. Rumus hadamard didalam pembentukan matriks transformasinya adalah sebagai berikut. �(�) = 1
�∑ �(�)(−1)∑ ��
(�)��(�) �−1
�=0
�−1
�=0 ... (2.2) Persamaan (2.2) diatas digunakan untuk melakukan proses kompresi citra, dimana bi merupakan posisi nilai biner dari x maupun u. Dimana f(x) merupakan nilai fungsi citra yang asli sebelum dilakukan proses kompres. Sedangkan nilai -1 merupakan nilai ketetapan dari metode walsh-hadamard. Untuk fungsi balik menggunakan metode hadamard dapat menggunakan rumus berikut.
�(�) =1
�∑ �(�)(−1)∑ ��
(�)��(�) �−1
�=0
�−1
�=0 ... (2.3) Persamaan (2.3) diatas menunjukkan rumus yang digunakan untuk melakukan proses dekompresi terhadap citra yang telah dikompres. Yang membedakan fungsi kompresi dan dekompresi hanya terletak dari nilai yang diproses, dimana pada proses dekompresi ini nilai yang diproses merupakan nilai
(33)
hasil kompresi citra yang mana nilai tersebut disimbolkan dengan H(u). Nilai H(u) inilah yang digunakan untuk mendapatkan nilai balik yang menjadi hasil dari proses dekompresi menggunakan metode walsh-hadamard.
2.6 Flowchart
Flowchart atau bagan alir, awal mulanya memang berkembang dari industri komputer yaitu untuk menggambarkan urutan proses penyelesaian masalah. Suatu flowchart dapat dengan mudah menjelaskan suatu urutan-urutan proses yang relatif rumit bila diuraikan dalam kata-kata. Dengan visualisasi maka adanya
bottleneck (penumpukan) atau ketidak-efisiensian dari suatu proses dapat terdeteksi untuk dilakukan perbaikan. Oleh karena itu flowchart juga diterima di kalangan lain seperti manufaktur, sain, militer, manajemen, dsb. Flowchart sangat berguna khususnya untuk menjelaskan urutan-urutan proses yang pelaksanaannya mempunyai banyak pilihan atau percabangan [12].
Flowchart pada umumnya dibuat dengan simbol-simbol standard (yang telah disepakati bersama), tetapi bila perlu dapat juga dibuat simbol khusus asalkan pemakaiannya konsisten tidak berubah-ubah. Beberapa bentuk-bentuk simbol flowchart yang dapat digunakan untuk pemrograman komputer.
(34)
Tabel 2.3 Simbol-simbol flowchart
Simbol Keterangan
Proses
Proses-proses
Proses yang telah didefinisikan, misal dalam bentuk sub-routine
Operasi manual
Proses pendahuluan
Arah aliran program Proses input/output data
Kode mulai/ berhenti
Konektor, jika flowchartnya besar sehingga perlu dipisah
(35)
BAB 3
ANALISIS DAN PERANCANGAN
3.1 Analisis
Dalam membandingkan metode kompresi Walsh Hadamard dan Run Length Encoding terlebih dahulu dilakukan analisis terhadap masing-masing metode ini. Untuk melakukan proses kompresi kedua metode ini terlebih dahulu diambil nilai-nilai citra yang dibutuhkan seperti nilai-nilai piksel, informasi header dan lain sebagainya yang terdapat pada file citra berformat bmp. Setelah dilakukan pembacaan terhadap nilai-nilai tersebut, kemudian nilai-nilai ini disimpan secara sementara pada variabel yang telah ditentukan. Kemudian dilakukan pemilihan metode kompresi untuk memproses nilai-nilai tersebut.
Langkah-langkah yang dibutuhkan untuk melakukan kompresi run length encoding adalah sebagai berikut:
1. Periksa nilai saat ini dengan nilai tetangga, apabila nilai saat ini sama dengan nilai tetangga maka gabungkan nilai tersebut menjadi satu dan tambahkan nilai counter untuk nilai tersebut.
2. Apabila nilai saat ini dengan nilai tetangganya tidak sama maka simpan nilai saat ini dan lanjut pemeriksaan seperti pada nomor 1.
3. Setelah proses 1 dan 2 telah dilakukan kemudian simpan hasil proses kompresi tersebut.
Untuk melakukan proses dekompresi terhadap file yang telah mengalami proses kompresi Run Length Encoding (RLE) dapat dilihat pada langkah-langkah berikut ini.
1. Baca nilai yang terdapat pada citra kemudian periksa apakah nilai saat ini berulang atau tidak, apabila nilai saat ini berulang maka ulang nilai sebanyak perulangan yang ada
2. Apabila nilai tidak berulang maka nilai saat ini simpan dan lanjutkan ke nilai selanjutnya.
(36)
3. Setelah proses 1 dan 2 selesai langkah selanjutnya yaitu menyimpan hasil dekompresi citra.
Didalam pembuatan program dibutuhkan flowchart untuk mempermudah proses kompresi citra. Untuk lebih jelasnya flowchart metode run length encoding ini dapat dilihat pada gambar 3.1 dan gambar 3.2 berikut ini.
Gambar 3.1 Flowchart kompresi run length encoding
START
Input gambar
Ambil nilai pada gambar
Ambil Nilai Saat ini
Ambil Nilai Berikutnya
Nilai saat ini = Nilai berikutnya
Gabungkan Nilai
Tambah Nilai Counter
I=Jumlah Data I+=1
I=0
Simpan hasil kompresi
END
Simpan nilai saat ini
Tidak
Tidak
Ya
(37)
Gambar 3.2 Flowchart dekompresi run length encoding
START
Input gambar
Ambil nilai pada gambar
Ambil Nilai Saat ini
Ambil Nilai Berikutnya
Nilai saat ini = Nilai sebenarnya
Simpan nilai saat ini
I=Jumlah Data I+=1
I=0
Simpan hasil dekompresi
END
Simpan nilai sebelumnya
Tidak
Tidak Ya
Ya j=0
j+=1
J=Nilai saat ini
Ya Tidak
(38)
Untuk walsh hadamard digunakan salah satu kernel, disini digunakan kernel dari
hadamard. Untuk lebih jelasnya lihat langkah-langkah proses kompresi sebagai berikut. 1. Ambil nilai data yang terdapat didalam citra
2. Hitung kernel sesuai dengan panjang data yang terdapat pada citra input
3. Lakukan proses perhitungan dengan menggunakan rumus yang telah ditentukan dengan memanfaatkan nilai data citra dan nilai kernel yang telah dibuat sebelumnya 4. Setelah nilai perhitungan diperoleh kemudian simpan nilai dari perhitungan tersebut,
ingat bahwa nilai 0 tidak perlu disimpan.
Untuk lebih mudah memahami alur dari proses kompresi citra menggunakan metode walsh-hadamard ini dapat dilihat pada flowchart yang telah dibuat. Lihat gambar 3.3 berikut ini
START
Inputkan gambar
Ambil nilai data citra
Hitung nilai kernel walsh-hadamard
I=jumlah kernel
Hitung nilai kompresi
I+=1
I<=Jumlah kernel
END
Tidak
Ya Simpan hasil kompresi
(39)
Untuk flowchart dekompresi walsh-hadamard sama seperti flowchart kompresinya, karena nilai yang didekompresinya menggunakan proses yang sama seperti proses kompresinya. Langkah-langkah proses dekompresi walsh-hadamard dapat dilihat sebagai berikut.
1. Ambil nilai data yang terdapat didalam citra
2. Hitung kernel sesuai dengan panjang data yang terdapat pada citra input
3. Lakukan proses perhitungan dengan menggunakan rumus yang telah ditentukan dengan memanfaatkan nilai data citra dan nilai kernel yang telah dibuat sebelumnya 4. Setelah nilai perhitungan diperoleh kemudian simpan nilai dari perhitungan
dekompresi tersebut.
Gambar 3.4 Flowchart dekompresi walsh-hadamard
START
Inputkan gambar
Ambil nilai data citra
Hitung nilai kernel walsh-hadamard
I=jumlah kernel
Hitung nilai dekompresi
I+=1
I<=Jumlah kernel
END
Tidak
Ya Simpan hasil dekompresi
(40)
3.2 Proses Kompresi
Didalam melakukan kompresi terhadap citra digital terdapat proses-proses perhitungan yang perlu diketahui, terlebih dahulu diambil sebuah citra dengan ukuran 3x2. Proses perhitungan ini digunakan untuk mempermudah didalam menganalisa kemampuan dari setiap metode sejau mana metode-metode yang digunakan bekerja dari segi kemampuan mengkompres citra, dan seberapa cepat metode tersebut dapat mengkompres citra input. Untuk lebih jelasnya lihat proses perhitungan untuk metode run length encoding berikut ini.
����������=�
97 98 98 99 99 99
�
Langkah selanjutnya yang harus dilakukan adalah urutkan nilai-nilai citra tersebut menjadi deretan satu baris, untuk lebih jelasnya dapat dilihat sebagai berikut.
97 98 98 99 99 99
Setelah data pada citra diurutkan maka selanjutnya lakukan proses kompresi menggunakan metode run length encoding. Bandingkan nilai saat ini apakah nilai saat ini sama dengan nilai berikutnya, apabila sama maka satukan nilai tersebut dan tambah nilai penampung dari nilai yang diperoses tersebut. Apabila nilai saat ini dengan nilai selanjutnya tidak sama maka simpan nilai saat ini dan lanjutkan ke data berikutnya. Dari hasil perhitugan menggunakan metode run length encoding diperoleh hasil datanya sebagai berikut.
97 98 2 99 3
Dari hasil kompresi data tersebut dapat dicari seberapa besar rasio kompresi citra tersebut. Perhitungan rasio dari citra tersebut dapat dilihat pada perhitungan berikut ini. �=���������� − ��������������
(41)
�=6−5
6 �100% = 16.67%
Setelah dihitung rasio kompresi terhadap citra masukan menggunakan metode kompresi run length encoding diperoleh rasio kompresi sebesar 16.67%. Berarti kompresi tersebut kurang efektif untuk citra masukan tersebut, ini disebabkan karena nilai masukan pada citra tidak banyak yang berulang. Run length encoding ini sangat bermanfaat bagi citra yang mempunyai nilai perulangan yang tinggi, maksudnya semakin banyak nilai pada citra yang berulang maka semakin banyak nilai yang dapat dikompres dan semakin kecil ukuran dari citra tersebut.
Kemudian masih dengan citra masukan yang sama dilakukan kompresi citra menggunakan metode walsh-hadamard dengan kernel hadamard. Langkah pertama gabungkan seluruh data pada citra seperti sebelumnya. Kemudian hitung nilai kernel dari citra tersebut. Pertama sekali cari nilai b, untuk lebih jelasnya perhitungan kernel dari citra tersebut dapat dilihat pada perhitungan berikut ini.
f(x) = 97 98 98 99 99 99 N=6
n=3 b(0) = 000 b(1) = 001 b(2) = 010 b(3) = 011
Setelah nilai b diperoleh langkah selanjutnya cari nilai g(x,u), nilai g(x,u) inilah yang nantinya akan digunakan untuk membentuk kernel dari metode walsh-hadamard. Untuk lebih jelasnya lihat perhitungan berikut ini.
g(0,0) = (-1)(0)(0)+(0)(0)+(0)(0) = -10 = 1 g(1,0) = (-1)(1)(0)+(0)(0)+(0)(0) = -10 = 1 g(2,0) = (-1)(0)(0)+(1)(0)+(0)(0) = -10 = 1 g(3,0) = (-1)(1)(0)+(1)(0)+(0)(0) = -10 = 1 g(4,0) = (-1)(0)(0)+(0)(0)+(1)(0) = -10 = 1 g(5,0) = (-1)(1)(0)+(0)(0)+(1)(0) = -10 = 1 g(0,1) = (-1)(0)(1)+(0)(0)+(0)(0) = -10 = 1
(42)
g(0,2) = (-1)(0)(0)+(1)(0)+(0)(0) = -10 = 1 g(0,3) = (-1)(0)(1)+(0)(1)+(0)(0) = -10 = 1 g(0,4) = (-1)(0)(0)+(0)(0)+(0)(1) = -10 = 1 g(1,1) = (-1)(1)(1)+(0)(0)+(0)(0) = -10 = 1 g(1,2) = (-1)(1)(0)+(0)(1)+(0)(0) = -10 = 1 g(1,3) = (-1)(1)(1)+(0)(1)+(0)(0) = -11 = -1 g(1,4) = (-1)(1)(0)+(0)(0)+(0)(1) = -10 = -1 g(1,5) = (-1)(1)(1)+(0)(0)+(0)(1) = -11 = -1 g(2,1) = (-1)(0)(1)+(1)(0)+(0)(0) = -10 = -1 g(2,2) = (-1)(0)(0)+(1)(1)+(0)(0) = -11 = -1
Lakukan perhitungan sampai g(5,5), setelah dilakukan perhitungan pencarian kernel walsh-hadamard diperoleh hasilnya pada tabel 3.1 berikut ini.
Tabel 3.1 Hasil kernel walsh-hadamard
x u
0 1 2 3 4 5
0 1 1 1 1 1 1
1 1 -1 1 -1 1 -1
2 1 1 -1 -1 1 1
3 1 -1 -1 1 1 -1
4 1 1 1 1 -1 -1
5 1 -1 1 -1 -1 1
Setelah kernel terbentuk langkah selanjutnya yaitu memproses nilai data diikuti dengan nilai pada kernel.. f(x) = (97 98 98 99 99 99). Transformasi hadamard dari citra f(x) tersebut dapat dihitung dengan cara berikut.
H(u=0) = (97 + 98 + 98 + 99 + 99 + 99)/6 = 98 H(u=1) = (97 – 98 + 98 – 99 + 99 - 99)/6 = -0,33 H(u=2) = (97 + 98 – 98 – 99 + 99 + 99)/6 = 33 H(u=3) = (97 – 98 – 98 + 99 + 99 - 99)/6 = 0 H(u=4) = (97 + 98 + 98 + 99 – 99 – 99)/6 = 32 H(u=5) = (97 – 98 + 98 – 99 – 99 + 99)/6 = -0,33
(43)
Dari perhitungan diatas terdapat nilai 0, nilai 0 ini nantinya tidak akan disimpan. Hal ini dikarenakan citra akan dilakukan kompresi. Untuk lebih jelasnya perhitungan rasio dari citra input menggunakan metode walsh-hadamard adalah sebagai berikut.
�=���������� − ��������������
���������� �100% �=6−3
6 �100% = 50%
Jadi dari hasil perhitugan kedua metode menggunakan citra masukan yang sama diperoleh bahwa citra lebih baik dikompres menggunakan metode walsh-hadamard ini. Metode ini cocok digunakan untuk contoh kasus seperti diatas, hal ini disebabkan rasio kompres dari metode ini jauh lebih tinggi yaitu sebesar 50% dibandingkan dengan nilai rasio percobaan sebelumnya yang mencapai nilai 16.67%
3.3 Proses Dekompresi
Dalam melakukan proses kompresi pastilah setelah itu dilakukan proses dekompresi ulang, proses dekompresi dilakukan untuk mengembalikan file citra kebentuk aslinya dengan menggunakan metode yang sama pada saat melakukan kompresi terhadap file citra tersebut. Pertama sekali dilakukan dekompresi ulang menggunakan metode run length encodig dengan data kompresi seperti sebelumnya.
97 98 2 99 3
Kemudian periksa setiap data yang ada, periksa apakah data saat ini merupakan data sebenarnya atau merupakan data yang digunakan untuk menyimpan panjang dari data sebelumnya. Apabila data tersebut merupakan data yang digunakan untuk menyimpan panjang dari data sebelumnya maka ulang data sebelumnya sebanyak panjang dari data tersebut. Lakukan proses tersebut sampai seluruh data pada file citra dieksekusi. Maka akan diperoleh data sebagai berikut.
(44)
Dari proses dekompresi yang diperoleh maka didapatkan bahwa metode ini bersifat lossless, yang berarti metode ini dapat mengembalikan file citra pada keadaan seperti awalnya tanpa terjadi kehilangan terhadap nilai-nilai yang ada pada gambar tersebut.
Kemudian dilakukan proses dekompresi pada file citra hasi kompresi menggunakan metode walsh-hadamard dan masih menggunakan kernel hadamard seperti sebelumnya. Data dari proses kompresi sebelumnya adalah sebagai berikut.
f(x) = (98 -0,33 33 0 32 -0,33).
Langkah selanjutnya lakukan proses dekompresi ulang dengan memanfaatkan kernal yang ada. Untuk lebih jelasnya mengenai perhitungan dekompresi walsh-hadamard ini dapat dilihat pada hasil perhitungan berikut ini.
H(u=0) = (98 + (-0,33) + 33 + 0 + 32 + (-0,33))/6 = 27 H(u=1) = (98 - (-0,33) + 33 - 0 + 32 - (-0,33))/6 = 27 H(u=2) = (98 + (-0,33) - 33 - 0 + 32 + (-0,33))6 = 16 H(u=3) = (98 - (-0,33) - 33 + 0 + 32 - (-0,33))/6 = 16 H(u=4) = (98 + (-0,33) + 33 + 0 - 32 - (-0,33))/6 = 16 H(u=5) = (98 - (-0,33) + 33 - 0 - 32 + (-0,33))/6 = 16
Dari hasil dekompresi diperoleh nilai-nilai pada citra sebagai berikut dan juga disertakan nilai asli dari citra tersebut sebagai perbandingan.
Hasil Dekompresi = 27 27 16 16 16 16 Citra Asli = 97 98 98 99 99 99
Dari hasil dekompresi menggunakan metode walsh-hadamard diperoleh bahwa citra tersebut mengalami kehilangan data hal ini disebabkan metode kompresi walsh-hadamard bersifat lossy yang artinya metode ini mengizinkan terjadinya kehilangan data pada saat proses kompresi terhadap file citra tersebut. Jadi dapat disimpulkan bahwa metode walsh-hadamard ini tidak cocok untuk diterapkan pada citra digital, karena metode walsh-hadamrd ini menyebabkan terjadinya kehilangan data terhadap citra yang dikompres.
(45)
3.4 Perancangan Antar Muka
Rancangan antar muka merupakan rancangan tampilan form yang nantinya akan digunakan untuk menghubungkan pengguna dengan program kompresi citra. Rancangan antar muka ini terdiri dari dua form, yang pertama merupakan form utama dan yang kedua merupakan form informasi pengguna.
3.4.1 Form Utama
Rancangan form utama terdiri dari menu File, Command, Option, dan menu About. Pada menu File terdapat sub menu Open File dan Exit. Pada menu command terdapat sub menu compress hadamrd, compress run length encoding, decompress walsh-hadamard, decompress run length encoding. Pada menu command terdapat sub menu
File Info dan yang terakhir pada menu about terdapat sub menu profil. Untuk lebih jelasnya mengenai perancangan antar muka form utama ini dapat dilihat pada gambar berikut ini.
File Command Option About
1 2 3 4
Compres Decompress File Info Profil
5 6 7 8
File Path:
9 10 Browse
11
Select The Methode Walsh-Hadamard Run Length Encoding
12 13
14
File Size: 0 Bytes
15
Compress Size: 0 Bytes 16
Ratio Compress: 0% Process Time: 0 detik
17 18
General File 19
20
File Process 21
(46)
Keterangan:
1. Menu File digunakan untuk memanggil sub menu open file dan exit
2. Menu Command digunakan untuk menampilkan sub menu compress walsh-hadamard, compress run length encoding, decompress walsh-hadamard dan
decompress run length encoding
3. Menu Option digunakan untuk menampilkan sub menu file info
4. Menu about digunakan untuk menampilkan sub menu profil 5. Command Button digunakan untuk melakukan proses kompresi 6. Command Button digunakan untuk melakukan proses dekompresi 7. Command Button digunakan untuk menampilkan informasi dari file 8. Command Button digunakan untuk menampilkan profil pemrogram 9. Label digunakan untuk menampilkan teks file path
10. Textbox digunakan untuk menampilkan alamat dimana file berada 11. Command Button digunakan untuk mengambil gambar
12. Groubbox digunakan untuk mengelompokkan metode kompresi
13. Radio Button digunakan untuk memilih metode kompresi walsh-hadamard
14. Radio Button digunakan untuk memilih metode kompresi run length encoding
15. Label digunakan untuk menampilkan besar memori file citra yang asli dalam byte
16. Label digunakan untuk menampilkan besar memori file citra setelah proses kompresi 17. Label digunakan untuk menampilkan rasio kompresi dari setiap metode
18. Label digunakan untuk menampilkan waktu eksekusi dari metode yang digunakan untuk mengkompres maupun mendekompresi ulang file citra
19. Label digunakan untuk menampilkan teks bertuliskan general file
20. Textbox digunakan untuk menampung informasi dari file yang sebenarnya 21. Label digunakan untuk menampilkan teks bertuliskan file process
22. Textbox digunakan untuk menampung informasi dari file yang telah dikompres maupun didekompresi
(47)
3.4.2 Form Profil
Form profil merupakan form yang digunakan untuk menampilkan informasi mengenai pemrogram. Pada form ini terdapat judul , oleh , nama, nim, fakultas yang dibuat. Untuk lebih jelasnya mengenai perancangan antar muka tampilan ini dapat dilihat pada gambar berikut ini.
Gambar 3.6 Rancangan form profil Keterangan:
1. Picturebox digunakan untuk menampilkan logo USU
2. Label digunakan untuk menampilkan judul dari tugas akhir pemrogram 3. Label digunakan untuk menampilkan kalimat oleh
4. Label digunakan untuk menampilkan nama pemrogram
5. Label digunakan untuk menampilkan nomor induk mahasiswa pemrogram 6. Label digunakan untuk menampilkan Fakultas mahasiswa pemrogram
Judul Tugas Akhir
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 1
Oleh
Nama: xxxxxxxxxxxxxxxxxxxxxx
NIM:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2 3
4
5
(48)
BAB 4
IMPLEMENTASI DAN PENGUJIAN
4.1 Implementasi
Implementasi perangkat lunak merupakan hasil tampilan akhir dari proses perancangan dimana program dimulai dari tampilan utama kemudian terdapat tampilan profil pemrogram.
4.2. Tampilan Utama
Tampilan menu utama merupakan tampilan yang digunakan untuk melakukan proses kompresi terhadap citra, pada tampilan ini terdapat pilihan metode yang digunakan untuk melakukan proses kompresi citra. Tampilan utama ini dapat dilihat pada gambar berikut ini.
(49)
Untuk menjalankan proses kompresi pengguna harus memilih terlebih dahulu gambar yang akan dikompres dengan mengklik tombol browse. Kemudian akan muncul jendela windows yang digunakan untuk memilih gambar. Untuk lebih jelasnya lihat gambar berikut ini yang menunjukkan jendela windows untuk memilih gambar yang akan dikompres.
Gambar 4.2 Tampilan jendela pemilihan gambar
Selanjutnya setelah gambar dipilih kemudian pilih tombol open untuk memasukkan gambar ke dalam program. Kemudian secara otomatis program akan membaca nilai-nilai data yang terdapat pada seluruh gambar, setelah proses pembacaan data selesai maka program akan menampilkan pesan seperti terlihat pada gambar berikut ini.
(50)
Gambar 4.3 Tampilan pesan pembacaan data
Kemudian tekan tombol OK, langkah selanjutnya pilih metode yang akan digunakan untuk melakukan kompresi data. Pilih metode yang terdapat pada frame, metode tersebut berupa komponen radiobutton. Untuk yang pertama digunakan metode
run length encoding, kemudian klik tombol compression. Ketika tombol ditekan maka
pointer berubah menjadi lingkaran yang menandakan bahwa sedang terjadi proses pada tampilan tersebut. Setelah proses selesai maka akan muncul pesan seperti pada gambar berikut ini.
(51)
Kemudian tekan tombol OK, selanjutnya muncul pesan yang menanyakan apakah pengguna ingin menyimpan data citra hasil kompresi. Untuk lebih jelasnya lihat tampilan berikut ini.
Gambar 4.5 Tampilan pesan penyimpanan citra
Apabila pengguna menekan tombol No maka program tidak akan menyimpan data citra hasil kompresan menggunakan metode run length encoding tersebut. Tetapi apabila pengguna menekan tombol Yes maka akan mucul tampilan windows yang digunakan untuk menyimpan data citra tersebut. Disini data hasil kompresan memiliki ekstensi .RLE yang menyatakan data citra tersebut merupakan data hasil kompresan menggunakan metode run length encoding, untuk lebih jelasnya mengenai tampilan ini dapat dilihat pada gambar berikut ini.
(52)
Gambar 4.6 Tampilan penyimpanan hasil kompresi
Setelah muncul jendela penyimpanan kemudian ketik nama file hasil kompresi tanpa menyertakan ekstensi karena ektensi citra terkompres secara otomatis langsung terbentuk kemudian tekan tombol Save, setelah tombol Save ditekan maka tampilan akan kembali ke tampilan program utama dan akan muncul pesan seperti pada gambar berikut ini.
(53)
Kemudian tekan tombol OK, selanjutnya pada tampilan utama akan muncul besar kapasitas file asli dalam satuan bytes, kapasitas hasil kompresan dalam satuan bytes, berapa besar rasio file terkompres dan berapa lama waktu yang dibutuhkan utuk mengkompres citra tersebut dalam satuan detik. Dari hasil percobaan tersebut didapatkan kapasitas file asli sebesar 3128 Bytes, kapasitas hasil kompresan 12082 Bytes, rasio kompres sebesar 4,89% dan waktu yang dibutuhkan selama 1 milidetik. Nilai-nilai tersebut hanya akan muncul apabila pengguna menyimpan file hasil kompresan, apabila pengguna tidak menyimpan data citra hasil kompresan yang akan tampil hanya kapasitas file asli sedangkan nilai-nilai yang lainnyat tidak akan ditampilkan/nilai selalu bernilai 0. Untuk lebih jelasnya dapat dilihat pada gambar berikut ini
Gambar 4.8 Tampilan hasil kompres menggunakan run length encoding
Langkah selanjutnya pengguna juga dapat melihat data-data asli dari citra tersebut dan data-data hasil proses kompresan, caranya pengguna tekan tombol File Info atau pilih menu option kemudian pilih menu file info. Setelah tombol ditekan maka program akan mulai bekerja kembali dengan ditandai pointer yang berubah menjadi lingkaran dan setelah proses selesai maka akan data-data tersebut akan ditampilkan pada tempatknya. Untuk nilai-nilai pada file yang sebenarnya terdapat pada textbox yang beradap pada sebelah kiri yang diatasnya terdapat label yang bertuliskan general file sedangkan nilai-nilai hasil kompresan berada pada textbox yang berada pada tampilan sebelah kanan yang
(54)
diatasnya terdapat label yang bertuliskan file process. Untuk lebih jelasnya mengenai tampilannya dapat dilihat pada gambar berikut ini.
Gambar 4.9 Tampilan nilai hasil kompresi metode run length encoding
Kemudian dilakukan proses dekompresi terhadap file citra tersebut, lakukan langkah seperti sebelumnya dengan menekan tombol browse kemudian pilih file hasil kompresan dengan ekstensi RLE kemudian pilih tombol open. Langkah selanjutnya pilih metode dekompresi dengan memilih radiobutton run length encoding kemudian tekan tombol decompress. Setelah tombol ditekan maka pointer kombali berubah menjadi lingkaran yang menandakan sedang ada proses perhitungan yang berjalan. Setelah proses perhitungan selesai maka akan muncul pesan yang menyatakan proses dekompresi selesai. Kemudian akan simpan file hasil dekompresi tersebut, kemudian pengguna dapat melihat waktu yang dibutuhkan untuk medekompresi ulang file citra tersebut dengan melihat waktunya pada form utama. Untuk melihat nilai-nilai hasil dekompresi pengguna harus menekan tombol file info kemudian proses kembali berjalan seperti sebelumnya, setelah proses selesai maka informasi mengenai file gambar tersebut akan ditampilkan pada textbox yang telah disediakan. Utuk lebih jelasnya mengenai nilai-nilai hasil dekompresi citra tersebut dapat dilihat pada gambar dibawah ini.
(55)
Gambar 4.10 Tampilan nilai hasil dekompresi metode run length encoding
Kemudian dilakukan percobaan dengan menggunakan kompresi walsh-hadamard
dengan citra masukan yaitu citra ‘matahari1.bmp’. Didalam proses kompresi menggunakan walsh-hadamard pada citra tersebut diperoleh ukuran citra setelah hasil kompresi sebesar 3128 bytes, rasio kompresi sebesar 82,70% dan waktu eksekusi kompresi selama 1 detik. Waktu yang dibutuhkan untuk mengeksekusi citra 32x32 ini jauh lebih lama dibandingkan menggunakan metode run length encoding.
Gambar 4.11 Tampilan nilai hasil kompresi metode walsh-hadamard
Hasil dari citra dari kedua metode ini jauh berbeda hal ini disebabkan karena sifat kedua metode ini juga berbeda dimana run length encoding bersifat losseless sedangkan
(56)
metode walsh-hadamard bersifat lossy. Lihat gambar 4.12 berikut ini untuk lebih jelas mengenai perbedaan hasil dekompresi kedua metode ini.
(a)
(b)
(c)
Gambar 4.12 (a) Citra Asli (b) Hasil dekompresi run length encoding (c) Hasil dekompresi walsh-hadamard
Dari hasil percobaan yang telah dilakukan diambil lima sampel gambar dengan gambar yang terdapat pada gambar 4.12. Pada gambar (a) terdapat lima gambar asli yang digunakan untuk melakukan percobaan kompresi menggunakan kedua metode yang akan digunakan. Pada gambar (b) merupakan gambar hasil dekompresi menggunakan metode
run length encoding, hasil yang diperoleh setelah didekompresi sama dengan gambar aslinya hal ini menunjukkan bahwa kompresi run length encoding bersifat lossless
dimana tidak terdapat kehilangan data setelah dilakukan proses kompresi. Pada gambar (c) merupakan gambar hasil dekompresi ulang menggunakan metode walsh-hadamard, pada gambar tersebut memperoleh hasil yang sama dengan gambar aslinya. Metode kompresi yang bersifat lossy dimana pada saat melakukan proses kompresi terjadi kehilangan data pada gambar yang dikompres. Tetapi, tidak tampak terlihat oleh mata.
(57)
4.3. Tampilan Profil
Tampilan profil merupakan tampilan yang digunakan untuk memberikan informasi mengenai pemrogram, disini terdapat nama, nim, fakultas dan judul dari penelitian yang dilakukan. Untuk lebih jelasnya mengenai tampilan ini dapat dilihat pada gambar berikut ini.
Gambar 4.13 Tampilan profil pemrogram
4.4. Hasil Pengujian
Untuk melihat metode mana yang paling baik dalam mengkompres citra dilakukan beberapa kali percobaan. Untuk lebih jelasnya hasil percobaan tersebut dapat dilihat pada tabel 4.1
(58)
Tabel 4.1. Perbandingan Hasil kompresi menggunakan metode run length encoding
dengan Transformasi Walsh-Hadamard
Tabel diatas merupakan tabel dari hasil percobaan yang digunakan menggunakan metode run length encoding dan metode walsh-hadamard. Dari tabel yang diperoleh dapat disimpulkan bahwa metode kompresi run length encoding merupakan metode yang memiliki waktu eksekusi kompresi tercepat tetapi untuk rasio kompresinya tidak bagitu besar, sedangkan metode walsh-hadamard merupakan metode kompresi yang memiliki waktu eksekusi yang lama dan rasio kompresinya yang dihasilkan tidak sebesar rasio menggunakan metode run length encoding. Untuk lebih jelasnya dapat dilihat pada grafik perbandingan hasil kompresinya pada gambar 4.14 berikut ini.
No Nama
Citra Resolusi
Ukuran Memori Citra (Bytes)
Ukuran Memori Citra Setelah
Dikompres
Rasio
Waktu Kompresi (milidetik)
RLE Walsh-Hadama
rd
RLE Walsh-Hadama
rd
RLE
Walsh-Hadam ard 1 Matahari 64x64 12344 12328 1640 0,13% 86,71% 1 128174 2 Matahari1 32x32 3128 3125 541 0,10% 82,70% 1 3679 3 Matahari2 16x16 824 823 231 0,12% 71,97% 1 154 4 Matahari3 8x8 248 248 142 0,00% 42,74% 1 6 5 Bendera 16x16 824 443 145 46,24% 82,40% 1 160 6 Hitam 16x16 824 57 136 93,08% 83,50% 1 150 7 Pelangi 16x16 824 823 153 0,12% 81,43% 1 158 8 Catur 16x16 824 114 149 86,17% 81,92% 1 168
(59)
Gambar 4.14 Grafik rasio kompresi gambar
Dari gambar grafik diatas dapat dilihat bahwa metode kompresi run length encoding
memiliki kemampuan yang baik untuk mengkompres gambar, rasio tertinggi yang diperoleh menggunakan metode run length encoding pada citra hitam dapat mencapai 93.08% sedangkan rasio tertinggi yang diperoleh menggunakan metode walsh-hadamard
pada citra hitam mencapai 83,50%. Untuk grafik perbandingan waktu kompresi dapat dilihat pada gambar 4.15 berikut.
0,00% 10,00% 20,00% 30,00% 40,00% 50,00% 60,00% 70,00% 80,00% 90,00% 100,00%
RLE
(60)
Gambar 4.15 Grafik waktu kompresi gambar
Pada gambar 4.15 diatas menunjukkan grafik perbandingan waktu yang dilakukan pada saat percobaan. Grafik tersebut menunjukkan bahwa metode walsh-hadamard
membutuhkan waktu yang cukup lama untuk melakukan proses kompresi terhadap gambar yang diinputkan. Sedangkan metode run length encoding tidak membutuhkan waktu yang lama dalam melakukan proses kompresi terhadap gambar yang diinputkan, dari grafik tersebut dapat disimpulkan bahwa metode run length encoding merupakan metode yang cepat dalam hal proses kompresi maupun dekompresi.
0 20000 40000 60000 80000 100000 120000 140000
Waktu RLE(milidetik)
Waktu Walsh Hadamard(milidetik)
(61)
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Dari penelitian yang dilakukan dapat disimpulkan sebagai berikut.
1. Metode run length encoding akan bekerja dengan efektif apabila terdapat data yang berulang. Semakin banyak data yang berulang maka semakin efektif metode ini untuk mengkompres citra. Sedangkan pada metode walsh-hadamard, semakin banyak nilai nol setelah proses kompresi maka akan semakin tinggi nilai rasionya.
2. Metode run length encoding mempunyai kelebihan dari segi waktu proses kompresi, metode ini jauh lebih cepat dibandingkan metode walsh-hadamard.
3. Dari hasil percobaan yang dilakukan metode metode walsh-hadamard merupakan metode yang mempunyai rasio terbaik, dimana dari 8 percobaan yang dilakukan diperoleh .terdapat 3 kasus yang mendapatkan rasio tertinggi. Kasus tersebut terdapat pada percobaan pada citra bendera dimana untuk metode run length encoding
diperoleh rasio 46,24% sedangkan metode walsh-hadamard diperoleh rasio 82,40%. Kemudian gambar hitam, untuk metode run length encoding diperoleh rasio 93,08% sedangkan metode walsh-hadamard diperoleh rasio 83,50%. Kemudian dilakukan percobaan pada gambar catur untuk metode run length encoding diperoleh rasio 86,17% sedangkan metode walsh-hadamard diperoleh rasio 81,92%. Dari data tersebut dapat disimpulkan bahwa metode walsh-hadamard memiliki rasio kompresi yang lebih tinggi dibandingkan dengan metode run length encoding
4. Pada saat didekompresi ulang hasil metode walsh-hadamrd tidak dapat mengembalikan nilai citra seperti aslinya karena metode ini bersifat lossy, sedangkan metode run length encoding dapat mengembalikan nilai citra seperti aslinya karena metode ini bersifat losseless.
(62)
5.2 Saran
Dari penelitian yang telah dilakukan dapat diberikan beberapa saran untuk penelitian dan pengembangan dari penelitian ini, diantaranya yaitu.
1. Untuk pengembangan aplikasi berikutnya diharapkan menggunakan format file citra selain BMP, misalnya format PNG, GIF, JPG dan lain sebagainya.
2. Untuk penelitian berikutnya diharapkan menggunakan metode yang lain untuk melakukan kompres file citra, dan disarankan menggunakan metode losseless.
(63)
DAFTAR PUSTAKA
[1]. Arifin, Muhammad. 2009. Perancangan Perangkat Lunak Untuk Perbaikan Citra Digital Menggunakan Lima (5) Teknik Penyaring (Filtering). Skripsi Universitas Sumatera Utara Medan. Halaman 15-16.
[2]. Basuki, Achmad. Jozua F Palandi. Fatchurrochman. 2005. Pengolahan Citra Menggunakan Visual Basic. Jakarta: Penerbit Graha Ilmu.
[3]. Gozali, Ferrianto, Mervyn. 2004. Analisis perbandingan kompresi data dengan teknik arithmetic coding dan run length encoding. Jurnal ilmiah Universitas Trisakti. 4(1): Halaman 37-52.
[4]. Kurniawan, Winardi. 2011. Perancangan Program Retrival Citra Berbasis Konten Menggunakan Transformasi Walsh Hadamard Terhadap Rata-Rata Baris dan Kolom Warna Citra. Skripsi Binus University Jakarta. Halaman 9-10.
[5]. Merdian, Meckah dan Wawan Indarto, 2007, Implementasi Algoritma Run Length, Half Byte dan Arithmetic untuk Kompresi File. Jurnal Ilmiah Universitas Islam Indonesia isbn: 979-756-061-6. Hal. 79-80.
[6]. Munir, Rinaldi. Pengelompokan Blok Ranah Berdasarkan Rata-Rata dan Variansi Intensitas Pixel pada Pemampatan Citra dengan Transformasi Fraktal, Tesis Magister Informatika ITB, 1999.
[7]. Prabowo, Yudhi, 2012, Kompresi Citra Digital Aras-Keabuan Menggunakan Metode Hadamard. Makalah Tugas akhir Universitas Diponegoro. Hal. 1 [8]. Putra, Darma. 2009. Pengolahan Citra Digital. Yogyakarta. Penerbit: ANDI.
[9]. Santi, Ririani. Perancangan Perangkat Lunak Kompresi File Citra Dengan Menggunakan Algoritma Run Length Encoding (RLE), Skripsi Strata1 ILKOM USU, 2010. Hal. 22-23.
[10]. Suryani, Irmalia Faradisa dan Bara Budiono, 2011, Implementasi Metode HUFFMAN Sebagai Teknik Kompresi Citra. Jurnal Elektro Elek
Institut Teknologi Nasional Malang isbn: 2086 8944 Hal. 176
[11]. Sutoyo T. 2010. Teori Pengolahan Citra Digital. Yogyakarta. Penerbit ANDI [12]. Wiryanto, Dewobroto. 2005. Aplikasi Rekayasa Konstruksi dengan Visual Basic
(64)
[13] Reny, Adinda. 2012. Analisis Kualitas Visual Pada Hasil Citra Kompresi Dengan Menggunakan Metode Run Length Encoding (RLE). Skripsi Universitas Sumatera Utara Medan. Halaman 10-11.
(1)
End Sub
Private Sub cmdInfo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdInfo.Click
Info_File() End Sub
Private Sub cmdDecompress_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdDecompress.Click
If RLE.Checked = True Then Decompress_RLE()
Else
Me.Cursor = Cursors.WaitCursor BackgroundWorker2.RunWorkerAsync() End If
End Sub
Private Sub BackgroundWorker1_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
Compress_Walsh_Hadamard() End Sub
Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
Dim pesan As String
Label12.Text = waktu & " detik" Me.Cursor = Cursors.Default
pesan = MsgBox("Simpan hasil kompresi walsh-hadamard", MsgBoxStyle.YesNo, "Pesan")
If pesan = vbYes Then
'For i = 0 To ulang - 1
' RichTextBox6.Text = RichTextBox6.Text & LWalsh2.Item(i).NWalsh2 & ","
'Next
SaveFileDialog1.Title = "Simpan file hasil kompresi" SaveFileDialog1.FileName = ""
SaveFileDialog1.Filter = "Walsh-Hadamard|*.WHD;" pesan = SaveFileDialog1.ShowDialog
Dim fs As System.IO.FileStream
fs = New System.IO.FileStream(SaveFileDialog1.FileName, IO.FileMode.CreateNew)
fs.Write(nilai1, 0, j) fs.Close()
Dim karakter, karakter1, karakter2 As String Dim u, v As Integer
karakter1 = "" v = 0
For u = (SaveFileDialog1.FileName.Length 3) To 1 Step -1
(2)
karakter1 = karakter1 & karakter v += 1
Else
Exit For End If
Next
karakter2 = ""
For u = v To 1 Step -1
karakter = Mid(karakter1, u, 1) karakter2 = karakter2 & karakter Next
rasio = ((rasio1 - rasio2) / rasio1) Label11.Text = FormatPercent(rasio, 2)
MsgBox("Data hasil kompresi berhasil disimpan", MsgBoxStyle.Information, "Pesan")
End If
'For i = 0 To j - 1
' RichTextBox2.Text = RichTextBox2.Text & nilai1(i) & vbCrLf
'Next End Sub
Private Sub OpenFileToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OpenFileToolStripMenuItem.Click
cmdBrowse.PerformClick() End Sub
Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click
Me.Close() End Sub
Private Sub cmdProfil_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdProfil.Click
Form2.Show() End Sub
Private Sub InfoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles InfoToolStripMenuItem.Click
Form2.Show() End Sub
Private Sub ComToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComToolStripMenuItem.Click
cmdCompress.PerformClick() End Sub
Private Sub CompressToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CompressToolStripMenuItem.Click
cmdCompress.PerformClick() End Sub
(3)
Private Sub DecompressWalshHadamardToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DecompressWalshHadamardToolStripMenuItem.Click
cmdDecompress.PerformClick() End Sub
Private Sub DecompressRunLengthEncodingToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles DecompressRunLengthEncodingToolStripMenuItem.Click
cmdDecompress.PerformClick() End Sub
Private Sub BackgroundWorker2_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker2.DoWork
Decompress_Walsh_Hadamard() End Sub
Private Sub BackgroundWorker2_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker2.RunWorkerCompleted
Dim pesan As String
Label12.Text = waktu & " detik" Me.Cursor = Cursors.Default
pesan = MsgBox("Simpan hasil dekompresi walsh-hadamard", MsgBoxStyle.YesNo, "Pesan")
If pesan = vbYes Then
'For i = 0 To ulang - 1
' RichTextBox6.Text = RichTextBox6.Text & LWalsh2.Item(i).NWalsh2 & ","
'Next
SaveFileDialog1.Title = "Simpan file hasil dekompresi" SaveFileDialog1.FileName = ""
SaveFileDialog1.Filter = "Bitmap | *.BMP;" pesan = SaveFileDialog1.ShowDialog
Dim fs As System.IO.FileStream
fs = New System.IO.FileStream(SaveFileDialog1.FileName, IO.FileMode.CreateNew)
fs.Write(nilai1, 0, j) fs.Close()
MsgBox("Data hasil dekompresi berhasil disimpan", MsgBoxStyle.Information, "Pesan")
End If End Sub
Private Sub FileToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FileToolStripMenuItem.Click
End Sub
(4)
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
End Sub
Private Sub Walsh_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Walsh.CheckedChanged
End Sub
Private Sub RLE_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RLE.CheckedChanged
End Sub
Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label2.Click
End Sub
Private Sub Label4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label4.Click
End Sub
Private Sub RichTextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBox1.TextChanged
End Sub
Private Sub RichTextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBox2.TextChanged
End Sub End Class Form 2
Public Class Form2
Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click
End Sub
Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
End Sub
Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label2.Click
(5)
Private Sub Label3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label3.Click
End Sub
Private Sub Label4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label4.Click
End Sub
Private Sub Label5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label5.Click
End Sub
Private Sub Label7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label7.Click
End Sub
Private Sub Label6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label6.Click
End Sub End Class
(6)