Analisis Sistem Implementasi dan Analisis Algoritma Kompresi Punctured Elias Codes dan Ternary Comma Code Pada File .Doc

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem

Analisis sistem adalah mendefinisikan kebutuhan terkait sistem yang akan dikembangkan dan hasil akhir dari tahap analisis sistem ini adalah sebuah dokumen yang menjelaskan mengenai spesifikasi kebutuhan sistem informasi atau SRS Software Requirement Spesification. Kegiatan analisis sistem adalah kegiatan untuk melihat sistem yang sudah berjalan, melihat bagian mana bagus dan tidak bagus dan kemudian mendokumentasikan kebutuhan yang akan dipenuhi dalam sistem yang baru Sukamto Shalahuddin, 2013. Tujuannya adalah untuk memperbaiki berbagai fungsi didalam sistem yang sedang berjalan agar menjadi lebih efisien, mengubah sasaran sistem yang sedang berjalan, merancangmengganti output yang sedang digunakan, untuk mencapai tujuan yang sama dengan seperangkat input yang lain bisa jadi lebih sederhana dan interaktif atau untuk melakukan beberapa perbaikan serupa Ladjamudin, 2005. Tahap analisis sistem dilakukan setelah tahap perencanaan sistem system planning dan sebelum tahap desain sistem system design. Tahap analisis merupakan tahap yang kritis dan sangat penting, karena kesalahan didalam tahap ini akan menyebabkan juga kesalahan ditahap selanjutnya Hartono, 2005. Untuk menganalisis suatu sistem terdapat beberapa langkah yang harus dilakukan, yaitu sebagai berikut : 3.1.1 Analisis Masalah Analisis masalah merupakan proses mengidentifikasi sebab dan akibat dibangunnya sebuah sistem yang akan dibangun tersebut dapat berjalan sebagaimana mestinya sesuai dengan tujuan dari sistem itu Ladjamudin, 2005. Permasalahan yang akan dibahas dalam penelitian ini adalah bagaimana kinerja dari algoritma kompresi Punctured Elias Codes dan Ternary Comma Code dalam mengkompresi file .doc. Universitas Sumatera Utara Penyebab dan akibat yang akan mempengaruhi aplikasi Punctured Elias Codes dan Ternary Comma Code pada kompresi file .doc dapat dilihat pada Tabel 3.1 berikut. Tabel 3.1 Sebab dan Akibat Analisis Sebab dan Akibat Perbaikan Tujuan Sistem Masalah atau Peluang Masalah Sebab dan Akibat Tujuan Sistem Kendala Sistem 1. Ukuran dari file teks .doc yang besar. 2. Terdapat banyak algoritma yang bisa diterapkan untuk kompresi data. 1. Proses transfer data file teks .doc yang lambat. 2. Membutuhkan media penyimpanan yang besar untuk menyimpan file teks .doc. 1. Dibutuhkan aplikasi yang mampu melakukan proses kompresi dan dekompresi file teks .doc dengan menggunakan algoritma. 1. Tidak adanya aplikasi kompresi dan dekompresi yang menerapkan algoritma Punctured Elias Codes dan Ternary Comma Code. Identifikasi masalah dalam penelitian ini menggunakan diagram ishikawa seperti pada Gambar 3.1 berikut : Gambar 3.1 Diagram Ishikawa Universitas Sumatera Utara 3.1.2 Analisis Kebutuhan Analisis kebutuhan sistem dapat dikelompokkan menjadi 2 bagian yaitu kebutuhan fungsional dan kebutuhan non-fungsional. Kebutuhan fungsional dibutuhkan untuk mengetahui hal-hal yang bisa dikerjakan oleh sistem. Adapun analisis fungsional sistem diharapkan mampu melakukan : a. Sistem harus mampu membaca string yang berada dalam file teks. b. Sistem harus mampu memampatkan file .doc. c. Sistem harus mampu melakukan kompresi data terhadap file teks dengan ekstensi file .doc dengan metode Punctured Elias Codes dan Ternary Comma Code. d. Sistem harus mampu melakukan dekompresi file yang telah dimampatkan. e. Sistem harus mampu menampilkan properties hasil perhitungan parameter kinerja algoritma pada penelitian ini yaitu Ratio of compression R C dan C R , Space Savings SS, Time Process pada saat kompresi dan dekompresi. Kebutuhan non-fungsional adalah karakteristik yang menentukan kebutuhan sebuah sistem yakni seperti kinerja, user friendly, anggaran serta tenggang waktu yang mampu bekerja tanpa menggangu fungsional sistem lainnya. Kebutuhan non-fungsional yang harus dipenuhi aplikasi yang dirancang adalah sebagai berikut : a. User friendly Sistem yang buat mudah dipahami dan dimengerti cara penggunaannya oleh user yang mengoperasikan aplikasi tersebut. b. Pelayanan Sistem yang telah dirancang bisa dikembangkan ke tingkat yang lebih kompleks lagi bagi pihak-pihak yang ingin mengembangkan sistem tersebut. c. Efisiensi Sistem harus dirancang sesederhana mungkin agar memudahkan pengguna dalam menggunakan atau menjalankan aplikasi tersebut. d. Informasi Kemampuan sistem dalam menyediakan pesan konfirmasi keberhasilan proses kompresi dan dekompresi file .doc. e. Kontrol Sistem yang telah dibangun harus tetap dikontrol setelah selesai dirancang agar fungsi dan kinerja sistem tetap terjaga dan dapat memberikan hasil yang sesuai dengan keinginan pengguna. Universitas Sumatera Utara f. Performa Sistem harus mampu melakukan kompresi file .doc dengan baik. g. Ekonomi Kemampuan sistem bekerja dengan baik tanpa biaya cost perangkat lunak dan perangkat keras, sehingga pengguna tidak harus mengeluarkan biaya ekstra. 3.1.3 Analisis Proses Analisis proses bertujuan untuk mengetahui tahapan apa saja yang harus dilakukan oleh sistem dan cara kerja sistem secara spesifik sehingga dengan mudah melakukan pemrograman pada sistem yang akan dibangun. Dalam sistem ini terdapat dua proses utama yaitu proses kompresi dan dekompresi dengan menggunakan metode Punctured Elias Codes dan Ternary Comma Code. 3.1.3.1 Analisis Proses Kompresi Pada Algoritma Punctured Elias Codes Pada metode Punctured Elias Codes terdapat dua kode yaitu yang disebut dengan kode P1 dan P2 dan yang akan dibahas dalam penelitian ini hanya kode P1 saja. Pada proses kompresi, sistem awalnya membaca String yang terdapat pada file teks dan kemudian membuat tabel karakter dan frekuensi kemunculan karakter itu yang telah diurutkan berdasarkan karakter yang memiliki frekuensi terbesar. Setelah itu sistem membangkitkan kode Punctured P1 berdasarkan banyaknya karakter pada yang telah dibuat. Kemudian sistem melakukan proses kompresi berdasarkan tabel karakter dan tabel kode yang telah dibangkitkan itu. Tabel 3.2 Punctured Elias Codes Salomon, 2007 N Binary of n Reserved Flag Flag | Reserved P1 - - - 1 1 1 10 10 | 1 101 2 10 01 10 10 | 01 1001 3 11 11 110 110 | 11 11011 4 100 001 10 10 | 001 10001 5 101 101 110 110 | 101 110101 6 110 011 110 110 | 011 110011 7 111 111 1110 1110 | 111 1110111 Universitas Sumatera Utara 8 1000 0001 10 10 | 0001 100001 Berikut ini adalah contoh proses kompresi file teks dengan metode Punctured Elias Codes. Misalkan pada sebuah file teks berisi string “HALLO LALA DAN LILI”. Untuk mengukur ukuran string itu didalam komputer dapat dilihat pada tabel 3.3. Maka : Bit String : “HALLO LALA DAN LILI” |String| : 19   I N D sp O L A H , , , , , , , :  8 : | |  Tabel 3.3 String Yang Belum Dikompresi Char ASCII Code ASCII Binary Bit Frekuensi Bit x Frekuensi H 72 01001000 1 8 8 A 65 01000001 4 8 32 L 76 01001100 6 8 48 O 79 01001111 1 8 8 Sp 32 00100000 3 8 24 D 68 01000100 1 8 8 N 78 01001110 1 8 8 I 73 01001001 2 8 16 Total 152 Proses kompresi untuk Punctured Elias Codes dapat dilihat pada Tabel 3.4 berikut. Tabel 3.4 String Yang Telah Diurutkan Secara Descending dan Table Sorted Dan Telah Dikompresi Dengan Kode Punctured P1 Char Punctured Elias Codes P1 Bit Frekuensi Bit x Frekuensi L 1 6 6 A 101 3 4 12 Sp 1001 4 3 12 I 11011 5 2 10 Universitas Sumatera Utara H 10001 5 1 5 O 110101 6 1 6 D 110011 6 1 6 N 1110111 7 1 7 Total 64 Dari Tabel 3.4 dapat dibentuk string bit dari string sebelum dikompresi yaitu “HALLO LALA DAN LILI” menjadi string bit “1000110100110101100101010101100111001110111101111001011011011011”. Sebelum ditulis ke sebuah file hasil kompresi dilakukan penambahan string bit itu sendiri apakah habis dibagi 8 dan berapa sisanya jika dibagi 8. Jumlah string bit 64 habis dibagi 8 dan sisanya nol. Karena panjang string bit habis dibagi delapan, maka padding bit tidak diperlukan. Dengan demikian, flag bit yang merupakan panjang dari padding bit yakni 0 d a l a m b i n a r y m e n j a d i “ 0 0 0 0 0 0 0 0 ” . S t r i n g b i t y a n g t e r b e n t u k adalah ”100011010011010110010101010110011100111011110111100101101101101100000 000 ”. Sehingga total panjang string bit seluruhnya setelah penambahan padding bits dan flag bits adalah 64+0+8=72 bit. Dari Dari hasil kompresi dengan Punctured Elias Code P1 di atas dapat dihitung kinerja kompresinya menurut parameter yang sudah ditentukan yaitu: a. Ratio of Compression R C 11 , 2 72 152    C C C R R Dikompresi Setelah Data Ukuran Dikompresi Sebelum Data Ukuran R b. Compression Ratio C R 36 , 47 100 152 72 100      R R R C C Dikompresi Sebelum Data Ukuran Dikompresi Setelah Data Ukuran C Universitas Sumatera Utara c. Space Savings SS 3.1.3.2 Analisis Proses Kompresi Pada Algoritma Ternary Comma Code Tabel karakter dan tabel kode dari algoritma Ternary Comma Code dapat dilihat pada Tabel 3.5 berikut. Tabel 3.5 Ternary Comma Code Salomon, 2007 Value Code L Value Code L c 2 11 101c 8 1 0c 4 12 102c 8 2 1c 4 13 110c 8 3 2c 4 14 111c 8 4 10c 6 15 112c 8 5 11c 6 16 120c 8 6 12c 6 17 121c 8 7 20c 6 18 122c 8 8 21c 6 19 200c 8 9 22c 6 20 201c 8 ….. ….. 64 2001c 10 1,000 1101000c 16 128 11201c 12 3,000 11010002c 18 256 100110c 14 10,000 111201100c 20 512 200221c 14 65,536 10022220020c 24 Berikut ini adalah contoh proses kompresi file teks dengan metode Ternary Comma Code. Misalkan pada sebuah file teks berisi string “HAI MAHASISWA TINGKAT AKHIR ”. Untuk mengukur ukuran string itu didalam komputer dapat dilihat pada tabel 3.6. 80 72 152      SS SS Kompresi Setelah Data Ukuran Kompresi Sebelum Data Ukuran SS Universitas Sumatera Utara Maka : Bit String : “HAI MAHASISWA TINGKAT AKHIR” |String| : 27   R K G N T W S M sp I A H , , , , , , , , , , , :  12 : | |  Tabel 3.6 String Yang Belum Dikompresi Char ASCII Code ASCII Binary Bit Frekuensi Bit x Frekuensi H 72 01001000 3 8 24 A 65 01000001 6 8 48 I 73 01001001 4 8 32 Sp 32 00100000 3 8 24 M 77 01001101 1 8 8 S 83 01010011 2 8 16 W 87 01010111 1 8 8 T 84 01010100 2 8 16 N 78 01001110 1 8 8 G 71 01000111 1 8 8 K 75 01001011 2 8 16 R 82 01010010 1 8 8 Total 216 Proses kompresi untuk Ternary Comma Code dapat dilihat pada Tabel 3.7 berikut. Tabel 3.7 String Yang Telah Diurutkan Secara Descending dan Table Sorted Dan Telah Dikompresi Dengan Kode Ternary Comma Code Char Ternary Comma Code Bit Frekuensi Bit x Frekuensi A c 1 6 6 I 1c 2 4 8 H 2c 2 3 6 Sp 10c 3 3 9 S 11c 3 2 6 Universitas Sumatera Utara T 12c 3 2 6 K 20c 3 2 6 M 21c 3 1 3 W 22c 3 1 3 N 100c 4 1 4 G 101c 4 1 4 R 102c 4 1 4 Total 65 Dari Tabel 3.7 dapat dibentuk string bit dari string sebelum dikompresi yaitu “HAI MAHASISWA TINGKAT AKHIR” menjadi string bit “2cc1c10c21cc2cc11c1c11c22cc10c12c1c100c101c20cc12c10cc20c2c1c102c”. Sebelum ditulis ke sebuah file hasil kompresi dilakukan penambahan string bit itu sendiri apakah habis dibagi 8 dan berapa sisanya jika dibagi 8. Jumlah string bit adalah 65 dan itu tidak habis dibagi 8, sisanya adalah 1. Selain itu, pada algoritma Ternary Comma Code tidak ada penambahan padding dan flag. Maka total bit seluruhnya tanpa penambahan padding dan flag adalah tetap 65 bit. Dari hasil kompresi dengan Ternary Comma Code diatas dapat dihitung kinerja kompresinya sesuai parameter yang sudah ditentukan yaitu : a. Ratio of compression R C 32 , 3 65 216    C C C R R Dikompresi Setelah Data Ukuran Dikompresi Sebelum Data Ukuran R b. Compression ratio C R 09 , 30 100 216 65 100      R R R C C Dikompresi Sebelum Data Ukuran Dikompresi Setelah Data Ukuran C Universitas Sumatera Utara c. Space Savings SS 3.1.3.3 Analisis Proses Dekompresi Pada Algoritma Punctured Elias Codes dan Ternary Comma Code Pada proses dekompresi, langkah awalnya sistem akan membaca string hasil kompresi. Setelah mendapatkan string bit hasil kompresi, tabel karakter dan kodenya, kemudian sistem melakukan proses dekompresi dengan mengembalikan string bit tersebut ke bentuk semula berdasarkan tabel karakter dan tabel kode yang telah didapat dari hasil proses kompresi. Tabel 3.8 Tabel Hasil Bit String Setelah Dikompresi Menggunakan Kode Punctured Elias Codes P1 Budiman, 2015 Char Punctured Elias Codes P1 L A 101 Sp 1001 I 11011 H 10001 O 110101 D 110011 N 1110111 ”100011010011010110010101010110011100111011110111100101101101101100000000” Pseudocode untuk proses dekompresi Budiman, 2015 : 1. function decompress t, sb { 2. String = 3. buff = sb[0] 4. l = lengthsb 5. for i=1 to 1 { 6. if buff in t { 151 65 216      SS SS Kompresi Setelah Data Ukuran Kompresi Sebelum Data Ukuran SS Universitas Sumatera Utara 7. String = String + t[buff] 8. buff = 9. } 10. else { 11. buff = buff + sb[i] 12. } 13. } 14. return sb 15. } Pseudocode proses dekompresi ini juga berlaku pada analisis proses dekompresi pada algoritma Ternary Comma Code. Hal ini dikarenakan penulis menggunakan proses dekompresi secara universal sehingga dapat diterapkan pada algoritma lainnya untuk proses dekompresi.

3.2 Pemodelan Sistem