• Tidak ada hasil yang ditemukan

BAB 3 ANALISA DAN PERANCANGAN SISTEM. semakin meluas pada berbagai kalangan. File-file tersebut ada kalanya semakin

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 3 ANALISA DAN PERANCANGAN SISTEM. semakin meluas pada berbagai kalangan. File-file tersebut ada kalanya semakin"

Copied!
63
0
0

Teks penuh

(1)

50 BAB 3

ANALISA DAN PERANCANGAN SISTEM

3.1 Gambaran Umum Permasalahan

Proses pertukaran file dengan bentuk teks, audio, video, gambar dan lainnya

semakin meluas pada berbagai kalangan. File-file tersebut ada kalanya semakin

membesar dan memerlukan media penyimpanan yang semakin besar pula. Apabila ukuran file terus membesar akan menyebabkan backup terhadap file akan semakin sulit

dilakukan serta menambah waktu dan menghabiskan kapasitas bandwidth dalam proses

pertukaran file yang terjadi dalam jaringan. Dengan semakin banyaknya kapasitas bandwidth yang dibutuhkan dalam proses pertukaran file maka biaya yang dikeluarkan

pun akan bertambah pula. Salah satu faktor yang menyebabkan biaya mahal, dikarenakan infrastruktur jaringan internet yang terhubung dengan pengguna akhir memiliki harga yang mahal. Khususnya di Indonesia dimana harga bandwidth akan

semakin mahal berbanding lurus antara harga dan kapasitas.

Ada beberapa pemecahan masalah yang dapat ditawarkan, diantaranya meningkatkan kapasitas bandwidth atau meminimalkan ukuran file. Kedua solusi diatas

dapat dilakukan, namun pengompresan file merupakan prioritas utama. Hal ini

dikarenakan pengompresan file akan menghemat bandwitdh dengan cara menghilangkan

pengulangan karakter untuk mengurangi jumlah data yang ditransaksikan serta menurunkan penggunaan bandwidth yang digunakan dalam jaringan. Oleh karena itu,

diperlukan sebuah piranti lunak ataupun piranti keras yang dapat meminimalkan ukuran

(2)

file. Perbedaan mendasar antara piranti lunak dengan piranti keras terletak pada proses

penanganan transaksi data, dimana piranti keras langsung bekerja pada layer fisikal

menangani proses komputasi sehingga akan menyebabkan berkurangnya proses yang harus dijalankan, sedangkan proses yang dilakukan piranti lunak melewati lebih banyak proses dari layer aplikasi sampai pada layer fisikal, perbedaan lainnya adalah biaya yang

harus dikeluarkan lebih besar bila dilakukan penambahan piranti keras. Penggunaan piranti lunak dikarenakan faktor biaya yang lebih murah serta tidak perlu menambah peralatan yang baru kedalam jaringan yang telah ada. Penggunaan sistem dibutuhkan agar proses pengiriman file antar komputer dapat berlangsung lebih cepat dan

menurunkan tingkat penggunaan bandwidth, tanpa harus menambah biaya yang besar.

3.2 Gambaran Umum Kompresi File

Dengan semakin membesarnya ukuran file yang terjadi dalam transaksi

jaringan, maka diperlukan suatu pemecahan yang terbaik. Sesuai dengan gambaran permasalahan diatas, pemampatan ukuran dari file yang ditransaksikan dalam jaringan

dengan tetap menjaga integritasnya mampu mengatasi masalah keterbatasan bandwidth yang tersedia sehingga dapat mengatasi transaksi jaringan yang semakin lama semakin banyak.

Kompresi adalah proses pengubahan sekumpulan file menjadi suatu bentuk

kode untuk menghemat kebutuhan tempat penyimpanan dan waktu untuk transmisi file.

Saat ini terdapat berbagai tipe algoritma kompresi antara lain : Huffman Coding, LZW,

(3)

mengubah pesan awal (isi file input) menjadi sekumpulan codeword, metode kompresi

terbagi menjadi dua kelompok, yaitu : 1. Metode Statik

Menggunakan peta kode yang selalu sama. Metode ini membutuhkan dua fase (two-pass), fase pertama untuk menghitung

probabilitas kemunculan tiap simbol atau karakter dan menentukan peta kodenya, dan fase kedua untuk mengubah pesan menjadi kumpulan kode yang akan ditransmisikan. Salah satu contohnya adalah Algoritma

Huffman.

2. Metode Dinamik (Adaptif)

Menggunakan peta kode yang dapat berubah dari waktu ke waktu. Metode ini disebut adaptif karena peta kode mampu beradaptasi terhadap perubahan karakteristik isi file selama proses kompresi berlangsung.

Metode ini bersifat one-pass, karena hanya diperlukan satu kali pembacaan

terhadap isi file. Salah satu contohnya adalah algoritma LZW.

Berdasarkan teknik pengkodean atau pengubahan simbol yang digunakan, metode kompresi dapat dibagi ke dalam tiga kategori, yaitu :

1. Metode Symbolwise

Menghitung peluang kemunculan dari tiap simbol dalam file input,

(4)

sering muncul diberi kode yang lebih pendek dibandingkan simbol yang lebih jarang muncul, salah satu contohnya adalah algoritma huffman.

2. Metode Dictionary

Menggantikan karakter atau fragmen dalam file input dengan indeks

lokasi dari karakter atau fragmen tersebut dalam sebuah kamus (dictionary). Salah satu contohnya adalah algoritma LZW.

3. Metode Predictive

Menggunakan model finite-context atau finite-state untuk

memprediksi distribusi probabilitas dari simbol-simbol selanjutnya.

Ada beberapa faktor yang sering menjadi pertimbangan dalam memilih suatu metode kompresi yang tepat, yaitu kecepatan kompresi, sumber daya yang dibutuhkan (memori, kecepatan prosesor), ukuran file hasil kompresi, besarnya redudansi dan

kompleksitas algoritma. Tidak ada metode kompresi yang paling efektif untuk semua jenis file.

Dalam perbandingan ini, diimplementasikan dua buah metode kompresi, yaitu algoritma huffman dan algoritma LZW yang mewakili metode statik dan metode

