• Tidak ada hasil yang ditemukan

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

3.1.3. Analisis Proses

Tujuan dari tahap analisis proses adalah mengetahui tahapan dan cara kerja dari sistem yang digunakan secara spesifik. Analisis proses dilakukan pada tahapan pemodelansistem. Hal ini dilakukan guna mengetahui apa saja yang harus dilakukan oleh sistemsehingga dengan mudah melakukan pemrograman pada sistem yang akan dibangun.

Dalam sistem ini terdapat dua proses utama yaitu proses kompresi dandekompresi dengan menggunakan metode Inverted Elias Gamma dan Capocelli. Secaraumum, proses kompresi maupun dekompresi dari kedua metode ini serupa, hanya sajanilai dari karakter yang akan digunakan yang akan berbeda menurut perhitunganmasing-masing metode. Pada proses kompresi, sistem awalnya membaca string yangterdapat pada file teks dan kemudian membuat tabel karakter dan frekuensi kemunculan karakter itu yang telah diurutkan berdasarkan karakter yang memilikifrekuensi terbesar. Setelah itu sistem membangkitkan kode Inverted Elias GammaatauCapocelli berdasarkan banyaknya karakter pada tabel karakter yang telah

dibuat.Kemudian sistem melakukan proses kompresi berdasarkan tabel karakter dan tabelkode yang telah dibangkitkan itu. Pada proses dekompresi, awalnya sistem membacafile hasil kompresi. Setelah mendapatkan bit-bit string hasil kompresi dan tabelkarakter dan kodenya, kemudian sistem melakukan proses dekompresi denganmengubah bitstring itu ke dalam bentuk karakter semula berdasarkan tabelkarakter dan tabel kode yang telah dibuat pada proses kompresi.

3.1.3.1.Analisis Proses Kompresi File Teks dengan Metode Inverted Elias Gamma Berikut ini adalah contoh proses kompresi file teks dengan metodeInverted Elias Gamma.Terdapat file teks yang berisikan string “CACA CICI CICIPI CUKA”. Untuk mengukur ukuran String itu di dalam komputer dapat dilihat pada pada

Tabel 3.1 String yang belum di kompresi

n Char ASCII Biner Bit Frek Bit x

Frek 1 C 01000011 8 7 56 2 A 01000001 8 3 24 3 Sp 00100000 8 3 24 4 I 01001001 8 5 40 5 P 01010000 8 1 8 6 U 01010101 8 1 8 7 K 01001011 8 1 8 Jumlah 168

Setelah menghitung data sebelum dikompresi, dari tabel tadi dilakukan kompresi menggunakan Algoritma Inverted Elias Gamma, dengan mengkodekan karakter yang muncul berdasarkan urutan kemunculannya:

C berdasarkan kode ASCII dikodekan dengan 01000011 A berdasarkan kode ASCII dikodekan dengan 01000001 Spberdasarkan kode ASCII dikodekan dengan 00100000 I berdasarkan kode ASCII dikodekan dengan 01001001 Pberdasarkan kode ASCII dikodekan dengan 01010000 Uberdasarkan kode ASCII dikodekan dengan 01010101 K berdasarkan kode ASCII dikodekan dengan 01001011

Kemudian jumlah bit dari karakter yang dikodekan dikalikan dengan frequency kemunculan dari karakter tersebut:

C yang dikodekan dengan 01000011 mempunyai 8bit dan frequency kemunculan sebanyak 7 kali, maka bit x frequency = 56

A yang dikodekan dengan 01000001 mempunyai 8bit dan frequency kemunculan sebanyak 3 kali, maka bit x frequency = 24

Sp yang dikodekan dengan 00100000 mempunyai bit dan frequency kemunculan sebanyak 3 kali, maka bit x frequency = 24

I yang dikodekan dengan 01001001 mempunyai 8bit dan frequency kemunculan sebanyak 5 kali, maka bit x frequency = 40

P yang dikodekan dengan01010000mempunyai 8bit dan frequency kemunculan sebanyak 1 kali, maka bit x frequency = 8

