• Tidak ada hasil yang ditemukan

PERANCANGAN DAN IMPLEMENTASI PERANGKAT LUNAK

3.2 Pemodelan Fungsional

3.2.4 Kamus Data

Kamus data merupakan sekumpulan data yang terdapat pada sistem, dimana data disusun untuk memudahkan selama proses analisis dan desain. Kamus data menjelaskan lebih rinci mengenai istilah-istilah data yang terdapat pada DFD. Kamus

data membantu analis sistem untuk mendesain sistem dimana tidak ada data yang menggunakan nama berbeda padahal isi data tersebut identik, ataupun kesalahan dimana nama data berulang pada desain. Kamus data juga sangat berguna untuk menjelaskan sistem yang telah didesain dan mempermudan pemeliharaan maupun penambahan fungsi pada sistem.

Masukan-masukan kamus data bisa dibuat setelah diagram aliran data dilengkapi atau bisa juga disusun saat diagram aliran data sedang dikembangkan. Penganalisis sistem bisa saja membuat suatu diagram aliran data level 0 dan sekaligus membuat masukan-masukan data awal. Selanjutnya, sewaktu penganalisis sistem mengembangkan diagram level data menjadi diagram anak, penganalisis juga bisa memodifikasi masukan-masukan kamus data yang baru sesuai dengan aliran data pada diagram alir anak.

Berikut ini merupakan kamus data yang berisikan data yang digunakan pada diagram alir data mulai dari diagram konteks, DFD level 1, DFD level 2.

Tabel 3.7 Kamus data

Nama Tipe Data Keterangan

File Asli File File yang akan dikompresi

File Terkompresi File File yang telah terkompresi

dengan algoritma LZW

informasi String Informasi ukuran file, rasio

kompresi, dan waktu yang dibutuhkan pada proses kompresi maupun dekompresi

str String String yang dibaca dari file asli

str_terdapat_pada_dictionary String String yang dibaca dari file asli dan terdapat pada dictionary

str_tidak_terdapat_pada_dictionary String String yang dibaca dari file asli dan tidak terdapat pada dictionary

str_ditambahkan String String yang dibaca dari file asli dan ditambahkan pada dictionary

codeword String Data yang dibaca dari file

terkompresi, yang disimpan dalam memori dengan tipe data string.

word String String yang didapat dari

penerjemahan token dengan menggunakan dictionary

3.2.5 Perancangan Struktur Data

Perancangan struktur data berguna untuk dapat menghasilkan desain struktur data terbaik pada implementasi. Dalam algoritma LZW struktur data terpenting adalah struktur data yang digunakan dictionary. Struktur data yang baik sangat berpengaruh pada kecepatan proses decoding maupun encoding.

Struktur Data Dictionary : TYPE

TreeNode = Pointer BinaryTreeNode; BinaryTreeNode = record Key : integer; Data : String; RighChild : TreeNode; LeftChild : TreeNode; END TYPE

TYPE DictionaryStructure = record Key : integer; Data : String; DictionarySize : integer; RighChild : TreeNode; LeftChild : TreeNode; END TYPE 3.2.6 Perancangan Prosedural

Tahapan selanjutnya dalam perancangan perangkat lunak adalah tahapan perancangan prosedural atau detail algoritma. Tahapan ini disajikan dalam bentuk prosedur dan

flowchart. Hal ini dilakukan untuk mempermudah dalam pengkodean yang akan

dilakukan. Berikut ini prosedur dan flowchart proses encoding algoritma LZW: Prosedur 1. Proses Encoding LZW

{ Input : File asli }

{ Proses : Melakukan proses encoding algoritma LZW } { Output : File terkompresi dan informasi kompresi }

Kamus Data :

String1 : string; Karakter1 : char;

Dictionary : DictionaryStucture;

Algoritma Encoding LZW :

11. String 1 ← karakter pertama dari file sumber 12. while not EOF do

13. Karakter1 ← baca karakter dari file sumber 14. if Dictionary not full then

15. if Gabungan String1, Karakter1 terdapat pada Dictionary then

16. String1 ← String1 + Karakter1

17. else

18. Output kode untuk String1

19. Tambahkan Gabungan String1, Karakter1 pada

Dictionary

20. String1 ← Karakter1

21. end if

22. else

23. Output kode untuk String1

24. String1 = Karakter1

25. end if

26. end while

String1 = Baca Karakter

While NOT EOF

Karakter1 = Baca Karakter

IF String1 + Karakter1 Terdapat Pada Dcitionary Output Kode Untuk String1 String1 = String1+ Karakter1 Tambahkan String1 + Karakter1 Pada Dictionary String1 = Karakter1 Start End IF Dictionary Not Full Output Kode Untuk String1 String1 = Karakter1 Output Kode Untuk String1 Yes Yes No No

Gambar 3.6 Flowchart proses encoding algoritma LZW

Berikut ini prosedur proses pencarian string pada dictionary pada algoritma LZW:

Prosedur 2. Proses pencarian string pada dictionary

{ Input : String yang dicari }

{ Proses : Melakukan proses pencarian string pada dictionary }

{ Output : Nilai indeks untuk string pada dictionary, -1 artinya tidak ditemukan }

Kamus Data :

StringFind : string;

Dictionary : DictionaryStructure; RightTemp : BinaryTreeNode; LeftTemp : BinaryTreeNode;

