Anda di halaman 1dari 19

BAB II

TINJAUAN PUSTAKA

II.1. Kompresi File

Kompresi merupakan suatu upaya untuk mengurangi jumlah bit yang

digunakan untuk menyimpan atau mentransmisikan data. Kompresi data meliputi

berbagai teknik kompresi yang diterapkan dalam bentuk perangkat lunak

(software) maupun perangkat keras (hardware). Bila ditinjau dari sisi

penggunaannya, kompresi data bisa bersifat umum untuk segala keperluan atau

bersifat khusus untuk keperluan tertentu. Keuntungan data yang terkompresi

antara lain mengurangi bottleneck pada proses I/O dan transmisi data,

penyimpanan data lebih hemat ruang, mempersulit pembacaan data oleh

pihak yang tidak berkepentingan, dan memudahkan distribusi data

dengan media removable seperti flashdisk, CD, DVD, dan lain-lain.

(Kandaga, Tjatur, 2006 : 81)

File adalah data-data yang tersimpan dalam media yang mempunyai

informasi besar file, tanggal dan jam penyimpanan file, nama file, ciri file (ciri

aplikasi yang membuat), dan attribut file. (Hendrayudi,2008 : 3)

Pengiriman data hasil kompresi dapat dilakukan jika pihak pengirim atau

yang melakukan kompresi dan pihak penerima memiliki aturan yang sama dalam

hal kompresi data. Pihak pengirim harus menggunakan algoritma kompresi data

8
9

yang sudah baku dan pihak penerima juga mengunakan teknik dekompresi

data yang sama dengan pengirim sehingga data yang diterima dapat dibaca atau

di-dekode kembali dengan benar. (Hendrayudi,2008 : 3)

Misalnya terdapat kata “Hari ini adalah hari Jum’at. Hari Jum’at adalah

hari yang menyenangkan”. Jika ditelaah lagi, kalimat tersebut memiliki

pengulangan karakter seperti karakter pembentuk kata hari, hari jumat, dan

adalah. Dalam teknik sederhana kompresi pada perangkat lunak, kalimat di atas

dapat diubah menjadi pola sebagai berikut “# ini $ %. % $ # ya@

menyena@kan”. Di mana dalam kalimat diatas, karakter pembentuk hari diubah

menjadi karakter #, hari Jum’at menjadi %, adalah menjadi $, ng menjadi @. Saat

berkas ini akan dibaca kembali, maka perangkat lunak akan mengembalikan

karakter tersebut menjadi karakter awal dalam kalimat. (Hendrayudi,2008 : 4).

II.2. Jenis Teknik Kompresi

Menurut (Kandaga,Tjatur,2008 : 15), Teknik kompresi secara umum dapat

diklasifikasikan menjadi tiga bagian yaitu:

a. Entropy coding, adalah teknik kompresi yang menggunakan proses lossless.

Tekniknya tidak berdasarkan pada media dengan spesifikasi dan karakteristik

tertentu namun berdasarkan urutan data serta tidak memperhatikan semantik

data.

b. Source coding, adalah teknik kompresi dengan menggunakan proses lossy.

Teknik ini berkaitan dengan data semantik (arti data) dan media.
10

c. Hybrid coding adalah teknik kompresi dengan menggunakan kombinasi atau

gabungan dari entropy coding dan source coding.

Berdasarkan outputnya, teknik kompresi dapat dibedakan menjadi dua

jenis yaitu :

a. Teknik kompresi Lossy

Kompresi menggunakan lossy, beberapa bagian data asli hilang ketika

berkas di decoded. Keuntungan dari algoritma ini adalah bahwa rasio kompresi

cukup tinggi. Hal ini dikarenakan cara algoritma lossy yang mengeliminasikan

beberapa data dari suatu berkas. Namun data yang dieliminasikan biasanya adalah

data yang kurang diperhatikan atau di luar jangkauan manusia, sehingga

pengeliminasian data tersebut kemungkinan besar tidak akan mempengaruhi

manusia yang berinteraksi dengan berkas tersebut.

b. Teknik kompresi Lossless

