Pembangunan Aplikasi Kompresi Data Pada Saat Pengiriman Data Terjadi Menggunakan Algoritma GZIP Pada Jaringan LAN (Local Area Network)

(1)

1 1.1 Latar Belakang Masalah

Pada saat mengirim data atau file tentu akan menggunakan bandwidth yang besar apabila ukuran file yang akan dikirim juga besar, sehingga proses pengiriman data akan mempengaruhi kesibukan pada jaringan dan akan membuat pengiriman data atau file menjadi lama. Hal ini akan menjadi permasalah yang serius dan berkepanjangan dan mengganggu sistem jaringan. Sehubungan dengan permasalahan yang telah dipaparkan maka diperlukan sebuah aplikasi untuk mengecilkan atau mengkompresi ukuran data atau file tersebut secara streaming agar dapat menghemat pemakaian bandwidth. Salah satu algoritma untuk mengkompresi data adalah algoritma GZip.

Secara spesifik, kompresi data atau file bertujuan untuk mereduksi tempat (space) penyimpanan data atau file dan mereduksi waktu untuk mentransmisikan data atau file yang memiliki kapasitas besar. Dengan memanfaatkan teknik kompresi ini, maka proses pengiriman data atau file akan menjadi lebih maksimal dan mereduksi waktu transfer file.

Pada Tugas Akhir ini penyusun akan merancang sebuah aplikasi kompresi dan dekompresi data secara streaming dengan menggunakan Algoritma GZip pada jaringan LAN. Sedangkan Algoritma yang digunakan untuk mengkompresi data atau file adalah Algoritma GZip. Penggunaan Algoritma GZip ini karena sifatnya yang


(2)

Loseless, teknik kompresi dimana data atau file hasil kompresi dapat didekompres lagi dan hasilnya tepat sama seperti data atau file sebelum proses kompresi.

Dari uraian yang telah dipaparkan maka diambil topik tugas akhir “Pembangunan Aplikasi Kompresi Data Pada Saat Pengiriman Data Terjadi Menggunakan Algoritma GZip Pada Jaringan LAN (Local Area Network)”.

1.2 Identifikasi Masalah

Berdasarkan latar belakang masalah yang telah dipaparkan, maka dapat ditemukan masalah yaitu: bagaimana mengompresi data atau file disaat pengiriman data atau file pada jaringan LAN dengan menggunakan Algoritma GZip.

1.3 Maksud dan Tujuan

Maksud dari penulisan tugas akhir ini adalah untuk mengimplementasikan Algoritma GZip kedalam aplikasi kompresi data pada saat pengiriman data terjadi pada jaringan LAN.

Sedangkan tujuan yang ingin dipacai adalah :

1. Membangun aplikasi yang dapat mengkompresi data pada saat pengiriman file terjadi.

2. Membangun aplikasi yang dapat menghemat penggunaan bandwidth untuk mentransmisikan data atau file.

1.4 Batasan Masalah/Ruang Lingkup Kajian

Pada penulisan tugas akhir ini ruang lingkup kajian dibatasi hanya pada : 1. Algoritma yang digunakan adalah Algoritma GZip.


(3)

3. Data atau file yang dikirim akan terkompresi.

4. Data atau file dapat diakses secara bersamaan (multipoint). 5. Setiap komputer telah terhubung dengan server.

6. Server berfungsi sebagai tempat penyimpanan file yang terkompresi. 7. Bahasa pemrograman yang digunakan adalah Java.

1.5 Metodologi Penelitian

Metode penelitian merupakan tahapan-tahapan yang dilalui oleh peneliti dari perumusan masalah sampai kesimpulan, yang membentuk sebuah alur yang sistematis. Metodologi penelitian in digunakan sebagai pedoman penelitian dalam pelaksanaan penelitian ini agar hasil yang dicapai tidak menyimpang dari tujuan yang telah ditetapkan sebelumnya.

Metodologi penelitian yang digunakan oleh penulis adalah : 1. Metode Studi Literatur

Metode studi literatur dilakukan dengan cara mempelajari buku-buku referensi yang berhubungan dengan pengompresian file. Penulis lebih banyak melakukan browsing di Internet, dikarenakan buku referens yang terlalu sedikit guna mendapatkan informasi yang bisa membantu penulis dalam menyelesaikan laporan tugas akhir ini.

2. Metode Studi Ekperimen

Metode studi eksperimen merupakan cara-cara atau teknik dalam melakukan suatu penelitian. Dalam penulisan tugas akhir ini, menggunakan metode penelitian eksperimen, yang berarti mengadakan kegiatan percobaan untuk melihat hasil dari


(4)

aplikasi kompresi file dengan cara melakukan perancangan aplikasi kompresi file pada komputer.

1.5.1 Pembangunan Perangkat Lunak

Metode yang digunakan dalam mengembangkan perangkat lunak adalah metode waterfall. Tahapan-tahapan yang terdapat dalam model waterfall (Gambar 1.1) adalah sebagai berikut [1]:

a. System engineering (Rekayasa perangkat lunak)

Merupakan tahapan yang pertama kali dilakukan yaitu merumuskan sistem yang akan kita bangun.

Hal ini bertujuan agar pengembang benar-benar memahami sistem yang akan kita bangun dan langkah-langkah serta kebijakan apa saja yang berkaitan dengan pengembangan sistem tersebut.

b. Requirement analiysis

Melakukan analisis terhadap permasalahan yang dihadapi dan menetapkan kebutuhan perangkat lunak.

c. Coding (implementasi)

Pengkodean yan mengimplementasikan hasil desain ke dalam kode atau bahasa yang dimengerti oleh mesin komputer dengan menggunakan bahasa pemrograman tertentu.

d. Testing (pengujian)

Melakukan pengujian yang menghasilkan kebenaran program. Proses pengujian berfokus pada logika internal perangkat lunak, memastikan bahwa


(5)

semua pernyataan sudah diuji dan memastikan apakah hasil yang diinginkan sudah tercapai atau belum.

e. Maintenance (perawatan)

Menangani perangkat lunak yang sudah selesai agar dapat berjalan lancar dan terhindar dari gangguan-gangguan yang dapat menyebabkan kerusakan.

System Engineering

Requirements Analysis

Coding

Testing

Maintenance

Feedback

Gambar 1.1 Metode Waterfall 1.6 Sistematika Penulisan

Sistematika penyusunan skripsi dibagi dalam beberapa bab dengan pokok permasalahan. Sistematika secara umum adalah sebagai berikut :

BAB I PENDAHULUAN

Bab ini membahas latar belakang, rumusan masalah, maksud dan tujuan, batasan masalah, metodologi penelitian, dan sistematikas penulisan.

BAB II TINJAUAN PUSTAKA

Bab ini menjelaskan teori-teori atau dasar-dasar pengetahuan, jaringan, kompresi, streaming, Algoritma GZip, Java, Eclipse.


(6)

BAB III ANALISIS DAN PERANCANGAN SISTEM

Bab ini mengulas tetang Algoritma kompresi yang digunakan yaitu Algoritma GZip, dan perancangan sistem yang akan dibangun, serta menentukan kebutuhan-kebutuhan sistem dan perangkat lunak sistem.

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab ini menjelaskan tentan gimplementasi Algoritma GZip dalam kompresi file digital. Serta menjelaskan pengujian aplikasi yang telah dibuat tersebut.

BAB V KESIMPULAN DAN SARAN


(7)

7 2.1 Konsep Dasar Jaringan

Jaringan komputer adalah sekelompok komputer yang saling dihubungkan sehingga antara satu komputer dengan komputer yang lain dapat berbagi data atau berbagi sumber daya (sharing Resource) [2].

Komputer - komputer yang terhubung dalam jaringan computer harus memakai aturan komunikasi (protokol) yang sama. Hal ini dimaksudkan agar masing – masing komputer dapat berkomunikasi yang baik dengan komputer yang lainnya. Protocol yang menjadi standar International adalah ITCP/IP (Transmission Control Protocol / Internet Protocol).

2.1.1 Berdasarkan Skala

Secara umum jaringan komputer terbagi atas 3 jenis, yaitu : a. Local Area Network (LAN)

Jaringan ini digunakan untuk menghubungkan komputer-komputer lokal, seluruh komputer yang terhubung ke jaringan terhubung pada satu pusat yang disebut gateway. LAN biasa ditemui pada jaringan-jaringan kecil dalam suatu ruangan atau lembaga tertentu. Dalam pengembangannya, LAN berkembang menjadi sebuah Metropolitan Area Network (MAN), yang sudah melibatkan lebih dari satu gateway, dan biasanya telah memiliki sebuah server utama. MAN biasanya diterapkan pada Sistem Informasi perkotaan.


(8)

b. Metropolitan Area Network (MAN)

Metropolitan Area Network (MAN), pada dasarnya merupakan versi LAN yang berukuran lebih besar dan biasanya menggunakan teknologi yang sama dengan LAN. MAN dapat mencakup kantor-kantor perusahaan yang letaknya berdekatan atau juga sebuah kota dan dapat dimanfaatkan untuk keperluan pribadi (swasta) atau umum. MAN mampu menunjang data dan suara, bahkan dapat berhubungan dengan jaringan televisi kabel

c. Wide Area Network (WAN)

Jaringan komputer skala luas (WAN) merupakan pengembangan dari MAN dan telah melibatkan lebih dari satu server utama, masing masing server utama saling terhubung dan setiap komputer yang terhubung ke jaringan akan dapat saling mengakses server tersebut. WAN biasanya mencakup sebuah area yang sangat luas, bahkan antarnegara. Dalam perkembangannya, WAN akan berkembang menjadi sebuah jaringan global yang biasa dikenal sebagai Interconnected-Networking (Internet). Untuk menghubungkan jaringan lokal dengan jaringan lokal lain maupun dengan jaringan berskala luas (WAN), diperlukan sebuah perangkat khusus untuk mengatur gateway-nya, yaitu Router. 2.1.2 Berdasarkan Fungsi

a. Jaringan peer-to-peer (P2P) atau point-to-point

Kedudukan setiap komputer yang terhubung dalam jaringan adalah sama. Tidak ada komputer yang menjadi pelayan utama (server). Sehingga semua


(9)

komputer dalam jaringan dapat saling berkomunikasi dan berbagi penggunaan perangkat keras dan perangkat lunak .

b. Jaringan client-server

Pada jaringan client-server terdapat sebuah komputer yang mengatur semua fasilitas yang tersedia dalam jaringan komputer, seperti komunikasi, penggunaan bersama perangkat keras dan perangkat lunak serta mengontrol jaringan. Komputer ini dinamakan server. Semua komputer lain selain server disebut client. 2.1.3 Topologi Jaringan Komputer

