This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
"Dan dialah yang menjadikan kebun-kebun yang berjunjung dan yang tidak berjunjung, pohon kurma, tanam-tanaman yang bermacam-macam buahnya, zaitun dan delima yang serupa (bentuk dan warnanya) dan tidak sama (rasanya). makanlah dari buahnya (yang bermacam-macam itu) bila dia berbuah, dan tunaikanlah haknya di hari memetik hasilnya (dengan disedekahkan kepada fakir miskin); dan janganlah kamu berlebih-lebihan. Sesungguhnya Allah tidak menyukai orang yang berlebih-lebihan ” (QS.Al-An’am :141)
Dari ayat di atas terdapat kata tusrifuu yang mufrodnya berasal dari
kata isyrof. Isyrof adalah berlebih-lebihan dalam menggunakan sesuatu di luar
batas yang diperlukan. Perilaku isyrof dilarang oleh ajaran Islam, sebab selain
sikap tersebut sangat tidak terpuji, juga dapat mendatangkan mudhorot atau
bahaya, baik bagi pelaku maupun bagi orang lain. Lawan kata isyrof adalah
penghematan.
Dalam dunia komunikasi data, kata penghematan di istilahkan
dengan kata kompresi atau memperkecil ukuran data atau file. Dewasa ini
perkembangan teknologi dan informasi sangat pesat sehingga dituntut untuk
cepat dan tepat salah satu permasalahan tersebut adalah berkaitan dengan
penyimpanan data. Data atau file di dalam komputer memiliki berbagai macam
bentuk atau tipe, antara lain file image atau citra, teks, aplikasi terkompresi dan
lain sebagainya. Terdapat beberapa bermasalahan dalam penyajian data atau
file antara lain kebutuhan ruang penyimpanan yang berkapasitas besar, biaya
penyimpanan dan operasional yang besar serta dibutuhkan waktu yang lama
dalam pengaksesannya. Oleh karena itu, diperlukan suatu metode untuk
mengatasi permasalahan tersebut.
Permasalahan tersebut dapat diatasi dengan banyak cara, salah satunya
adalah dengan memperkecil atau mengkompresi ukuran file. Teknik kompresi
adalah teknik untuk mereduksi jumlah bit yang diperlukan untuk menyimpan
data file citra sehingga ukuran file yang terkompresi lebih kecil dibanding file
asal, tetapi tidak mengalami penurunan kualitas file yang signifikan. Dengan
demikian maka kapasitas ruang penyimpanan yang diperlukan akan menjadi
lebih kecil serta waktu dan biaya pengaksesan menjadi lebih kecil pula. Metode
pengkompresian data telah berkembang dan masing-masing metode memiliki
kelebihan dan kekurangan, kemampuan dari tiap-tiap metode pengkompresian
data umumnya diukur dengan parameter ukuran atau kapasitas dan kecepatan
kompresi.
Kompresi file digunakan dalam berbagai keperluan, misalnya
membackup data dan transfer data. Untuk membackup data tidak perlu
menyalin semua file aslinya, dengan kompresi atau mengecilkan ukuran file
terlebih dahulu, maka kapasitas tempat penyimpanan yang diperlukan
menjadi lebih kecil. Jika data tersebut diperlukan, maka dikembalikan lagi ke
file aslinya (dekompresi file).
Selain berguna pada media penyimpanan data, kompresi file dapat
membantu memperkecil ukuran data yang ditransmisikan dalam suatu media
jaringan, seperti internet sehingga waktu yang diperlukan akan menjadi lebih
pendek dan kemungkinan pekerjaan download dan upload gagal akan menjadi
lebih kecil.
Pada kompresi data, terdapat dua tipe macam kompresi, yaitu lossless
compression dan lossy compression. Pada lossless compression, semua
informasi yang ada pada data akan kembali menjadi seperti aslinya dan tidak
ada informasi yang hilang. Teknik ini biasanya digunakan untuk dokumen-
dokumen, file executable, dan lainnya. Kehilangan sebuah informasi
merupakan hal yang fatal bagi file-file tersebut sedangkan pada lossy
compression, tidak semua informasi yang ada akan kembali seperti semula.
Hanya informasi-informasi inti yang dikembalikan. Hal ini terjadi karena pada
lossy compression informasi-informasi yang tidak berguna akan dihilangkan.
Walaupun ada informasi yang hilang, namun hal ini tidak terlalu disadari oleh
pengguna. Teknik ini biasanya digunakan pada file video, gambar, suara yang
mana file-file tersebut biasanya berukuran besar (Bytastudios, 2007).
Maka berdasarkan latar belakang yang telah dikemukakan di atas, judul
yang diambil dalam skripsi ini adalah “ Kompresi File Menggunakan
Algoritma Half-byte ”, yang proses kompresinya adalah dengan memanfaatkan
bit sebelah kiri atau nilai yang sering sama secara berurutan. sehingga data
yang sering sama secara berurutan tersebut dapat dikompresi dengan cukup
memakai satu kali bit sebelah kiri dan diikuti oleh bit sebelah kanan pada
urutan yang sama bit sebelah kirinya.
1.2 Rumusan Masalah
Masalah-masalah yang diteliti dan dipecahkan pada skripsi ini adalah :
1. Bagaimana merancang dan membuat aplikasi kompresi file menggunakan
algoritma Half - Byte ?
2. Bagaimana melakukan kompresi terhadap beberapa tipe data file ?
1.3 Batasan Masalah
Batasan masalah yang dibahas dalam skripsi ini adalah :
1. Data dibatasi pada perbandingan ukuran file asal dengan file hasil
kompresi.
2. Sampel yang di gunakan tidak didefinisikan secara khusus. Artinya
aplikasi ini diharapkan mampu untuk menangani berbagai jenis file.
1.4 Tujuan Penelitian
1. Merancang dan membuat kompresi file menggunakan algoritma kompresi
Half-Byte.
2. Menganalisa dan menghitung tingkat kompresi berdasarkan rasio masing-
masing file yang di kompresi dengan algoritma Half-Byte.
1.5 Manfaat Penelitian
Manfaat yang diharapkan dari penelitian ini adalah didapatnya kapasitas
atau ukuran file yang lebih kecil sehingga meringankan suatu proses kinerja
komputer, serta memperkecil kebutuhan akan jumlah media penyimpanan yang
diperlukan.
1.6 Metodologi Penelitian
1. Fase Analisis
a. Studi Literatur
Studi ini dilakukan dengan cara mencari sekaligus mempelajari beberapa
literatur dan artikel mengenai algoritma Half-Byte dan pemrograman file,
sebagai acuan dalam perencanaan dan pembuatan skripsi.
b. Pendefinisian dan analisis masalah untuk mencari solusi yang tepat.
2. Fase Pembuatan Program
Perancangan dan implementasi sistem yang dilakukan secara ekperimental,
yaitu bereksperimen membuat program berdasarkan materi dan algoritma
yang telah dipelajari
3. Fase Uji Coba Program
Uji coba dan analisis hasil implementasi tersebut apakah sesuai dengan
tujuan yang dirumuskan sebelumnya, untuk kemudian dievaluasi.
4. Revisi Program
Setelah fase di atas, pada tahap ini adalah memperbaiki kesalahan-kesalahan
dalam listing program maupun menambah kekurangan dari program yang
dikerjakan.
Dokumentasi dilakukan untuk jangka waktu sekarang dan yang akan
datang agar memudahkan perawatan jika terjadi kesalahan program lagi akibat
ketidakstabilan perangkat atau karena gangguan teknis lainnya. Penyusunan
laporan adalah tahap untuk melaporkan semua hal dan data-data yang sudah
dikerjakan selama penelitian.
1.7. Sistematika Penulisan Skripsi
Adapun sistematika pada skripsi ini adalah sebagai berikut :
BAB I PENDAHULUAN
Bab ini berisi tentang latar belakang, rumusan masalah, batasan masalah,
tujuan, manfaat, metodologi dan sistematika penulisan.
BAB II LANDASAN TEORI
Bab ini menjelaskan tentang teori-teori yang terkait dengan permasalahan
yang diambil.berisi penyimpanan data yaitu definisi dari penyimpanan
data, data yaitu pengertian dari data, kode ASCII, kompresi data yaitu
pengertian dan definisi tentang kompresi.
BAB III DESAIN DAN PERANCANGAN SISTEM
Bab ini menjelaskan tentang analisa yang dilakukan dalam merancang dan
membuat sistem, yaitu pembuatan desain data, deskripsi sistem, desain
proses dan implementasi desain dan semua yang diperlukan dalam aplikasi
kompresi file menggunakan algoritma Half-byte.
BAB IV HASIL DAN PEMBAHASAN
Bab ini membahas tentang implementasi dari aplikasi yang dibuat secara
keseluruhan. Serta melakukan pengujian terhadap aplikasi yang dibuat
untuk mengetahui aplikasi tersebut telah dapat menyelesaikan
permasalahan yang dihadapi sesuai dengan yang diharapkan.
BAB V PENUTUP
Bab ini berisi tentang kesimpulan dan saran yang diharapkan dapat
bermanfaat untuk pengembangan pembuatan program aplikasi selanjutnya.
“Dialah Allah Yang tiada Tuhan selain Dia, Raja Yang Maha Suci, Yang Maha Sejahtera, Yang Mengaruniakan keamanan, Yang Maha Memelihara, Yang Maha Perkasa, Yang Maha Kuasa, Yang Memiliki segala Keagungan, Maha Suci Allah dari segala apa yang mereka persekutukan (QS.Al Hasyr : 23).
Dari ayat di atas disebutkan bahwa Allah adalah Tuhan yang wajib
disembah. Allah yang Maha Memelihara, Yang Maha Perkasa, Yang Maha
Kuasa, Yang Memiliki Segala Keagungan, juga Yang Mengaruniakan
Keamanan bagi manusia.
Keamanan merupakan karunia Allah yang diberikan kepada manusia
yang wajib disyukuri. Allah juga yang telah mengarunikan manusia akal untuk
berpikir. Masalah keamanan merupakan hal yang terpenting dalam kehidupan
didunia ini. Oleh karena itu manusia wajib menggunakan akalnya untuk
mempelajari dan menciptakan keamanan itu.
Keamanan sangat erat sekali hubungannya dengan penyimpanan data.
Penyimpanan data dilakukan untuk mencegah terjadinya kerusakan atau
kehilangan data dan mempermudah membawa data-data tersebut kemanapun
dan kapanpun dibutuhkan. Penyimpanan data pada komputer hanya dibatasi
dengan kapasitas tertentu, sehingga dengan banyaknya data, memungkinkan
tidak cukupnya perangkat keras penyimpan data untuk menyimpan semua data-
data yang ada.
Dengan munculnya masalah itu, manusia yang mempunyai ilmu
pengetahuan dan teknologi harus bisa berpikir dan memberikan solusi agar
semua data yang ada dapat tertampung dalam sebuah penyimpan data. Salah
satu ilmu pengetahuan yang dapat menyelesaikan masalah itu adalah dengan
membangun sebuah aplikasi kompresi data. Kompresi data ini berfungsi untuk
memampatkan data yang berukuran besar, agar memperkecil kapasitas pada
tempat penyimpanan data.
2.2 Data
Kata “data” diadopsi dari bahasa Inggris dan berasal dari kata Yunani
“datum” yang berarti “fakta”. Data di komputer memiliki ukuran dalam
penyebutannya. Data terkecil dalam komputer disebut dengan bit, yaitu sinyal
elektronik yang melewati suatu rangkain digital (prosesor) komputer. Bit-bit
tersebut selanjutnya dirangkai dan rangkaian tersebut diberi kode lagi yang
disebut dengan character (Wahyudi, 2008).
2.2.1 Representasi Data
Elemen-elemen data secara umum adalah terdiri dari (Handayani, 2001):
a. Karakter
Karakter merupakan elemen data yang paling kecil. Karakter merupakan
lambang-lambang yang terdiri dari huruf, angka, serta lambang-lambang
lainnya, yang dibentuk dari susunan bit. Kode yang dihasilkan dari ASCII
dapat diolah oleh komputer menjadi informasi yang disebut dengan karakter
tadi, sehingga manusiapun dapat membacanya. Setiap karakter yang dibentuk
melalui kode komputer disebut juga dengan satu byte. Satu byte adalah
merupakan sebuah karakter yang dibangun dari tujuh atau delapan bit. Satuan
yang digunakan untuk menunjukkan kapasitas dalam dunia digital, termasuk
komputer, besar file, serta ukuran lain, digunakan dalam satuan byte ini.
Informasi yang akan dan yang diolah disimpan dalam suatu memori.
b. Field
Level data lebih tinggi adalah field yang berisi sekumpulan karakter.
Field kadang-kadang juga disebut sebagai suatu item. Field dari sebuah data
menggambarkan atribut dari beberapa entitas.
c. Record
Hubungan field-field data yang digabungkan menjadi bentuk satu record.
Suatu record menggambarkan kumpulan atribut yang menggabarkan entitas.
d. File
Sekumpulan Record yang saling berhubungan dikenal sebagai file data.
File adalah arsip yang disimpan dalam suatu media, yang terdiri dari kumpulan
karakter, dan didokumentasikan dalam bentuk data digital oleh komputer. Atau
dengan kata lain, file adalah entitas dari data yang disimpan di dalam sistem
berkas yang dapat diakses dan diatur oleh pengguna. Sebuah berkas memiliki
nama yang unik dalam direktori di mana file berada.
2.2.2 Ekstensi File
Setiap file dalam media penyimpanan memiliki tanda pengenal atau ciri-
ciri yang menyatakan jenis file tersebut. Umumnya pengenal tipe file tertera
pada nama file tersebut, yaitu tiga huruf paling kanan setelah titik. Fungsinya
adalah untuk mengetahui atau membedakan jenis file. Beberapa jenis ekstensi
file ditunjukkan pada Tabel 2.1 berikut (Prayogo, 2008).
Tabel 2.1 Jenis-jenis Ekstensi File
Ekstensi Jenis Aplikasi yang digunakan Asm Source code pemrograman
Assembly Sembarang teks editor, seperti MS Word, Notepad
Bat Teks MS Word, Notepad, Wordpad, Edit (pada DOS Prompt)
Bmp Image Sembarang editor, seperti PhotoShop, Paint
Doc Document MS Word MS Word
Exe Aplikasi Merupakan file Aplikasi
Fon File font Font viewer
htm, html, shtml
Internet document Netscape, navigator, MS Internet Explorer, dll
Gif Image, animasi Sembarang image editor, sedangkan untuk membuat animasinya digunakan Ulead Gif Animator, dll
Ico File icon Microangelo jpg/jpeg Image Sembarang image editor, seperti
PhotoShop, Paint Mp3 Audio WinAmp Pas Source code bahasa
pemrograman Pascal/Delphi Sembarang teks editor
Java Source code bahasa pemrograman Java
Sembarang teks editor
Pdf Adobe Acrobat Reader Psd Image Adobe Photoshop Txt Teks Sembarang teks editor Zip File kompresi WinZip, WinRar
2.3 Kode ASCII
Kode standar Amerika untuk pertukaran informasi atau ASCII (American
Standard Code for Information Intechange) merupakan suatu standar
internasional dalam kode huruf dan simbol yang bersifat universal yang selalu
digunakan oleh komputer dan alat komunikasi lain untuk menunjukkan teks.
Kode ASCII sebenarnya memiliki komposisi bilangan biner sebanyak 8 bit.
Dimulai dari 00000000 hingga 11111111. Total kombinasi yang dihasilkan
sebanyak 256, dimulai dari kode 0 hingga 255 dalam sistem bilangan desimal.
2.4 Kompresi Data
a. Definisi
Istilah kompresi berasal dari kata bahasa Inggris yaitu compression yang
berarti pamampatan. Secara teknis, kompresi berarti memampatkan segala
sesuatu yang berukuran besar sehingga menjadi lebih kecil. Jadi, kompresi file
berarti proses untuk memampatkan file agar ukurannya menjadi lebih kecil.
Kompresi data berarti sebuah proses mengkodekan informasi
menggunakan bit atau information-bearing unit yang lain yang lebih rendah
daripada representasi data yang tidak terkodekan dengan suatu sistem encoding
tertentu (Anton, 2005).
Kompresi data juga diartikan sebagai teknik untuk memampatkan data
agar diperoleh data dengan ukuran yang lebih kecil daripada ukuran aslinya
sehingga lebih efisien dalam menyimpannya atau mempersingkat waktu
pertukaran data tersebut (Inti, 2006). Seperti diketahui bahwa sebuah data
terkadang memiliki informasi yang berulang-ulang yang membuat ukuran
sebuah data menjadi besar. Dengan menggunakan algoritma dan teknik-teknik
tertentu, informasi yang sama dan berulang-ulang tersebut dikodekan
sedemikian rupa sehingga data tersebut menjadi berukuran lebih kecil. File
atau data yang sudah terkompres agar bisa digunakan kembali harus
dikembalikan lagi seperti file aslinya disebut proses dekompresi (Byta, 2007).
Secara umum kompresi atau pemampatan data merupakan proses
mengubah deretan angka (simbol) masukan menjadi keluaran yang
dikehendaki. jika kompresi efektif, hasil berkas (file) keluaran akan lebih kecil
dari pada berkas aslinya ( Nelson, 1996 ).
Model kompresi atau pemampatan data dapat dibagi menjadi dua yaitu,
Statistical model dan dictionary-based model (Hayati 2004). Statistical model
ialah model yang mengkodekan setiap simbol masukan dengan kode tertentu.
Kompresi dengan model statistik diterapkan pada algoritma Huffman. Kode
tersebut ditentukan berdasarkan statistik frekuensi kemunculan yang tinggi
dikodekan dengan kode yang lebih pendek, sedangkan simbol dengan frekuensi
rendah dikodekan dengan kode yang lebih panjang. Dictionary-based model
adalah suatu model yang mengkodekan setiap simbol masukan dengan suatu
alamat simbol tersebut di simpan. Model kompresi ini bekerja dengan pointer
atau indek yang menghubungkan masukan dengan symbol yang disimpan.
Model kompresi ini terdapat dalam metode RLE dan Half-byte.
b. Jenis Teknik Kompresi
Teknik kompresi secara umum dapat diklasifikasikan menjadi tiga
(Restyandito, 2008) yaitu:
a. Entropy coding adalah teknik kompresi yang menggunakan proses
lossless. Tekniknya tidak berdasarkan pada media dengan spesifikasi dan
karakteristik tertentu namun berdasarkan urutan data serta tidak
memperhatikan semantik data.
b. Source coding adalah teknik kompresi dengan menggunakan proses lossy.
Teknik ini berkaitan dengan data semantik (arti data) dan media.
c. Hybrid coding adalah teknik kompresi dengan menggunakan kombinasi
atau gabungan dari entropy coding dan source coding.
Berdasarkan outputnya, teknik kompresi dapat dibedakan menjadi dua:
a. Teknik kompresi Lossy
Kompresi menggunakan lossy, beberapa bagian data asli hilang ketika
berkas di decoded. Keuntungan dari algoritma ini adalah bahwa rasio kompresi
cukup tinggi. Hal ini dikarenakan cara algoritma lossy yang mengeliminasikan
beberapa data dari suatu berkas. Namun data yang dieliminasikan biasanya
adalah data yang kurang diperhatikan atau di luar jangkauan manusia, sehingga
pengeliminasian data tersebut kemungkinan besar tidak akan mempengaruhi
manusia yang berinteraksi dengan berkas tersebut.
b. Teknik kompresi Lossless
Kompresi menggunakan lossless menjamin bahwa berkas yang
dikompresi dapat selalu dikembalikan ke bentuk aslinya. Algoritma lossless
digunakan untuk kompresi berkas text, seperti program komputer (berkas zip,
rar, dll), karena kita ingin mengembalikan berkas yang telah dikompres ke
status aslinya. Kadang kala ada data-data yang setelah dikompresi dengan
teknik ini ukurannya menjadi lebih besar atau sama.
Terdapat beberapa faktor yang sering menjadi pertimbangan dalam
memilih suatu metode kompresi yang tepat karena tidak ada suatu metode
kompresi yang paling efektif untuk semua jenis file. Faktor-faktor tersebut
adalah:
a. Kualitas data hasil enkoding: ukuran lebih kecil, data tidak rusak untuk
kompresi lossy.
b. Ketepatan proses dekompresi data: data hasil dekompresi tetap sama
dengan data sebelum dikompresi (kompresi loseless).
c. Kecepatan, ratio, dan efisiensi proses kompresi dan dekompresi.
c . Rasio Kompresi
Dalam melihat efektivitas suatu metode kompresi dapat dinilai dengan
berbagai cara, salah satunya adalah dengan mengukur rasio ukuran
kompresinya atau perbandingan ukuran file asal dengan file hasil kompresi.
Proses kompresi adalah proses encoding yang menghasilkan data yang sudah
dikompresi yang disebut aliran data encoded. Sebaliknya aliran data yang telah
dikompresi harus dilakukan proses dekompresi untuk menghasilkan kembali
aliran data yang asli. Karena proses dekompresi menghasilkan decoding dari
aliran data yang sudah dikompresi maka hasilnya adalah aliran data decoded.
Tingkat pengurangan data yang dicapai sebagai hasil dari proses
kompresi disebut rasio kompresi. Rasio ini merupakan perbandingan antara
panjang data string asli dengan panjang data string yang sudah dikompresi,
seperti dituliskan dalam persamaan berikut:
Secara sederhana dapat di tulis pada persamaan sebagai berikut:
Dalam melakukan proses pengembalian file terkompresi ke dalam bentuk
aslinya, dapat di gambarkan sebagai berikut :
Bit penanda ff 6b 5d 71 b2 9a ff
6 b d 1 2 a
5 7 6 9
6 6 6 6 6 6 6 6 6
b 5 d 7 1 b 2 9 a
Gambar 3.5 Proses Dekompresi Half - Byte
a. Amati seluruh data file terkompresi.
b. Jika data bukan merupakan bit penanda, maka data langsung dimasukkan
pada file pengembalian.
c. Jika data merupakan bit penanda, dilakukan beberapa langkah sebagai
berikut :
1. Data ke dua (data setelah bit penanda) di tambahkan ke dalam file
pengembalian.
2. Pada data berikutnya gabungkan bit kiri (sebagai bit kanan) dengan
data bit ke dua sebelah kiri (sebagai bit kiri). Kemudian bit kanannya
(sebagai bit kanan) dengan data bit kedua sebelah kiri (sebagai bit
kiri). Hasil dari penggabungan data ditambahkan pada file
pengembalian .
3. Lakukan penggabungan
berfungsi sebagai
3.3 Perancangan User Interface
Aplikasi ini dibangun dengan desain
yang memiliki dua form
dekompresi. Berikut merupakan gambar dari
dekompresi, dapat dilihat pada
Gambar 3.
Adapun keterangan bagian
a. Main menu yang berisi menu kompresi, dekompresi, dan bantuan. Menu
kompresi adalah untuk melakukan proses kompresi dan menu dekompresi
c
d
e
Lakukan penggabungan file hingga ditemukan bit penanda yang
berfungsi sebagai bit penutup.
User Interface
Aplikasi ini dibangun dengan desain User interface form atau antar muka
form inti, yang terdiri dari interface kompresi dan
dekompresi. Berikut merupakan gambar dari interface kompresi dan
dekompresi, dapat dilihat pada gambar 3.6.
Gambar 3.6 Rancangan Form Aplikasi Kompresi
Adapun keterangan bagian-bagian yang ada dalam gambar 3.6 adalah:
Main menu yang berisi menu kompresi, dekompresi, dan bantuan. Menu
kompresi adalah untuk melakukan proses kompresi dan menu dekompresi
a b
f
g
h
i
J k
L M
N
penanda yang
form atau antar muka
kompresi dan interface
kompresi dan
adalah:
Main menu yang berisi menu kompresi, dekompresi, dan bantuan. Menu
kompresi adalah untuk melakukan proses kompresi dan menu dekompresi
g
untuk melakukan proses dekompresi. Sedangkan menu bantuan berisi
petunjuk atau keterangan tentang aplikasi.
b. Radio button berfungsi untuk memilih pemrosesan secara kompresi atau
dekompresi.
c. Bevel pertama, tempat untuk menginformasikan nama file asli, lokasi
direktori serta ukuran file asli yang akan dikompresi atau didekompresi .
d. Memo isi file yang akan dikompresi dan didekompresi.
e. Bevel kedua, tempat informasi proses hasil prosentase file yang sudah
dikompresi atau file yang didekompresi.
f. Open dialog berfungsi untuk memanggil file yang akan dikompresi atau
didekompresi
g. Tombol save berfungsi untuk menyimpan hasil kompresi dengan algoritma
Half – Byte yang dalam penelitian ini berekstensi *.ron.
h. Tombol exit yang berfungsi untuk keluar dari program aplikasi.
i. Tombol Reset yang berfungsi menghapus semua hasil proses kompresi.
j. Tombol process yang berfungsi dalam menjalankan proses kompresi dengan
menggunakan algoritma Half - Byte
k. Label Informasi waktu lamanya proses kompresi di jalankan.
l. Tombol dekompresi untuk proses pengembalian file ke bentuk aslinya.
m. Label Waktu lamanya proses dekompresi dilakukan.
n. Tombol Save to original file berfungsi untuk menyimpan file hasil
dekompresi ke bentuk file asal sesuai dengan ekstensinya.
3.2.4 Perancangan Uji Coba dan Evaluasi Hasil
Uji coba sistem kompresi terhadap file akan digunakan untuk melakukan
evaluasi terhadap hasil kompresi dan dekompresi yang dihasilkan oleh sistem.
Tujuannya yaitu untuk mengetahui apakah penerapan algoritma Half - Byte ini
dapat mengkompresi suatu file dengan efektif.
1. Rancangan Uji Coba
Pengujian yang akan dilakukan terhadap sistem adalah dengan
menginputkan berbagai jenis ekstensi file . Uji coba dilakukan terhadap file
dengan berbagai ukuran. Hal ini bertujuan untuk mengetahui bagaimanakah
pengaruh ukuran file terhadap kompresi yang dilakukan.
2. Analisa dan evaluasi hasil
Output yang dihasilkan dari proses kompresi akan dievaluasi dengan
memperhatikan ukuran file hasil kompresi, rasio kompresi yang dicapai.
Sedangkan output yang dihasilkan dari proses dekompresi akan dievaluasi
dengan memperhatikan ukuran file hasil dekompresi.
Rancangan tabel untuk hasil dari uji coba yang dilakukan pada penelitian
ini akan ditampilkan pada tabel 3.4 dan tabel 3.5.
Tabel 3.4 Rancangan tabel hasil uji coba untuk proses kompresi
Nama File Ukuran File Asli (byte)
Ukuran File Terkompresi
Rasio Kompresi
Tabel 3.5 Rancangan tabel hasil uji coba untuk proses dekompresi
Nama File Ukuran File Terkompresi
Ukuran hasil dekompresi
BAB IV HASIL DAN PEMBAHASAN
Dalam bab ini dibahas mengenai hasil uji coba sistem yang telah
dirancang dan dibuat. Uji coba dilakukan untuk mengetahui apakah sistem
dapat berjalan sebagaimana mestinya dengan lingkungan uji coba yang telah
ditentukan sesuai dengan skenario yang dijelaskan pada bab 3.
4.1 Lingkungan Implementasi
Lingkungan implementasi meliputi lingkungan perangkat keras serta
perangkat lunak.
4.1.1 Lingkungan Perangkat Keras
Perangkat keras yang digunakan dalam pengembangan sistem pembuatan
kompresi file dan uji coba adalah :
1. Processor Intel Dual Core 1.73 GHz
2. RAM 512 MB.
3. Harddisk dengan kapasitas 120 GB.
4. VGA 64 MB
5. Monitor 14’’
6. Keyboard.
7. Mouse Ps2.
4.1.2 Lingkungan Perangkat Lunak
Perangkat lunak yang digunakan dalam pengembangan sistem pembuatan
kompresi dan uji coba adalah :
1. Sistem Operasi Microsoft Windows XP Professional SP 2.
2. Pemrograman Delphi 7.
3. MS. Visio 2003.
4. Adobe Photoshop.
4.2 Implementasi Program
4.2.1 Strukur Data
Struktur data pada program ini adalah :
// Struktur Data Type FSize,FCSize: LongInt; FCBSize: LongInt; FCSaveSize: LongInt; Metode: Integer; Buf: array[1..5000000] of Char; BufC: array[1..5000000] of Char;
Buf adalah sebuah array yang digunakan untuk menyimpan data
kompresi sementara. Sedangkan BufC digunakan untuk menyimpan data akhir
hasil kompresi dan dekompresi.
4.2.2 Prosedur
Prosedur yang digunakan dalam proses kompresi dan dekompresi file
antara lain prosedur inisialisasi data, pemberian kode data file, penentuan bit
Pada awal data hasil kompresi diberi sebuah kode atau tanda berupa
karakter ’HAL’ tujuannya sebagai penanda awal bahwa file tersebut adalah
dikompresi menggunakan metode Half-Byte .
BufC[1]:='H';BufC[2]:='A';BufC[3]:='L';
4.2 Merupakan pemberian kode data file
4.2.4 Prosedur Penentuan bit penanda
Bit penanda ditentukan dengan mencari data dalam file yang jumlahnya
paling sedikit atau paling kecil tingkat kemunculannya. Kemudian bit penanda
diletakkan setelah kode ‘HAL’.
// prosedur penentuan bit penanda for uu:=0 to 255 do Begin SigmaAscii[uu]:=0; end; SigmaMin:=1000000; for i:=0 to Fsize-1 do begin Inbuf:=integer(Buf[1+i]); inc(SigmaAscii[Inbuf]); end;
// inisialisasi data Assign File(FromF, OpenDialog1. FileName); Reset(FromF, 1); Fsize := FileSize(FromF); repeat BlockRead(FromF, Buf, SizeOf(Buf), NumRead) ; until (NumRead = 0); Close File(FromF);
for uu:=0 to 255 do begin if SigmaAscii[uu]<SigmaMin then begin SigmaMin:=SigmaAscii[uu]; BitPenanda:=uu; end; end; BufC[4]:=chr(BitPenanda);
4.3 Prosedur penentuan bit penanda
4.2.5 Prosedur kompresi Half-Byte
Proses kompresi Half-Byte diawali membaca data yang telah
diinisialisasi kemudian mencari tujuh atau lebih deretan data yang bit sisi
kirinya sama. Deretan tersebut kemudian dikompresi dengan dibuka dan
ditutup dengan bit penanda. Proses berulang hingga akhir data file yang
dikompresi.
// prosedur kompresi Half-Byte. ii:=4; BitKiriS:=(inttohex(Integer(Buf[FSize]),2)); Delete(BitKiriS,2,1); if BitKiriS='4' then Buf[FSize+1]:='P' else Buf[FSize+1]:='O'; //O=4F P=50 +akhir file i:=1; SameHB:=1; JadiPenanda:=false; BitKiriS:=(inttohex(Integer(Buf[i]),2)); Delete(BitKiriS,2,1); While i<=FSize do Begin if (SameHB=1) and (Buf[i]=chr(BitPenanda)) then JadiPenanda:=True; BitKananS:=(inttohex(Integer(Buf[i]),2)); Delete(BitKananS,1,1); i:=i+1; BitKiriT:=(inttohex(Integer(Buf[i]),2)); Delete(BitKiriT,2,1); if (BitKiriT=BitKiriS) and (JadiPenanda=false) then begin SameHB:=SameHB+1; if (SameHB mod 2)=1 then
begin BitKananT:=(inttohex(Integer(Buf[i]),2)); Delete(BitKananT,1,1); if StrtoIntDef('$'+BitKananS+BitKananT,255)=BitPenanda then JadiPenanda:=True; end; end else // tidak sama begin i:=i-SameHB; if (SameHB<7) or (JadiPenanda=True) then begin for uu:=i to i+SameHB-1 do begin ii:=ii+1; BufC[ii]:=Buf[uu]; if Buf[uu]=chr(BitPenanda) then // Bit penanda 2X begin ii:=ii+1; BufC[ii]:=Buf[uu]; end; end; end else // SameHB >= 7 begin ii:=ii+1; Bufc[ii]:=chr(BitPenanda); ii:=ii+1; Bufc[ii]:=Buf[i]; genap:=1; for uu:=i+1 to i+SameHB-1 do begin case genap of 1: begin BitKiriS:=(inttohex(Integer(Buf[uu]), 2)); Delete(BitKiriS,1,1); // ambil kanan genap:=0; end; 0: // ganjil begin BitKiriT:=(inttohex(Integer(Buf[uu]), 2)); Delete(BitKiriT,1,1); // ambil kanan ii:=ii+1; Bufc[ii]:=char(StrtoIntDef('$'+BitKiriS+BitKiriT,25 5)); genap:=1; end; end; end; ii:=ii+1; Bufc[ii]:=chr(BitPenanda); // bit penutup if genap=0 then begin ii:=ii+1;
Prosedur dekompresi file juga diawali dengan membaca data yang telah
diinisialisasi kemudian mencari bit penanda. Jika ditemukan bit penanda, maka
data selanjutnya adalah data yang terkompresi dan bit penanda ke dua
merupakan bit penutup. Pada data yang terkompresi dilakukan pemisahan bit
kiri dan kanannya sehingga di dapat file aslinya.
// prosedur Dekompresi Half-Byte i:=0; BitPenanda:=Integer(Buf[4]); ii:=4; Repeat inc(ii); If Integer(Buf[ii])=BitPenanda then begin If Integer(Buf[ii+1])=BitPenanda then begin inc(i); BufC[i]:=chr(BitPenanda); inc(ii); end else begin inc(i); BufC[i]:=Buf[ii+1]; BitKiri:=(inttohex(Integer(Buf[ii+1]),2)) ; Delete(BitKiri,2,1);
ii:=ii+2; while (Integer(Buf[ii])<>BitPenanda) and (ii<FSize) do begin BitKanan:=(inttohex(Integer(Buf[ii]),2) ); Delete(BitKanan,2,1); inc(i); BufC[i]:=chr(StrtoIntDef('$'+BitKiri+BitKanan,255)) ; BitKanan:=(inttohex(Integer(Buf[ii]),2) ); Delete(BitKanan,1,1); inc(i); BufC[i]:=chr(StrtoIntDef('$'+BitKiri+BitKanan,255)) ; inc(ii); end; end; end else // Karakter Asli begin inc(i); BufC[i]:=Buf[ii]; end; Until ii>=FSize; FCSize:=i; end; end;
4.5 Prosedur dekompresi file
4.2.7 Prosedur penyimpanan file terkompresi
Data file yang telah dikompresi disimpan dalam buffer. kemudian
data tersebut disimpan dalam file yang di beri ektensi tertentu. Dalam
penelitian ini menggunakan ekstensi *ron .
// penyimpanan file terkompresi begin Assign File(ToF, SaveDialog1. FileName); Rewrite(ToF); for ii:=1 to FCSize do begin Write(ToF, bufC[ii]); end;
Close File(ToF); end;
4.6 Prosedur penyimpanan file terkompresi
4.2.8 Prosedur penyimpanan file dekompresi
Proses penyimpanan data hasil dari dekompresi disimpan dalam bentuk
aslinya, yaitu data yang awal sebelum dilakukan kompresi dengan algoritma
Half-Byte ini.
// penyimpanan file dekompresi begin Assign File(ToF, SaveDialog2. FileName); Rewrite(ToF); for ii:=1 to FCSize do begin Write(ToF, bufC[ii]); end; Close File(ToF); end
4.6 Prosedur penyimpanan file dekompresi
4. 3 Implementasi desain interface
Pada bagian pembahasan ini akan diuji program aplikasi kompresi Half-
Byte yang telah dibuat. Berikut ini adalah tampilan program ketika pertama
kali dijalankan :
Gambar 4.1 Form Aplikasi kompresi
User interface aplikasi kompresi file terdiri dari 2 menu inti yaitu
kompresi dan dekompresi. Pada Radio compres terdapat komponen berupa
field-field dan tombol-tombol untuk menjalankan aplikasi kompresi.
Sedangkan dekompresi terdapat komponen berupa field-field dan tombol-
tombol untuk menjalankan aplikasi dekompresi dan form Help berisi suatu
informasi tentang half-byte.
Pada Radio kompresi terdapat komponen-komponen yang dibutuhkan
dalam antarmuka aplikasi Half-Byte, yaitu :
a. Tabel yang berfungsi untuk menampilkan alamat file yang telah dibuka
dengan mengetahui nama file dan ukuran file.
b. Tombol open file berfungsi untuk mengakses Form Open Windows dan
mencari alamat file dalam bentuk file yang sudah diketahui tipenya.
c. Teks Field berfungsi untuk menampilkan alamat file sebagai tempat
penyimpanan hasil kompresi.
d. Tombol save berfungsi untuk mengakses Form Save Windows dan
menentukan tempat penyimpanan hasil kompresi.
e. ProgressBar berfungsi untuk mengetahui berjalannya program waktu
pemrosesan.
f. Tabel yang berfungsi untuk menampilkan file hasil kompresi dan rasio
kompresi, dengan mengetahui nama file, ukuran file, dan rasio.
g. Teks Field berfungsi untuk menampilkan waktu hasil kompresi, agar
diketahui berapa waktu yang dibutuhkan untuk melakukan proses kompresi.
h. Tombol Kompress berfungsi untuk menjalankan proses kompresi.
i. Tombol Reset yang berfungsi menghapus semua hasil proses kompresi.
Gambar 4.2 Form Aplikasi Dekompresi
Pada radio dekompresi terdapat komponen-komponen yang dibutuhkan
dalam antarmuka aplikasi ini, yaitu :
a. Tabel yang berfungsi untuk menampilkan alamat file terkompresi yang telah
dibuka dengan mengetahui nama file dan ukuran file.
b. Tombol open berfungsi untuk mengakses Form Open Windows dan mencari
alamat file terkompresi dengan jenis file *.ron
c. Teks Field berfungsi untuk menampilkan alamat file sebagai tempat
penyimpanan hasil dekompresi.
d. Tombol save berfungsi untuk mengakses Form Save Windows dan
menentukan tempat penyimpanan hasil dekompresi.
e. ProgressBar berfungsi untuk mengetahui berjalannya program waktu
pemrosesan.
f. Tabel yang berfungsi untuk menampilkan alamat file hasil dekompresi,
dengan mengetahui nama file dan ukuran file.
g. Teks Field berfungsi untuk menampilkan waktu hasil dekompresi, agar
diketahui berapa waktu yang dibutuhkan untuk melakukan proses
dekompresi.
h. Tombol Decompress berfungsi untuk menjalankan proses dekompresi.
i. Tombol Reset yang berfungsi menghapus semua hasil proses kompresi.
4.4 Implementasi Kompresi Algoritma Half-Byte
Tahap kompresi menerapkan algoritma Half-Byte memerlukan karakter
khusus sebagai tanda dari sederetan data yang sudah dikompresi. Cari deretan
karakter yang bit kirinya sama secara berurutan, lakukan kompresi. Tulis bit
penanda pada file kompresi, berupa tujuh atau delapan deretan bit (1 bit)
yang boleh dipilih sembarang asalkan digunakan secara konsisten pada
seluruh bit penanda kompresi. Bit penanda ini berfungsi untuk menandai
bahwa karakter selanjutnya adalah karakter kompresi, sehingga tidak
membingungkan pada saat mengembalikan file yang sudah dikompresi ke
file aslinya. Tulis karakter pertama dari empat bit kiri berurutan dari file asli.
Gabungkan empat bit kanan karakter kedua dan ketiga kemudian tulis ke
file kompresi. Lakukan hal ini sampai akhir deretan karakter dengan empat
bit pertama yang sama. Tutup dengan menulis bit penanda pada file
kompresi.
4.5 Rancangan Uji Coba
Pada subbab ini akan dilakukan perancangan uji coba dari aplikasi
kompresi file ini, baik pengujian terhadap sistem apakah telah sesuai dengan
analisis dan perancangan.
4.5.1 Tujuan Pengujian
Beberapa hal yang menjadi tujuan dari pelaksanaan pengujian terhadap
aplikasi kompresi file, yaitu :
a. Memeriksa perangkat lunak apakah telah berjalan baik (tidak terjadi error).
b. Mengevaluasi hasil dari aplikasi kompresi file apakah telah berjalan sesuai
dengan yang diharapkan.
4.5.2 Skenario Pengujian
Skenario pengujian sistem ini yang di gunakan tidak didefinisikan secara
khusus. Artinya aplikasi ini diharapkan mampu untuk menangani berbagai
jenis file. Pengujian dilakukan terhadap berbagai ukuran file.
Hasil pengujian akan ditampilkan dalam bentuk tabel yang
memperlihatkan hasil eksperimen dengan berbagai proporsi antara data contoh
dan data uji coba.
4.5.3 Bahan Uji Coba
Dalam aplikasi kompresi file ini bahan uji coba yang digunakan yaitu
beberapa tipe data yang umum di gunakan para pengguna komputer. Pengujian
dilakukan terhadap berbagai ukuran file. Data input yang digunakan dalam uji