• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2017

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

Copied!
105
0
0

Teks penuh

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

(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

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

(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

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

(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

(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

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

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

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

(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

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

(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

(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

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

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

(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

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

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

(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

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

(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

(27)

Tabel 2.3 Pencatatan affix codewords Huffman statis untuk semua indikasi panjang

Huffman codeword affixes for lengths

LDL Extra 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

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

(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

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

(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

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

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

(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

(36)

Tabel 3.1 Tabel spesifikasi perangkat keras

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

Intel Pentium 4 Kapasitas

memory mulai

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’

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

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

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

(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

(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

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

(51)

3.3.1 Sequence Diagram Kompresi

Sequence diagram proses kompres dapat dilihat pada gambar 3.4

Client

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.

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

(54)

3.5 Activity Diagram

(55)

3.5.1 Activity Diagram Kompresi

Activity diagram proses kompres dapat dilihat pada gambar 3.7

sistem

(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

(58)

GZip Compressor

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

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

(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

(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

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

(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

(76)

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

Gambar 4.14 Grafik perbandingan file asli dan file hasil kompresi pada jenis file .MP3

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

Ukuran (byte) Waktu (detik)

Rasio (%)

File Asli File hasil

kompresi Kompresi Dekompresi

Tanpa Aplikasi

3.973.873 3.868.902 6 1 2 2,6415

4.075.479 3.995.399 4 1 2 1,9649

4.260.775 4.158.835 6 1 2 2,3925

4.469.875 4.363.769 7 1 2 2,3738

(77)

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

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

.WMA

4. FileAudio

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

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

Ukuran (byte) Waktu (detik)

Rasio (%)

File Asli File hasil

kompresi Kompresi Dekompresi

Tanpa Aplikasi

155.387.904 154.044.094 225 15 30 0,8648

157.366.765 157.352.827 230 15 30 0,0088

159.393.792 158.212.614 232 16 30 0,7410

162.779.136 161.443.342 239 16 31 0,8206

Gambar

Gambar 3.1 Pohon Huffman Proses Pertama
Gambar 3.2 Use case diagram proses kompresi file
Gambar 3.3 Use case diagram proses dekompresi file
Gambar 3.4 Sequence diagram proses kompresi
+7

Referensi

Dokumen terkait

Puji Syukur penulis panjatkan kehadirat Tuhan Yang Maha Esa, yang telah melimpahkan rahmat dan hidayat-Nya sehingga sehingga penulis dapat menyelesaikan Skripsi dengan

Saya akan menaati perintah atasan karena saya ingin terus bekerja di kantor tersebut walaupun harus bertentangan dengan standar professional... Saya akan menaati perintah

Begitu juga dengan sifat-sifat yang telah disepakati atau kesesuaian produk untuk aplikasi tertentu tidak dapat disimpulkan dari data yang ada dalam Lembaran Data Keselamatan

Pada uji linieritas menunjukan nilai signifikansi (Sig), dari data output di atas, diperoleh nilai Deviation from liniearity Sig adalah 0,581 lebih besar dari 0,05, maka

Pengenalan dan pemakaian basic tools pada adobe photoshop.

Ratio Setiap pemegang 69 saham lama berhak atas 41 HMETD, dimana setiap 1 HMETD memberikan hak untuk membeli 1 saham baru, dan setiap 41 saham hasil Pelaksanaan HMETD melekat

Berdasarkan hasil evaluasi penawaran dan evaluasi teknis yang kami lakukan dari tanggal 25 Agustus s/d 1 September 2015 pada proses Seleksi Sederhana untuk

Endang Malihatun, Upaya Meningkatkan Hasil Prestasi Belajar Pada Mata Pelajaran Akidah Akhlak Materi Akhlak Terpuji Dengan Media Komik (Studi Tindakan Kelas 5 MI