Perbandingan Kinerja Algoritma Kompresi Inverted Elias Gamma dan Capocelli Code Pada File Teks

5

BAB 2

TINJAUAN PUSTAKA

Pada bab ini penulis memaparkan teori-teori ilmiah yang didapat dari metode
pencarian fakta yang digunakan untuk mendukung penulisan skripsi ini dan sebagai
dasar pengembangan sistem sehingga dapat diimplementasikan dengan baik dan
benar.

2.1. Kompresi Data
Kompresi data adalah proses mengubah sebuah aliran data input menjadi aliran data
baru yang memiliki ukuran lebih kecil. Aliran yang dimaksud adalah berupa file
ataupun buffer dalam memori. Kebutuhan terhadap kompresi data dipengaruhi oleh
dua alasan, yaitu kecenderungan manusia untuk mengumpulkan data dan kebutuhan
terhadap proses transfer data yang cepat. Karena itu metode-metode untuk
mengkompresi data semakin berkembang (Salomon, 2004).
Sering terjadi mispersepsi mengenai data dan informasi, padahal data dan
informasi adalah dua hal yang berbeda. Pada data terkandung suatu informasi. Namun
tidak semua bagian data terkait dengan informasi tersebut atau pada suatu data

terdapat bagian-bagian data yang berulang untuk mewakili informasi yang sama.
Bagian data yang tidak terkait atau bagian data yang berulang tersebut disebut dengan
data yang berlebihan (redudancy data). Tujuan daripada kompresi data tidak lain
adalah untuk mengurangi data berlebihan tersebut sehingga ukuran data menjadi lebih
kecil dan lebih ringan dalam proses transmisi (Putra, 2010). Di dalam penelitian ini,
file yang akan diteliti berfokus pada jenis file teks, dengan ekstensi txt dan doc. File
teks (flat file) adalah salah satu jenis file komputer yang tersusun dalam suatu urutan
baris data teks biasanya diwakili oleh 8 bit kode ASCII (Solihin, 2013).

Universitas Sumatera Utara

6

2.1.1. Teknik Kompresi Data
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 Losless


Kompresi data lossless adalah teknik kompresi data dimana data yang telah
dikompresi dapat dikembalikan ke data aslinya dengan tidak mengurangi informasi
yang ada pada data tersebut. Dalam teknik kompresi ini, pada saat proses kompresi
dihasilkan sebuah data yang berbeda dengan data aslinya. Karena setiap bit yang
terdapat pada data di-encode sehingga dihasilkan bit yang baru yang lebih pendek.
Data tersebut dikembalikan ke data aslinya (data sebelum dikompresi) pada saat
proses dekompresi. Teknik kompresi lossless digunakan pada data yang tergolong
penting sehingga tidak boleh ada banyak atau sebagian informasi yang hilang. Seperti
misalnya pada file teks, jika terdapat sedikit saja perubahan pada data itu maka akan
sangat mudah kelihatan.

Gambar 2.1. Kompresi Lossless (Pu, 2006)

Contoh aplikasi lossles compression yaitu WINRAR dan WINZIP. Contoh
format file lossles compression: *.zip, *.rar, document file (*.doc, *.xls, *.ppt),
file executable (*.exe)

Universitas Sumatera Utara


7

2.

Kompresi Data Lossy

Kompresi data Lossy adalah teknik kompresi data dimana data mengalami sedikit atau
banyak kehilangan pada saat proses kompresi.Sama seperti data aslinya hanya saja ada
perubahan kerapatan ataupun resolusi pada data tersebut. Oleh karena itu sangat kecil
kemungkinan dan bahkan tidak akan pernah bisa data yang telah dikompresi dengan
teknik kompresi Lossy dapat dikembalikan seperti data sebelum dikompresi atau data
aslinya. Perubahan yang terjadi pada data pada saat proses kompresi tidaklah terlalu
kelihatan. Teknik kompresi ini biasanya digunakan pada data berupa gambar, suara
dan video. Karena pada data tersebutlah kehilangan akan informasi yang detail itu
mungkin tidak dapat dirasakan oleh sistem kerja indera penglihatan dan pendengaran
manusia. Contoh algoritma kompresi Lossy adalah Fractal Compression, Wavelet
Compression, Wyner-Ziv Coding (WZC), dan lain-lain.