Topologi merupakan diagram yang mewakili cara komputer terhubung dalam jaringan[3]. Terdapat bermacam-macam topologi di dalam teori jaringan komputer, namun dalam laporan ini hanya beberapa topologi yang dibahas. Karena topologi ini masih sering digunakan oleh perusahaan ataupun pengguna jaringan komputer lainnya:


(10)

1. Topologi Bus

Gambar 2.1 Topologi Bus

Pada topologi bus seluruh komputer dalam jaringan terhubung dalam sebuah bus atau jalur komunikasi data utama / backbone (berupa kabel) seperti yang telihat pada gambar 2.1. Komputer dalam jaringan berkomunikasi dengan cara mengirim dan mengambil data melalui bus.

Keunggulan :

a. Hemat kabel.

b. Layout kabel sederhana. c. Mudah dikembangkan. Kelemahan :

a. Deteksi dan isolasi kesalahan sangat kecil. b. Kepadatan lalu lintas data.

c. Bila salah satu client rusak, maka jaringan tidak bisa berfungsi. d. Diperlukan repeater untuk jarak jauh.


(11)

2. Topologi Ring

Gambar 2.2 Topologi Ring

Sesuai dengan namanya, ring atau cincin, seluruh komputer dalam jaringan terhubung pada sebuah jalur data yang menghubungkan komputer satu dengan lainnya secara sambung-menyambung sedemikian rupa sehingga menyerupai sebuah cincin seperti yang terlihat pada gambar 2.2. Topologi ini mirip dengan hubungan seri pada rangkaian listrik, dengan kedua ujung dihubungkan kembali, sehingga jika salah satu komputer mengalami gangguan, maka hal itu akan mempengaruhi keseluruhan jaringan. Dalam sistem jaringan ini, data dikirim secara berkeliling sepanjang jaringan (ring). Setiap komputer yang ingin mengirimkan data ke komputer lain harus melalui ring ini.

Keunggulan :

a. Hemat kabel. Kelemahan :

a. Peka terhadap kesalahan.


(12)

3. Topologi Star

Gambar 2.3 Topologi Star

Dalam topologi ini masing-masing komputer dalam jaringan dihubungkan ke sebuah konsentrator dengan menggunakan jalur yang berbeda-beda, sehingga jika salah satu komputer mengalami gangguan, jaringan tidak akan terpengaruh (Gambar 2.3). Komunikasi di dalam jaringan diatur oleh konsentrator, berupa hub maupun switch.

Keunggulan :

a. Paling fleksibel.

b. Pemasangan/perubahan stasiun mudah dan tidak mengganggu bagian jaringan lain.

c. Kontrol terpusat.

d. Kemudahan deteksi dan isolasi kesalahan/kerusakan. e. Kemudahan pengelolaan jaringan.


(13)

Kelemahan :

a. Boros kabel.

b. Perlu penanganan khusus.

c. Kontrol terpusat (HUB) jadi elemen kritis. 4. Topologi Mesh

Gambar 2.4 Topologi Mesh

Topologi ini sering disebut “pure peer-to-peer”, sebab merupakan

implementasi suatu jaringan komputer yang menghubungkan seluruh komputer secara langsung seperti yang terlihat pada gambar 2.4. Saat ini sangat jarang digunakan sebab rumit dan tidak praktis.

Keunggulan :

a. Hubungan dedicated links menjamin data langsung dikirimkan ke komputer tujuan tanpa harus melalui komputer lainnya sehingga dapat lebih cepat karena satu link digunakan khusus untuk berkomunikasi dengan komputer yang dituju saja (tidak digunakan secara beramai-ramai/sharing).


(14)

b. Memiliki sifat Robust, yaitu Apabila terjadi gangguan pada koneksi komputer A dengan komputer B karena rusaknya kabel koneksi (links) antara A dan B, maka gangguan tersebut tidak akan mempengaruhi koneksi komputer A dengan komputer lainnya.

c. Privacy dan security pada topologi mesh lebih terjamin, karena komunikasi yang terjadi antara dua komputer tidak akan dapat diakses oleh komputer lainnya.

d. Memudahkan proses identifikasi permasalahan pada saat terjadi kerusakan koneksi antar komputer.

Kelemahan :

a. Membutuhkan banyak kabel dan Port I/O. semakin banyak komputer di dalam topologi mesh maka diperlukan semakin banyak kabel links dan port I/O (lihat rumus penghitungan kebutuhan kabel dan Port).

b. Karena setiap komputer harus terkoneksi secara langsung dengan komputer lainnya maka instalasi dan konfigurasi menjadi lebih sulit. c. Banyaknya kabel yang digunakan juga mengisyaratkan perlunya space

yang memungkinkan di dalam ruangan tempat komputer-komputer tersebut berada.


(15)

5. Topologi Tree

Gambar 2.5 Topologi Tree

Topologi jaringan ini disebut juga sebagai topologi jaringan bertingkat. Topologi ini biasanya digunakan untuk interkoneksi antar sentral denganhirarki yang berbeda. Untuk hirarki yang lebih rendah digambarkan pada lokasi yang rendah dan semakin keatas mempunyai hirarki semakin tinggi (Gambar 2.5). Topologi jaringan jenis ini cocok digunakan pada sistem jaringan komputer .

Pada jaringan pohon, terdapat beberapa tingkatan simpul (node). Pusat atau simpul yang lebih tinggi tingkatannya, dapat mengatur simpul lain yang lebih rendah tingkatannya. Data yang dikirim perlu melalui simpul pusat terlebih dahulu. Misalnya untuk bergerak dari komputer dengan 3 kekomputer node-7 seperti halnya pada gambar, data yang ada harus melewati node-3, 5 dan node-6 sebelum berakhir pada node-7.


(16)

Keungguluan jaringan model pohon seperti ini adalah, dapat terbentuknya suatu kelompok yang dibutuhkan pada setiap saat.

Kelemahannya adalah, apabila simpul yang lebih tinggi kemudian tidak berfungsi, maka kelompok lainnya yang berada dibawahnya akhirnya juga menjadi tidak efektif. Cara kerja jaringan pohon ini relatif menjadi lambat.

2.1.4 Pemanfaatan Jaringan Komputer

Pembentukan sebuah jaringan komputer sangan erat dengan manfaat yang dapat diperoleh dengan adanya jaringan tersebut[2].

1. Bagi pakai (sharing) peralatan (resources)

Dengan adanya jaringan komputer, maka pemakain beberapa peralatan komputer seperti printer, hard disk, disket, scanner, CD-ROM dan lainnya dapat dilakukan bersama-sama saling bergantian tanpa harus memindahkan posisi peralatan yang terpasang tersebut.

2. Bagi pakai software

Hampir dalam setiap organisasi, kemampuan dalam melakukan bagi pakai berkas atau file data diperlukan setiap hari. Beberapa tipe software PC, khususnya program manajemen basis data atau database, didesain disamping agar bisa dipakai oleh satu pemakai, juga dimungkinkan untuk dipakai bersama-sama dengan pemakai lain dalam waktu yang bersamaan. Atau dengan kata lain, untuk mengakses dan meng-update file-file tadi. Paket yang lain, seperti program pengolah data (word processor) dan spreadsheet, kebanyakan didesaian hanya untuk satu pemakai yang dapat meng-update file.


(17)

3. Komunikasi

Komunikasi antar pemakai dalam suatu jaringan dapat dilakukan dengan menggunakan e-mail atau tele conference. Sehingga kebutuhan akan komunikasi antar pemakai dapat dipenuhi tanpa harus pindah dari tempat kerjanya. Selain itu pemakai e-mail dapat menekan pemakaian pulsa telepon.

4. Pemrosesan terpusat (terdistribusi)

Didalam suatu jaringan komputer, data dapat diolah secara terpusat atau secara terdistribusi. Pemrosesan secara terpusat dilakukan apabila sebuah data yang dibuat oleh tiap pemakai jaringan dikehendaki untuk disatukan dalam komputer pusat. Sebaliknya, pemrosesan terdistribusi dilakukan apabila suatu pekerjaan pengolahan data dari komputer pusat dapat dikerjakan oleh tiap pemakai berdasarkan spesialisasi bidang kerjanya.

5. Keamanan data

Keamanan data dapat diatur oleh supervisor (administrator) dengan pemberian hak akses, pembatasan waktu akses dan pemberian password untuk melindungi pemakaian komputer pusat.

2.2 Kompresi

Kompresi data adalah sebuah cara untuk memadatkan data sehingga hanya memerlukan ruangan penyimpanan lebih kecil sehingga lebih efisien dalam menyimpannya atau mempersingkat waktu pertukaran data tersebut[4].


(18)

2.2.1 Klasifikasi Tipe Kompresi Data

Secara umum, kompresi data dapat di klasifikasikan ke dalam 2 macam, yaitu :

1. Kompresi Lossy

Teknik kompresi dimana data yang sudah dikompresi tidak dapat dikembalikan seperti data semula, dimana lossy atau distortive atau noise-incurring. Kompresi deperti ini digunakan untuk gambar dan suara dimana kehilangan (loss) data dapat diijinkan dalam kasus tertentu.

2. Kompresi Lossless

Kompresi lossless/tanpa distorsi/tanpa noise adalah teknik kompresi untuk data seperti file progaram, file dokumen dan record basis data dimana sama sekali tidak diijinkan perbedaan antara awal (sebelum kompresi) dan data setelah dilakukan kompresi

2.3 Algoritma GZIP

GZip merupakan perkembangan dari algoritma Deflate yang merupakan kombinasi dari algoritma LZ77 dan algoritma Huffman [5].

Struktur GZip dapat dilihat pada gambar 2.6. Setiap file terdiri atas rangkaian dimana header memuat tentang informasi file, kompresi dan enkripsi. Lalu semua file akan dirangkai dalam sebuah arbitrary dan sebuah informasi mengenai keseluruhan GZip. Pada sebuah informasi, masing-masing memiliki file-headers, yang menggandung kedua informasi tentang file dan informasi tentang dimana GZip akan dimulai.


(19)

Gambar 2.6 Struktur file GZip

2.3.1 Algoritma LZ77

LZ77 merupakan algoritma kompresi data lossless yang dikembangkan oleh dua orang ilmuan komputer yang bernama Abraham Lempel dan Jacob Ziv pada tahun 1977. Inti dari algoritma LZ77 adalah string matching di mana sebuah string panjang dibagi menjadi 2 blok yaitu Sliding Window dan Read Ahead atau Look Ahead [6].

Pencarian kata (string matching) dilakukan dengan mencocokkan string pada String Ahead dengan string pada Sliding Window. Jika sama, maka dibentuk kode yang terdiri dari pasangan offset dan length dan akan disalin ke file output. Setelah itu indeks awal Sliding Window akan bergeser ke kanan sebanyak lenght adalah panjang karakter yang ditemukan sama dikurangi 1. Jika isi Read Ahead dukurangi 1. Jika masih tidak ditemukan kesamaan hingga panjang isi dari Read Ahead = 2 maka isi Read Ahead akan disalin ke file output dan indeks awal Siling Window akan bertambah 2. Berikut contoh penyelesaian suatu kasus dengan metode LZ77.


