• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2017

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

Copied!
97
0
0

Teks penuh

(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)

{

(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);

(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(

(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"; }

(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;

(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

(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)

{

(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 = "";

(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

(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

(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)

(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.

(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)

(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) {

(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

(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.

(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

(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.

(33)
[image:33.595.153.443.71.719.2]
(34)
[image:34.595.154.442.69.711.2]
(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

(36)
(37)

2. Perancangan Alur Proses Kompresi Pada Algoritma Ternary Comma Code

[image:37.595.191.424.175.712.2]

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

[image:38.595.187.408.186.689.2]

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.

[image:39.595.144.471.274.585.2]

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.

[image:40.595.146.469.176.461.2]

2. Menu Item Compression, Decompression dan Exit

Gambar 3.13 Menu Item Compression, Decompression dan Exit

(41)
[image:41.595.134.463.112.407.2]

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)
[image:42.595.118.495.111.382.2]

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

(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.

[image:43.595.107.486.383.657.2]

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.

(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.

(45)
[image:45.595.120.492.108.387.2]

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.

(46)
[image:46.595.108.485.109.407.2]

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.

(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

(48)
[image:48.595.138.463.68.370.2]

Gambar 4.1. Gambar Form Home

4.1.2 Form Compression

(49)

Gambar 4.2. Gambar Form Compression

4.1.3 Form Decompression

(50)
[image:50.595.138.459.71.359.2]

Gambar 4.3. Gambar Form Decompression

4.1.4 Form About Application

(51)
[image:51.595.126.471.73.381.2]

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.

[image:51.595.141.455.482.743.2]
(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 :

[image:52.595.126.472.274.566.2]

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

(53)
[image:53.595.131.467.62.364.2]

Gambar 4.7 Gambar Open File Dialog

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

[image:53.595.142.455.457.731.2]
(54)
[image:54.595.128.468.131.427.2]

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

(55)
[image:55.595.132.468.65.359.2]

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

(56)
[image:56.595.145.474.155.448.2]

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

(57)
[image:57.595.145.474.70.365.2] [image:57.595.145.473.394.692.2]

Gambar 4.13 Gambar Open File Dialog

Gambar 4.14 Gambar Setelah File Berhasil Dipilih

(58)
[image:58.595.146.473.69.359.2]

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.

[image:58.595.148.469.465.754.2]
(59)
[image:59.595.165.466.133.399.2]

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

(60)
[image:60.595.145.473.68.357.2]

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

(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.

(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.

(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).

(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

[image:67.595.94.502.456.678.2]

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

(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

(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

(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).

[image:71.595.119.478.296.517.2]

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

(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

(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#

(74)

windows (deksktop) dan aplikasi berbasis web serta aplikasi berbasis web service. Terdapat beberapa editor dari pemrograman C#, yaitu (Saputra, 2013) :

1. Notepad

Notepad dapat membuat aplikasi berbahasa pemrograman C#. File-file C# disimpan dengan ekstensi .cs. Jika tidak hati-hati menyimpan file C# di Notepad, misalnya menyimpan file dengan nama test.cs, maka tidak menutup kemungkinan file tersebut test.cs.txt kecuali kita telah men-setting terlebih dahulu box drop down list pada fungsi Save As menjadi All File.

2. Visual Studio 6

Jika anda telah terbiasa menggunakan Visual Studio 6, tools tersebut bisa digunakan untuk membuat aplikasi dengan C#, khususnya dengan menggunakan editor Microsoft Visual C++.

Ada beberapa alasan kenapa developer memilih C#, yaitu (Nugroho et al, 2013) : 1. Sederhana (simple)

C# menghilangkan beberapa hal yang bersifat kompleks yang terdapat dalam beberapa macam bahasa pemrograman seperti Java dan C++, termasuk diantaranya menghilangkan macro, templates, multiple inheritance dan virtual base classes.

2. Modern

Adanya beberapa fitur seperti exception handling, garbage collection, extensible data types dan code security. Adanya fitur tersebut menjadikan bahasa C# sebagai bahasa pemrograman yang modern.

3. Object-oriented language

Kunci dari bahasa pemrograman yang bersifat object-oriented adalah encapsulation, inheritance dan polymorphism.

4. Powerful dan fleksibel

C# bisa digunakan untuk membuat berbagai macam aplikasi, seperti aplikasi pengolah kata, grafik, spreadsheet atau bahkan membuat compiler untuk sebuah bahasa pemrograman.

5. Efisien

(75)

6. Modular

Kode C# ditulis dengan pembagian masing class-class yang terdiri dari beberapa routines yang disebut sebagai member methods.

7. C# akan popular

Dengan dukungan penuh dari Microsoft yang mengeluarkan produk-produk utamanya dengan dukungan Framework .NET, maka masa depan bahasa C# sebagai salah satu bahasa pemrograman yang ada didalam lingkungan Framework .NET akan lebih baik.

2.8UML (Unifed Modelling Language)

UML (Unifed Modelling Language) adalah salah satu standar bahasa yang banyak digunakan di dunia industri untuk mendefinisikan requirement, membuat analisis dan

Gambar

Gambar 3.7 Flowchart Punctured Elias Codes Secara Umum Pada Sistem
Gambar 3.8 Flowchart Ternary Comma Code Secara Umum Pada Sistem
Gambar 3.10 Flowchat Proses Kompresi dengan Algoritma Ternary Comma Code
Gambar 3.11 Flowchart Dekompresi Algoritma Punctured Elias Codes dan Ternary
+7

Referensi

Dokumen terkait

- Cara mengajukan : Untuk mengajukan fasilitas kartu kredit ini, anda dapat menghubungi Account Ofcer di kantor cabang Bank Ekonomi terdekatb. -

[r]

Dari diagram diatas, maka dapat disimpulkan bahwa alternatif jawaban yang paling banyak dipilih oleh responden adalah alternatif jawaban C (kadang- kadang) sebanyak 35%

Liability based on fault in principle refers to Article 1 paragraph (1) of the Criminal Code (KUHP) which explicitly states that an act can not be criminal,

We adopt the SORTIE model in this work to sim- ulate forest succession; the process is cy- clic, and the simulation flow of one time step is divided into six submodels:

berdasar data tersebut, dengan latar belakang adat ketimuran yang bekerja adalah laik-laki sebagai kepala keluarga, maka seharusnya jam kerja perempuan harus tidak lebih

Analysis of the research used Design Expert 10 software.The results showed that carbopol 940 and oleic acid had significant effect in determining the viscosity response and

Tujuan umum pada penelitian ini adalah untuk menganalisis respon mekanik dan mutu fisik bumper beam berbahan busa polimer yang diperkuat serbuk TKKS dan serbuk aluminium