dinamik. Kedua metode ini diujikan untuk mengkompresi dan mendekompresi berbagai tipe dan ukuran file yang berbeda. Setelah itu akan dilakukan analisis statistik untuk

(5)

membandingkan kinerja dari kedua metode ini berdasarkan dua faktor, yaitu rasio atau perbandingan ukuran file hasil kompresi terhadap file asli dan kecepatan kompresinya.

3.3 Gambaran Umum Kompresi Huffman Coding

Algoritma Huffman dibuat oleh seorang mahasiswa MIT bernama David

Huffman, merupakan salah satu metode paling lama dan paling terkenal dalam kompresi teks. Algoritma Huffman menggunakan prinsip pengkodean yang mirip dengan kode

Morse, yaitu tiap karakter (simbol) dikodekan hanya dengan rangkaian beberapa bit,

dimana karakter yang sering muncul dikodekan dengan rangkaian bit yang pendek dana

karakter yang jarang muncul dikodekan dengan rangkaian kode bit yang lebih panjang.

Secara garis besar algoritma Huffman dapat dijabarkan sebagai berikut :

1. Fase pertama

Baca (scan) file input dari awal hingga akhir untuk menghitung frekuensi

kemunculan tiap karakter dalam file. n ← jumlah semua karakter dalam file

input. T ← daftar semua karakter dan nilai peluang kemunculannya dalam fileinput. Tiap karakter menjadi node daun pada pohon Huffman.

2. Fase kedua

Ulangi sebanyak (n -1) kali :

a. Item m1 dan m2 ← dua subset dalam T dengan nilai peluang yang

terkecil.

b. Gantikan m1 dan m2 dengan sebuah item {m1,m2} dalam T, dimana

nilai peluang dari item yang baru ini adalah penjumlahan dari nilai peluang m1 dan m2.

(6)

c. Buat node baru {m1, m2} sebagai father node dari node m1 dan m2

dalam pohon Huffman.

3. T sekarang tinggal berisi satu item, dan item ini sekaligus menjadi node

akar pohon Huffman.

Panjang kode untuk suatu simbol adalah jumlah berapa kali simbol tersebut bergabung dengan item lain dalam T.

Sebagai contoh, dalam kode ASCII string 7 huruf “ABACCDA” membutuhkan

representasi 7 × 8 bit = 56 bit (7 byte), dengan rincian sebagai berikut:

01000001 01000010 01000001 01000011 01000011 01000100 01000001

A B A C C D A

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 3.1

Tabel 3.1 Kode Huffman untuk “ABACCDA” Simbol 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”

(7)

dibutuhkan hanya 13 bit. Dari Tabel 3.1 tampak bahwa kode untuk sebuah

simbol/karakter tidak boleh menjadi awalan dari kode simbol yang lain guna menghindari kerancuan (ambiguitas) dalam proses dekompresi atau decoding. Karena

tiap kode Huffman yang dihasilkan unik, maka proses dekompresi dapat dilakukan

dengan mudah. Contoh : saat membaca kode bit pertama dalam rangkaian bit

“011001010110”, yaitu bit “0”, dapat langsung disimpulkan bahwa kode bit “0”

merupakan pemetaan dari simbol “A”. Kemudian baca kode bit selanjutnya, yaitu bit

“1”. Tidak ada kode Huffman “1”, lalu baca kode bit selanjutnya, sehingga menjadi

“11”.

Tidak ada juga kode Huffman “11”, lalu baca lagi kode bit berikutnya,

sehingga menjadi “110”. Rangkaian kode bit “110” adalah pemetaan dari simbol “B”.

Metode Huffman yang diterapkan dalam penelitian ini adalah tipe statik, dimana

dilakukan dua kali pembacaan (two-pass) terhadap file yang akan dikompresi. Pertama

untuk menghitung frekuensi kemunculan karakter dalam pembentukan pohon Huffman,

dan kedua untuk mengkodekan simbol dalam kode Huffman.

3.4 Gambaran Umum Kompresi LZW

Algoritma LZW dikembangkan dari metode kompresi yang dibuat oleh Ziv dan Lempel pada tahun 1977. Algoritma ini melakukan kompresi dengan menggunakan

dictionary, dimana fragmen-fragmen teks digantikan dengan indeks yang diperoleh dari

sebuah “kamus”. Prinsip sejenis juga dilakukan dalam kode Braille, di mana kode-kode khusus digunakan untuk merepresentasikan kata-kata yang ada.

Pendekatan ini bersifat adaptif dan efektif karena banyak karakter dapat dikodekan dengan mengacu pada string yang telah muncul sebelumnya dalam teks.

(8)

Prinsip kompresi tercapai jika referensi dalam bentuk pointer dapat disimpan dalam

jumlah bit yang sedikit dibandingkan string aslinya.

Secara garis besar algoritma LZW dapat dijabarkan sebagai berikut :

1. Dictionary diinisialisasi dengan semua karakter dasar yang ada:

{‘A’..’Z’,’a’..’z’,’0’..’9’}.

2. P ← karakter pertama dalam stream karakter.

3. C ← karakter berikutnya dalam stream karakter.

4. Apakah string (P + C) terdapat dalam dictionary ?

• Jika ya, maka P ←P + C (gabungkan P dan C menjadi string baru).

• Jika tidak, maka :

i. Output sebuah kode untuk menggantikan string P.

ii. Tambahkan string (P + C) ke dalam dictionary dan berikan

nomor/kode berikutnya yang belum digunakan dalam dictionary

untuk string tersebut.

iii. P ← C.

5. Apakah masih ada karakter berikutnya dalam stream karakter ?

• Jika ya, maka kembali ke langkah 2.

• Jika tidak, maka output kode yang menggantikan string P, lalu

terminasi proses (stop).

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

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

(9)

posisi sekarang dari stream karakter dan kolom karakter menyatakan karakter yang

terdapat pada posisi tersebut.

Kolom dictionary menyatakan string baru yang sudah ditambahkan ke dalam dictionary dan nomor indeks untuk string tersebut ditulis dalam kurung siku. Kolom output menyatakan kode output yang dihasilkan oleh langkah kompresi. Hasil proses

kompresi ditunjukkan pada Gambar 3.1.

Tabel 3.2 Tahapan proses kompresi LZW