Kompresi menggunakan lossless menjamin bahwa berkas yang dikompresi

dapat selalu dikembalikan ke bentuk aslinya. Algoritma lossless digunakan untuk

kompresi berkas text, seperti program komputer (berkas zip, rar, dll), karena jika

ingin mengembalikan berkas yang telah dikompres ke status aslinya. Kadangkala

ada data-data yang setelah dikompresi dengan teknik ini ukurannya menjadi lebih

besar atau sama. Berdasarkan teknik pengkodean/pengubahan simbol yang

digunakan, metode kompresi dapat dibagi ke dalam tiga kategori, yaitu:


11

a. Metode symbolwase, menghitung peluang kemunculan dari tiap simbol dalam

file input, lalu mengkodekan satu simbol dalam satu waktu, di mana simbol

yang lebih sering muncul diberi kode lebih pendek dibandingkan simbol yang

lebih jarang muncul. Contoh: algoritma Huffman.

b. Metode dictionary, menggantikan karakter/fragmen dalam file input dengan

indeks lokasi dari karakter/fragmen tersebut dalam sebuah kamus (dictionary).

Contoh: algoritma LZW.

c. Metode predictive, menggunakan model finite-context atau finite-state untuk

memprediksi distribusi probabilitas dari simbol-simbol selanjutnya. Contoh:

algoritma DMC.

Jenis kompresi data berdasarkan mode penerimaan data oleh manusia

adalah:

a. Dialogue Mode: yaitu proses penerimaan data di mana pengirim dan penerima

seakan berdialog (real time), seperti pada contoh video conference. Di mana

kompresi data harus berada dalam batas penglihatan dan pendengaran

manusia. Waktu tunda (delay) tidak boleh lebih dari 150 Ms, di mana 50 Ms

untuk proses kompresi dan dekompresi, 100 Ms mentransmisikan data dalam

jaringan.

b. Retrieval Mode: yaitu proses penerimaan data tidak dilakukan secara realtime.

Dapat dilakukan fast forward dan fast rewind di client. Dapat dilakukan

random access terhadap data dan dapat bersifat interaktif.


12

Terdapat beberapa faktor yang sering menjadi pertimbangan dalam

memilih suatu metode kompresi yang tepat karena tidak ada suatu metode

kompresi yang paling efektif untuk semua jenis file. Faktor-faktor tersebut adalah:

a. Kualitas data hasil enkoding: ukuran lebih kecil, data tidak rusak untuk

kompresi lossy.

b. Ketepatan proses dekompresi data: data hasil dekompresi tetap sama dengan

data sebelum dikompresi (kompresi loseless).

c. Kecepatan, ratio, dan efisiensi proses kompresi dan dekompresi

II.3. Rasio Kompresi

Ketika pengujian diperoleh waktu yang diperlukan pada saat kompresi

dan dekompresi sedikit berubah-ubah, maka pengujian untuk setiap metode

dilakukan sebanyak sepuluh kali untuk file data yang sama, kemudian diambil

nilai rata-ratanya. Rasio kompresi dihitung menggunakan rumus :

Rasio = 100% - (ukuran terkompresi / ukuran asal) x 100%

yang berarti semakin tinggi nilai rasio semakin baik pula tingkat

kompresinya. Jika nilainya nol berarti tidak terjadi kompresi, dan jika nilainya

negatif berarti proses kompresi telah membuat file output semakin besar. Waktu

yang diperlukan pada saat proses kompresi dan dekompresi disajikan

dalam satuan detik, dengan ketepatan sampai seperseratus detik.

(Kandaga, Tjatur, 2006 : 91)


13

II.4. Metode Kompresi Algoritma LZW

Algoritma LZW dikembangkan dari metode kompresi yang dibuat oleh

Ziv dan Lempel pada tahun 1977. Algoritma ini melakukan kompresi dengan

menggunakan dictionary, di mana frase-frase teks digantikan dengan indeks yang

diperoleh dari sebuah “kamus, di mana kode-kode khusus digunakan untuk

merepresentasikan kata-kata yang ada. Pendekatan ini bersifat adaptif dan efektif

karena banyak karakter dapat dikodekan dengan mengacu pada string yang telah