(20)

Contoh sebuah string : AAAAAAABCABCAAAAA

Sliding Window (merah) : AAAAAAABCA Read Ahead (biru) : BCAAAAA

Karena isi Read Ahead tidak sama dengan Sliding Window maka indeks akhir Read Ahead akan dikurangi 1 menjadi BCAAAA. Karena masih tidak ditemukan kesamaan, maka indeks akhir Read Ahead akan dikurangi terus hingga menjadi : Sliding Window : AAAAAAABCA

Read Ahead : BCA

Karena isi Read Ahead terhadap kesamaan dengan isi Sliding Window maka dicari nilai offset dan length-nya. Perhitungan sebagai berikut :

Offset = indeks akhir dari Sliding Window – indeks awal rangkaian yang sama = 10 – 8 = 2

Length = panjang karakter yang sama -1 = 3 – 1 = 2

Selain itu diberikan juga flag untuk membedakan hasil dari kompresi yang mana yang merupakan karakter literal dan kode. Di mana flag 0 untuk karakter literal dan flag 1 untuk kode. Contohnya, hasil kompresi adalah AAAAAAAAAAABCA2293. Di sini tampak jelas yang mana yang merupakan literal(huruf) dan kode(angka). Tetapi bagaimana jika hasil kompresi adalah 222222222223922293 maka akan sangat sulit membedakan yang mana literal dan yang mana kode. Oleh karena itu flag akan digunakan untuk menandai sebuah literal atau kode.


(21)

Contoh :

Hasil : 222222222223922293 Flag : 000000000000001111

Flag kemudian di potong tiap 8 bit hingga menjadi 1 byte yang akan digunakan sebagai prefix code. Contoh :

Flag : 00000000 00000011 11000000

Bagaimana yang diwarnai biru merupakan padding karena 1 blok harus terdiri dari 8 bit sedangkan blok tersebut hanya terdiri dari 2 bit saja. Dari flag di atas, maka akan dicari prefix code yang merupakan bentuk desimal dari deret biner yang dibentuk oleh flag. Maka prefix code yang duhasilkan adalah :

Flag : 00000000 00000011 11000000 Prefix code : 0 3 192

Prefix code akan diselipkan pada hasil kompresi sehingga menjadi :

02222222232223922219293 2.3.2 Algoritma Huffman

Algoritma Huffman ditemukan oleh David Huffman pada tahun 1952. Algoritma ini menggunakan pengkodean yang mirip dengan kode Morse [7]. Berdasarkan tipe kode yang digunakan algoritma Huffman termasuk metode statistic. Sedangkan berdasarkan teknik pengkodeannya menggunakan metode symbolwise. Algoritma Huffman merupakan salah satu algoritma yang digunakan untuk mengompres teks. Algoritma Huffman secara lengkap:


(22)

1. Pilih dua simbol dengan peluang (probability) paling kecil (pada contoh di atas simbol B dan D). Kedua simbol tadi dikombinasikan sebagai simpul orangtua dari simbol B dan D sehingga menjadi simbol BD dengan peluang 1/7 + 1/7 = 2/7, yaitu jumlah peluang kedua anaknya.

2. Selanjutnya, pilih dua simbol berikutnya, termasuk simbol baru, yang mempunyai peluang terkecil.

3. Ulangi langkah 1 dan 2 sampai seluruh simbol habis.

Sebagai contoh, dalam kode ASCII string 7 huruf “ABACCDA” membutuhkan representasi 7 × 8 bit = 56 bit (7 byte), dengan rincian sebagai berikut:

Untuk mengurangi jumlah bit yang dibutuhkan, panjang kode untuk tiap karakter dapat dipersingkat, terutama untuk karakter yang frekuensi kemunculannya besar. Pada string di atas, frekuensi kemunculan A = 3, B = 1, C = 2, dan D = 1, sehingga dengan menggunakan algoritma di atas diperoleh kode Huffman seperti pada Tabel 1.


(23)

Gambar 2.7 Pohon Huffman untuk “ABACCDA”

Tabel 2.1 Kode Huffman

Karakter Frekuensi Peluang Kode Huffman

A 3 3/7 0

B 1 1/7 110

C 2 2/7 10

D 1 1/7 111

Dengan menggunakan kode Huffman ini, string “ABACCDA” direpresentasikan menjadi rangkaian bit : 0 110 0 10 10 111 0. Jadi, jumlah bit yang dibutuhkan hanya 13 bit dari yang seharusnya dibutuhkan 56 bit.

Untuk menguraikan kembali data yang sudah dikodekan sebelumnya dengan algoritma Huffman, dapat digunakan cara sebagai berikut :


(24)

1. Baca bit pertama dari string biner masukan

2. Lakukan traversal pada pohon Huffman mulai dari akar sesuai dengan bit yang dibaca. Jika bit yang dibaca adalah 0 maka baca anak kiri, tetapi jika bit yang dibaca adalah 1 maka baca anak kanan.

3. Jika anak dari pohon bukan daun (simpul tanpa anak) maka baca bit berikutnya dari string biner masukan.

4. Hal ini diulang (traversal) hingga ditemukan daun.

5. Pada daun tersebut simbol ditemukan dan proses penguraian kode selesai. 6. Proses penguraian kode ini dilakukan hingga keseluruhan string biner

masukan diproses.

2.3.3 Prosedur Algortima GZip

Algoritma LZ77 diubah adalah algoritma kompresi lossless. Metode kompresi didasarkan pada konsep bahwa string karakter dapat mencocokkan string identik karakter dalam string yang muncul sebelumnya. Karena itu, ini dikategorikan sebagai kompresi metode kamus. LZ77 diubah menggunakan ukuran jendela tetap dikenal sebagai jendela geser. Algoritma memungkinkan pencarian buffer dengan panjang sampai 32 KB. Jendela buffer pencarian memegang catatan karakter yang telah melewati look-ahead buffer dan tersedia untuk mencari untuk mencocokkan urutan baru karakter dalam lookahead buffer. Ketika urutan baru karakter, yang akan dikompresi, yang cocok dengan string karakter dalam buffer pencarian, string yang cocok digantikan oleh dua angka, juga dikenal sebagai token, dalam output terkompresi stream. Kedua token menunjukkan:


(25)

1. Yang pertama: Memberikan informasi tentang jarak, tentang seberapa jauh kembali ke pencarian buffer cocok string mulai urutan karakter.

2. Yang kedua: Memberikan informasi tentang panjang karakter string yang dicocokkan.

Karakter yang tidak cocok hanya ditulis ke kompresi stream, bukan sebuah token. Oleh karena itu, aliran kompresi terdiri dari tiga entitas:

1. Literal (karakter yang cocok/sama), 2. Distance (jarak offset yg cocok) dan 3. Length (panjang string yg cocok).

Dalam laporan ini, istilah untuk format ini adalah LDL – Literal Distance Length. Output stream dikompresi dari algoritma LZ77 kemudian akan dikodekan dengan

“statis” Huffman coding menggunakan total tiga tabel kode, dimana satu untuk literal, distance dan length.

Pengkodean yang digunakan oleh algoritma LZ77 beroperasi pada karakter ASCII, maka ukuran huruf adalah 256. Setelah itu dianalisa dan diperiksa berulang menggunakan Algoritma LZ77, kode baru dalam kode vektor v dibentuk setelah skema literal-distance-length (LDL). Jenis pengkodean Huffman yang dalam laporan ini adalah statis Huffman coding. Istilah “statis” berasal dari kenyataan bahwa codewords Huffman tidak mengubah seluruh file, yang dikodekan menggunakan algoritma LZ77. Di sisi lain "dinamis" Huffman coding adalah kode Huffman yang dibuat untuk masing-masing panjang blok yang digunakan oleh algoritma LZ77. Setelah setiap blok telah diperintahkan oleh


(26)

format LDL. Dalam file GZip “statis” Huffman-encode, standar yang sudah mendefinisikan tabel Huffman, dan sudah diimplementasikan dalam berbagai alat GZip. Untuk file GZip “dinamis” Huffman-encoded, struktur pohon harus dikirim sebagai blok yang terpisah, yang menunjukkan pemetaan antara codewords Huffman dan literal (alfabet). Pemetaan antara LDL dan kode Huffman adalah sebagai ditunjukkan pada Tabel 2.1. Seperti disebutkan, 256 pertama literal menunjukkan karakter ASCII.

Tabel 2.2 Pencatatan codewords prefiks Huffman statis untuk semua LDL Prefix Huffman codes for all LDLs

Literal #Bits Prefix Huffman code range

0-143 8 00110000-10111111

144-255 9 110010000-111111111

256-279 7 0000000-0010111

280-287 8 11000000-11000111

Ini diwakili tanpa membubuhkan bit tambahan, yaitu LDL dalam kisaran ini benar-benar didefinisikan oleh prefiks Huffman codewords. Literal 257-285 berdedikasi untuk menunjukkan panjang dari string yang cocok, sementara 286-287 tidak pernah digunakan. Tergantung pada panjang simbol yang sesuai, kode affix mungkin diperlukan, sesuai dengan Tabel 2.2. Misalnya, indikasi panjang string simbol dari buffer pencarian yang muncul di blok saat ini dapat memiliki panjang 120. Hal ini akan menghasilkan codeword Huffman 11000000|0110, di mana "|" menunjukkan pemisahan antara awalan dan affix bit.


(27)

Tabel 2.3 Pencatatan affix codewords Huffman statis untuk semua indikasi panjang

Huffman codeword affixes for lengths

LDL Extra

Bits Length LDL

Extra

Bits Length LDL

Extra

Bits Length

257 0 3 267 1 15, 16 277 4 67-82

258 0 4 268 1 17, 18 278 4 83-98

259 0 5 269 2 19-22 279 4 99-114

260 0 6 270 2 23-26 280 4 115-130

261 0 7 271 2 27-30 281 5 131-162

262 0 8 272 2 31-34 282 5 163-194

263 0 9 273 3 35-42 283 5 192-226

264 0 10 274 3 43-50 284 5 227-257

265 1 11, 12 275 3 51-58 285 0 258

266 1 13, 14 276 3 59-66

Kode bit terakhir ditambahkan dalam format GZip adalah kode jarak, yang terdaftar dalam Tabel 2.3. Sebagaimana dicatat, membubuhkan bit juga diperlukan tergantung pada jarak. Sebuah contoh penggunaan Tabel 1.3 sekarang dibuat A jarak 65 dalam string teks non-encoded, dikodekan sebagai 01100|00000, sedangkan jarak dari 67 hasilnya 01100|00010. Di sini, "|" menunjukkan pemisahan antara kode Huffman dan bit ekstra.