Langkah Posisi Karakter Dictionary Output

1. 1 A [4] A B [1] 2. 2 B [5] B B [2] 3. 3 B [6] B A [2] 4. 4 A [7] A B A [4] 5. 6 A [8] A B A C [7] 6. 9 C - - - [3]

Gambar 3.1 Proses kompresi LZW

Proses dekompresi pada LZW dilakukan dengan prinsip yang sama seperti proses kompresi. Algoritma diberikan pada Gambar 3.1. Pada awalnya, dictionary

diinisialisasi dengan semua karakter dasar yang ada. Lalu pada setiap langkah, kode

stream karakter : a b b ab aba c

kode output : [1] [2] [2] [4] [7] [3]

frasa baru yang 4 5 6 7 8 ditambahkan ke = = = = =

(10)

dibaca satu per satu dari stream kode, dikeluarkan string dari dictionary yang

berkorespondensi dengan kode tersebut, dan ditambahkan string baru ke dalam dictionary. Tahapan proses dekompresi ini ditunjukkan pada Tabel 3.3. Metode LZW

yang diterapkan dalam penelitian ini bertipe dinamik, dimana hanya dilakukan satu kali pembacaan (one-pass) terhadap file yang akan dikompresi. Pengkodean data dilakukan

secara on the fly, bersamaan dengan proses penambahan string baru ke dalam dictionary.

Proses algoritma dekompresi LZW dapat dijabarkan sebagai berikut :

1. Dictionary diinisialisasi dengan semua karakter dasar yang ada :

{‘A’..’Z’,’a’..’z’,’0’..’9’}.

2. CW ← kode pertama dari stream kode (menunjuk ke salah satu karakter

dasar).

3. Lihat dictionary dan output string dari kode tersebut (string.CW) ke stream

karakter.

4. PW ←CW; CW ← kode berikutnya dari stream kode.

5. Apakah string.CW terdapat dalam dictionary ?

ƒ Jika ada, maka :

i. output string.CW ke stream karakter ii. P ←string.PW

iii. C ← karakter pertama dari string.CW

iv. tambahkan string (P+C) ke dalam dictionary

ƒ Jika tidak, maka :

i. P ←string.PW

(11)

iii. output string (P+C) ke stream karakter dan tambahkan string

tersebut ke dalam dictionary (sekarang berkorespondensi dengan CW);

6. Apakah terdapat kode lagi di stream kode ?

ƒ Jika ya, maka kembali ke langkah 4. ƒ Jika tidak, maka terminasi proses (stop).

Tabel 3.3 Tahapan proses dekompresi LZW Langkah Kode Output Dictionary 1. [1] A --- 2. [2] B [4] A B 3. [2] B [5] B B 4. [4] A B [6] B A 5. [7] A B A [7] A B A 6. [3] C [8] A B A C

3.5 Perbandingan Hasil Kompresi Algoritma Huffman dengan LZW

Algoritma Huffman dan LZW merupakan contoh algoritma kompresi yang

digunakan sebagai perbandingan algoritma kompresi yang akan digunakan sebagai algoritma kompresi yang baik digunakan dalam sistem ini. Perbandingan ini menitikberatkan pada ukuran file hasil kompresi, rasio, waktu kompresi serta waktu

dekompresi. Sebagai bahan untuk perbandingan, digunakan file-file yang dipandang

cukup memadai untuk mewakili sebagian besar tipe file yang ada, yaitu :

1. File aplikasi ( Excel, AcrobatReader, Powerpoint, Flash )

2. File object/biner ( file com, file sistem/dll, file hasil kompilasi : C, Java, BorlandDelphi )

(12)

4. File basis data ( Access, MySql )

5. File multimedia ( file mp3, file avi, file mpeg, file midi )

6. File Teks ( file txt, file doc, file ini - konfigurasi Windows )

7. File executable ( file exe )

8. File yang telah di kompresi ( file WinZip )

9. File source code ( html, c, cpp, pas )

Spesifikasi komputer dimana kedua algoritma ini dibandingkan adalah sebagai berikut :

1. Prosesor : Intel Pentium 4 2.40 GHz. 2. Memory : DDRAM 256 MB.

3. Kapasitas penyimpanan (Harddisk) : 80 Gb.

4. Sistem Operasi : Windows XP Professional SP2

Tabel 3.4 Percobaan Perbandingan Kompresi Algoritma Huffman dan LZW

Ukuran Hasil Kompresi (Bytes) Rasio Kompresi (%) Waktu Kompresi (Mili Sekon) Waktu Dekompresi (Mili Sekon) No Tipe File Ukuran File Asli (Bytes) Huffman LZW Huffman LZW Huffman LZW Huffman LZW 1 XLS 25,870,848 15,372,726 22,804,363 41 12 2.780 2.345 1.827 1.033 2 PDF 44,695,203 38,265,341 49,050,151 15 -10 5.625 4.531 4.782 1.766 3 PPT 10,210,816 9,669,276 13,525,766 6 -33 1.406 906 1.282 470 4 COM 306.597 248.541 289.414 19 6 190 46 46 61 5 DLL 23,013,732 17,970,264 23,291,046 22 -2 2.750 1.811 2.094 935 6 BMP 9,068,816 7,997,731 10,435,141 12 -16 1.406 764 1.000 359 7 JPG 19,836,161 19,513,350 27,801,845 2 -41 2.672 1.782 2.594 860 8 MDB 16,580,608 8,443,193 10,867,528 50 35 1.768 1.608 935 564 9 MP3 39,973,527 39,742,879 55,200,405 1 -39 4.952 4.375 5.141 1.750 10 MPG 470.000.000 454,228,000 624,066,000 4 -33 59.921 78.889 74.155 57.934 11 TXT 8,455,948 4,346,508 3,163,329 49 63 767 625 485 234 12 DOC 11,822,592 9,006,572 11,814,016 24 1 1.124 1.079 1.061 438 13 EXE 4,913,182 3,780,502 4,760,239 24 4 673 406 421 188 14 ZIP 46,572,690 46,196,210 63,746,236 1 -37 5.500 5.892 5.923 2.000 15 HTML 782,123 507,862 362,457 36 54 32 78 93 0 16 CPP 649,576 457.500 324,344 30 51 95 94 94 32