muncul sebelumnya dalam teks. Prinsip kompresi tercapai jika referensi dalam

bentuk pointer dapat disimpan dalam jumlah bit yang lebih sedikit dibandingkan

string aslinya. Frase-frase tersebut memiliki kode sesuai dengan kode ASCII dari

karakter-karaktemya. Dengan cara ini maka tidak ada satu karakterpun yang tidak

dapat langsung dikodekan oleh pengkode LZW. (Kandaga, Tjatur, 2006 : 85)

Struktur yang digunakan dalam proses pengkodean/pendekodean algoritma

LZW adalah sbb:

BEGIN
S = next input character;
While not EOF
{
C = next input character;
If s + c exists in the diactionary
S=s+c
Else
{
Output the code for s;
Add string s + c to the dictionary with a new code
S = c;
}
}
END
14

Cara kerja algoritma ini dengan menggunakan bagian sebelumnya dari

aliran input sebagai kamus, dan membandingkan aliran data yang sedang di

encode dengan data yang ada dikamus yang baru dimasukkan. Kata lain algoritma

ini bertujuan merubah input data yang dikompresi menjadi blok-blok data yang

tidak berulang bersamaan dengan membangun dictionary blok-blok data, Sebagai

contoh, string “ABBABABAC” akan dikompresi dengan LZW. Isi dictionary

pada awal proses diset dengan tiga karakter dasar yang ada: “A”, “B”, “C”.

Tahapan proses kompresi ditunjukkan pada tabel II.1.

Tabel II.1 : Tahapan Kompresi LZW

Langkah Posisi Karakter Dictionary Output


1 1 A [4] A B [1]
2 2 B [5] B B [2]
3 3 B [6] B A [2]
4 4 A [7] A B A [4]
5 6 A [8] A B A C [7]
6 9 C ---- [3]
Sumber : (Linawati,2005 : 11)

Kolom posisi menyatakan posisi sekarang dari stream karakter dan kolom

karakter menyatakan karakter yang terdapat pada posisi tersebut. Kolom

dictionary menyatakan string baru yang sudah ditambahkan ke dalam dictionary

dan nomor indeks untuk string tersebut ditulis dalam kurung siku. Kolom output

menyatakan kode output yang dihasilkan oleh langkah kompresi.