Tabel 2.4 Pencatatan codewords Huffman statis untuk semua indikasi jarak. Huffman codewords for distances

Codeword Extra

Bits Distance Codeword

Extra

Bits Distance Codeword

Extra

Bits Distance

0 0 1 10 4 33-48 20 9 1025-1536

1 0 2 11 4 49-64 21 9 1537-2048

2 0 3 12 5 65-96 22 10 2049-3072

3 0 4 13 5 97-128 23 10 2073-4096

4 1 5, 6 14 6 129-192 24 11 2097-6144

5 1 7, 8 15 6 193-256 25 11 6145-8192

6 2 9-12 16 7 257-384 26 12 8193-12288

7 2 13-16 17 7 385-512 27 12 12289-16384

8 3 17-24 18 8 513-768 28 13 16385-24576


(28)

2.4 Java

Java adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk telepon genggam. Dikembangkan oleh Sun Microsystems dan diterbitkan tahun 1995 [10]. Java tidak boleh disalahpahami sebagai JavaScript. JavaScript adalah bahasa scripting yang digunakan oleh web browser.

2.4.1 Sejarah Perkembangan Java

Bahasa pemrograman Java pertama lahir dari The Green Project, yang berjalan selama 18 bulan, dari awal tahun 1991 hingga musim panas 1992. Proyek tersebut belum menggunakan versi yang dinamakan Oak. Proyek ini dimotori oleh Patrick Naughton, Mike Sheridan, James Gosling dan Bill Joy, beserta sembilan pemrogram lainnya dari Sun Microsystems. Salah satu hasil proyek ini adalah maskot Duke yang dibuat oleh Joe Palrang.

Pertemuan proyek berlangsung di sebuah gedung perkantoran Sand Hill Road di Menlo Park. Sekitar musim panas 1992 proyek ini ditutup dengan menghasilkan sebuah program Java Oak pertama, yang ditujukan sebagai pengendali sebuah peralatan dengan teknologi layar sentuh (touch screen), seperti pada PDA sekarang ini. Teknologi baru ini dinamai "*7" (Star Seven).

Setelah era Star Seven selesai, sebuah anak perusahaan TV kabel tertarik ditambah beberapa orang dari proyek The Green Project. Mereka memusatkan kegiatannya pada sebuah ruangan kantor di 100 Hamilton Avenue, Palo Alto.

Perusahaan baru ini bertambah maju: jumlah karyawan meningkat dalam waktu singkat dari 13 menjadi 70 orang. Pada rentang waktu ini juga ditetapkan


(29)

pemakaian Internet sebagai medium yang menjembatani kerja dan ide di antara mereka. Pada awal tahun 1990-an, Internet masih merupakan rintisan, yang dipakai hanya di kalangan akademisi dan militer.

Mereka menjadikan perambah (browser) Mosaic sebagai landasan awal untuk membuat perambah Java pertama yang dinamai Web Runner, terinsipirasi dari film 1980-an, Blade Runner. Pada perkembangan rilis pertama, Web Runner berganti nama menjadi Hot Java.

Pada sekitar bulan Maret 1995, untuk pertama kali kode sumber Java versi 1.0a2 dibuka. Kesuksesan mereka diikuti dengan untuk pemberitaan pertama kali pada surat kabar San Jose Mercury News pada tanggal 23 Mei 1995.

Sayang terjadi perpecahan di antara mereka suatu hari pada pukul 04.00 di sebuah ruangan hotel Sheraton Palace. Tiga dari pimpinan utama proyek, Eric Schmidt dan George Paolini dari Sun Microsystems bersama Marc Andreessen, membentuk Netscape.

Nama Oak, diambil dari pohon oak yang tumbuh di depan jendela ruangan kerja "bapak java", James Gosling. Nama Oak ini tidak dipakai untuk versi release Java karena sebuah perangkat lunak sudah terdaftar dengan merek dagang tersebut, sehingga diambil nama penggantinya menjadi "Java". Nama ini diambil dari kopi murni yang digiling langsung dari biji (kopi tubruk) kesukaan Gosling. 2.4.2 Keunggulan Java

Multiplatform. Kelebihan utama dari Java ialah dapat dijalankan di beberapa platform / sistem operasi komputer, sesuai dengan prinsip tulis sekali, jalankan di


(30)

mana saja. Dengan kelebihan ini pemrogram cukup menulis sebuah program Java dan dikompilasi (diubah, dari bahasa yang dimengerti manusia menjadi bahasa mesin / bytecode) sekali lalu hasilnya dapat dijalankan di atas beberapa platform tanpa perubahan. Kelebihan ini memungkinkan sebuah program berbasis java dikerjakan diatas operating system Linux tetapi dijalankan dengan baik di atas Microsoft Windows. Platform yang didukung sampai saat ini adalah Microsoft Windows, Linux, Mac OS dan Sun Solaris. Penyebanya adalah setiap sistem operasi menggunakan programnya sendiri-sendiri (yang dapat diunduh dari situs Java) untuk meninterpretasikan bytecode tersebut.

OOP (Object Oriented Programming - Pemrogram Berorientasi Objek) yang artinya semua aspek yang terdapat di Java adalah Objek. Java merupakan salah satu bahasa pemrograman berbasis objek secara murni. Semua tipe data diturunkan dari kelas dasar yang disebut Object. Hal ini sangat memudahkan pemrogram untuk mendesain, membuat, mengembangkan dan mengalokasi kesalahan sebuah program dengan basis Java secara cepat, tepat, mudah dan terorganisir. Kelebihan ini menjadikan Java sebagai salah satu bahasa pemograman termudah, bahkan untuk fungsi fungsi yang advance seperti komunikasi antara komputer sekalipun.

Perpustakaan Kelas Yang Lengkap, Java terkenal dengan kelengkapan library/perpustakaan (kumpulan program program yang disertakan dalam pemrograman java) yang sangat memudahkan dalam penggunaan oleh para pemrogram untuk membangun aplikasinya. Kelengkapan perpustakaan ini ditambah dengan keberadaan komunitas Java yang besar yang terus menerus


(31)

membuat perpustakaan-perpustakaan baru untuk melingkupi seluruh kebutuhan pembangunan aplikasi.

Bergaya C++, memiliki sintaks seperti bahasa pemrograman C++ sehingga menarik banyak pemrogram C++ untuk pindah ke Java. Saat ini pengguna Java sangat banyak, sebagian besar adalah pemrogram C++ yang pindah ke Java. Universitas-universitas di Amerika Serikat juga mulai berpindah dengan mengajarkan Java kepada murid-murid yang baru karena lebih mudah dipahami oleh murid dan dapat berguna juga bagi mereka yang bukan mengambil jurusan komputer.

Pengumpulan sampah otomatis, memiliki fasilitas pengaturan penggunaan memori sehingga para pemrogram tidak perlu melakukan pengaturan memori secara langsung (seperti halnya dalam bahasa C++ yang dipakai secara luas). 2.4.3 Kelemahan Java

a. Tulis sekali, perbaiki di mana saja - Masih ada beberapa hal yang tidak kompatibel antara platform satu dengan platform lain. Untuk J2SE, misalnya SWT-AWT bridge yang sampai sekarang tidak berfungsi pada Mac OS X. b. Mudah didekompilasi. Dekompilasi adalah proses membalikkan dari kode

jadi menjadi kode sumber. Ini dimungkinkan karena kode jadi Java merupakan bytecode yang menyimpan banyak atribut bahasa tingkat tinggi, seperti nama-nama kelas, metode, dan tipe data. Hal yang sama juga terjadi pada Microsoft .NET Platform. Dengan demikian, algoritma yang digunakan


(32)

program akan lebih sulit disembunyikan dan mudah dibajak/direverse-engineer.

c. Penggunaan memori yang banyak. Penggunaan memori untuk program berbasis Java jauh lebih besar daripada bahasa tingkat tinggi generasi sebelumnya seperti C/C++ dan Pascal (lebih spesifik lagi, Delphi dan Object Pascal). Biasanya ini bukan merupakan masalah bagi pihak yang menggunakan teknologi terbaru (karena trend memori terpasang makin murah), tetapi menjadi masalah bagi mereka yang masih harus berkutat dengan mesin komputer berumur lebih dari 4 tahun.

2.5 Eclipse

Eclipse adalah sebuah IDE (Integrated Development Environment) untuk mengembangkan perangkat lunak dan dapat dijalankan di semua platform (platform-independent) [11]. Eclipse awalnya dikembangkan oleh IBM untuk menggantikan perangkat lunak IBM Visual Age for Java 4.0. Produk ini diluncurkan oleh IBM pada tanggal 5 November 2001.

Keunggulan:

1. Multi-platform: Target sistem operasi Eclipse adalah Microsoft Windows, Linux, Solaris, AIX, HP-UX dan Mac OS X.

2. Mulit-language: Eclipse dikembangkan dengan bahasa pemrograman Java, akan tetapi Eclipse mendukung pengembangan aplikasi berbasis bahasa pemrograman lainnya, seperti C/C++, Cobol, Python, Perl, PHP, dan lain sebagainya.


(33)

3. Multi-role: Selain sebagai IDE untuk pengembangan aplikasi, Eclipse pun bisa digunakan untuk aktivitas dalam siklus pengembangan perangkat lunak, seperti dokumentasi, test perangkat lunak, pengembangan web, dan lain sebagainya.


(34)

34 3.1 Analsis Sistem

Analisis adalah tahap aktifitas kreatif dimana analis berusaha memahami permasalahan secara mendalam. Ini adalah proses interative yang terus berjalan hingga permasalahan dapat dipahami dengan benar. Analisis bertujuan untuk mendapatkan pemahaman secara keseluruhan tentang sistem yang akan dibuat berdasarkan masukan dari pihak-pihak dan juga pengalaman analis yang berkepentingan dengan sistem tersebut.

3.1.1 Analisis Masalah

Permasalahan yang dibuat dalam tugas akhir ini adalah membuat simulasi algoritma GZip untuk mengompresi data, kemudian mengimplementasikannya pada proses pengiriman data. Hasil simulasi algoritma GZip yang telah dibuat ini kemudian dilakukan uji coba, sehingga kita bisa melihat hasil kompresi dan simulasi yang telah dibuat. Data dari hasil penelitian dengan algoritma GZip ini beserta pengimplementasiannya akan dibandingkan dengan file aslinya.

Dari perbandingan ini akan diperoleh kelebihan dan kekurangan dari algoritma ini, dan selanjutnya dari perbandingan tersebut akan diperoleh kesimpulan.


(35)

3.1.2 Analisis dan Kebutuhan Fungsional 3.1.2.1Actor Identification