(13)

3.5.1 Kesimpulan Perbandingan Hasil Kompresi Algoritma Huffman dengan LZW

Dari data percobaan yang dilakukan dapat disimpulkan beberapa hal mengenai perbandingan kinerja kedua algoritma kompresi yang telah diimplementasikan yaitu :

1. Secara rata-rata algoritma Huffman menghasilkan rasio file kompresi yang

baik (±21 %) , sedangkan dengan algoritma LZW rasio file yang dihasilkan

kurang baik (±0.9375 %).

2. Hasil kompresi Huffman lebih baik dibandingkan LZW pada kasus file

aplikasi, file object/biner , file sistem, file gambar, file basis data, file

multimedia, file executable, file hasil kompresi, file *.doc. Algoritma Huffman memberikan hasil kompresi yang relatif hampir sama untuk setiap

kasus uji, sedangkan LZW memberikan hasil kompresi yang buruk (ukuran

file hasil kompresi bisa lebih besar dari file asli) untuk file tersebut.

3. Secara rata-rata algoritma LZW membutuhkan waktu kompresi yang hampir sama dengan algoritma Huffman, Namun dalam proses dekompresi,

algoritma LZW lebih unggul dibandingkan dengan algoritma Huffman.

4. Kecepatan kompresi algoritma LZW secara signifikan berkurang pada file

*.xls, file object/biner , file sistem, file basis data, file multimedia, file executable, file hasil kompresi, file *.doc. Namun berbeda dengan

algoritma Huffman yang kecepatan kompresinya hampir merata untuk

semua kategori file.

Dengan sejumlah kesimpulan diatas, maka pada sistem ini akan dirancang dengan menggunakan algoritma kompresi Huffman. Penyebab utama penggunaan

(14)

algoritma ini karena proses kompresi yang dilakukan oleh algoritma Huffman dapat

meminimalkan atau memperkecil ukuran file pada hampir semua tipe file. Dan waktu

kompresi serta dekompresi yang diperlukan bergantung pada banyaknya pengulangan isi karakter yang terdapat dalam file yang akan dikompresi.

3.6 Perancangan Proses Program Kompresi

Perancangan proses program kompresi secara umum menjelaskan, bahwa file

yang akan dikompres yang dijadikan input, akan diolah komputer sedemikian rupa.

Sehingga diperoleh output file hasil kompresi yang lebih kecil ukurannya dan integritas

data didalamnya tetap terjaga dengan baik.

Gambar 3.2 Proses kompresi

Program kompresi akan menggunakan algoritma Huffman. Prinsip pengkodean

yang digunakan oleh algoritma ini mirip dengan kode Morse, yaitu tiap karakter (simbol) dikodekan hanya dengan rangkaian beberapa bit, dimana karakter yang sering

(15)

dikodekan dengan rangkaian kode bit yang lebih panjang. Proses pengompresian file

bisa dilihat seperti gambar 3.29.

Aplikasi kompresi yang ada pada saat ini, seperti WinZip. Menggunakan penggabungan dari beberapa algoritma kompresi, sehingga WinZip memiliki keunggulan dalam hal rasio kompresi yang lebih besar dibandingkan dengan algoritma

Huffman yang akan diimplementasikan dalam sistem ini. Namun waktu yang dibutuhkan

untuk proses kompresi dan dekompresi pada WinZip tidak jauh berbeda dengan algoritma Huffman.

Pengiriman file antar komputer dengan menggunakan sistem yang akan dibuat

ini, hampir memiliki kesamaan dengan cara pengiriman file yang telah dikompresi

dengan aplikasi WinZip melalui email. Namun pengiriman file dengan sistem ini

memiliki kelebihan dalam segi otomatisasi. Pengguna tidak perlu mengkompresi file

secara manual sebelum mengirimkannya ke komputer tujuan. Dengan sistem yang akan dibuat, pengguna hanya perlu memasukkan alamat IP komputer tujuan dan mengirimkan

file yang telah ditentukan. Proses kompresi akan dilakukan secara otomatis pada

komputer server asal, kemudian akan didekompresi pada server tujuan sebelum

mengirimkan file yang dikirim ke komputer tujuan. Untuk penjelasan lebih lanjut bisa

(16)

Tabel 3.5 Tabel Perbandingan WinZip dan WEK Transporter

Perbandingan WinZip WEKTransporter

Algoritma Menggunakan gabungan dari beberapa algoritma Hanya menggunakan satu jenis algoritma, algoritma Huffman Otomatisasi Manual, membutuhkan

campur tangan pengguna

Proses dilakukan secara otomatis, dari pengiriman file,

kompresi serta dekompresi. Keamanan data Terdapat fungsi proteksi enkripsi Tidak terdapat fungsi proteksi

Enkapsulasi data Tidak ada Ada

Pemecahan file Sesuai dengan kapasitas penyimpanan data Dilakukan pada ukuran diatas 30 Kb file dengan

Rasio Kecepatan Kompresi dan Dekompresi

6 : 4 6 : 5

Lisensi Trial Open Source

3.7 Perancangan Sistem

Sistem yang akan dibuat menggunakan pendekatan sistematis dan berurutan

(Linear Sequential Model). Tahap-tahap yang akan dilakukan dalam perancangan sistem

ini adalah sebagai berikut :

1. System/Information Engineering and Modeling

Tahap ini mulai menetapkan kebutuhan-kebutuhan semua elemen sistem dan mengalokasikan beberapa bagian dari kebutuhan-kebutuhan ini ke piranti lunak. Menetapkan kebutuhan piranti keras dan basis data yang dibutuhkan dalam sistem ini, menetapkan alat-alat yang dibutuhkan seperti

(17)

2. Software Requirement Analysis

Pada tahap ini penetapan sistem difokuskan pada piranti lunak, seperti penetapan fungsi-fungsi apa saja yang dibutuhkan dalam sistem, kemampuan apa saja yang dapat dibuat, kinerja dan antar muka piranti lunak. Dalam pembuatan sistem ini piranti lunak yang terlibat adalah JSP

(Java Service Pages), MySQL Server, dan Borland Delphi. JSP digunakan