U yang dikodekan dengan 01010101 mempunyai 8bit dan frequency kemunculan sebanyak 1 kali, maka bit x frequency = 8

K yang dikodekan dengan 01001011mempunyai 8bit dan frequency kemunculan sebanyak 1 kali, maka bit x frequency = 8

Kemudian setiap hasil perkalian dari bit dan frequency dijumlahkan, C + A + Sp + I + P + U + K = 56 + 24 + 24 + 40 + 8 + 8 + 8 = 168, Jadi 168 adalah hasil kompresi menggunakan Algoritma Inverted Elias Gamma. Kemudian kita lakukan proses kompesi pada setiap karakter dengan langkah sebagai berikut:

1. β(110) = 12 1. β(210) = 102 2. M = 1 2. M = 2 3. U (M) = (M-1) * “0” + “1” 3. U (M) = (M-1) * “0” + “1”= ”01” 4. β(1) = 1 4. β(2) = 10 U(M) = 1 U(M) = 01 x = “11” x = “1001” 5. Elias β(1) = “1” 5. Elias β(2) = “001”

Inverted Elias Gamma = “0” Inverted Elias Gamma = “110”

Maka dapat kita tentukan jumlah bit dari string “CACA CICI CICIPI CUKA” setelah di kompresi menggunakan algoritma InvertedElias Gamma sebagai berikut:

Tabel 3.2 String yang sudah dikompresi

n Char Elias Gamma

Code

Inverted Elias Gamma Code

Bit Frek Bit x Frek

1 C 1 0 1 7 7 2 A 001 110 3 3 9 3 Sp 011 100 3 3 9 4 I 00001 11110 5 5 25 5 P 00011 11100 5 1 5 6 U 01001 10110 5 1 5 7 K 01011 10100 5 1 5 Jumlah 65

Tahap selanjutnya adalah menyusun kembali kode-kode yang telah dibuatdalam tabel sesuai dengan posisi karakter pada string. String yang telah dibacaadalah “CACA CICI CICIPI CUKA”

C A C A Sp 0 110 0 110 100

C I C I Sp 0 11110 0 11110 100 C I C I P I Sp 0 11110 0 11110 11100 11110 100 C U K A 0 10110 10100 110

Dari Tabel 3.2 dapat dibentuk string bit dari string sebelum dikompresi yaitu “CACA CICI CICIPI CUKA” menjadi string bit “0110011010001111001111010001 1110011110111001111010001011010100110”.

Sebelum ditulis ke sebuah file hasil kompresi dilakukan penambahan bitpadding dan flag diawal dan akhir string bit. Bit itu dihasilkan dari panjang string bit itu sendiri apakah habis dibagi delapan dan berapa sisanya jika dibagi delapan. Karena jumlah string bit 65 tidak habis dibagi delapan dan sisanya adalah satu. Maka dapat dibuat padding “0000000” dan flagnya adalah “00000111”. Sehingga total bit seluruhnya setelah penambahan padding dan flagging adalah 80 bits.

3.1.3.2. Analisis Proses Kompresi File Teks dengan Metode Capocelli

Berikut ini adalah contoh proses kompresi file teks dengan metode Capocelli.Terdapat file teks yang berisikan string “CACA CICI CICIPI CUKA”. Untuk mengukur ukuran String itu di dalam komputer dapat dilihat pada Tabel 3.3.

Tabel 3.3 String yang belum di kompresi

n Char ASCII Biner Bit Frek Bit x Frek

1 C 01000011 8 7 56

2 A 01000001 8 3 24

3 Sp 00100000 8 3 24

4 I 01001001 8 5 40

6 U 01010101 8 1 8

7 K 01001011 8 1 8

Jumlah 168

Suffix = ‘0’ + r * ‘1’

Untuk r = 2, maka suffix = ‘011’

Maka dapat dilakukan kompresi data pada string “CACA CICI CICIPI CUKA” sebagai berikut:

