Analisis Perbandingan Kompresi Citra Mengunakan Algoritma Transformasi Walsh-Hadamard Dengan Run Length Encoding (RLE)
LISTING PROGRAM
Form 1 Imports System.Math Public Class Form1 Dim status, status1, info As Boolean Dim nilai() As Byte Dim posisi() As String Dim ulang As Decimal Dim j, k, n As Decimal Dim nilai1() As Byte Dim worker As System.ComponentModel.BackgroundWorker Dim persen, panjang As Long Dim waktu As Long Dim objFSO As Scripting.FileSystemObject Dim objFile As Scripting.File Public Structure Walsh1 Public NWalsh As Long End Structure Public Structure Walsh2 Public NWalsh2 As Long End Structure Public Structure WKonversi Public NKonversi As String End Structure Public LWalsh1 As List(Of Walsh1) Public LWalsh2 As List(Of Walsh2) Public LKonversi As List(Of WKonversi) Private Sub Decompress_Walsh_Hadamard() Dim konversi As String Dim konversi1 As Double Dim konversi2 As Integer Dim hasil, hasil1 As Long Dim pangkat1, pangkat2 As Integer Dim g(,) As Decimal Dim W As Long Dim W1 As Long Dim LDWalsh As Walsh Dim LDWalsh As Walsh Dim LDKonversi As WKonversi Dim MWaktu1, Swaktu, Mwaktu, Swaktu2 As String LWalsh = New List(Of Walsh) LWalsh = New List(Of Walsh) LKonversi = New List(Of WKonversi) MWaktu = Minute(TimeOfDay) Swaktu = Second(TimeOfDay) n = Ceiling(Sqrt(panjang)) ReDim nilai1(panjang) konversi = ""
For i = 0 To panjang - 54 - 1 konversi1 = i For l = 1 To n konversi2 = konversi1 Mod 2 konversi1 = Floor(konversi1 / 2) 'konversi(i) = konversi(i) & konversi2 konversi = konversi & konversi2 Next LDKonversi.NKonversi = konversi LKonversi.Add(LDKonversi) konversi = "" persen = (i / panjang) * 100 'BackgroundWorker1.ReportProgress(persen) 'RichTextBox5.Text = RichTextBox5.Text & LDKonversi.NKonversi & vbCrLf 'Application.DoEvents() Next konversi1 = 1 For i = 0 To panjang - 54 - 1 For l = 0 To panjang - 54 - 1 hasil = 0 'hasil = -1 'hasil1 = -1 For m = 1 To n pangkat1 = Val(Mid(LKonversi.Item(i).NKonversi, m, 1)) 'pangkat2 = Val(Mid(LKonversi.Item(l).NKonversi, k, 1)) pangkat2 = Val(Mid(LKonversi.Item(l).NKonversi, m, 1)) 'hasil = hasil * hasil1 ^ (pangkat1 * pangkat2) hasil = hasil + (pangkat1 * pangkat2) 'k -= 1 Next hasil1 = (-1) ^ hasil LDWalsh.NWalsh = hasil LWalsh1.Add(LDWalsh) 'RichTextBox4.Text = RichTextBox4.Text & LDWalsh.NWalsh & vbTab Next 'RichTextBox4.Text = RichTextBox4.Text & vbCrLf Next k = 0 j = 0 For i = 0 To panjang - 1 If i <= 54 Then LDWalsh2.NWalsh2 = nilai(i) LWalsh2.Add(LDWalsh2) nilai1(j) = nilai(i) j += 1 ElseIf i > ulang Then LDWalsh2.NWalsh2 = 0 LWalsh2.Add(LDWalsh2) nilai1(j) = 0 j += 1 Else W1 = 0
For m = 55 To ulang - 1 'W1 = W1 + (nilai(m) * (g(i, m))) W1 = W1 + (nilai(m) * LWalsh1.Item(k).NWalsh) k += 1 Next W = Round(W1 / panjang) LDWalsh.NWalsh = W LWalsh.Add(LDWalsh) If W > 255 Then W = 255 End If nilai1(j) = W j += 1 'If W < 0 Then ' nilai1(j) = 0 ' j += 1 ' nilai1(j) = Abs(W) ' j += 1 'ElseIf W > 0 And W <> 0 And i < ulang - 1 Then ' nilai1(j) = W ' j += 1 'Else ' nilai1(j) = W End If 'RichTextBox6.Text = RichTextBox6.Text & W & vbCrLf Next Mwaktu2 = Minute(TimeOfDay) Swaktu2 = Second(TimeOfDay) MWaktu1 = Abs(Val(MWaktu1) - Val(Mwaktu2)) * 60 Swaktu1 = Abs(Val(Swaktu1) - Val(Swaktu2)) waktu = Val(MWaktu1) + Val(Swaktu1) End Sub Private Sub Compress_Walsh_Hadamard() Dim konversi As String Dim konversi1 As Double Dim konversi2 As Integer Dim hasil, hasil1 As Long Dim pangkat1, pangkat2 As Integer Dim g(,) As Decimal Dim W As Long Dim W1 As Long Dim LDWalsh As Walsh Dim LDWalsh2 As Walsh Dim LDKonversi As WKonversi Dim MWaktu, Swaktu, Mwaktu, Swaktu As String LWalsh = New List(Of Walsh) LWalsh = New List(Of Walsh) LKonversi = New List(Of WKonversi) panjang = ulang MWaktu1 = Minute(TimeOfDay) Swaktu1 = Second(TimeOfDay) n = Ceiling(Sqrt(ulang))
ReDim nilai1(ulang) konversi = "" For i = 0 To ulang - 54 - 1 konversi1 = i For l = 1 To n konversi2 = konversi1 Mod 2 konversi1 = Floor(konversi1 / 2) 'konversi(i) = konversi(i) & konversi2 konversi = konversi & konversi2 Next LDKonversi.NKonversi = konversi LKonversi.Add(LDKonversi) konversi = "" persen = (i / ulang) * 100 BackgroundWorker1.ReportProgress(persen) 'RichTextBox5.Text = RichTextBox5.Text & LDKonversi.NKonversi & vbCrLf 'Application.DoEvents() Next konversi1 = 1 For i = 0 To ulang - 54 - 1 For l = 0 To ulang - 54 - 1 hasil = 0 'hasil = -1 'k = n For m = 1 To n pangkat1 = Val(Mid(LKonversi.Item(i).NKonversi, m, 1)) 'pangkat2 = Val(Mid(LKonversi.Item(l).NKonversi, k, 1)) pangkat2 = Val(Mid(LKonversi.Item(l).NKonversi, m, 1)) 'hasil = hasil * hasil1 ^ (pangkat1 * pangkat2) hasil = hasil + (pangkat1 * pangkat2) 'k -= 1 Next hasil1 = (-1) ^ hasil LDWalsh.NWalsh = hasil LWalsh1.Add(LDWalsh) 'RichTextBox4.Text = RichTextBox4.Text & LDWalsh.NWalsh & vbTab Next 'RichTextBox4.Text = RichTextBox4.Text & vbCrLf Next k = 0 j = 0 For i = 0 To ulang - 1 If i <= 54 Then LDWalsh2.NWalsh2 = nilai(i) LWalsh2.Add(LDWalsh2) nilai1(j) = nilai(i) j += 1 Else W1 = 0 For m = 55 To ulang - 1 'W1 = W1 + (nilai(m) * (g(i, m))) W1 = W1 + (nilai(m) * LWalsh1.Item(k).NWalsh) k += 1
Next W = Round(W1 / ulang) LDWalsh2.NWalsh2 = W LWalsh2.Add(LDWalsh2) If W < 0 Then nilai1(j) = 0 j += 1 nilai1(j) = Abs(W) j += 1 ElseIf W > 0 And W <> 0 And i < ulang - 1 Then If W > 255 Then W = 255 End If nilai1(j) = W j += 1 Else If W > 255 Then W = 255 End If nilai1(j) = W End If End If 'RichTextBox6.Text = RichTextBox6.Text & W & vbCrLf Next Mwaktu2 = Minute(TimeOfDay) Swaktu2 = Second(TimeOfDay) MWaktu1 = Abs(Val(MWaktu1) - Val(Mwaktu2)) * 60 Swaktu1 = Abs(Val(Swaktu1) - Val(Swaktu2)) waktu = Val(MWaktu1) + Val(Swaktu1) 'Me.Cursor = Cursors.Default 'RichTextBox5.Text = RichTextBox5.Text & "N=" & ulang & vbCrLf & "n=" & n End Sub Private Sub Decompress_RLE() Dim i As Decimal Dim penampung As Decimal Dim temp(), temp1() As String Dim MWaktu1, Swaktu1, Mwaktu2, Swaktu2 As String Me.Cursor = Cursors.WaitCursor MWaktu1 = Minute(TimeOfDay) Swaktu1 = Second(TimeOfDay) k = 0 penampung = 0 ReDim temp(Len(RichTextBox3.Text)) ReDim temp1(Len(RichTextBox3.Text)) For i = 1 To Len(RichTextBox3.Text) temp(i) = Mid(RichTextBox3.Text, i, 1)
If temp(i) <> "," Then temp1(k) = temp1(k) & temp(i) Else k += 1 End If Next k = 0 j = 0 Try ReDim nilai1(ulang * ulang) Catch ex As Exception ReDim nilai1(50000000) End Try For i = 0 To ulang - 1 If i < 54 Then nilai1(j) = nilai(i) j += 1 Else If i <> Val(temp1(k)) Then nilai1(j) = nilai(i) j += 1 Else batas = 2 If Val(temp1(k + 1)) = Val(temp1(k) + 1) Then Dim temp2, m As Decimal m = 2 For ulang1 = 1 To batas If Val(temp1(k + 1)) = Val(temp1(k) + 1) Then temp2 = temp2 & nilai(Val(temp1(k))) & nilai(Val(temp1(k) + 1)) i += 1 batas += 1 k += 1 m += 2 Else For n = 1 To Val(temp2) - 1 nilai1(j) = nilai(Val(temp1(k) - 2)) If n < Val(temp2) - 1 Then j += 1 End If Next End If Next Else For n = 1 To (nilai(i)) - 1 nilai1(j) = nilai(i - 1) If n <= nilai(i) - 1 And i <> ulang - 1 Then j += 1 ElseIf n < nilai(i) - 1 Then j += 1 End If
Next k += 1 End If End If End If Next Mwaktu2 = Minute(TimeOfDay) Swaktu2 = Second(TimeOfDay) MWaktu1 = Abs(Val(MWaktu1) - Val(Mwaktu2)) * 60 Swaktu1 = Abs(Val(Swaktu1) - Val(Swaktu2)) waktu = Val(MWaktu1) + Val(Swaktu1) Label12.Text = waktu & " detik" Me.Cursor = Cursors.Default MsgBox("Proses dekompresi berhasil", MsgBoxStyle.Information, "Pesan") Dim pesan As String pesan = MsgBox("Ingin menyimpan citra hasil dekompresi?", MsgBoxStyle.YesNo, "Pesan") If pesan = vbYes Then SaveFileDialog1.FileName = "" SaveFileDialog1.Filter = "Bitmap|*.BMP;" pesan = SaveFileDialog1.ShowDialog If pesan <> vbCancel Then Dim fs As System.IO.FileStream fs = New System.IO.FileStream(SaveFileDialog1.FileName, IO.FileMode.CreateNew) fs.Write(nilai1, 0, j + 1) fs.Close() MsgBox("Data hasil dekompresi berhasil disimpan", MsgBoxStyle.Information, "Pesan") End If End If End Sub Private Sub Compress_RLE() Dim i As Decimal Dim penampung As Long Dim MWaktu1, Swaktu1, Mwaktu2, Swaktu2 As String ReDim nilai1(ulang) ReDim posisi(ulang) Me.Cursor = Cursors.WaitCursor MWaktu1 = Minute(TimeOfDay) Swaktu1 = Second(TimeOfDay) penampung = 1 j = 0 k = 0 n = 0 For i = 0 To ulang - 1 If i < 54 Then nilai1(j) = nilai(i) j += 1
Else If i <> ulang - 1 Then If nilai(i) = nilai(i + 1) Then penampung += 1 Else If i <> 0 Then If nilai(i) <> nilai(i - 1) Then nilai1(j) = nilai(i) j += 1 penampung = 1 Else nilai1(j) = nilai(i) j += 1 If penampung > 255 Then Dim n, panjang As Long panjang = Val(penampung.ToString.Length) For n = 1 To panjang If panjang Mod 2 = 0 Then nilai1(j) = Val(Mid(penampung, n, 2)) posisi(k) = j & "," k += 1 j += 1 Else If n < panjang Then nilai1(j) = Val(Mid(penampung, n, 2)) posisi(k) = j & "," k += 1 j += 1 n += 1 Else nilai1(j) = Val(Mid(penampung, n, 1)) posisi(k) = j & "," k += 1 j += 1 End If End If Next Else nilai1(j) = penampung posisi(k) = j & "," k += 1 j += 1 End If penampung = 1 End If Else nilai1(j) = nilai(i) j += 1 penampung = 1 End If End If Else If penampung <> 1 Then nilai1(j) = nilai(i) j += 1 Val(Mid(penampung, n, 2)) posisi(k) = j & "," k += 1 j += 1 n += 1 Else nilai1(j) = Val(Mid(penampung, n, 1)) posisi(k) = j & "," k += 1 If i < ulang - 1 Then j += 1 End If End If End If Next Else nilai1(j) = penampung posisi(k) = j & "," k += 1 End If Else nilai1(j) = nilai(i) penampung = 1 End If End If End If Next Dim posisi1 As String posisi1 = String.Empty For i = 0 To k - 1 posisi1 = posisi1 & posisi(i) Windows.Forms.Application.DoEvents() Next Mwaktu2 = Minute(TimeOfDay) Swaktu2 = Second(TimeOfDay) MWaktu1 = Abs(Val(MWaktu1) - Val(Mwaktu2)) * 60 Swaktu1 = Abs(Val(Swaktu1) - Val(Swaktu2)) waktu = Val(MWaktu1) + Val(Swaktu1) Label12.Text = waktu & " detik" Me.Cursor = Cursors.Default MsgBox("File berhasil dikompress", MsgBoxStyle.Information, "Pesan") Dim pesan As String pesan = MsgBox("Ingin menyimpan hasil kompresi?", MsgBoxStyle.YesNo, "Pesan") If pesan = vbYes Then SaveFileDialog1.Title = "Simpan file hasil kompres"
SaveFileDialog1.FileName = "" SaveFileDialog1.Filter = "Run Length Encoding|*.RLE;" pesan = SaveFileDialog1.ShowDialog If pesan <> vbCancel Then Dim fs As System.IO.FileStream fs = New System.IO.FileStream(SaveFileDialog1.FileName, IO.FileMode.CreateNew) fs.Write(nilai1, 0, j + 1) fs.Close() Dim karakter, karakter1, karakter2 As String Dim u, v As Integer karakter1 = "" v = 0 For u = SaveFileDialog1.FileName.Length To 1 Step -1 karakter = Mid(SaveFileDialog1.FileName, u, 1) If karakter <> "\" Then karakter1 = karakter1 & karakter v += 1 Else Exit For End If Next For u = v To 1 Step -1 karakter = Mid(karakter1, u, 1) karakter2 = karakter2 & karakter Next Dim file As Integer = FreeFile() FileOpen(file, "C:\Windows\Temp\" & karakter2 & ".txt", OpenMode.Output) PrintLine(file, posisi1) FileClose(file) Label5.Text = "0 Bytes" objFSO = New Scripting.FileSystemObject objFile = objFSO.GetFile(SaveFileDialog1.FileName) Label5.Text = objFile.Size & " Bytes" Dim rasio1, rasio2 As Long Dim rasio As Double rasio1 = Val(Mid(Label4.Text, 1, Val(Label4.Text.Length - 6))) rasio2 = Val(Mid(Label5.Text, 1, Val(Label5.Text.Length - 6))) rasio = ((rasio1 - rasio2) / rasio1) Label11.Text = FormatPercent(rasio, 2) MsgBox("Data hasil kompres berhasil disimpan", MsgBoxStyle.Information, "Pesan") End If End If End Sub Private Sub Info_File() 'Melihat informasi heksadesimal RichTextBox1.Text = String.Empty
RichTextBox2.Text = String.Empty RichTextBox3.Text = String.Empty If OpenFileDialog1.FileName = "OpenFileDialog1" Then Exit Sub End If Me.Cursor = Cursors.WaitCursor Dim i As Long For i = 0 To ulang - 1 RichTextBox1.Text = RichTextBox1.Text & nilai(i) & "," Windows.Forms.Application.DoEvents() Next 'Melihat hasil kompresi If RLE.Checked = True Then For i = 0 To j On Error Resume Next RichTextBox2.Text = RichTextBox2.Text & nilai1(i) & "," Windows.Forms.Application.DoEvents() Next For i = 0 To k - 1 Windows.Forms.Application.DoEvents() Next Else For i = 0 To ulang - 1 On Error Resume Next RichTextBox2.Text = RichTextBox2.Text & LWalsh2.Item(i).NWalsh2 & "," Next End If Me.Cursor = Cursors.Default End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load RLE.Checked = True status = True status1 = True End Sub Private Sub cmdCompress_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCompress.Click If RLE.Checked = True Then Compress_RLE() Else 'Compress_Walsh_Hadamard() Me.Cursor = Cursors.WaitCursor BackgroundWorker1.RunWorkerAsync() End If End Sub Private Sub cmdBrowse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdBrowse.Click Dim pesan As String
Dim i As Decimal RichTextBox1.Text = String.Empty RichTextBox2.Text = String.Empty RichTextBox3.Text = String.Empty Label4.Text = "0 Bytes" Label5.Text = "0 Bytes" Label11.Text = "0 %" Label12.Text = "0 detik" OpenFileDialog1.FileName = "" OpenFileDialog1.Title = "Ambil File Citra Berformat BMP" 'OpenFileDialog1.Filter = "Format BMP|*.BMP;" pesan = OpenFileDialog1.ShowDialog() TextBox1.Text = OpenFileDialog1.FileName If pesan <> vbCancel Then RichTextBox1.Text = String.Empty RichTextBox2.Text = String.Empty Dim fs As System.IO.FileStream fs = New System.IO.FileStream(OpenFileDialog1.FileName,
IO.FileMode.Open) Dim tData() As Byte ReDim tData(fs.Length - 1) ulang = tData.Length fs.Read(tData, 0, fs.Length) For i = 0 To tData.Length - 1 nilai(i) = tData(i) Next Dim E1 As String E1 = Mid(OpenFileDialog1.FileName, Len(OpenFileDialog1.FileName) - 3) If E1 = ".RLE" Then RLE.Checked = True Dim karakter, karakter1, karakter2 As String Dim u, v As Integer karakter1 = "" v = 0 For u = OpenFileDialog1.FileName.Length To 1 Step -1 karakter = Mid(OpenFileDialog1.FileName, u, 1) If karakter <> "\" Then karakter1 = karakter1 & karakter v += 1 Else Exit For End If Next karakter2 = "" For u = v To 1 Step -1 karakter = Mid(karakter1, u, 1) karakter2 = karakter2 & karakter Next Dim file As Integer = FreeFile() FileOpen(file, "C:\Windows\Temp\" & karakter2 & ".txt", OpenMode.Input)
RichTextBox3.Text = InputString(file, LOF(file)) FileClose(file) cmdCompress.Enabled = False cmdDecompress.Enabled = True ElseIf E1 = ".WHD" Then Walsh.Checked = True Dim karakter, karakter1, karakter2 As String Dim u, v As Integer karakter1 = "" v = 0 For u = OpenFileDialog1.FileName.Length - 3 To 1 Step
- 1 karakter = Mid(OpenFileDialog1.FileName, u, 1) If karakter <> "\" Then karakter1 = karakter1 & karakter v += 1 Else Exit For End If Next karakter2 = "" karakter = Mid(karakter1, u, 1) karakter2 = karakter2 & karakter Next Dim file As Integer = FreeFile() FileOpen(file, "C:\Windows\Temp\" & karakter2 & ".txt1", OpenMode.Input)
RichTextBox3.Text = InputString(file, LOF(file)) FileClose(file) panjang = Val(RichTextBox3.Text) cmdCompress.Enabled = False cmdDecompress.Enabled = True Else cmdCompress.Enabled = True cmdDecompress.Enabled = False End If objFSO = New Scripting.FileSystemObject objFile = objFSO.GetFile(OpenFileDialog1.FileName) Label4.Text = objFile.Size & " Bytes" MsgBox("File citra berhasil dibaca", MsgBoxStyle.Information, "Pesan") Else If Me.Size.Height <= 273 Then status = True Exit Sub End If Me.Height -= 10 End If End Sub Private Sub FileInfoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FileInfoToolStripMenuItem.Click cmdInfo.PerformClick()
End Sub Private Sub cmdInfo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdInfo.Click Info_File() End Sub Private Sub cmdDecompress_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdDecompress.Click If RLE.Checked = True Then Decompress_RLE() Else Me.Cursor = Cursors.WaitCursor BackgroundWorker2.RunWorkerAsync() End If End Sub Private Sub BackgroundWorker1_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork Compress_Walsh_Hadamard() End Sub Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As Handles BackgroundWorker1.RunWorkerCompleted Dim pesan As String Label12.Text = waktu & " detik" Me.Cursor = Cursors.Default pesan = MsgBox("Simpan hasil kompresi walsh-hadamard", MsgBoxStyle.YesNo, "Pesan") If pesan = vbYes Then 'For i = 0 To ulang - 1 ' RichTextBox6.Text = RichTextBox6.Text & LWalsh2.Item(i).NWalsh2 & "," 'Next SaveFileDialog1.Title = "Simpan file hasil kompresi" SaveFileDialog1.FileName = "" SaveFileDialog1.Filter = "Walsh-Hadamard|*.WHD;" pesan = SaveFileDialog1.ShowDialog Dim fs As System.IO.FileStream fs = New System.IO.FileStream(SaveFileDialog1.FileName,
IO.FileMode.CreateNew) fs.Write(nilai1, 0, j) fs.Close() Dim karakter, karakter1, karakter2 As String Dim u, v As Integer karakter1 = "" v = 0 For u = (SaveFileDialog1.FileName.Length - 3) To 1 Step -
1 karakter = Mid(SaveFileDialog1.FileName, u, 1) If karakter <> "\" Then karakter1 = karakter1 & karakter v += 1 Else Exit For End If Next karakter2 = "" For u = v To 1 Step -1 karakter = Mid(karakter1, u, 1) karakter2 = karakter2 & karakter Next rasio = ((rasio1 - rasio2) / rasio1) Label11.Text = FormatPercent(rasio, 2) MsgBox("Data hasil kompresi berhasil disimpan", MsgBoxStyle.Information, "Pesan") End If 'For i = 0 To j - 1 ' RichTextBox2.Text = RichTextBox2.Text & nilai1(i) & vbCrLf 'Next End Sub System.Object, ByVal e As System.EventArgs) Handles OpenFileToolStripMenuItem.Click cmdBrowse.PerformClick() End Sub Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click Me.Close() End Sub Private Sub cmdProfil_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdProfil.Click Form2.Show() End Sub Private Sub InfoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles InfoToolStripMenuItem.Click Form2.Show() End Sub Private Sub ComToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComToolStripMenuItem.Click cmdCompress.PerformClick() End Sub Private Sub CompressToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CompressToolStripMenuItem.Click cmdCompress.PerformClick() End Sub
Private Sub DecompressWalshHadamardToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DecompressWalshHadamardToolStripMenuItem.Click cmdDecompress.PerformClick() End Sub Private Sub DecompressRunLengthEncodingToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DecompressRunLengthEncodingToolStripMenuItem.Click cmdDecompress.PerformClick() End Sub Private Sub BackgroundWorker2_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker2.DoWork Decompress_Walsh_Hadamard() End Sub Private Sub BackgroundWorker2_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker2.RunWorkerCompleted Dim pesan As String Me.Cursor = Cursors.Default pesan = MsgBox("Simpan hasil dekompresi walsh-hadamard", MsgBoxStyle.YesNo, "Pesan") If pesan = vbYes Then 'For i = 0 To ulang - 1 ' RichTextBox6.Text = RichTextBox6.Text & LWalsh2.Item(i).NWalsh2 & "," 'Next SaveFileDialog1.Title = "Simpan file hasil dekompresi" SaveFileDialog1.FileName = "" SaveFileDialog1.Filter = "Bitmap | *.BMP;" pesan = SaveFileDialog1.ShowDialog Dim fs As System.IO.FileStream fs = New System.IO.FileStream(SaveFileDialog1.FileName,
IO.FileMode.CreateNew) fs.Write(nilai1, 0, j) fs.Close() MsgBox("Data hasil dekompresi berhasil disimpan", MsgBoxStyle.Information, "Pesan") End If End Sub Private Sub FileToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FileToolStripMenuItem.Click End Sub Private Sub CommandToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CommandToolStripMenuItem.Click
End Sub Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged End Sub Private Sub Walsh_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Walsh.CheckedChanged End Sub Private Sub RLE_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RLE.CheckedChanged End Sub Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label2.Click End Sub Private Sub Label4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label4.Click End Sub Private Sub RichTextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBox1.TextChanged End Sub Private Sub RichTextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBox2.TextChanged End Sub End Class Form 2 Public Class Form2 Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click End Sub Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click End Sub Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label2.Click End Sub
Private Sub Label3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label3.Click End Sub Private Sub Label4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label4.Click End Sub Private Sub Label5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label5.Click End Sub Private Sub Label7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label7.Click End Sub Private Sub Label6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label6.Click End Sub
CURICULUM VITAE (IDENTITAS PRIBADI)
Nama : Rachmi Handriyati Tempat/Tanggal Lahir : Medan, 29 Maret 1991 Jenis Kelamin : Wanita Kewarganegaraan : Indonesia Agama : Islam Alamat : Jl. Karya Kasih Gg. Kasih VIII No.3A Medan – 20143 Email Handphone :087868772238
PENDIDIKAN FORMAL TAHUN MASUK PENDIDIKAN DAERAH
2008 – Sekarang S-1 Ilmu Komputer USU Medan 2005 – 2008 SMA Swasta Harapan Medan Mandiri 2005 – 2002 SMP Negeri 2 Medan Medan
2002 – 1996 SD Al-Azhar Medan 1996 – 1994 TK Arafah Medan
PENDIDIKAN NON FORMAL TAHUN MASUK PENDIDIKAN DAERAH
2000-2005 Kursus Bahasa Inggris Medan YPPIA Medan Keahlian/Ketrampilan Yang diikuti
1. Design Grafis
2. Fotografi PENGALAMAN KERJA Juni 2010 – Februari 2011 : Customer Service (CS) PT. Kedai Digital Medan April 2011 – Juni 2011 : Sales Promotion Girl (SPG) Perumahan Taman Johor
PT. Surya Mas Agustus 2011 – September 2011 : Sales Promotion Girl (SPG)
PT. XL Axiata Tbk