untuk mengirimkan file yang akan dikirimkan kepada komputer tujuan.

Penggunaan MySQL Server adalah untuk menyiapkan database untuk

keperluan penyimpanan informasi data transaksi pengiriman dalam

database. Sedangkan Borland Delphi digunakan dalam pengembangan

aplikasi WEKTransporter

3. Design

Perancangan piranti lunak dititik beratkan pada struktur data, arsitektur piranti lunak, representasi antar muka dan prosedur secara detail. Struktur data yang akan dirancang adalah data yang diupload, data yang

dikompres, data yang dipecah, data yang dikirim, data yang diterima, data yang digabung kembali, dan data yang didekompres. Arsitektur piranti lunak dirancang sesederhana mungkin sehingga pengguna dapat menggunakannya dengan mudah. Representasi antar muka akan dirancang menggunakan Macromedia Dreamweaver dan Borland Delphi. Prosedur

yang dibangun dalam sistem ini dibentuk kedalam modul-modul dengan tujuan untuk mempermudah pembacaan kode secara sistematis dan mempermudah proses pengkoreksian. Modul-modul tersebut antara lain

(18)

modul upload file, modul pembacaan database, modul kompresi, modul

pengiriman, modul dekompresi, dll.

4. Code Generation

Rancangan kode yang telah dibuat diubah kedalam bentuk yang dapat dibaca oleh kompiler. Proses pengkodean ini merupakan hal yang bersifat mekanik. Pengkodean ini diterjemahkan kedalam dua bahasa pemrograman yaitu JSP dan Delphi. WEK Loader menggunakan Java Service Page (JSP) untuk membantu klien dalam memilih file dan tujuan

yang akan dikirimkan. Tujuan dari WEK loader ini untuk memudahkan

seorang klien dalam proses pengiriman file ke klien lainnya. Sedangkan

pada aplikasi WEK Transporter menggunakan aplikasi Delphi sebagai

piranti lunak pengembangannya. WEK Transporter akan mengambil file

hasil pengkopian dari klien kemudian akan menjalankan proses kompresi atau dekompresi.

5. Testing

Tahap ini dilakukan pengujian terhadap statement-statement yang

ada dan fungsi-fungsi yang telah dikoding, dengan tujuan apakah input yang akan dimasukkan dapat memberikan hasil yang diharapkan. Proses pengujian ini akan diterapkan dengan menggunakan pengujian sederhana melalui koneksi dial-up terhadap server yang dibuat dengan menggunakan

(19)

terjadinya komunikasi data dari remote atau client yang ingin mengakses

jaringan corporate dengan menggunakan koneksi dial-up.

6. Support/Maintenance

Tahap ini adalah tahap yang dikenal dengan tahap pengevaluasian, perubahan-perubahan dapat dilakukan jika terdapat kesalahan-kesalahan yang harus diperbaiki, sistem ini harus beradaptasi terhadap perubahan lingkungan seperti sistem operasi atau pengguna.

Setelah dilakukan perancangan sistem berdasarkan pendekatan Linear Sequential Model, tahap selanjutnya yang dilakukan adalah perancangan piranti lunak

aplikasi, yang terdiri dari :

1. Gambaran Umum Sistem. 2. Perancangan Struktur Menu.

3. Perancangan State Transition Diagram (STD).

4. Perancangan Layar. 5. Perancangan Algoritma.

(20)

3.7.1 Gambaran Umum Sistem

Sistem ini secara keseluruhan berjalan pada application layer, presentation layer dan session layer. Pada saat berada di application layer, program aplikasi dari

suatu komputer dapat berkomunikasi dengan program aplikasi lainnya dalam komputer yang berbeda melalui jaringan. Layer berikutnya yaitu presentation layer yang

menangani format dan representasi data yang akan di kirim atau di terima pada suatu jaringan komputer. Layer ini menerima data dari application layer dan mengubahnya

menjadi format yang disetujui sehingga data yang dikirimkan oleh satu sistem dapat dibaca oleh sistem yang lainnya. Session Layer bertanggung jawab dalam membangun,

mempertahankan dan memutuskan sesi antara aplikasi dari komputer-komputer yang saling berkomunikasi. Sesi merupakan suatu hubungan antara aplikasi dalam jaringan.

Sistem ini terdiri dari 3 tipe program, yaitu : 1. WEK Loader

Program atau browser yang digunakan di sisi klien menggunakan Java Service Pages (JSP) untuk membantu klien dalam memilih file dan

tujuan yang akan dikirimkan. Tujuan dari browser ini untuk memudahkan

(21)

Gambar 3.3 Gambaran Umum WEK Loader

2. WEK Transporter

Program ini berjalan pada server, yang menggunakan aplikasi

Delphi sebagai piranti lunak pengembangannya. Tujuan dari program ini adalah mengambil file hasil pengkopian atau menerima file hasil

pengiriman kemudian menjalankan proses kompresi atau dekompresi yang akan menghasilkan output file terkompresi atau terdekompresi. Kemudian output tersebut yang akan dikirimkan kepada klien tujuan.

(22)

Gambar 3.4 Gambaran Umum WEK Transporter

3. Services

Program ini berjalan pada komputer klien tujuan yang berfungsi sebagai media untuk penyampaian file dari server tujuan. Jika program ini

dijalankan dan terdapat transaksi penerimaan file di server, maka klien

secara otomatis menerima file kiriman dari server dan disimpan. Aplikasi

ini bertujuan untuk proses otomatisasi, artinya, klien hanya perlu mengaktifkan services ini apabila hendak menerima kiriman file tanpa

perlu campur tangan dari pengguna. Program WEK Transporter akan

mengkopikan file yang diterima apabila klien yang dituju tersebut telah mengaktifkan services ini. Namun apabila program services tidak

diaktifkan maka proses pengkopian file tidak akan dijalankan dan

(23)

3.7.2 Perancangan Struktur Menu 3.7.2.1 Struktur Menu

Piranti lunak ini memiliki rancangan struktur menu sebagai berikut : 1. Menu WEK Loader

Program ini tidak menggunakan menu yang khusus. Dalam program ini terdapat beberapa komponen :

- Textfield : IP Destination

Digunakan untuk mengisikan alamat IP tujuan klien yang akan menerima file yang dikirim.

