IMPLEMENTASI METODE KUANTISASI PADA
KOMPRESI DAN DEKOMPRESI CITRA
BITMAP DAN JPEG
SKRIPSI
WINDA DIAN LUCA HSB
091401076
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
IMPLEMENTASI METODE KUANTISASI PADA KOMPRESI DAN DEKOMPRESI CITRA BITMAP DAN JPEG
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer
WINDA DIAN LUCA HSB 091401076
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2014
PERSETUJUAN
Judul : IMPLEMENTASI METODE KUANTISASI PADA
KOMPRESI DAN DEKOMPRESI CITRA BITMAP DAN JPEG
Kategori : SKRIPSI
Nama : WINDA DIAN LUCA HSB
Nomor Induk Mahasiswa : 091401076
Program Studi : S1 ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
Diluluskan di Medan,
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Herriyance, S.T, M.Kom Dian Rachmawati, S.Si, M.Kom. NIP. 19801024 2010121002 NIP. 198307232009122004
Diketahui/disetujui oleh
Program Studi S1 Ilmu Komputer Ketua,
PERNYATAAN
IMPLEMENTASI METODE KUANTISASI PADA KOMPRESI DAN DEKOMPRESI CITRA BITMAP DAN JPEG
SKRIPSI
Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, Desember 2013
PENGHARGAAN
Dengan mengucapkan puji dan syukur kehadirat Allah SWT atas segala rahmat, hidayah serta karunianya sehingga penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer pada Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.
Ucapan terima kasih penulis sampaikan kepada semua pihak yang telah membantu penulis dalam menyelesaikan skripsi ini baik secara langsung maupun tidak langsung, teristimewa untuk kedua orangtua tercinta Ayahanda A. Syahroni Hsb dan Ibunda Agustina atas do’a, dukungan, dan kasih sayang yang telah diberikan kepada penulis selama ini. Pada kesempatan ini pula penulis ingin menyampaikan rasa hormat dan terima kasih yang sebesar–besarnya kepada :
1. Bapak Prof. Dr. dr. Syahril Pasaribu, DTM&H, Msc(CTM), Sp.A(K) selaku Rektor Universitas Sumatera Utara.
2. Bapak Prof. Muhammad Zarlis selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.
4. Ibu Maya Silvi Lydia, B.Sc., M.Sc selaku Sekretaris Program Studi S1 Ilmu Komputer Universitas Sumatera Utara dan Pembanding II yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
5. Ibu Dian Rachmawati, S.Si, M.Kom selaku Dosen Pembimbing I yang telah banyak meluangkan waktunya dan dengan sabar telah memberikan bimbingan, saran, dan masukan kepada penulis dalam pengerjaan skripsi ini.
6. Bapak Herriyance, S.T, M.Kom selaku Dosen Pembimbing II yang telah banyak meluangkan waktunya dan dengan sabar telah memberikan bimbingan, saran, dan masukan kepada penulis dalam pengerjaan skripsi ini.
7. Bapak Ade Candra, S.T, M.Kom selaku Dosen Pembanding II yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
9. Rizky Baginda Hsb, Riska Dewi Syahputri Hsb, dan Widi Pratiwi Hsb selaku abang, kakak, dan adik penulis yang selalu memberikan dukungan kepada penulis.
10.Teman-teman penulis, terutama Insidini Fawwaz, Nadya Soraya, Laila Manja, Sylvia, Ainun, Ales, Mahadi, dan Fauzana yang selalu memberikan semangat, dorongan, dukungan dan menjadi tempat berbagi pikiran penulis selama pengerjaan skripsi ini sehingga penulis dapat menyelesaikan skripsi ini. Dan teman-teman seangkatan 2009 lainnya yang tidak bisa penulis sebutkan satu-persatu, terima kasih atas dukungan kalian semua dan terima kasih atas kenangan indah yang telah dilalui bersama selama di S1 Ilmu Komputer Universitas Sumatera Utara.
11.Sahabat terbaik penulis ica, fanny, gendys dan silvana yang selalu memberikan semangat kepada penulis.
12.Dan semua pihak yang telah banyak membantu yang tidak bisa disebutkan satu-persatu.
Semoga semua kebaikan, bantuan, perhatian, serta dukungan yang telah diberikan kepada penulis mendapatkan pahala yang melimpah dari Allah SWT.
Medan, Desember 2014
Penulis
ABSTRAK
Kompresi citra merupakan salah satu proses pengolahan citra yang bisa mengurangi ukuran dari sebuah citra agar lebih mempermudah dalam proses penyimpanan dan pengiriman. Pada penelitian ini digunakan metode kuantisasi untuk melakukan kompresi citra. Metode kuantisasi bekerja dengan mengurangi warna dari sebuah citra dengan cara membagi-bagi intensitas warna. Metode kuantisasi merupakan jenis lossy compression, karena pada saat proses kompresi ada bagian dari citra yang hilang. Dekuantisasi merupakan proses untuk mengembalikan citra ke bentuk awal. Bekerja dengan cara melakukan perkalian terhadap intensitas warna. Proses dari sistem ini adalah melakukan kompresi dan dekompresi citra dengan format .bmp dan .jpeg. Pada proses pengujian kompresi untuk format .jpeg dan .bmp menghasilkan citra yang mempunyai cahaya lebih gelap. Pada pengujian format .jpeg menghasilkan rasio kompresi citra rata-rata 58.9% % dan rata-rata rasio dekompresi citra adalah 39.4%.
Pada pengujian dengan format .bitmap tidak mempunyai rasio citra. Hal ini disebabkan karena ukuran citra .bmp tidak berubah pada saat proses kompresi. Untuk nilai MSE citra kompresi format *.jpeg dan *.bmp memiliki nilai yang lebih tinggi dari nilai MSE citra dekompresi. Dengan nilai rata-rata untuk MSE kompresi 3806.80 dan rata-rata nilai MSE dekompresi 0.4950.
ABSTRACT
Photo is often a trail ride someone’s life. This time, the storage medium having a large capacity is very easy to find. So, not a big problem if we want to keep our photos. Which becomes a problem, if we want to share the photo to friends by email. Remember, the conection internet in not stable in Indonesia. Make it easier to share photos with friends, we can perform image processing with image compression. Imgae compression is one of the image processing that can reduce the size of an image. This research used quantization method to image compression. Quantization method works by reducing the intensity of the color of an image by dividing the intensity of color. With reduced intensity of color, image size can also be decreased. Because there are missing parts of the image is reduced, there will certainly missing. Because, quantization method is lossy compression. To restore the image to its original shape do dequantization. Dequantization work with multiplication of the intensity of color. This system is the process of compression and decompression image with .bmp format and .jpeg format. In the process of testing the compression .jpeg format produces an image that is smaller than the first image and have average ratio image 58.9%. running time and ratio image depends on the size of the image. The larger image, ratio image and running time too larger. In the process of testing the compression .bmp format, size of image no change. Because, .bmp format is uncompression image.
DAFTAR ISI Daftar Lampiran
xi xiii
Bab 1 Pendahuluan
1.1 Latar Belakang 1
2.2 Jenis-jenis Citra 2.3 Piksel
6 6 8 2.4 Jenis-jenis Citra Digital
2.4.1 Citra Biner (Monokrom)
3.1.2.1 Kebutuhan Fungsional Sistem Bab 4 Implementasi dan Pengujian
4.1 Implementasi 43
4.1.1 Form Pertama 43 Bab 5 Kesimpulan dan Saran
DAFTAR TABEL
Nomor
Tabel Nama Tabel Halaman
2.1 4.1 4.2 4.3 4.4
Kedalaman Piksel
Hasil Kompresi dan Dekompresi Citra .jpeg
Hasil Pengujian Kompresi dan Dekompresi Citra .jpeg Hasil Kompresi dan Dekompresi Citra .bmp
Hasil Pengujian Kompresi dan Dekompresi Citra .bmp
DAFTAR GAMBAR
Nomor
Gambar Nama Gambar Halaman
2.1
Elemen Sistem Pemrosesan Citra Digital Contoh Citra Biner
Contoh Citra Grayscale
Gradasi Warna Citra True Color Contoh Citra True Color Contoh Citra Bitmap Contoh File Citra JPEG
Alur Kompresi Citra dan Dekompresi Citra Diagram Lossy Compression
Diagram Lossless Compression Contoh Citra Sebelum Kompresi Contoh Citra Sesudah Kompresi
Ishikawa Diagram Proses Analisa Masalah
Use Case Diagram Sistem Kompresi dan Dekompresi Citra Sequence Diagram Proses Kompresi Citra
Sequence Diagram Proses Dekompresi Citra Activity Diagram Kompresi Citra
Activity Diagram Dekompresi Citra Flowchart Umum Sistem
Flowchart Kompresi Citra Flowchart Kompresi Citra
Tampilan Rancamgan form Pertama Tampilan Rancamgan form Proses Tampilan Rancamgan form Bantuan Tampilan Rancamgan form Tentang Form Pertama
Form Proses Form Bantuan
Form Tentang Aplikasi
Tampilan Form saat Pilih Citra .Jpeg Tampilan Form saat Citra telah dipilih Tampilan Form Setelah Kompresi
Tampilan Form saat Proses Penyimpanan Citra Kompresi Tampilan Form setelah Proses Penyimpanan Citra Kompresi Tampilan Form Setelah Proses Dekompresi
Tampilan Form saat Proses Penyimpanan Tampilan Form setelah Proses Penyimpanan Tampilan Form saat Pilih Citra .bmp
Tampilan Form saat Citra telah dipilih Tampilan Form Setelah Kompresi
Tampilan Form saat Proses Penyimpanan Citra Kompresi Tampilan Form setelah Proses Penyimpanan Citra Kompresi Tampilan Form Setelah Proses Dekompresi
4.19 4.20
Tampilan Form saat Proses Penyimpanan Tampilan Form setelah Proses Penyimpanan
DAFTAR LAMPIRAN
Halaman
A. Listing Program A-1
ABSTRAK
Kompresi citra merupakan salah satu proses pengolahan citra yang bisa mengurangi ukuran dari sebuah citra agar lebih mempermudah dalam proses penyimpanan dan pengiriman. Pada penelitian ini digunakan metode kuantisasi untuk melakukan kompresi citra. Metode kuantisasi bekerja dengan mengurangi warna dari sebuah citra dengan cara membagi-bagi intensitas warna. Metode kuantisasi merupakan jenis lossy compression, karena pada saat proses kompresi ada bagian dari citra yang hilang. Dekuantisasi merupakan proses untuk mengembalikan citra ke bentuk awal. Bekerja dengan cara melakukan perkalian terhadap intensitas warna. Proses dari sistem ini adalah melakukan kompresi dan dekompresi citra dengan format .bmp dan .jpeg. Pada proses pengujian kompresi untuk format .jpeg dan .bmp menghasilkan citra yang mempunyai cahaya lebih gelap. Pada pengujian format .jpeg menghasilkan rasio kompresi citra rata-rata 58.9% % dan rata-rata rasio dekompresi citra adalah 39.4%.
Pada pengujian dengan format .bitmap tidak mempunyai rasio citra. Hal ini disebabkan karena ukuran citra .bmp tidak berubah pada saat proses kompresi. Untuk nilai MSE citra kompresi format *.jpeg dan *.bmp memiliki nilai yang lebih tinggi dari nilai MSE citra dekompresi. Dengan nilai rata-rata untuk MSE kompresi 3806.80 dan rata-rata nilai MSE dekompresi 0.4950.
ABSTRACT
Photo is often a trail ride someone’s life. This time, the storage medium having a large capacity is very easy to find. So, not a big problem if we want to keep our photos. Which becomes a problem, if we want to share the photo to friends by email. Remember, the conection internet in not stable in Indonesia. Make it easier to share photos with friends, we can perform image processing with image compression. Imgae compression is one of the image processing that can reduce the size of an image. This research used quantization method to image compression. Quantization method works by reducing the intensity of the color of an image by dividing the intensity of color. With reduced intensity of color, image size can also be decreased. Because there are missing parts of the image is reduced, there will certainly missing. Because, quantization method is lossy compression. To restore the image to its original shape do dequantization. Dequantization work with multiplication of the intensity of color. This system is the process of compression and decompression image with .bmp format and .jpeg format. In the process of testing the compression .jpeg format produces an image that is smaller than the first image and have average ratio image 58.9%. running time and ratio image depends on the size of the image. The larger image, ratio image and running time too larger. In the process of testing the compression .bmp format, size of image no change. Because, .bmp format is uncompression image.
BAB 1
PENDAHULUAN
Pada bab ini akan dibahas mengenai hal-hal yang menjadi latar belakang pembuatan tugas akhir, rumusan masalah, tujuan, manfaat, dan metodologi penelitian serta sistematika penulisan dari tugas akhir yang akan dikerjakan.
1.1Latar Belakang
untuk merepresentasikan citra menjadi lebih sedikit daripada representasi citra semula [2] serta mempercepat proses pengiriman citra pada saluran komunikasi [1]. Kompresi merupakan salah satu cara yang efektif untuk mengatasi masalah dalam penyimpanan data ataupun pengiriman suatu data (dalam hal ini citra). Banyak metode untuk kompresi citra, salah satunya metode kuantisasi.
Pada Penelitian terdahulu, yaitu pada penelitian Ginting, Andrew Menovita [4] yang berjudul Implementasi Algoritma Huffman Pada Kompresi Citra BMP menghasilkan Aplikasi yang dapat mengkompresi citra berformat BMP dengan jenis kompresi lossless yaitu dengan metode huffman. Pada penelitian Lestari, Rima [9], digunakan jenis kompresi lossy dengan menggunakan metode Fast Fourier Transform (FFT) untuk penelitiannya yang berjudul Analisis dan Perancangan Perangkat Lunak Kompresi Citra Menggunakan Algoritma Fast Fourier Transform (FFT). Sedangkan pada penelitian Krisnawati [8]. Penelitian tersebut betujuuan untuk mengetahui kompresi citra RGB (Red Green Blue) dengan metode kuantisasi dan mengethaui rata-rata rasio citra yang dihasilkan dari kompresi citra dengan metode kuantisasi.
Berdasarkan hal yang telah diuraikan di atas, maka penulis berniat menulis penelitian dengan judul “Implementasi Metode Kuantisasi pada Kompresi dan Dekompresi Citra Bitmap dan JPEG”.
1.2Rumusan Masalah
Yang menjadi rumusan masalah dalam penelitian ini adalah:
1. Bagaimana efisiensi citra setelah dikompresi dengan metode kuantisasi.
2. Bagaimana implementasi metode kuantisasi pada kompresi citra dapat memperkecil ukuran citra.
1.3Batasan Masalah
Adapun batasan masalah dari penelitian ini adalah sebagai berikut :
1. Parameter perbandingan yang digunakan adalah hasil rasio antara kedua format citra dan lama waktu kompresi.
2. File citra yang digunakan adalah file citra RGB yang berformat *.BMP dan *.JPEG.
3. Tools bahasa pemrograman yang digunakan adalah matlab R2007b.
1.4Tujuan Penelitian
Tujuan penelitian ini adalah :
1. Mengetahui efisiensi sebuah citra setelah dikompresi dengan metode kuantisasi.
2. Membuat aplikasi untuk implementasi metode kuantisasi dalam kompresi dan dekompresi file citra.
3. Mengetahui rasio kompresi dari file citra berformat *.BMP dan *.JPEG dengan menggunakan metode kuantisasi.
1.5Manfaat Penelitian
Manfaat dari penelitian ini diharapkan dapat membantu sebagai bahan untuk refrensi dalam bidang kompresi khususnya metode kuantisasi, mengetahui kelebihan dan kekurangan dari metode kuantisasi dalam kompresi citra dan dapat mempermudah proses pengiriman citra.
1.6Metodologi Penelitian
Penelitian ini dilakukan dengan metodologi sebagai berikut : 1. Studi literatur
Pada tahapan ini dipelajari tentang citra digital, teknik kompresi dan metode kuantisasi.
2. Analisis dan Perancangan Sistem
Pada tahapan ini dilakukan analisis dan proses kerja kompresi file citra menggunakan metode kuantisasi dan perancangan sistem yang meliputi perancangan proses kerja sistem, perancangan interface dan UML (Unified Modelling Language), serta algoritma pemrograman yang meliputi flowchart . 3. Implementasi Sistem
Pada tahapan ini dilakukan implementasi dari perancangan sistem yang telah dilakukan pada tahap sebelumnya ke dalam bahasa pemrograman agar bisa digunakan untuk kompresi file citra (coding).
4. Pengujian Sistem
Pada tahapan ini digunakan untuk menguji coba sistem hasil rasio kompresi yang dibuat untuk mengetahui apakah program sudah berjalan sesuai dengan tujuan penelitian atau tidak, serta kelebihan dan kelemahan dari program tersebut.
5. Dokumentasi
1.7Sistematika Penulisan
Dalam penyusunan skripsi ini penulis menggunakan sistematika yang membagi skripsi menjadi beberapa bagian utama, yaitu :
BAB 1: PENDAHULUAN
Pada bab ini berisi penjelasan mengenai latar belakang masalah, perumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodeologi penelitian dan sistematika penulisan.
BAB 2: LANDASAN TEORI
Pada bab ini berisi penjelasan mengenai teori – teori yang terkait dengan penelitian ini diantaranya adalah membahas tentang pengolahan citra, citra digital, kompresi dan dekompresi citra, dan metode kuantisasi.
BAB 3: ANALISIS DAN PERANCANGAN SISTEM
Bab ini berisi analisis terhadap fokus permasalahan penelitian dan perancangan terhadap sistem kompresi citra digital.
BAB 4: IMPLEMENTASI DAN PENGUJIAN SISTEM
Bab ini membahas tentang implementasi dan pengujian sistem.
BAB 5: KESIMPULAN DAN SARAN
BAB 2
LANDASAN TEORI
Pada bab ini akan membahas landasan atas teori-teori yang bersifat ilmiah untuk mendukung penulisan tugas akhir ini. Teori-teori yang dibahas mengenai pengertian citra, kompresi citra, metode kuantisasi, dan beberapa subpokok pembahasan lainnya yang menjadi landasan dalam penulisan tugas akhir ini.
2.1 Citra
Citra adalah gambar pada bidang dua dimensi. Citra merupakan suatu representasi (gambaran), kemiripan, atau imitasi dari suatu objek [9]. Citra sebagai keluaran suatu sistem perekaman data bersifat analog berupa sinyal-sinyal video seperti gambar pada monitor televisi, atau bersifat digital yang dapat langsung disimpan pada suatu media penyimpanan[4].
Citra yang digunakan dalam pengolahan citra oleh komputer adalah citra dalam bentuk digital. Citra digital dapat didefenisikan sebagai suatu larik (array) piksel berukuran dua dimensi.Sedangkan piksel merupakan komponen dari larik sebuah citra digital yang menunjukkan nilai kecerahan tertentu. Misalnya citra yang mempunyai ukuran 512 x 512, berarti jumlah piksel vetikal adalah 512 piksel, sedangkan jumlah piksel horizontal adalah 512 piksel, sehingga jumlah piksel keseluruhan yang terdapat dalam citra tersebut adalah 262144 piksel [9].
2.2Jenis-jenis Citra
Terdapat 2 macam citra yaitu :
1. Citra Kontinu, citra yang dihasilkan dari sistem optik yang menerima sinyal analog.
Contoh : mata manusia, kamera analog.
merupakan proses pengubahan suatu bentuk data citra dari yang bersifat analog ke dalam bentuk data digital. Yang mana proses ini dapat dilakukan dengan menggunakan alat bantu, seperti kamera serta scanner. Hanya citra digital yang dapat diolah menggunakan komputer sedangkan jenis citra yang lain dapat diolah dengan komputer jika citra tersebut diubah terlebih dahulu menjadi citra digital. Berikut ini gambar elemen sistem pemrosesan citra digital.
Gambar 2.1 Elemen Sistem Pemrosesan Citra Digital
Digitizer pada gambar diatas berfungsi untuk menangkap citra yang melakukan penjelajahan citra dan mengkonversi citra tersebut ke representasi numerik sebagai masukan bagi komputer. Hasil dari digitizer ini adalah matriks yang elemen-elemennya menyatakan nilai intensitas cahaya pada satu titik. Komputer digunakan pada sistem pemrosesan citra. Piranti tampilan berfungsi untuk mengkonversi matriks intensitas tinggi kemudian merepresentasikan citra ke tampilan yang dapat dilihat oleh manusia. Sedangkan media penyimpanan berfungsi untuk menyimpan hasil konversi citra menjadi citra digital sehingga dapat disimpan secara permanen agar dapat diproses lagi pada waktu yang lain [4].
Sebuah citra digital terdiri dari titik-titik persegi panjang atau elemen gambar yang diatur dalam m baris n kolom. Jumlah dari m x n disebut resolusi gambar dan titik-titik tersebut disebut piksel [3]. Semakin tinggi resolusi (semakin banyak jumlah piksel untuk tiap inci gambar), semakin halus gambar yang diperoleh. Ini disebabkan jumlah informasi yang hilang semakin sedikit.
Piksel adalah bagian terkecil dari sebuah citra. Piksel adalah satu titik pada citra yang direpresentasikan dalam bentuk 8 bit informasi. Pada kenyataannya, untuk menggambarkan satu titik pada citra dibutuhkan 2 piksel. Satu piksel digunakan untuk merepresentasikan terang atau gelap, sedangkan satu piksel laindigunakan untuk merepresentasikan warna pada titik yang sama [5]. Semakin banyak jumlah piksel yang mewakili sebuah citra, maka semakin tinggi resolusi citra tersebut. Jika resolusi semakin tinggi maka kualitas citra yang dihasilkan akan lebih baik.
2.4 Jenis-jenis citra digital
2.4.1. Citra biner (Monokrom)
Citra biner adalah citra yang hanya memiliki dua nilai derajat keabuan, yaitu : hitam dan putih. [2].
Banyaknya warna : 2, yaitu hitam dan putih
Dibutuhkan 1 bit di memori untuk menyimpan kedua warna ini. Gradasi warna :
0 1
bit 0 = warna hitam ; bit 1 = warna putih
Gambar 2.2 Contoh citra biner
2.4.2. Citra grayscale (skala keabuan)
Banyaknya warna di citra grayscale tergantung pada jumlah bit yang disediakan untuk menampung kebutuhan warna ini [1].
Citra 2 bit mewakili 4 warna dengan gradasi warna berikut :
Citra 3 bit mewakili 8 warna dengan gradasi warna berikut :
0 1 2 3 4 5 6 7
Gambar 2.3 Contoh citra Grayscale
2.4.3. Citra warna (true color)
Tiap piksel pada citra warna merupakan kombinasi dari tiga warna dasar yaitu, RGB (Red Green Blue) [4]. Dalam sebuah citra RGB, sebuah piksel memuat nilai dari tiga warna dasar tersebut. Dalam sebuah citra RGB 24-bit, nilai RGB masing-masing berkisar antara 0-255. Sebagai contoh representasi warna pada sebuah piksel antara lain, RGB [255,0,0] menghasilkan warna merah, RGB [0,255,0] menghasilkan warna biru, RGB [0,0,255] menghasilkan warna hijau. [13]. Setiap warna dasar menggunakan penyimpanan 8 bit = 1 byte, yang berarti setiap warna mempunyai gradasi sebanyak 255 warna. Berarti setiap piksel mempunyai kombinasi warna sebanyak 28.28.28 = 16.777.216. Itulah sebabnya format ini dinamakan true color karena mempunyai jumlah warna yang cukup besar sehingga bisa dikatakan hampir mencangkup semua warna di alam. Penyimpanan citra true color di dalam memori berbeda dengan citra grayscale. Setiap piksel dari citra grayscale 256 gradasi warna diwakili oleh 1 byte. Sedangkan 1 piksel citra true color diwakili oleh 3 byte, dimana masing-masing byte mewakili warna merah (red), hijau (green), dan biru (blue) [1].
Gambar 2.4 Gradasi warna citra true color
Gambar 2.5 Contoh citra true color
2.5 Format File Citra Bitmap
Citra digital bitmap (citra bitmap) secara teknis sering disebut sebagai raster images. Format citra bitmap mendukung citra dengan jumlah bit per piksel sebanyak 1, 4, 8, 16, 24, dan 32 [14]. Gambar bitmap adalah gambar yang terbentuk dari piksel. Format gambar bitmap sering dipakai dalam foto dan gambar. Keunggulan dari gambar bitmap adalah kemudahannya untuk ditampilkan secara rinci dengan pola-pola kompleks, yang tidak dapat dengan mudah direpresentasikan sebagai model matematika (garis, kurva) [9].
Format fileBitmap (BMP) merupakan format standar sistem operasi windows dalam IBM OS/2. Format ini mendukung mode warna dari bitmap mode hingga RGB mode. Bitmap (BMP) mudah dibuka dan disimpan, tetapi ada beberapa aturan khusus yang harus dicermati, diantaranya :
2. Citra dengan resolusi warna 8 bit, lebar citra harus merupakan kelipatan dari 4 bila tidak maka pada saat penyimpanan akan ditambahkan beberapa byte pada data hingga merupakan kelipatan dari 4.
3. Citra dengan resolusi warna 24 bit, urutan penyimpanan 3 warna dasar adalah biru, hijau, merah (RGB).
4. Ukuran file bitmap ini bisa sangat besar hingga Megabytes[5].
Gambar 2.6 Contoh citra bitmap
2.6 Format File Citra JPEG
Format file Joint Photographic Exprest Group (JPEG) atau yang biasa disingkat JPG terkenal karena ukurannya yang mini dibandingkan dengan format-format citra lainnya. Mampu menayangkan warna dengan kedalaman 24-bit true color. JPG mendukung mode warna RGB, CMYK (Cyan, Magenta, Yellow, Black) dan Grayscale. Tetapi tidak mampu menampilkan citra dengan latar belakang transparan [4].
2.7 Pengertian Pengolahan Citra
Pengolahan citra adalah pemrosesan citra, khususnya dengan menggunakan komputer, menjadikan kualitas citra lebih baik dari sebelumnya. Umumnya operasi-operasi pada pengolahan citra diterapkan pada citra apabila :
a. Perbaikan atau memodifikasi citra perlu dilakukan untuk meningkatkan kualitas penampakan atau untuk menonjolkan beberapa aspek informasi yang terkandung di dalam citra.
b. Elemen di dalam citra perlu dikelompokkan, dicocokkan, atau diukur. c. Sebagian citra perlu digabung dengan bagian citra yang lain [2].
Pengolahan citra bertujuan untuk memperbaiki kualitas citra agar mudah diartikan oleh manusia atau mesin (dalam hal ini komputer). Teknik-teknik pengolahan citra merubah citra menjadi citra lain, contohnya kompresi citra (image compression). Dalam proses kompresi citra masukkannya adalah citra dan keluarannya juga citra, namun citra keluaran yang dihasilkan mempunyai ukuran yang lebih kecil dari citra masukannya. Salah satu operasi yang dilakukan dalam pengolahan citra adalah kompresi citra (image compression) [2].
2.8 Kompresi Citra
Pemampatan citra atau Kompresi citra (image compression) adalah proses untuk meminimalkan jumlah bit yang mewakili sebuah citra sehingga ukuran citra menjadi lebih kecil dari ukuran yang semula [6]. Secara umum kompresi citra bertujuan untuk meminimalkan kebutuhan memori dalam merepresentasikan citra digital dengan mengurangi duplikasi data di dalam citra sehingga memori yang dibutuhkan menjadi lebih sedikit daripada representasi semula [1].
Proses kompresi dan dekompresi citra dapat dilihat pada gambar di bawah ini :
Citra Asli Citra Hasil
Gambar 2.8 Alur kompresi citra dan dekompresi citra
2.8.1 Manfaat Kompresi Citra
Manfaat kompresi citra antara lain :
1. Meminimalkan waktu pengiriman data pada saluran komunikasi.
Contohnya pengiriman gambar menjadi lebih singkat , download dari internet, pengiriman data medis, dan lain-lain.
2. Membutuhkan ruang memori yang lebih sedikit dibandingkan dengan citra yang tidak dimampatkan [1].
3. Mengurangi redundancy data sebuah citra agar dapat mengurangi ukuran byte dari sebuah citra [13]
2.8.2 Jenis Kompresi Citra
1. Pendekatan Statistik
Bekerja dengan cara mengkodekan suatu simbol atau data yang sering muncul dengan jumlah bit yang lebih kecil dibandingkan dengan simbol yang memiliki intensitas kemunculan yang lebih rendah. [15]
Contoh : metode huffman 2. Pendekatan Ruang
Melihat hubungan antar piksel yang mempunyai derajat keabuan yang sama pada wilayah dalam citra.[2]
Contoh : metode Run-Length Encoding 3. Pendekatan Kuantisasi
Bekerja dengan cara mengurangi intensitas warna yang dimiliki sebuah citra, sehingga menyebabkan ukuran bit yang mewakili citra akan berkurang.
Contoh : metode Kuantisasi 4. Pendekatan Fraktal
2.8.3 Teknik Kompresi Citra
1. Lossy Compression
Teknik kompresi dimana data hasil dekompresi tidak tepat sama dengan data asli (sebelum dikompresi)[16]. Namun hasilnya sudah “cukup” untuk digunakan [7]. Contoh: metode kuantisasi, fraktal , FFT (Fast Fourier Transform). Pada lossy compression rasio kompresi yang dihasilkan lebih tinggi dari lossless compression[16]. Kelebihan dari lossy compression adalah ukuran file lebih kecil dibanding loseless namun masih tetap memenuhi syarat untuk digunakan. Biasanya teknik ini membuang bagian-bagian data yang sebenarnya tidak begitu berguna, tidak begitu dilihat oleh manusia sehingga manusia masih beranggapan bahwa data tersebut masih bisa digunakan walaupun sudah dikompresi. Diagram lossy compression seperti yang terlihat pada gambar 2.9
Input image Source encoder quantizer
entropy encoder Compressed
image
Gambar 2.9 diagram lossy compression [16]
2. Loseless Compression
ukurannya menjadi lebih besar atau sama. Pada lossless compression citra yang telah dikompresi memiliki kesamaan secara numerik yang identik dengan citra aslinya.
Keuntungan dari metode lossy atas lossless adalah dalam beberapa kasus metode lossy menghasilkan file kompresi yang lebih kecil dibandingkan dengan metode lossless. Metode lossy sering digunakan untuk mengkompresi suara, gambar dan video karena data tersebut dimaksudkan kepada human interpretation dimana pikiran dapat dengan mudah “mengisi bagian-bagian yang kosong” atau melihat kesalahan yang sangat kecil. Sedangkan lossless digunakan untuk mengkompresi data untuk diterima dalam kondisi asli seperti dokumen teks. Lossy akan mengalami generation loss pada data sedangkan pada lossless tidak terjadi karena data yang hasil dekompresi sama dengan data asli [9]. Diagram lossless seperti yang terlihat pada gambar 2.10
Lossless encoder Table specification
Gambar 2.10 diagram lossless compression [16]
2.8.4 Rasio Kompresi Citra
Rasio kompresi citra adalah ukuran presentase citra yang telah berhasil dimampatkan. Secara matematis rasio pemampatan citra dituliskan sebagai berikut :
Rasio = 100%− ������������ℎ������������
Misalkan hasil rasio adalah 35% , artinya 35% dari citra semula telah dimampatkan [1].
Contoh : dimisalkan ukuran citra asli = 144 bit Ukuran citra hasil kompresi = 72 bit
Rasio = 100%− ������������������ℎ��������������������� × 100%�
Rasio = 100%− �72
144× 100%� Rasio = 100%− [50 %] Rasio = 50 %
Hasil rasio = 50%. Artinya, 50% dari citra semula telah berhasil dimampatkan.
Gambar 2.12 Contoh citra sesudah dikompresi
2.7 Dekompresi Citra
Pada proses dekompresi, citra yang sudah dikompresi harus dapat dikembalikan lagi menjadi representasi citra seperti citra aslinya. Proses ini diperlukan jika citra ingin ditampilkan ke layar atau disimpan ke dalam arsip dengan format yang tidak terkompresi [6].
Pada metode kuantisasi, dekompresi dilakukan melalui proses dekuantisasi. Proses dekuantisasi adalah proses sebaliknya dari kuantisasi, yaitu mengembalikan nilai hasil kuantisasi ke nilai awal sebelum proses kuantisasi. Sesuai prinsip metode kuantisasi yaitu membagi-bagi intensitas warna sebuah citra. Maka, proses dekuantisasi dilakukan dengan cara proses perkalian [11].
2.8 Metode Kuantisasi
Proses kuantisasi adalah proses membagi-bagi warna kontinu menjadi G buah warna. Biasanya G diambil dari perpangkatan 2.
G= 2m... (1) [2]. Keterangan :
G = jumlah warna (derajat keabuan) m = bilangan bulat positif
Tabel 1. Kedalaman Piksel
G Rentang Nilai Kedalaman Piksel
21 0 ~ 1 1 bit
28 0 ~ 255 8 bit/1 byte
216 0 ~ 65535 16 bit/ 2 byte
Semakin besar kedalaman piksel yang dipakai untuk merepresentasikan suatu gambar, semakin bagus gambar digital yang akan dihasilkan karena jumlah warna yang dapat direpresentasikan semakin banyak. Pada umumnya, gambar grayscale memiliki 256 level dan membutuhkan kapasitas 8 bit / 1 byte untuk tiap pikselnya [2].
2.9 Mean Square Error ( MSE )
Mean Square Error adalah rata-rata kesalahan yang dikuadratkan. Semakin besar nilai MSE maka semakin besar nilai kesalahan. Sebuah citra yang memiliki nilai MSE yang tinggi, maka kualitas dari citra tersebut semakin rendah.
��� = �(��− ��)
MSE = Mean Squared Error N = Jumlah Sampel
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
Analisis dilakukan untuk memberikan gambaran secara umum terhadap implementasi yang akan dibuat. Hasil analisis akan menjadi dasar untuk melakukan perancangan atau desain program sesuai dengan kebutuhan sistem.
3.1. Analisis Sistem
Analisis sistem merupakan tahap awal dari sebuah penelitian yang bertujuan untuk mengetahui masalah yang terkait dalam pembuatan sistem dengan mempelajari dan memahami masalah yang akan diselesaikan dengan menggunakan sistem ini. Setelah mengetahui permasalahan yang ingin diselesaikan maka dilanjutkan dengan proses perancangan model yang nantinya akan memenuhi kebutuhan dan permintaan pengguna. Analisis selanjutnya yang merupakan analisis terakhir yaitu analisis proses yang diimplementasikan dalam sebuah sistem.
3.1.1. Analisis Masalah
Analisis masalah yang akan dilakukan adalah bagaimana mengkompresi citra dengan format *.bmp dan *.jpeg dengan menggunakan metode kuantisasi. Kemudian citra didekompresi kembali dengan metode yang sama. Masalah pada penelitian secara umum ditunjukkan dengan menggunakan diagram ishikawa pada gambar 3.1.
user
Kompresi - Dekompresi citra
Diuji pada 2 jenis format citra Kecepatan internet yang
tidak begitu baik
Waktu yang lama pada proses pengiriman citra pada saluran komunikasi ukuran citra yang beragam
Gambar 3.1 Diagram Ishikawa Untuk Analisa Masalah
Analisis kebutuhan sebuah sistem dibagi menjadi dua kategori, yaitu : analisis kebutuhan fungsional system dan analisis kebutuhan non-fungsional sistem.
3.1.2.1. Kebutuhan Fungsional Sistem
Kebutuhan fungsional sistem merupakan segala sesuatu yang dibutuhkan sistem. Dalam pengimplementasian sistem kompresi dan dekompresi citra dengan menggunakan metode kuantisasi ini memiliki kebutuhan fungsional yang harus dipenuhi, antara lain :
1. Citra digital yang akan dikompresi adalah citra digital dengan format .bmp atau .jpeg.
2. Proses implementasi pada sistem ini dilakukan dengan melakukan kompresi dan dekompresi menggunakan metode kuantisasi
3. Sistem akan menampilkan citra yang telah berhasil dikompresi dan berusaha mengembalikan citra kembali dengan proses dekompresi.
3.1.2.2. Kebutuhan Non-Fungsional Sistem
Agar membantu kinerja sistem agar lebih baik, terdapat kebutuhan non-fungsional sistem, antara lain :
1. Performa
Sistem dan perangkat lunak yang dibangun harus dapat menunjukkan hasil dari proses implementasi metode kuantisasi untuk kompresi citra dan dekompresi citra bitmap dan jpeg.
2. Mudah digunakan ( user friendly)
Sistem dan perangkat lunak yang dibangun harus sederhana agar mudah digunakan oleh user dan memiliki interface yang menarik.
3. Hemat biaya
Sistem atau perangkat lunak yang digunakan tidak memerlukan perangkat tambahan atau perangkat pendukung lainnya yang dapat mengeluarkan biaya. 4. Dokumentasi
3.1.3. Analisis Proses
Dalam sistem ini menggunakan metode kuantisasi untuk mengkompresi dan mendekompresi citra .bitmap dan .jpeg. Setelah dilakukan kompresi, di dalam sistem ini nantinya akan terdapat beberapa keterangan citra setelah dikompresi. Misalnya, ukuran citra setelah dikompresi, waktu yang dibutuhkan untuk proses kompresi, rasio citra diantara citra setelah dikompresi dan sebelum kompresi. Setelah dilakukan proses kompresi, dapat dilakukan proses dekompresi citra, yaitu proses pengembalian citra ke bentuk semula. Di dalam sistem ini nantinya juga akan dapat menampilkan beberapa keterangan citra yang berhasil di dekompresi. Misalnya, ukuran citra setelah didekompresi dan waktu yang dibutuhkan untuk melakukan proses dekompresi citra.
3.2. Pemodelan
Pada pengimplementasian kompresi dan dekompresi citra ini digunakan UML sebagai bahasa pemodelan yang berfungsi untuk membantu merancang sistem kompresi dan dekompresi citra. Model UML yang digunakan dalam penelitian ini yaitu use case, sequence diagram, dan activity diagram.
3.2.1. Use Case Diagram
Kuantisasi
Kompresi
actor
<<include>>
Simpan
<<include>>
<<Include>>
Dekompresi <<include>>
Simpan <<include>>
<<include>> Hitung
MSE
Hitung MSE
Gambar 3.2.Use Case Diagram Sistem Kompresi dan Dekompresi Citra
3.2.2 SquenceDiagram
Input Citra Kompresi Citra Waktu kompresi Simpan Rasio Citra
Ambil citra actor
Proses kompresi
Perhitungan waktu
Simpan citra
Perhitungan rasio Proses kompresi citra
Hasil kompresi citra
Hasil perhitungan Rasio Citra
Citra
Kompresi Simpan
Waktu dekompresi Dekompresi
Citra
Citra kompresi actor
Proses kompresi
Perhitungan waktu
Simpan citra
Proses dekompresi citra
Hasil dekompresi citra
Gambar 3.4 Sequence Diagram Proses Dekompresi Citra
3.2.3. Activity Diagram
user sistem
Melakukan penyimpanan file citra kompresi
Menampilkan citra yang telah berhasil di kompresi
menekan tombol simpan
Memproses citra Menekan tombol kompresi
Open dialog Menekan tombol open file
Menampilkan keterangan dimensi file citra dan waktu
kompresi
Menampilkan keterangan ukuran file citra Kompresi dan
rasio
user sistem
Sistem melakukan penyimpanan file citra dekompresi User menekan tombol simpan
Sistem menampilkan citra yang telah berhasil di dekompresi
Sistem memproses citra Menekan tombol dekompresi
Menampilkan keterangan dimensi file citra dan waktu
kompresi
Gambar 3.6 Activity Diagram Dekompresi Citra
3.3. Pseudocode Program
Pseudocode merupakan algoritma yang diterjemahkan dengan bahasa tingkat tinggi, bahasa yang digunakan agar mudah dimengerti manusia dan dapat digambarkan dengan mudah sehingga dapat dipahami oleh manusia itu sendiri.
3.3.1. Pseudocode Proses Implementasi Kompresi dan Dekompresi Citra dengan
menggunakan Metode Kuantisasi
3.3.1.1 Pseudocode Kompresi Citra
gbrAwal ← imread(fullfile(nama_path, nama_file))
[a,b,c]← size(citra =RGB)
Array=double(gbrAwal)← array untuk gbrAwal
gbrKompresi=zeros(a,b,c)
for f←1 to b
Pada proses kompresi citra, citra masukan awal disimpan pada variabel gbrAwal yang memiliki size a,b,c. array yang mewakili citra dari gbrAwal didoublekan agar lebih mudah dilakukan oprerasi matimatika dari citra tersebut. Kemudian, buat variabel baru untuk gambar yang akan dikompresi yang arraynya berisi hasil bagi dari array yang mewakili gbrAwal.
3.3.1.2 Pseudocode Dekompresi Citra
gbrHasil ← imread(fullfile(nama_path, nama_file))
[a,b,c]← size(citra =RGB)
Array=double(gbrHasil)← array untuk gbrHasil
gbrDekomp=zeros(a,b,c)
3.4. Perancangan Sistem
3.4.1. Perancangan Flowchart Sistem
3.4.1.1 Flowchart Gambar Umum
Secara umum, proses yang dilakukan sistem untuk kompresi dan dekompresi citra dapat dilihat pada flowchart gambaran umum pada gambar 3.7.
Mulai
Gambar 3.7 Flowchart Umum Sistem
Pada flowchart umum dekompresi, citra yang telah dikompresi sebelumnya dipilih untuk dilakukan proses dekompresi. Setelah dimasukkan citra kompresi, sistem melakukan proses dekompresi. Selanjutnya menampilkan citra dekompresi, setelah citra dekompresi muncul, maka proses dekompresi selesai.
3.4.1.2 Flowchart Kompresi Citra
Proses kompresi citra dapat dilihat pada gambar 3.8
Mulai
Rubah matriks yang mewakili citra menjadi tipe data double
Proses pembagian
warna
Matriks citra dengan intensitas warna baru
Finish Citra Kompresi
Gambar 3.8 Flowchart Kompresi Citra
Keterangan :
1. Mulai : Proses kompresi di mulai
2. Input citra .jpeg / .bmp : masukkan citra dengan format .bmp atau .jpeg agar bisa diproses.
4. Dilakukan proses pembacaan jenis citra.
5. Rubah matriks yang mewakili cita menjadi tipe data double.
6. Dilakukan proses pembagian warna. Diperoleh intensitas warna baru yang mewakili citra.
7. Pembacaan citra kompresi dengan intensitas warna baru.
3.4.1.3 Flowchart Dekompresi Citra
Proses dekompresi citra dapat dilihat pada gambar 3.9.
Mulai
Matriks yang mewakili citra dirubah menjadi tipe data
double
Proses perkalian
warna
Matriks citra dengan intensitas warna baru
Finish Citra dekompresi
Gambar 3.9 Flowchart Dekompresi Citra
Keterangan :
2. Input citra .jpeg / .bmp : masukkan citra kompresi dengan format .bmp atau .jpeg agar bisa diproses.
3. Simpan citra pada variabel gbrHasil 4. Dilakukan proses pembacaan jenis citra.
5. Rubah matriks yang mewakili cita menjadi tipe data double.
6. Dilakukan proses perkalian warna. Diperoleh intensitas warna baru yang mewakili citra.
7. Pembacaan citra dekompresi dengan intensitas warna baru.
3.4.2. Proses Perhitungan Manual Sistem
Kompresi:
Citra Awal 5 x 5 dengan kedalaman warna 0-255 akan diturunkan menjadi citra yang mempunyai kedalaman warna 0-128.
R=
Dilakukan pembagian untuk masing-masing matriks dengan syarat :
���������������� 2 = 0 maka elemen matriks baru = �����������������
2
���������������� 2 ≠0 maka elememen matriks baru = �����������������+1
2
R=
Karena terjadi penurunan kedalaman warna dari sebuah citra, maka ukuran citra kompresi mengalami penurunan.
Setelah dilakukan kompresi, selanjutnya dilakukan proses dekompresi dengan cara melakukan perkalian terhadap matriks citra kompresi. Dengan syarat setiap elemen matriks dikalikan dengan dua, agar mampu kembali ke bentuk semula.
Setelah dilakukan proses perkalian, maka hasil matriks citra akan menjadi :
R =
3.4.3. Perancangan Antarmuka (Interface)
dapat menggunakan sistem yang telah dirancang dan dibangun dapat dipergunakan dengan baik dan mudah digunakan.
3.4.3.1. Form Pertama PROSES BANTUAN
IMPLEMENTASI METODE KUANTISASI PADA KOMPRESI CITRA BITMAP DAN JPEG
Logo Universitas
TENTANG 6 7 Keluar
Gambar 3.10 Tampilan Rancangan form pertama
Keterangan:
1. Tombol Menu Proses
Untuk masuk ke menu proses kompresi dan dekompresi citra dengan metode kuantisasi.
2. Tombol Menu Bantuan
Untuk masuk ke dalam menu bantuan, berisi cara penggunaan sistem. 3. Text1
Berisi judul dari sistem yang dibuat. 4. Axes1
Menampilkan Logo Universitas dari penulis. 5. Text2
Menampilkan info tentang penulis, yaitu: Nama penulis dan NIM penulis. 6. Tombol Menu Tentang
Untuk Masuk ke menu tentang aplikasi. 7. Tombol Menu Keluar
Tombol untuk keluar dari aplikasi.
IMPLEMENTASI METODE KUANTISASI
PADA KOMPRESI DAN DEKOMPRESI CITRA BITMAP DAN JPEG
PILIH CITRA
Gambar 3.11 Tampilan Rancangan form proses
Keterangan: 1.Text
Judul Sistem “Implementasi Metode Kuantisasi Pada Kompresi Citra Bitmap dan JPEG.
2. Panel1
Berisi informasi tentang citra kompresi. 3.A Text
Citra kompresi. 3.B Axes
Informasi ukuran dimensi file kompresi.
Informasi berisi rasio antara file citra sebelum dan sesudah dikompresi. 3.G Tombol Simpan
Tombol simpan untuk menyimpan citra yang telah berhasil dikompresi. 3. H Tombol MSE
Tombol untuk menghitung nilai MSE. 4. Panel3
Berisi informasi tentang citra dekompresi. 4.A Text 4.F Tombol Simpan
Tombol simpan untuk menyimpan citra yang telah berhasil didekompresi. 4. G Tombol MSE
Tombol untuk menghitung nilai MSE.
5. Tombol Kompresi
Tombol untuk melakukan proses Kompresi Citra. 6. Tombol Dekompresi
Tombol untuk melakukan proses Dekompresi Citra. 7. Tombol Pertama
Tombol untuk masuk ke menu awal aplikasi. 8. Tombol Bantuan
Tombol untuk masuk ke menu Bantuan. 9. Tombol Tentang
Tombol untuk masuk ke menu Tentang Aplikasi.
Pertama Proses Tentang Keluar
Gambar 3.12 Tampilan Rancangan form bantuan
Keterangan:
1. Text = Judul Menu Bantuan
2. Text = Berisi langkah-langkah pengoperasian sistem. 3. Tombol pertama = Untuk masuk ke menu awal. 4. Tombol Proses = Untuk masuk ke menu Proses.
5. Tombol Tentang = Untuk masuk ke menu Tentang Aplikasi. 6.Tombol keluar = Untuk keluar dari Sistem.
3.4.3.4. Form Tentang Aplikasi
Pertama Proses Bantuan Keluar
Tentang Aplikasi
Gambar 3.13 Tampilan Rancangan form Tentang Aplikasi
Keterangan :
1. Tombol Pertama = Untuk masuk ke menu awal. 2. Tombol Proses = Untuk masuk ke menu Proses. 3. Tombol Bantuan = Untuk masuk ke menu Bantuan. 4. Text = berisi judul Menu Tentang Aplikasi.
5. Text = Berisi informasi tentang Aplikasi. 6. Text = Berisi Informasi penulis.
BAB 4
IMPLEMENTASI DAN PENGUJIAN
4.1. Implementasi
Setelah tahap analisis dan perancangan sistem selesai pada bab III, selanjutnya akan dilakukan tahap implementasi dan pengujian terhadap sistem yang telah dibangun. Sistem kompresi dan dekompresi citra ini dibangun dengan menggunakan bahasa pemrograman MATLAB R2007a. Pada sistem ini terdapat 4 form yang digunakan yang mana terdiri dari form pertama, form proses, form bantuan, dan form tentang sistem.
4.1.1. Form Pertama
Form pertama merupakan form tampilan awal dari sistem implementasi kompresi dan dekompresi citra. Pada form ini terdapat keterangan judul skripsi, nama penulis, nim penulis dan logo universitas. Selain itu terdapat juga menu proses, menu bantuan, dan menu tentang. Fungsi menu proses disini untuk masuk ke dalam proses kompresi dan dekompresi. Untuk menu bantuang berfungsi untuk masuk ke dalam form yang berisi tentang cara penggunaan dari sistem ini agar membantu pengguna (user). Dan untuk menu tentang aplikasi berisi informasi tentang sistem dan informasi penulis.
Gambar 4.1. Form Pertama
Form Proses ini merupakan form yang digunakan untuk proses kompresi dan dekompresi citra. Untuk mengambil citra yang akan diproses. Pengguna diharuskan mengambil citra terlebih dahulu dengan menekan button pilih citra. Selanjutnya sistem akan memunculkan citra yang telah dipilih oleh pengguna dan juga memunculkan keterangan dari citra yang telah dipilih. Setelah proses pemilihan citra yang akan diproses selesai. Selanjutnya pengguna menekan button kompresi agar dilakukan proses kompresi citra yang telah dipilih dengan metode kuantisasi. Sistem akan memunculkan citra yang telah berhasil dikompresi. Dan selanjutnya akan dilakukan proses penyimpanan citra saat pengguna menekan button simpan. Setelah proses kompresi selesai, selanjutnya akan dilakukan proses Dekompresi. Pengguna menekan button dekompresi agar sistem dapat melakukan proses dekompresi, setelah dilakukan proses dekompresi citra yang berhasil didekompresi akan dimunculkan di sistem. Selanjutnya dilakukan proses penyimpanan terhadap citra yang telah berhasil di dekompresi.
Dalam form proses juga terdapat button pertama yang berfungsi untuk kembali ke halaman awal sistem, juga terdapat button bantuan untuk masuk ke form bantuan apabila pengguan mengalami kesulitan dalam menggunakan sistem. Button tentang untuk melihat menu tentang sistem. Dan button keluar apabila pengguna ingin keluar dari sistem.
Gambar 4.2 merupakan tampilan dari form proses.
4.1.3 Form Bantuan
Dalam form bantuan berisi tentang bagaimana cara penggunaan sistem. Terdapat langkah-langkah yang harus dilakuan pengguna untuk menggunakan sistem ini dan fungsi dari button-button.
Gambar 4.3. Form Bantuan
4.1.4 Form Tentang Aplikasi
Gambar 4.4. Form Tentang_aplikasi
4.2. Pengujian
Pengujian sistem akan dilakukan untuk mengetahui apakah sistem yang telah dibangun dapat mengkompresi dan mendekompresi citra dengan baik.
4.2.1. Pengujian Kompresi dan Dekompresi Citra
Ada 2 jenis pengujian kompresi dan Dekompresi citra. Yaitu untuk citra berformat *.jpeg dan untuk citra berformat .bmp. langkah pertama sistem akan mengkompresi citra dengan format *.jpeg terlebih dahulu.
4.2.1.1. Pengujian Kompresi Citra Format *.jpeg
Gambar 4.5. Tampilan Form saat Pilih Citra *.jpeg
Pada gambar 4.5 terlihat proses pemilihan citra. Yang dilakukan adalah memilih citra dengan format *.jpeg. dalam pengujian kompresi ini kita memilih citra dengan nama foto1.jpeg. setelah memilih citra, tampilan selanjutnya dari form proses terlihat pada gambar 4.6.
Gambar 4.6. Tampilan Form saat Citra telah dipilih
yaitu menekan button kompresi agar dilakukan proses kompresi. Tampilan form setelah button kompresi dipilih terlihat pada gambar 4.7.
Gambar 4.7. Tampilan Form setelah Kompresi
Gambar 4.8. Tampilan Form saat proses penyimpanan citra kompresi
Gambar 4.9. Tampilan Form setelah proses penyimpanan citra kompresi
Selanjutnya dilakukan perhitungan MSE untuk citra kompresi. Tampilan setelah tombol MSE dipilih adalah seperti terlihat pada gambar 4.10.
Gambar 4.10 tampilan setelah perhitungan MSE untuk citra kompresi.
Setelah proses kompresi, penyimpanan gambar dan perhitungan nilai MSE selesai dilakukan langkah selanjutnya melakukan proses dekompresi. Untuk memulai proses dekompresi dimulai dengan menekan button dekompresi dalam form proses. Hasil dekompresi citra terlihat pada gambar 4.11.
Gambar 4.11 merupakan tampilan form setelah proses dekompresi. Selanjutnya dilakukan proses penyimpanan citra dekompresi. Proses penyimpanan citra terlihat pada gambar 4.12.
Gambar 4.12. Tampilan Form saat proses penyimpanan
Gambar 4.13. Tampilan Form setelah proses penyimpanan
Setelah proses dekompresi, dilakukan perhitungan MSE untuk citra dekompresi. Tampilan setelah perhitungan MSE terlihat pada gambar 4.14.
Gambar 4.14. Tampilan form saat perhitungan MSE.
Dari proses kompresi dan dekompresi citra untuk foto1.jpeg didapatkan hasil ukuran file sebelum dikompresi adalah 2504 kb, setelah dikompresi dengan metode kuantisasi menjadi 284 kb dengan rasio 88.69%, setelah didekompresi kembali didapatkan ukuran citra menjadi 428 kb. Waktu kompresi untuk foto1 adalah 10.8 second dan 6.3 second.
Pengujian untuk citra format *.jpeg dilakukan pada 6 citra. Berikut tabel yang menunjukkan hasil kompresi dan dekompresi citra dengan metode kuantisasi pada citra foto1.jpeg , foto2.jpeg , foto3.jpeg , foto4.jpeg , foto 5.jpeg , dan sekolah.jpeg.
Tabel 4.1 Hasil Kompresi dan Dekompresi Citra *.jpeg
Foto1.jpeg
Foto2.jpeg
Foto3.jpeg
Foto4.jpeg
Foto5.jpeg
Sekolah.jpeg
4.2.1.2. Analisa Hasil Pengujian Kompresi dan Dekompresi Citra *.jpeg
Sesuai dengan enam citra dengan format *.jpeg yang telah di uji pada Tabel 4.1. langkah selanjutnya penulis melakukan pengamatan pada keenam citra uji. Mengacu pada perumusan masalah dalam Bab 1, maka terdapat tiga hal yang penulis amati yaitu :
1. Rasio citra antara citra asli dan citra kompresi. 2. Ukuran citra setelah dikompresi dan dikompresi.
Tabel 4.2 Hasil Pengujian Kompresi dan Dekompresi Citra .jpeg Nama Citra Dimensi
Citra
Ukuran
Asli
(kb)
Kompresi Dekompresi
Dimensi
Tabel 4.3 Hasil MSE Citra Kompresi dan Dekompresi Citra *.jpeg
Citra asli MSE Citra Kompresi MSE Citra Dekompresi
Foto1.jpg 2471.14 0.4965
Foto2.jpg 3049.18 0.4957
Foto3.jpg 3623.14 0.4947
Foto4.jpg 5094.35 0.4905
Foto5.jpg 4803.36 0.4960
Sekolah.jpg 3799.64 0.4970
Dari tabel 4.3 terlihat hasil MSE untuk citra kompresi lebih tinggi dari citrayang telah didekompresi.
4.2.1.3. Pengujian Kompresi Citra Format *.bmp
Seperti pengujian citra *.jpeg, pada citra *.bmp Langkah pertama yang dilakukan dalam menu proses untuk mengkompresi citra adalah memilih citra yang akan dikompresi. Proses pemilihan citra terlihat pada gambar 4.13.
Gambar 4.15. Tampilan Form saat Pilih Citra *.bmp
Gambar 4.16. Tampilan Form saat Citra telah dipilih
Gambar 4.16 merupakan tampilan form setelah dilakukan pemilihan citra. Citra yang telah dipilih tadi akan ditampilkan axes1 pada panel citra asli. Langkah selanjutnya yaitu menekan button kompresi agar dilakukan proses kompresi. Tampilan form setelah button kompresi dipilih terlihat pada gambar 4.17.
Gambar 4.17. Tampilan Form setelah Kompresi
muncul juga ukuran dimensi file citra dan waktu yang dihabiskan untuk proses kompresi dan terlihat perbedaan pada gambar asli dan gambar kompresi secara kasat mata. Gambar kompresi mempunyai cahaya yang lebih redup dibandingkan gambar asli. Selanjutnya dilakukan proses penyimpanan citra agar citra dapat disimpan dan sistem dapat melakukan perhitungan rasio. Proses penyimpanan terlihat pada gambar 4.18.
Gambar 4.18. Tampilan Form setelah proses penyimpanan citra kompresi
Gambar 4.17 merupakan gambar saat proses penyimpanan untuk citra foto4.bmp. dan gambar 4.18 adalah tampilan sesudah proses penyimpanan kompresi. Setelah proses penyimpanan selesai ukuran citra kompresi dan rasio citra kompresi akan muncul. Seperti yang terlihat pada gambar 4.18.
Selanjutnya dilakukan perhitungan MSE untuk citra kompresi. Tampilan setelah tombol MSE dipilih adalah seperti terlihat pada gambar 4.19.
Gambar 4.19 tampilan setelah perhitungan MSE untuk citra kompresi.
Gambar 4.20. Tampilan Form setelah proses dekompresi
Gambar 4.20 merupakan tampilan form setelah proses dekompresi. Selanjutnya dilakukan proses penyimpanan citra dekompresi. Proses penyimpanan citra terlihat pada gambar 4.21.
Gambar 4.22. Tampilan Form setelah proses penyimpanan
Gambar 4.21 dan 4.22 adalah tampilan saat dan setelah proses penyimpanan untuk citra dekompresi. Setelah proses penyimpanan selesai sistem akan memunculkan ukuran file yang telah berhasil di dekompresi.
Setelah proses dekompresi, dilakukan proses perhitungan MSE yang terliah pada gambar 4.23.
Dari proses kompresi dan dekompresi citra untuk foto4.bmp tidak terjadi perbedaan untuk ukuran citra dan rasio citra. Artinya, tidak terjadi perubahan pada saat citra *.bmp di kompresi dan didekompresi dengan metode kuantisasi. Hal ini disebabkan karena metode kuantisasi hanya bisa mengkompresi citra ke format citra *.jpeg.
Sesuai Pengujian untuk citra format *.jpeg, pengujian citra *.bmp dilakukan pada 6 citra. Berikut tabel yang menunjukkan hasil kompresi dan dekompresi citra dengan metode kuantisasi pada citra foto1.bmp , foto2.bmp , foto3.bmp , foto4.bmp , foto 5.bmp , dan sekolah.bmp.
Tabel 4.4 Hasil Kompresi dan Dekompresi Citra *.bmp
Nama Citra Citra Asli Citra Kompresi Citra Dekompresi Foto1.bmp
Foto2.bmp
Foto4.bmp
Foto5.bmp
Sekolah.bmp
Dari Tabel 4.3 terlihat perbedaan kecerahan warna citra asli dan citra kompresi. Untuk citra kompresi memiliki warna yang lebih gelap dari citra asli. Tapi, meskipun terlihat perbedaan kecerahan dari citra sebelum dan sesudah kompresi ukuran citra format *.bmp tidak mengalami perubahan.
4.2.1.4. Analisa Hasil Pengujian Kompresi dan Dekompresi Citra *.bmp
Sesuai dengan enam citra dengan format *.jpeg yang telah di uji pada Tabel 4.3. langkah selanjutnya penulis melakukan pengamatan pada keenam citra uji. Mengacu pada perumusan masalah dalam Bab 1, maka terdapat tiga hal yang penulis amati yaitu :
1. Rasio citra antara citra asli dan citra kompresi. 2. Ukuran citra setelah dikompresi dan dikompresi.
Tabel 4.5 Hasil Pengujian Kompresi dan Dekompresi Citra .bmp Nama Citra Dimensi
Citra
Ukuran Asli
(kb)
Kompresi Dekompresi
Dimensi
Tabel 4.6 Hasil MSE Citra Kompresi dan Dekompresi Citra *.bmp
Citra Asli MSE Citra Kompresi MSE Citra Dekompresi
Foto1.jpg 2471.26 0.4965
Foto2.jpg 3049.24 0.4959
Foto3.jpg 3623.13 0.4946
Foto4.jpg 5094.54 0.4905
Foto5.jpg 4803.54 0.4960
Sekolah.jpg 3799.77 0.4971
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan hasil studi literatur, analisis, perancangan, implementasi dan pengujian sistem ini, maka didapat kesimpulan sebagai berikut :
1. Sistem ini menunjukkan proses kerja kompresi dan dekompresi untuk citra dengan format *.bmp dan *.jpeg dengan Metode Kuantisasi.
2. Lama waktu yang diperlukan untuk proses kompresi bergantung juga pada besarnya ukuran yang dimiliki sebuah citra . semakin besar ukuran dari sebuah citra, semakin lama waktu yang diperlukan untuk proses kompresi.
3. Aplikasi ini dapat mengkompresi dan merubah ukuran citra *.jpeg menjadi lebih kecil. Tetapi, tidak dapat mengembalikan citra ke bentuk semula karena ada bagian citra yang hilang saat proses kompresi.
4. Aplikasi ini dapat merubah kecerahan citra *.bmp, tetapi hal itu tidak dapat merubah ukuran citra *.bmp menjadi lebih kecil, karena metode kuantisasi tidak mampu menurunkan ukuran citra *.bmp.
5. Rata-rata rasio citra jpeg dengan ukuran citra yang berbeda-bedaadalah 58.9 %. Rasio citra bergantung pada ukuran citra. Semakin besar ukuran citra asli, maka semakin besar pula rasio citranya.
7. Nilai MSE untuk citra kompresi lebih besar dari citra dekompresi untuk citra *.jpeg dan *.bmp.
5.2 Saran
Adapun saran-saran yang dapat penulis berikan untuk pengembangan dan perbaikan sistem ini adalah sebagai berikut :
1. Agar bisa dibandingkan dengan sesama metode lossy compression lainnya atau dengan
metode lossless compression.
2. Sistem ini dapat dikembangkan lebih lanjut dengan menambahkan pilihan file data
Daftar Pustaka
[1] Munir, Rinaldi. 2007. Pengolahan Citra. Informatika.
[2] Sutoyo, T dan kawan-kawan. 2009. Teori Pengolahan Citra Digital. Yogyakarta: Penerbit Andi.
[3] Salomon, David., Motta, Giovanni. 2010. Handbook of Data Compression 5th Ed. Hal 459.
[4] Ginting, Andrew Menovita. 2010. Implementasi Algoritma Huffman pada kompresi citra BMP. Skripsi. Medan: Universitas Sumatera Utara..
[5] Lestari, Rima. 2013. Analisis dan Perancangan Perangkat Lunak Kompresi Citra Menggunakan Algoritma Fast Fourier Transform (FFT). Skripsi. Medan: Universitas Sumatera Utara.
[6] Natalia, Devi. 2007. Penerapan Algoritma Image Matching Untuk Pewarnaan Pada Gambar Grayscale (Studi kasus Famous Photo Studio). Skripsi. Universitas Bina Nusantara
[7] Rahmawati, Indah. 2005. Pemampatan Data Citra Digital Aras Keabuan dengan Alihragam Wavelet. Skripsi. Universitas Diponegoro.
[8] Sugiarto, Tony. 2005. Program Aplikasi Untuk Memainkan Audio dan Video dengan Delphi 6 Memanfaatkan Kontrol Activex Windows Media
Player. Skripsi. Jakarta: STMIK STI&K.
[9] Abdullah, Muhammad Maulana. Kompresi String menggunakan Algoritma LZW dan Huffman. 2013. Jurnal Ilmu Komputer dan Teknologi Informasi. Vol III No.2, Oktober 2013.
[10] Ardhytia, Satrya N. dan Hiryanto, Lely. 2010. Algoritma Kompresi Fraktal Sequentidal dan Paralel Untuk Kompresi Citra. Jurnal Ilmu Komputer dan Informasi, Volume 3, Nomor 2, Juni 2010.
[11] Fransiska, Gadis., Suwarno, Sri. dan Hapsari, Widi. 2010. Penerapan Kohonen Self Organized Map dalam Kuantisasi Vector pada Kompresi Citra
bitmap 24 bit. Jurnal informatika volume 6, nomer 2, November 2010.
[12] Juliana, I Made Edi., Dharma, Eddy Muntina., dan Adiwijaya. 2006. Kompresi Citra Berbasis Transformasi Wavelet dan DCT dengan Kuantisasi
[13] Manjider et al,. A survey of Lossless and Lossy Image Compression Techniques. 2013. International Journal of Advanced Research in Computer Science and Software Engineering. Volume 3, Issue 2, February 2013 ISSN: 2277 128X
[14] Sugiharto, Aris., Harjoko,Agus. Kompresi Citra Digital dengan Fraktal sebagai Teknik Kompresi Alternatif. 2006. Prosiding Seminar Nasional SPMIPA 2006.
[15] Krisnawati. 2009. Kompresi Citra RGB dengan Metode Kuantisasi. Jurnal.
LISTING PROGRAM
FORM PERTAMA :
function varargout = pertama(varargin)
gui_Singleton = 1; if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1}); end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else
gui_mainfcn(gui_State, varargin{:}); end
% End initialization code - DO NOT EDIT
% --- Executes just before pertama is made visible.
function pertama_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn. % hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to pertama (see VARARGIN)
% Choose default command line output for pertama
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes pertama wait for user response (see UIRESUME) % uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = pertama_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output; handles.output = hObject ;
handles.citra=imread('usu.jpg'); guidata(hObject, handles);
imshow(handles.citra); guidata(hObject, handles);
% --- Executes on button press in button_Proses.
function button_Proses_Callback(hObject, eventdata, handles)
proses;
close pertama;
% hObject handle to button_Proses (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% --- Executes during object creation, after setting all properties.
function axes1_CreateFcn(hObject, eventdata, handles)
% hObject handle to axes1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called
% Hint: place code in OpeningFcn to populate axes1
% --- Executes on button press in button_bantuan.
function button_bantuan_Callback(hObject, eventdata, handles)
bantuan;
close pertama;
% hObject handle to button_bantuan (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in button_tentang.
function button_tentang_Callback(hObject, eventdata, handles)
% hObject handle to button_tentang (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)