Tahap pertama yang dilakukan dalam melakukan analisis berorientasi objek menggunakan UML adalah menentukan actor atau pengguna sistem. Kata aktor dalam konteks UML, menampilkan peran (roles) yang pengguna (atau sesuatu di luar sistem yang dikembangkan yang dapat berupa perangkat keras, end user, sistem yang lain, dan sebagainya).

3.1.3 Analisis dan Kebutuhan Non-Fungsional

Analisis dan kebutuhan non-fungsional meliputi analisis dan kebutuhan pengguna, analisis dan kebutuhan perangkat keras, serta analisis dan kebutuhan perangkat lunak.

3.1.3.1Analisis dan Kebutuhan Pengguna (user)

Pengguna diartikan sebagai orang yang mengakses dan menggunakan perangkat lunak aplikasi kompresi algoritma GZip, dalam hal ini pengguna harus memiliki kemampuan dasar untuk mengoperasikan komputer dan memiliki kapabilitas dalam menggunakan aplikasi komputer.

3.1.3.2Analisis dan Kebutuhan Perangkat Keras

Perangkat keras adalah seluruh komponen atau unsur peralatan yang digunakan untuk menunjang pembangunan suatu aplikasi, dalam kasus ini adalah aplikasi kompresi menggunakan algoritma GZip.


(36)

Tabel 3.1 Tabel spesifikasi perangkat keras

Processor Memory (RAM) Hard-disk Monitor (Resolution)

Intel Pentium 4 Kapasitas

memory mulai dari 512 MB sampai 1 GByte

Kapasitas hard-disk mulai dari 40 GByte

Pada umumnya

menggunakan monitor dengan resolusi 1024 x 768 (32 bit) 60 Hz 3.1.3.3Analisis dan Kebutuhan Perangkat Lunak

1. Sistem operasi yang digunakan adalah Windows 7.

2. Perangkat lunak yang digunakan untuk membangun aplikasi ini adalah Eclipse 3.5.1.

3.1.4 Analisi Tehadap Sebuah File Teks

Analisis dilakukan dengan menggunakan file teks dengan isi

‘AAAAAAAAAAABCABCAAAAA’. Proses kompresi mula-mula dilakukan

dengan metode LZ77 dimana pada metode ini isi file debaca sebagai sebuah string yang ditampung dalam variabel baru yaitu Siliding Windows (SW) dan Read Ahead (RA). SW merupakan array yang dapat menampung 10 byte dan RA dapat menampung 11 byte. SW kemudian diisi dengan 10 karakter pertama dari frase dan RA diisi dengan 11 karakter dimulai dari index terakhir SW ditambah 1. Karena SW dan RA merupakan array dengan tipe data byte, maka dibutuhkan function ‘ord’ untuk mengkonversikan nilai char ke bentuk byte. Terdapat sebuah

variabel ‘hasil’ yang akan menyimpan hasil dari kompresi yang telah dilakukan.


(37)

Frase ‘AAAAAAAAAAABCABCAAAAA’ Hasil ‘AAAAAAAAAA’

Setelah literasi awal dilakukan, kemudian dibandingkan apakah isi dari RA sama atau merupakan bagian dari SW, jika tidak maka index akhir sari RA akan dikurangi 1. Proses ini terus dilakukan jika isi dari RA sama dengan 2. Jika RA sama dengan 2 maka variabel hasil akan ditambahkan dengan isi dari RA dan index awal SW akan bergeser sebanyak 2 ke kanan.

Frase ‘AAAAAAAAAAABCABCAAAAA’ Hasil ‘AAAAAAAAAAAB’

Jika isi dari RA sama atau terdapat pada SW maka pada variabel hasil akan dicatat 2 buah kode yang terdiri dari offset dan length. Setelah itu index awal SW akan bergeser sebanyak isi dari RA.

Frase ‘AAAAAAAAAAABCABCAAAAA’ Hasil ‘AAAAAAAAAAABCA22’

Pada proses kompresi akan berhenti apanila index akhir dari SW sudah sama dengna panjang dari frase. Proses kemudian dilanjutkan dengan menambah flag pada setiap 8 byte pada variabel hasil. Hasil akhir dari proses kompresi dengan metode LZ77 ini ditampung dalam variabel ‘hasil2’.

Frase ‘AAAAAAAAAAABCABCAAAAA’ Hasil ‘AAAAAAAAAAABCA2293’

Hasil2 ‘AAAAAAAA’#3’AAABCA22A93’

Isi dari variabel hasil2 tersebut kemusian dikompresi lagi dengan mentode Huffman. Langkah pertama dari proses kompresi dengna metode Huffman adalah


(38)

dengan membentuk sebuah tree yang berasal dari kumpulan node-node. Setiap node memiliki variabel data dan value dan juga memiliki 1 anak yaitu left dan right. Nilai dari variabel hasil2 akan dikonversikan menjadi bilangan ASCII(0-225). Nilai dari variabel value diperoleh dari jumlah kemunculan karakter tersebut.

‘AAAAAAAA’#3’AAABCA 22A93’

A, 13 #3BC2293

3, 2 #BC229

2, 2 #BC9

#, 1 BC9

B, 1 C9

C, 1 9, 1

1

1

1

1

1

1 0

0

0

0

0

0

Gambar 3.1 Pohon Huffman Proses Pertama

Adapun pada Huffman tree setiap leaf adalah karakter yang terdapat pada sebuah file yang akan dikompresi. Setiap mencapai suatu leaf, proses akan mencatat alur

yang terjadi ke dalam senuah variabel ‘path’ dan kemudian akan disimpan ke


(39)

Tabel 3.2 Kode dictionary Huffman

Karakter Frekuensi Peluang Kode Huffman

A 13 13/21 0

3 2 2/21 10

2 2 2/21 110

# 1 1/21 1110

B 1 1/21 11110

C 1 1/21 111110

9 1 1/21 1111110

Setelah dikompres dengan menggunakan Kode Huffman, string tersebut dapat direpresentasikan menjadi rangkaian bit:

0101101110111101111101111110

Setelah dictionary telah diperoleh, maka langkah terakhir yaitu menyalin dictionary ke file output kemudian mengkonveri setiap karakter yang terdapat pada file input sesuai dengan dictionary karakter tersebut.

3.2 Use Case Diagram

Use case diagram digunakan untuk menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Use case diagram pada Gambar 3.2 yang menggambarkan bagaimana proses yang terjadi pada aplikasi kompresi transfer data.


(40)

3.2.1 Use Case Diagram Kompresi

Use case diagram proses kompres dapat dilihat pada gambar 3.2

user server

input file

write header

send data

<<include>>

<<include>>

<<include>>

match same string

change string to bit

<<include>>

Gambar 3.2 Use case diagram proses kompresi file

Pada use case proses kompresi terjadi beberapa proses yaitu : 1. Mengambil file yang akan dikompres.

2. Membaca file.

3. Sistem mencari string yang sama pada file.

4. String yang sama akan dirubah kedalam bentuk bit. 5. Menulis hasil bit pada header.


(41)

3.2.2 Skenario Use Case Kompresi

Skenario setiap bagian pada use case menunjukkan proses apa yang terjadi pada setiap bagian didalam use case tersebut, dimana user memberikan perintah pada setiap bagian dan respon apa yang diberikan oleh sistem kepada user setelah user memberikan perintah pada setiap bagian – bagian use case.

3.2.1.1Server

Identifikasi Nomor 1

Nama Server

Tujuan Memastikan sebuah komputer menjadi server Deskripsi Menerima file dari client/user

Tipe

Aktor -

Skenario Utama

Kondisi awal Aplikasi kompresi dalam keadaan baru dibuka

Aksi Aktor Reaksi Sistem

- Server menerima dan meyimpan file yang telah dikirimkan oleh client - Server mengirim file yang diminta

oleh client

Skenario Alternatif – Autentikasi Gagal

Aksi Aktor Reaksi Sistem

- -

Kondisi akhir Sistem menampilan status proses

3.2.1.2User

Identifikasi Nomor 2

Nama User/client

Tujuan Mengirimkan file kepada Server

Deskripsi Pada saat aplikasi kompresi dibuka user dapat mengirimkan file kepada server.


(42)

Aktor User

Skenario Utama Kondisi awal Server Aktif

Aksi Aktor Reaksi Sistem

Memasukkan file yang akan

dikirimkan kepada server. -

Memberikan informasi status pengiriman pada user.

Skenario Alternatif – Autentikasi Gagal

Aksi Aktor Reaksi Sistem

Memasukkan file yang akan dikirimkan kepada server jika server sedang tidak aktif..

Memberikan informasi bahwa pengiriman gagal.

Kondisi akhir 1. File yang dikirimkan akan berhasil jika server aktif. 2. File yang dikirmkan akan gagal jika server tidak aktif.

3.2.1.3Input File

Identifikasi Nomor 3

Nama Input File

Tujuan User menentukan file yang akan dikompresi

Deskripsi Sistem menerima file yang dipilih user dan melakukan kompresi

Tipe

Aktor User

Skenario Utama

Kondisi awal Aplikasi kompresi dalam keadaan baru dibuka

Aksi Aktor Reaksi Sistem

Memilih dan menginputkan file yang

akan dikompresi. -

Skenario Alternatif – Autentikasi Gagal

Aksi Aktor Reaksi Sistem

Menginputkan file yang akan

dikompresi -


(43)

3.2.1.4Match Same String

Identifikasi Nomor 4

Nama Match Same String

Tujuan Mencari string yang sama pada file.

Deskripsi Sistem telah menerima file yang dipilih user Tipe

Aktor

Skenario Utama

Kondisi awal 1. Aplikasi kompresi dalam keadaan dibuka 2. Terdapat file yang akan dikompresi

Aksi Aktor Reaksi Sistem

Mencari string yang sama pada file yang akan dikompresi

Skenario Alternatif – Autentikasi Gagal

Aksi Aktor Reaksi Sistem

Kondisi akhir Seluruh string yang sama pada file telah ditemukan 3.2.1.5Change String to Bit

Identifikasi Nomor 5

Nama Change String to Bit

Tujuan Merubah string yang sama pada file kedalam bit Deskripsi Sistem telah mencari string yang sama

Tipe Aktor

Skenario Utama

Kondisi awal Aplikasi kompresi dalam keadaan dibuka Terdapat file yang akan dikompresi

Aksi Aktor Reaksi Sistem

Merubah string yang sama kedalam bit, dengan membentuk tree.

Skenario Alternatif – Autentikasi Gagal

Aksi Aktor Reaksi Sistem


(44)

3.2.1.6Write Header

Identifikasi Nomor 6

Nama Write Header

Tujuan Membentuk dictionary

Deskripsi Sistem akan memberikan header file Tipe

Aktor

Skenario Utama

Kondisi awal Aplikasi kompresi dalam keadaan dibuka Terdapat file yang akan dikompresi