- Browse

Digunakan untuk memilih file mana yang akan dikopikan ke server.

- Button : Upload

Digunakan untuk menjalankan proses pengkopian file dari klien ke server.

(24)

2. Menu WEK Transporter Struktur Menu WEK Transporter File Server Client Stop Exit Edit Help Server Client view Log File

Gambar 3.5 Struktur Menu WEK Transporter

3.7.2.2 Penjelasan Menu

1. Menu WEK Transporter

Digunakan untuk melakukan proses kompresi atau dekompresi serta perngiriman file dari server sumber ke server tujuan, yang terdiri dari:

Menu File

- Server

Digunakan untuk mengaktifkan fungsi server. Saat memilih menu

ini akan menampilkan jendela baru, yang akan digunakan untuk meminta inputanport bagi server.

(25)

- Client

Digunakan untuk mengaktifkan fungsi client. Menu client

diaktifkan apabila komputer berfungsi sebagai server tujuan dan

menerima file yang akan dikirimkan dari server sumber. Saat

memilih menu ini akan menampilkan jendela baru, yang akan digunakan untuk meminta inputan IP address dan inputan port bagi

klien. - Stop

Digunakan untuk menghentikan fungsi yang sedang dijalankan, baik server maupun client.

- Exit

Digunakan untuk keluar dari aplikasi WEK Transporter. Sebelum

mengeksekusi fungsi dari menu ini, maka akan muncul kotak dialog konfirmasi yang menanyakan apakah pengguna yakin untuk keluar dari aplikasi.

Menu Edit

- ViewLogFile

Digunakan untuk melihat log file dari semua transaksi data yang

terjadi. Log file ini berupa file yang utuh dan disimpan dalam

(26)

Menu Help

- HelpContents

Digunakan untuk mencari informasi singkat mengenai pemakaian menu serta fungsi-fungsi yang ada pada aplikasi.

- About

Digunakan untuk menampilkan informasi nama-nama penyusun aplikasi dan versi dari aplikasi ini.

3.7.3 Perancangan State Transition Diagram (STD) 1. STD BrowseFile

(27)

2. STD Masukan IP Destination

Gambar 3.7 Masukan IP Destination

3. STD UploadFile

Gambar 3.8 STD Upload File

4. STD Menu File - Server

(28)

5. STD Menu File - Client

Gambar 3.10 STD File – Client

6. STD Menu File - Stop

Gambar 3.11 STD File – Stop

7. STD Menu File - Exit

(29)

8. STD Menu Edit - View Log File

Gambar 3.13 STD Edit - View Log File

9. STD Menu Help - HelpContents

Layar Utama tampilkan kotak dialog Klik help contents Kotak Dialog Help help

Klik close kembali ke layar utama

Gambar 3.14 STD Help - Help Contents

10. STD Menu Help - About

(30)

3.7.4 Perancangan Layar

Perancangan Layar Aplikasi ini terdiri dari : 1. Perancangan Layar WEK Loader v.1.0

2. Perancangan Layar WEK Transporter v.1.0

3. Perancangan Layar Services

4. Perancangan Layar Bilah Menu 5. Perancangan Layar Bilah Edit 6. Perancangan Layar Kotak Dialog 3.7.4.1 Perancangan Layar WEK Loader v.1.0

Pada layar WEK Loader v.1.0 ini terdapat beberapa jenis komponen yaitu, label

nama aplikasi (“WEK Loader”), label judul (“File Upload”), label IP Destination, label File Name, textfield IP Destination (untuk memasukan alamat ip yang ingin dikirimkan file), textfield File Name (untuk memasukan nama file yang akan dicopikan ke server),