Gambar 2.2. Ilustrasi Kompresi Lossy(Sayood, 2006)


Contoh aplikasi lossy compression : aplikasi pengkompres suara (mp3
compressor),ambar (adobe photoshop, paint), video (xilisoft). Contoh format file lossy
compression yaitu MP3, JPEG, MPEG

2.1.2. Pengukuran Kinerja Kompresi Data
Pada suatu teknik yang digunakan dalam proses kompresi data terdapat
beberapafaktor atau variabel yang biasa digunakan untuk mengukur kualitas dari suatu
teknikkompresi data tersebut, yaitu (Salomon & Motta, 2010):

Universitas Sumatera Utara

8

1.

Ratio of Compression (Rc)
Ratio of Compression (Rc) adalah perbandingan antara ukuran data sebelum
dikompresi dengan ukuran data setelah dikompresi.

=


2.










Compression Ratio (Cr)
Compression Ratio (Cr) adalah persentasi besar data yang telah dikompresi yang
didapat dari hasil perbandingan antara ukuran data setelah dikompresi dengan
ukuran data sebelum dikompresi.

=

3.













100 %

Space Savings (SS)
Space Savings (SS) adalah persentase selisih antara data yang belum dikompresi
dengan besar data yang dikompresi.

= 100 % −
4.


Waktu kompresi dan dekompresi
Waktu kompresi dan dekompresi adalah waktu yang dibutuhkan untuk melakukan
proses kompresi dan dekompresi. Semakin kecil waktu yang diperoleh maka
semakin efisien metode yang digunakan dalam proses kompresi dan dekompresi
itu.

2.2. Text File
Text file (disebut juga dengan flat file) adalah salah satu jenis file komputer yang
tersusun dalam suatu urutan baris data teks biasanya diwakili oleh 8 bit kodeAmerican
Standard Code for Information Interchange (ASCII) dan Extended Binary Coded

Universitas Sumatera Utara

9

Decimal Interchange Code (EBCDIC) merupakan cikal bakal dari set karakter
lainnya. ASCII (American Standard Code for Information Interchange) merupakan
suatu standar internasional dalam kode huruf dan simbol seperti Hex dan Unicode
tetapi ASCII lebih bersifat universal. ASCII digunakan oleh komputer dan alat

komunikasi lain untuk menunjukkan teks. Kode ASCII memiliki komposisi bilangan
biner sebanyak 8 bit, dimulai dari 00000000 hingga 11111111. Total kombinasi yang
dihasilkan sebanyak 256, dimulai dari kode 0 hingga 255 dalam sistem bilangan
desimal. Format file teks yang akan digunakan dalam penelitian ini adalah :
1.

Format data teks

