Implementasi dan Analisis Algoritma Kompresi Punctured Elias Codes dan Ternary Comma Code Pada File .Doc

(1)

LISTING PROGRAM

/*

* Created by SharpDevelop. * User: User

* Date: 5/1/2016 * Time: 9:01 PM *

* To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; namespace aplikasi_kompresi { /// <summary>

/// Description of MainForm. /// </summary>

public partial class MainForm : Form {

public MainForm() {

//

// The InitializeComponent() call is required for Windows Forms designer support.

//

InitializeComponent(); //

// TODO: Add constructor code after the InitializeComponent() call.

// }

void CompressionToolStripMenuItemClick(object sender, EventArgs e)

{

closeMdiChidlAKt(); Halaman_Compression fCompr = new Halaman_Compression();


(2)

fCompr.StartPosition = FormStartPosition.Manual; fCompr.Location = new Point(0, 0);

fCompr.MdiParent = this; fCompr.Show();

fCompr.Focus(); }

void closeMdiChidlAKt() {

if (ActiveMdiChild != null) ActiveMdiChild.Close(); }

void DecompressionToolStripMenuItemClick(object sender , EventArgs e)

{

closeMdiChidlAKt();

halaman_dekompresi fDeCompres = new halaman_dekompresi();

fDeCompres.StartPosition = FormStartPosition.Manual; fDeCompres.Location = new Point(0, 0);

fDeCompres.MdiParent = this; fDeCompres.Show();

fDeCompres.Focus(); }

private void aboutApplicationToolStripMenuItem_Click(o bject sender, EventArgs e)

{

closeMdiChidlAKt();

halaman_application HApp = new halaman_application();

HApp.StartPosition = FormStartPosition.Manual; HApp.Location = new Point(0, 0);

HApp.MdiParent = this; HApp.Show();

HApp.Focus(); }

private void profileToolStripMenuItem_Click(object sen der, EventArgs e)

{

closeMdiChidlAKt();

halaman_profile HPro = new halaman_profile(); HPro.StartPosition = FormStartPosition.Manual; HPro.Location = new Point(0, 0);

HPro.MdiParent = this; HPro.Show();


(3)

HPro.Focus(); }

private void eXITToolStripMenuItem_Click(object sender , EventArgs e)

{

this.Close(); }

private void MainForm_Load(object sender, EventArgs e) {

closeMdiChidlAKt();

FrmHome FH = new FrmHome();

FH.StartPosition = FormStartPosition.Manual; FH.Location = new Point(0, 0);

FH.MdiParent = this; FH.Show(); FH.Focus(); } } } using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace aplikasi_kompresi {

public partial class FrmHome : Form {

public FrmHome() {

InitializeComponent(); }

private void FrmHome_Load(object sender, EventArgs e) {

} } } /*


(4)

* User: User * Date: 5/1/2016 * Time: 9:44 PM *

* To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; using System.Drawing; using System.Windows.Forms; using System.IO; using Microsoft.Office.Interop.Word; namespace aplikasi_kompresi { /// <summary>

/// Description of Halaman_Compression. /// </summary>

public partial class Halaman_Compression : Form {

String Algort;

public Halaman_Compression() {

//

// The InitializeComponent() call is required for Windows Forms designer support.

//

InitializeComponent(); //

// TODO: Add constructor code after the InitializeComponent() call.

// }

private string readFileContent(string path) {

Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();

object file = path;

object nullobj = System.Reflection.Missing.Value; Microsoft.Office.Interop.Word.Document doc =

wordApp.Documents.Open(

ref file, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj);


(5)

doc.ActiveWindow.Selection.WholeStory(); doc.ActiveWindow.Selection.Copy();

IDataObject data = Clipboard.GetDataObject(); return data.GetData(DataFormats.Text).ToString(); doc.Close(ref nullobj, ref nullobj, ref nullobj); wordApp.Quit(ref nullobj, ref nullobj, ref nullobj );

}

void Button1Click(object sender, EventArgs e) {

OpenFileDialog openFiledialog1 = new OpenFileDialog(); openFiledialog1.Filter = "Document(*.doc)|*.doc";

if (openFiledialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)

{

txtNamaFile.Text = openFiledialog1.FileName; }

}

void Button4Click(object sender, EventArgs e) {

txtNamaFile.Text = ""; txtSaveFile.Text = ""; txtRc.Text = "";

txtCr.Text = ""; txtSS.Text = "";

txtTimeProcess.Text = ""; txtUncomPBit.Text = ""; txtCompBit.Text = ""; txtTCC.Text = ""; }

private void button2_Click(object sender, EventArgs e) {

SaveFileDialog SFD = new SaveFileDialog(); if (Algort == "TCC")

{

SFD.Filter = "Text Files|*.tcc"; }

else {

SFD.Filter = "Text Files|*.pec"; }

if (SFD.ShowDialog() == System.Windows.Forms.DialogResult.OK) {


(6)

txtSaveFile.Text = SFD.FileName; }

}

private void btnCommpress_Click(object sender, EventAr gs e)

{

System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();

if (Algort == "TCC") {

watch.Start(); String st

= readFileContent(txtNamaFile.Text ); TernaryCommaCodes tcc = new TernaryCommaCodes();

tcc.ProcessTCC(st, txtSaveFile.Text); double Cratio = tcc.CR;

txtRc.Text = tcc.RC.ToString(); txtCr.Text = tcc.CR.ToString(); txtSS.Text = tcc.SS.ToString(); txtUncomPBit.Text =

tcc.uncompressed_bits.ToString(); txtCompBit.Text = tcc.compressed_bits.ToString();

txtTCC.Text = tcc.HasilComp; txtTCC.Visible = true;

watch.Stop();

txtTimeProcess.Text =

watch.Elapsed.TotalMilliseconds.ToString() + "ms"; } else { watch.Start(); String st = readFileContent(txtNamaFile.Text); PuncturedEliasCodeP1 PEC = new PuncturedEliasCodeP1();

PEC.RunPuncturedEliasP1(st, txtSaveFile.Text );

double Cratio = PEC.CR;

txtRc.Text = PEC.RC.ToString(); txtCr.Text = PEC.CR.ToString(); txtSS.Text = PEC.SS.ToString(); txtUncomPBit.Text =


(7)

PEC.uncompressed_bits.ToString(); txtCompBit.Text = PEC.compressed_bits.ToString();

txtTCC.Text = PEC.HasilComp; watch.Stop();

txtTimeProcess.Text =

watch.Elapsed.TotalMilliseconds.ToString() + "ms"; }

}

private void rbPEC_CheckedChanged(object sender, Event Args e)

{

Algort = "PEC";

txtTCC.Visible = false; label3.Visible = true ;

txtSaveFile.Visible = true ; btnSave.Visible = true ; }

private void rbTCC_CheckedChanged(object sender, Event Args e)

{

Algort = "TCC";

txtTCC.Visible = false; label3.Visible = false;

txtSaveFile.Visible = false; btnSave.Visible = false; }

private void Halaman_Compression_Load(object sender, E ventArgs e)

{

txtTCC.Visible = false; }

void TxtTCCTextChanged(object sender, EventArgs e) {

} } } /*

* Created by SharpDevelop. * User: User

* Date: 5/1/2016 * Time: 10:00 PM *


(8)

* To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; using System.Drawing; using System.Windows.Forms; namespace aplikasi_kompresi { /// <summary>

/// Description of halaman_dekompresi. /// </summary>

public partial class halaman_dekompresi : Form {

public halaman_dekompresi() {

//

// The InitializeComponent() call is required for Windows Forms designer support.

//

InitializeComponent(); //

// TODO: Add constructor code after the InitializeComponent() call.

// }

string Algort;

void Button1Click(object sender, EventArgs e) {

OpenFileDialog openFiledialog1 = new OpenFileDialog();

if (Algort == "TCC") {

openFiledialog1.Filter = "File TCC|*.tcc"; }

else {

openFiledialog1.Filter = "File PEC|*.pec"; }

if (openFiledialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)

{

txtopenFile.Text = openFiledialog1.FileName; String aFilename = openFiledialog1.FileName;


(9)

MessageBox.Show("File Berhasil Dipilih!"); }

}

void Button4Click(object sender, EventArgs e) {

txtopenFile.Text = ""; txtSaveFile.Text = "";

txttimeprocess.Text = ""; }

private void rbTCC_CheckedChanged(object sender, Event Args e)

{

Algort = "TCC"; aktif11(true); aktif(false); }

private void btnsave_Click(object sender, EventArgs e) {

SaveFileDialog SFD = new SaveFileDialog(); SFD.Filter = "File DOC|*.doc";

if (SFD.ShowDialog() == System.Windows.Forms.DialogResult.OK) {

txtSaveFile.Text = SFD.FileName; }

}

private void btnDecomp_Click(object sender, EventArgs e)

{

System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();

if (Algort == "TCC") {

watch.Start();

TernaryCommaCodes TCC = new TernaryCommaCodes();

TCC.deComprTCC(txtTextAwal.Text, txtStb.Text, txtSaveFile.Text);

watch.Stop();

txttimeprocess.Text =

watch.Elapsed.TotalMilliseconds.ToString();

LblHasil.Text = "Decompressed_String sama dengan String asli? " + TCC.Hasil.ToString();


(10)

else {

watch.Start();

PuncturedEliasCodeP1 PEC = new PuncturedEliasCodeP1 ();

PEC.deComprPEC(txtTextAwal.Text, txtopenFile.T ext, txtSaveFile.Text);

watch.Stop();

txttimeprocess.Text =

watch.Elapsed.TotalMilliseconds.ToString();

LblHasil.Text = "Decompressed_String sama dengan String asli? " + PEC.Hasil.ToString();

} }

void RbPECCheckedChanged(object sender, EventArgs e) {

Algort = "PEC"; aktif(true); aktif11(false); }

private void halaman_dekompresi_Load(object sender, Ev entArgs e)

{

aktif(false); aktif11(false); }

private void aktif(Boolean akt) {

label2.Visible=akt;

txtopenFile.Visible = akt; btnBrowse.Visible = akt; }

private void aktif11(Boolean akt) {

label5.Visible = akt; txtStb.Visible = akt; }

void BtnClearClick(object sender, EventArgs e) {

txtopenFile.Text = ""; txtStb.Text = "";

txtTextAwal.Text = ""; txtSaveFile.Text = "";


(11)

txttimeprocess.Text = ""; }

} } /*

* Created by SharpDevelop. * User: User

* Date: 5/1/2016 * Time: 10:09 PM *

* To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; using System.Drawing; using System.Windows.Forms; namespace aplikasi_kompresi { /// <summary>

/// Description of halaman_application. /// </summary>

public partial class halaman_application : Form {

public halaman_application() {

//

// The InitializeComponent() call is required for Windows Forms designer support.

//

InitializeComponent(); //

// TODO: Add constructor code after the InitializeComponent() call.

// }

void Label2Click(object sender, EventArgs e) {

} } }


(12)

/*

* Created by SharpDevelop. * User: User

* Date: 5/1/2016 * Time: 10:16 PM *

* To change this template use Tools | Options | Coding | Edit Standard Headers.

*/