Aksi Aktor Reaksi Sistem

Merubah string yang sama kedalam bentuk biner, dengan membentuk tree. Skenario Alternatif – Autentikasi Gagal

Aksi Aktor Reaksi Sistem

Kondisi akhir Membentuk dictionary file pada header

3.2.1.7Send File

Identifikasi

Nomor 7

Nama Send file

Tujuan Mengirim file yang telah dikompres

Deskripsi Sistem akan mengirim file yang telah dikompres Tipe

Aktor

Skenario Utama Kondisi awal

Aksi Aktor Reaksi Sistem

Sistem mengirimkan file yang telah dikompres kepada server

Skenario Alternatif – Autentikasi Gagal

Aksi Aktor Reaksi Sistem


(45)

3.2.3 Use Case Diagram Dekompresi

Use case diagram proses kompres dapat dilihat pada gambar 3.3

user server

input GZ file

read header

change bit to string

return match string

receive data

<<include>>

<<include>>

<<include>>

<<include>>

Gambar 3.3 Use case diagram proses dekompresi file

Pada use case proses dekompresi terjadi beberapa proses yaitu : 1. Mengambil file yang akan didekompres.

2. Membaca header file.

3. Bit dirubah kedalam bentuk string.

4. Sistem mengembalikan posisi string yang sama pada file. 5. Menerima data dari server.


(46)

3.2.4 Skenario Use Case Dekompresi 3.2.4.1Server

Identifikasi Nomor 1

Nama Server

Tujuan Memastikan sebuah komputer menjadi server Deskripsi Menerima file dari client/user

Tipe

Aktor -

Skenario Utama

Kondisi awal Aplikasi kompresi dalam keadaan baru dibuka

Aksi Aktor Reaksi Sistem

- Server menerima dan meyimpan file yang telah dikirimkan oleh client - Server mengirim file yang diminta

oleh client

Skenario Alternatif – Autentikasi Gagal

Aksi Aktor Reaksi Sistem

- -

Kondisi akhir Sistem menampilan status proses 3.2.4.2User

Identifikasi Nomor 2

Nama User/client

Tujuan Menerima file dari Server

Deskripsi Pada saat aplikasi dekompresi dibuka user dapat menerima file dari server.

Tipe

Aktor User

Skenario Utama Kondisi awal Server Aktif

Aksi Aktor Reaksi Sistem

Memilih file yang akan didekompres


(47)

Memberikan informasi status pengiriman pada user.

Skenario Alternatif – Autentikasi Gagal

Aksi Aktor Reaksi Sistem

Kondisi akhir File telah dipilih jika server dalam keadaan aktif 3.2.4.3Input GZ File

Identifikasi Nomor 3

Nama Input GZ File

Tujuan User menentukan file GZ yang akan didekompresi

Deskripsi Sistem menerima file GZ yang dipilih user dan melakukan dekompresi

Tipe

Aktor User

Skenario Utama

Kondisi awal Aplikasi kompresi dalam keadaan baru dibuka

Aksi Aktor Reaksi Sistem

Memilih file yang akan didekompresi

dari server. -

Skenario Alternatif – Autentikasi Gagal

Aksi Aktor Reaksi Sistem

Memilih file yang akan didekompresi -

Kondisi akhir User telah memilih file yang akan didekompresi 3.2.4.4Read Header

Identifikasi Nomor 4

Nama Read Header

Tujuan Membaca dictionary

Deskripsi Sistem akan membaca header file Tipe

Aktor

Skenario Utama

Kondisi awal Aplikasi kompresi dalam keadaan dibuka Terdapat file yang akan didekompresi


(48)

Aksi Aktor Reaksi Sistem Membaca alur tree

Skenario Alternatif – Autentikasi Gagal

Aksi Aktor Reaksi Sistem

Kondisi akhir Membaca dictionary file pada header 3.2.4.5Change Bit to String

Identifikasi Nomor 5

Nama Change Bit to String Tujuan Merubah bit menjadi string

Deskripsi Sistem telah membaca dictionary dan menelusuri tree Tipe

Aktor

Skenario Utama

Kondisi awal Aplikasi kompresi dalam keadaan dibuka Terdapat file yang akan dikompresi

Aksi Aktor Reaksi Sistem

Menelsuri tree dan merubah bit kedalam string.

Skenario Alternatif – Autentikasi Gagal

Aksi Aktor Reaksi Sistem

Kondisi akhir Seluruh bit telah di dencode kedalam string 3.2.4.6Return Match Same String

Identifikasi Nomor 6

Nama Return Match String

Tujuan Mengembalikan posisi string yang sama Deskripsi Sistem telah menerima hasil dencoding

Tipe Aktor

Skenario Utama

Kondisi awal 1. Aplikasi kompresi dalam keadaan dibuka 2. Terdapat file yang akan dikompresi


(49)

Aksi Aktor Reaksi Sistem

Mengembalikan posisi string yang sama pada file

Skenario Alternatif – Autentikasi Gagal

Aksi Aktor Reaksi Sistem

Kondisi akhir Seluruh string yang sama pada file telah kembali pada posisi semula.

3.2.4.7Receive File

Identifikasi

Nomor 7

Nama Receive file

Tujuan Menerima file yang telah didekompres

Deskripsi Sistem akan mengirim file yang telah didekompres Tipe

Aktor

Skenario Utama Kondisi awal

Aksi Aktor Reaksi Sistem

Sistem mengirimkan file yang telah didekompres kepada user

Skenario Alternatif – Autentikasi Gagal

Aksi Aktor Reaksi Sistem


(50)

3.3 Sequence Diagram

Data Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atar dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait).

Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dariapa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan.

Sequence Diagram yang digambarkan dalam perancangan sistem dapat dilihat pada gambar 3.4 dan gambar 3.5.


(51)

3.3.1 Sequence Diagram Kompresi

Sequence diagram proses kompres dapat dilihat pada gambar 3.4

Client

compress

input_file( )

encode

send_string( )

header

send_bit( )

send_data( ) match_same_ string( )

write_header change_

string_to_bit( )

Gambar 3.4 Sequence diagram proses kompresi Pada sequence diagram di atas terjadi beberapa proses yaitu : 1. User mengambil file yang akan di kompres.

2. Sistem membaca file.

3. Sistem mencari string yang sama.

4. Sistem mengirim string untuk di encode.

5. Sistem melakukan perubahan dari string ke bit. 6. Sistem mengirim data bit.

7. Sistem menulis header. 8. Sistem mengirim data.


(52)

3.3.2 Sequence Diagram Dekompresi

Sequence diagram proses kompres dapat dilihat pada gambar 3.5

Client

header decode decompress

read_header_file( )

send_string( )

receive_data( ) input_GZ_file

submit_data( )

change_bit_ to_ string( )

return_match_string

Gambar 3.5 Sequence diagram proses dekompresi Pada sequence diagram di atas terjadi beberapa proses yaitu :

1. User mengambil file yang akan di dekompres. 2. Sistem membaca header file.

3. Sistem melakukan perubahan dari bit ke string. 4. Sistem mengirim string untuk di dekompres. 5. Sistem mengembalikan posisi string yang sama. 6. Sistem mengirim data string.


(53)

3.4 Class Diagram

Class Diagram menggambarkan keadaan suatu sistem (atribut), dan memberikan pelayanan untuk menyelesaikan keadaan tersebut (metoda). Class diagram dapat dilihat pada gambar 3.6.

+<<create>> GZipEncoder() +loadFile() : string +encodeFile() : bool +getSummary() : string -fileName : string -outpuFilename : string -FileLen : long -outputFilelen : long -gSummary : string

GZipEncoder

+<<create>> GZipDecoder() +loadFile() : string +decodeFile() : bool +getSummary() : string -fileName : string -outpuFilename : string -FileLen : long -outputFilelen : long -gSummary : string

GZipDecoder

+centerWindow() : void +<<create>> Frame() -splash -panCompression -panAbout -lblBanner Frame +createAndShowGUI() : void

+main() : void GZip

+<<create>> Splash() -serialVersionUID : long -splashImage -screensize -progressBar Splash «interface» GuiConstants +createWorkingDlg() +centerWindow() : void +buildDlg() : void +getSummary() : string -serialVersionUID : long -gSummary : string -iFileName : string -oFileName : short -bCompress : bool -algo : int

WorkingDlg

+<<create>> Comp() +buildBasicPanel() : void +buildConstraints() : void +actionPerforme() : void +clearDetails() : void -serialVersionUID : long -txtSource -txtDestination -tstStatus -btnSource -btnDestination -btnAction -btnClear -rbtnCompress -rbtnDecompress -btnGroup -Comp GZipCompressor -serialVersionUID -splashImage About


(54)

3.5 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. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Oleh karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum. Sebuah aktivitas dapat direalisasikan oleh satu use case atau lebih. Aktivitas menggambarkan proses yang berjalan, sementara use case menggambarkan bagaimana aktor menggunakan sistem untuk melakukan aktivitas. Gambar 3.7 dan gambar 3.8 menunjukan activity diagram yang dilakukan aplikasi.


(55)

3.5.1 Activity Diagram Kompresi

Activity diagram proses kompres dapat dilihat pada gambar 3.7

sistem user

EOF

write file output choose File

find SW dan RA load file

RA=SW EOF

find Offset dan length

write to output file

Length RA = 2 end of index RA - 1

N

N

Y

Y Y

create tree

write dictionary

find binary of string

Y

GZ file

encode binary using tree

N

N N


(56)

3.5.2 Activity Diagram Dekompresi

Activity diagram proses kompres dapat dilihat pada gambar 3.8

sistem user

choose GZ File load file

decompressed file

convert prefix code Y

create tree

EOF

convert binary to string

write output file Y

original file

read tree binary

EOF

write output file


(57)

3.6 Perancangan Sistem

Perancangan sistem adalah suatu proses yang menggambarkan bagaimana suatu sistem dibangun untuk memenuhi kebutuhan pada fase analisis. Adapun tahapan yang dilakukan dalam perancangan sistem ini membahas mengenai tujuan perancangan sistem, dan perancangan antar muka.

3.6.1 Tujuan Perancangan Sistem

Perancangan sistem merupakan tindak lanjut dari tahap analisa. Perancangan sistem bertujuan untuk memberikan gambaran sistem yang akan dibuat. Dengan kata lain perancanagn sistem didefinisikan sebagai penggambaran atau pembuatan sketsa dari beberapa elemen yang terpisah kedalam satu kesatuan yang utuh dan berfungsi. Selain itu juga perancangan bertujuan untuk lebih mengarahkan sistem yang terinci, yaitu pembuatan perancangan yang jelas dan lengkap yang nantinya akan digunakan untuk pembuatan simulasi. Aplikasi kompresi ini dibuat dengan sederhana, sehingga diharapkan user dapat dengan mudah menggunakan aplikasi kompresi ini.