Format data teks merupakan format teks yang digunakan untuk menyimpan huruf,
angka, karakter, kontrol (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, kontrol atau simbol pada arsip teks memakan
tempat satu byte. Berbeda dengan jenis teks terformat yang satu huruf saja dapat
memakan tempat beberapa byte untuk menyimpan format dari huruf tersebut seperti
font, ukuran, tebal atau tidak dan sebagainya. Kelebihan dari format data teks ini
adalah ukuran datanya yang kecil karena tiadanya fitur untuk memformat tampilan
teks. Saat ini perangkat lunak yang paling banyak digunakan untuk memanipulasi
format data ini adalah Notepad. (Pramilo, 2008)

2.


Format data dokumen

Doc merupakan ekstensi arsip dokumen perangkat lunak Microsoft Word yang paling
banyak digunakan dalam penulisan laporan, makalah dan sebagainya. Doc merupakan
jenis teks terformat yang tidak hanya dapat 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.
(Pramilo, 2008)

Universitas Sumatera Utara

10

2.3. Algoritma Inverted Elias Gamma
Inverted Elias Gamma adalah kebalikan dari Elias Gamma Code. Elias Gamma Code
adalah salah satu kode yang universal yang dipelopori oleh Peter Elias yang
digunakan untuk encode dan decode bilangan bulat positif n bahkan dalam kasus di
mana integer terbesar yang tidak diketahui sebelumnya (Salomon, 2007). Juga, kode
ini tumbuh perlahan-lahan, untuk itu baik untuk mengompresi data integer dimana

jumlah bilangan bulat kecil lebih besar maka bilangan bulat besar.Adapun aturan
untuk kode nomor dengan menggunakan kodeEliasGammaadalah sebagai berikut
(Salomon, 2007) :
1.

Menulis dalam biner.

2.

Kurangi 1 dari jumlah bit yang ditulis dalam langkah 1 dan tambahkan bahwa
banyak angka nol.

Ada cara yang setara dengan lengkah di atas (Salomon, 2007):
1.

Pisahkan integer ke dalam kekuasaan tertinggi 2 mengandung (2N) dan N digit
biner yang tersisah dari integer.

2.


Encode N di unary, yaitu sebagai N nol diikuti oleh satu-satu

3.

Menambahkan N digit biner yang tersisa untuk representasi ini N.

Tabel 2.1 Tabel Kode Elias Gamma (Salomon, 2007)
1 = 20 + 0 = 1

10 = 23 + 2 = 0001010

2 = 21 + 0 = 010

11 = 23 + 3 = 0001011

3 = 21 + 0 = 011

12 = 23 + 4 = 0001010

4 = 22 + 0 = 00100

13 = 23 + 5 = 0001101

5 = 22 + 1 = 00101

14 = 23 + 6 = 0001010

6 = 22 + 2 = 00110

15 = 23 + 7 = 0001111

7 = 22 + 3 = 00111

16 = 24 + 0 = 00001000

8 = 23 + 0 = 0001000 17 = 24 + 1 = 00001001
9 = 23 + 1 = 0001001 18 = 24 + 2 = 00001010

Maka, table kode Inverted Elias Gamma sebagai berikut :

Universitas Sumatera Utara

11

Tabel 2.2 Tabel KodeInverted Elias Gamma (Salomon, 2007)
1 = 20 + 0 = 0

10 = 23 + 2 = 1110101

2 = 21 + 0 = 101

11 = 23 + 3 = 1110100

3 = 21 + 0 = 100

12 = 23 + 4 = 1110101

4 = 22 + 0 = 11011

13 = 23 + 5 = 1110010

5 = 22 + 1 = 11010

14 = 23 + 6 = 1110101

6 = 22 + 2 = 11001

15 = 23 + 7 = 1110000

7 = 22 + 3 = 11000

16 = 24 + 0 = 11110111

8 = 23 + 0 = 1110111 17 = 24 + 1 = 11110110
9 = 23 + 1 = 1110110 18 = 24 + 2 = 11110101

Berikut adalah langkah-langkah untuk memecahkan kode bilangan bulat berdasarkan
algoritma Elias Gamma Kode (Salomon, 2007):
1.

Bacalah bit string sampai Anda mencapai pertama 1. Panggil 1 sebagai p dan
menyebut jumlah ini nol dengan n.

2.

Lanjutkan membaca setelah p dari n.

3.

Ganti kode dengan karakter menurut tabel Elias Gamma Code.

2.4. Algoritma Capocelli
Algoritma Capocelli ini diusulkan oleh Renato Capocelli adalah awalan, lengkap,
universal, dan juga synchronizable Ini bukan kode Fibonacci umum, tetapi terkait
dengan kode C1 dan C2 dari Apostolico dan Fraenkel (Salomon, 2007). Kode
tergantung pada parameter r dan dilambangkan dengan S (r + 1, 01R). Setelah r telah
dipilih, dua bagian codeword dibangun dengan 01R akhiran dan awalan yang adalah
string biner yang tidak mengandung akhiran. Dengan demikian jika r = 2, akhiran
adalah 011 dan prefiks adalah semua string biner, dimulai dengan string kosong, yang
tidak mengandung 011. Beberapa contoh dari S (3, 011) dan sangat mudah untuk
melihat bagaimana awalan adalah string kosong, 0, 1, 00, 01, dan sebagainya, tetapi
mereka termasuk tidak ada string dengan 011. The codeword dari N = 9 adalah 010 |
011, tapi codeword dari N = 10 memiliki awalan 100 dan tidak 011, sehingga 100 |

Universitas Sumatera Utara

12

011. Secara umum codeword x. . . x0101y. . . y | 011 akan diikuti oleh x. . . x1000y. . .
y | 011 bukan oleh x. . . x0110y. . . y | 011. codeword tersebut memiliki baik bentuk
0β | 011 (di mana β tidak berisi dua berturut-turut 1) atau bentuk 1γ | 011 (di mana γ
tidak mengandung 011).
Misalnya, hanya 12 dari 16 prefiks 4-bit dapat digunakan oleh kode ini, karena
empat prefiks 0011, 0110, 0111, dan 1011 mengandung pola 011. Secara umum,
jumlah codeword panjang N + 3 di S (3, 011) adalah FN + 3 - 1. Untuk N = 4
(codeword dari 4-bit awalan dan 3-bit akhiran), jumlah codeword adalah F4 + 3 -1 =
F7 - 1 = 12 (Salomon, 2007).

Tabel 2.3. Kode S ( 3 , 011 ) untuk Integer N dan Strings BS (Salomon, 2007).
n

S(3,011)

BS

0

011

0

1

0011

1

2

1011

00

3

00011

01

4

01011

10

5

10011

11

6

11011

000

7

000011

001

8

001011

010

9

010011

011

10

100011

100

11

101011

101

12

110011

110

13

111011

111

2.5. Visual Basic .NET
Visual Basic .NET adalah sebuah alat untuk mengembangkan dan membangun
aplikasi yang bergerak di atas sistem .NET Framework, dengan menggunakan bahasa

Universitas Sumatera Utara

13

BASIC. Dengan menggunakan alat ini, para programmer dapat membangun aplikasi
Windows Forms, Aplikasi web berbasis ASP.NET, dan juga aplikasi command-line.
Alat ini dapat diperoleh secara terpisah dari beberapa produk lainnya (seperti
Microsoft Visual C++, Visual C#, atau Visual J#), atau juga dapat diperoleh secara
terpadu dalam Microsoft Visual Studio .NET. Bahasa Visual Basic .NET sendiri
menganut paradigma bahasa pemrograman berorientasi objek yang dapat dilihat
sebagai

evolusi

dari

Microsoft

Visual

Basic

versi

sebelumnya

yang

diimplementasikan di atas .NET Framework. Peluncurannya mengundang kontroversi,
mengingat banyak sekali perubahan yang dilakukan oleh Microsoft, dan versi baru ini
tidak kompatibel dengan versi terdahulu (Leong, 2006).
VB.NET adalah salah satu bahasa pemrograman Komputer Tingkat Tinggi.
Bahasa Pemrograman adalah perintah-perintah yang dimengerti oleh computer untuk
melakukan tugas-tugas tertentu bahasa pemrograman VB.NET dikembangkan oleh
Microsoft , Merupakan Salah Satu bahasa Pemrograman Yang Object Oriented
Program(OOP) atau Pemrograman yang berorientasi pada Object. Kata “Visual”
menunjukkan cara yang digunakan untuk membuat Graphical User Interface (GUI).
Dengan Cara ini, kita tidak perlu lagi menuliskan instruksi pemrograman dalam kodekode baris hanya untuk membuat sebuah Desaign Form/Aplikasi. Tetapi dengan
sangat mudah yakni kita cukup melakukan Drag and drop object-object yang akan kita
gunakan. VB.Net dapat kita jadikan alat bantu untuk membuat berbagai macam
program computer (Leong, 2006).

2.6. Unified Modeling Language (UML)
Unified

Modeling

Language

(UML)

adalah

sebuah

“bahasa”

yang

telah

menjadistandar dalam industri untuk visualisasi, merancang dan mendokumentasikan
sistem piranti lunak. UML menawarkan sebuah standar untuk merancang model
sebuah sistem (Yasin, 2012).
Semua jenis aplikasi piranti lunak dapat dimodelkan menggunakan
UML.Tetapi karena UML juga menggunakan class dan operation dalam konsep
dasarnya, maka UML lebih cocok untuk penulisan piranti lunak dalam bahasa-bahasa
berorientasi objek seperti C++, Java, C# atau VB.NET. Walaupun demikian, UML

Universitas Sumatera Utara

14

tetap dapat digunakan untuk modeling aplikasi procedural dalam VB atau C. Seperti
bahasa-bahasa lainnya, UML mendefinisikan notasi dan syntax/semantik. Notasi UML
merupakan sekumpulan bentuk khusus untuk menggambarkan berbagai diagram
piranti lunak. Setiap bentuk memiliki makna tertentu, dan UML syntaxmendefinisikan
bagaimana bentuk-bentuk tersebut dapat dikombinasikan. Notasi UML terutama
diturunkan dari 3 notasi yang telah ada sebelumnya: Grady BoochOOD (ObjectOriented Design), Jim Rumbaugh OMT (Object Modeling Technique), dan Ivar
Jacobson OOSE (Object-Oriented Software Engineering). (Yasin, 2012) UML masih
terus dikembangkan hingga saat ini. UML 2.5 merupakan versi terbaru yang
dikeluarkan pada bulan Oktober 2012. Dalam penelitian ini penulis akan
menggunakan 4 jenis UML, diantaranya:

1.

Use Case Diagram

Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah
sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana.
Use case memiliki unsur aktor, sistem, use case, association, generalization. Aktor
merupakan sebuah entitas manusia atau mesing yang berinteraksi dengan sistem untuk
melakukan pekerjaanpekerjaan
tertentu.(Yasin, 2012)

2.

Activity Diagram

Activity diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang
dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan
bagaimana mereka berakhir. Berbeda dengan usecase, activity menggambarkan proses
yang berjalan. Unsur yang terdapat pada activity adalah initial node (lingkaran hitam),
aktivitas (segiempat dengan sudut membulat), decision (belah ketupat), fork dan join
(titik sinkronisasi yang dapat berupa titik, garis horizontal atau vertikal), activit final
(lingkaran hitam di dalam lingkaran kosong) (Yasin, 2012).

Universitas Sumatera Utara

15

3.

Sequence Diagram

Sequence diagram menggambarkan interaksi antarobjek di dalam dan di sekitar sistem
berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri dari
dimensi vertikal (waktu) dan dimensihorizontal (objek-objek yang terkait). Sequence
diagram digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah
yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu.
Unsur yang terdapat dalam sequence adalah aktor, lifeline vertikal, message,
specification execution(Yasin, 2012).

4.

Class Diagram

Class diagram adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan
sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek.
Class menggambarkan keadaan (atribut/property) suatu sistem, sekaligus menawarkan
layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). Class diagram
menggambarkan struktur dan deskripsi class, package dan objek besertahubungan satu
sama lain seperti containment, pewarisan, asosiasi, dan lain-lain. Dalam Class
diagram terdapat tiga area pokok, yaitu Nama (dan stereotype), Atribut, dan Metoda
(Yasin, 2012).

Universitas Sumatera Utara