using System;

using System.Drawing;

using System.Windows.Forms; namespace aplikasi_kompresi {

/// <summary>

/// Description of halaman_profile. /// </summary>

public partial class halaman_profile : Form {

public halaman_profile() {

//

// The InitializeComponent() call is required for Windows Forms designer support.

//

InitializeComponent(); //

// TODO: Add constructor code after the InitializeComponent() call.

// }

} }


(13)

DAFTAR PUSTAKA

Andika, R. 2014. Implementasi Metode Punctured Elias Codes Pada Kompresi File Text. Skripsi. Universitas Sumatera Utara.

Budiman, M. A. 2015. Bahan Kuliah Desain Analisis Algoritma. Desember 2015. Unpublished.

Erdiansyah, U. 2014. Perbandingan Algoritma Elias Delta Code dengan Lavenstein untuk Kompresi File Teks. Skripsi. Universitas Sumatera Utara.

Hartono, J. 2005. Analisis & Desain. Andi : Yogyakarta.

Hermawan, J. 2003. Analisis Desain & Pemrograman Berorientasi Objek Dengan UML dan Visual Basic .NET. Andi : Yogyakarta.

Hidayatullah, P. 2015. Visual Basic .NET Membuat Aplikasi Database dan Program Kreatif. Revisi Kedua. Informatika : Bandung

Ladjamuddin, A. B. 2005. Analisis dan Desain Sistem Informasi. Graha Ilmu : Yogyakarta.

Munawar. 2005. Pemodelan Visual dengan UML. Graha Ilmu : Jakarta.

Napitupulu, N. & Sihombing, N.S. 2010. Struktur Data dan Algoritma. USU Press : Medan.

Nugroho, A., Chandra, D.W., Prestiliano, J. & Beeh, Y.R. 2013. Cara Mudah & Cepat Belajar Pemrograman C# .NET. Andi : Yogyakarta.

Pramilo, C. 2008. Studi Perbandingan Algoritma Huffman Dan LZW (Lempel Ziv Welch) Pada Pemampatan File Teks. Skripsi. Universitas Sumatera Utara.

Pu, I. M. 2006. Fundamental Data Compression. Butterworth Heinemann : London. Purnomo, H. & Zacharias, T. 2005. Pengenalan Informatika Perspektif Teknik dan

Lingkungan. Andi : Yogyakarta.

Putra, D. 2010. Pengolahan Citra Digital. Andi : Semarang.

Razi, F. 2009. Analisis Pengaruh Panjang Bit Kode pada Kinerja Program Kompresi yang Menggunakan Algoritma Lempel Ziv Welch (LZW). Skripsi. Universitas Sumatera Utara


(14)

Salomon, D. 2007. Variable-length Codes for Data Compression. Springer : USA. Salomon, D & Motta, G. 2010. Handbook of Data Compression. Fifth Edition. Springer

: USA.

Saputra, Y.E.A. 2013. Buku Pintar Pemrograman C#. Andi :Yogyakarta.

Sukamto, R.A. & Shalahuddin, M. 2013. Rekayasa Perangkat Lunak Terstruktur dan Berorientasi Objek. Informatika : Bandung.

Surawidjaja, T. N & Trisnamurti, R. H. 1983. Belajar Bahasa Komputer Basic Mudan dan Cepat. PT Gramedia : Jakarta.

Sayood, K. 2005. Introduction to Data Compression. 3rd Edition. San Diego: Elsevier.


(15)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem

Analisis sistem adalah mendefinisikan kebutuhan terkait sistem yang akan dikembangkan dan hasil akhir dari tahap analisis sistem ini adalah sebuah dokumen yang menjelaskan mengenai spesifikasi kebutuhan sistem informasi atau SRS (Software Requirement Spesification). Kegiatan analisis sistem adalah kegiatan untuk melihat sistem yang sudah berjalan, melihat bagian mana bagus dan tidak bagus dan kemudian mendokumentasikan kebutuhan yang akan dipenuhi dalam sistem yang baru (Sukamto & Shalahuddin, 2013).

Tujuannya adalah untuk memperbaiki berbagai fungsi didalam sistem yang sedang berjalan agar menjadi lebih efisien, mengubah sasaran sistem yang sedang berjalan, merancang/mengganti output yang sedang digunakan, untuk mencapai tujuan yang sama dengan seperangkat input yang lain (bisa jadi lebih sederhana dan interaktif) atau untuk melakukan beberapa perbaikan serupa (Ladjamudin, 2005).

Tahap analisis sistem dilakukan setelah tahap perencanaan sistem (system planning) dan sebelum tahap desain sistem (system design). Tahap analisis merupakan tahap yang kritis dan sangat penting, karena kesalahan didalam tahap ini akan menyebabkan juga kesalahan ditahap selanjutnya (Hartono, 2005). Untuk menganalisis suatu sistem terdapat beberapa langkah yang harus dilakukan, yaitu sebagai berikut :

3.1.1 Analisis Masalah

Analisis masalah merupakan proses mengidentifikasi sebab dan akibat dibangunnya sebuah sistem yang akan dibangun tersebut dapat berjalan sebagaimana mestinya sesuai dengan tujuan dari sistem itu (Ladjamudin, 2005). Permasalahan yang akan dibahas dalam penelitian ini adalah bagaimana kinerja dari algoritma kompresi Punctured Elias Codes dan Ternary Comma Code dalam mengkompresi file .doc.


(16)

Penyebab dan akibat yang akan mempengaruhi aplikasi Punctured Elias Codes dan Ternary Comma Code pada kompresi file .doc dapat dilihat pada Tabel 3.1 berikut.

Tabel 3.1 Sebab dan Akibat

Analisis Sebab dan Akibat Perbaikan Tujuan Sistem Masalah atau

Peluang Masalah Sebab dan Akibat Tujuan Sistem Kendala Sistem 1. Ukuran dari file

teks (*.doc) yang besar. 2. Terdapat banyak algoritma yang bisa diterapkan untuk kompresi data.

1. Proses transfer data file teks (*.doc) yang lambat. 2. Membutuhkan media penyimpanan yang besar untuk menyimpan file teks (*.doc). 1. Dibutuhkan aplikasi yang mampu melakukan proses kompresi dan dekompresi file teks (*.doc) dengan

menggunakan algoritma.

1. Tidak adanya aplikasi kompresi dan dekompresi yang menerapkan algoritma Punctured Elias Codes dan Ternary Comma Code.

Identifikasi masalah dalam penelitian ini menggunakan diagram ishikawa seperti pada Gambar 3.1 berikut :


(17)

3.1.2 Analisis Kebutuhan

Analisis kebutuhan sistem dapat dikelompokkan menjadi 2 bagian yaitu kebutuhan fungsional dan kebutuhan non-fungsional. Kebutuhan fungsional dibutuhkan untuk mengetahui hal-hal yang bisa dikerjakan oleh sistem. Adapun analisis fungsional sistem diharapkan mampu melakukan :

a. Sistem harus mampu membaca string yang berada dalam file teks. b. Sistem harus mampu memampatkan file .doc.

c. Sistem harus mampu melakukan kompresi data terhadap file teks dengan ekstensi file *.doc dengan metode Punctured Elias Codes dan Ternary Comma Code.

d. Sistem harus mampu melakukan dekompresi file yang telah dimampatkan.

e. Sistem harus mampu menampilkan properties hasil perhitungan parameter kinerja algoritma pada penelitian ini yaitu Ratio of compression (RC dan CR), Space Savings (SS),

Time Process pada saat kompresi dan dekompresi.

Kebutuhan non-fungsional adalah karakteristik yang menentukan kebutuhan sebuah sistem yakni seperti kinerja, user friendly, anggaran serta tenggang waktu yang mampu bekerja tanpa menggangu fungsional sistem lainnya. Kebutuhan non-fungsional yang harus dipenuhi aplikasi yang dirancang adalah sebagai berikut :

a. User friendly

Sistem yang buat mudah dipahami dan dimengerti cara penggunaannya oleh user yang mengoperasikan aplikasi tersebut.

b. Pelayanan

Sistem yang telah dirancang bisa dikembangkan ke tingkat yang lebih kompleks lagi bagi pihak-pihak yang ingin mengembangkan sistem tersebut.

c. Efisiensi

Sistem harus dirancang sesederhana mungkin agar memudahkan pengguna dalam menggunakan atau menjalankan aplikasi tersebut.

d. Informasi

Kemampuan sistem dalam menyediakan pesan konfirmasi keberhasilan proses kompresi dan dekompresi file .doc.

e. Kontrol

Sistem yang telah dibangun harus tetap dikontrol setelah selesai dirancang agar fungsi dan kinerja sistem tetap terjaga dan dapat memberikan hasil yang sesuai dengan


(18)

f. Performa

Sistem harus mampu melakukan kompresi file .doc dengan baik. g. Ekonomi

Kemampuan sistem bekerja dengan baik tanpa biaya (cost) perangkat lunak dan perangkat keras, sehingga pengguna tidak harus mengeluarkan biaya ekstra.

3.1.3 Analisis Proses

Analisis proses bertujuan untuk mengetahui tahapan apa saja yang harus dilakukan oleh sistem dan cara kerja sistem secara spesifik sehingga dengan mudah melakukan pemrograman pada sistem yang akan dibangun. Dalam sistem ini terdapat dua proses utama yaitu proses kompresi dan dekompresi dengan menggunakan metode Punctured Elias Codes dan Ternary Comma Code.

3.1.3.1Analisis Proses Kompresi Pada Algoritma Punctured Elias Codes

Pada metode Punctured Elias Codes terdapat dua kode yaitu yang disebut dengan kode P1 dan P2 dan yang akan dibahas dalam penelitian ini hanya kode P1 saja.

Pada proses kompresi, sistem awalnya membaca String yang terdapat pada file teks dan kemudian membuat tabel karakter dan frekuensi kemunculan karakter itu yang telah diurutkan berdasarkan karakter yang memiliki frekuensi terbesar. Setelah itu sistem membangkitkan kode Punctured P1 berdasarkan banyaknya karakter pada yang telah dibuat. Kemudian sistem melakukan proses kompresi berdasarkan tabel karakter dan tabel kode yang telah dibangkitkan itu.

Tabel 3.2 Punctured Elias Codes (Salomon, 2007) N Binary of n Reserved Flag Flag | Reserved P1

0 0 - - - 0

1 1 1 10 10 | 1 101

2 10 01 10 10 | 01 1001

3 11 11 110 110 | 11 11011

4 100 001 10 10 | 001 10001

5 101 101 110 110 | 101 110101

6 110 011 110 110 | 011 110011


(19)

8 1000 0001 10 10 | 0001 100001

Berikut ini adalah contoh proses kompresi file teks dengan metode Punctured Elias Codes. Misalkan pada sebuah file teks berisi string “HALLO LALA DAN LILI”. Untuk mengukur ukuran string itu didalam komputer dapat dilihat pada tabel 3.3.

Maka :

Bit String : “HALLO LALA DAN LILI” |String| : 19

H,A,L,O,sp,D,N,I

:

8 : |

|

Tabel 3.3 String Yang Belum Dikompresi

Char ASCII Code ASCII Binary Bit Frekuensi Bit x Frekuensi

H 72 01001000 1 8 8

A 65 01000001 4 8 32

L 76 01001100 6 8 48

O 79 01001111 1 8 8

Sp 32 00100000 3 8 24

D 68 01000100 1 8 8

N 78 01001110 1 8 8

I 73 01001001 2 8 16

Total 152

Proses kompresi untuk Punctured Elias Codes dapat dilihat pada Tabel 3.4 berikut.

Tabel 3.4 String Yang Telah Diurutkan Secara Descending dan Table Sorted Dan Telah Dikompresi Dengan Kode Punctured (P1)

Char Punctured Elias Codes (P1) Bit Frekuensi Bit x Frekuensi

L 0 1 6 6

A 101 3 4 12

Sp 1001 4 3 12


(20)

H 10001 5 1 5

O 110101 6 1 6

D 110011 6 1 6

N 1110111 7 1 7

Total 64

Dari Tabel 3.4 dapat dibentuk string bit dari string sebelum dikompresi yaitu “HALLO

LALA DAN LILI” menjadi string bit

“1000110100110101100101010101100111001110111101111001011011011011”.

Sebelum ditulis ke sebuah file hasil kompresi dilakukan penambahan string bit itu sendiri apakah habis dibagi 8 dan berapa sisanya jika dibagi 8. Jumlah string bit 64 habis dibagi 8 dan sisanya nol. Karena panjang string bit habis dibagi delapan, maka padding bit tidak diperlukan. Dengan demikian, flag bit yang merupakan panjang dari padding bit yakni 0 d a l a m b i n a r y m e n j a d i “ 0 0 0 0 0 0 0 0 ” . St r i n g b i t y a n g t e r b e n t u k adalah”100011010011010110010101010110011100111011110111100101101101101100000 000”. Sehingga total panjang string bit seluruhnya setelah penambahan padding bits dan flag bits adalah 64+0+8=72 bit. Dari

Dari hasil kompresi dengan Punctured Elias Code (P1) di atas dapat dihitung kinerja kompresinya menurut parameter yang sudah ditentukan yaitu:

a. Ratio of Compression (RC)

11

,

2

72

152

C C C

R

R

Dikompresi

Setelah

Data

Ukuran

Dikompresi

Sebelum

Data

Ukuran

R

b. Compression Ratio (CR)

%

36

,

47

%

100

152

72

%

100

R R R

C

C

Dikompresi

Sebelum

Data

Ukuran

Dikompresi

Setelah

Data

Ukuran

C


(21)

c. Space Savings (SS)

3.1.3.2Analisis Proses Kompresi Pada Algoritma Ternary Comma Code

Tabel karakter dan tabel kode dari algoritma Ternary Comma Code dapat dilihat pada Tabel 3.5 berikut.

Tabel 3.5 Ternary Comma Code (Salomon, 2007)

Value Code L Value Code L

0 c 2 11 101c 8

1 0c 4 12 102c 8

2 1c 4 13 110c 8

3 2c 4 14 111c 8

4 10c 6 15 112c 8

5 11c 6 16 120c 8

6 12c 6 17 121c 8

7 20c 6 18 122c 8

8 21c 6 19 200c 8

9 22c 6 20 201c 8

….. …..

64 2001c 10 1,000 1101000c 16

128 11201c 12 3,000 11010002c 18 256 100110c 14 10,000 111201100c 20 512 200221c 14 65,536 10022220020c 24

Berikut ini adalah contoh proses kompresi file teks dengan metode Ternary Comma Code. Misalkan pada sebuah file teks berisi string “HAI MAHASISWA TINGKAT AKHIR”. Untuk mengukur ukuran string itu didalam komputer dapat dilihat pada tabel 3.6.

80 72 152      SS SS Kompresi Setelah Data Ukuran Kompresi Sebelum Data Ukuran SS


(22)

Maka :

Bit String : “HAI MAHASISWA TINGKAT AKHIR” |String| : 27

H,A,I,sp,M,S,W,T,N,G,K,R

:

12 : |

|

Tabel 3.6 String Yang Belum Dikompresi

Char ASCII Code ASCII Binary Bit Frekuensi Bit x Frekuensi

H 72 01001000 3 8 24

A 65 01000001 6 8 48

I 73 01001001 4 8 32

Sp 32 00100000 3 8 24

M 77 01001101 1 8 8

S 83 01010011 2 8 16

W 87 01010111 1 8 8

T 84 01010100 2 8 16

N 78 01001110 1 8 8

G 71 01000111 1 8 8

K 75 01001011 2 8 16

R 82 01010010 1 8 8

Total 216

Proses kompresi untuk Ternary Comma Code dapat dilihat pada Tabel 3.7 berikut.

Tabel 3.7 String Yang Telah Diurutkan Secara Descending dan Table Sorted Dan Telah Dikompresi Dengan Kode Ternary Comma Code

Char Ternary Comma Code Bit Frekuensi Bit x Frekuensi

A c 1 6 6

I 1c 2 4 8

H 2c 2 3 6

Sp 10c 3 3 9


(23)

T 12c 3 2 6

K 20c 3 2 6

M 21c 3 1 3

W 22c 3 1 3

N 100c 4 1 4

G 101c 4 1 4

R 102c 4 1 4

Total 65

Dari Tabel 3.7 dapat dibentuk string bit dari string sebelum dikompresi yaitu “HAI

MAHASISWA TINGKAT AKHIR” menjadi string bit

2cc1c10c21cc2cc11c1c11c22cc10c12c1c100c101c20cc12c10cc20c2c1c102c”.

Sebelum ditulis ke sebuah file hasil kompresi dilakukan penambahan string bit itu sendiri apakah habis dibagi 8 dan berapa sisanya jika dibagi 8. Jumlah string bit adalah 65 dan itu tidak habis dibagi 8, sisanya adalah 1. Selain itu, pada algoritma Ternary Comma Code tidak ada penambahan padding dan flag. Maka total bit seluruhnya tanpa penambahan padding dan flag adalah tetap 65 bit.

Dari hasil kompresi dengan Ternary Comma Code diatas dapat dihitung kinerja kompresinya sesuai parameter yang sudah ditentukan yaitu :

a. Ratio of compression (RC)

32

,

3

65

216

C C C

R

R

Dikompresi

Setelah

Data

Ukuran

Dikompresi

Sebelum

Data

Ukuran

R

b. Compression ratio (CR)

%

09

,

30

%

100

216

65

%

100

R R R

C

C

Dikompresi

Sebelum

Data

Ukuran

Dikompresi

Setelah

Data

Ukuran

C


(24)

c. Space Savings (SS)

3.1.3.3 Analisis Proses Dekompresi Pada Algoritma Punctured Elias Codes dan Ternary Comma Code

Pada proses dekompresi, langkah awalnya sistem akan membaca string hasil kompresi. Setelah mendapatkan string bit hasil kompresi, tabel karakter dan kodenya, kemudian sistem melakukan proses dekompresi dengan mengembalikan string bit tersebut ke bentuk semula berdasarkan tabel karakter dan tabel kode yang telah didapat dari hasil proses kompresi.

Tabel 3.8 Tabel Hasil Bit String Setelah Dikompresi Menggunakan Kode Punctured

Elias Codes (P1) (Budiman, 2015) Char Punctured Elias Codes (P1)

L 0

A 101

Sp 1001

I 11011

H 10001

O 110101

D 110011

N 1110111

”100011010011010110010101010110011100111011110111100101101101101100000000” Pseudocode untuk proses dekompresi (Budiman, 2015) :

1. function decompress (t, sb) { 2. String = ""

3. buff = sb[0] 4. l = length(sb) 5. for (i=1 to 1) {

6. if (buff in t) { 151 65 216      SS SS Kompresi Setelah Data Ukuran Kompresi Sebelum Data Ukuran SS


(25)

7. String = String + t[buff] 8. buff = ""

9. }

10. else {

11. buff = buff + sb[i]

12. }

13. }

14. return sb 15. }

Pseudocode proses dekompresi ini juga berlaku pada analisis proses dekompresi pada algoritma Ternary Comma Code. Hal ini dikarenakan penulis menggunakan proses dekompresi secara universal sehingga dapat diterapkan pada algoritma lainnya untuk proses dekompresi.

3.2 Pemodelan Sistem

Pemodelan sistem adalah menggambarkan bagian-bagian dan komponen-komponen yang terdapat didalam sistem yang akan dirancang sesuai dengan spesifikasi dan kebutuhan sistem tersebut (Hermawan, 2003). Pada penelitian ini proses pemodelan sistem akan dilakukan dengan menggunakan Use Case Diagram, Activity Diagram, Sequence Diagram dan Class Diagram.

3.2.1 Use Case Diagram

Use Case Diagram (UCD) menjelaskan apa yang akan dilakukan oleh sistem yang akan dibangun dan siapa yang berinteraksi dengan sistem (Hermawan, 2003). Urutan langkah-langkah yang menerangkan antara pengguna dan sistem disebut scenario, setiap scenario mendeskripsikan urutan kejadian. Setiap urutan diinisialisasi oleh orang, sistem yang lain, perangkat keras atau urutan waktu (Munawar, 2005). Diagram ini menggambarkan functional requirement yang diharapkan dari aplikasi kompresi. Diagram Use Case untuk sistem dalam penelitian ini dapat dilihat pada Gambar 3.2.


(26)

Gambar 3.2 Diagram Use Case

Dokumentasi naratif untuk proses kompresi dan dekompresi yang terdapat dalam diagram use case dijelaskan pada Tabel 3.9 dan 3.10 berikut.

Tabel 3.9 Dokumentasi Naratif Use Case Kompresi Name Use Case Kompresi

Actor User

Description Use Case menampilkan form Kompresi Pra-kondisi Sudah masuk ke tampilan kompresi

Kejadian didalam sistem Kegiatan Aktor Respon Sistem 1. Klik menu File.

2. Klik menu Kompresi.

4. Klik tombol “Browse”.

7. Klik Tombol “Kompresi”.

3. Menampilkan form Kompresi.

5. Membaca File/String yang sudah di input. 6. Menampilkan properties dari file yang di input.


(27)

kompresi dari file yang sudah di input.

9. Menampilkan properties dari file yang sudah dikompresi beserta perhitungan dari kinerja algoritma berdasarkan parameter yang sudah ditentukan.

Pasca kondisi Aplikasi dapat dilanjutkan tanpa perubahan

Tabel 3.10 Dokumentasi Naratif Use Case Dekompresi Name Use Case Dekompresi

Actor User

Description Use Case menampilkan form Dekompresi

Pra-kondisi Sudah masuk ketampilan dekompresi dan sebelumnya sudah melakukan proses kompresi

Kejadian didalam sistem Kegiatan Aktor Respon Sistem 1. Klik menu File.

2. Klik menu Dekompresi.

4. Klik tombol “Browse”.

7. Klik Tombol “Dekompresi”.

3. Menampilkan form Dekompresi.

5. Membaca File/String yang sudah di input. 6. Menampilkan properties dari file yang di input.

8. Melakukan proses dekompresi dari file yang sudah di input.


(28)

9. Menampilkan properties dari file yang sudah didekompresi. Pasca kondisi Aplikasi dapat dilanjutkan tanpa perubahan

3.2.2 Activity Diagram

Activity Diagram menggambarkan aliran kerja dari sistem yang akan dibangun mulai dari tahap awal hingga selesai. Diagram Activity dapat dilihat pada Gambar 3.3.


(29)

3.2.3 Sequence Diagram

Diagram sequence menjelaskan secara detail urutan proses yang dilakukan dalam sistem untuk mencapai tujuan dari use case : interaksi yang terjadi antar class, operasi apa saja yang terlibat, urutan antar operasi dan informasi yang diperlukan oleh masing-masing operasi (Hermawan, 2003). Diagram sequence dapat dilihat pada Gambar 3.4 dan 3.5.

Gambar 3.4 Diagram Sequence Kompresi

Gambar 3.5 Diagram Sequence Dekompresi

3.2.4. Class Diagram

Class Diagram untuk sistem yang dirancang pada penelitian ini dapat dilihat pada Gambar 3.6 berikut ini.


(30)

(31)

(32)

Gambar 3.6 Diagram Class

3.3Perancangan Sistem

Setelah melakukan analisis dan pemodelan sistem, tahap selanjutnya adalah melakukan perancangan sistem. Dari hasil proses analisis dan pemodelan sistem, perancangan sistem dapat dibuat menjadi beberapa tahap, yaitu :

1. Perancangan alur proses sistem secara umum.

2. Perancangan alur proses untuk membangkitkan kode Punctured Elias Codes dan Ternary Coma Code.

3. Perancangan alur proses kompresi dan dekompresi. 4. Perancangan antarmuka sistem.

3.3.1 Perancangan Alur Proses Sistem Secara Umum

Alur proses secara umum dibagi menjadi dua yaitu proses kompresi dan dekompresi. Pada proses kompresi sistem menerima input file .doc dan menghasilkan file output dari hasil kompresi dengan metode Punctured Elias Codes dan Ternary Comma Code. Pada proses dekompresi sistem menerima input file .doc yang sudah dikompresi dan menghasilkan output file .doc berupa file asli sebelum dikompresi.

Perancangan sistem secara umum digambarkan dengan flowchart. Flowchart adalah simbol-simbol sederhana yang mewakili algoritma, ditulis dalam suatu aliran sesuai dengan tahapan algoritma (Surawidjaja & Trisnamurti, 1983). Berikut adalah flowchart dari sistem yang akan dirancang.


(33)

(34)

(35)

Pada Gambar 3.7 dan 3.8 jelas terlihat bahwa untuk mengkompres file .doc dimulai dengan menginputkan file .doc lalu dikodekan dengan kode dari Punctured Elias Codes dan Ternary Comma Code. Selanjutnya dikompresi dengan metode Punctured Elias Codes atau Ternary Comma Code dan akan menghasilkan output file hasil kompresi. Kemudian dianalisis dengan parameter RC, CR, Space Savings (SS) dan Time Prosses hingga

mendapatkan hasil dari perhitungannya masing-masing.

Pada proses dekompresi dimulai dengan menginputkan file .doc yang sudah dikompresi sebelumnya, lalu di ekstrak dengan pseudocode decompress secara universal.

3.3.2 Perancangan Alur Proses Kompresi Dan Dekompresi

Pada sistem terdapat terdapat dua proses utama yaitu, proses kompresi dan dekompresi. Masing-masing alur proses tersebut dapat digambarkan dengan flowchart pada Gambar 3.9, 3.10 dan 3.11 .

3.3.2.1Perancangan Alur Proses Kompresi

Flowchart pada proses kompresi menunjukkan urutan proses kompresi file dari masing-masing algoritma pada sistem.

1. Perancangan Alur Proses Kompresi Pada Algoritma Punctured Elias Codes

Flowchart kompresi ini menunjukkan urutan proses kompresi dengan algoritma Punctured Elias Codes pada sistem yang akan dirancang. Flowchart dapat dilihat pada Gambar 3.9 berikut.


(36)

(37)

2. Perancangan Alur Proses Kompresi Pada Algoritma Ternary Comma Code

Flowchart kompresi ini menunjukkan urutan proses kompresi dengan algoritma Ternary Comma Code pada sistem yang akan dirancang. Flowchart dapat dilihat pada Gambar 3.10 berikut.


(38)

3.3.2.2Perancangan Alur Proses Dekompresi Algoritma Punctured Elias Codes dan Ternary Comma Code

Flowchart kompresi ini menunjukkan bagaimana proses dekompresi algoritma Punctured Elias Codes dan Ternary Comma Code secara universal pada sistem. Flowchart dekompresi dapat dilihat pada Gambar 3.11.

Gambar 3.11 Flowchart Dekompresi Algoritma Punctured Elias Codes dan Ternary


(39)

3.3.2.3Perancangan Sistem Antarmuka

Sitem Antarmuka menggambarkan bagaimana perangkat lunak, sistem dan user saling berinteraksi. Untuk rancangan antarmuka dari sistem yang akan dibangun menggunakan bahasa pemrograman C#. Pada Sistem ini terdapat 5 form, form Home sebagai halaman utama, form Compression untuk proses kompresi, form Decompression untuk proses dekompresi, form About Application sebagai penjelasan dari aplikasi dan cara penggunaannya dan form Profile untuk data dari penulis.

1. Form Home

Gambar 3.12 Form Home

1. Menu File merupakan menu strip yang didalam terdapat menu item yaitu Compression, Decompression dan Exit.

2. Menu Help merupakan menu strip yang didalam terdapat menu item yaitu About Application dan Profile.

3. Label yang beririkan Judul dari Skripsi yang akan dirancang aplikasinya. 4. Label untuk menampilkan kata “Oleh :”


(40)

7. Label yang berisikan keterangan dari Program Studi, Fakultas, Universitas, Kota dan Tahun.

2. Menu Item Compression, Decompression dan Exit

Gambar 3.13 Menu Item Compression, Decompression dan Exit

1. Menu item Compression untuk menuju ke halaman proses kompresi file. 2. Menu item Decompression untuk menuju ke halaman proses dekompresi file. 3. Menu item Exit untuk keluar dari aplikasi kompresi yang sedang dijalankan.


(41)

3. Menu Item About Application dan Profile

Gambar 3.14 Menu Item About Application dan Profile

1. Menu item untuk menuju ke halaman About Application yaitu penjelasan sekilas tentang aplikasi dan cara pengguaannya.


(42)

4. Form Compression

Gambar 3.15 Form Compression

1. Menerangkan bahwa sekarang kita berada pada form proses Compression. 2. Group box yang berisi pilihan dari algoritma yang akan digunakan.

3. Radio button untuk memilih algoritma Punctured Elias Codes. 4. Radio button untuk memilih algoritma Ternary Comma Code. 5. Group box untuk proses input dan save file.

6. Label Open untuk menginput file yang diinginkan. 7. Label Save untuk menyimpan file.

8. Text box untuk menampilkan nama file yang sudah dipilih. 9. Text box untuk menampilkan nama file yang akan disimpan. 10.Button Browse untuk menuju direktori penyimpanan file. 11.Button Save untuk proses menyimpan file.

12.Button Compress untuk mengkompres file.

13.Button Clear untuk mengosongkan/membersihkan semua text box yang sudah terisi. 14.Group box untuk perhitungan kinerja algoritma Punctured Elias Codes dan Ternary

Comma Code sesuai dengan parameter yang telah ditentukan. 15.Label Uncompressed Bit.


(43)

16.Label Compressed Bit. 17.Label Ratio Compression. 18.Label Compression Ratio. 19.Label untuk Space Savings. 20.Label untuk Time Prosses.

21.Text box untuk hasil perhitungan jumlah bit sebelum dikompresi. 22.Text box untuk hasil perhitungan jumlah bit setelah dikompresi. 23.Text box untuk hasil perhitungan dari RC.

24.Text box untuk hasil perhitungan dari CR.

25.Text box untuk hasil perhitungan dari SS.

26.Text box untuk hasil perhitungan dari Time Process.

27.Tampilan bit setelah dikompresi dari hasil kompresi algoritma Ternary Comma Code.

5. Form Decompression

Gambar 3.16 Form Decompression

1. Menerangkan bahwa sekarang kita berada pada form proses Decompression. 2. Group box pilihan algoritma dekompresi yang ingin dijalankan.

3. Radio button untuk memilih algoritma Punctured Elias Codes. 4. Radio button untuk memilih algoritma Ternary Comma Code.


(44)

5. Group box untuk proses input dan save file.

6. Label Open untuk menginput file yang sudah dikompresi. 7. Label String Bit untuk input string yang sudah dikompresi.

8. Label Teks untuk input string asli dari file yang akan didekompresi. 9. Label Save untuk menyimpan file.

10.Text box untuk menampilkan nama file yang sudah dipilih. 11.Text box untuk string bit yang sudah dikompresi.

12.Text box untuk string asli dari file yang akan didekompresi. 13.Text box untuk menampilkan nama file yang akan disimpan. 14.Button Browse untuk menuju direktori penyimpanan file. 15.Button Save untuk proses menyimpan file.

16.Button Decompress untuk dekompres file.

17.Button Clear untuk mengosongkan/membersihkan semua text box yang sudah terisi. 18.Group box untuk menampilkan perhitungan waktu dekompresi.

19.Label untuk Time Process.

20.Text box untuk menampilkan waktu dekompresi.

21.Label untuk menampilkan pernyataan apakah string yang terdapat didalam file yang didekompresi sesuai dengan string asli atau tidak.


(45)

6. Form About Application

Gambar 3.17 Form About Application

1. Menerangkan bahwa sekarang kita berada pada form About Application. 2. Penjelasan sekilas tentang aplikasi kompresi yang dirancang.

3. Penjelasan tentang bagaimana menjalankan proses kompresi pada aplikasi. 4. Penjelasan tentang bagaimana menjalankan proses dekompresi pada aplikasi.


(46)

7. Form Profile

Gambar 3.18 Form Profile

1. Menerangkan bahwa sekarang kita berada pada form Profile. 2. Judul Skripsi yang akan dirancang aplikasinya.

3. Group box untuk info tentang penulis. 4. Label untuk menampilkan Nama. 5. Label untuk menampilkan NIM. 6. Label berisikan Nama.

7. Label berisikan NIM.

8. Label untuk menampilkan tulisan Contact Person. 9. Label untuk menampilkan email.

10.Label untuk menampilkan bulan dan tahun. 11.Label untuk menampilkan Copyright 2016.


(47)

BAB 4

IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab 4 ini berisi pemaparan implementasi dari sistem dan hasil pengujian yang dilakukan dengan metode Punctured Elias Codes dan Ternary Comma Code yang dibangun menggunakan bahasa pemrograman C#.

4.1. Implementasi Sistem

Proses implementasi yang dirancang pada sistem ini dibagi 5 form dalam bahasa C#, yaitu Form Home sebagai halaman utama, Form Compression untuk proses kompresi, Form Decompresi untuk proses dekompresi, Form About Application untuk penjelasan sekilas tentang aplikasi serta cara penggunaannya dan Form Profile untuk data dari penulis.

4.1.1 Form Home

Form Home adalah form yang pertama kali muncul saat aplikasi dijalankan. Form ini terdiri dari 2 Tab Menu, yaitu Tab File (pada menu strip ini terdapat sub menu Compression, Decompression dan Exit) dan Tab Help (pada menu strip ini terdapat sub menu About Application dan Profile). Halaman utama pada aplikasi dapat dilihat pada Gambar 4.1.


(48)

Gambar 4.1. Gambar Form Home

4.1.2 Form Compression

Form Compression merupakan form yang akan menjalankan proses kompresi pada file. Banyak fungsi-fungsi proses kompresi yang terdapat dalam form ini yaitu memilih algoritma yang akan digunakan, input file .doc yang akan dikompresi, menentukan direktori penyimpanan file yang sudah dikompresi dan hasil perhitungan dari parameter yang telah ditentukan. Tampilan untuk form Compression dapat dilihat pada Gambar 4.2.


(49)

Gambar 4.2. Gambar Form Compression

4.1.3 Form Decompression

Form Decompression merupakan form yang akan menjalankan proses dekompresi pada file yang telah dikompresi terlebih dahulu. Adapun fungsi-fungsi proses dekompresi yang terdapat dalam form ini yaitu input file *.pec atau *.tcc yang akan didekompresi, input string asli dari file yang akan didekompresi, menentukan direktori penyimpanan file yang sudah didekompresi dan perhitungan waktu yang dibutuhkan ketika proses dekompresi berjalan. Tampilan untuk form Decompression dapat dilihat pada Gambar 4.3.


(50)

Gambar 4.3. Gambar Form Decompression

4.1.4 Form About Application

Form About Application merupakan form yang berisi penjelasan tentang aplikasi serta cara penggunaannya, ekstensi file yang mampu dikompresi ataupun didekompresi oleh aplikasi dan pilihan algoritma yang dapat dijalankan oleh aplikasi. Tampilan untuk form About Application dapat dilihat pada Gambar 4.4.


(51)

Gambar 4.4. Gambar Form About Aplication

4.1.5 Form Profile

Form Profile merupakan form yang berisi data dari penulis, terdapat judul skripsi, nama, NIM dan contact person. Tampilan untuk form Profile dapat dilihat pada Gambar 4.5.


(52)

4.2 Pengujian Sistem

4.2.1 Pengujian Proses Kompresi

Untuk menjalankan proses kompresi langkah awal adalah memilih sub menu Compression pada menu strip File. Setelah tampilan menu Compression muncul lakukan tahapan-tahapan berikut ini untuk menjalankan proses kompresi :

1. Memilih kode algoritma kompresi (Punctured Elias Codes atau Ternary Comma Code) pada radio button yang telah tersedia. Disini Penulis menggunakan kode dari algoritma Punctured Elias Codes sebagai contoh dalam pengujian proses kompresi.

Gambar 4.6 Gambar Pemilihan Algoritma Kompresi

2. Menekan tombol Browse untuk mengakses open file dialog, lalu pilihlah file .doc sebagai input file. Disini Penulis memilih file proses.doc sebagai contoh file yang di input.


(53)

Gambar 4.7 Gambar Open File Dialog

3. Tentukan direktori penyimpanan file terdekompresi. Tampilan save dialog file dapat dilihat pada Gambar 4.8.


(54)

4. Setelah melakukan tahap input file dan save file maka tampilan pada masing-masing text box seperti pada Gambar 4.9.

Gambar 4.9 Gambar Path Pada Masing-Masing Text Box

5. Langkah selanjutnya adalah melakukan proses kompresi yaitu caranya dengan menekan tombol Compress maka muncullah hasil perhitungan dari parameter kinerja yang telah ditentukan, seperti pada Gambar 4.10.


(55)

Gambar 4.10 Gambar Hasil Proses Kompresi

Dari tahapan-tahapan proses kompresi yang telah dilakukan didapatkan file dari hasil kompresi dengan ekstensi file *.pec. Tampilan file hasil kompresi dapat dilihat pada Gambar 4.11.

Gambar 4.11 Gambar File Hasil Proses Kompresi (*.pec)

4.2.2 Pengujian Proses Dekompresi

Untuk menjalankan proses dekompresi langkah awal adalah memilih sub menu Decompression pada menu strip File. Setelah tampilan menu Decompression muncul lakukan tahapan-tahapan berikut ini untuk menjalankan proses kompresi :


(56)

1. Memilih kode algoritma dekompresi (Punctured Elias Codes atau Ternary Comma Code) pada radio button yang telah tersedia. Disini Penulis menggunakan kode dari algoritma Punctured Elias Codes sebagai contoh dalam pengujian proses dekompresi.

Gambar 4.12 Gambar Pemilihan Algoritma Dekompresi

2. Menekan tombol Browse untuk mengakses open file dialog, lalu pilihlah file .pec sebagai input file. Disini Penulis memilih file proseskompresi.pec sebagai contoh file yang diinput.


(57)

Gambar 4.13 Gambar Open File Dialog

Gambar 4.14 Gambar Setelah File Berhasil Dipilih


(58)

Gambar 4.15 Gambar Ketikan atau Copy-Paste String Asli

4. Tentukan direktori penyimpanan file dekompresi. Tampilan save dialog file dapat dilihat pada Gambar 4.16.


(59)

5. Setelah melakukan tahap input file, ketik atau copy-paste string asli dan save file maka tampilan pada masing-masing text box seperti pada Gambar 4.17.

Gambar 4.17 Gambar Path Pada Masing-Masing Text Box

6. Langkah selanjutnya adalah melakukan proses dekompresi yaitu caranya dengan menekan tombol Decompress maka muncullah jumlah waktu ketika proses dekompresi berjalan dan pernyataan True, bahwa string hasil dekompresi sama dengan string asli, seperti pada Gambar 4.18.


(60)

Gambar 4.18 Gambar Hasil Proses Dekompresi

Setelah melewati proses kompresi dan dekompresi dapat dilihat perubahan dari segi ukuran file seperti pada Gambar 4.19, 4.20 dan 4.21.

Gambar 4.19 Gambar Ukuran File Asli Sebelum Dikompresi

Gambar 4.20 Ukuran File Setelah Dikompresi


(61)

4.3 Hasil Pengujian

Hasil pengujian yang didapatkan melalui penelitian ini berupa hasil dari proses kompresi dan dekompresi string dengan dua jenis komposisi string yaitu string yang terdiri dari satu jenis karakter (Homogen) dan string yang terdiri dari berbagai macam jenis karakter (Heterogen).

Pengujian pertama dilakukan terhadap 5 file dengan string homogen dan pengujian kedua dilakukan terhadap 5 file dengan string heterogen yang ukuran filenya berbeda-beda baik pada string homogen maupun heterogen. Pengujian algoritma Punctured Elias Codes dan Ternary Comma Code menggunakan file asli yang sama. Hasil pengujian string homogen dengan metode Punctured Elias Codes dan Ternary Comma Code dapat dilihat pada Tabel 4.1 dan Tabel 4.2.

Tabel 4.1 Hasil Pengujian 1 String Homogen dengan Punctured Elias Codes No Ukuran File RC CR SS

Time Process Compression

Time Process Decompression

1 42 7,77 12,86 107968 6521.1689 258.1362

2 39 7,71 12,96 86768 1295.1678 62.2031

3 34 7,74 12,91 57968 2165.9758 84.9381

4 30 7,81 12,80 29640 1196.4957 12.1445

5 26 7,55 13,24 1520 935.6804 1.8277

Tabel 4.2 Hasil Pengujian 2 String Homogen dengan Ternary Comma Code No Ukuran File RC CR SS

Time Process Compression

Time Process Decompression

1 42 7,90 12,64 108245 16584.8676 38.1875

2 39 7,88 12,68 87047 6594.3368 30.7094

3 34 7,89 12,65 58141 6443.9437 25.8768

4 30 7,92 12,61 29705 4862.6961 13.4416

5 26 8 12,5 1533 5037.4632 16.6837

Dari Tabel 4.1 dan Tabel 4.2 dapat dibuat grafik perbandingan hasil pengujian string homogen antara Punctured Elias Codes dan Ternary Comma Code berdasarkan variabel Ratio of Compression (RC), Compression Ratio (CR), Spase Sacings (SS), waktu kompresi


(62)

7.81 78.1 781 7810

RC CR SS

Time Process Compress

Time Process Decompress

Punctured Elias Codes Ternary Comma Codes

Gambar 4.22 Grafik Kedua Algoritma Menggunakan String Homogen Dengan Ukuran

File 30 kb

Hasil pengujian string heterogen dengan metode Punctured Elias Codes dan Ternary Comma Code dapat dilihat pada Tabel 4.3 dan Tabel 4.4.

Tabel 4.3 Hasil Pengujian 3 String Heterogen dengan Punctured Elias Codes

No Ukuran File RC CR SS

Time Process Compression

Time Process Decompression

1 38 1,57 63,32 32648 7745.6761 360.2468

2 37 1,61 61,93 14064 5339.4822 86.985

3 35 1,55 64,28 12304 4633.7212 55.0346

4 32 1,56 63,29 14848 4138.4287 102.5208


(63)

Tabel 4.4 Hasil Pengujian 4 String Heterogen dengan Ternary Comma Code

No Ukuran File RC CR SS

Time Process Compression

Time Process Decompression

1 38 2,88 34,65 58174 6934.963 66.598

2 37 2,94 33,92 24415 4807.6129 50.1163

3 35 2,85 34,99 22392 4068.8768 54.6805

4 32 2,86 34,91 26791 4497.9379 55.5487

5 28 2,95 33,87 4724 3750.9756 9.7517

Dari Tabel 4.3 dan Tabel 4.4 dapat dibuat grafik perbandingan hasil pengujian string heterogen antara Punctured Elias Codes dan Ternary Comma Code berdasarkan variabel Ratio of Compression (RC), Compression Ratio (CR), Spase Sacings (SS), waktu kompresi

dan waktu dekompresi seperti pada Gambar 4.23.

1.56 15.6 156 1560 15600

RC CR SS

Time Process Compress

Time Process Decompress

Punctured Elias Codes Ternary Comma Codes

Gambar 4.23 Grafik Kedua Algoritma Menggunakan String Heterogen Dengan Ukuran


(64)

BAB 5

KESIMPULAN DAN SARAN

Pada bab 5 ini akan disimpulkan, aplikasi yang telah dirancang telah dapat melakukan fungsi kompresi dan dekompresi. Pada bab ini juga disajikan saran-saran yang bermanfaat sebagai masukan bagi pengembangan Aplikasi Kompresi Menggunakan Algoritma Punctured Elias Codes dan Ternary Comma Code yang lebih baik.

5.1. Kesimpulan

Berdasarkan pembahasan dan evaluasi dari bab-bab sebelumnya, maka dapat diperoleh kesimpulan sebagai berikut :

1. Aplikasi yang telah dirancang mampu melakukan proses kompresi file .doc dengan menggunakan algoritma Punctured Elias Codes dan Ternary Comma Code.

2. Aplikasi yang telah dirancang mampu melakukan proses dekompresi file .doc yang telah dikompresi terlebih dahulu menjadi file asli sebelum dikompresi.

3. Pengujian pertama dilakukan terhadap 5 file .doc dengan karakter yang sama (homogen) yang ukuran file berbeda menunjukkan Ratio of Compresion (RC), Compression Ratio

(CR) dan Space Savings yang hasilnya diperoleh dari proses kompresi algoritma

Punctured Elias Codes dan Ternary Comma Code, kedua algoritma tersebut hampir sama baiknya. Waktu kompresi dan dekompresi yang dihasilkan algoritma Ternary Comma Code lebih besar dibandingkan dengan algoritma Punctured Elias Codes.

4. Pengujian kedua dilakukan terhadap 5 file .doc dengan karakter yang berbeda (heterogen) yang ukuran file berbeda menunjukkan Ratio of Compression (RC).

Compression Ratio (CR), Space Savings, waktu kompresi dan dekompresi yang

dihasilnya diperoleh dari proses kompresi dan dekompresi algoritma Punctured Elias Codes dan Ternary Comma Code, kedua algoritma tersebut memperoleh hasil yang hampir sama.

5. Pengujian algoritma Punctured Elias Codes dan Ternary Comma Code menggunakan file asli yang sama.


(65)

5.2. Saran

Berikut adalah saran-saran untuk pengembangan lebih lanjut terhadap penelitian skripsi ini : 1. Aplikasi yang telah dirancang diharapkan mampu mengkompresi jenis file teks lainnya

yang berekstensi .*txt, *.rtf dan *.pdf.

2. Aplikasi yang telah dirancang diharapkan mampu mengkompresi komponen lain yang terdapat pada file *.doc atau *.docx berupa gambar, grafik, tabel dan lain-lain.

3. Ukuran file .doc yang ukuran maksimalnya hanya 15 MB dapat ditingkatkan lagi agar dapat mengkompresi file dengan ukuran lebih besar.

4. Diharapkan aplikasi kompresi dengan menggunakan algoritma Punctured Elias Codes dan Ternary Comma Code ini dapat dikembangkan lagi menjadi sebuah aplikasi yang lebih baik, baik dalam proses kompresi dan dekompresi string maupun untuk user agar lebih mudah dimanfaatkan dan dipahami cara mengoperasikan aplikasinya.


(66)

BAB 2

TINJAUAN PUSTAKA

2.1Kompresi

Istilah kompresi berasal dari kata bahasa Inggris compression yang berarti pemampatan. Kompresi berarti memampatkan data yang berukuran besar sehingga menjadi kecil sehingga dapat mengatasi pemborosan dalam penggunaan media penyimpanan.

Kompresi data adalah proses yang dapat mengubah masukan sebuah aliran data masukan (sumber atau data asli) ke dalam aliran data yang lain (keluaran atau data yang terkompresi) yang memiliki ukuran yang lebih kecil. Aliran data dapat berupa file, buffer di memori atau bit individual yang dikirim pada saluran komunikasi (Salomon & Motta, 2010).

Kompresi data adalah (dalam bidang ilmu komputer, ilmu pengetahuan dan seni) sebuah penyajian informasi ke dalam bentuk yang lebih sederhana. Kompresi data adalah sebagai sarana untuk representasi yang efisien dari sumber data digital seperti teks, gambar, suara atau kombinasi dari semuanya yaitu video. Tujuan dari kompresi data adalah untuk representasi dari sumber data dalam bentuk digital dengan bit sesedikit mungkin sementara memenuhi persyaratan minimum rekontruksi yang asli (Pu, 2006).

Proses kompresi merupakan proses mereduksi ukuran data untuk menghasilkan representasi digital yang padat atau mampat (compact) namun tetap mewakili kuantitas informasi yang terkandung pada data tersebut. Tujuan dari kompresi data adalah untuk mengurangi data berlebihan (redundancy) sehingga ukuran data menjadi lebih kecil dan lebih ringan dalam proses transmisi dan menghemat ruang memori dalam penyimpanan data (Putra, 2010).

Data dalam konteks kompresi data melingkupi segala bentuk digital dari informasi, yang dapat diproses oleh sebuah program komputer. Bentuk dari informasi tersebut secara luas dapat diklasifikasikan sebagai teks, suara, gambar dan video (Salomon, 2007).


(67)

Data dapat dalam bentuk file teks, gambar, suara atau deretan angka. Alasan kenapa kompresi data sangat dibutuhkan karena semakin banyak informasi saat ini yang digunakan dalam bentuk digital dan semakin lama ukuran yang dibutuhkan untuk menyajikan data tersebut semakin besar (Sayood, 2006).

Kompresi data sangat popular sekarang ini karena dua alasan yaitu (Salomon, 2007) : 1. Orang-orang lebih suka mengumpulkan data. Tidak perduli seberapa besar media

penyimpanan yang dimilikinya. Akan tetapi cepat atau lambat akan terjadi overflow. 2. Orang-orang tidak suka menunggu dalam waktu lama untuk memindahkan data. Misalnya

ketika duduk didepan komputer untuk menunggu halaman Web terbuka atau men-download sebuah file.

2.2.1Teknik Kompresi Data

Ketika kita berbicara tentang teknik kompresi atau algoritma kompresi, kita sebenarnya mengacu pada dua algoritma. Ada algoritma kompresi yang mengambil sebuah input x dan menghasilkan x sebagai representasi yang memerlukan bit yang lebih sedikit dan ada c algoritma rekontruksi yang beroperasi pada representasi kompresi x untuk menghasilkan c rekontruksi y. Operasi ini secara skematis diperlihatkan pada Gambar 2.1 (Sayood, 2006).

Gambar 2.1 Kompresi dan Rekontruksi (Sayood, 2006)

Hallo

Mahasiswa

Tingkat

Akhir

Hallo

Mahasiswa

Tingkat

Akhir


(68)

Berdasarkan kemungkinan data yang telah dikompresi dapat dikembalikan ke data sebelum dikompresi atau data aslinya, teknik kompresi data dikelompokkan menjadi dua bagian yaitu kompresi data Lossless dan kompresi data Lossy (Pu, 2006).

1. Kompresi Data Lossless

Kompresi lossless adalah kompresi data yang menghasilkan file data hasil kompresi yang dapat dikembalikan menjadi file data asli sebelum dikompresi secara utuh tanpa perubahan apapun. Kompresi jenis ini ideal untuk kompresi data teks. Teknik kompresi lossless digunakan ketika data asli dari sumber sangat penting dan kita tidak ingin kehilangan rincian data apapun. Contoh seperti data gambar medis, teks dan gambar sebagai bukti untuk alasan hukum, beberapa file komputer dan lain-lain.

Pada Gambar 2.1, masukan string AABB direkonstruksi setelah eksekusi dari algoritma kompresi diikuti dengan dekompresi. kompresi lossless disebut kompresi reversibel karena data asli dapat kembali dengan sempurna dengan adanya proses dekompresi.

Gambar 2.2 Kompresi Lossless (Pu, 2006)

2. Kompresi Data Lossy

Kompresi lossy adalah kompresi data yang menghasilkan file data hasil kompresi yang tidak dapat dikembalikan menjadi file data sebelum dikompresi secara utuh. Ketika data hasil kompresi di-decode kembali, data hasil decoding tersebut tidak dapat dikembalikan menjadi sama dengan data asli tetapi ada bagian data yang hilang. Kompresi lossy disebut kompresi ireversibel karena tidak mungkin untuk memulihkan data asli persis dengan dekompresi. Gambar 2.2 berikut menunjukkan contoh di mana angka desimal yang panjang menjadi pendek setelah proses kompresi dan dekompresi.


(69)

Gambar 2.3 Kompresi Lossy (Pu, 2006)

2.2.2Parameter Analisis Kinerja Algoritma Kompresi

Pada suatu teknik yang digunakan dalam proses kompresi data terdapat beberapa faktor atau variabel yang biasa digunakan untuk mengukur kualitas dari suatu teknik kompresi data tersebut, yaitu :

1. Ratio of Compression (RC)

Ratio of Compression (RC) adalah perbandingan antara ukuran data sebelum dikompresi

dengan ukuran data setelah dikompresi (Salomon & Motta, 2010).

Dikompresi

Setelah

Data

Ukuran

Dikompresi

Sebelum

Data

Ukuran

R

C

2. Compression Ratio (CR)

Compression Ratio (CR) adalah presentasi besar data yang telah dikompresi yang didapat

dari hasil perbandingan antara ukuran data setelah dikompresi dengan ukuran sebelum dikompresi (Salomon & Motta, 2010).

%

100

Dikompresi

Sebelum

Data

Ukuran

Dikompresi

Setelah

Data

Ukuran

C

R

3. Space Savings (SS)

Space Savings (SS) adalah presentasi selisih ukuran data setelah dikompresi dengan ukuran data sebelum dikompresi (Salomon & Motta, 2010).

Kompresi Setelah Data Ukuran Kompresi Sebelum Data Ukuran


(70)

4. Time Process (Waktu)

Time Process adalah waktu kompresi dan dekompresi, yaitu waktu yang dibutuhkan oleh sebuah sistem untuk melakukan proses kompresi dan dekompresi mulai dari pembacaan data hingga proses encoding pada data tersebut. Semakin kecil waktu yang diperoleh maka semakin efisien metode yang digunakan dalam proses kompresi dan dekompresi.

2.3Dekompresi

Algoritma kompresi tidak akan bekerja kecuali proses dekompresi juga tersedia. Kata kompresi sendiri menyiratkan konteks kompresi dan dekompresi. Proses dekompresi dapat dengan mudah diperoleh setelah melakukan proses kompresi. Efisiensi proses dekompresi lebih penting dari proses kompresi, misalnya data film, foto dan audio sering dikompresi pertama oleh seniman dan kemudian dengan versi file yang sama file kompresi didekompresi berkali-kali oleh jutaan pemirsa dan pendengar. Gambar 2.4 dibawah ini menunjukkan hubungan antara kompresi dan dekompresi (Pu,2006).

Gambar 2.4 Kompresi dan Dekompresi (Pu, 2006)

2.4Algoritma Punctured Elias Codes

Punctured Elias Codes untuk bilangan integer dirancang oleh Peter Fenwick dalam sebuah percobaan untuk meningkatkan performa the Burrows-Wheeler transform. Istilah Punctured datang dari tempat pengawasan error code-code (ECC). ECC terdiri dari data yang asli ditambah sejumlah bilangan dari check bits. Jika beberapa check bits dihilangkan, untuk mempersingkat serangkaian kode itu, hasil kode Punctured Elias Codes ini adalah sebagai berikut :


(71)

1. Ambil bilangan biner dari n.

2. Reversed (balikkan bit-bitnya) dan siapkan flag untuk menunjukkan jumlah bit yang bernilai 1 didalam n.

3. Untuk setiap bit 1 didalam n kita siapkan flag dari 1dan akhiri flag dengan 0. 4. Gabungkan flag dengan bilangan biner yang sudah dibalikkan (reversed).

Kode Punctured ini dinamakan kode P1 dan kode ini dimulai dengan 1 (paling sedikit terdapat satu flag, kecuali untuk kode P1 dengan n0) dan juga diakhiri dengan 1 (karena n yang asli, yaitu bit MSB (Most Significant Bit) adalah 1, telah dibalikkan) (Salomon, 2007).

Tabel 2.1 Punctured Elias Codes (Salomon, 2007)

n Binary of n Reserved Flag Flag | Reserved P1

0 0 - - - 0

1 1 1 10 10 | 1 101

2 10 01 10 10 | 01 1001

3 11 11 110 110 | 11 11011

4 100 001 10 10 | 001 10001

5 101 101 110 110 | 101 110101

6 110 011 110 110 | 011 110011

7 111 111 1110 1110 | 111 1110111

8 1000 0001 10 10 | 0001 100001

2.5Algoritma Ternary Comma Code

Angka Binary (basis 2) adalah dua bit 0 dan 1. Sama dengan angka Ternary (basis 3) yang didasarkan pada tiga digit (trits) 0, 1 dan 2. Setiap trit (angka) biasa dikodekan dalam dua bit, tetapi dua bit tersebut dapat memiliki empat nilai. Jadi, hal tersebut tampak masuk akal untuk berkerja dengan menggunakan sistem angka Ternary dimana setiap trit (angka) diwakili oleh dua bit dan dalam sebuah penjumlahan menjadi tiga trit (angka) terdapat pada simbol keempat, yakni Comma (c). Sekali kita masukkan simbol c, itu akan memudahkan kita untuk membangun Ternary Comma Code untuk bilangan bulat. Comma Code untuk n adalah bentuk sederhana dari perwakilan Ternary dari n – 1 yang diikuti oleh c. Dengan demikian,


(72)

Comma Code dari 8 adalah 21c (karena7231) dan Comma Code dari 18 adalah 122c (karena1719232).

Tabel 2.2 daftar beberapa Ternary Comma Code (Label L menunjukkan panjang dari kode, dalam bit). Kode-kode ini telah ada (lebih lama dari pada kode-kode yang telah dijelaskan sebelumnnya disini) namun berkembang secara pelan. Karena itu, mereka cocok untuk aplikasi dimana bilangan bulat yang nilainya adalah umum. Kode ini juga mudah untuk di-encode dan di-decode-kan dan hal yang paling prinsip adalah Comma Symbol (sebagai tanda akhir sebuah kode) yang diperlukan adalah dua bit. Ketidak efisiensi ini bukanlah hal yang serius, namun dapat menjadi lebih bagi Comma Code yang didasarkan pada angka dasar yang besar. Pada angka basis 15 Comma Code, contohnya, setiap 15 digit memerlukan 4 bit dan The Comma-nya juga 4 bit bentuk. Setiap kode diakhiri dengan 4 bit Comma, tidak termasuk dengan teori minimal dari satu bit dan fitur ini membuat kode-kode terlihat tidak efesien (bagaimana pun juga, redundansi per simbol menurun untuk sejumlah besar basis. Dalam sistem basis 7, salah satu dari delapan simbol dikorbankan untuk Comma, sementara dalam basis 15 itu adalah salah satu dari 16 simbol) (Salomon, 2007).

Tabel 2.2 Ternary Comma Code (Salomon, 2007)

Value Code L Value Code L

0 c 2 11 101c 8

1 1c 4 12 102c 8

2 2c 4 13 110c 8

3 10c 4 14 111c 8

4 11c 6 15 112c 8

5 12c 6 16 120c 8

6 20c 6 17 121c 8

7 21c 6 18 122c 8

8 22c 6 19 200c 8

9 100c 6 20 201c 8

….. …..

64 2001c 10 1,000 1101000c 16

128 11201c 12 3,000 11010002c 18 256 100110c 14 10,000 111201100c 20 512 200221c 14 65,536 10022220020c 24


(73)

2.6File Teks

Text file atau file teks disebut juga dengan flat file, yaitu salah satu jenis file komputer yang tersusun dalam suatu urutan baris data teks biasanya diwakili oleh 8 bit kode ASCII (atau EBCDIC) (Pu, 2006).

Teks adalah kumpulan dari karakter-karakter atau string yang menjadi satu kesatuan. Teks yang memuat banyak karakter didalamnya selalu menimbulkan masalah pada media penyimpanan dan kecepatan waktu pada saat transmisi data. File teks merupakan file yang berisi informasi-informasi dalam bntuk teks. Data yang berasal dari dokumen pengolah data, angka yang digunakan dalam perhitungan, nama dan alamat dalam basis data merupakan contoh masukan data teks yang terdiri dari karakter, angka dan tanda baca (Pramilo, 2008).

Secara umum, format data teks dibagi menjadi dua bagian, yaitu (Purnomo, 2005) : 1. Teks Sederhana (plain text)

Format data teks (*.txt) merupakan contoh format teks jenis ini yang paling popular. Format data teks merupakan format teks yang digunakan untuk menyimpan huruf, angka, karakter control (tabulasi, pindah baris dan sebagainya) atau simbol-simbol lain yang biasa digunakan dalam tulisan seperti titik, koma, tanda petik dan sebagainya. Satu huruf, angka, karakter control atau simbol pada arsip teks memakan tempat satu byte.

2. Teks Terformat (formatted text)

Teks terformat (formatted text) merupakan teks yang terformat dan mengandung styles. Format data dokumen Microsoft Word (*.doc) merupakan contoh format teks jenis ini yang paling popular. Doc merupakan ekstensi arsip dokumen perangkat lunak Microsoft Word yang paling banyak digunakan dalam menulis laporan, makalah dan sebagainya. Doc merupakan jenis teks terformat yang tidak hanya mengatur tampilan teks seperti styles (font, ukuran huruf dan sebagainya), namun juga dapat menyisipkan gambar. Kekurangan format teks dokumen ini terletak pada ukuran datanya yang besar.

2.7Bahasa Pemrograman C#

C# atau sering disebut C sharp merupakan sebuah bahasa pemrograman yang berorientasi objek yang dikembangkan oleh Microsoft. Seperti halnya bahasa pemrograman yang lain, C# bisa digunakan untuk membangun berbagai macam jenis aplikasi, seperti aplikasi berbasis


(1)

vii

IMPLEMENTATION AND ANALYSIS OF COMPRESSION ALGORITHMS PUNCTURED ELIAS CODES AND TERNARY COMMA CODE

IN .DOC FILE

ABSTRACT

Data compression is the process that converts an input of the flow of a data stream (original data) into a flow of other data (data was compressed) which has the smaller size. Punctured Elias Codes and Ternary Comma Code is the kind of compress used in this research while the paramater use to measure the process of Ratio of Compression (RC), Compression Ratio (CR), Space Savings (SS), Time Process (amount of time used during the compress process). In addition, compress for file is with reading or analizing the string of the file and the code is used code Punctured Elias Codes and Ternary Comma Code. The result of compress file will extension *.pec and *.tcc bit string that contains the results of compression that would be decompression. The output of the corresponding *.doc with extension will decompress the original file before it is compressed. The sample of the research used is string bit which are divided into one type of character (Homogen) and others are several types of characters (Heterogen) that is saved into an file with extension *.doc. on the sample testing of homogeny string, as seen from the calculation of RC, CR and SS Punctured Elias Codes and Ternary Comma Code algorithms almost as good, but compression time and decompression time generated Ternary Comma Code greater than Punctured Elias Codes. On the sample testing of heterogen string, seen from the calculation of RC, CR, SS, compression time and decompression time produced Punctured Elias Codes and Ternary Comma Code algorithms almost as good.

Keywords : Compression, Compression File, Punctured Elias Codes and Ternary Comma Code Algorithms.


(2)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataaan iii

Penghargaan iv

Abstrak vi

Abstract vii

Daftar Isi viii

Daftar Tabel x

Daftar Gambar xi

BAB 1 PENDAHULUAN 1

1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Batasan Masalah 2

1.4 Tujuan Penelitian 3

1.5 Manfaat Penelitian 3

1.6 Metodologi Penelitian 3

1.7 Sistematika Penulisan 4

BAB 2 TINJAUAN PUSTAKA 6

2.1 Kompresi 6

2.2.1 Teknik Kompresi Data 7

2.2.2 Parameter Analisis Kinerja Algoritma Kompresi 9

2.3 Dekompresi 10

2.4 Algoritma Punctured Elias Codes 11

2.5 Algoritma Ternary Comma Code 12

2.6 File Teks 13

2.7 Bahasa Pemrograman C# 14

2.8 UML (Unifed Modelling Language) 16

BAB 3 ANALISIS DAN PERANCANGAN SISTEM 20

3.1 Analisis Sistem 20

3.1.1 Analisis Masalah 20

3.1.2 Analisis Kebutuhan 22

3.1.3 Analisis Proses 23

3.1.3.1 Analisis Proses Kompresi Pada Algoritma Punctured Elias Codes


(3)

ix

3.1.2.2 Analisis Proses Kompresi Pada Algoritma

Ternary Comma Code 26

3.1.3.3 Analisis Proses Dekompresi Pada Algoritma

Punctured Elias Codes dan Ternary Comma Code 29

3.2 Pemodelan Sistem 31

3.2.1 Use Case Diagram 31

3.2.2 Activity Diagram 33

3.2.3 Sequence Diagram 35

3.2.4 Class Diagram 35

3.3 Perancangan Sistem 38

3.3.1 Perancangan Alur Proses Sistem Secara Umum 38 3.3.2 Perancangan Alur Proses Kompresi Dan Dekompresi 41 3.3.2.1 Perancangan Alur Proses Kompresi 41 3.3.2.2 Perancangan Alur Proses Dekompresi Algoritma Punctured Elias Codes dan Ternary Comma Code 44 3.3.2.3 Perancangan Sistem Antarmuka 45

BAB 4 Implementasi dan Pengujian Sistem 53

4.1 Implementasi Sistem 53

4.1.1 Form Home 53

4.1.2 Form Compression 54

4.1.3 Form Decompression 55

4.1.4 Form About Application 56

4.1.5 Form Profile 57

4.2 Pengujian Sistem 58

4.2.1 Pengujian Proses Kompresi 58

4.2.2 Pengujian Proses Dekompresi 62

4.3 Hasil Pengujian 68

BAB 5 KESIMPULAN DAN SARAN 71

5.1 Kesimpulan 71

5.2 Saran 72

DAFTAR PUSTAKA LAMPIRAN


(4)

DAFTAR TABEL

Halaman

Tabel 2.1 Punctured Elias Codes 12

Tabel 2.2 Ternary Comma Code 13

Tabel 3.1 Sebab Dan Akibat 21

Tabel 3.2 Punctured Elias Codes 24

Tabel 3.3 String Yang Belum Dikompresi 24

Tabel 3.4 String Yang Telah Diurutkan Secara Descending Dan Table

Sorted Dan Telah Dikompresi Dengan Kode Punctured (P1) 25

Tabel 3.5 Ternary Comma Code 26

Tabel 3.6 String Yang Belum Dikompresi 27

Tabel 3.7 String Yang Telah Diurutkan Secara Descending Dan Table

Sorted Dan Telah Dikompresi Dengan Kode Ternary Comma

Code 28

Tabel 3.8 Tabel Hasil Bit String Setelah Dikompresi

Menggunakan Kode Punctured Elias Codes (P1) 30 Tabel 3.9 Dokumentasi Naratif Use Case Kompresi 32 Tabel 3.10 Dokumentasi Naratif Use Case Dekompresi 33 Tabel 4.1 Hasil Pengujian 1 String Homogen Dengan

Punctured Elias Codes 68

Tabel 4.2 Hasil Pengujian 2 String Homogen Dengan

Ternary Comma Code 68

Tabel 4.3 Hasil Pengujian 3 String Heterogen Dengan

Punctured Elias Codes 69

Tabel 4.4 Hasil Pengujian 4 String Heterogen Dengan


(5)

xi

DAFTAR GAMBAR

Halaman

Gambar 2.1 Kompresi dan Rekontruksi 8

Gambar 2.2 Kompresi Lossless 9

Gambar 2.3 Kompresi Lossy 9

Gambar 2.4 Kompresi dan Dekompresi 11

Gambar 3.1 Diagram Ishikawa 22

Gambar 3.2 Daigram Use Case 31

Gambar 3.3 Diagram Activity 34

Gambar 3.4 Diagram Sequence Kompresi 35

Gambar 3.5 Diagram Sequence Dekompresi 35

Gambar 3.6 Diagram Class 38

Gambar 3.7 Flowchart Punctured Elias Codes Secara Umum Pada Sistem 39 Gambar 3.8 Flowchart Ternary Comma Code Secara Umum Pada Sistem 40 Gambar 3.9 Flowchart Proses Kompresi Dengan Algoritma

Punctured Elias Codes 42 Gambar 3.10 Flowchart Proses Kompresi Dengan Algoritma

Ternary Comma Code 43

Gambar 3.11 Flowchart Dekompresi Algoritma PEC dan TCC Secara

Universal 44

Gambar 3.12 Form Home 45

Gambar 3.13 Menu Item Compression, Decompression dan Exit 46 Gambar 3.14 Menu Item About Apliccation dan Profile 47

Gambar 3.15 Form Compression 48

Gambar 3.16 Form Decompression 49

Gambar 3.17 Form About Application 51

Gambar 3.18 Form Halaman Profile 52

Gambar 4.1 Gambar Form Home 54

Gambar 4.2 Gambar Form Compression 55

Gambar 4.3 Gambar Form Decompression 56

Gambar 4.4 Gambar Form About Application 57

Gambar 4.5 Gambar Form Profile 58

Gambar 4.6 Gambar Pemilihan Algoritma Kompresi 59

Gambar 4.7 Gambar Open File Dialog 60

Gambar 4.8 Gambar Save File Dialog 60

Gambar 4.9 Gambar Path Pada Masing-Masing Teks Box 61

Gambar 4.10 Gambar Hasil Proses Kompresi 62

Gambar 4.11 Gambar File Hasil Proses Kompresi (*.pec) 62 Gambar 4.12 Gambar Pemilihan Algoritma Dekompresi 63

Gambar 4.13 Gambar Open File Dialog 64


(6)

Gambar 4.16 Gambar Save File Dialog 66 Gambar 4.17 Gambar Path Pada Masing-Masing Teks Box 66

Gambar 4.18 Gambar Hasil Proses Kompresi 67

Gambar 4.19 Gambar Ukuran File Asli Sebelum Dikompresi 67 Gambar 4.20 Gambar Ukuran File Asli Setelah Dikompresi 67 Gambar 4.21 Gambar Ukuran File Setelah Didekompresi 68 Gambar 4.22 Grafik Kedua Algoritma Menggunakan String Homogen

Dengan Ukuran File 30 kb 69 Gambar 4.14 Grafik Kedua Algoritma Menggunakan String Heterogen