3.6.2 Perancangan Antar Muka

Perancangan antarmuka dibutuhkan untuk mewakili keadaan sebenarnya dari aplikasi yang akan dibangun, berikut akan disajikan perancangan antarmuka dari aplikasi yang akan dibangun:

3.6.2.1Antar Muka Menu Compress

Antar muka menu compress digunakan untuk melakukan proses mengkompres file. Gambar 3.9 menampilkan rancangan menu compress.


(58)

GZip Compressor

Compressor/Decompressor About

Input :

Output :

Procedure :

Status :

Compress Decompress

Compress

...

...

Clear

Gambar 3.9 Rancangan antar muka menu Compress

Tabel 3.3. Keterangan tampilan menu compress

No Objek

Jenis Objek Fungsi Objek

1 Compressor/Decompressor Untuk masuk kehalaman kompres / dekompres

2 About Untuk menampilkan halaman tentang

software dan pembuat

3 Input Untuk mencantumkan tulisan Input File

4 Output Untuk mencantumkan tulisan Output File

5 Procedure Untuk memilih proses yang akan

dilakukan (kompresi/dekompresi)

6 Status bar Untuk mencantumkan informmasi proses

yang telah dilakuakan

7. Compress Untuk melakukan proses kompresi file

8 Clear Untuk menghapus informasi yang


(59)

3.6.2.1Antar Muka Menu Decompress

Antar muka menu decompress digunakan untuk melakukan proses dekompresi file. Gambar 3.10 menampilkan rancangan menu decompress.

GZip Compressor

Compressor/Decompressor About

Input :

Output :

Procedure :

Status :

Compress Decompress

Decompress

...

Clear

...

Clear

Gambar 3.10 Rancangan antar muka menu Decompress

Tabel 3.4. Keterangan tampilan menu Decompress

No Objek

Jenis Objek Fungsi Objek

1 Compressor/Decompressor Untuk masuk kehalaman kompres / dekompres

2 About Untuk menampilkan halaman tentang

software dan pembuat

3 Input Untuk mencantumkan tulisan Input File

4 Output Untuk mencantumkan tulisan Output File

5 Procedure Untuk memilih proses yang akan

dilakukan (kompresi/dekompresi)

6 Status bar Untuk mencantumkan informmasi proses


(60)

7. Decompres Untuk melakukan proses kompresi file

8 Clear Untuk menghapus informasi yang

tercamtum pada status bar

3.6.2.3Antar Muka Menu About

Antar muka menu about digunakan untuk menampilkan informasi mengenai software dan juga pembangun software. Gambar 3.11 menampilkan rancangan menu about.

GZip Compressor

Compressor / Decompressor About

Input :

Output :

Procedure :

Status :

Compress Decompress

... ...

Decompress Clear Informasi mengenai software dan pembuat


(61)

61 4.1 Implementasi Program

Kompresi data dengan menggunakan algoritma GZip ini dibangun dengan menggunakan Eclipse.

Program kompresi data ini terdiri dari beberapa menu. Diantaranya menu utama, menu compress, menu decompress. Menu utama merupakan menu yang pertama kali muncul ketika program tersebut dijalankan. Berikut merupakan gambar tampilan setiap menu dari aplikasi yang telah dibuat.

4.1.1 Tampilan Awal

Pada awal program akan muncul tampilan seberti pada gambar 4.1.


(62)

4.1.2 Tampilan Menu Compress

Menu compress ini digunakan untuk melakukan proses kompresi file. Gambar 4.2 menunjukan tampilan dari menu compress.

Gambar 4.2 Tampilan menu compress

4.1.3 Tampilan Menu Decompress

Menu decompress ini digunakan untuk melakukan proses dekompresi data. Gambar 4.3 menunjukan tampilan dari menu decompress.


(63)

4.1.4 Tampilan Animasi Kompresi

Pada saat terjadi proses kompresi maka akan tampil animasi seperti yg terlihat pada gambar 4.4. Animasi ini bertujuan untuk memberitahukan bahwa proses kompresi sedang berjalan.

Gambar 4.4 Tampilan animasi kompresi

4.1.5 Tampilan Animasi Dekompresi

Pada saat terjadi proses dekompresi maka akan tampil animasi seperti yg terlihat pada gambar 4.5. Animasi ini bertujuan untuk memberitahukan bahwa proses dekompresi sedang berjalan.

Gambar 4.5 Tampilan animasi dekompresi

4.1.6 Tampilan Menu About

Menu about ini digunakan untuk menampilkan tentang aplikasi GZip. Gambar 4.6 menunjukan tampilan dari menu about.


(64)

Gambar 4.6 Tampilan menu about

4.2 Perangkat Pendukung yang Digunakan

Dalam proses pembuatan aplikasi kompresi ini, tentunya membutuhkan perangkat keras (Hardware) dan perangkat lunak (software). Berikut merupakan penjelasan dari perangkat keras dan perangkat lunak yang digunakan.

4.2.1 Perangkat Keras (Hardware)

Spesifikasi minimal perangkat keras yang digunakan dalam pengujian aplikasi kompresi ini adalah sebagai berikut :

1. Processor Intel Pentium Core 2 Duo @ 2.00GHz 2. Memory 1 GB

3. Video Card 256 MB 4. Hardisk 120 GB 5. LAN card 6. HUB 8 port


(65)

4.2.2 Perangkat Lunak (Software)

Perangkat lunak yang digunakan dalam pengujian aplikasi ini adalah : 1. Sistem Operasi (OS) Windows XP Service Pack 2.

2. Sistem Operasi (OS) Windows Seven. 4.2.3 Topologi Jaringan

Topologi jaringan yang digunakan uji coba aplikasi ini adalah topologi Star. Pemilihan topoligi ini karena dalam jaringan dihubungkan ke sebuah konsentrator dengan menggunakan jalur yang berbeda-beda, sehingga jika salah satu komputer mengalami gangguan, jaringan tidak akan terpengaruh. Komunikasi di dalam jaringan diatur oleh konsentrator, berupa hub maupun switch. Skema jaringan dapat dilihat pada gambar 4.7.

IP 192.168.1.3 Subnet 255.255.255.0

IP 192.168.0.7 Subnet 255.255.255.0 Server

IP 192.168.1.2 Subnet 255.255.255.0

IP 192.168.0.4 Subnet 255.255.255.0

IP 192.168.0.5 Subnet 255.255.255.0

IP 192.168.0.6 Subnet 255.255.255.0

Gambar 4.7 Skema jaringan LAN yang digunakan pada uji coba aplikasi Pada uji coba aplikasi, range IP address yang digunakan pada jaringan adalah 192.168.1.2 sampai 192.168.1.7 dengan Subnet Mask 255.255.255.0. Jumlah komputer yang digunakan adalah 6 unit, dimana 1 unit komputer berfungsi sebagai server yang berfungsi untuk menyimpan file yang terkompresi. Sedangkan 5 unit komputer lainnya berfungsi sebagai user/client yang dapat melakukan proses kompres dan dekompres.


(66)

4.3 Pengujian Sistem

Pengujian sistem merupakan proses selanjutnya setelah implementasi perangkat lunak selesai dilakukan. Pengujian sistem yang dilakukan meliputi dua tahapan, yaitu pengujian fungsional dan pengujian data. Berikut ini merupakan pengujian sistem yang dilakukan.

4.3.1 Pengujian Fungsional

Pengujian fungsional yang digunakan untuk menguji sistem yang baru adalah metode pengujian alpha. Pengujian alpha berfokus pada persyaratan fungsional perangkat lunak.

a. Rencana Pengujian

Rencana pengujian yang akan dilakukan pada aplikasi kompresi dan pengiriman data ini selengkapnya terlihat pada tabel 4.1.

Tabel 4.1 Rencana pengujian program aplikasi kompresi dan pengiriman data

Item Uji Detail Pengujian Jenis Uji

Kompresi Mengompresi file yang akan ditransfer ke server

Black box Dekompresi Mendekompresi file dari server Black box b. Kasus dan hasil pengujian

Berdasarkan hasil pengujian dan yang telah disusun, maka dapat dilakukan pengujian sebagai berikut. Pengujian yang dilakukan meliputi pengujian kompresi dan dekompresi. Berikut ini merupakan pengujian-pengujian yang dilakukan.


(67)

1. Pengujian proses kompresi

Tabel 4.2 Pengujian proses kompresi data normal

Kasus dan Hasil Uji (Data Normal) Data Masukan Input File : file yang akan dikompres Yang diharapkan

Pilih menu compress, cari file yang akan dikompresi lalu tentukan tempat peyimpanan hasil kompresi, klik tombol Compress maka akan melakukan proses kompresi dan hasil kompresi akan keluar informasi ukuran file, rasio. Pengamatan Tampil informasi ukuran fileasli dan file hasil kompresi,

rasio. Kesimpulan Diterima

Tabel 4.3 Pengujian proses kompresi data salah

Kasus dan Hasil Uji (Data Salah) Data Masukan File Input : kosong

Yang diharapkan Akan ditampilkan pesan kesalahan pada proses kompresi Pengamatan Ditampilkan pesan kesalahan dalam proses kompresi Kesimpulan Diterima

2. Pengujian proses dekompresi

Tabel 4.4 Pengujian proses dekompresi data normal

Kasus dan Hasil Uji (Data Normal) Data Masukan Pilih nama file yang akan didekompresi Yang diharapkan

Pilih menu decompress, pilih file yang akan didekompresi lalu tentukan tempat peyimpanan hasil dekompresi, klik tombol Decompress maka akan melakukan proses mendekompresi file

Pengamatan Tampil informasi ukuran file yang akan di dekompres dan file asli.


(68)

Tabel 4.5 Pengujian proses dekompresi data salah

Kasus dan Hasil Uji (Data Salah) Data Masukan Tidak ada nama file pada list view

Yang diharapkan Akan ditampilkan pesan kesalahan pada proses dekompresi

Pengamatan Ditampilkan pesan kesalahan dalam proses dekompresi Kesimpulan Diterima

4.3.2 Pengujian Data

Pada pengujian data ini, akan dilakukan pengujian terhadap file teks, gambar, audio dan video. Berikut merupakan jenis-jenis file yang akan diambil untuk melakukan pengujian :

1. File teks : jenis file .doc, jenis file .rtf dan jenis file .pdf 2. File Gambar : jenis file .jpg, jenis file .png dan jenis file .bmp 3. File Audio : jenis file .mp3 dan jenis file .wma

4. File Video : jenis file .avi, jenis file .mpg dan jenis file .flv