tombol browse (untuk membuka kotak dialog buka file), tombol upload (untuk

(31)
(32)

Gambar 3.17 Rancangan Layar Membuka File

3.7.4.2 Perancangan Layar WEK Transporter v.1.0

(33)

a. Layar Utama

Pada layar Utama terdapat judul dari nama aplikasi ini, dan beberapa menu utama yaitu, menu File (dapat memilih submenu didalamnya), menu Help (dapat memilih submenu didalamnya), textarea untuk list IP yang

terkoneksi dengan server, dan textarea yang berisi daftar log file yang dapat

digunakan sebagai dokumentasi.

WEK Transporter V.1.0 _ X Edit File IP Server yang terkoneksi Memo Help IP Client yang terkoneksi Server Client Log

(34)

b. Layar Menu File

Pada layar menu File ini, akan menampilkan hasil dari proses

pemilihan menu utama File. Hasil yang ditampilkan akan muncul menu top-down yang terdiri dari 4 submenu yaitu Server (menampilkan jendela

pengaktifan server), Client (menampilkan jendela pengaktifan klien),Stop

(menghentikan jalannya server dan klien), dan Exit (untuk keluar dari

aplikasi). WEK Transporter V.1.0 _ X Edit File IP Server yang terkoneksi Memo Help IP Client yang terkoneksi Server Client Log Server Client Exit Stop

(35)

c. Layar Menu Edit

Pada layar menu Edit ini, akan menampilkan log file dari transaksi

pengiriman data yang berlangsung dalam durasi waktu tertentu.

WEK Transporter V.1.0 _ X Edit IP Server yang terkoneksi Memo Help IP Client yang terkoneksi Server Client

LogView Log File Edit

(36)

d. Layar Menu Help

Pada layar menu Help ini, akan menampilkan hasil dari proses

pemilihan menu utama Help. Hasil yang ditampilkan akan muncul menu top-down yangterdiri dari 2 submenu yaitu Help Contents (dapat memilih

submenu didalamnya), About Us (dapat memilih submenu didalamnya).

WEK Transporter V.1.0 _ X Edit IP Server yang terkoneksi Memo Help IP Client yang terkoneksi Server Client Log Edit Help Contents About Us

(37)

3.7.4.3 Perancangan Layar Services

Berikut ini adalah rancangan layar dari services yang akan dijalankan pada

klien. Jika klien memasukkan host dan port server dan mengaktifkan program,

maka klien akan secara otomatis menerima file yang dikirimkan ke klien

tersebut.

Services _ X

Stop Status : Not Connected

Port Server :

Host Server : Start

Services

Gambar 3.22 Rancangan Layar Services

3.7.4.4 Perancangan Layar Bilah Menu

Bilah Menu terdiri dari beberapa menu yaitu : 1. Bilah Menu File Server

Digunakan untuk mengaktifkan aplikasi sebagai server dengan

(38)

WEK Transporter V.1.0 - Start Serv er ? X Port :

Start Cancel

Gambar 3.23 Rancangan Layar Start Server

2. Bilah Menu FileClient

Digunakan untuk mengaktifkan aplikasi sebagai client dengan

memasukkan nomor port client serta host client sebagai alamat IP dari server tujuan.

WEK Transporter V.1.0 - Start Client ? X

Host :

Start Cancel

Port :

(39)

3. Bilah Menu FileStop

Digunakan untuk menghentikan aktifitas server dan aktifitas klien

sekaligus.

4. Bilah Menu Exit

Digunakan untuk keluar dari aplikasi.

WEK Transporter V.1.0 - Exit Application ? X

Yes No

Pesan Konfirmasi keluar ?

Gambar 3.25 Rancangan Layar Kotak Konfirmasi Exit

5. Bilah Menu Edit

Digunakan untuk melihat log file yang tercatat selama transaksi file

(40)

Gambar 3.26 Rancangan Layar Form View Log File

6. Bilah Menu Help, digunakan untuk memilih bagian bantuan untuk

informasi mengenai aplikasi ini.

Help Contents, digunakan untuk mengetahui informasi pemakaian

aplikasi.

(41)

Gambar 3.27 Rancangan Layar About Us

3.7.4.5 Perancangan Layar Bilah Edit

Bilah edit terdiri dari empat bagian, yaitu :

1. Bilah Edit Host, digunakan untuk memasukan IP host.

Gambar 3.28 Rancangan Layar Edit Host

2. Bilah Edit Port Server, digunakan untuk memasukan port saat aplikasi aktif

sebagai server.

(42)

3. Bilah Edit Port Client, digunakan untuk memasukan port saat aplikasi aktif

sebagai client.

Gambar 3.30 Rancangan Layar Edit Port Client

3.7.4.6 Perancangan Layar Kotak Dialog

Perancangan kotak dialog aplikasi ini tidak mencakup kotak dialog yang berasal dari sistem operasi windows, namun hanya kotak dialog yang berasal dari

aplikasi ini sendiri, yaitu :

1. Kotak Dialog Konfirmasi

Kotak dialog ini menanyakan konfirmasi untuk menyakinkan pengguna apakah akan melakukan suatu eksekusi. Jika ya maka akan dilakukan proses eksekusi tersebut. Jika tidak maka proses eksekusi tersebut akan dibatalkan dan kembali ke halaman/layar yang aktif.

(43)

2. Kotak Dialog Informasi

Kotak informasi ini akan memberikan penjelasan kepada pengguna, mengenai aksi apa yang telah dilakukan, dengan memberikan informasi singkat.

(44)

3.7.5 Perancangan Algoritma

3.7.5.1 Perancangan Algoritma Secara Keseluruhan

Mulai

Upload File oleh Client ke server

Kompresi File

Cek besar file hasil kompresi > 30 KB < 30 KB Pemecahan file ke dalam ukuran tertentu

Kirim isi file ke server tujuan secara multithreading

diterima server tujuan cek file apakah

dipecah? penggabungan file

kembali

Ya Dekompresi file kopikan file ke klien

tujuan Selesai

Tidak

(45)

3.7.5.2 Algoritma Pemilihan File Upload

Pemilihan fileupload adalah algoritma untuk memilih file yang akan dikopikan

ke server oleh klien pengirim. Proses yang dijalankan untuk memilih file upload

digambarkan pada diagram alir berikut.

(46)

3.7.5.3 Algoritma Upload File

Upload file adalah algoritma untuk mengkopikan file dari klien ke server.

Proses yang dijalankan untuk menguploadfile digambarkan pada diagram alir berikut.

(47)

3.7.5.4 Algoritma Pengecekan File Dalam Database

Pengecekan file dalam database adalah algoritma untuk mengecek apakah ada file baru yang masuk ke dalam database dari klien ke server. Proses yang dijalankan

untuk pengecekan file dalam database digambarkan pada diagram alir berikut.

(48)

3.7.5.5 Algoritma Buka Koneksi

Buka koneksi adalah algoritma untuk membuka koneksi awal sehingga beberapa klien dapat terhubung dengan server. Proses yang dijalankan untuk membuka

koneksi digambarkan pada diagram alir berikut.

Mulai Listen Accept Selesai Ada Ada Koneksi Tidak Connect

(49)

3.7.5.6 Algoritma Kompresi File

Kompresi file adalah algoritma untuk mengompresi file menjadi file yang lebih

kecil dari ukuran file aslinya. Proses yang dijalankan untuk kompresi file digambarkan

(50)

Mulai

Baca isi File

Hitung Frekuensi tiap Karakter

Buat pohon Kode Jumlah semua

Karakter-1 ?

Iya

Tidak

Buat tabel kode

Selesai Buat File Kompresi

(51)

3.7.5.7 Algoritma Pecah File

Pecah file adalah algoritma untuk membagi file menjadi beberapa bagian

berdasarkan ketersediaan bandwidth yang ada. Proses yang dijalankan untuk pecah file

digambarkan pada diagram alir berikut.

(52)

3.7.5.8 Algoritma Pengiriman File

Pengiriman file adalah algoritma untuk mengirimkan file dari server klien

pengirim ke server klien penerima. Proses yang dijalankan untuk mengirimkan file

digambarkan pada diagram alir berikut.

(53)

3.7.5.9 Algoritma Penerimaan File

Penerimaan file adalah algoritma untuk menerima file yang dikirim oleh server

pengirim ke server penerima. Algoritma ini berjalan pada server penerima.Proses yang

dijalankan untuk penerimaan file digambarkan pada diagram alir berikut.

(54)

3.7.5.10 Algoritma Gabung File

Gabung file adalah algoritma untuk mengembalikan file yang telah dipecah

menjadi file yang utuh seperti semula. Proses yang dijalankan untuk gabung file

digambarkan pada diagram alir berikut.

(55)

3.7.5.11 Algoritma Dekompresi File

Dekompresi file adalah algoritma untuk mendekompresi file yang telah

dikompresi menjadi file normal seperti aslinya. Proses yang dijalankan untuk kompresi file digambarkan pada diagram alir berikut.

(56)

3.7.6 Perancangan Spesifikasi Proses Aplikasi 3.7.6.1 Spesifikasi Proses Pemilihan File Upload

Modul pemilihan fileupload

Tekan browse

Muncul jendela dialog open

Pilih file

Jika OK

Isi path file ke textfield End jika

End modul

3.7.6.2 Spesifikasi Proses Upload File Modul UploadFile

Tampilkan halaman utama Lakukan pengisian IP Destination

Tekan tombol upload

Lakukan pengecekan IP Destination

Jika IP Destination tidak valid maka

(57)

Selain itu

Lakukan pengecekan fileupload

Jika file belum ada maka

lakukan pemilihan file

Selain itu

uploadfile ke server

simpan IP & nama file di databaseserver End jika

End jika End Modul

3.7.6.3 Spesifikasi Proses Splash Modul Splash

Time = 0

Jalankan timer Time = time + 1

Jika time = 1 maka Timer diset false Splashform ditutup Form Utama ditampilkan End Jika

(58)

3.7.6.4 Spesifikasi Proses Pengecekan File Dalam Database Modul pengecekan file dalam database

Jalankan timer

Cek record dalam database

Jika ada file

Hentikan timer

Ambil file sesuai database

Kompresi file

Kopi record ke tabel proses

Hapus record di database

Simpan hasil kompresi Kirim file

End jika End modul

3.7.6.5 Spesifikasi Proses Aktifkan Server Modul Aktifkan Server

Form utama diset false

Tampilkan Formactiveserver

(59)

Tampilkan pesan untuk mengisi port

Selain itu

PortServer diset dengan nilai dalam textfield port Formactive server diset false

Form utama diset true End jika

End Modul

3.7.6.6 Spesifikasi Proses Aktifkan Client Modul Aktifkan Client

Form utama diset false

Tampilkan Formactive client

Jika textfield host kosong maka

Tampilkan pesan untuk mengisi host

Selain itu

Jika host tidak valid maka

Tampilkan pesan host tidak valid

Selain itu

Jika textfield port kosong maka

Tampilkan pesan untuk mengisi port

Selain itu

Jika textfield port = PortServer maka

Tampilkan pesan PortServer dan PortClient tidak boleh sama

(60)

Selain itu

PortClient diset dengan nilai

dalam textfield port

HostClient diset dengan nilai

dalam textfield host

Formactive client diset false Form utama diset true End jika

End jika End jika

End jika End Modul

3.7.6.7 Spesifikasi Proses Buka Koneksi Modul Buka Koneksi

Server listen

Jika ada klien

Server accept Server connect

Selain itu

(61)

End jika End modul

3.7.6.8 Spesifikasi Proses Kompresi File Modul Kompresi File

Baca file

Hitung frekuensi tiap karakter Jika jumlah karakter terbaca semua

Buat pohon kode

Buat tabel kode

Buat file yang terkompresi End jika

End Modul

3.7.6.9 Spesifikasi Proses Pecah File Modul Pecah File

Cek ukuran file

Jika ukuran file lebih dari ketentuan

Pecah file sesuai ketentuan End jika

(62)

3.7.6.10 Spesifikasi Proses Pengiriman File Modul Pengiriman File

Kopi nama file ke var

Ulangi

Kopi isi file ke buffer

Sampai isi file selesai

Kirim var

Kirim buffer End modul

3.7.6.11 Spesifikasi Proses Penerimaan File Modul Penerimaan File

Terima var

Buat file dengan nama var

Terima buffer

Kopi buffer ke dalam file End modul

(63)

3.7.6.12 Spesifikasi Proses Gabung File Modul Gabung File

i=1 Ulangi

Kopi pecah file [i] ke savefile

Until pecah file[i].Filesize=0 End modul

3.7.6.13 Spesifikasi Proses Dekompresi File Modul Dekompresi File

Baca file kompresi

Baca tabel kode Buat pohon kode Buat file asli

Gambar

Tabel 3.2 Tahapan proses kompresi LZW
Tabel 3.4 Percobaan Perbandingan Kompresi Algoritma Huffman dan LZW
Gambar 3.2  Proses kompresi
Tabel 3.5 Tabel Perbandingan WinZip dan WEK Transporter
+7

Referensi

Dokumen terkait

Hasil penelitian menunjukkanBerdasarkan anilisis LQ dan Shift Share maka dapat di ketahui bahwa Kabupaten Rembang memiliki sektor-sektor basis yang potensial, yaitu

Berbeda dengan pertambahan panjang, hasil dari pengamatan pertambahan bobot menunjukkan bahwa benih ikan dipuasakan pada perlakuan 2 hari puasa 1 hari diberi pakan

Dengan alasan tersebut maka pada proyek akhir saya buat suatu alat Pengukur Energi Listrik Berbasis Mikrokontroller7. Alat ini akan bekerja pada waktu ada

Musik dan gerak merupakan dua hal penting dalam pembelajaran musik. Gerak dapat membantu siswa dalam memahami elemen-elemen musik, sehingga siswa dapat memahami dan

Ada dua jenis perangkat lunak: perangkat lunak aplikasi, yang melakukan tugas-tugas yang bersifat umum bagi pengguna, dan perangkat lunak sistem yang menjalankan operasi

Penelitian ini dilakukan untuk memperoleh data pengobatan antibiotik pada pasien infeksi saluran kemih di Instalasi Rawat inap RSUD Panembahan Senopati Bantul tahun 2015

Perancangan sistem pakar ini dibangun dengan menggunakan penalaran – penalaran yang dimulai dari fakta terlebih dahulu untuk menguji kebenaran hipotesis yang disebut forward

Salinan Peraturan Presiden Nomor 70 Tahun 2015 tentang Penyesuaian Gaji Pokok Pegawai Negeri Sipil Menurut Peraturan Pemerintah Nomor 34 Tahun 2014 Ke Dalam Gaji Pokok Pegawai