Tabel 3.4. String yang Sudah Dikompresi Dengan Algoritma Capocelli n Char Capocelli (r = 2)

Prefix Suffix Frek Bit Frek x Bit

0 C 011 7 3 21 1 A 00 011 3 4 12 2 Sp 10 011 3 4 12 3 I 000 011 5 5 25 4 P 001 011 1 5 5 5 U 010 011 1 5 5 6 K 100 011 1 6 6 Jumlah 86 C A C A Sp 01 100011 011 00011 10011 C I C I Sp 011 000011 011 000011 10011 C I C I P I Sp 011 000011 011 000011 001011 000011 10011 C U K A 011 010011 100011 00011

Dari Tabel 3.4 dapat dibentuk string bit dari string sebelum dikompresi yaitu “CACA CICI CICIPI CUKA” menjadi string bit:

“01100011011000111001101100001101100001110011011000011011000011001011 0000111001101101001110001100011.”

Sebelum ditulis ke sebuah file hasil kompresi dilakukan penambahan bit padding dan flag diawal dan akhir string bit. Bit itu dihasilkan dari panjang string bit itu sendiri apakah habis dibagi delapan dan berapa sisanya jika dibagi delapan. Karena jumlah string bit 86 tidak habis dibagi delapan dan sisanya adalah enam. Maka dapat dibuat padding “00” dan flagnya adalah “00000010”. Sehingga total bit seluruhnya setelah penambahan padding dan flagging adalah 96 bits.

3.1.3.3.Analisis Proses menghitung Parameter Pembanding Ratio of Compression (RC), Compression Ratio (CR), dan Space Saving (SS).

1. Ratio of Compression (RC)

Ratio of Compression dari contoh menggunakan algoritma Inverted Elias Gamma dihasilkan dari jumlah ukuran data sebelum dikompresi lalu dibagikan dengan jumlah ukuran data setela dikompresi menggunakan algoritma Inverted Elias Gamma.

=

=168

65

= 2,58

Ratio of Compression dari contoh menggunakan algoritma Capocelli dihasilkan dari jumlah ukuran data sebelum dikompresi lalu dibagikan dengan jumlah ukuran data setela dikompresi.

=

=168

86

= 1,95

2. Compression Ratio (CR)

Compression Ratio dari contoh menggunakan algoritma Inverted Elias Gamma di hasilkan dari ukuran data setelah dikompresi menggunakan algoritma Inverted Elias Gamma di bagi ukuran data sebelum dikompresi lalu dibagi 100% .

= 100 %

= 65

168 100 %

= 38,6 %

Compression Ratio dari contoh menggunakan algoritma Capocelli dihasilkan dari ukuran data setelah dikompresi menggunakan algoritma Capocelli dibagi ukuran data sebelum dikompresi lalu dibagi100%.

$% = 100 %

= 86

168 100 %

= 51 %

3. Space Saving (SS)

Space Savings dari contoh menggunakan algoritma Inverted Elias Gamma dihasilkan dari persentase data yang belum dikompresi dikurangi dengan Compression Ratio dari kompresi menggunakan algoritma Inverted Elias Gamma.

= 100% −

= 100% − 38,6%

= 61,4%

Space Savings dari contoh menggunakan algoritma Capocelli dihasilkan dari persentase data yang belum dikompresi dikurangi dengan Compression Ratio dari kompresi menggunakan algoritma Capocelli.

= 100% −

= 100% − 51%

= 49%

3.1.3.4.Proses Dekompresi

Dalam skripsi saya ini saya menggunakan dekompresi yang secara umum bisa

digunakan dengan menggunakan algoritma apa saja. Adapun bentuk dekompresi pada skripsi saya ini yaitu;

t = table : Char Code C 0 A 01 Sp 110 Sb = String bit = “01100110 . . . .” function decompress (t, sb) { String = ""

buff = sb[0] l = length(sb) for (i=1 to l) {

if (buff not in t) {

buff = buff + sb[i] }

else {

String = string + t[buff] buff = "" } } return sb }

Dokumen terkait