Algoritma proses pencarian string pada dictionary: 1. if Dictionary= NULL then

2. return -1 3. end if

4. while TRUE

5. if Dictionary.Data = StringFind then

6. return Dictionary.Key

7. else

8. RightTemp = Dictionary.Right

9. LeftTemp = Dictionary.Left

10. if (RightTemp = NULL) and (LeftTemp = NULL) then

11. return -1

12. end if

13. if RightTemp.Data >= StringFind then

14. Dictionary= Dictionary.Right

15. else

16. Dictionary= Dictionary.Left

18. end if 19.end while

Prosedur penambahan string pada dictionary dapat dilihat pada Lampiran D. Berikut ini prosedur dan flowchart proses decoding algoritma LZW:

Prosedur 4. Proses Decoding LZW

{ Input : File terkompresi }

{ Proses : Melakukan proses decoding algoritma LZW } { Output : File asli }

Kamus Data : element : string; word : string; x : integer; Dictionary : DictionaryStucture; Algoritma Decoding LZW :

15.baca token x dari file terkompresi 16.cari nilai element dengan indeks x 17.output element

18.word = element 19.while not E0F do 20. baca x

21. cari nilai element dengan indeks x 22. if tidak entri untuk indeks x then

23. element = word + karakter pertama pada word 24. end if

25. output element

26. tambahkan entri word + karakter pertama pada word pada dictionary 27. word = element

baca token x dari file terkompresi

While NOT EOF Start

End

Cari Nilai element Dengan indeks x

Output element

word = element

If tidak ada entri untuk indeks x

baca x

Cari Nilai element Dengan indeks x

element = word + karakter pertama pada word

Output element

Tambahkan entri word + karakter pertama pada word pada

dictionary

Gambar 3.7 Flowchart proses decoding algoritma LZW 3.3 Perangkat Keras Dan Perangkat Lunak Pengujian

Sebelum menganalisis perlu diketahui spesifikasi komputer yang digunakan. Karena hasil yang diperoleh dipengaruhi oleh kinerja dari komputer. Terutama waktu dan kecepatan proses karena perangkat keras yang lebih baik mempengaruhi waktu dan kecepatan proses. Sistem operasi yang digunakan adalah Windows XP. Bahasa pemrograman yang digunakan adalah bahasa pemrograman C++ yaitu menggunakan

compiler Visual C++ 2003. Perangkat keras yang digunakan adalah komputer

personal dengan spesifikasi sebagai berikut :

1. Prosessor AMD Sempron 2500+ (1,75 GHz) 2. RAM 896 MB

3. Hardisk 80 GB

3.4 Implementasi Antarmuka

Antarmuka perangkat lunak sangat penting untuk memudahkan pengguna dalam memakainya. Dalam hal ini walaupun perangkat lunak dibuat untuk analisis penulis, namun tetap saja aspek antarmuka sangat penting terutama dalam penyajian informasi hasil program tersebut. Implementasi antarmuka adalah sebagai berikut:

1. Tampilan Utama

Tampilan utama menampilkan menu File untuk memilih menu LZW dimana menu tersebut akan menampilkan halaman untuk melakukan proses kompresi maupun dekompresi File. Menu Help adalah menu yang menampilkan bagaimana cara pemakaian program, serta menu exit untuk keluar dari aplikasi.

Gambar 3.8 Tampilan halaman utama

2. Tampilan Proses Kompresi dan Dekompresi

Pada Tampilan inilah proses utama dari program dapat diakses. Untuk melakukan proses kompresi maka pengguna harus menentukan file sumber dan

file tujuan proses kompresi tersebut. Cara menentukan file sumber adalah

dengan melakukan klik pada tombol “Get File” pada “Source” kemudian pilih

file. Cara menentukan file tujuan adalah dengan melakukan klik pada tombol

“Get File” pada “Destination” kemudian pilih file. Kemudian pilih panjang bit yang akan digunakan dengan memilih dari combo box “Bit Length”. .Kemudian untuk mengkompres file maka klik pada tombol “Compress”. Untuk melakukan proses dekompresi maka pengguna harus menentukan file sumber dan file tujuan proses dekompresi. Cara menentukan file sumber adalah dengan melakukan klik pada tombol “Get File” pada “Source” kemudian pilih file. Cara menentukan file tujuan adalah dengan melakukan klik pada tombol “Get File” pada “Destination” kemudian pilih file. Kemudian untuk melakukan dekompresi file maka klik pada tombol “Decompress”.

Gambar 3.10 Tampilan proses dekompresi

3. Tampilan Dialog Pencarian File

Tampilan dialog pencarian file dilakukan pada halaman proses kompresi dan dekompresi dengan melakukan klik pada button “Get File”. Maka pengguna akan mendapatkan tampilan untuk mencari serta memilih file yang akan diproses seperti pada Gambar 3.9.

Gambar 3.11 Tampilan pencarian file

4. Tampilan Bantuan

Tampilan bantuan (Help) berguna sebagai halaman yang menjelaskan bagaimana cara menggunakan program. Hal ini berguna agar pengguna tidak binggung dalam cara pemakaian program.

BAB 4

ANALISIS PENGARUH PANJANG BIT KODE PADA KINERJA PROGRAM

Dokumen terkait