• Tidak ada hasil yang ditemukan

Perbandingan Algoritma Elias Gamma Code Dengan Shannon-Fano Untuk Kompresi File Teks

N/A
N/A
Protected

Academic year: 2017

Membagikan "Perbandingan Algoritma Elias Gamma Code Dengan Shannon-Fano Untuk Kompresi File Teks"

Copied!
98
0
0

Teks penuh

(1)

LISTING PROGRAM

void AboutToolStripMenuItemClick(object sender, EventArgs e) {

void EliasGammaCodeToolStripMenuItemClick(object sender, Even tArgs e)

void ShannonFanoToolStripMenuItemClick(object sender, EventAr gs e)

{

Shannon frmcld = new Shannon(); frmcld.MdiParent=this;

(2)

}

void HelpToolStripMenuItemClick(object sender, EventArgs e) {

void ExitToolStripMenuItemClick(object sender, EventArgs e) {

this.Close(); }

void HomeToolStripMenuItemClick(object sender, EventArgs e) {

void ButtonBrowseClick(object sender, EventArgs e) {

OpenFileDialog dialog = new OpenFileDialog(); dialog.Filter = "Document (MsWord)|*.doc"; dialog.Title = "Open file doc : ";

(3)

if(dialog.ShowDialog() == DialogResult.OK){

dirName + "\\" + dialog.SafeFileName.ToString(); } Microsoft.Office.Interop.Word.ApplicationClass();

object filenameO = textBoxLoadFilePath.Text.ToString();

= wordApp.Documents.Open(ref filenameO, ref objFalse, ref objTrue, r ef missing, ref missing, ref missing, ref missing, ref missing, ref m issing, ref missing, ref objTrue, ref missing, ref missing, ref missi ng, ref missing);

(4)

ipy.UseFile ("eliasgamma.py");

void BtnDecompressEGClick(object sender, EventArgs e) {

SaveFileDialog saveFileDialog1 = new SaveFileDialog();

saveFileDialog1.Filter = "Word 1997-2003|*.doc|Word 2007-2013|*.docx|Rich Text File|*.rtf|All Files (*.*)|*.*";

(5)

conds.ToString ("00") + "." +

void TxtDecompressEliasTextChanged(object sender, EventArgs e) {

}

(6)

3. Shannon-Fano.cs

void ButtonBrowseClick(object sender, EventArgs e) {

dirName + "\\" + dialog.SafeFileName.ToString(); } Microsoft.Office.Interop.Word.ApplicationClass();

object filenameO = textBoxLoadFilePath.Text.ToString(); object objFalse = false;

object objTrue = true;

(7)

try{

Microsoft.Office.Interop.Word.Document aDoc

= wordApp.Documents.Open(ref filenameO, ref objFalse, ref objTrue, r ef missing, ref missing, ref missing, ref missing, ref missing, ref m issing, ref missing, ref objTrue, ref missing, ref missing, ref missi ng, ref missing);

(8)

var size= fileinfo.Length;

void BtnDecompressSFClick(object sender, EventArgs e) {

SaveFileDialog saveFileDialog1 = new SaveFileDialog(); saveFileDialog1.Filter = "Word 1997-2003|*.doc|Word 2007-2013|*.docx|Rich Text File|*.rtf|All Files (*.*)|*.*";

(9)

MessageBox.Show(ex.ToString());

#title: Elias' Gamma and Shannon-Fano's Algorithm #purpose: Data Compression

#fungsi berikut ini mengembalikan 2 nilai, yaitu:

#(1) list char = karakter apa saja yang ada pada string st #(2) list freq = berapa frequency masing-masing karakter def count_freq(st):

#fungsi berikut ini mengembalikan 2 nilai yaitu: #(1) list freq yang sudah tersortir descending order

#(2) list char yang sudah tersortir mengikuti urutan freq-nya def InsertionSort(f, c):

(10)

for i in range(1, n):

#fungsi berikut ini menjumlahkan semua angka yang ada pada list f def sum(f):

s = 0

for i in f: s = s + i return s

#fungsi berikut ini mengembalikan 2 nilai, yaitu:

#(1) difference = beda antara jumlah freq table atas dgn jumlah freq table bawah

#(2) row = baris tempat pemotongan tabel, dihitung dari bawah def findrow(f):

x = abs(sum(upper) - sum(lower)) if x < difference:

difference = x # difference = beda antara jumlah freq table atas dgn jumlah freq table bawah

row = i # row = baris tempat pemotongan table return difference, row

def EliasGamma(st): if len(st) <= 1:

raise Exception('|String| harus > 1') char, freq = count_freq(st)

t = len(char) if t == 1:

return char[0], '1' char, freq = count_freq(st)

(11)

def countZero(n):

#fungsi berikut mengubah string-bits menjadi kode ASCII def encode(sb):

#fungsi berikut mengubah kode ASCII kembali menjadi string-bits def decode(code):

(12)

sb = sb + '0' * y + d return sb

#fungsi berikut mengubah string-bits kembali menjadi string def decompress(sb, c, s):

freq, char = InsertionSort(freq, char) c, s = EliasGamma(st)

for i in range(len(c)):

sb = string2sb(st, c, s) uncompressed_bits = len(st) * 8 compressed_bits = len(sb)

CR = (uncompressed_bits * 1.0) / compressed_bits return CR

def processEG1(st):

char, freq = count_freq(st)

freq, char = InsertionSort(freq, char) c, s = EliasGamma(st)

for i in range(len(c)):

sb = string2sb(st, c, s) uncompressed_bits = len(st) * 8 compressed_bits = len(sb)

CR = (uncompressed_bits * 1.0) / compressed_bits SS = (1.0 - 1.0/CR) * 100

return SS def processEG2(st):

char, freq = count_freq(st)

freq, char = InsertionSort(freq, char) c, s = EliasGamma(st)

for i in range(len(c)):

sb = string2sb(st, c, s) uncompressed_bits = len(st) * 8 compressed_bits = len(sb)

CR = (uncompressed_bits * 1.0) / compressed_bits SS = (1.0 - 1.0/CR) * 100

(13)

for i in range(len(c)):

sb = string2sb(st, c, s) uncompressed_bits = len(st) * 8 compressed_bits = len(sb)

CR = (uncompressed_bits * 1.0) / compressed_bits SS = (1.0 - 1.0/CR) * 100

#title: Elias' Gamma and Shannon-Fano's Algorithm #purpose: Data Compression

#fungsi berikut ini mengembalikan 2 nilai, yaitu:

#(1) list char = karakter apa saja yang ada pada string st #(2) list freq = berapa frequency masing-masing karakter def count_freq(st):

#fungsi berikut ini mengembalikan 2 nilai yaitu: #(1) list freq yang sudah tersortir descending order

#(2) list char yang sudah tersortir mengikuti urutan freq-nya def InsertionSort(f, c):

#fungsi berikut ini menjumlahkan semua angka yang ada pada list f def sum(f):

s = 0

for i in f: s = s + i return s

#fungsi berikut ini mengembalikan 2 nilai, yaitu:

#(1) difference = beda antara jumlah freq table atas dgn jumlah freq table bawah

#(2) row = baris tempat pemotongan tabel, dihitung dari bawah def findrow(f):

(14)

row = 1 t = len(f)

for i in range(1, t): upper = f[0:(t-i)] lower = f[t - i:]

x = abs(sum(upper) - sum(lower)) if x < difference:

difference = x # difference = beda antara jumlah freq table atas dgn jumlah freq table bawah

row = i # row = baris tempat pemotongan table return difference, row

#fungsi berikut ini berfungsi melakukan table splitting secara rekursif, sekaligus meng-update kode Shannon-Fano

def split(S, F, C, charset, sf):

split(S1, F1, C1, charset, sf) split(S2, F2, C2, charset, sf)

#fungsi berikut ini mengembalikan 2 nilai, yaitu: #(1) charset = character set

#(2) sf = kode Shannon-Fano yang bersesuaian def ShannonFano(st):

if len(st) <= 1:

raise Exception('|String| harus > 1') char, freq = count_freq(st)

t = len(char) if t == 1:

return char[0], '1' char, freq = count_freq(st)

freq, char = InsertionSort(freq, char) global charset, sf

(15)

for i in range(t): code.append('')

split(char, freq, code, charset, sf) return charset, sf

#fungsi berikut mengubah string-bits menjadi kode ASCII def encode(sb):

#fungsi berikut mengubah kode ASCII kembali menjadi string-bits def decode(code):

(16)

dl = len(d) y = 8 - dl

sb = sb + '0' * y + d return sb

#fungsi berikut mengubah string-bits kembali menjadi string def decompress(sb, c, s):

freq, char = InsertionSort(freq, char) c, s = ShannonFano(st)

for i in range(len(c)):

sb = string2sb(st, c, s) uncompressed_bits = len(st) * 8 compressed_bits = len(sb)

CR = (uncompressed_bits * 1.0) / compressed_bits return CR

def processSF1(st):

char, freq = count_freq(st)

freq, char = InsertionSort(freq, char) c, s = ShannonFano(st)

for i in range(len(c)):

sb = string2sb(st, c, s) uncompressed_bits = len(st) * 8 compressed_bits = len(sb)

CR = (uncompressed_bits * 1.0) / compressed_bits SS = (1.0 - 1.0/CR) * 100

return SS def processSF2(st):

char, freq = count_freq(st)

freq, char = InsertionSort(freq, char) c, s = ShannonFano(st)

for i in range(len(c)):

sb = string2sb(st, c, s) uncompressed_bits = len(st) * 8 compressed_bits = len(sb)

(17)

char, freq = count_freq(st)

freq, char = InsertionSort(freq, char) c, s = ShannonFano(st)

for i in range(len(c)):

sb = string2sb(st, c, s) uncompressed_bits = len(st) * 8 compressed_bits = len(sb)

CR = (uncompressed_bits * 1.0) / compressed_bits SS = (1.0 - 1.0/CR) * 100

code = encode(sb) dc = decode(code)

(18)

CURRICULUM VITAE

Nama Lengkap : Nur hennida Br Sitepu Nama Panggilan : Nur

Tempat/ Tgl. Lahir : Ber astagi, 1 Mar et 1992 Jenis Kelamin : Per empuan

Agama : Islam

War ga Negar a : Indonesia

Alamat : Jl. Pasar VII No.12 Padang Bulan Medan

No. HP : 087884858092 / 085658052929

Em ail : nur hestp@gm ail.com

Status : Belum Menikah

Latar Belakang Pendidikan

1. SD

SD Neg 040458 Ber astagi 2. SMP

SMP N.1 Ber astagi 3. SMA

SMA N.1 Ber astagi 4. Univer sitas

Univer sitas Sumater a Utar a

Pengalaman Kerja

No Instansi/ Lembaga Jabatan/ Posisi Tahun

1 LCC Pengajar 2010 – 2011

2 IKLC Kepala Divisi Kar ya / Pengajar 2013 – 2014

Softwar e Aplikasi : Micr osoft Office, Photoshop , Dr eamw eaver Bahasa Pemr ogr aman : C+ + , C#

Sim ulator : Matlab

D ata Pribadi

(19)

Pengalaman Organisasi

No Nama Or ganisasi Jabatan Tahun Menjabat

1 OSIS SMA N.1 Ber astagi Sekr etar is Umum 2008 – 2009

2 BKM SMA N.1 Ber astagi Angggota Hum as 2009 – 2010

3 BKM Al-KHUWARIZMI Anggota Kewir ausahaan 2010 – 2011

4 IMILKOM Anggota Kemahasiswaan 2011 – 2012

5 GAMADIKSI Anggota Divisi pendidikan 2011 – 2012

6 UKMI Al-KHUWARIZMI Bendahar a Umum 2011 – 2012

7 IMILKOM Kepala Bir o Kesekr etar iatan 2012 – 2013

8 UKM ROBOTIK SIKONEK Sekr etar is Umum 2013 – 2014

9 IMILKOM Kepala Bir o Kesekr etar iatan 2013 – 2014

10 Relawan TIK Sumater a Utar a Anggota 2013 – Sekar ang

(20)

DAFTAR PUSTAKA

Jogiyanto.2005.Analisis dan Desain Sistem Informasi : pendekatan terstruktur teori dan praktik aplikasi bisnis. Yogyakarta : Penerbit ANDI.

Luca, W.D. 2014. Implementasi Metode Kuantisasi Pada Kompresi dan Dekompresi Citra Bitmap dan JPEG. Skripsi. Universitas Sumatera Utara.

Pu, I.M. 2006. Fundamental Data Compression. Amsterdam : Elsevier. Putra, D. 2009. Pengolahan Citra Digital. Yogyakarta: Penerbit ANDI. Salomon, D. 2007. Variable-length Codes for Data Compression. London:

Springer.

Sayood, K. 2006. Introduction To Data Compression 3rd Ed. San Fransisco : Morgan Kaufmann.

Solihin, M. 2013. Perancangan Sistem Pengamanan dan Kompresi Data Teks dengan Fibonacci Encoding dan Algoritma Shannon-Fano serta Algoritma Deflate.

Skripsi.Universitas Sumatera Utara.

Utami, N. L. 2013. Analisis Kombinasi Algoritma KNAPSACK dan RLE pada File Teks. Skripsi. Universitas Sumatera Utara.

Widhiartha, Putu. 2003-2008. Pengantar Kompresi Data. IlmuKomputer.com. Halaman 2.

Widodo,P.P & Herlawati. 2011. Menggunakan UML. Penerbit INFORMATIKA. Bandung.

Zarlis, M. & Handrizal.2008. Algoritma & Pemrograman : Teori dan Praktik dalam Pascal. USU Press. Medan.

Bagherzandi, A. & Oktay, K.Y. Enhancing Wikipedia Search Performance Using

Elias Gamma Code. (Online)

http://www.ics.uci.edu/~djp3/classes/2010_01_CS221/FinalProjects/gamma.p

df (20 Januari 2014).

Firdaus, M. & Buliali, J. L. 2010. Penentuan Kombinasi Teknik Kompresi untuk Mendukung Penyimpanan Data Akademik pada Smartcard. (Online) http://digilib.its.ac.id/public/ITS-Undergraduate-9829-Paper.pdf (20 Januari

(21)

Sukiman & Chandra, Tintin. 2013. Aplikasi Kompresi File dengan Algoritma Elias Gamma. dosen.publikasistmikibbi.lppm.org/permalink/000093.pdf. (Online). (11 Maret 2014).

Wiryadinata, R. 2007. Data Compression Coding Using Static and Dinamic

(22)

BAB 3

ANALISIS DAN PERANCANGAN

3.1 Analisis Sistem

Menurut Jogiyanto (2005) “analisa sistem dapat didefenisiskan sebagai penguraian dari suatu sistem informasi yang utuh ke dalam bagian-bagian komponennya dengan maksud untuk mengidentifikasi dan mengevaluasi permasalahan-permasalahan, kesempatan-kesempatan, hambatan-hambatan yang terjadi dan kebutuhan-kebutuhan yang diharapkan sehingga dapat diusulkan perbaikan-perbaikannya.”

3.1.1. Analisis Masalah

Algoritma kompresi file yang telah berkembang sekarang sangat membantu pengguna data dalam memaksimalkan penggunaan kapasitas penyimpanan. Selain itu juga dapat mempercepat dalam pengiriman data sehingga komunikasi berjalan dengan lancar. Tetapi tidak semua algoritma kompresi yang digunakan dapat memampatkan data dengan maksimal. Hal ini disebabkan karena kompresi memiliki parameter yang harus dipenuhi.

Perbandingan algoritma ini bertujuan untuk mendapatkan algoritma kompresi yang lebih baik diantara algoritma Elias Gamma Code dan Shannon-Fano yang akan digunakan untuk memampatkan ukuran file. Kompresi data menggunakan algoritma Elias Gamma Code dengan Shannon-Fano dipengaruhi oleh jumlah karakter yang ada dalam file yang akan dimampatkan.

Diagram Ishikawa adalah diagram yang menunjukkan penyebab-penyebab

(23)

mencegah efek serta mengembangkan kualitas produk. Analisa masalah lebih jelas melalui diagram Ishikawa (fishbone diagram) yang dapat dilihat pada Gambar 3.1.

Gambar 3.1 Diagram Ishikawa Analisis Masalah 3.1.2. Analisis Persyaratan

Analisis persyaratan adalah proses analisis hal-hal yang harus dipenuhi dalam suatu sistem sesuai dengan kebutuhan pengguna. Dalam hal ini analisis persyaratan terbagi atas dua, yaitu analisis fungsional dan analisis nonfungsional.

3.1.2.1. Analisis Fungsional

Analisis fungsional membahas mengenai aktifitas dan layanan apa saja yang dapat dilakukan oleh sistem. Berikut adalah aktifitas yang dapat dilakukan oleh sistem : 1. File yang dikompresi adalah file teks yang berformat .txt.

2. Algoritma kompresi yang digunakan adalah algoritma Elias Gamma Code dengan Shannon-Fano.

3. Metode yang digunakan untuk algoritma Shannon-Fano adalah belah tabel. 4. Karakter yang digunakan berdasarkan tabel ASCII 256.

(24)

3.1.2.2. Analisis Nonfungsional

Analisis nonfungsional dilakukan untuk dapat mendeskripsikan fitur, karakteristik dan batasan lainnya yang menentukan kepuasan pengguna terhadap sistem.

1. Performa

Sistem yang dibangun harus dapat membaca file .txt dan dapat melakukan proses kompresi dan dekompresi. Proses ini didukung dengan menggunakan dua algoritma kompresi, yaitu algoritma Elias Gamma Code dan Shannon-Fano. 2. Mudah dipelajari dan digunakan

Sistem yang akan dibangun harus memiliki tampilan yang user friendly dan juga memiliki respon yang baik dalam proses penggunaannya.

3. Hemat biaya

Sistem yang dibangun hanya menggunakan software yang terinstall didalam komputer masing-masing pengguna, tanpa ada perangkat tambahan.

4. Dokumentasi

Sistem yang dibangun dapat menyimpan hasil kompresi yang berekstensi file .txt dan hasil dekompresi yang berekstensi file .doc.

5. Manajemen kualitas

Sistem yang dibangun akan memiliki kualitas yang baik. 6. Kontrol

Sistem yang akan dibangun akan menampilkan pemberitahuan jika proses dalam sistem telah selesai dilakukan. Tidak semua tombol diaktifkan sehingga error tidak akan terjadi.

3.1.3. Analisis Proses

Tujuan dari tahap analisis proses adalah mengetahui tahapan dan cara kerja dari sistem yang digunakan secara spesifik. Analisis proses dilakukan pada tahapan pemodelan sistem. Hal ini dilakukan guna mengetahui apa saja yang harus dilakukan oleh sistem sehingga dengan mudah melakukan pemrograman pada sistem yang akan dibangun.

(25)

berikut nama file, ukuran file, ukuran file kompresi, rasio kompresi, waktu kompresi, redundancy data, dan waktu dekompresi. Dari hasil berikut akan diambil empat nilai

dari masing-masing algoritma yang digunakan berdasarkan parameter yang telah ditentukan yaitu rasio kompresi, waktu kompresi, redundancy data dan waktu dekompresi. Hasilnya akan dibandingkan secara manual dan dibuat dalam grafik.

Dalam penelitian ini analisis prosesnya menggunakan teknik pemodelan UML (Unified Modeling Language) yang berarti bahasa pemodelan standard. Dalam

penggunaan UML ada aturan-aturan yang harus dipenuhi. UML bukan hanya sekedar diagram tetapi juga menceritakan konteksnya. UML dapat digunakan dalam merancang perangkat lunak, sarana komunikasi antara perangkat lunak dengan proses bisnis, menjabarkan sistem secara rinci untuk analisa apa yang diperlukan sistem, dan mendokumentasikan sistem yang ada, proses-proses serta organisasinya. Model UML yang digunakan antara lain use case diagram, activity diagram, dan sequence diagram.

3.1.3.1 Use Case Diagram

Use case dapat diartikan sebagai urutan langkah-langkah yang secara tindakan saling

terkait (skenario), baik terotomisasi maupun secara manual, untuk tujuan melengkapi satu tugas bisnis tunggal. Use case sangat menentukan karakteristik sistem yang dibuat.

(26)

Gambar 3.2 Use Case Diagram

3.1.3.2 Activity Diagram

Activity Diagram lebih memfokuskan diri pada eksekusi dan alur sistem dari pada

(27)

Gambar 3.2 Activity Diagram Sistem

3.1.3.3 Sequence Diagram

Sequence diagram memiliki tiga komponen yang harus dipenuhi untuk memodelkan

(28)

Tetapi dalam hal ini yang paling banyak digunakan adalah diagram waktunya. Untuk sequence diagram agar lebih jelas dapat dilihat pada Gambar 3.3.

Gambar 3.3 Sequence Diagram Sistem

3.1.4. Pseudocode

Pseudocode merupakan kode yang mirip dengan instruksi kode program yang sebenarnya. Pseudocode digunakan untuk menggambarkan algoritma yang akan dikomunikasikan kepada programmer. Hal ini bertujuan untuk mempermudah programmer dalam menyelesaikan program yang dibuat.

3.1.4.1 Pseudocode pembacaan karakter dan frekuensi

Pada algoritma Elias Gamma Code dan Shannon-Fano tahap pertama yang harus dilakukan adalah membaca karakter dan menjadikannya sebagai string. Kemudian dikelompokkan berdasarkan kerakternya. Berikut adalah pseudocodenya :

char ← list(set(st)) freq ← [] for i in char:

(29)

return char, freq

3.1.4.2 Pseudocode mengurutkan karakter berdasarkan frekuensi (descending)

Setelah dikelompokkan masing-masing karakter diurutkan berdasarkan frekuensi kemunculannya. Berikut pseudocodenya :

Untuk pemberian kode kompresi shannon-fano digunakan konsep belah table dimana pembelahan tabel dilakukan dengan membandingkan jumlah frekuensi yang terdekat. Jika karakter berada diatas garis pembagian maka akan mendapatkan simbol 0 dan jika berada dibawah garis maka akan mendapatkan simbol 1. Proses ini dilakukan secara rekursif hingga karakter mendapatkan simbol yang berbeda.

(30)

C[i] ← str(C[i]) + '0'

split(S1, F1, C1, charset, sf) split(S2, F2, C2, charset, sf)

3.1.4.4 Pseudocode kompresi Elias Gamma Code

Kode elias gamma didapatkan dari jumlah angka 0 yang diletakkan didepan yang didapat dari nilai tertinggi m dari 2m. Kemudian diikuti dengan angka biner dari nilai n. Berikut pseudocodenya:

3.1.4.6 Pseudocode Perhitungan nilai parameter

char, freq count_freq(st)

(31)

for i in range(len(c)): sb string2sb(st, c, s)

uncompressed_bits len(st) * 8 compressed_bits len(sb)

CR (uncompressed_bits * 1.0) / compressed_bits SS (1.0 - 1.0/CR) * 100

3.1.5. Flowchart Sistem

Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta pernyataannya. Gambaran ini dinyatakan dengan simbol. Dengan menggambarkan flowchart akan memudahkan kita untuk melakukan pengecekan bagian-bagian yang terlupakan dalam analisis masalah. Disamping itu kegunaannya sebagai fasilitas komunikasi antara pemrogram yang bekerja dalam tim suatu proyek (Zarlis & Handrizal, 2008).

(32)
(33)

3.2 Perancangan Sistem

Sistem ini dibangun menggunakan bahasa pemrograman C# dan Python. Pembuatan rancangan sistemnya disesuaikan dengan kebutuhan yang mendukung tahapan kompresi dan dekompresi data, dimana algoritma yang digunakan adalah Elias Gamma Code dan Shannon-Fano. Sistem yang telah dirancang terdiri dari 6 form yaitu form Kompresi-Home, form Kompresi-Elias , form Kompresi-Shannon, form Kompresi-Help, form Kompresi-About dan form exit.

3.2.1. Kompresi-Home

Pada form Kompresi-Home dirancang menjadi form utama dalam bentuk Multiple Document Interface (MDI) sehingga semua form yang dibuka berada didalam form

ini. Dalam form ini berisi mengenai keterangan judul, nama pembuat sistem dan jurusan.

Tampilan form Kompresi-Home ditunjukkan pada Gambar 3.5

Gambar 3.5 Perancangan Form Kompr esi-Home

Algoritma Kompresi – [Home]

Beranda Algoritma Bantuan Tentang Keluar

X

PERBANDINGAN ALGORITMA ELIAS GAMMA CODE DENGAN SHANNON-FANO PADA KOMPRESI FILE TEKS

NURHENNIDA BR SITEPU 101401097

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

(34)

3.2.2. Kompresi-Elias

Form ini akan ditampilkan setelah user memilih menu Algoritma terlebih dahulu

kemudian memilih sub menu Elias Gamma Code. Pada form ini user dapat memulai mengkompresi dan mendekompresi file.

Tampilan form Kompresi-Elias ditunjukkan pada Gambar 3.6.

Gambar 3.6 Perancangan Form Kompr esi – Elias

Adapun komponen yang ada didalam form ini berdasarkan Gambar 3.6 adalah sebagai berikut :

1. Button (Cari file) digunakan untuk mengambil data .txt . 2. TextBox digunakan untuk menampilkan nama file. 3. TextBox digunakan untuk menampilkan ukuran file. 4. Button (Baca File) digunakan untuk membaca isi file .txt. 5. TextBox digunakan untuk menampilkan isi file .txt.

6. Button (Kompresi) digunakan untuk menampilkan kode kompresi, ukuran file kompresi, Rasio kompresi, waktu kompresi dan Redudancy data

(35)

10.TextBox digunakan untuk menampilkan waktu kompresi. 11.TextBox digunakan untuk menampilkan Redudancy data.

12.Button (Dekompresi) digunakan untuk menampilkan hasil dekompresi dan waktu dekompresi.

13.TextBox digunakan untuk menampilkan hasil dekompresi. 14.TextBox digunakan untuk menampilkan waktu dekompresi.

15.Button (Kosongkan) digunakan untuk mengosongkan seluruh textbox dan menjadikan tampilan seperti form semula.

3.2.3. Kompresi-Shannon

Form ini akan ditampilkan setelah user memilih menu Algoritma terlebih dahulu

kemudian memilih sub menu Shannon Fano. Pada form ini user dapat memulai mengkompresi dan mendekompresi file.

Tampilan form Kompresi-Shannon ditunjukkan pada Gambar 3.7

Gambar 3.7 Perancangan Form Kompr esi – Shannon

Adapun komponen yang ada didalam form ini berdasarkan Gambar 3.7 adalah sebagai berikut :

(36)

2. TextBox digunakan untuk menampilkan nama file. 3. TextBox digunakan untuk menampilkan ukuran file. 4. Button (Baca File) digunakan untuk membaca isi file .txt. 5. TextBox digunakan untuk menampilkan isi file .txt.

6. Button (Kompresi) digunakan untuk menampilkan kode kompresi, ukuran file kompresi, Rasio kompresi, waktu kompresi dan Redudancy data

7. TextBox digunakan untuk menampilkan kode hasil kompresi. 8. TextBox digunakan untuk menampilkan ukuran file kompresi. 9. TextBox digunakan untuk menampilkan Rasio kompresi. 10.TextBox digunakan untuk menampilkan waktu kompresi. 11.TextBox digunakan untuk menampilkan Redudancy data.

12.Button (Dekompresi) digunakan untuk menampilkan hasil dekompresi dan waktu dekompresi.

13.TextBox digunakan untuk menampilkan hasil dekompresi. 14.TextBox digunakan untuk menampilkan waktu dekompresi.

15.Button (Kosongkan) digunakan untuk mengosongkan seluruh textbox dan menjadikan tampilan seperti form semula.

3.2.4. Kompresi-Help

Form ini berisi tentang bantuan sistem yang jika user kebingungan menggunakan sistem, dapat membaca bantuan sehingga dengan mudah dapat memahami penggunaan sistem ini.

(37)

Gambar 3.8 Perancangan Form Kompr esi – Shannon

3.2.5. Kompresi-About

Form ini berisi tentang informasi sistem dan data pembuat sistem. Dapat dilihat pada

tampilan form pada Gambar 3.9.

(38)

3.2.6. Kompresi-Exit

Form Exit tidak ada yang ditampilkan karena berfungsi untuk menutup semua form

(39)

BAB 4

IMPLEMENTASI DAN PENGUJ IAN SISTEM

4.1 Implementasi Sistem

Implementasi sistem adalah tahap lanjutan dari tahap perancangan. Sistem yang dibangun menggunakan bahasa C# dan Python. Terdiri dari 6 form yaitu form Kompresi-Home, form Kompresi-Elias , form Kompresi-Shannon, form Kompresi-Help, form Kompresi-About dan form exit.

4.1.1. Form kompresi-home

Pada saat sistem dijalankan maka akan tampil form kompresi-Home yang menampilkan keterangan judul sistem yang dibuat. Sistem ini menggunakan menustrip dimana setiap form akan memiliki tampilan atas yang sama dan akan saling

(40)

Gambar 4.1. Tampilan Form Kompr esi-Home (Beranda)

4.1.2. Form kompresi-elias

Form Kompresi-Elias akan muncul jika pengguna memilih menu algoritma kemudian

memilih submenu Elias Gamma Code. Form ini berguna untuk mengaplikasikan algoritma Elias Gamma Code. Pada form ini terdapat beberapa tombol antara lain adalah cari file, baca file, kompresi, dekompresi dan kosongkan.

(41)

Gambar 4.2. Tampilan Form Kompr esi-Elias (submenu Elias Gamma Code)

4.1.3. Form kompresi-shannon

Form kompresi-shannon isinya sama persis dengan form kompresi-Elias, hanya saja

(42)

Gambar 4.3. Tampilan Form Kompr esi-Shannon (submenu Shannon-Fano)

4.1.4. Form kompresi-help

Form Kompresi-Help akan tampil jika pengguna memilih menu bantuan, isi dari form

ini sendiri adalah mengenai cara kerja sistem. Jika pengguna kebingungan menggunakan aplikasi ini, cukup hanya membaca petunjuk yang ada di form ini.

(43)

Gambar 4.4. Tampilan Form Kompr esi-Help (Bantuan)

4.1.5. Form kompresi-about

Form Kompresi-About akan muncul jika pengguna memilih menu tentang, hal yang

ditampilkan pada form ini adalah mengenai judul sistem dan dinformasi tentang programmer.

(44)

Gambar 4.5. Tampilan Form Kompr esi-About (Tentang) 4.1.6. Form exit

Form ini tidak ditampilkan karena berfungsi untuk menutup seluruh aplikasi yang

telah dibuka sebelumnya. Form ini akan bekerja jika memilih menu keluar.

4.2 Pengujian Sistem

Pengujian sistem perbandingan algoritma elias gamma code dengan shannon-fano untuk kompresi file teks dilakukan untuk mengetahui algoritma mana yang lebih baik digunakan untuk mengurangi ukuran file teks berekstensi .txt. Pengujian akan membahas ukuran file, waktu kompresi, rasio kompresi, redudancy data dan waktu dekompresi untuk masing-masing algoritma yaitu Elias Gamma Code dan algoritma Shannon-Fano pada form yang berbeda.

4.2.1. Pengujian algoritma elias gamma code

(45)

jika ditekan tombol baca file, maka isi file .txt akan ditampilkan ke lembar kerja sistem untuk diolah. Kemudian pada form ini jika file berhasil dibaca maka akan ditampilkan messagebox yang berisi pernyataan file berhasil dibaca.

Agar lebih jelas dapat dilihat pada Gambar 4.6.

Gambar 4.6. Tampilan Isi File .txt Berhasil dibaca

Sistem ini telah diatur untuk penggunaan tombolnya jika suatu tombol belum menyelesaikan tugasnya maka tombol yang lain tidak diaktifkan. Setelah file .txt berhasil dibaca dan ditampilkan maka hal yang akan dilakukan adalah melakukan kompresi menggunakan algoritma Elias Gamma Code.

Hasil kompresi akan ditampilkan pada textbox yang ada dibawah tombol kompresi yang berupa kode biner. Sistem telah menyimpan kode hasil kompresi dalam bentuk file berekstensi .txt tetapi tidak menampilkan dan tidak membuat pemberitahuan dalam bentuk messagebox.

(46)

Gambar 4.7. Tampilan Setelah Memilih Tombol Kompr esi

Pada sistem ini, selain kompresi juga membahas mengenai dekompresi sehingga kode yang telah dibentuk dapat dikembalikan ke bentuk semula sehingga pengguna masih bisa membaca file yang telah dikompresi.

(47)

Gambar 4.8. Tampilan Setelah Memilih Tombol Dekompresi

Setelah memasukkan nama file yang diinginkan dan menekan tombol save maka akan muncul messagebox yang menyatakan penyimpanan berhasil dapat dilihat pada Gambar 4.9.

(48)

Setelah ditekan tombol OK maka akan mengaktifkan tombol kosongkan yang berfungsi untuk mengosongkan semua textbox yang telah terisi data file yang telah diolah. Seperti pada gambar 4.10. dimana tombol kosongkan diaktifkan dan pada Gambar 4.11 saat tombol kosongkan ditekan.

Gambar 4.10. Tampilan Tombol Kosongkan Aktif

(49)

4.2.2. Pengujian algoritma shannon-fano

Tampilan untuk algoritma Shannon-Fano dan Elias Gamma Code sama persis tetapi berada di form yang berbeda. Hal yang membedakan adalah kode yang dihasilkan karena algoritma yang digunakan juga berbeda.

4.2.3. Isi file pengujian

Isi file pengujian disajikan agar lebih memudahkan dalam menganalisis data, berikut ini pada Tabel 4.1 adalah isi file yang akan diuji untuk 100 karakter yang dimulai dari variasi 1 karakter hingga variasi 26 karakter. Pada Tabel 4.2 isi file pengujian yang dibuat adalah perulangan karakter dimana jumlah ada 36 karakter dan diulang hingga lima kali perulangan dengan variasi 36 karakter.

Tabel 4.1. Isi File .txt 100 Karakter dengan Penambahan 1 Variasi Karakter ddddddddddddddddddeeeeeeeeeeeeeeeeeef ff f ff f f ff 6

7.t xt 100 aaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbccccccccccccccccddddd dddddddddddeeeeeeeeeeeeeeeeff f ff f ff gggggggggggg 7

8.t xt 100 aaaaaaaaaaaaaabbbbbbbbbbbbbbbccccccccccccccddddddddd ddddddeeeeeeeeeeeeeef ff f f ff ggggggggggghhhhhhhhhh 8

9.t xt 100 aaaaaaaaaaaabbbbbbbbbbbbbccccccccccccdddddddddddddde eeeeeeeeeeeef ff f f ff gggggggggghhhhhhhhhiiiiiiiiii 9

10.t xt 100 aaaaaaaaaabbbbbbbbbbbbccccccccccdddddddddddddeeeeee eeeeeff f ff f gggggggggghhhhhhhiiiiiiiiiijjjjj jjjj jj 10

(50)

11.t xt 100 aaaaaaaaabbbbbbbbbbbcccccccccddddddddddddeeeeeeeeee f ff f f ggggggggghhhhhhiiiiiiiiijjjjj jjjj jkkkkkkkkkk 11

12.t xt 100 aaaaaaaabbbbbbbbbbccccccccdddddddddddeeeeeeeeeff f fgg ggggggghhhhhhiiiiiiiijjjj jjjj jkkkkkkkkkkllllllll 12

13.t xt 100 aaaaaaaabbbbbbbbbbccccccdddddddddddeeeeeeeeef f ff gggg ggghhhhhhiiiiiiiijjj jjjj jjkkkkkkkklllllllmm mmmm m 13

14.t xt 100 aaaaaaaabbbbbbbbccccccdddddddddeeeeeeeeef f ff gggggggh hhhhhiiiiiiiijj jjjj jjkkkkkkkkllllllmmmm mmmnnnnnn 14

15.t xt 100 aaaaaaaabbbbbbbbccccccdddddddddeeeeeeeeef f ff gggggggh hhhhhiiiiiiiijj jjjj jjkkkkkkkllllllmm mmmmnnnnnooo 15

16.t xt 100 aaaabbbbbbbcccccddddddddeeeeeeeef ff ggggggghhhhhiiiiiiij jjjj jjjkkkkkkkllllllmmmmmmnnnnnoooooppppppppp 16

17.t xt 100 aaaabbbbbbbccccddddddddeeeeeeeef f fggggggghhhhhiiiiiiijjj jjjj jkkkkkkkllllllm mmmnnnnnooooppppppppqqqqq 17

18.t xt 100 aaaabbbbbbbccccddddddddeeeeeef f fggggghhhhhiiiiijjjjj jjjkk

kkkkkllllllm mmmnnnnnooooppppppppqqqqqrrrrrr 18

19.t xt 100 aaaabbbbbbccccddddddeeeeeef ff ggggghhhhhiiiiijjj jjjj jkkkkkk kllllllmm mnnnnnooooppppppqqqqqrrrrrrssssss 19

20.t xt 100 aaaabbbbbbccccddddeeeeeef ff ggggghhhhhiiiiijjj jjjj jkkkkkkkll llllmm mnnnnnooooppppppqqqrrrrrrsssssstt t t 20

21.t xt 100 aaaabbbbbbccccddddeeeeeef ff gghhhhhiiiiijjjj jjjj kkkkkkkllllll

mm mnnnooooppppppqqqrrrrrrsssssstt t t t uuuu 21

22.t xt 100 aaaabbbbbbbccccddddeeeeeef f fgghhhiiiiijj jjjj jkkkkkllllllm m

mnnnooooppppppqqqrrrrrssssst t t t t uuuuvvvvvv 22

23.t xt 100 aaabbbbbbcccddddeeeeff f gghhhiiiiijjjj jjjkkkkkllllllmmmnnno oooppppppqqqrrrrrssssstt t t uuuuvvvvvvw w w w w w 23

24.t xt 100 aaabbbbbbcccddddeeeeff f gghhhiiiiijjjj jkkkkllllllmmmnnnooo oppppppqqqrrrrrssssstt t t uuuuvvvvvvw w w w w w xxx 24

25.t xt 100 aaabbbbcccddddeeeeff f gghhiiiiijj jjjkkkklllllm mmnnnoooopp

ppqqqrrrrrssssst t t t uuuuvvvvvvw w w w w w xxxyyyyyy 25

26.t xt 100 aaabbbbcccddddeeeeff f gghhiiiiijj jjjkkkklllllm mmnnnoooopp

ppqqqrrrrrssssst t t t uuuuvvvvvvw w w w xxxyyyyzzzz 26

(51)

Tabel 4.2. Isi File .txt 36 Variasi Karakter Kelipatan 36 Karakter

4.2.4. Hasil pengujian elias gamma code

Setelah aplikasi selesai, pada tabel 4.1 dapat dilihat isi file yang akan diuji untuk masing-masing algoritma Elias Gamma Code dan Shannon-Fano. Hasil pengujian dapat dilihat pada Tabel 4.3. Untuk hasil pengujian tabel 4.2 dapat dilihat pada Tabel 4.4.

36.txt 36 sAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqR 36

36_2.txt 72 sAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqR sAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqR

36

36_3.txt 108 sAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqR

sAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqR sAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqR

36

36_4.txt 144

sAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqR sAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqR sAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqR sAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqR

36

36_5.txt 180

sAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqR sAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqR sAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqR sAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqR sAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqR

36

(52)

Tabel 4.3. Hasil Pengujian Penambahan Var iasi Karakter

Tabel 4.4. Hasil Pengujian Perulangan Karakter

NF UA

NF UA (Bytes) UK (Bytes) R WK(detik) RD (%) WD (detik)

1.txt 100 14 7.14 0.010 86 0.010

2.txt 100 26 3.85 0.010 74 0.020

3.txt 100 30 3.33 0.018 70 0.020

4.txt 100 36 2.78 0.019 64 0.020

5.txt 100 44 2.27 0.030 56 0.031

6.txt 100 46 2.17 0.030 54 0.031

7.txt 100 48 2.08 0.030 52 0.030

8.txt 100 51 1.96 0.030 49 0.030

9.txt 100 54 1.85 0.041 46 0.030

10.txt 100 57 1.75 0.040 43 0.030

11.txt 100 60 1.67 0.038 40 0.031

12.txt 100 62 1.61 0.040 38 0.031

13.txt 100 63 1.59 0.040 37 0.033

14.txt 100 66 1.51 0.041 34 0.033

15.txt 100 66 1.51 0.041 34 0.035

16.txt 100 68 1.47 0.046 32 0.036

17.txt 100 69 1.45 0.046 31 0.037

18.txt 100 71 1.41 0.046 29 0.037

19.txt 100 74 1.35 0.062 26 0.040

20.txt 100 75 1.33 0.078 25 0.046

21.txt 100 75 1.33 0.078 25 0.047

22.txt 100 77 1.29 0.079 23 0.050

23.txt 100 78 1.28 0.080 22 0.052

24.txt 100 79 1.26 0.081 21 0.052

25.txt 100 81 1.23 0.080 19 0.052

(53)

Dengan menggunakan file yang sama yang dapat dilihat pada tabel 4.1 adalah hasil pengujian sistem menggunakan algoritma Shannon-Fano yang disajikan pada Tabel 4.5 dan pada untuk file uji Tabel 4.2 disajikan pada Tabel 4.6

Tabel 4.5. Hasil Pengujian Penambahan Var iasi Karakter

Tabel 4.6. Hasil Pengujian Perulangan Karakter

NF UA (Bytes) UK (Bytes) R WK(detik) RD (%) WD (detik)

1.txt 100 14 7.14 0.019 86 0.011

2.txt 100 14 7.14 0.019 86 0.015

3.txt 100 22 4.54 0.020 78 0.017

4.txt 100 26 3.85 0.025 74 0.018

5.txt 100 31 3.22 0.026 69 0.019

6.txt 100 34 2.94 0.027 66 0.021

7.txt 100 37 2.70 0.034 63 0.024

8.txt 100 39 2.55 0.036 61 0.025

9.txt 100 41 2.44 0.037 59 0.026

10.txt 100 43 2.32 0.038 57 0.028

11.txt 100 45 2.22 0.042 55 0.030

12.txt 100 46 2.17 0.046 54 0.031

13.txt 100 48 2.08 0.046 52 0.031

14.txt 100 49 2.04 0.054 51 0.033

15.txt 100 50 2 0.054 50 0.033

16.txt 100 51 1.96 0.057 49 0.033

17.txt 100 52 1.92 0.056 48 0.033

18.txt 100 54 1.85 0.056 46 0.034

19.txt 100 54 1.85 0.057 46 0.034

20.txt 100 55 1.81 0.061 45 0.035

21.txt 100 56 1.78 0.064 44 0.039

22.txt 100 57 1.75 0.066 43 0.040

23.txt 100 58 1.72 0.067 42 0.041

24.txt 100 59 1.69 0.066 41 0.041

25.txt 100 59 1.69 0.066 41 0.043

(54)

Keterangan Gambar :

NF : Nama File

UA : Ukuran Asli

UK : Ukuran Kompresi

R : Rasio

WK : Waktu Kompresi

RD : Redundancy Data

WD : Waktu Dekompresi

4.2.6. Grafik pengujian elias gamma code

Setelah melakukan pengujian agar lebih memudahkan untuk melihat hasilnya maka penulis membuat dalam bentuk grafik. Berikut pada Gambar 4.12 hingga Gambar 4.15 adalah gambar grafik yang dihasilkan dari data hasil pengujian Tabel 4.2. Grafik ini secara berurut adalah grafik berdasarkan empat parameter yaitu Rasio, waktu kompresi, redundancy data dan waktu dekompresi terhadap jumlah variasi karakter yang digunakan.

Gambar 4.12. Grafik Variasi Karakter dengan Rasio

NF UA (Bytes) UK (Bytes) R WK(detik) RD (%) WD (detik)

36.txt 36 25 1.44 0.025 1.44 0.018

36_2.txt 72 48 1,5 0.051 33.33 0.034

36_3.txt 108 72 1.5 0.058 33.33 0.038

36_4.txt 144 95 1.52 0.076 34.03 0.051

(55)

Dari Gambar 4.12 terlihat grafik mengalamai penurunan, dimana file yang memiliki jumlah variasi yang semakin banyak memiliki nilai rasio yang semakin kecil.

Gambar 4.13. Grafik Variasi Karakter dengan Waktu Kompr esi

(56)

Gambar 4.14. Grafik Variasi Karakter dengan Redundancy Data

Redundancy data hasil grafiknya pada Gambar 4.14 adalah semakin banyak

jumlah karakter yang digunakan dalam satu file maka semakin rendahlah nilai redundancy yang dimiliki file tersebut.

(57)

Grafik yang dihasilkan dari Gambar 4.15 menunjukkan kenaikan waktu yang dibutuhkan untuk dekompresi file sebanding dengan jumlah variasi karakter yang dikompresi.

4.2.7. Grafik pengujian shannon-fano

Setelah melakukan pengujian agar lebih memudahkan untuk melihat hasilnya maka penulis membuat dalam bentuk grafik. Berikut pada Gambar 4.16 hingga Gambar 4.19 adalah gambar grafik pengujian algoritma Shannon-Fano berdasarkan data uji pada Tabel 4.3. Grafik ini secara berurut adalah grafik berdasarkan empat parameter yaitu Rasio, waktu kompresi, redundancy data dan waktu dekompresi terhadap jumlah variasi karakter yang digunakan.

Gambar 4.16. Grafik Variasi Karakter dengan Rasio

(58)

Gambar 4.17. Grafik Variasi Karakter dengan Waktu Kompr esi

Waktu yang dibutuhkan untuk menkompresi file semakin tinggi untuk karakter yang semakin bervariasi. Hasil analisa ini dapat dilihat pada Gambar 4.17.

Gambar 4.18. Grafik Variasi Karakter dengan Redundancy Data

(59)

Gambar 4.19. Grafik Variasi Karakter dengan Waktu Dekompr esi

Dari grafik pada Gambar 4.19 waktu dekompresi mengalami penambahan waktu untuk jumlah variasi karakter yang bertambah.

4.2.8. Grafik gabungan pengujian elias gamma code dan shannon-fano

Gambar 4.20. Grafik J umlah Karakter dengan Rasio

(60)

Gambar 4.21. Grafik J umlah Karakter dengan Redundancy Data

Dari grafik pada gambar 4.21, nilai redundancy Elias Gamma Code lebih rendah dibandingkan dengan nilai redundancy algoritma Shannon-Fano meskipun berawal dari titik yang sama. Variasi karakter sangat mempengaruhi nilai redundancy untuk masing-masing algoritma.

(61)

Grafik pada Gambar 4.22 tidak dapat disimpulkan algoritma mana yang lebih baik karena perpotongannya yang masih berantakan. Oleh karena itu penulis mengambil nilai rata-rata waktu kompresi berdasarkan Tabel 4.2 untuk waktu kompresi Elias Gamma Code dan Tabel 4.3 untuk waktu kompresi Shannon-Fano. Nilai rata-rata Elias Gamma Code adalah 0,046731 detik dan Shannon-Fano adalah 0,04665 detik. Dari nilai rata-rata waktu kompresi yang dibutuhkan algoritma Elias Gamma Code lebih membutuhkan waktu yang banyak dibandingkan algoritma Shannon-Fano.

Gambar 4.23. Grafik J umlah Karakter dengan Waktu Dekompr esi

(62)

4.2.9. Grafik gabungan pengujian karakter yang berulang elias gamma code dan

shannon-fano

Berdasarkan data pengujian pada Tabel 4.4 untuk algoritma Elias Gamma Code dan pada Tabel 4.6 untuk algoritma Shannon-Fano, berikut adalah grafik perbandingan yang dibuat berdasarkan kelipatan kemunculan karakter dengan variasi 36 karakter dengan masing-masing parameter yang digunakan yaitu secara berurutan yaitu rasio, waktu kompresi, redundancy data dan waktu dekompresi.

Hasil dari grafik pada Gambar 4.24 menunjukkan bahwa nilai rasio Elias Gamma Code lebih rendah dibandingkan dengan nilai rasio Shannon-Fano. Terlihat pada grafik nilai rasio untuk jumlah karakter 108, 144 dan 180 sama. Kemunculan karakter yang berulang mempengaruhi nilai rasio untuk masing-masing algoritma.

Hasil dari grafik pada Gambar 4.25 menunjukkan waktu kompresi algoritma Elias Gamma Code lebih tinggi dibandingkan dengan waktu kompresi Shannon-Fano.

Hasil dari grafik pada Gambar 4.26 menunjukkan hasil redudancy data pada algoritma elias gamma code hasil kompresi dengan 36 karakter yang berbeda hasilnya negatif. Kemudian mengalami penambahan nilai pada perulangan karakter yang kedua dan seterusnya sehingga hasilnya menjadi positif. Perulangan data mempengaruhi nilai redundancy sehingga nilainya menjadi lebih baik.

(63)

Gambar 4.24. Grafik J umlah Karakter dengan Rasio

(64)

Gambar 4.26. Grafik J umlah Karakter dengan Redundancy Data

(65)

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Setelah melakukan studi literatur, analisis, perancangan implementasi dan pengujian sistem untuk membandingkan algoritma kompresi Elias Gamma Code dan Shannon-Fano pada file teks .txt maka diperoleh kesimpulan sebagai berikut:

1. Algoritma kompresi dipengaruhi oleh jumlah kemunculan karakter dan variasi karakter.

2. Berdasarkan hasil pengujian menggunakan parameter rasio kompresi maka algoritma Shannon-Fano lebih baik daripada algoritma Elias Gamma Code. 3. Berdasarkan hasil pengujian menggunakan parameter redundancy data untuk

jumlah variasi karakter dan kemunculan karakter maka algoritma yang lebih baik adalah Elias Gamma Code.

4. Berdasarkan hasil pengujian menggunakan parameter waktu kompresi dan dekompresi waktu yang dibutuhkan algoritma Elias Gamma Code lebih tinggi dibandingkan algoritma Elias Gamma Code.

(66)

5.2 Sar an

Adapun saran untuk pengembangan dan perbaikan dari sistem ini adalah sebagai berikut :

1. Sistem ini dapat dikembangkan dengan menambahkan pilihan format file pada saat file ingin dikompresi bukan hanya file berformat .txt saja.

2. Sistem ini dapat dikembangkan dengan menambah ekstensi file untuk menyimpan file hasil kompresi.

(67)

BAB 2

LANDASAN TEORI

2.1 Kompr esi

2.1.1 Sejarah kompresi

Kompresi data merupakan cabang ilmu komputer yang bersumber dari Teori Informasi. Teori Informasi sendiri adalah salah satu cabang Matematika yang berkembang sekitar akhir dekade 1940-an. Tokoh utama dari teori informasi adalah Claude Shannon dari Bell Laboratory. Teori Informasi memfokuskan pada berbagai metode tentang informasi termasuk penyimpanan dan pemrosesan pesan. Teori informasi mempelajari pula tentang redundancy (informasi tak berguna) pada pesan. Semakin banyak redundancy semakin besar pula ukuran pesan, upaya mengurangi redundancy inilah yang akhirnya melahirkan subyek ilmu tentang kompresi data.

Teori Informasi menggunakan terminologi entropi sebagai pengukur berapa banyak informasi yang dapat diambil dari sebuah pesan. Kata “entropi” berasal dari ilmu termodinamika. Semakin tinggi entropi dari sebuah pesan semakin banyak informasi yang terdapat di dalamnya (Widhiartha, 2008).

2.1.2 Definisi kompresi

(68)

beberapa literatur, istilah kompresi sering disebut juga source coding, data compression, bandwidth compression, dan signal compression” (Putra, 2009).

Beberapa defenisi kompresi yaitu, kompresi adalah proses pengolahan sekumpulan data menjadi suatu bentuk untuk menghemat kebutuhan tempat penyimpanan data waktu untuk transmisi data (Utami, 2013). Sedangkan menurut Sukiman dan Chandra (2013) kompresi data atau juga dikenal sebagai pemadatan data adalah teknik yang dipakai untuk mengurangi data atau memperkecil data menjadi bentuk data lain dimana data tersebut diubah menjadi simbol yang lebih sederhana. Kompresi data dilakukan untuk mereduksi ukuran data atau file.

Dari beberapa defenisi diatas dapat disimpulkan bahwa kompresi dapat digunakan untuk meminimalisasi ukuran dari data yang akan disimpan sehingga menghemat ukuran penyimpanan. Data yang telah dikompresi akan mengalami penyusutan ukuran tanpa mempengaruhi informasi yang ada didalamnya.

Data dan informasi adalah dua hal yang berbeda. Pada data terkandung suatu informasi. Namun tidak semua bagian data terkait dengan informasi tersebut atau pada suatu data terdapat bagian-bagian data yang berulang untuk mewakili informasi yang sama. Bagian data yang tidak terkait atau bagian data yangg berulang tersebut disebut dengan data yang berlebihan (redundancy data) (Putra, 2009).

2.1.3 Tujuan kompresi

(69)

2.1.4 Metode Kompresi

Berdasarkan teknik pengkodean / pengubahan simbol yang digunakan, metode kompresi dapat dibagi kedalam tiga kategori, yaitu:

1. Metode Symbolwise : menghitung peluang kemunculan dari tiap simbol dalam file input, lalu mengkodekan satu simbol dalam satu waktu, dimana simbol yang lebih sering muncul diberi kode lebih pendek dibandingkan simbol yang lebih jarang muncul. Contoh algoritma Huffman.

2. Metode Dictionary : Menggantikan karakter/fragmen dalam file input dengan indeks lokasi dari karakter/fragmen tersebut dalam sebuah kamus (dictionary), contoh algoritma LZW.

3. Metode Predictive : Menggunakan model finite-context atau finite state untuk memprediksi distribusi probabilitas dari simbol-simbol selanjutnya, contoh : algoritma DMC (Utami, 2013).

2.2 Dekompresi

2.2.1. Pengertian dekompresi

Menurut Sukiman dan Chandra (2013), Proses dekompresi secara harfiah merupakan proses yang dilakukan bila data hasil kompresi ingin dikembalikan ke ukuran dan bentuknya semula.

(70)

2.2.2. Tujuan dekompresi

Tujuan dari dekompresi data yaitu mengembalikan data yang telah dikompresi ke bentuk semula, karena data yang telah dikompresi tidak dapat dibaca begitu saja tanpa dikembalikan kebentuk semula.

2.3 Rasio Kompr esi

2.3.1. Pengertian rasio kompresi

Menurut Sayood (2006), rasio kompresi adalah perbandingan antara jumlah bit yang diperlukan untuk merepresentasikan data sebelum dikompresi dengan jumlah bit yang diperlukan untuk merepresentasikan data setelah dikompresi.

“Compression rate atau laju kompresi adalah laju dari data yang dikompresi.

Secara tipikal, satuannya adalah bits/sample, bits/character, bits/pixel, atau bits/ second” (Sukiman & Chandra, 2013).

2.3.2. Rumus rasio kompresi

Rasio kompresi secara matematis dapat ditulis sebagai berikut :

Rasio Kompresi =

2.4 Data Berlebihan (Data Redundancy)

Menurut Kadir (2008), istilah duplikasi data seringkali juga disebut redudansi data. Duplikasi data yang berlebihan memberikan konsekuensi yang tidak bagus. Sedangkan menurut Putra (2009) data berlebihan adalah data yang tidak terkait ataupun data yang berulang.

Uncompress bit

(71)

Data berlebihan adalah suatu faktor penting yang harus diperhatikan dalam kompresi data. Karena semakin banyak data berlebihan yang terdapat pada data yang dikompresi maka semakin lambat proses kompresi yang terjadi.

Data berlebihan dapat dinyatakan secara matematis. Jika n1 adalah jumlah bit sebelum dikompresi dan n2 menyatakan jumlah bit setelah dikompresi, maka data berlebihan relatif (relative data redundancy) RD dapat dinyatakan sebagai berikut.

= 1 - x 100% ... (1) Dimana CR merupakan rasio kompresi (compression ratio) yang dinyatakan sebagai

berikut :

CR = ... (2)

Dari persamaan diatas dapat diambil beberapa kesimpulan sebagai berikut :

1. Bila n1 = n2 maka CR = 1 dan RD = 0, berarti bahwa data n1 tidak

mengandung data berlebihan.

2. Bila n2 << n1 maka CR mendekati tidak berhingga, sehingga RD mendekati 1,

berarti terjadi kandungan data berlebihan yang sangat tinggi.

3. Bila n2 >> n1 maka CR mendekati nol, sehingga RD mendekati minus tak

berhingga, berarti n2 mengandung informasi jauh lebih banyak dibandingkan n1 (Putra, 2009).

2.5 Teknik Kompr esi

(72)

2.5.1. Kompresi lossy (lossy compression)

Kompresi data yang bersifat lossy mengijinkan terjadinya kehilangan sebagian data tertentu dari pesan tersebut, sehingga dapat menghasilkan rasio kompresi yang tinggi (Putra, 2009). Sedangkan menurut Wiryadinata (2007) Lossy compression memiliki perubahan antara stream data masukan dan stream data keluaran, pada proses secara lossy ini banyak digunakan pada kompresi jenis citra dan audio.

Alasan mengapa kompresi lossy banyak digunakan pada kompresi jenis citra dan audio, karena hasil kompresi dengan data aslinya terlihat hampir sama meskipun dengan menggunakan kompresi lossy ada data yang hilang dari file aslinya. Ilustrasi kompresi lossy ditunjukkan pada gambar 2.1.

Gambar 2.1. Ilustrasi Kompr esi Lossy

2.5.2. Kompresi lossless (lossless compression)

Lossless compression tidak terjadi perubahan antara stream data masukan dan stream data keluaran, proses kompresi secara lossless ini merupakan salah satu klasifikasi yang sering ditemukan pada kompresi jenis text, executable file, dan beberapa data citra (.gif, .png, .bmp, .pcx dan lain-lain) (Wiryadinata, 2007).

Ada banyak algoritma yang digunakan pada kompresi lossless ini beberapa diantaranya adalah algoritma Huffman, Shannon-Fano, RLE, LZ77, LZW, LZSS, Elias Gamma Code dan lain sebagainya. Ilustrasi kompresi lossless dapat dilihat pada gambar 2.2.

Algoritma Kompresi

2.24 001010010001110

Algoritma Dekompresi

(73)

Algoritma Kompresi

ABBAAB 000110001101010

Algoritma Dekompresi

ABBAAB 000110001101010

Gambar 2.2 Ilustrasi Kompr esi Lossless

2.6 Algoritma Elias Gamma Code

Algoritma Elias Gamma Code adalah sistem pemampatan yang dikembangkan oleh Peter Elias yang digunakan untuk membuat kode dalam bentuk bilangan bulat positif (Bagherzandi & Oktay, 2014). Contoh bilangan bulat yang dimaksud adalah 2M ≤ n < 2 M+1. Algoritma kompresi ini telah lama ditemukan, cara kerja kompresi data yang digunakan dalam kompresi ini dibuat berdasarkan urutan dari posisi karakter yang akan dikompresi.

Pada kode Elias Gamma, suatu integer positif x direpresentasikan oleh 1 + dalam bentuk unary (sehingga 0 bit diikuti oleh 1-bit), diikuti oleh representasi bit dari x tanpa mengandung most significant bit. Sehingga 9 direpresentasikan sebagai 0001001, karena 1 + = 4, atau 0001 dalam unary, dan 9 adalah 001 dalam bentuk biner dengan most significant bit yang dihilangkan. Dengan cara ini, 1 direpresentasikan oleh 1, yang mewakili 1 bit.

Proses kompresi sendiri didasarkan pada bahwa isi file akan dibaca secara per byte (8 bit) sehingga menghasilkan nilai pembacaan antara 0 hingga 255. Dimana jika pembacaan mendapatkan nilai antara 1 – 7 maka akan diproses dengan menggunakan Elias Gamma dan bila tidak akan dipertahankan dalam dalam bentuk 8 bit. Pengkodean atas nilai antara 1–7 inilah yang menghasilkan efisiensi artinya

(74)

Jika kode dari sebuah karakter bernilai n maka diandaikan n = 2M + L, dimana

M adalah pangkat tertinggi yang menghasilkan angka terdekat dengan nilai n yang

dicari disimbolkan dengan β(n) dan L adalah sisa dari (n - 2M) disimbolkan dengan

α(n). Algoritma Elias Gamma Code dapat digunakan untuk pemampatan (kompresi)

juga dapat digunakan untuk penirmampatan (dekompresi).

2.6.1. Langkah-langkah kompresi algoritma elias gamma code

1. Tentukan nilai M untuk pangkat yang paling mendekati nilai n yang dituliskan

sebagai β(n). Nilai ini disebut sebagai unary code, dimana jumlah nilai M ditulis

menjadi angka 0 dan diakhiri dengan angka 1.

2. Dapatkan nilai L dengan mengurangi nilai n dengan nilai 2M, nilai yang didapat

diubah menjadi bilangan biner.

Contoh : n = 13

Nilai M yang tertinggi yang mendekati 13 adalah 3 karena 2M = 23 = 8, ubah menjadi

bilangan unary menjadi 0001.

Sehingga dihasilkan L = 13 – 8 = 5, ubah nilai L menjadi nilai biner menjadi 101.

Sehingga kode elias gamma dari 13 adalah 0001101. Agar lebih jelas berikut hasil

pengkodean elias gamma code dapat dilihat pada gambar 2.3.

Gambar 2.3. Daftar Elias Gamma Code (Salomon, 2007)

2.6.2. Langkah-langkah dekompresi algoritma elias gamma code

1. Baca angka 0 dalam daftar kode yang ada hingga ditemukan angka 1. Jadikan

(75)

2. Selanjutnya baca nilai setelah N dan jadikan sebagai bilangan bulat L. Hitung n =

2N + L.

Contoh : 0001101

Jumlah angka 0 didepan sebelum angka 1 adalah 3, sehingga N = 3. Angka 101 adalah

L dan diubah menjadi bilangan biner L = 5 Sehingga Nilai n = 23 + 5 = 13.

2.7 Algoritma Shannon-Fano

Algoritma Shannon-Fano coding ditemukan oleh Claude Shannon (bapak teori

informasi) dan Robert Fano pada tahun 1949. Pada saat itu metode ini merupakan

metode yang paling baik tetapi hampir tidak pernah digunakan dan dikembangkan lagi

setelah kemunculan algoritma Huffman. Pada dasarnya metode ini menggantikan

setiap simbol dengan sebuah alternatif kode biner yang panjangnya ditentukan

berdasarkan probabilitas dari simbol tersebut (Wiryadinata,2007).

Menurut Putra (2009) berdasarkan probabilitas tersebut kemudian dibentuk

daftar kode untuk setiap simbol dengan ketentuan sebagai berikut:

1. Setiap simbol berbeda memiliki kode berbeda.

2. Simbol dengan probabilitas kehadiran yang lebih rendah memiliki kode jumlah

bit yang lebih panjang dan simbol dengan probabilitas yang lebih tinggi memiliki

jumlah bit yang lebih pendek.

3. Meskipun memiliki panjang kode yang berbeda, simbol tetap dikodekan secara

unik.

2.7.1 Langkah-langkah kompresi algoritma shannon-fano

1. Buatlah daftar peluang atau frekuensi kehadiran setiap simbol dari data (pesan)

yang akan dikodekan.

2. Urutkanlah daftar tersebut menurut frekuensi kehadiran simbol secara menurun

(dari simbol frekuensi kemunculannya paling banyak sampai simbol dengan

(76)

3. Bagilah daftar tersebut menjadi dua bagian dengan pembagian didasari pada

jumlah total frekuensi suatu bagian (disebuat bagian atas) sedekat mungkin

dengan jumlah total frekuensi dengan bagian yang lain (disebut bagian bawah).

4. Daftar bagian atas dinyatakan dengan digit 0 dan bagian bawah dinyatakan

dengan digit 1. Hal tersebut berarti kode untuk simbol-simbol pada bagian atas

akan dimulai dengan 0 dan kode untuk simbol-simbol pada bagian bawah akan

dimulai dengan 1.

5. Lakukanlah proses secara rekursif langkah 3 dan 4 pada bagian atas dan bawah.

Bagilah menjadi kelompok-kelompok dan tambahkan bit-bit pada kode sampai

setiap simbol mempunyai kode yang bersesuaian pada pohon tersebut (Putra,

2009).

Berikut disajikan suatu contoh pengkodean Shannon-Fano. Pesan yang akan

dikodekan adalah :

KUKU KAKI KAKEK KAKU

Berikut adalah daftar frekuensi kemunculan simbol pada pesan, karena kemunculan

pesan telah terurut secara menurun maka tidak perlu diurutkan lagi.

Tabel 2.1 Fr ekuensi kemunculan simbol

Sim bol Fr ekuensi

K 9

U 3

Spasi 3

A 3

I 1

E 1

Tabel 2.1 dibagi menjadi dua bagian didasari pada total frekuensi terdekat yaitu 9

untuk frekuensi bagian atas dan 11 untuk frekuensi bagian bawah. Pembagian tabel

menghasilkan simbol K dibagian atas sehingga diberikan digit 0 dan simbol U, Spasi,

(77)

Tabel 2.2 Pembagian Pertama

Proses diatas dilakukan secara rekursif terhadap bagian bawah saja karena bagian atas

tidak dapat dibagi lagi. Sehingga pembagiannya dapat dilihat pada tabel 2.3.

Tabel 2.3 Pembagian rekur sif

Kar akter Fr ekuensi Digit

K 9 0

U 3 1 0 0

Spasi 3 1 0 1

A 3 1 1 0

I 1 1 1 1 0

E 1 1 1 1 1

Setelah langkah-langkah diatas dilakukan maka didapatkan kode dan panjang

Shannon-Fano seperti pada tabel 2.4.

Kar akter Fr ekuensi Digit

K 9 0

U 3 1

Spasi 3 1

A 3 1

I 1 1

E 1 1

Pembagian pertama

Pembagian pertama

Pembagian kedua Pembagian ketiga

Pembagian keempat

(78)

Tabel 2.4 Kode dan Panjang Kode Shannon-Fano

Kar akter Fr ekuensi Kode

Panjang Kode

Total bit

K 9 0 1 9

U 3 100 3 9

Spasi 3 101 3 9

A 3 110 3 9

I 1 1110 4 4

E 1 1111 4 4

2.7.2 Langkah-langkah dekompresi algoritma shannon-fano

1. Baca bit pertama dari kode Shannon-Fano yang telah dihasilkan.

2. Jika bit terdapat pada tabel, maka bit diterjemahkan menjadi karakter sesuai

dengan bit yang ada pada kode.

3. Jika bit yang dicari tidak ditemukan pada tabel kode, gabungkan bit tersebut

dengan bit selanjutnya dalam rangkaian kode, cocokkan dengan tabel hasil

pengkodean.

4. Ulangi langkah 3 hingga ada rangkaian bit yang sesuai dengan kode yang ada

ditabel sehingga dapat diterjemahkan menjadi karakter yang ada.

5. Baca bit selanjutnya dan ulangi langkah 2, 3, dan 4 hingga rangkaian kode habis

diterjemahkan.

2.8 Penelitian yang Relevan

Berikut ini beberapa penelitian yang terkait dengan algoritma Elias Gamma Code dan

Shannon-Fano :

1. Firdaus & Bulali (2010) dalam jurnal yang berjudul Penentuan Kombinasi Teknik

Kompresi untuk Mendukung Penyimpanan Data Akademik pada Smartcard.

Menyatakan bahwa Elias gamma merupakan salah satu metode kompresi

(79)

Suatu nilai yang menggunakan n bit diusahakan dua kali kemungkinan

kemunculannya, dibandingkan nilai lain yang menggunakan n + 1 bit.

2. Luca (2014) dalam skripsi yang berjudul Implementasi Metode Kuantisati Pada

Kompresi dan Dekompresi Citra Bitmap dan JPEG. Menyatakan kompresi citra

merupakan suatu proses pengolahan citra yang bisa mengurangi ukuran dari sebuah

citra agar lebih mempermudah dalam proses penyimpanan dan pengiriman. Metode

yang digunakan adalah metode kuantisasi untuk melakukan kompresi citra. Metode

kuantisasi adalah jenis lossycompression, karena pada proses kompresi ada bagian

citra yang hilang. Pada pengujian format .jpeg menghasilkan rasio kompresi citra

rata-rata 58.9% dan rata-rata rasio dekompresi citra adalah 39.4%.

3. Solihin (2013) dalam skripsi yang berjudul Perancangan Sistem Pengamanan dan

Kompresi Data Teks dengan Fibonacci Encoding dan Algoritma Shannon-Fano

serta Algoritma Deflate. Penelitian yang dibuat bertujuan untuk merancang sebuah

aplikasi komputer yang dapat mengamankan sekaligus mengkompresi ukuran teks.

Pengamanan teks dilakukan dengan menggunakan Fibonacci Encoding, kemudian

hasil pengkodean dikompresi menggunakan algoritma Shannon-Fano, setelah itu

dikompresikan lagi dengan algoritma Deflate. Hasil kompresi algoritma deflate

adalah hasil akhir proses pengkodean dan kompresi data.

4. Sukiman dan Chandra (2013) Jumlah data yang disimpan pada file berbanding

lurus dengan ukuran file itu sendiri. Ukuran file yang terlalu besar akan menjadi

masalah bila file tersebut akan ditransfer atau dipertukarkan. Cara lain adalah file

tersebut dimampatkan sehingga ukurannya menjadi lebih kecil dari ukuran semula

sehingga mempersingkat waktu ketika ditransmisi. Metode yang dipakai untuk

memperkecil ukuran file adalah dengan algoritma Elias Gamma yang bekerja

berdasarkan teknik pengkodean bilangan bulat menjadi bentuk biner yang lebih

sederhana. Hasil adalah suatu perangkat lunak yang dapat melakukan kompresi dan

dekompresi balik berdasarkan pada algoritma Elias Gamma pada semua jenis

file yang belum dikompresi. Program juga dapat menampilkan besarnya rasio

(80)

BAB 1

PENDAHULUAN

1.1. Latar belakang

Perpindahan data sangat mudah dilakukan pada saat ini, tetapi tempat

penyimpanannya yang menjadi kendala sangat mendasar. Hal ini disebabkan oleh

ukuran data yang ingin dipindahkan tidak sesuai dengan media penyimpanan yang

tersedia. Ukuran file yang semakin besar menuntut para pemakai komputer untuk

melakukan berbagai macam cara agar dapat menyimpan sejumlah file yang berukuran

besar dalam media penyimpanan yang terbatas. Hal inilah yang menyebabkan file

harus dimampatkan agar ukurannya menjadi lebih kecil. Teknik pemampatan data ini

disebut dengan teknik kompresi data. Adapun tujuan dari kompresi data adalah untuk

mengurangi ukuran file sebelum menyimpan atau memindahkan data ke dalam media

penyimpanan.

Teknik pemampatan terbagi atas dua bagian yaitu lossy dan lossless.

Pemampatan lossy adalah pemampatan data yang akan mengalami perubahan data

setelah selesai dimampatkan. Jika file yang sama dikembalikan ke data semula atau

disebut dengan penirmampatan (dekompresi) maka hasilnya akan berbeda dengan data

aslinya. Sementara lossless adalah pemampatan data dimana hasil kompresi dan

dekompresinya sama tetapi dengan ukuran yang berbeda.

Berdasarkan latar belakang yang telah diuraikan, maka penulis melakukan

penelitian dengan judul “Perbandingan Algoritma Elias Gamma Code dengan

(81)

1.2 Rumusan Masalah

Berdasarkan uraian dari latar belakang diatas, rumusan masalah yang akan dibahas

adalah membandingkan Algoritma Elias Gamma Code dengan Shannon-Fano untuk

melakukan kompresi file teks dengan parameter rasio, waktu kompresi, waktu

dekompresi, dan redundancy data.

1.3 Batasan Masalah

Adapun batasan masalah dalam tugas akhir ini adalah sebagai berikut:

1. Jenis file yang dikompresi adalah file teks yang berekstensi .txt.

2. Kode teks yang digunakan dalam penelitian ini adalah kode ASCII (American

Standard Code for Information Interchange).

3. Parameter pembanding yang digunakan antara lain adalah rasio, waktu kompresi,

waktu dekompresi dan redundancy data.

4. Komponen lain seperti tabel atau gambar yang terdapat didalam file teks yang

digunakan akan diabaikan.

5. Program dibuat dengan bahasa pemrograman C# dan Python.

1.4 Tujuan Penelitian

Tujuan penelitian dalam tugas akhir ini adalah menunjukkan hasil perbandingan

algoritma Elias Gamma Code dengan menggunakan parameter rasio, waktu kompresi,

waktu dekompresi, dan redundancy data.

1.5 Manfaat penelitian

Manfaat dari penelitian ini adalah

1. Untuk mengetahui algoritma kompresi yang lebih baik diantara algoritma Elias

Gamma Code dengan Shannon-Fano pada kompresi lossless.

2. Mengurangi kapasitas penyimpanan data dengan mengurangi ukuran data yang

Gambar

Gambar 3.4 Flowchart Sistem
Gambar 3.6 Perancangan Form Kompresi – Elias
Gambar 3.7 Perancangan Form Kompresi – Shannon
Gambar 3.9 Perancangan Form Kompresi – About
+7

Referensi

Dokumen terkait

Dalam penelitian ini, penulis menggabungan antara Algoritma ElGamal untuk melakukan penyandian data dan Algoritma Elias Gamma Code untuk kompresi data.. Plainteks pertama

Tujuan penelitian ini adalah untuk menganalisis dan membandingkan rasio kompresi, space saving dan kecepatan kompresi algoritma Elias Gamma Code , Elias Delta Code

Penelitian ini bertujuan untuk mengetahui kinerja antara algoritma Inverted Elias Gamma dan algoritma Capocelli yang mana akan diukur kinerjanya dengan rasio pembanding

Dalam penelitian ini, penulis menggabungan antara Algoritma ElGamal untuk melakukan penyandian data dan Algoritma Elias Gamma Code untuk kompresi data. Plainteks

Fibonaaci Code dan Inverted Elias Gamma Code merupakan jenis kompresi lossless yang digunakan dalam penelitian ini, yang mana akan diukur kinerjanya dengan

Puji dan syukur penulis panjatkan kepada Allah SWT atas nikmat dan karunia-Nya sehingga penulis dapat menyelesaikan skripsi ini, sebagai syarat untuk memperoleh

Tujuan daripada kompresi data tidak lain adalah untuk mengurangi data berlebihan tersebut sehingga ukuran data menjadi lebih kecil dan lebih ringan dalam proses

using System.Drawing; using System.IO; using System.Dynamic;. using System.Windows.Forms;