A-1. Universitas Sumatera Utara

Ukuran: px
Mulai penontonan dengan halaman:

Download "A-1. Universitas Sumatera Utara"

Transkripsi

1 A-1 A. ASCII CONTROL CHARACTERS (0-31) ( DEC OCT HEX BIN Simbol No HTML Deskripsi NUL � Null Char SOH  Start of Heading STX  Start of Text ETX  End of Text EOT  End of Transmission ENQ  Enquiry ACK  Acknowledgment BEL  Bell BS  Back Space HT Horizontal Tab A LF Line Feed B VT  Vertical Tab C FF  Form Feed D CR Carriage Return E SO  Shift Out / X-On F SI  Shift In / X-Off DLE  Data Line Escape DC1  Device Control 1 (oft. XON) DC2  Device Control DC3  Device Control 3 (oft. XOFF) DC4  Device Control NAK  Negative Acknowledgement SYN  Synchronous Idle ETB  End of Transmit Block CAN  Cancel EM  End of Medium A SUB  Substitute B ESC  Escape C FS  Berkas Separator D GS  Group Separator E RS  Record Separator F US  Unit Separator

2 B-1 B. ASCII PRINTABEL CHARACTERS (32-127) ( DEC OCT HEX BIN Simbol No HTML Nama HTML Deskripsi Space !! Exclamation mark " " Double quotes (or speech marks) # # Number $ $ Dollar % % Procenttecken & & & Ampersand &#39; Single quote ( ( Open parenthesis (or open bracket) ) ) Close parenthesis (or close bracket) A * * Asterisk B Plus C ,, Comma D Hyphen E Period, dot or full stop F / / Slash or divide Zero One Two Three Four Five Six Seven Eight Nine A : : Colon B ; ; Semicolon C < < < Less than (or open angled bracket) D = = Equals E > > > Greater than (or close angled bracket) F ?? Question mark At symbol A A Uppercase A B B Uppercase B C C Uppercase C D D Uppercase D

3 B E E Uppercase E F F Uppercase F G G Uppercase G H H Uppercase H I I Uppercase I A J J Uppercase J B K K Uppercase K C L L Uppercase L D M M Uppercase M E N N Uppercase N F O O Uppercase O P P Uppercase P Q Q Uppercase Q R R Uppercase R S S Uppercase S T T Uppercase T U U Uppercase U V V Uppercase V W W Uppercase W X X Uppercase X Y Y Uppercase Y A Z Z Uppercase Z B [ [ Opening bracket C \ \ Backslash D ] ] Closing bracket E ^ ^ Caret - circumflex F Underscore ` ` Grave accent a a Lowercase a b b Lowercase b c c Lowercase c d d Lowercase d e e Lowercase e f f Lowercase f g g Lowercase g h h Lowercase h i i Lowercase i A j j Lowercase j B k k Lowercase k D l l Lowercase l C m m Lowercase m E n n Lowercase n F o o Lowercase o p p Lowercase p q q Lowercase q r r Lowercase r s s Lowercase s

4 B t t Lowercase t u u Lowercase u v v Lowercase v w w Lowercase w x x Lowercase x y y Lowercase y A z z Lowercase z B { { Opening brace C Vertical bar D } } Closing brace E ~ ~ Equivalency sign - tilde F &#127; Delete

5 C-1 C. THE EXTENDED ASCII CODES ( ) ( DEC OCT HEX BIN Simbol No HTML Nama HTML Deskripsi &#128; Euro sign &#130; Single low-9 quotation mark ƒ &#131; ƒ Latin small letter f with hook &#132; Double low-9 quotation mark &#133; Horizontal ellipsis &#134; Dagger &#135; Double dagger ˆ &#136; ˆ Modifier letter circumflex accent &#137; Per mille sign A Š &#138; Š Latin capital letter S with caron B &#139; Single left-pointing angle quotation C Œ &#140; Œ Latin capital ligature OE D E Ž &#142; Latin captial letter Z with caron F &#145; Left single quotation mark &#146; Right single quotation mark &#147; Left double quotation mark &#148; Right double quotation mark &#149; Bullet &#150; En dash &#151; Em dash &#152; Small tilde &#153; Trade mark sign A š &#154; š Latin small letter S with caron B &#155; Single right-pointing angle quotation

6 C-2 mark C œ &#156; œ Latin small ligature oe D E ž &#158; Latin small letter z with caron F Ÿ &#159; ÿ Latin capital letter Y with diaeresis A Non-breaking space A Inverted exclamation mark A Cent sign A Pound sign A Currency sign A Yen sign A Pipe, Broken vertical bar A Section sign A Spacing diaeresis - umlaut A Copyright sign AA ª ª ª Feminine ordinal indicator AB «««Left double angle quotes AC Not sign AD Soft hyphen AE Registered trade mark sign AF Spacing macron - overline B Degree sign B ± ± ± Plus-or-minus sign B ² ² ² Superscript two - squared B ³ ³ ³ Superscript three - cubed B Acute accent - spacing acute B µ µ µ Micro sign B Pilcrow sign - paragraph sign B Middle dot - Georgian comma B Spacing cedilla B ¹ ¹ ¹ Superscript one BA º º º Masculine ordinal indicator

7 C BB »»» Right double angle quotes BC ¼ ¼ ¼ Fraction one quarter BD ½ ½ ½ Fraction one half BE ¾ ¾ ¾ Fraction three quarters BF Inverted question mark C À À À Latin capital letter A with grave C Á Á Á Latin capital letter A with acute C Â Â Â Latin capital letter A with circumflex C Ã Ã Ã Latin capital letter A with tilde C Ä Ä Ä Latin capital letter A with diaeresis C Å Å Å Latin capital letter A with ring above C Æ Æ Æ Latin capital letter AE C Ç Ç Ç Latin capital letter C with cedilla C È È È Latin capital letter E with grave C É É É Latin capital letter E with acute CA Ê Ê Ê Latin capital letter E with circumflex CB Ë Ë Ë Latin capital letter E with diaeresis CD Ì Ì Ì Latin capital letter I with grave CC Í Í Í Latin capital letter I with acute CE Î Î Î Latin capital letter I with circumflex CF Ï Ï Ï Latin capital letter I with diaeresis D Ð Ð Ð Latin capital letter ETH D Ñ Ñ Ñ Latin capital letter N with tilde D Ò Ò Ò Latin capital letter O with grave D Ó Ó Ó Latin capital letter O with acute

8 C D Ô Ô Ô Latin capital letter O with circumflex D Õ Õ Õ Latin capital letter O with tilde D Ö Ö Ö Latin capital letter O with diaeresis D Multiplication sign D Ø Ø Ø Latin capital letter O with slash D Ù Ù Ù Latin capital letter U with grave DA Ú Ú Ú Latin capital letter U with acute DB Û Û Û Latin capital letter U with circumflex DC Ü Ü Ü Latin capital letter U with diaeresis DD Ý Ý Ý Latin capital letter Y with acute DE Þ Þ Þ Latin capital letter THORN DF ß ß ß Latin small letter sharp s - ess-zed E à à à Latin small letter a with grave E á á á Latin small letter a with acute E â â â Latin small letter a with circumflex E ã ã ã Latin small letter a with tilde E ä ä ä Latin small letter a with diaeresis E å å å Latin small letter a with ring above E æ æ æ Latin small letter ae E ç ç ç Latin small letter c with cedilla E è è è Latin small letter e with grave E é é é Latin small letter e with acute EA ê ê ê Latin small letter e with circumflex EB ë ë ë Latin small letter e with diaeresis EC ì ì ì Latin small letter i with grave

9 C ED í í í Latin small letter i with acute EE î î î Latin small letter i with circumflex EF ï ï ï Latin small letter i with diaeresis F ð ð ð Latin small letter eth F ñ ñ ñ Latin small letter n with tilde F ò ò ò Latin small letter o with grave F ó ó ó Latin small letter o with acute F ô ô ô Latin small letter o with circumflex F õ õ õ Latin small letter o with tilde F ö ö ö Latin small letter o with diaeresis F Division sign F ø ø ø Latin small letter o with slash F ù ù ù Latin small letter u with grave FA ú ú ú Latin small letter u with acute FB û û û Latin small letter u with circumflex FC ü ü ü Latin small letter u with diaeresis FD ý ý ý Latin small letter y with acute FE þ þ þ Latin small letter thorn FF ÿ ÿ ÿ Latin small letter y with diaeresis

10 D-1 SOURCE CODE frmmain Dim FN As String Private Sub cmdabout_click() frmabout.show End Sub Private Sub cmdexit_click() Unload Me End Sub Private Sub cmdkompres_click() Dim Tempstr$ Dim H, M, S As Integer t = Timer If CompressFile(FN, "huffman", False, Tempstr$) Then Dim Result As Integer cmdsimpan.enabled = True S = Int(Timer - t) MsgBox "Proses Kompresi Selesai...", vbokonly + vbinformation, "Kompresi Huffman" frahasil.caption = "Hasil Kompresi" If S > 60 Then M = S \ 60 If M > 60 Then H = M \ 60 M = M - (H * 60) S = S - (M * 60) H = 0 M = 0 lblwaktu.caption = Right("00" & H, 2) & ":" & Right("00" & M, 2) & ":" & Right("00" & S, 2) Result = FreeFile(0) Open TempFile For Binary As #Result lblukuran.caption = Round(LOF(Result) / 1024) Close #Result End Sub Private Sub cmddekompres_click() Dim Tempstr$ Dim H, M, S As Integer t = Timer If DecompressFile(FN, False, Tempstr$) Then Dim Result As Integer cmdsimpan.enabled = True S = Int(Timer - t)

11 D-2 MsgBox "Proses Dekompresi Selesai...", vbokonly + vbinformation, "Kompresi Huffman" frahasil.caption = "Hasil Dekompresi" If S > 60 Then M = S \ 60 If M > 60 Then H = M \ 60 M = M - (H * 60) S = S - (M * 60) H = 0 M = 0 lblwaktu.caption = Right("00" & H, 2) & ":" & Right("00" & M, 2) & ":" & Right("00" & S, 2) Result = FreeFile(0) Open TempFile For Binary As #Result lblukuran.caption = Round(LOF(Result) / 1024) Close #Result End Sub Private Sub cmdfile_click() cdfile.dialogtitle = "Pilih File" cdfile.filter = "Video File (FLV & MPEG) *.flv;*.mpeg;*.mp4" cdfile.showopen FN = cdfile.filename If Len(FN) <= 0 Then Exit Sub lblfile.caption = GetFileName(FN) cmdkompres.enabled = True cmddekompres.enabled = True End Sub Private Sub cmdsimpan_click() cdfile.dialogtitle = "Simpan File Sebagai" If UCase(GetExtName(TempFile)) = "FLV" Then cdfile.filter = "FLV *.flv" cdfile.filter = "MPEG *.MPEG" cdfile.filename = "" cdfile.showsave FN = cdfile.filename If Len(FN) <= 0 Then Exit Sub If CopyFile(TempFile, FN, 1) = 0 Then If MsgBox("File Lain Dengan Nama Ini Ditemukan. Timpa File Lama?", vbyesno + vbquestion, "Konfirmasi") = vbyes Then Kill FN Call CopyFile(TempFile, FN, 0) Kill TempFile MsgBox "File Berhasil Disimpan Pada Lokasi : " & FN, vbokonly + vbinformation, "Sukses" End Sub Private Sub Form_Load()

12 D-3 cmdkompres.enabled = False cmddekompres.enabled = False cmdsimpan.enabled = False End Sub mdlcompress Option Explicit Private Const WindowLength As Long = Private Const WindowLengthExtension As Long = Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpbuffer As String, ByVal nsize As Long) As Long Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (hpvdest As Any, hpvsource As Any, ByVal cbcopy As Long) Public Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpexistingfilename As String, ByVal lpnewfilename As String, ByVal bfailifexists As Long) As Long Private Type CompControlStruct CallBackFormEnabledFlag As Boolean CallBackForm As Object End Type Public Type HeaderStruct GFCompressionHeaderString As String * 20 HeaderStructLength As Long BlockLengthCompressed As Long BlockLengthOriginal As Long End Type Dim CompControlStructVar As CompControlStruct Public TempFile As String Public Function CompressFile(ByVal CompressionName As String, ByVal CompressionMethodName As String, ByVal TempFileReturnEnabledFlag As Boolean, ByRef TempFileReturned As String) As Boolean On Error GoTo Error: Dim CompressionNameFileNumber As Integer Dim ByteStringLength As Long Dim ByteString() As Byte Dim BlockReadPos As Long Dim BlockLength As Long Dim BlockLengthMax As Long Dim BlockString As String Dim BlockLoop As Integer Dim TempFileNumber As Integer If (Dir$(CompressionName, vbnormal Or vbhidden Or vbsystem Or vbarchive) = "") Or (Right$(CompressionName, 1) = "\") Or (CompressionName = "") Then MsgBox "File " + CompressionName + " Tidak Ditemukan!", vbokonly + vbexclamation GoTo Error: TempFile = GetTempName(CompressionName) TempFileNumber = FreeFile(0) Open TempFile For Output As #TempFileNumber

13 D-4 Print #TempFileNumber, GetFileHeaderString(FileLen(CompressionName), CompressionName, CompressionMethodName); Close #TempFileNumber BlockReadPos = 1 CompressionNameFileNumber = FreeFile(0) Open CompressionName For Binary As #CompressionNameFileNumber BlockLengthMax = LOF(CompressionNameFileNumber) Do BlockLength = WindowLength If (BlockLength + BlockReadPos - 1) > BlockLengthMax Then BlockLength = (BlockLengthMax - BlockReadPos + 1) If BlockLength = 0 Then Exit Do BlockString = String(BlockLength, Chr$(0)) Get #CompressionNameFileNumber, BlockReadPos, BlockString ByteStringLength = BlockLength ReDim ByteString(1 To ByteStringLength) As Byte Call CopyMemory(ByteString(1), ByVal BlockString, BlockLength) If Huffman_CompressString(ByteStringLength, ByteString()) = False Then GoTo Error: BlockString = String$(ByteStringLength, Chr$(0)) Call CopyMemory(ByVal BlockString, ByteString(1), ByteStringLength) TempFileNumber = FreeFile(0) Open TempFile For Append As #TempFileNumber Print #TempFileNumber, BlockString; Close #TempFileNumber BlockReadPos = BlockReadPos + BlockLength BlockLoop = BlockLoop + 1 Loop Until (BlockLoop = 32767) Close #CompressionNameFileNumber Jump: CompressFile = True Exit Function Error: Close #CompressionNameFileNumber Close #TempFileNumber If Not ((Dir$(TempFile) = "") Or (Right$(TempFile, 1) = "\") Or (TempFile = "")) Then Kill TempFile 'make sure temp file is deleted CompressFile = False Exit Function Private Function GetFileHeaderString(ByVal InputNameSize As Long, ByVal InputName As String, ByVal CompressionMethodName As String) As String GetFileHeaderString = _ CompressionMethodName + String$(20 - Len(CompressionMethodName), Chr$(0)) + String$(5, Chr$(0)) Public Function DecompressFile(ByVal DecompressionName As String, ByVal TempFileReturnEnabledFlag As Boolean, ByRef TempFileReturned As String) As Boolean

14 D-5 On Error GoTo Error: Dim DecompressionNameFileNumber As Integer Dim CompressionMethodName As String Dim ByteStringLength As Long Dim ByteString() As Byte Dim BlockReadPos As Long Dim BlockLength As Long Dim BlockLengthMax As Long Dim BlockString As String Dim BlockLoop As Integer Dim TempFileNumber As Integer Dim BlockLengthProcessed1 As Long Dim BlockLengthProcessed2 As Long Dim BlockLengthProcessed3 As Long Dim Tempstr$ If (Dir$(DecompressionName) = "") Or (Right$(DecompressionName, 1) = "\") Or (DecompressionName = "") Then MsgBox "File " + DecompressionName + " Tidak Ditemukan!", vbokonly + vbexclamation GoTo Error: DecompressionNameFileNumber = FreeFile(0) Open DecompressionName For Binary As #DecompressionNameFileNumber Tempstr$ = String$(20, Chr$(0)) Get #DecompressionNameFileNumber, 1, Tempstr$ Close #DecompressionNameFileNumber If Not (InStr(1, Tempstr$, Chr$(0), vbbinarycompare) = 0) Then CompressionMethodName = Left$(Tempstr$, InStr(1, Tempstr$, Chr$(0), vbbinarycompare) - 1) CompressionMethodName = Tempstr$ TempFile = GetTempName(DecompressionName) TempFileNumber = FreeFile(0) Open TempFile For Output As #TempFileNumber Close #TempFileNumber BlockReadPos = 26 DecompressionNameFileNumber = FreeFile(0) Open DecompressionName For Binary As #DecompressionNameFileNumber BlockLengthMax = LOF(DecompressionNameFileNumber) Do BlockLength = MAX(WindowLength + WindowLengthExtension, 1024) If (BlockLength + BlockReadPos - 1) > BlockLengthMax Then BlockLength = (BlockLengthMax - BlockReadPos + 1) If BlockLength < 1 Then Exit Do BlockString = String$(BlockLength, Chr$(0)) Get #DecompressionNameFileNumber, BlockReadPos, BlockString ByteStringLength = BlockLength ReDim ByteString(1 To ByteStringLength) As Byte Call CopyMemory(ByteString(1), ByVal BlockString, BlockLength)

15 D-6 If Huffman_DecompressString(ByteStringLength, ByteString(), BlockLengthProcessed1) = False Then GoTo Error: BlockLength = BlockLengthProcessed1 BlockString = String$(ByteStringLength, Chr$(0)) Call CopyMemory(ByVal BlockString, ByteString(1), ByteStringLength) TempFileNumber = FreeFile(0) Open TempFile For Append As #TempFileNumber Print #TempFileNumber, BlockString; Close #TempFileNumber BlockReadPos = BlockReadPos + BlockLength Loop Until (BlockLoop = 32767) Close #DecompressionNameFileNumber Jump: DecompressFile = True Exit Function Error: Close #DecompressionNameFileNumber Close #TempFileNumber DecompressFile = False Exit Function Public Function PresetHeader(ByRef HeaderStructVar As HeaderStruct) As Boolean HeaderStructVar.HeaderStructLength = Len(HeaderStructVar) PresetHeader = True Exit Function Public Function WriteHeader(ByRef ByteStringLength As Long, ByRef ByteString() As Byte, ByVal BlockLengthCompressed As Long, ByVal BlockLengthOriginal As Long) As Boolean Dim HeaderStructVar As HeaderStruct HeaderStructVar.HeaderStructLength = Len(HeaderStructVar) HeaderStructVar.GFCompressionHeaderString = "GFCOMPRESSIONHEADER " HeaderStructVar.BlockLengthCompressed = BlockLengthCompressed HeaderStructVar.BlockLengthOriginal = BlockLengthOriginal ByteStringLength = HeaderStructVar.HeaderStructLength + BlockLengthCompressed ReDim Preserve ByteString(1 To ByteStringLength) As Byte Call CopyMemory(ByteString(1 + HeaderStructVar.HeaderStructLength), ByteString(1), BlockLengthCompressed) If Not (ByteStringLength < HeaderStructVar.HeaderStructLength) Then Call CopyMemory(ByteString(1), HeaderStructVar, HeaderStructVar.HeaderStructLength) WriteHeader = True WriteHeader = False Public Function ReadHeader(ByVal ByteStringLength As Long, ByRef ByteString() As Byte, ByRef BlockLengthCompressed As Long, ByRef BlockLengthOriginal As Long) As Boolean

16 D-7 Dim HeaderStructVar As HeaderStruct HeaderStructVar.HeaderStructLength = Len(HeaderStructVar) If Not (ByteStringLength < HeaderStructVar.HeaderStructLength) Then Call CopyMemory(HeaderStructVar, ByteString(1), HeaderStructVar.HeaderStructLength) If HeaderStructVar.GFCompressionHeaderString = "GFCOMPRESSIONHEADER " Then BlockLengthCompressed = HeaderStructVar.BlockLengthCompressed BlockLengthOriginal = HeaderStructVar.BlockLengthOriginal ReadHeader = True 'ok MsgBox "internal error in ReadHeader(): wrong compression header string:" + Chr$(10) + "'" + HeaderStructVar.GFCompressionHeaderString + "'!", vbokonly + vbexclamation GoTo Error: GoTo Error: Exit Function Error: BlockLengthCompressed = 0 BlockLengthOriginal = 0 ReadHeader = False Exit Function Public Function RemoveHeader(ByRef ByteStringLength As Long, ByRef ByteString() As Byte, ByRef HeaderStructVar As HeaderStruct, ByRef BlockLengthProcessed As Long) As Boolean BlockLengthProcessed = (HeaderStructVar.BlockLengthCompressed + HeaderStructVar.HeaderStructLength) Call CopyMemory(ByteString(1), ByteString(1 + HeaderStructVar.HeaderStructLength), HeaderStructVar.BlockLengthCompressed) 'we only need the original block ByteStringLength = HeaderStructVar.BlockLengthCompressed ReDim Preserve ByteString(1 To ByteStringLength) As Byte RemoveHeader = True Exit Function Public Function CompAvailable() As Boolean Dim WinSysDir As String WinSysDir = String$(260, Chr(0)) Call GetSystemDirectory(WinSysDir, 260) If Not (InStr(1, WinSysDir, Chr(0), vbbinarycompare)) = 0 Then WinSysDir = Left$(WinSysDir, InStr(1, WinSysDir, Chr(0), vbbinarycompare) - 1) If Not (Right$(WinSysDir, 1) = "\") Then WinSysDir = WinSysDir + "\" If Not (Dir$(WinSysDir + "cmprss10.dll") = "") Then

17 D-8 CompAvailable = True CompAvailable = False Public Function GetFileName(ByVal FileName As String) As String Dim GetFileNameLoop As Integer GetFileName = "" For GetFileNameLoop = Len(FileName) To 1 Step (-1) If Mid$(FileName, GetFileNameLoop, 1) = "\" Then GetFileName = Right$(FileName, Len(FileName) - GetFileNameLoop) Exit For Next GetFileNameLoop Public Function GetExtName(ByVal FileName As String) As String Dim GetFileNameLoop As Integer GetExtName = "" For GetFileNameLoop = Len(FileName) To 1 Step (-1) If Mid$(FileName, GetFileNameLoop, 1) = "." Then GetExtName = Right$(FileName, Len(FileName) - GetFileNameLoop) Exit For Next GetFileNameLoop Private Function GetDirectoryName(ByVal DirectoryName As String) As String Dim GetDirectoryNameLoop As Integer GetDirectoryName = "" For GetDirectoryNameLoop = Len(DirectoryName) To 1 Step (-1) If Mid$(DirectoryName, GetDirectoryNameLoop, 1) = "\" Then GetDirectoryName = Left$(DirectoryName, GetDirectoryNameLoop) Exit For Next GetDirectoryNameLoop Private Function GetTempName(ByVal TempFilePath As String) As String GetTempName = App.Path & "\Temp." & GetExtName(TempFilePath) Private Function MIN(ByVal Value1 As Long, ByVal Value2 As Long) As Long If Value1 < Value2 Then MIN = Value1 MIN = Value2

18 D-9 Private Function MAX(ByVal Value1 As Long, ByVal Value2 As Long) As Long If Value1 > Value2 Then MAX = Value1 MAX = Value2 mdlhuffman Option Explicit Private Declare Function DLLHuffman_CompressString Lib "cmprss10.dll" Alias "Huffman_CompressString" (ByRef HT_CodeStringStructArray As Any, ByVal ByteStringLength As Long, ByRef ByteString As Any, ByVal CompressedStringLength As Long, ByRef CompressedString As Any) As Long Private Declare Function DLLHuffman_DecompressString Lib "cmprss10.dll" Alias "Huffman_DecompressString" (ByRef HuffmanDecompressStructArray As Any, ByVal ByteStringLength As Long, ByRef ByteString As Any, ByVal BitReadStartPos As Long, ByVal OutputByteStringLength As Long, ByRef OutputByteString As Any) As Long Public Function Huffman_CompressString(ByRef ByteStringLength As Long, ByRef ByteString() As Byte) As Boolean Dim HT_CodeStringStructNumber As Integer Dim HT_CodeStringStructArray(0 To 255) As HT_CodeStringStruct Dim HT_CharInfoStructVar As HT_CharInfoStruct Dim CompressedStringLength As Long Dim CompressedString() As Byte Dim CompressedStringIndex As Long Dim TreeByteStringLength As Long Dim TreeByteString() As Byte Dim InputByteStringLength As Long Dim ByteStringLengthUnchanged As Long Dim HeaderStructVar As HeaderStruct Dim Temp As Long Dim Tempdbl# ByteStringLengthUnchanged = ByteStringLength HT_CodeStringStructNumber = 256 Call HTCS_HT_CodeStringStruct_Define(ByteStringLength, ByteString(), HT_CharInfoStructVar, HT_CodeStringStructNumber, HT_CodeStringStructArray()) For Temp = 0 To 255 Tempdbl# = Tempdbl# + _ CDbl(HT_CharInfoStructVar.CharFrequencyArray(Temp)) * _ CDbl(HT_CodeStringStructArray(Temp).CodeLength) Next Temp CompressedStringLength = CLng(-Int(-(Tempdbl# / 8#))) If Not (CompressedStringLength = 0) Then ReDim CompressedString(1 To CompressedStringLength) As Byte GoTo Error: If CompAvailable = True Then

19 D-10 Call Huffman_CompressString_VC(HT_CodeStringStructArray(), ByteStringLength, ByteString(), CompressedStringLength, CompressedString()) Call Huffman_CompressString_VB(HT_CodeStringStructArray(), ByteStringLength, ByteString(), CompressedStringLength, CompressedString()) Call HTCS_TreeCodeByteString_Define(HT_CodeStringStructArray(), TreeByteStringLength, TreeByteString()) InputByteStringLength = ByteStringLength ByteStringLength = 4 + CompressedStringLength + TreeByteStringLength ReDim ByteString(1 To ByteStringLength) As Byte Call CopyMemory(ByteString(1), InputByteStringLength, 4) Call CopyMemory(ByteString(5), TreeByteString(1), TreeByteStringLength) Call CopyMemory(ByteString(5 + TreeByteStringLength), CompressedString(1), CompressedStringLength) If PresetHeader(HeaderStructVar) = False Then GoTo Error: If WriteHeader(ByteStringLength, ByteString(), ByteStringLength, ByteStringLengthUnchanged) = False Then GoTo Error: Huffman_CompressString = True Exit Function Error: Huffman_CompressString = False Exit Function Private Sub Huffman_CompressString_VC(ByRef HT_CodeStringStructArray() As HT_CodeStringStruct, ByVal ByteStringLength As Long, ByRef ByteString() As Byte, ByVal CompressedStringLength As Long, ByRef CompressedString() As Byte) Call DLLHuffman_CompressString(HT_CodeStringStructArray(0), ByteStringLength, ByteString(1), CompressedStringLength, CompressedString(1)) End Sub Private Sub Huffman_CompressString_VB(ByRef HT_CodeStringStructArray() As HT_CodeStringStruct, ByVal ByteStringLength As Long, ByRef ByteString() As Byte, ByVal CompressedStringLength As Long, ByRef CompressedString() As Byte) Dim CompressedStringBitWritePos As Long Dim CompressedStringIndex As Long Dim Temp1 As Long Dim Temp2 As Long For Temp1 = 1& To ByteStringLength For Temp2 = 1& To HT_CodeStringStructArray(ByteString(Temp1)).CodeLength CompressedStringBitWritePos = CompressedStringBitWritePos + 1& If (HT_CodeStringStructArray(ByteString(Temp1)).CodeArray(Temp2)) Then CompressedStringIndex = ((CompressedStringBitWritePos - 1&) \ 8&) + 1&

20 D-11 Select Case (CompressedStringBitWritePos Mod 8&) Case 1& CompressedString(CompressedStringIndex) = CompressedString(CompressedStringIndex) _ Or HT_CodeStringStructArray(ByteString(Temp1)).CodeArray(Temp2) * 128& Case 2& CompressedString(CompressedStringIndex) = CompressedString(CompressedStringIndex) _ Or HT_CodeStringStructArray(ByteString(Temp1)).CodeArray(Temp2) * 64& Case 3& CompressedString(CompressedStringIndex) = CompressedString(CompressedStringIndex) _ Or HT_CodeStringStructArray(ByteString(Temp1)).CodeArray(Temp2) * 32& Case 4& CompressedString(CompressedStringIndex) = CompressedString(CompressedStringIndex) _ Or HT_CodeStringStructArray(ByteString(Temp1)).CodeArray(Temp2) * 16& Case 5& CompressedString(CompressedStringIndex) = CompressedString(CompressedStringIndex) _ Or HT_CodeStringStructArray(ByteString(Temp1)).CodeArray(Temp2) * 8& Case 6& CompressedString(CompressedStringIndex) = CompressedString(CompressedStringIndex) _ Or HT_CodeStringStructArray(ByteString(Temp1)).CodeArray(Temp2) * 4& Case 7& CompressedString(CompressedStringIndex) = CompressedString(CompressedStringIndex) _ Or HT_CodeStringStructArray(ByteString(Temp1)).CodeArray(Temp2) * 2& Case 0& CompressedString(CompressedStringIndex) = CompressedString(CompressedStringIndex) _ Or HT_CodeStringStructArray(ByteString(Temp1)).CodeArray(Temp2) End Select Next Temp2 End Sub Public Function Huffman_DecompressString(ByRef ByteStringLength As Long, ByRef ByteString() As Byte, ByRef BlockLengthProcessed As Long) As Boolean Dim HT_CodeStringStructNumber As Integer Dim HT_CodeStringStructArray(0 To 255) As HT_CodeStringStruct Dim HT_TreeStringStructVar As HT_TreeStringStruct Dim HTDC_CodeStringStructArray(0 To 255) As HTDC_CodeStringStruct Dim OutputStringStartPos As Long Dim OutputByteStringLength As Long Dim OutputByteString() As Byte

21 D-12 Dim HeaderStructVar As HeaderStruct If PresetHeader(HeaderStructVar) = False Then GoTo Error: If ReadHeader(ByteStringLength, ByteString(), HeaderStructVar.BlockLengthCompressed, HeaderStructVar.BlockLengthOriginal) = False Then GoTo Error: If RemoveHeader(ByteStringLength, ByteString(), HeaderStructVar, BlockLengthProcessed) = False Then GoTo Error: HT_CodeStringStructNumber = 256 Call HTDC_HT_TreeStringStructVar_Define(HT_TreeStringStructVar, ByteStringLength, ByteString()) Call HTDC_HT_CodeStringStruct_Define(HT_CodeStringStructArray(), HT_TreeStringStructVar) Call HTDC_CodeStringStruct_Define(HT_CodeStringStructArray(), HTDC_CodeStringStructArray()) Call CopyMemory(OutputByteStringLength, ByteString(1), 4) ReDim OutputByteString(1 To OutputByteStringLength) As Byte OutputStringStartPos = HT_TreeStringStructVar.TreeByteStringLength + 1 If CompAvailable = True Then Call Huffman_DecompressString_VC(HTDC_CodeStringStructArray(), ByteStringLength, ByteString(), _ (OutputStringStartPos * 8), OutputByteStringLength, OutputByteString()) Call Huffman_DecompressString_VB(HTDC_CodeStringStructArray(), ByteStringLength, ByteString(), _ (OutputStringStartPos * 8), OutputByteStringLength, OutputByteString()) ByteStringLength = OutputByteStringLength ReDim ByteString(1 To OutputByteStringLength) As Byte Call CopyMemory(ByteString(1), OutputByteString(1), OutputByteStringLength) Huffman_DecompressString = True Exit Function Error: Huffman_DecompressString = False Exit Function Private Sub Huffman_DecompressString_VC(ByRef HTDC_CodeStringStructArray() As HTDC_CodeStringStruct, ByVal ByteStringLength As Long, ByRef ByteString() As Byte, ByVal BitReadStartPos As Long, ByVal OutputByteStringLength As Long, ByRef OutputByteString() As Byte) Call DLLHuffman_DecompressString(HTDC_CodeStringStructArray(0), ByteStringLength, ByteString(1), BitReadStartPos, OutputByteStringLength, OutputByteString(1)) End Sub Private Sub Huffman_DecompressString_VB(ByRef HTDC_CodeStringStructArray() As HTDC_CodeStringStruct, ByVal ByteStringLength As Long, ByRef ByteString() As Byte, ByVal

22 D-13 BitReadStartPos As Long, ByVal OutputByteStringLength As Long, ByRef OutputByteString() As Byte) Dim CodeBufLength As Long Dim CodeBufArray(1 To 256) As Byte Dim ByteStringIndex As Long Dim ByteStringLong As Long Dim BitReadPos As Long Dim Temp1 As Long Dim Temp2 As Long Dim Temp3 As Long Dim Temp4 As Long BitReadPos = BitReadStartPos For Temp1 = 1& To OutputByteStringLength For Temp2 = 1& To 2048& BitReadPos = BitReadPos + 1& ByteStringIndex = ((BitReadPos - 1&) \ 8&) Select Case BitReadPos Mod 8& Case 1& If (ByteString(ByteStringIndex) And 128&) Then CodeBufArray(Temp2) = 1 CodeBufArray(Temp2) = 0 Case 2& If (ByteString(ByteStringIndex) And 64&) Then CodeBufArray(Temp2) = 1 CodeBufArray(Temp2) = 0 Case 3& If (ByteString(ByteStringIndex) And 32&) Then CodeBufArray(Temp2) = 1 CodeBufArray(Temp2) = 0 Case 4& If (ByteString(ByteStringIndex) And 16&) Then CodeBufArray(Temp2) = 1 CodeBufArray(Temp2) = 0 Case 5& If (ByteString(ByteStringIndex) And 8&) Then CodeBufArray(Temp2) = 1 CodeBufArray(Temp2) = 0 Case 6& If (ByteString(ByteStringIndex) And 4&) Then CodeBufArray(Temp2) = 1 CodeBufArray(Temp2) = 0 Case 7& If (ByteString(ByteStringIndex) And 2&) Then CodeBufArray(Temp2) = 1 CodeBufArray(Temp2) = 0

23 D-14 Case 0& If (ByteString(ByteStringIndex) And 1&) Then CodeBufArray(Temp2) = 1 CodeBufArray(Temp2) = 0 End Select ' For Temp3 = HTDC_CodeStringStructArray(1).StartIndexArray(Temp2) To HTDC_CodeStringStructArray(1).EndIndexArray(Temp2) If (Temp2 = HTDC_CodeStringStructArray(Temp3).CharCodeArrayLength) Then For Temp4 = 1& To HTDC_CodeStringStructArray(Temp3).CharCodeArrayLength If Not (HTDC_CodeStringStructArray(Temp3).CharCodeArray(Temp4) = CodeBufArray(Temp4)) Then GoTo Skip: Next Temp4 OutputByteString(Temp1) = HTDC_CodeStringStructArray(Temp3).Char GoTo Jump: Skip: Next Temp3 Next Temp2 Jump: End Sub mdlhufftree Option Explicit Public Type HT_CharInfoStruct CharArray(0 To 255) As Byte CharFrequencyArray(0 To 255) As Long End Type Public Type HT_CodeStringCreationStruct ByteStringLength As Long ByteString(1 To 256) As Byte ByteStringFrequency As Long End Type Public Type HT_CodeStringStruct CodeLength As Long CodeArray(1 To 256) As Byte End Type Public Type HT_TreeStringStruct TreeByteStringBitCount As Long TreeByteStringLength As Long TreeByteString() As Byte End Type

24 D-15 Public Type HTDC_CodeStringStruct Char As Byte CharCodeArrayLength As Long CharCodeArray(1 To 256) As Byte StartIndexArray(0 To 255) As Long EndIndexArray(0 To 255) As Long End Type Public Sub HTCS_HT_CodeStringStruct_Define(ByVal ByteStringLength As Long, ByRef ByteString() As Byte, ByRef HT_CharInfoStructVar As HT_CharInfoStruct, ByVal HT_CodeStringStructNumber As Integer, ByRef HT_CodeStringStructArray() As HT_CodeStringStruct) Dim HuffmanCharStructArray(0 To 255) As HT_CodeStringCreationStruct Dim HuffmanCharStructVar As HT_CodeStringCreationStruct Dim CharFrequencyMax As Double Dim LastUsedIndex As Long Dim TempHuffmanCharStruct As HT_CodeStringCreationStruct Dim TempByte As Byte Dim Temp1 As Long Dim Temp2 As Long Dim tmpstr As String For Temp1 = 0& To 255& HuffmanCharStructArray(Temp1).ByteStringLength = 1& HuffmanCharStructArray(Temp1).ByteString(1) = CByte(Temp1) HT_CharInfoStructVar.CharArray(Temp1) = CByte(Temp1) For Temp1 = 1& To ByteStringLength HuffmanCharStructArray(ByteString(Temp1)).ByteStringFrequency = _ HuffmanCharStructArray(ByteString(Temp1)).ByteStringFrequency + 1& HT_CharInfoStructVar.CharFrequencyArray(ByteString(Temp1)) = _ HuffmanCharStructArray(ByteString(Temp1)).ByteStringFrequency Do Temp2 = 0& LastUsedIndex = 255& ReDo: CharFrequencyMax = 0& For Temp1 = Temp2 To 255& If HuffmanCharStructArray(Temp1).ByteStringFrequency > CharFrequencyMax Then CharFrequencyMax = HuffmanCharStructArray(Temp1).ByteStringFrequency For Temp1 = Temp2 To 255& If HuffmanCharStructArray(Temp1).ByteStringFrequency = CharFrequencyMax Then If Not (Temp1 = Temp2) Then Call CopyMemory(TempHuffmanCharStruct, HuffmanCharStructArray(Temp2), Len(TempHuffmanCharStruct)) Call CopyMemory(HuffmanCharStructArray(Temp2), HuffmanCharStructArray(Temp1), Len(HuffmanCharStructArray(Temp1)))

25 D-16 Call CopyMemory(HuffmanCharStructArray(Temp1), TempHuffmanCharStruct, Len(TempHuffmanCharStruct)) If CharFrequencyMax > 0& Then LastUsedIndex = Temp2 Temp2 = Temp2 + 1& If Not (Temp2 = 256&) Then GoTo ReDo: If Not (LastUsedIndex > 0&) Then Exit Do For Temp1 = 1& To HuffmanCharStructArray(LastUsedIndex).ByteStringLength HT_CodeStringStructArray(HuffmanCharStructArray(LastUsedIndex).Byt estring(temp1)).codelength = _ HT_CodeStringStructArray(HuffmanCharStructArray(LastUsedIndex).Byt estring(temp1)).codelength + 1& HT_CodeStringStructArray(HuffmanCharStructArray(LastUsedIndex).Byt estring(temp1)).codearray( _ HT_CodeStringStructArray(HuffmanCharStructArray(LastUsedIndex).Byt estring(temp1)).codelength) = 0& For Temp1 = 1& To HuffmanCharStructArray(LastUsedIndex - 1&).ByteStringLength HT_CodeStringStructArray(HuffmanCharStructArray(LastUsedIndex - 1).ByteString(Temp1)).CodeLength = _ HT_CodeStringStructArray(HuffmanCharStructArray(LastUsedIndex - 1).ByteString(Temp1)).CodeLength + 1& HT_CodeStringStructArray(HuffmanCharStructArray(LastUsedIndex - 1).ByteString(Temp1)).CodeArray( _ HT_CodeStringStructArray(HuffmanCharStructArray(LastUsedIndex - 1).ByteString(Temp1)).CodeLength) = 1& Call CopyMemory(HuffmanCharStructArray(LastUsedIndex - 1&).ByteString(HuffmanCharStructArray(LastUsedIndex - 1&).ByteStringLength + 1&), _ HuffmanCharStructArray(LastUsedIndex).ByteString(1), HuffmanCharStructArray(LastUsedIndex).ByteStringLength) HuffmanCharStructArray(LastUsedIndex - 1&).ByteStringLength = _ HuffmanCharStructArray(LastUsedIndex - 1&).ByteStringLength + HuffmanCharStructArray(LastUsedIndex).ByteStringLength HuffmanCharStructArray(LastUsedIndex - 1&).ByteStringFrequency = _ HuffmanCharStructArray(LastUsedIndex - 1&).ByteStringFrequency + HuffmanCharStructArray(LastUsedIndex).ByteStringFrequency Call CopyMemory(HuffmanCharStructArray(LastUsedIndex), HuffmanCharStructVar, Len(HuffmanCharStructVar)) Loop For Temp1 = 0& To 255&

26 D-17 For Temp2 = 1& To (HT_CodeStringStructArray(Temp1).CodeLength \ 2&) TempByte = HT_CodeStringStructArray(Temp1).CodeArray(Temp2) HT_CodeStringStructArray(Temp1).CodeArray(Temp2) = HT_CodeStringStructArray(Temp1).CodeArray(HT_CodeStringStructArray (Temp1).CodeLength - Temp2 + 1&) HT_CodeStringStructArray(Temp1).CodeArray(HT_CodeStringStructArray (Temp1).CodeLength - Temp2 + 1&) = TempByte Next Temp2 End Sub Public Function HTCS_TreeCodeByteString_Define(ByRef HT_CodeStringStructArray() As HT_CodeStringStruct, ByRef TreeCodeByteStringLength As Long, ByRef TreeCodeByteString() As Byte) As String Dim TreeCodeLengthTotal As Long Dim ByteStringBitWritePos As Long Dim ByteStringIndex As Long Dim Temp1 As Long Dim Temp2 As Long Dim TempByte As Byte For Temp1 = 0& To 255& TreeCodeLengthTotal = TreeCodeLengthTotal + _ HT_CodeStringStructArray(Temp1).CodeLength TreeCodeByteStringLength = 4& + 256& + (-Int(- TreeCodeLengthTotal / 8&)) ReDim TreeCodeByteString(1 To TreeCodeByteStringLength) As Byte Call CopyMemory(TreeCodeByteString(1), TreeCodeLengthTotal, 4) For Temp1 = 0& To 255& TempByte = CByte(HT_CodeStringStructArray(Temp1).CodeLength) Call CopyMemory(ByVal VarPtr(TreeCodeByteString(5 + Temp1)), TempByte, 1) ByteStringBitWritePos = (4& * 8&) + (256& * 8&) For Temp1 = 0& To 255& For Temp2 = 1& To HT_CodeStringStructArray(Temp1).CodeLength ByteStringBitWritePos = ByteStringBitWritePos + 1& If Not (HT_CodeStringStructArray(Temp1).CodeArray(Temp2) = 0) Then ByteStringIndex = ((ByteStringBitWritePos - 1&) \ 8&) + 1& Select Case (ByteStringBitWritePos Mod 8&) Case 1& TreeCodeByteString(ByteStringIndex) = TreeCodeByteString(ByteStringIndex) _ Or HT_CodeStringStructArray(Temp1).CodeArray(Temp2) * 128& Case 2& TreeCodeByteString(ByteStringIndex) = TreeCodeByteString(ByteStringIndex) _

27 D-18 Or HT_CodeStringStructArray(Temp1).CodeArray(Temp2) * 64& Case 3& TreeCodeByteString(ByteStringIndex) = TreeCodeByteString(ByteStringIndex) _ Or HT_CodeStringStructArray(Temp1).CodeArray(Temp2) * 32& Case 4& TreeCodeByteString(ByteStringIndex) = TreeCodeByteString(ByteStringIndex) _ Or HT_CodeStringStructArray(Temp1).CodeArray(Temp2) * 16& Case 5& TreeCodeByteString(ByteStringIndex) = TreeCodeByteString(ByteStringIndex) _ Or HT_CodeStringStructArray(Temp1).CodeArray(Temp2) * 8& Case 6& TreeCodeByteString(ByteStringIndex) = TreeCodeByteString(ByteStringIndex) _ Or HT_CodeStringStructArray(Temp1).CodeArray(Temp2) * 4& Case 7& TreeCodeByteString(ByteStringIndex) = TreeCodeByteString(ByteStringIndex) _ Or HT_CodeStringStructArray(Temp1).CodeArray(Temp2) * 2& Case 0& TreeCodeByteString(ByteStringIndex) = TreeCodeByteString(ByteStringIndex) _ Or HT_CodeStringStructArray(Temp1).CodeArray(Temp2) End Select ' Next Temp2 Public Sub HTDC_HT_TreeStringStructVar_Define(ByRef HT_TreeStringStructVar As HT_TreeStringStruct, ByVal ByteStringLength As Long, ByRef ByteString() As Byte) If Not (ByteStringLength < 4) Then Call CopyMemory(HT_TreeStringStructVar.TreeByteStringBitCount, ByteString(5), 4) HT_TreeStringStructVar.TreeByteStringLength = Int(- HT_TreeStringStructVar.TreeByteStringBitCount / 8) ReDim HT_TreeStringStructVar.TreeByteString(1 To HT_TreeStringStructVar.TreeByteStringLength) As Byte Call CopyMemory(HT_TreeStringStructVar.TreeByteString(1), ByteString(9), HT_TreeStringStructVar.TreeByteStringLength) HT_TreeStringStructVar.TreeByteStringLength = 0 HT_TreeStringStructVar.TreeByteStringBitCount = 0 ReDim HT_TreeStringStructVar.TreeByteString(1 To 1) As Byte End Sub

28 D-19 Public Sub HTDC_HT_CodeStringStruct_Define(ByRef HT_CodeStringStructArray() As HT_CodeStringStruct, ByRef HT_TreeStringStructVar As HT_TreeStringStruct) Dim ByteStringIndex As Long Dim BitReadPos As Long Dim Temp1 As Long Dim Temp2 As Long For Temp1 = 0& To 255& HT_CodeStringStructArray(Temp1).CodeLength = CLng(HT_TreeStringStructVar.TreeByteString(Temp1 + 1&)) BitReadPos = (256& * 8&) With HT_TreeStringStructVar For Temp1 = 0& To 255& For Temp2 = 1& To HT_CodeStringStructArray(Temp1).CodeLength BitReadPos = BitReadPos + 1& ByteStringIndex = ((BitReadPos - 1&) \ 8&) + 1& Select Case BitReadPos Mod 8& Case 1& If (.TreeByteString(ByteStringIndex) And 128&) Then HT_CodeStringStructArray(Temp1).CodeArray(Temp2) = 1 HT_CodeStringStructArray(Temp1).CodeArray(Temp2) = 0 Case 2& If (.TreeByteString(ByteStringIndex) And 64&) Then HT_CodeStringStructArray(Temp1).CodeArray(Temp2) = 1 HT_CodeStringStructArray(Temp1).CodeArray(Temp2) = 0 Case 3& If (.TreeByteString(ByteStringIndex) And 32&) Then HT_CodeStringStructArray(Temp1).CodeArray(Temp2) = 1 HT_CodeStringStructArray(Temp1).CodeArray(Temp2) = 0 Case 4& If (.TreeByteString(ByteStringIndex) And 16&) Then HT_CodeStringStructArray(Temp1).CodeArray(Temp2) = 1 HT_CodeStringStructArray(Temp1).CodeArray(Temp2) = 0 Case 5&

29 D-20 Then If (.TreeByteString(ByteStringIndex) And 8&) HT_CodeStringStructArray(Temp1).CodeArray(Temp2) = 1 HT_CodeStringStructArray(Temp1).CodeArray(Temp2) = 0 Case 6& If (.TreeByteString(ByteStringIndex) And 4&) Then HT_CodeStringStructArray(Temp1).CodeArray(Temp2) = 1 HT_CodeStringStructArray(Temp1).CodeArray(Temp2) = 0 Case 7& If (.TreeByteString(ByteStringIndex) And 2&) Then HT_CodeStringStructArray(Temp1).CodeArray(Temp2) = 1& HT_CodeStringStructArray(Temp1).CodeArray(Temp2) = 0& Case 0& If (.TreeByteString(ByteStringIndex) And 1&) Then HT_CodeStringStructArray(Temp1).CodeArray(Temp2) = 1 HT_CodeStringStructArray(Temp1).CodeArray(Temp2) = 0 End Select Next Temp2 End With End Sub Public Sub HTDC_CodeStringStruct_Define(ByRef HT_CodeStringStructArray() As HT_CodeStringStruct, ByRef HTDC_CodeStringStructArray() As HTDC_CodeStringStruct) Dim CodeLengthMin As Long Dim CodeLengthMayBeZeroFlag As Boolean Dim NonZeroLengthCharCodeNumber As Integer Dim TempHTDC_CodeStringStruct As HTDC_CodeStringStruct Dim Temp1 As Long Dim Temp2 As Long For Temp1 = 0& To 255& HTDC_CodeStringStructArray(Temp1).Char = CByte(Temp1) HTDC_CodeStringStructArray(Temp1).CharCodeArrayLength = HT_CodeStringStructArray(Temp1).CodeLength Call CopyMemory(HTDC_CodeStringStructArray(Temp1).CharCodeArray(1), HT_CodeStringStructArray(Temp1).CodeArray(1), 256)

30 D-21 Temp2 = 0& ReDo: CodeLengthMin = 256& ^ 3& For Temp1 = Temp2 To 255& If CodeLengthMayBeZeroFlag = False Then If (HTDC_CodeStringStructArray(Temp1).CharCodeArrayLength < CodeLengthMin) And _ (HTDC_CodeStringStructArray(Temp1).CharCodeArrayLength > 0&) Then CodeLengthMin = HTDC_CodeStringStructArray(Temp1).CharCodeArrayLength If HTDC_CodeStringStructArray(Temp1).CharCodeArrayLength < CodeLengthMin Then CodeLengthMin = HTDC_CodeStringStructArray(Temp1).CharCodeArrayLength If CodeLengthMin = 256& ^ 3& Then CodeLengthMayBeZeroFlag = True GoTo ReDo: If CodeLengthMayBeZeroFlag = False Then NonZeroLengthCharCodeNumber = NonZeroLengthCharCodeNumber + 1 For Temp1 = Temp2 To 255& If HTDC_CodeStringStructArray(Temp1).CharCodeArrayLength = CodeLengthMin Then If Not (Temp1 = Temp2) Then TempHTDC_CodeStringStruct = HTDC_CodeStringStructArray(Temp1) HTDC_CodeStringStructArray(Temp1) = HTDC_CodeStringStructArray(Temp2) HTDC_CodeStringStructArray(Temp2) = TempHTDC_CodeStringStruct Temp2 = Temp2 + 1& If Not (Temp2 = 256&) Then GoTo ReDo: For Temp1 = 0& To 255& HTDC_CodeStringStructArray(1).StartIndexArray(Temp1) = 0& HTDC_CodeStringStructArray(1).EndIndexArray(Temp1) = -1& Temp2 = 0& For Temp1 = 0& To 255& If Not (HTDC_CodeStringStructArray(Temp1).CharCodeArrayLength = Temp2) Then HTDC_CodeStringStructArray(1).EndIndexArray(Temp2) = (Temp1-1&)

31 D-22 Temp2 = HTDC_CodeStringStructArray(Temp1).CharCodeArrayLength HTDC_CodeStringStructArray(1).StartIndexArray(Temp2) = Temp1 If Temp1 = 255& Then HTDC_CodeStringStructArray(1).EndIndexArray(Temp2) = 255& HTDC_CodeStringStructArray(1).StartIndexArray(0) = 0& HTDC_CodeStringStructArray(1).EndIndexArray(0) = -1& End Sub

32 E-1 CURRICULUM VITAE Nama : Nuzul Sakinah Lubis Tempat/Tanggal Lahir : Jakarta/3 April 1990 Alamat Sekarang : Jl. Pintu air IV, Komplek POLMED no 8, Medan Alamat Orang Tua : Jl. Pintu air IV, Komplek POLMED no 8, Medan Telp/Hp : qinalubis@gmail.com Riwayat Pendidikan: SD Al-Azhar Medan dari Tahun 1996 s/d Tahun 2002 SMP Al-Azhar Medan dari Tahun 2002 s/d Tahun 2005 SMA Al-Azhar Medan dari Tahun 2005 s/d Tahun 2008 S1 Ilmu Komputer USU dari Tahun 2008 s/d Tahun 2013 Keahlian/Kursus yang diikuti: 1. Bahasa Inggris 2. Bahasa Pemrograman Pascal 3. Bahasa Pemrograman C++ 4. Extra kulikuler Basket Ball

BAB VI SISTEM BILANGAN

BAB VI SISTEM BILANGAN BAB VI SISTEM BILANGAN Sistem Bilangan adalah kumpulan simbol khusus yang digunakan dalam membangun sebua bilangan. Sistem bilangan yang umum dipakai manusia adalah Desimal yang terdiri dari sepuluh simbol

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA BAB II TINJAUAN PUSTAKA II.1 Pengenalan Kriptografi II.1.1 Sejarah Kriptografi Kriptografi mempunyai sejarah yang panjang. Informasi yang lengkap mengenai sejarah kriptografi dapat di temukan di dalam

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA BAB II TINJAUAN PUSTAKA II.1. Definisi Citra Citra adalah suatu representasi (gambaran), kemiripan, atau imitasi dari suatu objek. Citra sebagai keluaran suatu sistem perekaman data dapat bersifat optik

Lebih terperinci

BAB III DATA KOMPUTASI

BAB III DATA KOMPUTASI 1 BAB III DATA KOMPUTASI 3.1. Tipe Data Dua permasalahan penting dalam data komputasi adalah tipe data dan penyimpanannya dalam memori komputer. Setiap bahasa pemrograman mempunyai cara yang berbeda-beda

Lebih terperinci

SISTEM BILANGAN DAN SANDI

SISTEM BILANGAN DAN SANDI SISTEM BILANGAN DAN SANDI. Pendahuluan Sistem bilangan yang biasa kita pakai sehari-hari disebut bilangan berbasis posisi. Bilangan desimal disebut sistem basis (base system), karena sistem ini mempunyai

Lebih terperinci

RANGKAIAN ARITMETIKA 2

RANGKAIAN ARITMETIKA 2 RANGKAIAN ARITMETIKA 2 Pokok Bahasan : 1. Sistim Coding 2. Fungsi-fungsi Aritmetika Biner : penjumlahan, pengurangan, perkalian, pembagian 3. Implementasi fungsi Aritmetika pada sistim Bilangan yang lain

Lebih terperinci

BAB IV SISTEM SANDI (CODING)

BAB IV SISTEM SANDI (CODING) BAB IV SISTEM SANDI (CODING) Dalam meyalurkan data baik antar komputer yang sama pembuatnya maupun dengan komputer yang lain pembuatnya, data tersebut harus dimengerti oleh pihak pengirim maupun penerima.

Lebih terperinci

BAB IV HASIL DAN PEMBAHASAN. Proses enkripsi dimulai dengan mengubah file input gambar RGB menjadi

BAB IV HASIL DAN PEMBAHASAN. Proses enkripsi dimulai dengan mengubah file input gambar RGB menjadi BAB IV HASIL DAN PEMBAHASAN A. Hasil enkripsi dan deskripsi Proses enkripsi dimulai dengan mengubah file input gambar RGB menjadi susunan bit, Kemudian masukkan kunci Stegano dengan metode vigenere cipher,

Lebih terperinci

menetapkan olahraga perlu makin ani bagi setiap anggota masyarakat, nasional yaitu memasyarakatkan masyarakat. Tak hanya itu saja

menetapkan olahraga perlu makin ani bagi setiap anggota masyarakat, nasional yaitu memasyarakatkan masyarakat. Tak hanya itu saja ! " # $ $ %! & '! ( ) ) ' * % ) ' # + )! )! ' ),! &! ) % ( - ( " ( # + & ( )! &! ) %. % & ' (! # ' ) + #! ) ' $ ) ( / * * * 0 1 ) ' ( ( ) ( +! +! ' ( % $ ) ( & + / $ & 0 2 3 4 5 6 4 7 8 9 4 5 : ; 4 < =

Lebih terperinci

BAB IV SISTEM SANDI (CODING)

BAB IV SISTEM SANDI (CODING) BAB IV SISTEM SANDI (CODING) Dalam meyalurkan data baik antar komputer yang sama pembuatnya maupun dengan komputer yang lain pembuatnya, data tersebut harus dimengerti oleh pihak pengirim maupun penerima.

Lebih terperinci

SISTEM BILANGAN Desimal, Biner, Oktal dan Heksadesimal

SISTEM BILANGAN Desimal, Biner, Oktal dan Heksadesimal SISTEM BILANGAN Desimal, Biner, Oktal dan Heksadesimal Tujuan : Setelah mempelajari diharapkan dapat,. Memahami jenis-jenis sistem bilangan yang digunakan pada teknik mikroprosessor. Memahami konversi

Lebih terperinci

RANGKAIAN ARITMETIKA 2

RANGKAIAN ARITMETIKA 2 RANGKAIAN ARITMETIKA 2 Pokok Bahasan : 1. Sistim Coding 2. Fungsi-fungsi Aritmetika Biner : penjumlahan, pengurangan, perkalian, pembagian 3. Implementasi fungsi Aritmetika pada sistim Bilangan yang lain

Lebih terperinci

PRAKTEK KOMUNIKASI DATA PENGKODEAN KARAKTER

PRAKTEK KOMUNIKASI DATA PENGKODEAN KARAKTER PRAKTEK KOMUNIKASI DATA SEMESTER V TH 2008 / 2009 PENGKODEAN KARAKTER Disusun Oleh : FADLAN FAOZI (3306130171) NURINA PUTRI (3306130353) RETI ARI MURNI (3306130613) TANAGO (3306130505) PROGRAM STUDI JURUSAN

Lebih terperinci

ASCII (American Standart Code for Information Intercharge)

ASCII (American Standart Code for Information Intercharge) CODING CODING Suatu cara penggambaran himpunan simbol yang digunakan dalam komunikasi data agar data yang dikirimkan oleh peralatan pengirim dapat diterima dan dimengerti oleh peralatan penerima Jenis

Lebih terperinci

RANGKAIAN ARITMETIKA

RANGKAIAN ARITMETIKA RANGKAIAN ARITMETIKA Materi :. Sistim Bilangan : Desimal, Biner, Oktal, Hexadesimal 2. Konversi Sistim Bilangan 3. Sistim Coding 4. Fungsi-fungsi Aritmetika Biner : penjumlahan, pengurangan, perkalian,

Lebih terperinci

CODING. Komunikasi Data

CODING. Komunikasi Data CODING Komunikasi Data CODING Suatu cara penggambaran himpunan simbol yang digunakan dalam komunikasi data agar data yang dikirimkan oleh peralatan pengirim dapat diterima dan dimengerti oleh peralatan

Lebih terperinci

BAB-2 : TIPE DATA, VARIABEL DAN OPERATOR

BAB-2 : TIPE DATA, VARIABEL DAN OPERATOR BAB-2 : TIPE DATA, VARIABEL DAN OPERATOR Setelah selesai pembahasan pada bab ini, diharapkan Anda dapat : Mengenal dan dapat menggunakan tipe data Mengenal dan menggunakan variable Mengenal dan menggunakan

Lebih terperinci

BAB 2 TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA 7 BAB TINJAUAN PUSTAKA Pada bab ini penulis memaparkan teori-teori ilmiah yang didapat dari metode pencarian fakta yang digunakan untuk mendukung penulisan skripsi ini dan sebagai dasar pengembangan sistem

Lebih terperinci

LISTING PROGRAM. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) ShowInputForm End Sub

LISTING PROGRAM. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) ShowInputForm End Sub LISTING PROGRAM 1. Listing Menu Utama Option Explicit Private ntime As Integer Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) ShowInputForm Private Sub Form_Load() ntime = 0 Private Sub

Lebih terperinci

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB IV IMPLEMENTASI DAN PENGUJIAN BAB IV IMPLEMENTASI DAN PENGUJIAN 4.1 Implementasi Setelah melakukan analisis dan perancangan terhadap aplikasi yang akan dibangun, tahapan selanjutnya adalah implementasi dan pengujian. Untuk mengimplementasikan

Lebih terperinci

Penggunaan Sistem Bilangan dan Pengkodean -3-

Penggunaan Sistem Bilangan dan Pengkodean -3- Sistem Digital Penggunaan Sistem Bilangan dan Pengkodean -3- Missa Lamsani Hal 1 Penggunaan Bilangan Biner Bilangan biner digunakan dalam komputer yang biasa tidak terlihat oleh pengguna Namun kemampuan

Lebih terperinci

BAB IV PENGUJIAN DAN ANALISIS

BAB IV PENGUJIAN DAN ANALISIS BAB IV PENGUJIAN DAN ANALISIS Pada bagian ini merupakan pembahasan mengenai pengujian sistem dimana hasil pengujian yang akan dilakukan oleh sistem nantinya akan dibandingkan dengan perhitungan secara

Lebih terperinci

BAB IV IMPLEMENTASI DAN PENGUJIAN. dan tempat implementasi dari perangkat lunak ini adalah sebagai berikut :

BAB IV IMPLEMENTASI DAN PENGUJIAN. dan tempat implementasi dari perangkat lunak ini adalah sebagai berikut : BAB IV IMPLEMENTASI DAN PENGUJIAN 4.1 IMPLEMENTASI PERANGKAT LUNAK Lingkungan perangkat keras yang digunakan untuk perancangan sistem dan tempat implementasi dari perangkat lunak ini adalah sebagai berikut

Lebih terperinci

Data Link Layer BAB 3

Data Link Layer BAB 3 Data Link Layer BAB 3 Fungsi Data Link Layer Menyediakan antarmuka layanan untuk Network Layer Berurusan dengan kesalahan transmisi Pengaturan aliran data Lambat penerima tidak dibanjiri oleh pengirim

Lebih terperinci

BAB 3 METODOLOGI PENELITIAN

BAB 3 METODOLOGI PENELITIAN BAB 3 METODOLOGI PENELITIAN 3.1. Pengantar Metodologi penelitian merupakan sekumpulan proses terstruktur mengenai peraturan, kegiatan, dan prosedur yang digunakan oleh pelaku suatu disiplin ilmu dalam

Lebih terperinci

STEGANOGRAFI PENYISIPAN TEKS PADA CITRA MENGGUNAKAN METODE END OF FILE

STEGANOGRAFI PENYISIPAN TEKS PADA CITRA MENGGUNAKAN METODE END OF FILE TUGAS AKHIR SM141501 STEGANOGRAFI PENYISIPAN TEKS PADA CITRA MENGGUNAKAN METODE END OF FILE JOKO SAPUTRA NRP 1211 100 065 Dosen Pembimbing Dr. Darmaji, S.Si, MT JURUSAN MATEMATIKA Fakultas Matematika dan

Lebih terperinci

Pre Processing. Memberikan gambaran jenis-jenis pre-processing

Pre Processing. Memberikan gambaran jenis-jenis pre-processing PRAKTIKUM II Pre Processing Tujuan Memberikan gambaran jenis-jenis pre-processing Teori Penunjang Prosedur Percobaan 1. Berikut ini percobaan konversi dari gambar RGB menjadi Gray Scale. 2. Gunakan proyek

Lebih terperinci

LISTING PROGRAM. Script Menu Utama Pada Game Tebak Kata

LISTING PROGRAM. Script Menu Utama Pada Game Tebak Kata LISTING PROGRAM Script Menu Utama Pada Game Tebak Kata Dim kesempatan As Integer Dim nilai As Integer Dim arrkataasli(20) As String Dim kataasli As String Dim arrhurufharushilang(20) As String Dim hurufharushilang

Lebih terperinci

MENGENAL DAN MEMPELAJARI BARCODE (Bagian I)

MENGENAL DAN MEMPELAJARI BARCODE (Bagian I) MENGENAL DAN MEMPELAJARI BARCODE (Bagian I) 1. Berkenalan dengan Barcode. Mungkin tanpa disadari setiap hari kita akan menemui barcode, misalnya p ada produk makanan, obat, barang konsumer yang kita miliki,

Lebih terperinci

KONEKSI VB DENGAN MYSQL (Wajib, S.Pd.)

KONEKSI VB DENGAN MYSQL (Wajib, S.Pd.) KONEKSI VB DENGAN MYSQL (Wajib, S.Pd.) Membuat Database dengan nama Siswa NAMA FIELD NIS NAMA ALAMAT JURUSAN TYPE CHAR(5) VARCHAR(30) VARCHAR(40) VARCHAR(20) Membuat Desain Form pada Visual Basic Menentukan

Lebih terperinci

VBSCRIPT TUTORIAL. 2. MEMASUKKAN KODE VBSCRIPT KE DALAM HALAMAN HTML Kode VBScript ditulis didalam pasangan tag <SCRIPT>.

VBSCRIPT TUTORIAL. 2. MEMASUKKAN KODE VBSCRIPT KE DALAM HALAMAN HTML Kode VBScript ditulis didalam pasangan tag <SCRIPT>. VBSCRIPT TUTORIAL 1. APAKAH VBSCRIPT? Microsoft Visual Basic Scripting Edition, salah satu anggota bahasa pemrograman Visual Basic, adalah bahasa pemrograman active scripting, baik untuk web client scripting

Lebih terperinci

Field Tipe Data Size Keterangan userid Text 12 Primary key namauser Text 30 - password Text 8 - akses Text 10 -

Field Tipe Data Size Keterangan userid Text 12 Primary key namauser Text 30 - password Text 8 - akses Text 10 - Buatlah database baru dan beri nama penjualan Buat beberapa tabel berikut: 1. Barang Kodebrg Text 12 Primary key Namabrg Text 30 - Hargabl Currency - Input mask Hargajl Currency - Input mask Stok Number

Lebih terperinci

1. Rancangan Input Program Form Menu Utama Form Data Barang [ Input Barang ]

1. Rancangan Input Program Form Menu Utama Form Data Barang [ Input Barang ] 1. Rancangan Input Program Form Menu Utama Form Data Barang [ Input Barang ] L-1 Form Data Barang [ Browse ] Form Produksi L-2 Form Faktur Penjualan Form Pembeli L-3 Form Pembeli [ Browse ] Properti Form

Lebih terperinci

LAYER FISIK TERKAIT LAYER FISIK: 1. SINKRONISASI 2. PHYSICAL ENCODING : NRZI, NRZ, MANCHESTER, AMI 3. GANGGUAN LAYER FISIK

LAYER FISIK TERKAIT LAYER FISIK: 1. SINKRONISASI 2. PHYSICAL ENCODING : NRZI, NRZ, MANCHESTER, AMI 3. GANGGUAN LAYER FISIK LAYER FISIK LAYER FISIK TERKAIT LAYER FISIK: 1. SINKRONISASI 2. PHYSICAL ENCODING : NRZI, NRZ, MANCHESTER, AMI 3. GANGGUAN LAYER FISIK MODE TRANSMISI Mode Transmisi merupakan cara suatu data dikirimkan:

Lebih terperinci

Bab 7 Komponen Dasar Visual Basic 29 BAB VII KOMPONEN DASAR VISUAL BASIC TUJUAN PRAKTIKUM

Bab 7 Komponen Dasar Visual Basic 29 BAB VII KOMPONEN DASAR VISUAL BASIC TUJUAN PRAKTIKUM Bab 7 Komponen Dasar Visual Basic 29 BAB VII KOMPONEN DASAR VISUAL BASIC TUJUAN PRAKTIKUM 1. Mengerti tipe-tipe data yang dimiliki oleh Visual Basic 2. Memahami berbagai struktur kondisi yang terdapat

Lebih terperinci

BAB II DASAR TEORI. Gambar 2.1. Proses Enkripsi Dekripsi

BAB II DASAR TEORI. Gambar 2.1. Proses Enkripsi Dekripsi BAB II DASAR TEORI Pada bagian ini akan dibahas mengenai dasar teori yang digunakan dalam pembuatan sistem yang akan dirancang dalam skripsi ini. 2.1. Enkripsi dan Dekripsi Proses menyandikan plaintext

Lebih terperinci

Struktur Data II. Bekerja Dengan Form.

Struktur Data II. Bekerja Dengan Form. Struktur Data II dengan Visual Basic Bekerja Dengan Form ptputraastawa@gmail.com Ptputraastawa.wordpress.com @2011 Data dan Variabel Penggunaan Data dan Variabel Informasi yang disimpan atau diolah oleh

Lebih terperinci

KODE ASCII 7 BIT. American Standard Code for Information Iinterchange

KODE ASCII 7 BIT. American Standard Code for Information Iinterchange KODE ASCII 7 BIT Dony Ariyus, Rum Muhamad Andri, Jurusan Teknik Informatika, STMIK AMIKOM Yogyakarta, Jl. Ring Road Utara, Condong Catur, Sleman, Yogyakarta - Indonesia ASCII dikenal dengan International

Lebih terperinci

BAB V PROSEDUR DAN FUNGSI

BAB V PROSEDUR DAN FUNGSI BAB V PROSEDUR DAN FUNGSI Modul-modul dalam Visual Basic dibuat oleh suatu bagian/seksi deklarasi dimana anda mendeklarasikan tipe, konstan, dan variabel yang digunakan dalam modul serta kumpulan dari

Lebih terperinci

Penggandaan Ke Sistem

Penggandaan Ke Sistem Ketika virus dijalankan oleh seseorang maka virus tersebut akan mulai melakukan aktivitasnya sebagai virus yaitu dengan melakukan penggandaan ke system computer (Infeksi ke system). Hal ini dilakukan agar

Lebih terperinci

Kartu Bimbingan Tugas Akhir Mahhasiswa

Kartu Bimbingan Tugas Akhir Mahhasiswa KEMENTERIAN PENDIDIKAN NASIONAL UNIVERSITAS SUMATERA UTARA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM Jln. Bioteknologi No.1 Kampus USU Padang Bulan Medan-20155 Telp. (061) 8211050, 82144290, Fax. (061)

Lebih terperinci

OBJECT ORIENTED PROGRAMMING. Day 3 : Operator dan Assignment

OBJECT ORIENTED PROGRAMMING. Day 3 : Operator dan Assignment OBJECT ORIENTED PROGRAMMING Day 3 : Operator dan Assignment TOPIK Membedakan antara instance dan local l variabel. Urutan pemrosesan Unary operator Arithmetic operator Shift operator: , dan >>> Comparison

Lebih terperinci

Variable. Variable (cont) Variable (cont) Tipe Data

Variable. Variable (cont) Variable (cont) Tipe Data Variable Variable (cont) Variable dapat didefinisikan sebagai bagian dari memory untuk menyimpan nilai yang telah ditentukan. Setiap variable memrlukan identifier yang dapat membedakannya dari variable

Lebih terperinci

Operator dan Assignment. Pertemuan 3 Pemrograman Berbasis Obyek

Operator dan Assignment. Pertemuan 3 Pemrograman Berbasis Obyek Operator dan Assignment Pertemuan 3 Pemrograman Berbasis Obyek Topik Unary operator Arithmetic operator Shift operator: , dan >>> Comparison operator Bitwise operator: &, ^, dan. Short Circuit operator

Lebih terperinci

Topik. Pengodean Data Teknik Pengodean

Topik. Pengodean Data Teknik Pengodean Konsep Pengodean Topik Pengodean Data Teknik Pengodean Introduction Ilustrasi : A B C Karakter Data Karakter Data Karakter Data Why mas bray????????? Jawaban Mas Bray Dikodekan dulu dong (dicoding) Coding

Lebih terperinci

MODUL IV PERULANGAN ( LOOPING )

MODUL IV PERULANGAN ( LOOPING ) MODUL IV PERULANGAN ( LOOPING ) beberapa jenis perulangan dalam pemrograman Visual Basic pada umumnya tidak jauh berbeda dengan bahasa pemrograman lainnya, berikut ialah beberapa jenis looping ( perulangan

Lebih terperinci

1. Buka Visual Basic 6 sobat. Buat project baru, masukkan componen Microsoft Winsock Control 2. Masukkan coding berikut

1. Buka Visual Basic 6 sobat. Buat project baru, masukkan componen Microsoft Winsock Control 2. Masukkan coding berikut Membuat Sendiri DDoS Tool Dengan Visual Basic 6 Saat ini banyak bertebaran DDoS Tool yang bisa kita jumpai di dunia maya ini. DDoS ( Distributed Denial of Service ) adalah sebuah tipe serangan dari hacker

Lebih terperinci

BAB III Struktur Program

BAB III Struktur Program BAB III Struktur Program Setelah mengenal masing-masing bagian pada window utama Visual Basic beserta fungsinya, selanjutnya akan dipelajari struktur yang diperlukan dalam pemrograman bahasa Visual Basic.

Lebih terperinci

Menampilkan List Komputer dan User-nya dalam Jaringan Intranet Dengan Fungsi WNet API

Menampilkan List Komputer dan User-nya dalam Jaringan Intranet Dengan Fungsi WNet API Menampilkan List Komputer dan User-nya dalam Jaringan Intranet Dengan Fungsi WNet API Artikel ini telah dipublikasikan pada majalah Mikrodata Vol. 8 Series 17, Agustus 2002. Agus Kurniawan agusk@cs.ui.ac.id

Lebih terperinci

BAB IV IMPLEMENTASI DAN PENGUJIAN. bagian dekompresi dan bagian client server yang dapat melakukan kompresi dan

BAB IV IMPLEMENTASI DAN PENGUJIAN. bagian dekompresi dan bagian client server yang dapat melakukan kompresi dan 1 BAB IV IMPLEMENTASI DAN PENGUJIAN 4.1 Implementasi Program Program kompresi data ini terdiri dari beberapa bagian. Bagian kompresi, bagian dekompresi dan bagian client server yang dapat melakukan kompresi

Lebih terperinci

Tutorial, Source code, Request Program Visual Basic

Tutorial, Source code, Request Program Visual Basic Tutorial, Source code, Request Program Visual Basic Oleh : Moh. A Azis Membuat Form Transaksi Barang Keluar Program Persediaan Barang Form barang keluar digunakan untuk melakukan transaksi penginputan

Lebih terperinci

BAB 2 LANDASAN TEORI Kriptografi

BAB 2 LANDASAN TEORI Kriptografi 14 BAB 2 LANDASAN TEORI 2.1. Kriptografi Kriptografi memiliki sejarah yang sangat panjang di mana kriptografi telah ditemukan sejak 3600 tahun yang lalu di lihat dari sudah di temukannya simbol - simbol

Lebih terperinci

Algoritma Cipher Block EZPZ

Algoritma Cipher Block EZPZ Algoritma Cipher Block EZPZ easy to code hard to break Muhammad Visat Sutarno (13513037) Program Studi Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung Jl. Ganesha 10 Bandung

Lebih terperinci

Pertemuan III MENYIMPAN REKAMAN (RECORD) KE DALAM BASIS DATA

Pertemuan III MENYIMPAN REKAMAN (RECORD) KE DALAM BASIS DATA Pertemuan III MENYIMPAN REKAMAN (RECORD) KE DALAM BASIS DATA A. MAKSUD DAN TUJUAN 1. MAKSUD Memahami cara menyimpan data ke dalam basis data dengan kode program 2. TUJUAN Mahasiswa mampu membuat program

Lebih terperinci

1.1 Mengenal Visual Basic (VB) 1.2 Mengenal Integrated Development Environment (IDE) VB 6

1.1 Mengenal Visual Basic (VB) 1.2 Mengenal Integrated Development Environment (IDE) VB 6 1.1 Mengenal Visual Basic (VB) Visual Basic adalah salah satu bahasa pemrograman komputer. Bahasa pemrograman adalah perintahperintah yang dimengerti oleh komputer untuk melakukan tugas-tugas tertentu.

Lebih terperinci

OZ: Algoritma Cipher Blok Kombinasi Lai-Massey dengan Fungsi Hash MD5

OZ: Algoritma Cipher Blok Kombinasi Lai-Massey dengan Fungsi Hash MD5 OZ: Algoritma Cipher Blok Kombinasi Lai-Massey dengan Fungsi Hash MD5 Fahziar Riesad Wutono Teknik Informatika Institut Teknologi Bandung Bandung, Indonesia fahziar@gmail.com Ahmad Zaky Teknik Informatika

Lebih terperinci

BAB III ANALISIS SISTEM

BAB III ANALISIS SISTEM BAB III ANALISIS SISTEM Analisis merupakan kegiatan berfikir untuk menguraikan suatu pokok menjadi bagian-bagian atau komponen sehingga dapat diketahui cirri atau tanda tiap bagian, kemudian hubungan satu

Lebih terperinci

Praktekum VB 6.0 I. KOTAK PESAN. Contoh syntax kotak pesan

Praktekum VB 6.0 I. KOTAK PESAN. Contoh syntax kotak pesan Praktekum VB 6.0 Oleh : Bohal K. Simorangkir, S.Kom STMIK Parna Raya, Manado ========================== I. KOTAK PESAN Contoh syntax kotak pesan Private Sub Command2_Click() Dim pesan As String pesan =

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1. Kriptografi 2.1.1. Definisi Kriptografi Kriptografi (Cryptography) merupakan ilmu dan seni penyimpanan pesan, data, atau informasi secara aman. Kriptografi berasal dari bahasa

Lebih terperinci

Program Enkripsi & Dekripsi sederhana menggunakan Visual Basic 6.0

Program Enkripsi & Dekripsi sederhana menggunakan Visual Basic 6.0 Program Enkripsi & Dekripsi sederhana menggunakan Visual Basic 6.0 Eko Riduwan eko@ekoriduwan.com http://blog.ekoriduwan.com Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi

Lebih terperinci

Penggunaan Timing Attack Sebagai Salah Satu Jenis Serangan pada Kriptografi

Penggunaan Timing Attack Sebagai Salah Satu Jenis Serangan pada Kriptografi Penggunaan Timing Attack Sebagai Salah Satu Jenis Serangan pada Kriptografi Widhi Ariandoko - 13508109 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung,

Lebih terperinci

DASAR PEMOGRAMAN JAVA

DASAR PEMOGRAMAN JAVA DASAR PEMOGRAMAN JAVA Pertemuan ke-2 Oleh: Winda Aprianti Tipe Data Bilangan Karakter Kata atau Kalimat Boolean Literal merepresentasikan nilai suatu tipe, dimana tipe itu sendiri menjelaskan bagaimana

Lebih terperinci

KARTU BIMBINGAN TUGAS AKHIR MAHASISWA

KARTU BIMBINGAN TUGAS AKHIR MAHASISWA KEMENTERIAN PENDIDIKAN NASIONAL UNIVERSITAS SUMATERA UTARA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM PROGRAM STUDI D.III TEKNIK INFORMATIKA Jl. Bioteknologi No. 1 Kampus USU MEDAN Telp/FAX. 061-8214290

Lebih terperinci

Private Sub cmdprint_click() WebBrowser1.ExecWB OLECMDID_PRINT,OLECMDEXECOPT_DODEFAULT End Sub

Private Sub cmdprint_click() WebBrowser1.ExecWB OLECMDID_PRINT,OLECMDEXECOPT_DODEFAULT End Sub Lampiran 1 Form Utama Aplikasi Web Browser Dim counter As Integer Private Sub cmdback_click() WebBrowser1.GoBack Private Sub cmdbuka_click() CommonDialog1.CancelError = True On Error GoTo Cancel CommonDialog1.Filter

Lebih terperinci

LISTING PROGRAM. Private Sub MDIParent1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

LISTING PROGRAM. Private Sub MDIParent1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load A-1 LISTING PROGRAM TAMPILAN UTAMA Public Class FormUtama Public lokasilsb As String Public lokasi2lsb As String Public besarfilelsb As Long Public besarfile2lsb As Long Public lokasieof As String Public

Lebih terperinci

2.0 PERWAKILAN DATA PROGRAM LATIHAN GURU ASAS SAINS KOMPUTER TINGKATAN 1 BAHAGIAN PENDIDIKAN GURU KEMENTERIAN PENDIDIKAN MALAYSIA.

2.0 PERWAKILAN DATA PROGRAM LATIHAN GURU ASAS SAINS KOMPUTER TINGKATAN 1 BAHAGIAN PENDIDIKAN GURU KEMENTERIAN PENDIDIKAN MALAYSIA. PROGRAM LATIHAN GURU ASAS SAINS KOMPUTER TINGKATAN 1 BAHAGIAN PENDIDIKAN GURU KEMENTERIAN PENDIDIKAN MALAYSIA Tajuk Topik 2.0 PERWAKILAN DATA 2.1 SISTEM NOMBOR PERDUAAN A. Objektif Pada akhir sesi ini,

Lebih terperinci

Dasar Pemrograman Java

Dasar Pemrograman Java Dasar Pemrograman Java Topik: Membedakan antara valid dan invalid identifiers. Mengetahui Java technology keywords. Mengetahui 8 tipe data primitif. Mendefinisikan literal value untuk tipe data numerik

Lebih terperinci

Keterangan : Integer Long : tipe data untuk angka bulat Single, Double : tipe data untuk angka pecahan/desimal Currency : tipe data untuk angka mata

Keterangan : Integer Long : tipe data untuk angka bulat Single, Double : tipe data untuk angka pecahan/desimal Currency : tipe data untuk angka mata TIPE DATA, VARIABEL DAN KONSTANTA, OPERATOR DAN KONTROL PROGRAM Minggu ke-3 Tipe Data dalam Visual Basic Microsoft Visual Basic menyediakan beberapa tipe data seperti Integer, Long, Single, Double, Currency,

Lebih terperinci

Standard IEEE 754 & Big Endian Litle Endian

Standard IEEE 754 & Big Endian Litle Endian Standard IEEE 754 & Big Endian Litle Endian Disusun oleh: Tim dosen SLD Diedit ulang oleh: Endro Ariyanto Prodi S1 Teknik Informatika Fakultas Informatika Universitas Telkom September 2015 Floating Point

Lebih terperinci

Teori Algoritma TIPE DATA

Teori Algoritma TIPE DATA Alam Santosa Teori Algoritma Dasar Algoritma TIPE DATA Program komputer adalah deretan perintah untuk memanipulasi data input menjadi informasi yang bermanfaat bagi pengguna (user). Data yang diinput dapat

Lebih terperinci

Listing Program. 1. Loading. 2. Home. Option Explicit. Dim isplash As Integer. Private Sub Timer1_Timer() On Error Resume Next. isplash = isplash + 5

Listing Program. 1. Loading. 2. Home. Option Explicit. Dim isplash As Integer. Private Sub Timer1_Timer() On Error Resume Next. isplash = isplash + 5 Listing Program 1. Loading Option Explicit Dim isplash As Integer Private Sub Timer1_Timer() On Error Resume Next isplash = isplash + 5 ProgressBar1.Value = ProgressBar1.Value + 400 / 400 If isplash >

Lebih terperinci

Gambar 1 Table Petugas. Gambar 2 Penambahan Komonen Pada Form

Gambar 1 Table Petugas. Gambar 2 Penambahan Komonen Pada Form A. Pembutan input data petugas 1) Membuat table petugas Buat table dengan nama Tpetugas buat isi table seperti gambar di bawah ini Field name Data type Field size Index kd_ptgs Text 4 Primary key nama

Lebih terperinci

PROSEDUR & PARAMETER PROSEDUR

PROSEDUR & PARAMETER PROSEDUR PROSEDUR & PARAMETER PROSEDUR Prosedur - Merupakan sekumpulan statement yang dibungkus menjadi satu untuk melakukan suatu tugas tertentu - Merupakan sebuah blok program yang didalamnya, dapat dituliskan

Lebih terperinci

Algoritma Pemrograman 2 B

Algoritma Pemrograman 2 B Algoritma Pemrograman 2 B Dr. Lily Wulandari Minggu 3 TIPE DATA, VARIABEL DAN KONSTANTA, OPERATOR DAN KONTROL PROGRAM 1 Tipe Data dalam Visual Basic Microsoft Visual Basic menyediakan beberapab tipe data

Lebih terperinci

DAFTAR PUSTAKA. Multimedia Control, Steven Holzner. Diakses pada tanggal 14/09/2011 Dari

DAFTAR PUSTAKA. Multimedia Control, Steven Holzner. Diakses pada tanggal 14/09/2011 Dari DAFTAR PUSTAKA CommonDialog Control, 2011.Visual Basic 6.0. Diakses pada tanggal 14/09/2011 http://msdn.microsoft.com/en-us/library/aa259661%28v=vs.60%29.aspx Forrest Moon Production, 2010. The Birth Of

Lebih terperinci

BAB III PERENCANAAN DAN REALISASI

BAB III PERENCANAAN DAN REALISASI BAB III PERENCANAAN DAN REALISASI 3.1 Deskripsi Sistem Nama Sistem :Simulasi Monitoring Downtime Mesin Dengan Visual Basic 6.0 Fungsi :Pencatatan Downtime Mesin. Keunggulan : Mencatat Downtime Mesin Secara

Lebih terperinci

Tujuan Instruksional. Mahasiswa mampu :

Tujuan Instruksional. Mahasiswa mampu : Tujuan Instruksional Mahasiswa mampu : Mengulang dan mengingatkan kembali tentang Dasar Pemrograman Mengigatkan kembali pemahaman tentang Flow Control, Looping, dll Penting!! Kehadiran kurang dari 80%

Lebih terperinci

Modifikasi Blok Cipher

Modifikasi Blok Cipher Modifikasi Blok Cipher TriTOLE Cipher Ivan Andrianto Teknik Informatika / Sekolah Tinggi Elektro dan Informatika Institut Teknologi Bandung Bandung, Indonesia andrianto.ivan@gmail.com Wilhelmus Andrian

Lebih terperinci

BAHASA PEMROGRAMAN C

BAHASA PEMROGRAMAN C BAHASA PEMROGRAMAN C A. Pengenalan Bahasa C diciptakan oleh Dennis Ritchie tahun 1972 di Bell Laboratories. Kelebihan Bahasa C: - Bahasa C tersedia hampir di semua jenis computer. - Kode bahasa C sifatnya

Lebih terperinci

Blox: Algoritma Block Cipher

Blox: Algoritma Block Cipher Blox: Algoritma Block Cipher Fikri Aulia(13513050) Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, 13513050@std.stei.itb.ac.id

Lebih terperinci

SCROLL BAR, PROGRESS BAR, MESSAGE BOX, DAN INPUT BOX SCROLL BAR

SCROLL BAR, PROGRESS BAR, MESSAGE BOX, DAN INPUT BOX SCROLL BAR SCROLL BAR, PROGRESS BAR, MESSAGE BOX, DAN INPUT BOX SCROLL BAR Scroll Bar Merupakan kontrol penggulung Ada dua macam tipe: Vertical scroll bar Terletak disisi tegak suatu jendela Horizontal scroll bar

Lebih terperinci

Imam Fahrur Rozi. Algoritma dan Pemrograman. Pengantar C++

Imam Fahrur Rozi. Algoritma dan Pemrograman. Pengantar C++ Imam Fahrur Rozi Algoritma dan Pemrograman Pengantar C++ LEARNING OUTCOME : 1. MEMAHAMI STRUKTUR DASAR PEMROGRAMAN C++ 2. MEMAHAMI SINTAKS OUTPUT 3. MEMAHAMI PREPROCESSOR DIRECTIVE 4. MEMAHAMI FUNGSI MAIN

Lebih terperinci

Struktur kontrol terbagi dalam dua jenis yaitu : Struktur pengambilan keputusan Struktur pengulangan (Loooping)

Struktur kontrol terbagi dalam dua jenis yaitu : Struktur pengambilan keputusan Struktur pengulangan (Loooping) BAB III STRUKTUR KONTROL Struktur kontrol yang dimiliki oleh visual basic hampir sama dengan bahasa pemograman lainnya. Struktur kontrol merupakan pengaturan aliran program, berbentuk rangkaian perintah

Lebih terperinci

Copyright by : ipi-leppindo jambi all reserved 2014 (japikinfo.com)

Copyright by : ipi-leppindo jambi all reserved 2014 (japikinfo.com) 1 FORM DATA BARANG Dim Db As Database Dim RsBarang As Recordset Sub Koneksi() 'Koneksi Database Set Db = OpenDatabase("Tentukan Lokasi Database\Barang.mdb") Set RsBarang = Db.OpenRecordset("Table_Stok")

Lebih terperinci

PRAKTIKUM 4 ARRAY DAN SUB ROUTINE

PRAKTIKUM 4 ARRAY DAN SUB ROUTINE PRAKTIKUM 4 ARRAY DAN SUB ROUTINE I. TUJUAN Tujuan praktikum 4 adalah mahasiswa bisa membuat program yang menggunakan variabel arrray dan menyusun program terstruktur yang terbagi dalam beberapa sub routine

Lebih terperinci

Me.Picture = LoadPicture(App.Path & "\pakar.jpg") App.HelpFile = App.Path & "\Help.hlp" End Sub

Me.Picture = LoadPicture(App.Path & \pakar.jpg) App.HelpFile = App.Path & \Help.hlp End Sub LISTING PROGRAM Form Utama Option Explicit Private Sub MDIForm_Load() Me.imgIkon.ListImages.Remove "Pengetahuan" Me.imgIkon.ListImages.Remove "Penelusuran" Me.imgIkon.ListImages.Remove "Penjelasan" Me.imgIkon.ListImages.Clear

Lebih terperinci

FPGA DAN VHDL TEORI, ANTARMUKA DAN APLIKASI

FPGA DAN VHDL TEORI, ANTARMUKA DAN APLIKASI FPGA DAN VHDL TEORI, ANTARMUKA DAN APLIKASI Chapter 1 Prinsip-Prinsip Sistem Digital Ferry Wahyu Wibowo Outlines Sistem digital Persamaan dan perbedaan elektronika analog dan elektronika digital Sistem

Lebih terperinci

Set Instruksi. Set Instruksi. Set Instruksi adalah kumpulan

Set Instruksi. Set Instruksi. Set Instruksi adalah kumpulan Bab 10 Disusun Oleh : Rini Agustina, S.Kom, M.Pd Definisi: lengkap instruksi yang dapat adalah kumpulan dimengerti CPU Sifat2: 1. Merupakan Kode Mesin 2. Dinyatakan dalam Biner 3.Biasanya digunakan dalam

Lebih terperinci

OPERATOR-OPERATOR DALAM JAVA

OPERATOR-OPERATOR DALAM JAVA OPERATOR-OPERATOR DALAM JAVA Obyektif : 1. Memahami tentang operator-operator (aritmatic, logical, relational, assigment, bitwise) 2. Dapat membuat program sederhana dengan menggunakan operatoroperator

Lebih terperinci

BAB 3 ANALISIS DAN PERANCANGAN

BAB 3 ANALISIS DAN PERANCANGAN BAB 3 ANALISIS DAN PERANCANGAN 3.1.Analisis Sistem Pengertian dari analisis sistem (systems analysis) adalah tahap pertama dari pengembangan sistem yang menjadi fondasi menentukan keberhasilan sistem informasi

Lebih terperinci

FILE URUT (Sequential File)

FILE URUT (Sequential File) FILE URUT (Sequential File) 1. PENDAHULUAN Organisasi file secara urut memungkinkan pengaksesan record di file secara berurutan Ada 2 macam organisasi file secara urut : 1. Bentuk organisasi SEQUENTIAL

Lebih terperinci

Basic Programing Visual Basic

Basic Programing Visual Basic Basic Programing Visual Basic Oleh : Aririk Japik, 1 Mengenal Visual Basic Visual Basic adalah salah satu bahasa pemrograman komputer. Bahasa pemrograman adalah perintahperintah yang dimengerti oleh komputer

Lebih terperinci

MODUL D :// Mahasiswa memahami konsep pembuatan database. Mahasiswa memahami konsep pembuatan program dasar aplikasi database

MODUL D :// Mahasiswa memahami konsep pembuatan database. Mahasiswa memahami konsep pembuatan program dasar aplikasi database MODUL D :// Mahasiswa memahami konsep pembuatan database. Mahasiswa memahami konsep pembuatan program dasar aplikasi database I. Membuat DataBase 1. Buatlah database di Access ->Pilih Blank Access Database

Lebih terperinci

PHP mendukung komentar yang digunakan pada C, C++ dan Shell Unix. Sebagai contoh:

PHP mendukung komentar yang digunakan pada C, C++ dan Shell Unix. Sebagai contoh: Perintah Dasar Tag PHP Ketika PHP membaca suatu file, proses akan berlangsung hingga ditemukan tag khusus yang berfungsi sebagai tanda dimulainya interpretasi teks tersebut sebagai kode PHP. PHP akan menjalankan

Lebih terperinci

MODUL 2 Variabel, Val, If tunggal dan If bersarang + case

MODUL 2 Variabel, Val, If tunggal dan If bersarang + case MODUL 2 Variabel, Val, If tunggal dan If bersarang + case 1. variabel suatu tempat dalam memori yang diberi nama (sebagai pengenal) dan dialokasikan untuk menampung data. Sintax : Dim_namavariabel_As_typedata

Lebih terperinci

1. Kompetensi Memahami berbagai teknologi pemrograman basis data, khususnya MySQL, pada Visual Basic 6.0.

1. Kompetensi Memahami berbagai teknologi pemrograman basis data, khususnya MySQL, pada Visual Basic 6.0. No. : LST/PTI/PTI 8/0 Revisi : 0 Tgl. : 5-3-009 Hal. dari 3 hal.. Kompetensi Memahami berbagai teknologi pemrograman basis data, khususnya MySQL, pada Visual Basic 6.0.. Sub Kompetensi Dapat mengakses

Lebih terperinci

VARIABEL & TIPE DATA PEMROGRAMAN C++

VARIABEL & TIPE DATA PEMROGRAMAN C++ VARIABEL & TIPE DATA PEMROGRAMAN C++ ruliriki@gmail.com VARIABEL Suatu nama yang menyatakan tempat dalam memori komputer Menyimpan nilai yang dapat diubah VARIABEL Pengenal (identifier) yang digunakan

Lebih terperinci

Mobile Programming. Python Script SL4A & Basic Python Script

Mobile Programming. Python Script SL4A & Basic Python Script Mobile Programming Python Script SL4A & Basic Python Script Tentang SL4A SL4A (The Scripting Layer for Android) : Aplikasi open source yang memungkinkan bahasa pemrograman intepreter dapat berjalan di

Lebih terperinci

BAB IV PERANCANGAN. Gambar diatas adalah tampilang awal ketika ingin memulai project baru. Pilih Standart EXE untuk memulai project.

BAB IV PERANCANGAN. Gambar diatas adalah tampilang awal ketika ingin memulai project baru. Pilih Standart EXE untuk memulai project. BAB IV PERANCANGAN 4.1 Perancangan Visual Basic 6.0 Dalam perancangan aplikasi perancangan data menggunakan visual basic 6.0 langkah pertama adalah dengan membuat Form Home Gambar 4.1 New Project Gambar

Lebih terperinci

FORM LOGIN. Option Explicit. Private Sub cmdexit_click() End End Sub

FORM LOGIN. Option Explicit. Private Sub cmdexit_click() End End Sub 1 FORM LOGIN Option Explicit Private Sub cmdexit_click() End Private Sub cmdlogin_click() On Error GoTo handleerror If (txtnama = "") Then MsgBox "Nama user harus diisi terlebih dahulu",, "Perhatian" txtnama.setfocus

Lebih terperinci