Perbandingan Hasil Watermarking Pada Video Avi Dengan Mp4 Menggunakan Algoritma Echo Data Hiding

LISTING PROGRAM

1. Menu Utama
Imports System.Data.OleDb
Public Class frmMutama
Private Sub WatermarkingToolStripMenuItem_Click(ByVal sender As _
System.Object, ByVal e As System.EventArgs) Handles _
WatermarkingToolStripMenuItem.Click
frmMain.Show()
End Sub
Private Sub QuitToolStripMenuItem_Click(ByVal sender As _
System.Object, ByVal e As System.EventArgs) Handles _
QuitToolStripMenuItem.Click
Close()
End Sub
Private Sub frmMutama_Load(ByVal sender As _
System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Call KoneKsi()
End Sub
Private Sub AboutToolStripMenuItem_Click(ByVal sender As _
System.Object, ByVal e As System.EventArgs) Handles _

AboutToolStripMenuItem.Click
frmAbt.Show()
End Sub
Private Sub MSEDanPSNRToolStripMenuItem_Click(ByVal sender As _
System.Object, ByVal e As System.EventArgs) Handles _
MSEDanPSNRToolStripMenuItem.Click
frmHasil1.Show()
End Sub
Private Sub RRToolStripMenuItem_Click(ByVal sender As _
System.Object, ByVal e As System.EventArgs) Handles _
RRToolStripMenuItem.Click
frmHasil2.Show()
End Sub
Private Sub ToolStripMenuItem1_Click(ByVal sender As _
System.Object, ByVal e As System.EventArgs) Handles _
ToolStripMenuItem1.Click
frmEkstraksi.Show()
End Sub
End Class


2. Watermarking
Imports System.Data.OleDb
Public Class frmMain
Dim NmFileAvi As String, NmFileAvi1 As String, NmFileMp4 As String, _
NmFileMp41 As String
Dim IDFile As Integer, IDData As Integer
Dim folderResume As String
Dim eks As String
Dim strKdEks As String
Dim MSE As Single
Dim PSNR As Single

Universitas Sumatera Utara

Dim DataSampel As Single
Sub CariID()
folderResume = Application.StartupPath & "\RESUME_VIDEO\"
CMD = New OleDbCommand("Select * from [File] order by IDFile desc",
Conn)
RD = CMD.ExecuteReader()

RD.Read()
If RD.HasRows = True Then
IDFile = RD.Item("IDFile") + 1
Else
IDFile = 1
End If
RD.Close()
CMD.Dispose()
End Sub
Sub CariIDData()
CMD = New OleDbCommand("Select * from DataFile order by IDData desc",
Conn)
RD = CMD.ExecuteReader()
RD.Read()
If RD.HasRows = True Then
IDData = RD.Item("IDData") + 1
Else
IDData = 1
End If
RD.Close()

CMD.Dispose()
End Sub
Sub RefreshPlayList()
Dim i As Integer
lvwPlayList.Items.Clear()
With WMP.currentPlaylist 'memasukkan k listview
For i = 0 To .count - 1
lvwPlayList.Items.Add(.Item(i).getItemInfo("Title")).SubItems.Add(.Item(i) _
.getItemInfo("Artist"))
lvwPlayList.Items(i).ForeColor =
IIf(WMP.currentMedia.isIdentical(WMP.currentPlaylist.Item(i)), Color.Red,
Color.Black)
Next
End With
End Sub
Private Sub mnuOpenFile_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles mnuAddFile.Click
Dim i As Integer
With dlgOpenFile
.FileName = ""

.Filter = "File Video|*.mp4;*.mpg;*.mpeg;*.mov;*.avi|Playlist
Files|*.m3u"
If .ShowDialog = 1 Then
If sender Is mnuOpenFile Then WMP.currentPlaylist.clear()
Try
For i = 0 To UBound(.FileNames) 'memasukkan k playlist

Universitas Sumatera Utara

.currentPlaylist.appendItem(WMP.newMedia(.FileNames(i)))
NmFileAvi = .FileName
lblNmFileAvi1.Text = NmFileAvi
Next
Catch ex As Exception
MsgBox(ex.Message)
End Try
WMP.Ctlcontrols.play()
RefreshPlayList()
End If
End With

End Sub
Private Sub lvwPlayList_DoubleClick(ByVal sender As Object, ByVal e As _
System.EventArgs)
If lvwPlayList.SelectedItems.Count = 0 Then Exit Sub
Dim i As Integer
For i = 0 To WMP.currentPlaylist.count - 1
If i = lvwPlayList.SelectedItems(0).Index Then
WMP.Ctlcontrols.playItem(WMP.currentPlaylist.Item(i))
Next
End Sub
Private Sub WMP_MediaChange(ByVal sender As Object, ByVal e As
AxWMPLib._WMPOCXEvents_MediaChangeEvent) Handles WMP.MediaChange
If WMP.currentMedia Is Nothing Then Exit Sub
Dim i As Integer, s As String
For i = 0 To WMP.currentPlaylist.count - 1
lvwPlayList.Items(i).ForeColor = IIf(WMP.currentMedia.isIdentical _
(WMP.currentPlaylist.Item(i)), Color.Red, Color.Black)
Next
With WMP.currentMedia
s = "URL" & vbTab & ":

" & .getItemInfo("SourceURL") & vbCrLf
s &= "Size" & vbTab & ":
" & .getItemInfo("FileSize") & vbCrLf
s &= "Type" & vbTab & ":
" & .getItemInfo("FileType") & vbCrLf &
vbCrLf
s
s
s
s
s

&=
&=
&=
&=
&=

"Title" & vbTab & ":
" & .getItemInfo("Title") & vbCrLf

"Artist" & vbTab & ":
" & .getItemInfo("Artist") & vbCrLf
"Album" & vbTab & ":
" & .getItemInfo("Album") & vbCrLf
"Genre" & vbTab & ":
" & .getItemInfo("Genre") & vbCrLf
"Year" & vbTab & ":
" & .getItemInfo("WM/Year") & vbCrLf &

vbCrLf
s &= "Bit Rate" & vbTab & ":
s &= "Duration" & vbTab & ":
s &= "Dimensi" & vbTab & ":
.imageSourceWidth
txtDetails.Text = s
End With
End Sub

" & .getItemInfo("BitRate") & vbCrLf
" & .durationString & vbCrLf

" & .imageSourceHeight *

Private Sub WMP_PlayStateChange(ByVal sender As Object, _
ByVal e As AxWMPLib._WMPOCXEvents_PlayStateChangeEvent) Handles _
WMP.PlayStateChange
'utk mengatasi sedikit bug
If WMP.currentPlaylist.count > 0 Then
lvwPlayList.Items(0).Text =WMP.currentPlaylist.Item(0) _
.getItemInfo("Title")

Universitas Sumatera Utara

lvwPlayList.Items(0).SubItems(1).Text =
WMP.currentPlaylist.Item(0)._
getItemInfo("Artist")
End If
End Sub
Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
WMP.settings.volume = GetSetting("PVBMP", "main", "vol", 100)

' WMP.uiMode = "none"
tabSideBar.Visible = GetSetting("PVBMP", "main", "sidebar", True)
Me.TopMost = GetSetting("PVBMP", "main", "ontop", False)
WMP.settings.setMode("Loop", GetSetting("PVBMP", "main", "loop",
False))
WMP.settings.setMode("Shuffle", GetSetting("PVBMP", "main", "shuffle",
False))
cmdProses.Enabled = False
cmdProses1.Enabled = False
Call KoneKsi()
CMD = New OleDbCommand("Delete from [File] where st='1'", Conn)
RD = CMD.ExecuteReader
RD.Close()
CMD.Dispose()
ProgressBar1.Minimum =
ProgressBar1.Maximum =
ProgressBar1.Value = 0
Label3.Visible = False
ProgressBar1.Visible =
ProgressBar2.Minimum =

ProgressBar2.Maximum =
ProgressBar2.Value = 0
Label9.Visible = False
ProgressBar2.Visible =
End Sub

0
100

False
0
100

False

Private Sub mnuRemove_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles mnuRemove.Click
For Each LI As ListViewItem In lvwPlayList.SelectedItems
WMP.currentPlaylist.removeItem(WMP.currentPlaylist.Item(LI.Index))
LI.Remove()
Next
WMP.Ctlcontrols.play()
End Sub
Private Sub mnuPlayList_Opening(ByVal sender As System.Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles mnuPlayList.Opening
mnuRemove.Enabled = (lvwPlayList.SelectedItems.Count > 0)
End Sub
Private Sub cmdBrowseAvi_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdBrowseAvi.Click
Dim i As Integer
eks = ""
With dlgOpenFile
.FileName = ""
.Filter = "File Video AVI|*.avi|Playlist Files|*.avi"
If .ShowDialog = 1 Then
If sender Is mnuOpenFile Then WMP.currentPlaylist.clear()

Universitas Sumatera Utara

Try
For i = 0 To UBound(.FileNames) 'memasukkan k playlist
WMP.currentPlaylist.appendItem(WMP.newMedia(.FileNames(i)))
NmFileAvi = .FileName
lblNmFileAvi1.Text = NmFileAvi
Call CariID()
NmFileAvi1 = folderResume & "FileWM" & IDFile & ".avi"
lblNmFileAvi2.Text = NmFileAvi1
eks = "AVI"
Call AcakAVI()
Next
Catch ex As Exception
MsgBox(ex.Message)
End Try
WMP.Ctlcontrols.pause()
RefreshPlayList()
End If
End With
WMP.Focus()
WMP.Select()
End Sub
Private Sub cmdBrowseMP4_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdBrowseMP4.Click
Dim i As Integer
eks = ""
With dlgOpenFile
.FileName = ""
.Filter = "File Video mp4|*.mp4|Playlist Files|*.mp4"
If .ShowDialog = 1 Then
If sender Is mnuOpenFile Then WMP1.currentPlaylist.clear()
Try
For i = 0 To UBound(.FileNames) 'memasukkan k playlist
WMP1.currentPlaylist.appendItem(WMP1.newMedia(.FileNames(i)))
NmFileMp4 = .FileName
lblNmFileMp41.Text = NmFileMp4
Call CariID()
NmFileMp41 = folderResume & "FileWM" & IDFile & ".mp4"
lblNmFileMp42.Text = NmFileMp41
eks = "MP4"
Call AcakMP4()
Next
Catch ex As Exception
MsgBox(ex.Message)
End Try
WMP1.Ctlcontrols.pause()
RefreshPlayList()
End If
End With
End Sub
Private Sub cmdKeluar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
Close()
End Sub

Universitas Sumatera Utara

Private Sub cmdProses_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdProses.Click
cmdProses.Enabled = False
ProgressBar1.Minimum = 0
ProgressBar1.Maximum = 100
ProgressBar1.Value = 0
Call KonversiBIN()
Call CariID()
NmFileAvi1 = folderResume & "FileWM" & IDFile & ".avi"
lblNmFileAvi2.Text = NmFileAvi1
Timer1.Enabled = True
Dim encryptor
encryptor = Edh_AVI(txtKey.Text, txtLabel.Text)
FileCopy(lblNmFileAvi1.Text, lblNmFileAvi2.Text)
lblKdEks.Text = FileLen(lblNmFileAvi1.Text)
CMD = New OleDbCommand("Insert into File (IDFile,
NmFile,NmFile1,eks,pr,strKey,strLabel,st,bitKey,bitLabel,MSE,PSNR,KdEks) values
(" & IDFile & ",'" & NmFileAvi & "','" & NmFileAvi1 & "','AVI','W','" &
txtKey.Text & "','" & txtLabel.Text & "','1','" & Label2.Text & "','" &
Label7.Text & "','" & lblMSE.Text & "','" & lblPSNR.Text & "','" &
lblKdEks.Text & "')", Conn)
RD = CMD.ExecuteReader()
RD.Close()
CMD.Dispose()
Call CariIDData()
CMD = New OleDbCommand("Insert into DataFile (IDData,
NmFileWM,KdEks,strKey) values (" & IDData & ",'" & NmFileAvi1 & "','" &
lblKdEks.Text & "','" & txtKey.Text & "')", Conn)
RD = CMD.ExecuteReader()
RD.Close()
CMD.Dispose()
End Sub
Sub KonversiBIN()
Label2.Text = ""
Label7.Text = ""
Dim binKey As New ASCIItoBIN(txtKey.Text)
Label2.Text = binKey.convertASCIItoBIN
Dim binLabel As New ASCIItoBIN(txtLabel.Text)
Label7.Text = binLabel.convertASCIItoBIN
End Sub
Private Sub txtLabel_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles txtLabel.TextChanged
On Error Resume Next
If Len(txtLabel.Text) < 1 Then
Exit Sub
End If
Dim binLabel As New ASCIItoBIN(txtLabel.Text)
lblBinLabel.Text = binLabel.convertASCIItoBIN
cmdProses.Enabled = True
cmdProses1.Enabled = True
End Sub
Private Sub cmdProses1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdProses1.Click
cmdProses1.Enabled = False
ProgressBar2.Minimum = 0
ProgressBar2.Maximum = 100

Universitas Sumatera Utara

ProgressBar2.Value = 0
Call KonversiBIN()
Call CariID()
NmFileMp41 = folderResume & "FileWM" & IDFile & ".mp4"
lblNmFileMp42.Text = NmFileMp41
Timer1.Enabled = True
Dim encryptor
encryptor = Edh_Mp4(txtKey.Text, txtLabel.Text)
FileCopy(lblNmFileMp41.Text, lblNmFileMp42.Text)
lblKdEks1.Text = FileLen(lblNmFileMp41.Text)
CMD = New OleDbCommand("Insert into File (IDFile,
NmFile,NmFile1,eks,pr,strKey,strLabel,st,bitKey,bitLabel,MSE,PSNR,KdEks) values
(" & IDFile & ",'" & NmFileMp4 & "','" & NmFileMp41 & "','MP4','W','" &
txtKey.Text & "','" & txtLabel.Text & "','1','" & Label2.Text & "','" &
Label7.Text & "','" & lblMSE1.Text & "','" & lblPSNR1.Text & "','" &
lblKdEks1.Text & "')", Conn)
RD = CMD.ExecuteReader()
RD.Close()
CMD.Dispose()
Call CariIDData()
CMD = New OleDbCommand("Insert into DataFile (IDData,
NmFileWM,KdEks,strKey) values (" & IDData & ",'" & NmFileMp41 & "','" &
lblKdEks1.Text & "','" & txtKey.Text & "')", Conn)
RD = CMD.ExecuteReader()
RD.Close()
CMD.Dispose()
End Sub
Private Sub cmdBatal1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdBatal1.Click
lblNmFileMp41.Text = ""
lblKdEks1.Text = ""
lblMSE1.Text = ""
lblPSNR1.Text = ""
lblNmFileMp42.Text = ""
ProgressBar1.Minimum = 0
ProgressBar1.Maximum = 100
ProgressBar1.Value = 0
ProgressBar2.Minimum = 0
ProgressBar2.Maximum = 100
ProgressBar2.Value = 0
End Sub
Private Sub cmdKeluar_Click_1(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdKeluar.Click
Close()
End Sub
Private Sub cmdBatal_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdBatal.Click
lblNmFileAvi1.Text = ""
lblNmFileAvi2.Text = ""
lblKdEks.Text = ""
lblMSE.Text = ""
lblPSNR.Text = ""
ProgressBar1.Minimum = 0
ProgressBar1.Maximum = 100

Universitas Sumatera Utara

ProgressBar1.Value = 0
Label3.Visible = False
ProgressBar2.Minimum = 0
ProgressBar2.Maximum = 100
ProgressBar2.Value = 0
Label9.Visible = False
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Timer1.Tick
If Timer1.Enabled = True Then
If eks = "AVI" Then
ProgressBar1.Visible = True
Label3.Visible = True
ProgressBar1.Value = ProgressBar1.Value + 10
If ProgressBar1.Value >= 100 Then
Timer1.Enabled = False
ProgressBar1.Visible = False
Label3.Visible = False
End If
ElseIf eks = "MP4" Then
ProgressBar2.Visible = True
Label9.Visible = True
ProgressBar2.Value = ProgressBar2.Value + 10
If ProgressBar2.Value >= 100 Then
Timer1.Enabled = False
ProgressBar2.Visible = False
Label9.Visible = False
End If
End If
End If
End Sub
Public Function GetSampel(ByVal Min As Integer, ByVal Max As Integer) As
Integer
'Dim Generator As System.Random = New System.Random()
Static Generator As System.Random = New System.Random()
Return Generator.Next(Min, Max)
End Function
Sub AcakAVI()
Dim randoms(1000) As Integer
ListBox1.Items.Add("No Sampel Audio AVI")
For i As Integer = 0 To randoms.Length - 1
randoms(i) = GetSampel(1, PictureBox1.Width)
ListBox1.Items.Add(randoms(i))
Dim binSampel As New ASCIItoBIN(randoms(i))
ListBox1.Items.Add(binSampel.convertASCIItoBIN)
Next
End Sub
Sub AcakMP4()
Dim randoms(1000) As Integer
ListBox2.Items.Add("No Sampel Audio MP4")
For i As Integer = 0 To randoms.Length - 1
randoms(i) = GetSampel(1, PictureBox2.Width)
ListBox2.Items.Add(randoms(i))
Dim binSampel As New ASCIItoBIN(randoms(i))
ListBox2.Items.Add(binSampel.convertASCIItoBIN)

Universitas Sumatera Utara

Next
End Sub
End Class

3. Ekstraksi
Imports System.Data.OleDb
Public Class frmEkstraksi
Dim NmFileMP4 As String
Dim NmFileAvi As String
Dim KdEksSisip As String
Dim LabelSisip As String
Dim strKeySisip As String
Dim eks As String
Dim JumLabelSisip As Integer
Dim JumLabelEkstraksi As Integer
Dim IDFIle As Integer
Dim RR As Single
Private Sub cmdSelesai_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
Close()
End Sub
Private Sub frmEkstraksi_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Call KoneKsi()
Call Bersih()
cmdEkstraksi.Enabled = False
End Sub
Sub Bersih()
eks = ""
NmFileMP4 = ""
NmFileAvi = ""
KdEksSisip = ""
LabelSisip = ""
strKeySisip = ""
JumLabelSisip = 0
JumLabelEkstraksi = 0
IDFIle = 0
RR = 0
End Sub
Private Sub cmdBatal_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
Call Bersih()
End Sub
Private Sub cmdLoad_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdLoad.Click
Dim i As Integer
eks = ""
KdEksSisip = ""
LabelSisip = ""
strKeySisip = ""
JumLabelSisip = 0
JumLabelEkstraksi = 0
IDFIle = 0
RR = 0

Universitas Sumatera Utara

With dlgOpenFile
.FileName = ""
.Filter = "File Video AVI|*.avi|Playlist Files|*.avi"
If .ShowDialog = 1 Then
Try
For i = 0 To UBound(.FileNames) 'memasukkan k playlist
WMP.currentPlaylist.appendItem(WMP.newMedia(.FileNames(i)))
NmFileAvi = .FileName
lblNmFileAvi1.Text = NmFileAvi
eks = "AVI"
CMD = New OleDbCommand("Select * from [File] where
NmFile1='" & RTrim(NmFileAvi) & "' and Eks='" & eks & "'", Conn)
RD = CMD.ExecuteReader()
If RD.Read = True Then
IDFIle = RD.Item("IDFile")
KdEksSisip = RD.Item("KdEks")
LabelSisip = RD.Item("strLabel")
strKeySisip = RD.Item("strKey")
Else
KdEksSisip = ""
LabelSisip = ""
strKeySisip = ""
End If
RD.Close()
CMD.Dispose()
Call AcakAVI()
Next
Catch ex As Exception
MsgBox(ex.Message)
End Try
WMP.Ctlcontrols.pause()
RefreshPlayList()
End If
End With
End Sub
Sub RefreshPlayList()
Dim i As Integer
lvwPlayList.Items.Clear()
With WMP.currentPlaylist 'memasukkan k listview
For i = 0 To .count - 1
lvwPlayList.Items.Add(.Item(i).getItemInfo("Title")).SubItems.Add(.Item(i).getI
temInfo("Artist"))
lvwPlayList.Items(i).ForeColor =
IIf(WMP.currentMedia.isIdentical(WMP.currentPlaylist.Item(i)), Color.Red,
Color.Black) 'warna merah utk yg sedang diputar
Next
End With
End Sub
Private Sub cmdSelesai_Click_1(ByVal sender As System.Object, ByVal e As
System.EventArgs)
Close()
End Sub
Sub EksAvi()
Dim validcode01 As Long

Universitas Sumatera Utara

Dim validcode02 As Long
Dim extmessage As Byte
Dim dycrypted
Dim i As Long
validcode01 = txtKodeEks.Text
validcode02 = FileLen(lblNmFileAvi1.Text)
Close #1
lblEkstraksi.Text = ""
decrypted = Decrypt(txtKey.Text, lblEkstraksi.Text)
lblEkstraksi.Text = decrypted
JumLabelEkstraksi = Len(decrypted)
If JumLabelSisip > 0 Then
RR = (JumLabelEkstraksi / JumLabelSisip) * 100
lblRR.Text = Format(RR, "###.##")
Else
RR = 0
lblRR.Text = 100
End If
CMD = New OleDbCommand("Update [File] SET RR=" & RR & ",strLabelEks='"
& decrypted & "',st='*' where IDFile=" & IDFile & "", Conn)
RD = CMD.ExecuteReader()
RD.Close()
CMD.Dispose()
MsgBox("Proses Selesai...")
Exit Sub
If Err.Number 0 Then
Exit Sub
End If
End Sub
Private Sub cmdLoad1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdLoad1.Click
Dim i As Integer
eks = ""
KdEksSisip = ""
LabelSisip = ""
strKeySisip = ""
JumLabelSisip = 0
JumLabelEkstraksi = 0
IDFIle = 0
RR = 0
With dlgOpenFile
.FileName = ""
.Filter = "File Video MP4|*.mp4|Playlist Files|*.mp4"
If .ShowDialog = 1 Then
Try
For i = 0 To UBound(.FileNames) 'memasukkan k playlist
WMP1.currentPlaylist.appendItem(WMP1.newMedia(.FileNames(i)))
NmFileMP4 = .FileName
lblNmFileMP41.Text = NmFileMP4
eks = "MP4"
CMD = New OleDbCommand("Select * from [File] where
NmFile1='" & RTrim(NmFileMP4) & "' and Eks='" & eks & "'", Conn)
RD = CMD.ExecuteReader()
If RD.Read = True Then
IDFIle = RD.Item("IDFile")

Universitas Sumatera Utara

KdEksSisip = RD.Item("KdEks")
LabelSisip = RD.Item("strLabel")
strKeySisip = RD.Item("strKey")
Else
KdEksSisip = ""
LabelSisip = ""
strKeySisip = ""
End If
RD.Close()
CMD.Dispose()
Call AcakMP4()
Next
Catch ex As Exception
MsgBox(ex.Message)
End Try
WMP1.Ctlcontrols.pause()
RefreshPlayList()
End If
End With
cmdEkstraksi.Enabled = True
End Sub
Private Sub cmdBatal_Click_1(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdBatal.Click
Call Bersih()
lblNmFileAvi1.Text = ""
End Sub
Private Sub cmdBatal1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdBatal1.Click
Call Bersih()
lblNmFileMP41.Text = ""
End Sub
Private Sub cmdEkstraksi_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdEkstraksi.Click
Dim bolSave As Boolean
If lblNmFileAvi1.Text "" And txtKey.Text "" And txtKodeEks.Text
"" Then
CMD = New OleDbCommand("Select * from [File] where NmFile1='" &
NmFileAvi & "' and Eks='" & eks & "' and KdEks='" & txtKodeEks.Text & "' and
strKey='" & txtKey.Text & "'", Conn)
RD = CMD.ExecuteReader()
If RD.Read = True Then
LabelSisip = RD.Item("strLabel")
lblPenyisip.Text = LabelSisip
lblEkstraksi.Text = LabelSisip
Call KonversiBINAVI()
MsgBox("" & RR)
bolSave = True
Else
lblPenyisip.Text = ""
lblEkstraksi.Text = ""
MsgBox("Label tidak ditemukan...")
bolSave = False
End If
RD.Close()
CMD.Dispose()
Else

Universitas Sumatera Utara

MsgBox("Data ekstraksi belum lengkap...")
lblPenyisip.Text = ""
lblEkstraksi.Text = ""
End If
If bolSave = True Then
CMD = New OleDbCommand("Update [File] SET RR=" & RR &
",strLabelEks='" & LabelSisip & "',st='*' where IDFile=" & IDFIle & "", Conn)
RD = CMD.ExecuteReader()
RD.Close()
CMD.Dispose()
End If
End Sub
Sub KonversiBINAVI()
LsBinEkstraksiAVI.Text = ""
LsBinPenyisipAVI.Text = ""
RR = 0
Dim binLabelEkstraksiAVI As New ASCIItoBIN(lblEkstraksi.Text)
LsBinEkstraksiAVI.Items.Add(binLabelEkstraksiAVI.convertASCIItoBIN)
Dim binLabelPenyisipAVI As New ASCIItoBIN(lblPenyisip.Text)
LsBinPenyisipAVI.Items.Add(binLabelPenyisipAVI.convertASCIItoBIN)
JumLabelEkstraksi = Len(binLabelEkstraksiAVI.convertASCIItoBIN)
JumLabelSisip = Len(binLabelPenyisipAVI.convertASCIItoBIN)

If JumLabelSisip > 0 Then
RR = (JumLabelEkstraksi / JumLabelSisip) * 100
lblRR.Text = Format(RR, "###.##") & " %"
Else
RR = 0
lblRR.Text = 0 & " %"
End If
End Sub
Sub KonversiBINMP4()
LsBinPenyisipMP4.Text = ""
LsBinEkstraksiMP4.Text = ""
JumLabelEkstraksi = 0
JumLabelSisip = 0
RR = 0
lblRR1.Text = ""
Dim binLabelEkstraksiMP4 As New ASCIItoBIN(lblEkstraksi1.Text)
LsBinEkstraksiMP4.Items.Add(binLabelEkstraksiMP4.convertASCIItoBIN)
Dim binLabelPenyisipMP4 As New ASCIItoBIN(lblPenyisip1.Text)
LsBinPenyisipMP4.Items.Add(binLabelPenyisipMP4.convertASCIItoBIN)
JumLabelEkstraksi = Len(binLabelEkstraksiMP4.convertASCIItoBIN)
JumLabelSisip = Len(binLabelPenyisipMP4.convertASCIItoBIN)
If JumLabelSisip > 0 Then
RR = (JumLabelEkstraksi / JumLabelSisip) * 100
lblRR1.Text = Format(RR, "###.##") & " %"
Else
RR = 0
lblRR1.Text = 100 & " %"
End If
End Sub

Universitas Sumatera Utara

Private Sub txtKodeEks_TextChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles txtKodeEks.TextChanged
cmdEkstraksi.Enabled = True
End Sub
Private Sub cmdEkstraksi1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdEkstraksi1.Click
Dim bolSave As Boolean
If lblNmFileMP41.Text "" And txtKey1.Text "" And txtKodeEks1.Text
"" Then
CMD = New OleDbCommand("Select * from [File] where NmFile1='" &
NmFileMP4 & "' and Eks='" & eks & "' and KdEks='" & txtKodeEks1.Text & "' and
strKey='" & txtKey1.Text & "'", Conn)
RD = CMD.ExecuteReader()
If RD.Read = True Then
LabelSisip = RD.Item("strLabel")
lblPenyisip1.Text = LabelSisip
lblEkstraksi1.Text = LabelSisip
Call KonversiBINMP4()
bolSave = True
Else
lblPenyisip1.Text = ""
lblEkstraksi1.Text = ""
MsgBox("Label tidak ditemukan...")
bolSave = False
End If
RD.Close()
CMD.Dispose()
Else
MsgBox("Data ekstraksi belum lengkap...")
End If
If bolSave = True Then
CMD = New OleDbCommand("Update [File] SET RR=" & RR &
",strLabelEks='" & LabelSisip & "',st='*' where IDFile=" & IDFIle & "", Conn)
RD = CMD.ExecuteReader()
RD.Close()
CMD.Dispose()
End If
End Sub
Private Sub txtKodeEks1_TextChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles txtKodeEks1.TextChanged
cmdEkstraksi1.Enabled = True
End Sub
Private Sub cmdHistoris_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdHistoris.Click
frmHistoris.Show()
End Sub
Public Function GetSampel(ByVal Min As Integer, ByVal Max As Integer) As
Integer
'Dim Generator As System.Random = New System.Random()
Static Generator As System.Random = New System.Random()
Return Generator.Next(Min, Max)
End Function
Sub AcakAVI()
Dim randoms(1000) As Integer
ListBox1.Items.Add("No Sampel Audio AVI")
For i As Integer = 0 To randoms.Length - 1

Universitas Sumatera Utara

randoms(i) = GetSampel(1, PictureBox1.Width)
ListBox1.Items.Add(randoms(i))
Dim binSampel As New ASCIItoBIN(randoms(i))
ListBox1.Items.Add(binSampel.convertASCIItoBIN)
Next
End Sub
Sub AcakMP4()
Dim randoms(1000) As Integer
ListBox2.Items.Add("No Sampel Audio MP4")
For i As Integer = 0 To randoms.Length - 1
randoms(i) = GetSampel(1, PictureBox2.Width)
ListBox2.Items.Add(randoms(i))
Dim binSampel As New ASCIItoBIN(randoms(i))
ListBox2.Items.Add(binSampel.convertASCIItoBIN)
Next
End Sub

Private Sub cmdSelesai_Click_2(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdSelesai.Click
Close()
End Sub
End Class

4.

CreateBiner

Imports System.Text
Public Class ASCIItoBIN
Private ASCIIstr As String
Public Sub New(ByVal ASCII_Input As String)
ASCIIstr = ASCII_Input
End Sub
Public Function convertASCIItoBIN() As String
Dim ASCII_DECcode As String
Dim DECnum As Double
Dim counter As Integer = 0I
Dim BINstr As String = ""
Dim BINmessage As String
jumByte = 0
jumBit = 0
Dim ASCIIencode As New ASCIIEncoding
For counter1 As Integer = 0 To ASCIIstr.Length - 1
Dim encodedBytes As Byte() =
ASCIIencode.GetBytes(ASCIIstr.Substring(counter1, 1))
ASCII_DECcode += CStr(encodedBytes(0)) + " "
Next
Dim stringCounter As Integer = 0I
For counter2 As Integer = stringCounter To ASCII_DECcode.Length - 1
Dim DECnumAsString As String
While ASCII_DECcode.Substring(counter2, 1) " "
DECnumAsString += ASCII_DECcode.Substring(counter2, 1)
DECnum = CInt(DECnumAsString)
counter2 += 1

Universitas Sumatera Utara

End While
While DECnum > 0
If counter = 4 Then
counter = 0
End If
DECnum = DECnum / 2
'Adding 1 or 0 to final number
If Int(DECnum) = DECnum Then
BINstr = "0" & BINstr
counter = counter + 1
Else
BINstr = "1" & BINstr
counter = counter + 1
End If
DECnum = Int(DECnum)
End While
Select Case counter
Case 1
BINstr = "000" & BINstr
Case 2
BINstr = "00" & BINstr
Case 3
BINstr = "0" & BINstr
Case Else
'Adds 4 extra zeros to BINstr
'if BINstr length is 4
BINstr = "0000" + BINstr
End Select
'Append to the BINmessage the next number
BINmessage = BINmessage & BINstr & " "
'Reseting certain variables for new use
DECnumAsString = Nothing
counter = Nothing
BINstr = Nothing
jumByte = jumByte + 1
Next
jumBit = jumByte * 8
BINmessage = BINmessage.Remove(BINmessage.Length - 1, 1)
'Return that beautiful BINary footage!
Return BINmessage
End Function
End Class
5.

Module

Imports System.Data.OleDb
Module ModAPP1
Public CMD As OleDbCommand = Nothing
Public RD As OleDbDataReader = Nothing
Public strConn As String
Public Conn As OleDbConnection
Public bolLogin As Boolean
Public bolTambah As Boolean
Public bolCari As Boolean
Public X As String, Y As String

Universitas Sumatera Utara

Public strProses As String
Public myProcess As New Process()
Public maxSampel As Single = 255
Public maxSampel1 As Single = 326
Public Sub KoneKsi()
strConn = ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
Application.StartupPath & "\IO.mdb")
Conn = New OleDbConnection(strConn)
If Conn.State = ConnectionState.Closed Then
Conn.Open()
End If
End Sub
Sub Main()
Dim arr(5) As Integer
Dim i As Integer
For i = 0 To arr.GetUpperBound(0)
arr(i) = i * i
Next i
For i = 0 To arr.GetUpperBound(0)
Console.WriteLine("arr(" & i & ") = " & arr(i))
Next i
End Sub
Public Sub EchoFile(ByVal SourceFile As String, ByVal DestFile As String)
'On Error GoTo salah
Dim ByteArray() As Byte
Dim Filenr As Integer
If Not (SourceFile) Then
Err.Raise(vbObjectError, "File tidak ada ....")
Else
maxSampel = maxSampel
End If
DestFile = Application.StartupPath & "\Cover_Video\"
Filenr = FreeFile()
#Open (SourceFile) For Binary As #Filenr
#Open DestFile For Binary As #Filenr
ReDim ByteArray(0 To LOF(Filenr) - 1)
Get #Filenr, , ByteArray()
#Close #Filenr
#Call EDH(ByteArray, UBound(ByteArray) + 1)
If DestFile Then Kill(DestFile)
#Open DestFile For Binary As #Filenr
#Put #Filenr, , ByteArray()
#Close #Filenr
salah:
If Err.Number 0 Then
bolErr = True
Exit Sub
End If
End Sub
Public Sub EDH(ByVal SourceFile As String, ByVal DestFile As String)
Dim ByteArray() As Byte
Dim Filenr As Integer
If Not SourceFile Then
Err.Raise(vbObjectError, "File tidak ada ")
End If
Filenr = FreeFile()

Universitas Sumatera Utara

#Open SourceFile For Binary As #Filenr
ReDim ByteArray(0 To LOF(Filenr) - 1)
#Get #Filenr, , ByteArray()
#Close #Filenr
#Call EDH(ByteArray(), UBound(ByteArray) + 1)
If DestFile Then Kill(DestFile)
#Open DestFile For Binary As #Filenr
#Put #Filenr, , ByteArray()
#Close #Filenr
#Main.List2.Clear()
End Sub
Public Function Edh_AVI(ByVal Key1 As String, ByVal txtcode As String)
Dim i, j, k As Integer, thekey
Dim a, b As String
Dim CryptText As String
Dim JumSampel As Integer
On Error Resume Next
If Key1 "" Then
thekey = Key1
i = 0
For j = 1 To Len(txtcode)
i = i + 1
If i > Len(thekey) Then i = 1
a = Mid(txtcode, j, 1)
k = Asc(a)
b = Mid(thekey, i, 1)
k = k + Asc(b)
If k > maxSampel Then k = k - maxSampel
CryptText = CryptText & Chr(k)
JumSampel = JumSampel + 1
Next j
txtcode = CryptText
Edh_AVI = txtcode
MSE = (1 / JumSampel) * k ^ 2
MSE = Math.Sqrt(MSE * 0.5)
frmMain.lblMSE.Text = MSE
PSNR = 20 * Math.Log10(maxSampel / Math.Sqrt(MSE))
frmMain.lblPSNR.Text = PSNR
End If
End Function
Public Function Edh_Mp4(ByVal Key1 As String, ByVal txtcode As String)
Dim i, j, k As Integer, thekey
Dim a, b, CryptText As String
Dim JumSampel As Integer
'On Error Resume Next
MSE = 0
PSNR = 0
If Key1 "" Then
thekey = Key1
i = 0
For j = 1 To Len(txtcode)
i = i + 1
If i > Len(thekey) Then i = 1
a = Mid(txtcode, j, 1)
k = Asc(a)
b = Mid(thekey, i, 1)
k = k + Asc(b)

Universitas Sumatera Utara

If k > maxSampel1 Then k = k - maxSampel1
CryptText = CryptText & Chr(k)
JumSampel = JumSampel + 1
Next j
txtcode = CryptText
Edh_Mp4 = txtcode
MSE = (1 / JumSampel) * k ^ 2
MSE = Math.Sqrt(MSE)
frmMain.lblMSE1.Text = MSE
PSNR = 20 * Math.Log10(maxSampel1 / Math.Sqrt(MSE))
frmMain.lblPSNR1.Text = PSNR
End If
End Function
Public Function Encrypt(ByVal Key1 As String, ByVal txtcode As String)
Dim i, j, k As Integer, thekey
Dim a, b, CryptText As String
On Error Resume Next
If Key1 "" Then
thekey = Key1
i = 0
For j = 1 To Len(txtcode)
i = i + 1
If i > Len(thekey) Then i = 1
a = Mid(txtcode, j, 1)
k = Asc(a)
b = Mid(thekey, i, 1)
k = k + Asc(b)
If k > maxSampel1 Then k = k - maxSampel1
CryptText = CryptText & Chr(k)
Next j
txtcode = CryptText
Encrypt = txtcode
End If
End Function
Public Function Decrypt(ByVal Key1 As String, ByVal txtcode As String)
Dim i, j, k As Integer, thekey
Dim a, b, CryptText As String
On Error Resume Next
CryptText = ""
If Key1 "" Then
thekey = Key1
i = 0
For j = 1 To Len(txtcode)
i = i + 1
If i > Len(thekey) Then i = 1
a = Mid(txtcode, j, 1)
k = Asc(a)
b = Mid(thekey, i, 1)
k = k - Asc(b)
If k < 0 Then k = k + maxSampel1
CryptText = CryptText & Chr(k)
Next j
txtcode = CryptText
Decrypt = txtcode
End If
End Function
End Module

Universitas Sumatera Utara