BEGIN
S = NULL;
while not EOF{
K = NEXT INPUT CODE;
Entry = dictionary entry for K;
Ouput entry;
if(s != NULL)
add string s + entry[0] to dictionary with new code
S = Entry;
15

Proses dekompresi pada LZW dilakukan dengan prinsip yang sama seperti

proses kompresi. Tahapan poses dekompresi dapat ditunjukkan pada tabel II.2.

Tabel II.2 : Tahapan Dekompresi LZW

Langkah Kode Output Dictionary


1 [1] A ----
2 [2] B [4] A B
3 [2] B [5] B B
4 [4] AB [6] B A
5 [7] ABA [7] A B A
6 [3] C [8] A B A C
Sumber : (Linawati, 2005 : 12)

II.5. Flowchart

Bagan alir program (program flowchart) adalah suatu bagan yang

menggambarkan arus logika dari data yang akan diproses dalam suatu program

dari awal sampai akhir. Bagan alir program merupakan alat yang berguna bagi

programmer untuk mempersiapkan program yang rumit. Bagan alir terdiri dari

simbol-simbol yang mewakili fungsi-fungsi langkah program dan garis alir

(flowlines) menunjukkan urutan dari simbol-simbol yang akan dikerjakan.

(Jogiyanto Hartono,2004:662)

Berikut adalah simbol-simbol program flowchart menurut ANSI

(American National Standard Institute), yang dapat di lihat pada table II.3
16

Tabel II.3. Simbol Flow Chart

Simbol Arti Keterangan

Untuk menunjukkan awal dan


Terminal
akhir program.

Persiapan Untuk memberikan nilai awal pada


(preparation) suatu variabel atau counter.

Pengolahan Untuk pengolahan arithmatika dan

(processing) pemindahan data.

Untuk mewakili operasi


Keputusan (decision)
perbandingan logika.
Untuk proses yang detilnya
Proses terdefinisi
dijelaskan terpisah, misalnya
(predifined process)
dalam bentuk subroutine.
Untuk menunjukkan hubungan
Penghubung
arus proses yang terputus masih
(connector)
dalam halaman yang sama.
Untuk menunjukkan hubungan
Penghubung halaman
arus proses yang terputus masih
lain (off page connector)
dalam halaman yang sama.
Untuk memberikan keterangan-
Penjelasan (annotation
keterangan guna memperjelas
flag)
simbol-simbol yang lain.

Sumber : (Jogiyanto Hartono,2004:662)

II.6. Pseudocode

Pseudocode adalah deskripsi dari algoritma pemrograman komputer yang

menggunakan struktur sederhana dari beberapa bahasa pemograman tetapi bahasa

tersebut hanya ditujukan agar dapat dibaca manusia. Biasanya yang ditulis dari
17

pseudocode adalah variabel dan fungsi. Tujuan penggunaan utama dari

pseudocode adalah untuk memudahkan manusia dalam memahami prinsip-prinsip

dari suatu algoritma. Penggunaan pseudocode umumnya banyak ditemukan di

buku-buku dan artikel-artikel tentang pemrograman yang membahas tentang

algoritma tertentu. Kadang pula pseudocode ditemukan dalam merencanakan

pengembangan suatu program komputer. Dalam pseudocode, tidak ada syntax

standar yang resmi.

Karena itu, pseudocode ini dapat diterapkan dalam berbagai bahasa

pemograman. Tentu saja harus kita sesuaikan setiap tahap dengan bahasa

pemograman yang kita gunakan. Fungsi dari pseudocode mungkin sama dengan

Flowchart. Perbedaannya terletak pada cara penyampaiannya. Pseudocode

menggunakan kata-kata untuk menjelaskan suatu algoritma, sedangkan Flowchart

menggunakan gambar. Contoh Algoritma dari pseudocode dapat dilihat pada table

II.4.

Tabel II.4. Contoh Pseudocode

Algoritma Pseudo Code

Masukan Panjang Input Panjang

Masukan Lebar Input Lebar

Nilai Luas adalah panjang x lebar Luas <- panjang x lebar

Tampilkan luas Print luas

Sumber : (Linawati,2005 : 9)
18

II.7. Jaringan Komputer

Sebuah jaringan komputer paling sedikit terdiri dari dua komputer yang

saling terhubung dengan sebuah media sehingga komputer-komputer tersebut

dapat saling berbagi resource dan saling berkomunikasi. Kenyataannya sebuah

network biasanya terdiri dari banyak komputer (lebih dari dua) semua network

berbasis pada konsep pembagian (sharing): (Rifki,Yosafine,2011 : 1)

Sekelompok komputer dan device lain yang saling terhubung membentuk

sebuah network, sedangkan konsep dari komputer-omputer yang saling berbagi

resource dikenal dengan istilah networking. Komputer-komputer yang termasuk

ke dalam sebuah jaringan dapat saling berbagi resource berupa pesan, printer,

mesin fax, modem, dan device-device lain. (Rifki,Yosafine2011 : 2)

Berdasarkan lokasi geografis dan ukurannya, jaringan terbagi ke dalam

beberapa jenis, diantaranya :

1. LAN (Local Area Network)

LAN merupakan sebuah kumpulan komputer yang terdapat pada sebuah

lokasi dan saling terhubung, misalkan jaringan yang terdapat dalam sebuah

gedung. Secara aministrasi dapat dilakukan sendiri oleh seseorang atau

beberapa administrator (orang yang bertugas dan bertanggung jawab

memelihara jaringan agar tetap berjalan secara normal). Yang dapat dilihat

pada gambar II.1.


19

Gambar II.1. LAN (Local Area Network)


Sumber : (Rifki, Yosafine ,2011 : 4)

2. MAN (Metropolitan Area Network)

MAN biasanya meliputi area yang lebih besar dari LAN, misalnya antar

wilayah dalam satu propinsi. Dalam hal ini jaringan menghubungkan

beberapa buah jaringan-jaringan kecil ke dalam lingkungan area yang

lebih besar, sebagai contoh yaitu jaringan Bank dimana beberapa kantor

cabang sebuah Bank di dalam sebuah kota besar dihubungkan antara satu

dengan lainnya, yang dapat dilihat pada gambar II.2.

Gambar II.2. MAN (Metropolitan Area Network)


Sumber : (Rifki, Yosafine,2011 : 4)
20

3. WAN (Wide Area Network)

Merupakan sistem jaringan yang saling menghubungkan beberapa LAN dan

tidak tergantung pada sebuah lokasi, misalkan jaringan internet. Secara

administrasi jarangan WAN membutuhkan pihak ketiga (network provider)

untuk menyediakan media penghubung yang mampu menghubungkan

jaringan-jaringan yang berbeda lokasi itu, yang dapat dilihat pada gambar II.3.

Gambar II.3. WAN (Wide Area Network)


Sumber : (Rifki, Yosafine,2011 : 5)

Pada umumnya semua jaringan memiliki komponen, fungsi dan

kemampuan sebagai berikut :

1. Server, komputer yang menyediakan resource agar dapat diakses oleh semua

pengguna jaringan.

2. Client, komputer-komputer yang dapat mengakses server dan dapat

menggunakan resource yang tersedia.

3. Media, cara komputer-komputer dalam sebuah jaringan terhubung.

4. Shared data, file atau folder yang disediakan server melalui jaringan.

5. Shared printer dan device lain, resource lain yang disediakan oleh server.
21

6. Resource, file, printer, atau item-item yang digunaan oleh pengguna jaringan.

Berdasarkan penjelasan hal diatas, network terbagi ke dalam dua kategori

penggolongn yaitu:

1. Peer to peer (workgroup). Dalam jaringan peer to peer tidak ada server

khusus atau hierarki di antara komputer-komputer yang saling terhubung.

Semua komputer berstatus sama dan dikenal sebagai peer. Komputer-

komputer yang terdapat dalam jaringan peer to peer dapat bertindak sebagai

server dan juga bertindak sebagai client. Jenis jaringan ini juga tidak memiliki

administrator yang bertanggung jawab terhadap seluruh jaringan. Masing-

masing user bertindak sebagai administrator pada komputer yang

digunakannya. User masing-masing komputer dapat menentukan data mana

yang diperbolehkan untuk diakses oleh user dari komputer lain.

(Rifki,Yosafine,2011 : 7)

2. Client-Server (server based), Jaringan client-server merupakan sebuah sistem

jaringan yang terdiri dari dua bagian, yakni :

a. Client, mesin yang melakukan permintaan resource.

b. Dedicated server, mesin yang menyediakan resource dan memproses

permintaan dari client kemudian mengembalikan hasil proses tersebut

kembali ke client. Yang melakukan permintaan sebelumnya disebut

dedicated karena mesin yang bertindak sebagai server dioptimalisasi untuk

secraa cepat melayani permintaan dari client jaringan dan menjamin

sistem keamanan file dan direktori. (Rifki,Yosafine,2011 : 9)


22

II.8. Topologi Jaringan Komputer

Topologi adalah suatu cara menghubungkan komputer yang satu dengan

komputer lainnya sehingga membentuk jaringan. Cara yang saat ini banyak

digunakan adalah Bus, Token Ring, dan Star Network. Masing-masing topologi ini

Mempunyai ciri khas, dengan kelebihan dan kekurangannya sendiri.

1. Topologi Token Ring, Di dalam topologi Ring semua workstation dan server

dihubungkan sehingga terbentuk suatu pola lingkaran atau cincin. Tiap

workstation ataupun server akan menerima dan melewatkan informasi dari

satu komputer ke komputer lain, bila alamat-alamat yang dimaksud sesuai

maka informasi diterima dan bila tidak informasi akan dilewatkan, yang dapat

dilihat pada gambar II.4.

Gambar II.4. Topologi Token Ring


Sumber : (Wahidin,2007:16)

2. Topologi Bus, Pada topologi Bus digunakan sebuah kabel tunggal atau kabel

pusat dimana seluruh workstation dan server dihubungkan, dapat dilihat pada

gambar II.5.
23

Gambar II.5. Topologi Jaringan Bus


Sumber : (Wahidin,2007:16)

3. Topologi Star, Pada topologi Star, masing-masing workstation dihubungkan

secara langsung ke server atau HUB. Keunggulan dari topologi tipe Star ini

adalah bahwa dengan adanya kabel tersendiri untuk setiap workstation ke

server, maka bandwidth atau lebar jalur komunikasi dalam kabel akan

semakin lebar sehingga akan meningkatkan unjuk kerja jaringan secara

keseluruhan. Dan juga bila terdapat gangguan di suatu jalur kabel maka

gangguan hanya akan terjadi dalam komunikasi antara workstation yang

bersangkutan dengan server, dapat dilihat pada gambar II.6.

Gambar II.6. Topologi Jaringan Star


Sumber : (Wahidin,2007:16)
24

II.9. Visual Studio 2005

Visual Basic.Net 2005 (VB.NET 2005) atau biasa disebut Visual Basic 8

adalah teknologi permograman Microsoft yang dapat digunakan untuk membuat

aplikasi dilingkuangn kerja berbasis Windows. Visual Basic.Net 2005 adalah

pengembangan dari Visual Basic sebelumnya. kelebihan VB.Net 2005 terletak

pada tampilannya yang lebih canggih dibandingkan edisi Visual Basic

sebelumnya. selain memiliki kelebihan, VB.Net 2005 juga memiliki kekurangan.

Kekurangan VB.Net 2005 yang terlihat jelas adalah beratnya aplikasi ini apabila

dijalankan dikomputer yang memiliki spesifikasi sederhana. (Andi,2006 : 1)

Terdapat beberapa fungsi dasar dalam bahasa pemrograman pada

umumnya yang dapat dijelaskan sebagai berikut :

Variable merupakan tempat yang digunakan untuk menampung nilai yang

bersifat sementara. Nilai yang diisikan harus sesuai dengan tipe data dari variable

tersebut, Hal-hal yang perlu diperhatikan dalam mendeklarasikan sebuah variable

sebagai berikut.

1. Harus terdiri atas huruf, angka atau garis bawah (underscore).

2. Harus diawali dengan huruf.

3. Tidak boleh menggunakan kata yang sudah dipakai oleh Visual Studio 2005.

4. Panjang Variable maksimal 255 karakter.


25

Konstanta merupakan variable yang nilainya bersifat tetap (tidak

berubah). Anda hanya perlu sekali dalam mendeklarasiannya. Apabila konstanta

menggunakan private berarti konstanta tersebut hanya bias digunakan dalam

modul tersebut atau tempat dimana konstanta itu dideklarasikan. Tetapi apabila

konstanta menggunakan public, berarti kontanta dapat digunakan diluar modul

atau diluar tempat dimana konstanta itu di deklarasikan.

Adapun tampilan interface Visual Studio.Net 2005 dapat dilihat pada

gambar II.7:

Menu Bar
ToolBar

Push Handle Page Tab Solution Explorer

Form Window

ToolBox

Properties

Errorlist

Status

Gambar II.7. Tampilan Visual Studio.Net


Sumber : (Andi 2006 : 8)
26

1. Menu Bar, Menu standar pada Visual Basic.Net atau Visual Studio 2005

2. Toolbar, Daftar tool (perangkat) untuk menjalankan perintah yang sering

digunakan

3. Toolbox, Daftar kontrol yang dapat ditambahkan ke dalam program sebagai

antarmuka (interface)

4. Form Designer, Digunakan untuk mengedit tampilan form serta mengatur posisi

kontrol pada form

5. Solution Eplorer, Digunakan untuk mengolah file dan proyek yang berhubungan

dengan Solution Eplorer.

6. Properties, Digunakan untuk mengedit properti dari form dan kontrol yang

sedang diedit.

7. Error List, Menampilkan pesan error jika ada kesalahan.

8. Status, Menampilkan status aplikasi saat dijalankan.

Anda mungkin juga menyukai