Pemilihan jenis-jenis file tersebut dikarenakan jenis-jenis file tersebut merupakan jenis-jenis file yang paling sering digunakan dalam pengolahan data. File-file yang telah dipilih tersebut akan diuji pada aplikasi ini untuk memperoleh nilai rasio hasil dari perbandingan ukuran file yang asli dengan file yang telah dikompresi. Misal, ukuran file yang akan dikompres adalah 1842688 byte, lalu setelah melakukan proses kompresi maka akan tampil informasi mengenai hasil kompresi sebagai berikut :

Original Size : 1842688 Compressed File Size : 1033164 Compression Ratio : 43.93%


(69)

Original size menunjukkan ukuran file asli yang dikompres, sedangkan Compressed file size menunjukkan ukuran file yang telah terkompresi. Dan Compression ratio menunjukkan rasio hasil proses kompresi, disini rasio yang terjadi adalah 43,93%, hal ini menunjukkan bahwa proses kompresi telah mereduksi file sebesar 43,93% dari file aslinya. Semakin besar nilai rasio maka hasil kompresi semakin kecil dari file ukuran aslinya.

Berikut merupakan hasil pengujian dari aplikasi yang telah dibuat. 1. File Teks

Hasil pengujian aplikasi pada jenis file teks dapat dilihat pada tabel berikut: Tabel 4.6 Hasil pengujian Aplikasi terhadap ukuran file asli, file hasil

kompresi, waktu kompresi dan rasio pada file .DOC

Ukuran (byte) Waktu (detik)

Rasio (%)

File Asli File hasil

kompresi Kompresi

Dekompresi Tanpa Aplikasi

5.494.303 5.280.470 1 1 2 3,8918

5.597.696 549.193 1 1 2 90,1889

6.781.440 1.931.553 2 1 2 71,5170

6.798.848 1.934.711 2 1 2 71,5435


(70)

Perbandingan hasil pengujian aplikasi pada jenis file .DOC juga dapat dilihat pada gambar grafik berikut :

Gambar 4.8 Grafik perbandingan file asli dan file hasil kompresi pada jenis file .DOC

Tabel 4.7 Hasil pengujian Aplikasi terhadap ukuran file asli, file hasil kompresi, waktu kompresi dan rasio pada file .RTF

Ukuran (byte) Waktu (detik)

Rasio (%)

File Asli File hasil

kompresi Kompresi Dekompresi

Tanpa Aplikasi

1.142.505 66.888 2 1 2 94,1454

2.145.782 127.254 2 1 2 94,0695

3.444.386 294.917 2 1 2 91,4377

4.029.881 552.391 3 1 2 86,2926


(71)

Perbandingan hasil pengujian aplikasi pada jenis file .RTF juga dapat dilihat pada gambar grafik berikut :

Gambar 4.9 Grafik perbandingan file asli dan file hasil kompresi pada jenis file .RTF

Tabel 4.8 Hasil pengujian Aplikasi terhadap ukuran file asli, file hasil kompresi, waktu kompresi dan rasio pada file .PDF

Ukuran (byte) Waktu (detik)

Rasio (%)

File Asli File hasil

kompresi Kompresi Dekompresi

Tanpa Aplikasi

5.315.573 4.946.716 8 6,9391

6.395.359 5.570.949 8 12,8907

6.471.002 6.189.714 10 4,3469

7.045.079 6.512.390 10 7,5611


(72)

Perbandingan hasil pengujian aplikasi pada jenis file .PDF juga dapat dilihat pada gambar grafik berikut :

Gambar 4.10 Grafik perbandingan file asli dan file hasil kompresi pada jenis file

.PDF

2. File Gambar

Hasil pengujian aplikasi pada jenis file gambar dapat dilihat pada tabel berikut:

Tabel 4.9 Hasil pengujian Aplikasi terhadap ukuran file asli, file hasil kompresi, waktu kompresi dan rasio pada file .JPG

Ukuran (byte) Waktu (detik)

Rasio (%)

File Asli File hasil

kompresi Kompresi Dekompresi

Tanpa Aplikasi

5.743.796 5.736.764 8 1 2 0,1224

5.812.486 5.654.233 8 1 2 2,7226

6.090.825 6.082.199 9 1 2 0,1416

6.212.774 6.057.089 9 1 2 2,5058


(73)

Perbandingan hasil pengujian aplikasi pada jenis file .JPG juga dapat dilihat pada gambar grafik berikut :

Gambar 4.11 Grafik perbandingan file asli dan file hasil kompresi pada jenis file .JPG

Tabel 4.10 Hasil pengujian Aplikasi terhadap ukuran file asli, file hasil kompresi, waktu kompresi dan rasio pada file .PNG

Ukuran (byte) Waktu (detik)

Rasio (%)

File Asli File hasil

kompresi Kompresi Dekompresi

Tanpa Aplikasi

3.302.042 1.745.153 3 1 2 47,1492

3.463.766 79.738 2 1 2 97,6979

3.662.482 676.616 2 1 2 81,5250

3.686.454 802.555 2 1 2 78,2296


(74)

Perbandingan hasil pengujian aplikasi pada jenis file .PNG juga dapat dilihat pada gambar grafik berikut :

Gambar 4.12 Grafik perbandingan file asli dan file hasil kompresi pada jenis file .PNG

Tabel 4.11 Hasil pengujian Aplikasi terhadap ukuran file asli, file hasil kompresi, waktu kompresi dan rasio pada file .BMP

Ukuran (byte) Waktu (detik)

Rasio (%)

File Asli File hasil

kompresi Kompresi Dekompresi

Tanpa Aplikasi

18.081.730 310.166 3 1 2 98,2846

18.630.246 181.819 3 1 2 99,0241

1.9138.026 2.798.017 5 1 2 85,3798

17.089.020 338.762 3 1 2 98,2812


(75)

Perbandingan hasil pengujian aplikasi pada jenis file .BMP juga dapat dilihat pada gambar grafik berikut :

Gambar 4.13 Grafik perbandingan file asli dan file hasil kompresi pada jenis file .BMP

3. FileAudio

Hasil pengujian aplikasi pada jenis file audio dapat dilihat pada tabel berikut:

Tabel 4.12 Hasil pengujian Aplikasi terhadap ukuran file asli, file hasil kompresi, waktu kompresi dan rasio pada file .MP3

Ukuran (byte) Waktu (detik)

Rasio (%)

File Asli File hasil

kompresi Kompresi Dekompresi

Tanpa Aplikasi

5.677.919 5.600.662 9 1 2 1,3606

6.664.675 6.570.922 10 1 2 1,4067

6.985.457 6.940.975 11 1 2 0,6367

7.374.728 7.201.920 11 1 2 2,3432


(1)

xi

Tabel 4.15 Hasil pengujian Aplikasi terhadap ukuran file asli, file hasil kompresi, waktu kompresi dan rasio pada file .MPG ... 78 Tabel 4.16 Hasil pengujian Aplikasi terhadap ukuran file asli, file hasil kompresi, waktu

kompresi dan rasio pada file .FLV ... 79 Tabel 4.17 Hasil pengujian Aplikasi File Hasil Dekompresi ... 81


(2)

iii

KATA PENGANTAR

Salam Damai,

Dengan penuh kerendahan hati, penulis panjatkan puji syukur kehadirat Tuhan kita Yesus Kristus atas segala berkat dan anugerah-Nya sehingga penulis dapat menyelesaikan tugas penyusunan skripsi yang berjudul: “Pembangunan Aplikasi Kompresi Data Pada Saat Pemgiriman Data Terjadi Menggunakan Algoritma GZIP Pada Jaringan LAN (Local Area Network)”.

Adapun maksud dan tujuan dari penyusunan skripsi ini adalah untuk memenuhi dan melengkapi salah satu syarat dalam menempuh ujian Sarjana Fakultas Teknik dan Ilmu Komputer, Program Studi Teknik Informatika di Universitas Komputer Indonesia.

Bersama ini penulis ingin menyampaikan ucapan terima kasih kepada semua pihak yang telah memberikan bantuan, dukungan serta motivasi selama proses penyusunan skripsi hingga dapat terselesaikan.

Dengan segala kerendahan hati dan rasa hormat penulis ingin mengucapkan banyak terima kasih kepada Ayah dan Ibu tercinta atas doa, kasih sayang, pengorbanan yang tulus juga penulis ucapkan terima kasih untuk semua air mata yang telah ayah dan ibu keluarkan untuk penulis.

Penulis juga ingin mengucapkan terima kasih kepada keluargaku tercinta Kakak, Abang dan Adeku tercinta atas doa, dorongan, semangat, pengorbanan, motivasi dan perhatian dalam hidup penulis.


(3)

iv

Rasa terima kasih yang terdalam ini penulis sampaikan kepada:

1. Bapak Rasim, M.T., selaku Dosen Pembimbing yang telah bersedia meluangkan waktu dan pikiran serta memberikan bimbingan, pengarahan, dorongan, dan masukan kepada penulis dalam menyelesaikan skripsi ini. 2. Bapak Irawan Afrianto, S.T., M.T., selaku Dosen Penguji I pada sidang skripsi

ini.

3. Bapak Iskandar Ikbal, S.T., selaku Dosen Penguji III pada sidang skripsi ini 4. Ibu Mira Kania Sabariah, S.T., M.T., sebagai Ketua Jurusan Program Studi

Teknik Informatika Universitas Komputer Indonesia.

5. Bapak dan Ibu Dosen Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia yang telah memberikan bekal pendidikan dan ilmu pengetahuan yang sangat berharga selama penulis menempuh kuliah di Universitas Komputer Indonesia.

6. Seluruh Staf Administrasi, Perpustakaan, dan karyawan-karyawan Universitas Komputer Indonesia.

7. Gerry R. A. (terima kasih atas bantuannya selama penyusunan skripsi ini. BTW kapan nikah pak...?), Fazlur Akbar (semoga semester depan bisa lulus pak, SEMANGAT !!!), Henky Jaya Dinata (semoga cepat sembuh penyakit pe*o*nya pak...), Gunnawan (cepat tobat pak, kiamat sudah dekat...!!), Muhyidin (bersihin tu kamar, uda kaya tempat sampah), Wahyu Suhendra (kapan cewenya dikenalin ke kita2 pak???), Deni Anggara (jangan pernah berhenti berkarya pak), @all (jangan main Dota mulu oi....). Dan semua kawan-kawan kelas IF-7’06.


(4)

v

8. Anggota Persekutuan Naposo HKBP Bandung Barat.

9. Dan yang terakhir terima kasih kepada si Mocin (Honda Supra X 125DD, Nomor Polisi: D 5969 FH, warna Hitam Abu-Abu Tahun 2007). Terima kasih telah menemani hidupku selama melanglangbuana dibumi ini, termasuk

mencari cinta sejatiku (hehehe…..).

Terima kasih atas semua bantuan dan kemudahan yang telah diberikan kepada penulis. Tuhan Memberkati Kita Semua. Haleluya… Amin.

Syalom…

Bandung, 15 Juli 2010

Penulis,


(5)

(6)