Perhitungan Kompleksitas Waktu Analisis Perbandingan Algoritma Huffman dan Run Length Encoding Pada Kompresi File Audio

4.3. Perhitungan Kompleksitas Waktu

Perhitungan Kompleksitas waktu dieperlukan untuk melihat waktu yang diperlukan komputer untuk memproses data. 4.3.1. Perhitungan Kompleksitas Waktu Algoritma Huffman Berikut adalah tabel perhitungan kompleksitas waktu untuk algoritma Huffman dapat dilihat pada tabel 4.3. berikut. Tabel 4.3. Perhitungan Kompleksitas Waktu Algoritma Huffman a. Kompresi No Code C C 1. Public Function CompressByteArray ByVal Data As Byte As Byte C1 1 C1n 2. Dim P As Long = FindProbabilitiesForSymbolsData C2 n C2n 3. Dim NodeList0 To 255 As BinaryTreeNode C2 n C2n 4. Dim NodeListUsed As Integer = 0 C2 n C2n 5. Dim Node As BinaryTreeNode C2 n C2n 6. Dim I As Integer C2 n C2n 7. For I = 0 To 255 C3 n C3n 8. If PI 0 Then C4 n C4n 9. Node = New BinaryTreeNode C5 n C5n 10. Node.Symbol = I C5 n C5n 11. Node.Probability = PI C5 n C5n 12. Node.RightNode = Nothing C5 n C5n 13. Node.LeftNode = Nothing C5 n C5n 14. NodeListNodeListUsed = Node C5 n C5n 15. NodeListUsed += 1 End If Next C5 n C5n 16. Do While NodeListUsed 1 C6 n C6n 17. Dim MinLoc1 As Integer C2 n C2n 18. Dim MinLoc2 As Integer C2 n C2n 19. Dim N1 As BinaryTreeNode C2 n C2n 20. Dim N2 As BinaryTreeNode C2 n C2n 21. MinLoc1 = 0 C5 n C5n 22. For I = 1 To NodeListUsed - 1 C3 n C3n 23. If NodeListI.Probability NodeListMinLoc1.Probability Then C4 n C4n Universitas Sumatera Utara 24. MinLoc1 = I End If Next C5 n C5n 25. N1 = NodeListMinLoc1 C5 n C5n 26. For I = MinLoc1 To NodeListUsed - 2 C3 n C3n 27. NodeListI = NodeListI + 1 Next C5 n C5n 28. NodeListUsed -= 1 C5 n C5n 29. MinLoc2 = 0 C5 n C5n 30. For I = 1 To NodeListUsed - 1 C3 n C3n 31. If NodeListI.Probability NodeListMinLoc2.Probability Then C4 n C4n 32. MinLoc2 = I End If Next C5 n C5n 33. N2 = NodeListMinLoc2 C5 n C5n 34. For I = MinLoc2 To NodeListUsed - 2 C3 n C3n 35. NodeListI = NodeListI + 1 Next NodeListUsed -= 1 Node = New BinaryTreeNode Node.Probability = N1.Probability + N2.Probability Node.LeftNode = N1 Node.RightNode = N2 Node.Symbol = -1 NodeListNodeListUsed = Node NodeListUsed += 1 Loop C5 n C5n 36. Dim SymbolCodes As Collection = GetSymbolCodesNodeList0, C2 n C2n 37. Dim SYM0 To 255 As String C2 n C2n 38. Dim I2 As Integer C2 n C2n 39. For I = 0 To 255 C3 n C3n 40. For I2 = 1 To SymbolCodes.Count Step 2 C3 n C3n 41. If SymbolCodesI2 = I Then SYMI = SymbolCodesI2 + 1 End If Next Next C4 n C4n 42. Dim BA As New bitsarray C2 n C2n 43. Node = NodeList0 C5 n C5n 44. I = 0 C5 n C5n Universitas Sumatera Utara 45. BA.AddBitsData.Length, 32 BA.AddBitsSymbolCodes.Count \ 2, 8 StoreTreeNode, BA C6 n C6n 46. For I = 0 To Data.Length - 1 C3 n C3n 47. For I2 = 0 To SYMDataI.Length - 1 C3 n C3n 48. BA.AddBitSYMDataI.SubstringI2, 1 Next Next C6 n C6n 49. BA.FlushBuffer Return BA.GetBitsArray End Function C6 n C6n

b. Dekompresi