Pemodelan Fungsional Analisis Pengaruh Panjang Bit Kode Pada Kinerja Program Kompresi Yang Menggunakan Algoritma Lempel Ziv Welch (LZW)

Fahrur Razi : Analisis Pengaruh Panjang Bit Kode Pada Kinerja Program Kompresi Yang Menggunakan Algoritma Lempel Ziv Welch LZW, 2009. USU Repository © 2009

3.1.2 Proses Dekompresi LZW

Proses dekompresi yaitu membaca satu-persatu kode bit dan menerjemahkan pada dictionary kemudian output hasilnya. Karateristik algoritma LZW adalah membangun kembali dictionary berdasarkan kode bit yang diterima. Proses pembuatan dictionary ini tetap menggunakan struktur data binary tree. Sesuai proses kompresi yang telah dilakukan maka kode-kode bit tersebut adalah : 94876968 25669 2602612576626084. Kemudian hasil dekompresi algoritma LZW dapat dilihat pada Tabel 3.2: Tabel 3.2 Contoh proses dekompresi Output Code Dictionary 94 ‘’ W = 256 87 ’W’ WE = 257 69 ‘E’ ED = 258 68 ‘D’ D = 259 256 WE = 260 69 ‘E’ E = 261 260 WEE = 262 261 EW = 263 257 WEB = 264 66 ‘B’ B = 265 260 WET = 266 84 ‘T’

3.2 Pemodelan Fungsional

Pemodelan fungsional diharapkan agar sebuah sistem yang dibangun memiliki fungsi yang maksimal. Oleh karena itu, maka fungsi-fungsi yang ada pada sistem tersebut Fahrur Razi : Analisis Pengaruh Panjang Bit Kode Pada Kinerja Program Kompresi Yang Menggunakan Algoritma Lempel Ziv Welch LZW, 2009. USU Repository © 2009 perlu dianalisis. Pada perangkat lunak kompresi yang menggunakan algoritma LZW, secara garis besar terdapat dua fungsi utama yaitu kompresi dan dekompresi menggunakan algoritma LZW. Pemodelan fungsional menggambarkan aspek dari sistem yang berhubungan dengan transformasi dari nilai, seperti fungsi, pemetaan, batasan, dan ketergantungan fungsional. Pemodelan fungsional menangkap sesuatu yang dikerjakan oleh sistem tanpa memperhatikan bagaimana dan kapan hal itu dikerjakan. Data Flow Diagram DFD adalah representasi grafis yang menggambarkan aliran informasi dan transformasi yang terjadi pada data dari input sampai output.

3.2.1 DFD Level 0 Context Diagram

DFD level 0 atau disebut juga context diagram yang menggambarkan interaksi sistem dengan entitas-entitas eksternal. Semua proses sistem digambarkan pada sebuah lingkaran proses yang bertujuan agar diagram dapat menggambarkan bagaimana entitas-entitas luar mengirim dan menerima data dari sistem tersebut. DFD level 0 untuk sistem ini ditunjukan pada gambar 3.2. P.0 Proses Encoding dan Decoding Algoritma LZW User File Asli File Terkompresi File Asli File Terkompresi Informasi Gambar 3.2 DFD level 0 Fahrur Razi : Analisis Pengaruh Panjang Bit Kode Pada Kinerja Program Kompresi Yang Menggunakan Algoritma Lempel Ziv Welch LZW, 2009. USU Repository © 2009 Tabel 3.3 Spesifikasi proses context diagram perangkat lunak kompresi LZW Nama Input Keterangan Proses Output Proses 0 Proses Encoding dan Decoding Algoritma LZW File Asli, File Terkompresi, Informasi Proses Encoding adalah proses mengubah file asli menjadi file terkompresi, dan Proses Decoding adalah proses mengubah file yang telah terkompresi menjadi file asli kembali. File asli, file terkompresi, Informasi

3.2.2 DFD Level 1

DFD Level 1 memberikan gambaran umum dari sistem. Pada level ini juga terdapat proses utama pada sistem. Serta pada level ini juga terdapat hubungan sistem dengan entitas, baik entitas eksternal maupun entitas internal. Masing-masing entitas data yang tercantum pada DFD level 0 sama dengan entitas data pada tabel 3.3. P.1 Proses Encoding User P.2 Proses Decoding File Asli File Terkompresi File Terkompresi File Asli Informasi Informasi Gambar 3.3 DFD level 1 Proses P.0 Fahrur Razi : Analisis Pengaruh Panjang Bit Kode Pada Kinerja Program Kompresi Yang Menggunakan Algoritma Lempel Ziv Welch LZW, 2009. USU Repository © 2009 Tabel 3.4 Spesifikasi Proses DFD Level 1 P.0 Nama Input Keterangan Proses Output Proses 1 Proses Encoding File Asli Proses Encoding adalah proses mengubah file asli menjadi file terkompresi. Dimana pada proses ini dilakukan encoding dengan menggunakan algoritma LZW File terkompresi, informasi Proses 2 Proses Decoding File terkompresi Proses Decoding adalah proses mengubah file terkompresi menjadi file asli. Dimana pada proses ini dilakukan decoding dengan menggunakan algoritma LZW File Asli, informasi

3.2.3 DFD Level 2

