Perhitungan Running Time Kompresi

4.5 Perhitungan Kompleks Algoritma DMC

Dari algoritma DMC ini akan dilakukan perhitungan kompleksitasnya. Kompleksitas yang dihitung nantinya adalah average case, best case, dan worst case. Pada average case akan dicari Big  average time. Pada best case akan dicari Big  best time. Sedangkan untuk worst case akan dicari Big Oworst time .

4.5.1. Perhitungan Running Time Kompresi

Proses perhitungan running time dilakukan untuk mendapatkan Big , Big , dan Big O . Dari hasil yang didapat nantinya akan berguna agar user mengetahui waktu terbaik dan terburuk dari algoritma DMC. Tabel 4.5 berikut ini adalah tabel perhitungan running time. Tabel 4.5 Tabel Perhitngan Running Time Kompresi No Code c c 1 Dim InpPos, MinValue, MaxValue, RangValue, MidValue, Index, TopBit, One256, Zero256, i As Integer C 1 1 C 1 2 Dim mChar, Bitset As Byte C 1 1 C 1 3 ReDim outtext500 C 2 1 C 2 4 OutPos = OutBitCount = OutByteBuf = MinValue = InpPos = 0 C 3 1 C 3 5 MaxValue = 2 MaxBits - 1 C 4 1 C 4 6 TopBit = 2 MaxBits - 1 C 4 1 C 4 7 Index = -1 C 5 1 C 5 8 For i = 0 To 256 C 6 |256| C 6 |256| 9 Onei = 1 C 7 |256| C 7 |256| 10 Zeroi = 1 C 7 |256| C 7 |256| 11 Next C 8 |256| C 8 |256| 12 Do While InpPos = UBoundlistarr C 9 |256| 2 C 9 |256| 2 13 mChar = listarrInpPos C 10 |256| 2 C 10 |256| 2 14 InpPos = InpPos + 1 C 11 |256| 2 C 11 |256| 2 15 For i = 0 To 7 C 6 |256| C 6 |256| 16 Bitset = mChar And 2 7 - i And HFF C 12 |256| C 12 |256| 17 Index = 2 i - 1 + IntmChar 2 8 - C 13 |256| C 13 |256| Universitas Sumatera Utara i 18 RangValue = MaxValue - MinValue C 14 |256| C 14 |256| 19 MidValue = MinValue + RangValue ZeroIndex OneIndex + ZeroIndex C 15 |256| C 15 |256| 20 If MidValue = MinValue Then MidValue = MidValue + 1 C 16 |256| C 16 |256| 21 If MidValue = MaxValue - 1 Then MidValue = MidValue - 1 C 16 |256| C 16 |256| 22 If Bitset 0 Then C 17 |256| C 17 |256| 23 MinValue = MidValue C 18 |256| C 18 |256| 24 OneIndex = OneIndex + 1 C 19 |256| C 19 |256| 25 Else C 20 |256| C 20 |256| 26 MaxValue = MidValue C 18 |256| C 18 |256| 27 ZeroIndex = ZeroIndex + 1 C 19 |256| C 19 |256| 28 End If C 21 |256| C 21 |256| 29 Do While MaxValue And TopBit = MinValue And TopBit Or MinValue MaxValue - 255 C 22 |256| 3 C 22 |256| 3 30 If MinValue And TopBit = 0 Then C 23 |256| 3 C 23 |256| 3 31 OutByteBuf = OutByteBuf 2 + 0 C 24 |256| 3 C 24 |256| 3 32 OutBitCount = OutBitCount + 1 C 25 |256| 3 C 25 |256| 3 33 If OutBitCount = 8 Then C 26 |256| 3 C 26 |256| 3 34 outtextOutPos = OutByteBuf C 27 |256| 3 C 27 |256| 3 35 OutBitCount = 0 C 28 |256| 3 C 28 |256| 3 36 OutByteBuf = 0 C 28 |256| 3 C 28 |256| 3 37 OutPos = OutPos + 1 C 29 |256| 3 C 29 |256| 3 38 If OutPos UBoundouttext Then C 30 |256| 3 C 30 |256| 3 39 ReDim Preserve outtextOutPos + 500 C 2 1 C 2 40 End If C 21 |256| 3 C 21 |256| 3 41 End If C 21 |256| 3 C 21 |256| 3 42 Else C 20 |256| 4 C 20 |256| 4 43 OutByteBuf = OutByteBuf 2 + 1 C 24 |256| 4 C 24 |256| 4 Universitas Sumatera Utara 44 OutBitCount = OutBitCount + 1 C 25 |256| 4 C 25 |256| 4 45 If OutBitCount = 8 Then C 26 |256| 4 C 26 |256| 4 46 outtextOutPos = OutByteBuf C 27 |256| 4 C 27 |256| 4 47 OutBitCount = 0 C 28 |256| 4 C 28 |256| 4 48 OutByteBuf = 0 C 28 |256| 4 C 28 |256| 4 49 OutPos = OutPos + 1 C 29 |256| 4 C 29 |256| 4 50 If OutPos UBoundouttext Then C 30 |256| 4 C 30 |256| 4 51 ReDim Preserve outtextOutPos + 500 C 2 1 C 2 52 End If C 21 |256| 4 C 21 |256| 3 53 End If C 21 |256| 4 C 21 |256| 3 54 End If C 21 |256| 3 C 21 |256| 3 55 MaxValue = MaxValue And TopBit - 1 2 + 1 C 31 |256| 3 C 31 |256| 3 56 MinValue = MinValue And TopBit - 1 2 C 32 |256| 3 C 32 |256| 3 57 If MinValue = MaxValue Then C 33 |256| 3 C 33 |256| 3 58 MaxValue = 2 MaxBits - 1 C 34 |256| 3 C 34 |256| 3 59 End If C 21 |256| 3 C 21 |256| 3 60 Loop C 35 |256| 3 C 35 |256| 3 61 Next C 8 |256| 2 C 8 |256| 2 62 Loop C 35 |256| C 35 |256| 63 For i = MaxBits - 1 To 0 Step -1 C 6 |256| C 6 |256| 64 If MinValue And 2 i = 0 Then C 23 |256| C 23 |256| 65 OutByteBuf = OutByteBuf 2 + 0 C 24 |256| C 24 |256| 66 OutBitCount = OutBitCount + 1 C 25 |256| C 25 |256| 67 If OutBitCount = 8 Then C 26 |256| C 26 |256| 68 outtextOutPos = OutByteBuf C 27 |256| C 27 |256| 69 OutBitCount = 0 C 28 |256| C 28 |256| 70 OutByteBuf = 0 C 28 |256| C 28 |256| 71 OutPos = OutPos + 1 C 29 |256| C 29 |256| Universitas Sumatera Utara 72 If OutPos UBoundouttext Then C 30 |256| C 30 |256| 73 ReDim Preserve outtextOutPos + 500 C 2 1 C 2 74 End If C 21 |256| C 21 |256| 75 End If C 21 |256| C 21 |256| 76 Else C 20 |256| 2 C 20 |256| 2 77 OutByteBuf = OutByteBuf 2 + 1 C 24 |256| 2 C 24 |256| 2 78 OutBitCount = OutBitCount + 1 C 25 |256| 2 C 25 |256| 2 79 If OutBitCount = 8 Then C 26 |256| 2 C 26 |256| 2 80 outtextOutPos = OutByteBuf C 27 |256| 2 C 27 |256| 2 81 OutBitCount = 0 C 28 |256| 2 C 28 |256| 2 82 OutByteBuf = 0 C 28 |256| 2 C 28 |256| 2 83 OutPos = OutPos + 1 C 29 |256| 2 C 29 |256| 2 84 If OutPos UBoundouttext Then C 30 |256| 2 C 30 |256| 2 85 ReDim Preserve outtextOutPos + 500 C 2 1 C 2 86 End If C 21 |256| 2 C 21 |256| 2 87 End If C 21 |256| 2 C 21 |256| 2 88 End If C 21 |256| 2 C 21 |256| 2 89 Next C 8 |256| C 8 |256| 90 Do While OutBitCount 0 C 9 |256| C 9 |256| 91 OutByteBuf = OutByteBuf 2 + 1 C 24 |256| C 24 |256| 92 OutBitCount = OutBitCount + 1 C 25 |256| C 25 |256| 93 If OutBitCount = 8 Then C 26 |256| C 26 |256| 94 outtextOutPos = OutByteBuf C 27 |256| C 27 |256| 95 OutBitCount = 0 C 28 |256| C 28 |256| 96 OutByteBuf = 0 C 28 |256| C 28 |256| 97 OutPos = OutPos + 1 C 29 |256| C 29 |256| 98 If OutPos UBoundouttext Then C 30 |256| C 30 |256| 99 ReDim Preserve outtextOutPos + 500 C 2 1 C 2 10 End If C 21 |256| C 21 |256| Universitas Sumatera Utara 10 1 End If C 21 |256| C 21 |256| 10 2 Loop C 35 |256| C 35 |256| 10 3 ReDim Preserve outtextOutPos - 1 C 2 1 C 2 10 4 End Sub Dari perhitungan running time pada tabel 4.5 terdapat 5 kolom. Kolom 1 merupakan nomor urut dari code program dari metode Dynamic Markov Compression. Kolom 2 merupakan code program metode Dynamic Markov Compression. Kolom 3 atau kolom c merupakan waktu yang dibutuhkan untuk menjalankan setiap statement dari code. Kolom 4 atau kolom merupakan berapa kali statement tersebut dijalankan. Sedangkan kolom 5 merupakan perkalian dari C dengan . Oleh karena itu didapat T |n| yang merupakan jumlah dari kolom c yaitu sebagai berikut. Tn = 2C 1 + 7C 2 + C 3 + 2C 4 + C 5 +3C 6 |256| + 2C 7 |256| + 2C 8 |256| + C 9 |256| + 2C 12 |256| + C 13 |256| + C 14 |256| + C 15 |256| + 2C 16 |256| + C 17 |256| + 2C 18 |256| + 2C 19 |256| + C 20 |256| + 5C 21 |256| + C 23 |256| + 2C 24 |256| + 2C 25 |256| + 2C 26 |256| + 2C 27 |256| + 4C 28 |256| + 2C 29 |256| + 2C 30 |256| + 2C 35 |256| + C 8 |256| 2 + C 9 |256| 2 + C 10 |256| 2 + C 11 |256| 2 + C 20 |256| 2 + 3C 21 |256| 2 + C 24 |256| 2 + C 25 |256| 2 + C 26 |256| 2 + C 27 |256| 2 + 2C 28 |256| 2 + C 29 |256| 2 +C 30 |256| 2 + 6C 21 |256| 3 + C 22 |256| 3 + C 23 |256| 3 + C 24 |256| 3 + C 25 |256| 3 + C 26 |256| 3 + C 27 |256| 3 +2C 28 |256| 3 + C 29 |256| 3 + C 30 |256| 3 +C 31 |256| 3 + C 32 |256| 3 + C 33 |256| 3 + C 34 |256| 3 + C 35 |256| 3 + C 20 |256| 4 + C 24 |256| 4 + C 25 |256| 4 + C 26 |256| 4 + C 27 |256| 4 + 2C 28 |256| 4 + C 29 |256| 4 + C 30 |256| 4 = 2C 1 + 7C 2 + C 3 + 2C 4 + C 5 |256| + 3C 6 + 2C 7 + 2C 8 + C 9 + 2C 12 + C 13 + C 14 + C 15 + 2C 16 + C 17 + 2C 18 + 2C 19 + C 20 + 5C 21 + C 23 + 2C 24 + 2C 25 + 2C 26 + 2C 27 + 4C 28 + 2C 29 + 2C 30 + 2C 35 |256| 1 + C 8 + C 9 + C 10 + C 11 + C 20 + 3C 21 + C 24 + C 25 + C 26 + C 27 + 2C 28 + C 29 + C 30 |256| 2 + 6C 21 + C 22 + C 23 + C 24 + C 25 + C 26 + C 27 +2C 28 + C 29 + C 30 +C 31 + C 32 + C 33 + C 34 + C 35 |256| 3 + C 20 + C 24 + C 25 + C 26 + C 27 + 2C 28 + C 29 + C 30 |256| 4 Tn = |256| 4 Diperoleh bahwa dari segi kompleksitas waktu rata-rata yang dibutuhkan untuk mengkompresi file dengan algoritma Dynamic Markov Compression adalah panjang dari bit. Dari perhitungan diatas maka nilai big  = |256| 4 yang merupakan average time , untuk worst time yaitu big O |256| 4 , dan untuk best time yaitu big  |256| 4 dimana 256 merupakan bit yang masing-masing kondisi merupakan kompleksitas dari metode Dynamic Markov Compression. Universitas Sumatera Utara

4.5.2. Perhitungan Running Time Dekompresi