DFD level 2 merepresentasikan proses yang terjadi pada algoritma LZW. Berikut grafik serta tabel spesifikasi proses DFD Level 2 untuk proses P.1 dan proses P.2: Fahrur Razi : Analisis Pengaruh Panjang Bit Kode Pada Kinerja Program Kompresi Yang Menggunakan Algoritma Lempel Ziv Welch LZW, 2009. USU Repository © 2009 P.3 Baca String Dari File P.4 Cari String pada Dictionary File Asli str str_terdapat_pada_dictionary P.5 Tambahkan str pada Dictionary str_tidak_terdapat_pada_dictionary + P.6 Output Kode str_ditambahkan File Terkompresi + Gambar 3.4 DFD level 2 Proses P.1 Tabel 3.5 Spesifikasi Proses DFD Level 2 P.1 Nama Input Keterangan Proses Output Proses 3 Baca String Dari File File Asli Membaca string dari file sampai End of File str Proses 4 Cari String pada Dictonary str Mencari str yang terdapat pada Dictonary str_terdapat_pada_d ictionary, str_tidak_terdapat_p ada_dictionary Proses 5 Tambahkan str pada dictionary str_terdapat_pada_ dictionary Tambahkan str_terdapat _pada_dictionary pada dictionary str_ditambahkan Proses 6 Output Kode str_ditambahkan Output kode dari str_ditambahkan sehingga menghasilkan File Terkompresi File Terkompresi Fahrur Razi : Analisis Pengaruh Panjang Bit Kode Pada Kinerja Program Kompresi Yang Menggunakan Algoritma Lempel Ziv Welch LZW, 2009. USU Repository © 2009 P.7 Baca codeword Dari File Terkompresi File Terkompresi P.8 Cari word untuk codeword pada Dictionary codeword P.9 Output word word File Asli Gambar 3.5 DFD level 2 Proses P.2 Tabel 3.6 Spesifikasi Proses DFD Level 2 P.2 Nama Input Keterangan Proses Output Proses 7 Baca token dari File Terkompresi File Terkompresi Membaca token dari file terkompresi codeword Proses 8 Cari word untuk token pada Dictionary codeword Mencari string asli dari token yang telah dibaca. Kemudian menghasilkan word sebagai string asli. word Proses 9 Output word word Output word sehingga didapat file asli File Asli

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 Fahrur Razi : Analisis Pengaruh Panjang Bit Kode Pada Kinerja Program Kompresi Yang Menggunakan Algoritma Lempel Ziv Welch LZW, 2009. USU Repository © 2009 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 Fahrur Razi : Analisis Pengaruh Panjang Bit Kode Pada Kinerja Program Kompresi Yang Menggunakan Algoritma Lempel Ziv Welch LZW, 2009. USU Repository © 2009 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 Fahrur Razi : Analisis Pengaruh Panjang Bit Kode Pada Kinerja Program Kompresi Yang Menggunakan Algoritma Lempel Ziv Welch LZW, 2009. USU Repository © 2009 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 Fahrur Razi : Analisis Pengaruh Panjang Bit Kode Pada Kinerja Program Kompresi Yang Menggunakan Algoritma Lempel Ziv Welch LZW, 2009. USU Repository © 2009 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 27. Output kode untuk String1 Fahrur Razi : Analisis Pengaruh Panjang Bit Kode Pada Kinerja Program Kompresi Yang Menggunakan Algoritma Lempel Ziv Welch LZW, 2009. USU Repository © 2009 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: Fahrur Razi : Analisis Pengaruh Panjang Bit Kode Pada Kinerja Program Kompresi Yang Menggunakan Algoritma Lempel Ziv Welch LZW, 2009. USU Repository © 2009 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 17. end if Fahrur Razi : Analisis Pengaruh Panjang Bit Kode Pada Kinerja Program Kompresi Yang Menggunakan Algoritma Lempel Ziv Welch LZW, 2009. USU Repository © 2009 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 Fahrur Razi : Analisis Pengaruh Panjang Bit Kode Pada Kinerja Program Kompresi Yang Menggunakan Algoritma Lempel Ziv Welch LZW, 2009. USU Repository © 2009 28. end while Fahrur Razi : Analisis Pengaruh Panjang Bit Kode Pada Kinerja Program Kompresi Yang Menggunakan Algoritma Lempel Ziv Welch LZW, 2009. USU Repository © 2009 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 word = element Fahrur Razi : Analisis Pengaruh Panjang Bit Kode Pada Kinerja Program Kompresi Yang Menggunakan Algoritma Lempel Ziv Welch LZW, 2009. USU Repository © 2009 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. Fahrur Razi : Analisis Pengaruh Panjang Bit Kode Pada Kinerja Program Kompresi Yang Menggunakan Algoritma Lempel Ziv Welch LZW, 2009. USU Repository © 2009 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”. Fahrur Razi : Analisis Pengaruh Panjang Bit Kode Pada Kinerja Program Kompresi Yang Menggunakan Algoritma Lempel Ziv Welch LZW, 2009. USU Repository © 2009 Gambar 3.9 Tampilan proses kompresi Fahrur Razi : Analisis Pengaruh Panjang Bit Kode Pada Kinerja Program Kompresi Yang Menggunakan Algoritma Lempel Ziv Welch LZW, 2009. USU Repository © 2009 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. Fahrur Razi : Analisis Pengaruh Panjang Bit Kode Pada Kinerja Program Kompresi Yang Menggunakan Algoritma Lempel Ziv Welch LZW, 2009. USU Repository © 2009 Gambar 3.12 Tampilan bantuan Fahrur Razi : Analisis Pengaruh Panjang Bit Kode Pada Kinerja Program Kompresi Yang Menggunakan Algoritma Lempel Ziv Welch LZW, 2009. USU Repository © 2009 BAB 4 ANALISIS PENGARUH PANJANG BIT KODE PADA KINERJA PROGRAM KOMPRESI YANG MENGGUNAKAN ALGORITMA LZW

4.1 File Yang Dicoba