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

(1)

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


(2)

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


(3)

.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 &= "Title" & vbTab & ": " & .getItemInfo("Title") & vbCrLf s &= "Artist" & vbTab & ": " & .getItemInfo("Artist") & vbCrLf s &= "Album" & vbTab & ": " & .getItemInfo("Album") & vbCrLf s &= "Genre" & vbTab & ": " & .getItemInfo("Genre") & vbCrLf s &= "Year" & vbTab & ": " & .getItemInfo("WM/Year") & vbCrLf & vbCrLf

s &= "Bit Rate" & vbTab & ": " & .getItemInfo("BitRate") & vbCrLf s &= "Duration" & vbTab & ": " & .durationString & vbCrLf

s &= "Dimensi" & vbTab & ": " & .imageSourceHeight * .imageSourceWidth

txtDetails.Text = s End With

End Sub

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")


(4)

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 = 0 ProgressBar1.Maximum = 100 ProgressBar1.Value = 0 Label3.Visible = False ProgressBar1.Visible = False ProgressBar2.Minimum = 0 ProgressBar2.Maximum = 100 ProgressBar2.Value = 0 Label9.Visible = False ProgressBar2.Visible = False End Sub

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


(5)

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


(6)

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


(7)

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


(8)

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)


(9)

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


(10)

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()


(11)

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


(12)

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


(13)

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


(14)

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


(15)

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)


(16)

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


(17)

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


(18)

#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)


(19)

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


(20)

DAFTAR PUSTAKA

[1]. Bachri, Karel Octavianus. 2008. Analisis Pemrosesan Paralel pada Filter

Digital Finite Impulse Response Orde 3. Jurnal Teknik Elektro Universitas

Katolik Indonesia Atma Jaya Vol. 1, No. 1. Oktober 2008 30-35.

[2]. Binanto. 2010. Multimedia Digital Dasar Teori +Pengembangan.PenerbitANDI: Yogyakarta.

[3]. Jogiyanto, HM. 2005. Analisis dan Desain Sistem Informasi. Jakarta. Penerbit: Kawan Pustaka.

[4]. Mar, Etal. 2009.Implementasi Dan Analisis Video Watermarking Dengan

Format Video Mpeg Berbasis Wavelet Transform. Seminar Nasional Aplikasi

Teknologi Informasi 2009 (SNATI 2009). Yogyakarta, 20 Juni 2009.

[5]. Persada, Bayu Adi. 2004. Studi Dan Implementasi Non Blind Watermarking

Dengan Metode Spread Spectrum, Bandung: Jurnal Teknik Elektro dan

Informatika Institut Teknologi Bandung.

[6]. Petrovi, Rade. 2000.Data Hiding Within Audio Signals. Jurnal Facta Universitatis (NI_S) Series: Electronics and Energetics vol. 12, No.2 (2000), 103122.

[7]. Putra, Darma. 2010. Pengolahan Citra Digital.Yogyakarta. Penerbit: ANDI. [8]. Redmond. 1993. Multimedia Programming Interface AndData Specifications.

Microsoft Corporation.

[9]. Sugiono, etal. 2008. Watermarking Pada File Audio PCM WAVE Dengan

Metode Echo Data Hiding. Konferensi Nasional Sistem dan Informatika 2008;

Bali, Nopember 15, 2008.

[10]. Winarso, Sri. M.E. 2007. Digital Watermarking Menggunakan MetodeDiscrete Cosine Transform. Jurnal Teknologi Informasi-AITI. Februari


(21)

BAB 3

ANALISIS DAN PERANCANGAN

3.1 Analisis Sistem

Analisis sistem adalah merupakan proses untuk memperoleh pemahaman yang menyeluruh terhadap kebutuhan sistem sehingga diperoleh gambaran proses yang akan dilakukan sistem. Hal ini akan membantu pemodelan rancang bangun sistem yang nantinya akan diimplementasikan dalam bentuk nyata.

3.1.1 Analisis Masalah

Salah satu cara untuk mengidentifikasi permasalahandengan penggunaan diagram Ishikawa (fishbone diagram). Diagram Ishikawa adalah sebuah alat grafis yang digunakan untuk mengidentifikasi, mengeksplorasi dan menggambarkan suatu masalah serta sebab dan akibat dari masalah tersebut. Diagram ini juga sering disebut sebagai diagram sebab-akibat atau diagram tulang ikan. Identifikasi terhadap permasalahan akan membantu analisis persyaratan sistem yang nantinya akan dikembangkan.

Pada aplikasi ini dilakukan perbandingan hasil watermarkingpada video yang berformat AVI dengan MP4 menggunakan algoritma Echo Data Hiding.Labelwatermarkyang disisipkan berupa teks berformat .txt. Setelah proses watermarking dan ekstraksi selesai, maka dilakukan pengujian parameter watermarking dengan menghitung nilairecovery rate (RR), Mean Squared Error

(MSE) serta Peak Signal to Noise Ratio (PSNR).

Proses kerja algoritmaEcho Data Hidingpada watermarking dan ekstraksi yaitu penyisipan dan pengekstrakan video dilakukan pada sampel audio dengan menciptakan sinyal echodengan nilai skalanya. Saat proses watermarkingberlangsung,


(22)

maka key yang digunakan berfungsi sebagai acuan dalam melakukanproses pembuatan delay echo yang mewakili bit biner “0” dan “1”. Hasil dari operasi penyisipan ini adalah sebuah sinyal yang telah berisi data dan key. Data yang disisipkan dalam modul ini adalah sederetan bit biner yang merupakan konversi dari kode unik hasil generate.

Frame pada streamaudio yang terdapat pada file AVI dan MP4 berformatRIFF

(Resource Interchange File Format) yang membagi sebuah data file ke dalam blok, atau potongan. Untuk membentuk echodigunakan dua buah impuls yang disebut kernel. Kernel “satu” dibuat dengan delay δ1 detik sedangkankernel “nol” dibuat

dengan delay δ0 detik.Jika hanya 1 echo yang dihasilkan dari sinyal asli maka hanya 1 bit dari teks yang dapat disisipkan. Karena itu, sinyal awal dibagi-bagi ke dalam beberapa blok sebelum proses encoding dimulai. Ketika proses encoding telah selesai, blok-blok tersebut digabungkan kembali membentuk sinyal baru.

Seluruh kategori dan sebab akibat yang disebutkan kemudian dimuat dalam sebuah diagram Ishikawa sebagai berikut.

Gambar 3.1 Diagram Ishikawa untuk Analisis Permasalahan Sistem

Pada diagram Ishikawa, masalah utama ditunjukkan oleh segi empat paling kanan (kepala ikan), sedangkan kategori ditunjukkan oleh segi empat yang

Pemilik Video File video tanpa

identitas

Penyalahgunaan file video

Label Identitas Kesulitan pembuktian kepemilikan file video

Penyisipan label Identitas file video

Watermarking

Diperlukan proses tambahan untuk menunjukkan hasil watermark

Video terwatermark

Label identitas dapat terbaca dan dapat dibuktikan

Berlangsung proses ekstraksi

Ekstraksi

Identitas kepemilikan file


(23)

dihubungkan oleh sebuah garis ke tulang utama (garis horizontal yang terhubung ke kepala ikan). Selanjutnya sebab akibat yang muncul ditunjukkan oleh tulang-tulang kecil yang diwakili oleh garis panah yang mengarah ke tulang-tulang kategori masalah.

3.1.2 Analisis Persyaratan

Analisis persyaratan sebuah sistem dikelompokkan ke dalam dua bagian yaitu, analisis persyaratan fungsional dan analisis persyaratan non-fungsional.

3.1.2.1 Analisis Persyaratan Fungsional

Persyaratan fungsional adalah segala sesuatu yang harus dimiliki oleh sistem. Persyaratan fungsional sistem yang akan dirancang antara lain sebagai berikut:

1. Sistem harus menyediakan sumberdaya untuk melakukan watermarking dan ekstraksi dengan menerapkan echo data hiding, dimana untuk keamanannya ekstraksi digunakan kunci.

2. Pada penerapan algoritma Echo Data Hiding, sistem juga harus menyediakan sumberdaya untuk parameter-parameter yang ingin dicapai.

3.1.2.2 Analisis Persyaratan Non-Fungsional

Persyaratan non-fungsional adalah persyaratan apa yang harus dilakukan sistem. Seringkali berupa batasan atau sesuatu yang menjadi perhatian builder sebuah sistem. Persyaratan non-fungsional yang harus dipenuhi oleh sistem yang dirancang adalah penggunaan Microsoft Accesssebagai pangkalan data dan Crystal Report untuk merepresentasikan hasil proses watermarking serta esktraksi.

3.1.3 Pemodelan Sistem

Pemodelan sistem dibuat untuk mengetahui gambaran umum dari sistem yang akan dibuat dengan metode yang menggambarkan tahap – tahap penyelesaian suatu masalah beserta proses mengalirnya data dengan simbol – simbol tertentu .


(24)

3.1.3.1 Pemodelan Sistem dengan Use Case Diagram

Pemodelan sistem dilakukan untuk memperoleh gambaran yang lebih jelas tentang objek apa saja yang akan berinteraksi dengan sistem serta hal-hal apa saja yang harus dilakukan oleh sebuah sistem sehingga sistem dapat berfungsi dengan baik sesuai dengan mestinya.

Perancangan fungsionalitas perangkat lunak pembuktian kepemilikan video yang akan dikembangkan dimodelkan dengan diagram use case. Aktor yang nantinya akan berinteraksi dengan sistem adalah pengguna (user). Pengguna dikategorikan sebagai entitas yang melakukan proses watermarking dan ekstraksi.

Sesuai dengan analisis kebutuhan sistem, beberapa hal yang nantinya harus dilakukan sistem adalah:

1. Melakukan watermarking terhadap video asli untuk pemberian label identitas kepemilikan menghasilkan video ter-watermark

2. Melakukan ekstraksi label kepemilikan terhadap file video ter-watermark

Berdasarkan informasi kebutuhan sistem dan aktor yang berperan, diagram use

case berikut dirancang sebagai pemodelan persyaratan sistem.

Gambar 3.2 Use CaseDiagram Sistem Aplikasi

Perbandingan Hasil Watermarking Pada Video AVI dengan MP4 Menggunakan Algoritma Echo Data

Hiding

Sistem Kepemilikan

File Video

Watermarking

Esktraksi

Key/Kode Esktraksi <<extends>> <<uses>>

<<uses>>


(25)

Pada diagram tersebut tampak bahwa seorang User (pengguna) hanya bekerja dengan mengakses Use Case sistem watermark video. Pengguna tidak perlu mengetahui secara persis proses apa saja yang terjadi pada setiap tahap. Dengan demikian untuk memutuskan proses apa yang nantinya dilakukan pada setiap tahap menjadi tanggung jawab sistem.

Berikut ini merupakan dokumentasi naratif untuk use case Proses watermarking.

Tabel 3.1 Dokumentasi Naratif Use CaseWatermarking Nama use case Sistem keamanan file video

Aktor User

Deskripsi Use case yang mendeskripsikan fungsi pengamanan file video dengan pemberian label identitas.

Pre-condition Video yang di-label teks ber format AVI dan MP4.

Typical course of event

Aksi aktor Respon sistem

Langkah 1: User memilih tombol Watermarking dari menu utama.

Langkah 3 User memasukkan file video asli dengan memilih tombol Browse

Langkah 5: User memasukkan Key dan label penyisip

Langkah 2: Sistem merespon dengan memanggil program watermarking video.

Langkah 4: Sistem menampilkan nama-nama file video

Langkah 6: Sistem melakukan pelabelan file video dan menghitung nilai MSE dan PSNR.

Alternate course

Aksi aktor Respon sistem

- -

Post condition Label dan key telah disisipkan ke file video dan perolehan nilai


(26)

Activity diagram untuk use case kontrol proses watermarking terlihat sebagai

berikut.

User Sistem

Gambar 3.3 Activity DiagramProses Watermarking Memilih tombol watermarking

Memilih tombol Browse

Memasukkan Key dan label

Tampilkan kesalahan

Tidak

Memilih tombol Proses

Ya

Penyisipan label

Menghitung nilai MSE dan PSNR

Mengkonfirmasi keberhasilan proses Periksa kelengkapan data


(27)

Pada dokumentasi naratif use casedan activity diagram terlihat bahwa kontrol proses dilakukan dengan menjaga tahapan watermarking berlangsung sesuai dengan mekanisme dan kemudian sistem memutuskan apa saja yang harus dilakukan oleh sistem pada setiap tahapan dengan memanggil modul program yang sesuai untuk memproses proses selanjutnya.

Berikut ini merupakan dokumentasi naratif untuk use case Proses Ekstraksi.

Tabel 3.2 Dokumentasi Naratif Use CaseEkstraksi Nama use case Sistem keamanan file video

Aktor User

Deskripsi Use case yang mendeskripsikan fungsi ekstraksi kepemilikan dengan pengambilan label identitas dari file video.

Pre-condition Video yang di-label teks ber format AVI dan MP4.

Typical course of event

Aksi aktor Respon sistem

Langkah 1: User memilih tombol Ekstraksi dari menu utama.

Langkah 3 User memasukkan file video watermark dengan memilih tombol Browse

Langkah 5: User memasukkan Key dan kode ekstraksi

Langkah 2: Sistem merespon dengan memanggil program Ekstraksi video.

Langkah 4: Sistem menampilkan nama-nama file video

Langkah 6: Sistem melakukan ekstraksi label dari file video watermark dan menghitung nilai RR.

Alternate course Aksi aktor Respon sistem

- -


(28)

Activity diagram untuk use case proses ekstraksi terlihat sebagai berikut.

User sistem

Gambar 3.4Activity DiagramProses Ekstraksi Memilih tombol

Proses Melakukan ekstraksi label

Menghitung nilai RR

Mengkonfirmasi keberhasilan proses Memilih tombol Ekstraksi

Memilih tombol Browse

Memasukkan Key dan Kode Ekstraksi

Tampilkan kesalahan

Tidak

Ya


(29)

Pada dokumentasi naratif use casedan activity diagram terlihat bahwa kontrol proses dilakukan dengan menjaga tahapan ekstraksi berlangsung sesuai dengan mekanisme yang seharusnya dan kemudian sistem memutuskan apa saja yang harus dilakukan oleh sistem pada setiap tahapan dengan memanggil modul program yang sesuai untuk memproses pesan.

3.1.4Analisis Proses Sistem

Implementasi watermarking pada pemberian identitas file video terdiri proses Watermarking dan Ekstraksi dapat digambarkan dalam penelitian sebagai sequence

diagram.Sequence Diagram proses Watermarking dapat dilihat seperti pada Gambar

3.5.

Gambar 3.5Sequence Diagram Proses Watermarking :Watermarking

Browse File video

File video

:Echo Data Hiding

Echo

:Insertion Echo

Insert Key dan label

Kernel File video

Biner Key dan label

:Hitung MSE dan PSNR

Nilai MSE/PSNR Kode ekstraksi


(30)

Sistem watermarking memerlukan file video asli, key dan label identitas yang akan dimasukkan sebagai identitas video. Tahap awal dilakukan pembentukan echo pada video dengan bantuan kernel (0 dan 1). Fungsi echo adalah sebagai wadah tempat penyisip dalam bentuk biner.

Sequence Diagram proses Ekstraksi dapat dilihat seperti pada Gambar 3.6.

Gambar 3.6Sequence Diagram Proses Ekstraksi

Sistem ekstraksi memerlukan file video watermark, key dan kode ekstraksi yang akan dimasukkan untuk mendapatkan label identitas video. Tahap awal dilakukan pembacaan echo pada video watermark untuk mendapatkan kernel (0 dan 1). Label penyisip yang peroleh dalam bentuk biner dikonversikan ke ASCII.

Implementasi watermarking dituliskan sebagai pseudocode dibawah ini. :Ekstraksi

Browse File video watermark

File video watermark

Kernel 0 dan 1 :Ekstraksi bit echo

Insert Key dan Kode Ekstraksi

Biner Key dan Kode Ekstraksi

:Hitung RR

Nilai RR

:Pembentukan Label


(31)

Video  Video_input Label  Label_input

For i=1 to sampel_video_max Kernel=echo_kernel0

If kernel=0 then Kernel=1 Else

Kernel=0 Endif

bin_label=ASCII_to_Bin (label) if bin_label=1 then

Kernel 0  bin_label Else if bin_label=0 then

Kernel 1  bin_label Endif

Next i

Video_Watermark  Video(save) kd_Ekstr= FileLen(Video)

Jum_bit_label_Aslilen(label_asli)

Keterangan:

User menginput file video yang hendak di-watermarking, serta label sebagai pemberi identitas. Selanjutnya sistem membuat echo pada file video dengan menggunakan kernel 0 dan 1. Label kemudian dikonversi menjadi kode biner dan disisipkan pada echo 0 dan 1 sampai semua biner label habis dan dilakukan penyimpanan file video ter-watermarking.

Implementasi ekstraksi dituliskan sebagai pseudocode dibawah ini.

video  Video_Watermark kodeEks  kd_Ekstr

For i1 to sampel_video_max echo_kernel kernel(video)


(32)

If kernel0 then bin_label=1 Else

bin_label=0 Endif

ASCII_labelbinToASCII (bin_label) Next i

Label  ASCII_label

Jum_bit_label_Ekstlen(ASCII_label)

Keterangan:

User menginput file video dan kode ekstraksi, selanjutnya sistem membentuk echo 0 dan 1 menggunakan kernel 0 dan 1. Sistem membaca kernel 0 sebagai biner 1 dan kernel 1 sebagai biner 0 dari label watermark. Setelah semua biner diperoleh, maka biner label dikonversikan ke ASCII sebagai label watermark.

3.2Perancangan Sistem

Perancangan sistem berdasarkan hasil analisis proses sistem akan diperoleh gambaran fungsionalitas yang akan diterapkan pada sistem. Berdasarkan gambaran ini suatu model rancang bangun diwujudkan dalam bentuk flow chartdan rancangan antarmuka pengguna, dimana rancangan ini nantinya akan diimplementasikan melalui bahasa pemrograman.

3.2.1 Perancangan Flow Chart

Flowchart adalah bagan alir yang menggambarkan arus data dari program. Flowchart menggambarkan proses-proses yang akan dilakukan oleh sistem dengan bentuk simbol-simbol yang akan memudahkan di dalam perancangan program sebuah sistem.


(33)

3.2.1.1 Flow ChartWatermarking Video

Flow ChartWatermarking Video dapat dilihat seperti pada Gambar 3.7

Gambar 3.7Flow ChartWatermarking

3.2.1.2 Flow Chart Ekstraksi

Flow Chart ekstraksi label dari file video watermark dapat dilihat seperti pada

Gambar 3.8.

Start

Input File Video, Label dan Password

Baca Sampel Audio

Pembuatan Echo dengan Kernel 0 dan 1

Sisipkan setiap kernel untuk data sampel

Konversikan Pesan  Biner

Ganti Kernel 1 dengan bit-bit Pesan

Gabung Kernel dengan Data Sampel

Representasi Video watermark Nilai MSE, PSNR, Kode Ekstraksi

Stop


(34)

Gambar 3.8Flow Chart Ekstraksi

3.2.2 Perancangan Antarmuka (Interface)

Perancangan antar muka adalah rancangan tampilan yang menghubungkan pengguna (user) dengan komputer dengan bantuan program. Salah satu syarat pembuatan antar muka adalah berorientasi pada mudah digunakan (user friendly) serta informatif.

Start

Input File Video Watermark, Key dan Kode Ekstraksi

Baca Sampel Audio

Baca Kernel 1 dari Sampel Audio

Konversikan 8 Biner  ASCII

Gabung kode ASCII  Label

Representasi Label dan Recovery rate

Stop


(35)

3.2.2.1Rancangan Menu Utama

Rancangan Menu Utama merupakan tampilan yang pertama kali muncul saat program dijalankan. Pada rancangan ini terdapat menu Watermarking yang berfungsi untuk melakukan watermarking terhadap file video, Extractionyang berfungsi untuk melakukan ekstraksi terhadap file video watermark, Result yang untuk menampilkan informasi hasil watermarking serta ekstraksi label dari file video, About dan Quit. Rancangan Menu Utama terlihat seperti pada Gambar 3.9.

Gambar 3.9Rancangan Menu Utama

Keterangan:

1. Menu Watermarkingyaitu program yang berfungsi untuk melakukan proses

watermarking terhadap file video.

2. Menu Extraction yaitu program yang berfungsi untuk melakukan proses ekstraksi terhadap file video watermark.

3. Menu Result yaitu program yang berfungsi untuk menampilkan hasil perbandingan watermarking video AVI dan MP4

4. Menu About yaitu program yang berfungsi untuk menampilkan informasi aplikasi.

5. Menu Quit yaitu program yang berfungsi untuk menutup form Menu Utama aplikasi.

6. Logo Universitas Sumatera Utara 7. Label Keterangan nama penelitian

Judul Penelitian

Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Xxxxxxxxxxxxxxxxxxxxxxxxxxx Xxxxxxxxxxxxxxxxxxxxx

xxxxxxxxxxxx

Watermarking About Quit

1 4 5

7 Extraction

2

Result 3


(36)

3.2.2.2Rancangan Form Watermarking

Rancangan Form Watermarking berfungsi sebagai penyisipan label identitas yang berformat teks ke dalam filevideo digital. Pada rancangan ini terdapat tampilan tombol untuk pemanggilan file video yang akan di-watermarking. Sebelum proses watermarking user harus menginput Key serta label penyisip. Output pada proses watermarking adalah nilai MSE (Mean Squared Error), PSNR (Peak Signal to Noise

Ratio) serta kode ekstraksi yang harus diinput pada saat melakukan ekstraksi.

Rancangan Form Watermarking dapat dilihat seperti pada Gambar 3.10.

Gambar 3.10 Rancangan Form Watermarking Tampilan

VideoAVI Tampilan

VideoMP4 1

3

MSE

Kode Ekstraksi Key

Cover Video AVI

4 Browse

Cover Video MP4

Browse

Video Watermark AVI Video Watermark MP4

PSNR MSE

Kode Ekstraksi ASCII Penyisip

PSNR

Progress Bar Progress Bar

Proses Batal Proses Batal Selesai

2

5 6

7

8 9

10

12 13 14 15

Biner Penyisip


(37)

Keterangan:

1. TextBox berfungsi berisi nama file video AVI yang akan di-watermarking 2. TextBox berfungsi berisi nama file video MP4 yang akan di-watermarking 3. Tampilan Video AVI melalui Windows Media Player

4. Tampilan Video MP4 melalui Windows Media Player 5. TextBox berfungsi berisi nama file video AVI watermark 6. TextBox berfungsi berisi nama file video MP4 watermark 7. TextBox berisi keywatermark

8. TextBox berisi label watermark dalam ASCII 9. TextBox berisi label watermark dalam biner 10. TextBox berisi kode ekstraksi video AVI 11. TextBox berisi kode ekstraksi video MP4 12. Label berisi nilai MSE video AVI

13. Label berisi nilai PSNR video AVI 14. Label berisi nilai MSE video MP4 15. Label berisi nilai PSNR video MP4

3.2.2.3Rancangan Form Extraction

Rancangan form Extraction berfungsi melakukan ekstraksi label penyisip dari file video yang sudah di-watermarking. Pada tampilan form Extraction yang terdiri dari opsi pilihan format file video yang hendak diekstraksi dengan memilih tombolLoad. Tombol Play berfungsi untuk menjalankan video yang dipilih sebelum dan sesudah dilakukan extraction. Tombol Batal berfungsi untuk membersihkan halaman

Extraction. Sebelum dilakukan proses Extraction, user diharuskan menginput

informasi Key serta kode ekstraksi. Output dari proses Extractionadalah label penyisip serta nilai Recovery Rate (RR). Rancangan Form Extraction dapat dilihat seperti pada Gambar 3.11.


(38)

Gambar 3.11 Rancangan Form Ekstraksi

Keterangan:

1. TextBox berfungsi untuk menampilkan nama file video AVI watermark 2. TextBox berfungsi untuk menampilkan nama file video MP4 watermark 3. Tampilan Video AVI melalui Windows Media Player

4. Tampilan Video MP4 melalui Windows Media Player 5. TextBox berfungsi berisi key ekstraksi file video AVI 6. TextBox berfungsi berisi key ekstraksi file video MP4

Tampilan VideoAVI Tampilan VideoMP4 1 3 Cover Video AVI

4 Cover Video MP4

Load

2

Batal

Ekstraksi

Load Batal

Kunci Ekstraksi Video AVI Key

Kode Ekstraksi Label Video AVI ASCII Penyisipan ASCII Ekstraksi Recovery Rate Selesai Historis Ekstraksi

Kunci Ekstraksi Video MP4 Key

Kode Ekstraksi Label Video MP4

ASCII Penyisipan

ASCII Ekstraksi

Recovery Rate

5 6

7 8

9 10

13 14

17 18

Biner Penyisip 11 Biner Penyisipan 12


(39)

7. TextBox berisi kode ekstraksi video AVI 8. TextBox berisi kode ekstraksi video MP4 9. Label berisi ASCII label penyisip video AVI 10.Label berisi ASCII label penyisip video MP4 11.Label berisi Biner label penyisip video AVI 12.Label berisi Biner label penyisip video MP4 13.Label berisi ASCII label ekstraksi video AVI 14.Label berisi ASCII label ekstraksi video MP4 15.Label berisi Biner label ekstraksi video AVI 16.Label berisi Biner label ekstraksi video MP4 17.Label berisi nilai Recovery Rate video AVI 18.Label berisi nilai Recovery Rate video MP4

3.2.2.4Rancangan Hasil Pengujian Watermarking

Rancangan Hasil Pengujian Watermarking berfungsi untuk menampilkan hasil

watermarking video AVI dan MP4 berupa menghitung nilai MSE dan PSNR.

Rancangan Hasil Pengujian MSE dan PSNR dapat dilihat seperti pada Gambar 3.12.

Gambar 3.12 Rancangan Hasil Pengujian Watermarking

No FileVideoAsli FileVideoWatermark Label Penyisip MSE PSNR Xx xxxxxxxxxxxxx xxxxxxxxxxxxxxxxx xxxxxxxxxxx xxxxxx xxxxxxx Xx xxxxxxxxxxxxx xxxxxxxxxxxxxxxxx xxxxxxxxxxx xxxxxx xxxxxxx Xx xxxxxxxxxxxxx xxxxxxxxxxxxxxxxx xxxxxxxxxxx xxxxxx xxxxxxx Xx xxxxxxxxxxxxx xxxxxxxxxxxxxxxxx xxxxxxxxxxx xxxxxx xxxxxxx Xx xxxxxxxxxxxxx xxxxxxxxxxxxxxxxx xxxxxxxxxxx xxxxxx xxxxxxx Xx xxxxxxxxxxxxx xxxxxxxxxxxxxxxxx xxxxxxxxxxx xxxxxx xxxxxxx Xx xxxxxxxxxxxxx xxxxxxxxxxxxxxxxx xxxxxxxxxxx xxxxxx xxxxxxx

HASIL PENGUJIAN WATERMARKING Format Video:xxxxx


(40)

3.2.2.5Rancangan Hasil Pengujian Ekstraksi

Rancangan Hasil Pengujian Ekstraksi berfungsi untuk menampilkan hasil ekstraksi label dari video watermark yang berformat AVI dan MP4 berupa menghitung nilai

recovery rate. Rancangan Hasil Pengujian ekstraksi dapat dilihat seperti pada Gambar

3.13.

Gambar 3.13 Rancangan Hasil Pengujian Ekstraksi

3.2.2.6Rancangan About

Rancangan About ini berfungsi menampilkan informasi tentang aplikasi pada penelitian ini. Rancangan About dapat dilihat seperti pada Gambar 3.14.

Gambar 3.14 Rancangan About

Informasi Watermarking dan ekstraksi video format AVI dan MP4 dengan algoritma Echo Data Hiding

No FileVideoAsli FileVideoWatermark Label Penyisip Label Ekstraksi RR Xx xxxxxxxxxxxxx xxxxxxxxxxxxxxxxx xxxxxxxxxxx xxxxxx xxxxxxx Xx xxxxxxxxxxxxx xxxxxxxxxxxxxxxxx xxxxxxxxxxx xxxxxx xxxxxxx Xx xxxxxxxxxxxxx xxxxxxxxxxxxxxxxx xxxxxxxxxxx xxxxxx xxxxxxx Xx xxxxxxxxxxxxx xxxxxxxxxxxxxxxxx xxxxxxxxxxx xxxxxx xxxxxxx Xx xxxxxxxxxxxxx xxxxxxxxxxxxxxxxx xxxxxxxxxxx xxxxxx xxxxxxx Xx xxxxxxxxxxxxx xxxxxxxxxxxxxxxxx xxxxxxxxxxx xxxxxx xxxxxxx Xx xxxxxxxxxxxxx xxxxxxxxxxxxxxxxx xxxxxxxxxxx xxxxxx xxxxxxx

HASIL PENGUJIAN EKSTRAKSI Format Video:xxxxx


(41)

BAB 4

IMPLEMENTASI DAN PENGUJIAN

4.1Implementasi

Implementasimerupakanhasil dari perancangan sistem pada bab sebelumnya yang berisi tentang proses dan tampilan sistem mencakup keseluruhan bentuk tampilan pada sistem.

4.1.1 Proses Pembacaan File Video

Sebagai contoh dibawah ini adalah struktur file RIFF (wav)

52 48 46 46 24 08 00 00 57 41 56 45 66 6d 74 20 10 00 00 00 01 00 02 00 22 56 00 00 88 58 01 00 04 00 10 00 64 61 74 61 00 08 00 00 1e1734 00 20 1f 1e 4a 1d 3b 1f

10 f4 1e f324 e7 23 a6 3c f2 24 f2 11 c0 1a 0d 00 7f 11 00 22 07 3d 3d 0 3d 0 2 9a 2a 4f 3e 3d 00 10 10 10 03 3d 10 10 2 f 10 10 12 00 12 10 25 23 13 00 04 11 23 00 00 12 11 32 2a 2a 9f 25 10 -10 02 12 10 53 13 00 a6 11 12 23 00 0f 10 10 10 12 10 5d 23 13 70 11 26 23 00 01 13 9a 2a 2f 10 10 10 12 10 53 90 56 11 23 00 01 13 0e 22 529a 2a 10 3d 10 02 2f 10 10 10 12 -10 11 33 13 00 07 3d 10 02 3f 10 10 12 12 53 13 30 30 37 07 13 3d 10 02 f 0 10 10 12 -10 53 14 13 00 07 3d 10 02 f 0 10 00 12 26 25

Gambar 4.1Data StreamAudio Wav Dari file audio dengan format WAV di atas:

a. Empat byte pertama selalu berisi 52 48 46 46 (hexa) yang jika di konvensi mempunyai arti R =52, I =48, F= 46, F = 46 sama dengan RIFF.

b. Empat byte berikutnya berisi 24 08 00 00 menyatakan ukuran file audio yaitu 24=36, 08=8, 00=0, 00=0 yang sama dengan 36800, maka ukuran filenya adalah 36800 kb – I kb = 36799 kb.

c. Empat byte berikutnya 57 41 56 45 menyatakan jenis file: 57=W, 41=A, 56=V, 45=E

d. Empat byte berikutnya adalah 66 6d 74 20 menyatakan ID “fmt”, 66=f, 6d=m, 74=t dan 20=spasi kosong.


(42)

e. Empat byte berikutnya adalah 10 00 00 00 yang menyatakan panjang informasi, 10 = 16, 00=0, 00=0, 00=0 semuanya bernilai 16.

f. Empat byte berikutnya adalah 01 00 02 00 yang bernilai 1 dan 2 channel (stereo).

g. Empat byte berikutnya adalah 22 56 00 00 yang menyatakan sample rate

dengan nilai 22=”, 56=V, 00=0, 00=0.

h. Empat byte berikutnya adalah 88 58 01 00 yang menyatakan byte rate dengan

nilai 22=”, 56=V, 00=0, 00=0.

i. Dua byte berikutnya adalah BlockAlign yang bernilai 04 00 yang menyatakan yang menyatakan ukuran data untuk satu sample penuh dalam byte. Yang dimaksud dengan satu sample penuh adalah satu sample yang mewakili nilai dari sample pada semua channel pada suatu waktu.

j. Dua byte berikutnya adalah nilai bit per sampel (BitsPerSample) yang bernilai 10 00 adalah 16 dan 00 = 16 bit per sampel untuk sampel right channel maupun untuk sampel left channel.

k. Empat byte berikutnya adalah 64 61 74 61 yang menyatakan ID dengan nilai

64=d, 61=a, 74=t, 61=a dengan arti “data” yang menyatakan data sampel

digital audio.

l. Enam belas (16) byte berikutnya adalah sampel audio right channel sampel 1 sampai sampel ke 4 dengan nilai 1e1734 00 20 1f 1e 4a 1d 3b 1f 10 f4 1e f324. m. Enam belas (16) byte berikutnya adalah sampel audio left channel sampel 5

sampai sampel ke 8 dengan nilai f2 11 c0 1a 0d 00 7f 11 00 22 07 3d 3d 0 3d

0.

n. Selanjutnyaadalah data sampel audio.

Langkah-langkah watermarking dengan algoritma echo data hiding adalah sebagai berikut:

1. Input file video asli (cover vidio) dan key. 2. Pemisahan frame video dengan sampleaudio. 3. Pembacaan sample audio dari frame audio 4. Hitung nilai biner untuk setiap sampleaudio.

5. Konversikan label teks dan password ke nilai biner. 6. Buat echo dari sample audio.


(43)

7. Sisipkan nilai biner label ke dalam echo audio. 8. Simpan file video watermark.

Sebagai contoh 16 byte dari sample audio diatas: 1e1734 00 20 1f 1e 4a 1d 3b 1f 10 f4

1e f324 disisipi dengan pesan HEY. Sample audio dikonversikan ke biner menjadi:

1e = 00011110 17 = 00010001 34 = 00110100 00 = 00000000 20 = 10000000 If = 00011111 Ie = 00011110

4a = 01001010 1d = 00011101 3b = 00111011

1f = 00011111

10 = 00010000 f4 = 11110100 1e = 00011110 f3 = 11110011 24 = 00100100

Biner pesan “HEY” adalah 01001000 01000101 01011001 Biner key “123” adalah 00000001 00000010 00000011

Jadi, biner penyisip adalah 00000001 00000010 00000011 00100011 01001000 01000101 01011001

Dengan biner 00100011 (dalam ASCII adalah “#”) sebagai penanda batasan antara biner key dan biner pesan yang akan disisipkan.

Pembagian data sampel menjadi 4 blok dimana masing-masing berisi 16 byte/4 yaitu 4 data.

Blok-1

1e = 00011110 17 = 00010001


(44)

34 = 00110100 00 = 00000000 Blok-2

20 = 10000000 If = 00011111 Ie = 00011110

4a = 01001010 Blok-3

1d = 00011101 3b = 00111011

1f = 00011111

10 = 00010000 Blok-4

f4 = 11110100 1e = 00011110 f3 = 11110011 24 = 00100100

Pembuatan kernel 0 dan 1 dari data sampel adalah:

Pada setiap blok ditambahkan kernel 0 dan 1 secara berselang-seling, dimana Blok-1 dan Blok-3 ditambah kernel 0 sedangkan Blok-2 dan Blok-4 ditambah kernel 1 sebagai berikut:

Blok-1

1e = 00011110 17 = 00010001 34 = 00110100 00 = 00000000

0 = 00000000 <Kernel 0> Blok-2

20 = 10000000 If = 00011111 Ie = 00011110


(45)

1 = 00000001 <Kernel 1> Blok-3

1d = 00011101 3b = 00111011

1f = 00011111

10 = 00010000

0 = 00000000 <Kernel 0> Blok-4

f4 = 11110100 1e = 00011110 f3 = 11110011 24 = 00100100

1 = 00000001 <Kernel 1>

Selanjutnya sisipkan biner vektor penyisip 00000001 00000010 00000011 00100011 01001000 01000101 01011001 ke dalam setiap blok, dimana bit 0 ke dalam kernel 0 dan bit 1 ke dalam bit 1.

Langkah-langkah ekstraksi adalah sebagai berikut: 1. Input file video watermark,key serta kode ekstraksi. 2. Pembacaan header file video.

3. Baca sample audio dari stream pada posisi kode ekstraksi. 4. Baca bit terakhir atau echo.

5. Hitung nilai biner untuk setiap echo pada sample audio. 6. Rekonstruksi biner setiap 8 bit ke ASCII menjadi label. 7. Tampilkan label.

Selanjutnya pesan “HEY” dalam biner adalah: 01001000 01000101 01011001

H : 01001000 E : 01000101 Y : 01011001


(46)

0 1 0 0 1 0 0 0

Gambar 4.2 Sinyal awal yang dipecah menjadi beberapa bagian kecil

Pada Gambar 4.2 sinyal asli dibagi menjadi tujuh bagian yang diberi label a, b, c, d, e, f, dan h. Pada bagian a, c, d, dan f akan disisipkan bit 0. Untuk itu akan digunakan kernel 0 sebagai fungsi sistem pada setiap bagian tersebut. Demikian sebaliknya bit 1 akan disisipkan pada bagian b, e, g dan h maka akan digunakan kernel 1 sebagai fungsi sistem pada bagian tersebut. Untuk mencapai hasil yang tidak dapat didengar oleh pendengaran manusia, maka dapat dibuat sinyal echo 1 dengan melakukan pembuatan echo pada sinyal asli menggunakan kernel 1 dan membuat sinyal echo 0 dengan menggunakan kernel 0 sebagai fungsi sistem terhadap sinyal asli. Hasil dari sinyal sinyal tersebut dapat dilihat pada Gambar 4.3.

Gambar 4.3 Pembuatan sinyal echo 1 dan sinyal echo 0

Untuk menggabungkan dua sinyal tersebut, maka dibuat dua sinyal mixer. Sinyal

mixer terdiri dari nol dan satu tergantung dari bit yang ingin disembunyikan pada


(47)

Gambar 4.4 Sinyal Mixer

Sinyal mixer 0 kemudian dikalikan dengan sinyal echo 0 sedangkan sinyal

mixer 1 dikalikan dengan sinyal echo 1, kemudian kedua hasil tersebut dijumlahkan.

Sebagai catatan bahwa sinyal mixer 0 merupakan komplemen dari sinyal mixer 1 dan transisi antara masing masing sinyal adalah bertahap atau melandai. Jumlah antara dua sinyal mixer tersebut selalu 1. Ini akan memberikan transisi yang halus antara masing masing bagian yang dikodekan dengan bit yang berbeda, dan mencegah perubahan yang mencolok pada hasil gabungan sinyal.

4.1.2 Perhitungan Mean Square Error (MSE), Peak Signal to Noise Ratio (PSNR) dan Recovery Rate (RR)

MSE didalam statistik merupakan kuadrat rata-rata dari error yaitu perbedaan antara sinyal asli dengan sinyal estimasi. Sinyal estimasi merupakan sinyal output dari sistem. Semakin kecil nilai MSE maka sinyal asli dengan sinyal estimasi mempunyai kesamaan. MSE digunakan untuk mengukur rata-rata kesalahan yang berasal dari kuantitas yang akan diestimasi.

MSE = ∑ )2

Dimana MSE = Mean Square Error N = jumlah data sampel

S = sinyal baseline (nilai data cover audio) Se = sinyal estimasi (nilai data watermark audio)

Jika diketahui jumlah sampel (N) = 10, maka perhitungan nilai sinyal Baseline dan Estimasi dapat ditunjukkan pada tabel 4.1.


(48)

Tabel 4.1 Perhitungan Nilai Sinyal Baseline dan Estimasi

S Se (S-Se) (S-Se)2

S1 = 50 S1e = 50 S-Se = 0 0

S2 = 40 S2e = 55 S-Se = 15 225

S3 = 30 S3e = 30 S-Se = 0 0

S4 = 0 S4e = 15 S-Se = 15 225

S5 = 80 S5e = 75 S-Se = 5 25

S6 = 110 S6e = 100 S-Se = 10 100

S7 = 30 S7e = 30 S-Se = 0 0

S8 = 20 S8e = 20 S-Se = 0 0

S9 = 10 S9e = 20 S-Se = 10 100

S10 = 10 S10e = 10 S-Se = 0 0

∑ (S-Se)2 675

Jadi, nilai MSE = 1/10 x (675) = 67.5

Setelah nilai MSE diperoleh, maka selanjutnya dapat dilakukan perhitungan nilai PSNR dengan rumus PSNR = 20 x log10 (

√ ) dengan Nmax = 110

PSNR = 20 x log (

PSNR = 20 x log (

PSNR = 20 x log(13.39) PSNR = 20 x 1.12 PSNR = 22,53

Bit label watermarking “HEY” berjumlah = 24 bit dan bit label yang berhasil

diekstraksi = 24 bit maka, perhitungan recovery rate dapat dihitung dengan rumus ( )

Recovery Rate (RR)= (24/24) x 100 %= 100 %


(49)

Berikut ini adalah tampilan dan penjelasan dari form – form yang terdapat pada

aplikasi watermarking pada video AVI dengan MP4 menggunakan algoritma Echo Data Hiding.

4.2.1 Tampilan Menu Utama

Tampilan Menu Utama merupakan tampilan awalyang muncul setelah menjalankan program watermarking video. Tampilan ini berisi menu Watermarking,Extraction,

Result, Aboutdan Quit. Tampilan Menu Utama dapat dilihat pada Gambar4.5.

Gambar 4.5 Tampilan Menu Utama

4.2.2 Tampilan Form Watermarking

Dari Menu Utama pada Gambar 4.1 terdapat sub menu Watermarking berfungsi untuk melakukan proses penyisipan pesan ke dalam file video AVI dan MP4 seperti pada Gambar 4.6.


(50)

Gambar 4.6 Tampilan Form Watermarking

4.2.3 Tampilan Form Extraction

Dari Menu Utama terdapat sub menu Extraction yang berfungsi untuk melakukan deteksi label dari file video AVI dan MP4 yang ter-watermarking seperti pada Gambar 4.7.


(51)

4.2.4 Tampilan Hasil Pengujian Watermarking

Tampilan Hasil Pengujian Watermarkingmerupakan informasi hasil penyisipan label identitas pada file video AVI maupun MP4. Tampilan Hasil Pengujian Watermarking dapat dilihat pada Gambar 4.8.

Gambar 4.8 Tampilan Hasil Pengujian Watermarking

4.2.5 Tampilan Hasil Pengujian Extraction

Tampilan Pengujian Extractionmerupakan informasi hasil ekstraksi label identitas dari file video AVI maupun MP4 yang ter-watermarking. Tampilan Hasil Pengujian


(52)

Gambar 4.9 Tampilan Hasil Pengujian Extraction

4.2.6 Tampilan About

Tampilan About berfungsi untuk menampilkan keterangan tentang penulis skripsi watermarkingvideo menggunakan algoritma Echo Data Hiding(EDH). Tampilan

About dapat dilihat pada Gambar 4.10.


(53)

4.3 Hasil Implementasi dan Pengujian

Pengujian sistem berfungsi untuk mengetahui kinerja dari program dalam melakukan

watermarking dan ekstraksi file video dengan algoritma Echo Data Hiding.

4.3.1 Hasil Pengujian Watermarking

Pengujian Watermarking adalah melakukan penyisipan file video dengan panjang pesan yang bervariasi. Tampilan hasil pengujian watermarking file video dapat dilihat pada Gambar4.11.

Gambar 4.11 Tampilan Hasil Pengujian Watermarking beserta file video

Pada proses watermarking dengan menggunakan algoritma Echo Data Hiding, dilakukan penyisipan label identitas berupa teks yang kemudian diubah ke dalam nilai biner dan disisipkan pada bit-bit sample audio yang juga berupa nilai biner.Setelah proses penyisipan label berhasil dilakukan, maka diperoleh nilai MSE dan PSNR pada masing-masing file video AVI dan MP4 sesuai dengan formula yang digunakan dalam perhitungan nilai MSE dan PSNR. Berikut hasil perolehan nilai MSE dan PSNR dari proses watermarking pada AVI dan MP4 menggunakan algoritma Echo Data Hiding adalah sebagai berikut:


(54)

MSE = )2

Jika diketahui jumlah sampel (N) = 10 dan ∑ (S-Se)2 = 675 maka nilai MSE = 1/10 x (675) = 67.5

Setelah nilai MSE diperoleh, maka selanjutnya dapat dilakukan perhitungan nilai PSNR dengan rumus PSNR = 20 x log10 ( ) dengan Nmax = 110

PSNR = 20 x log (

PSNR = 20 x log (

PSNR = 20 x log(13.39) PSNR = 20 x 1.12 PSNR = 22,53

4.3.2 Hasil Pengujian Ekstraksi

Pengujian Extraction adalah melakukan pengeluaran/ pengembalianlabel dari dalam file video watermark. Tampilan Pengujian Extraction dapat dilihat pada Gambar 4.12.

Gambar 4.12 Tampilan Hasil Pengujian Ekstraksi beserta file video

Pada proses ekstraksi, label penyisip berupa nilai biner dalam representasi teks dipanggil kembali untuk mendapatkan nilai biner dan teks sesuai dengan label


(55)

penyisip yang telah disisipkan pada proses watermarking sebelumnya. Nilai pengembalian label penyisip melalui proses ekstraksi ini yang dimaksud sebagai nilai Recovery Rate (RR). Berikut perolehan hasil dari ekstraksi berupanilai RR:

Bit label watermarking “FASILKOM-TI” berjumlah = 88 bit dan bit label yang berhasil diekstraksi = 88 bit maka, perhitungan Recovery Rate dapat dihitung dengan

( )

Recovery Rate= (88/88) x 100% = 100%

Setelah melakukan pengujian terhadap sistem maka diperoleh hasil pengujian. Hasil pengujian sistem terhadap proses watermarking dan ekstraksi pada 6 buah sample video AVI dan 6 buah sample video MP4 memperoleh nilai rata-rata untuk parameter-parameter yang diuji disajikan pada tabel 4.2.

Tabel 4.2 Nilai Rata-rata MSE, PSNR dan RR

No.

AVI MP4

MSE PSNR RR MSE PSNR RR

1. 41,77 31,92 100 59,08 32,55 100

2. 38,10 32,32 100 53,89 32,95 100

3. 44,37 31,66 100 62,74 32,29 100

4. 26,44 33,91 100 37,39 34,54 100

5. 51,23 31,04 100 72,45 31,66 100

6. 46,80 31,43 100 66,19 32,06 100

Rata-rata

41,45 32,05 100 58,62 32,68 100

Nilai MSE rata-rata untuk video format AVI : 41.45 Nilai PSNR rata-rata untuk video format AVI : 32,05 Nilai Recovery Rate rata-rata video format AVI : 100

Nilai MSE rata-rata untuk video format MP4 : 58,62 Nilai PSNR rata-rata untuk video format MP4 : 32,68 Nilai Recovery Rate rata-rata video format MP4 : 100


(1)

COMPARISON OF WATERMARKING ON AVI AND MP4 USING ECHO DATA HIDING ALGORITHM

ABSTRACT

The owner of digital video needs to keep the originality of ownership identity. To cover that, watermarking technology is the solutions, where this technique is one of those many ways to insert or to hide the identity label into the digital file so that unauthorized people can’t view nor access it without a key. The method of Watermarking, Echo Data Hiding, is used to hide data into video file as echo representation. This experiment compares two video files such as AVI and MP4 using Echo Data Hiding Algorithm. This experiment uses Mean Squared Error (MSE), Peak Signal to Noise Ratio (PSNR) and Recovery Rate (RR) parameters. The result of this experiment shows that watermarking process can run well for both of the files with limit of 28 characters. From the result we can also see that Echo Data Hiding can run well on AVI videos using MSE parameters. From PSNR parameters side, it is shown that Echo Data Hiding method works better on MP4 video files. The result of RR for both videos are the same. Implementation using Microsoft Visual Studio 2010 using VB.Net programming language.


(2)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak vi

Abstract vii

Daftar Isi viii

Daftar Tabel x

Daftar Gambar xi

Daftar Lampiran xii

Bab 1 Pendahuluan 1

1.1 Latar Belakang 1

1.1.1 Penelitian Terkait 2

1.2Rumusan Masalah 3

1.3Batasan Masalah 3

1.4Tujuan Penelitian 4

1.5Manfaat Penelitian 4

1.6 Metode Penelitian 4

1.7Sistematika Penulisan 5

Bab 2 Tinjauan Pustaka 6

2.1 Video Digital 6

2.1.1 Format File AVI (Audio Video Interleaved) 8

2.1.2 Format Video MPEG 10

2.2 Watermarking 11

2.2.1 Digital Watermarking 12

2.2.2 Aplikasi Watermark 15

2.2.3 Klasifikasi Watermarking 16

2.2.4 Video Watermarking 17

2.2.5 Parameter Watermarking 18

2.3 Metode Echo Data Hiding 19

2.4 Flowchart 24

2.5 Data Flow Diagram 25

Bab 3 Analisis dan Perancangan 27

3.1 Analisis Sistem 27

3.1.1 Analisis Masalah 27

3.1.2Analisis Persyaratan 29


(3)

3.1.4 Analisis Proses Sistem 35

3.2 Perancangan Sistem 38

3.2.1 Perancangan Flowchart 38

3.2.1.1 Flowchart Watermarking Video 39 3.2.1.2 Flowchart Ekstraksi 39 3.2.2Perancangan Antarmuka (Interface) 40 3.2.2.1 Rancangan Menu Utama 41

3.2.2.2 Rancangan Form Watermarking 42

3.2.2.3 Rancangan Form Extraction 43

3.2.2.4 Rancangan Hasil Pengujian Watermarking 45 3.2.2.5 Rancangan Hasil Pengujian Ekstraksi 46

3.2.2.6 Rancangan About 46

Bab 4 Implementasi dan Pengujian 47

4.1 Implementasi 47

4.1.1 Proses Pembacaan File Video 47

4.1.2 Perhitungan MSE, PSNR dan RR 54

4.2 Tampilan Sistem 56

4.2.1 Tampilan Menu Utama 56

4.2.2 Tampilan Form Watermarking 57

4.2.3 Tampilan Form Extraction 57

4.2.4 Tampilan Hasil Pengujian Watermarking 58 4.2.5 Tampilan Hasil Pengujian Extraction 59

4.2.6 Tampilan About 59

4.3Hasil Implementasi dan Pengujian 60

4.3.1 Hasil Pengujian Watermarking 60

4.3.2 Hasil Pengujian Ekstraksi 62

Bab 5 Kesimpulan dan Saran 64

5.1 Kesimpulan 64

5.2 Saran 65


(4)

DAFTAR TABEL

Nomor Tabel

Nama Tabel Halaman

2.1 3.1 3.2 4.1 4.2

Simbol-simbol Flowchart

Dokumentasi Naratif Use CaseWatermarking Dokumentasi Naratif Use CaseEkstraksi Perhitungan Nilai Sinyal Baseline dan Estimasi Nilai Rata-rata MSE, PSNR dan RR

25 31 33 55 63


(5)

DAFTAR GAMBAR

Nomor Gambar

Nama Gambar Halaman

2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 Penyisipan watermark Ekstraksi watermark

Kernel dan Proses Pembentukan Echo Nilai Biner Sinyal

Contoh Blok Sinyal

Dua Buah Sinyal Gabungan

Penyisipan Pesan pada Echo Data Hiding Ekstraksi Pesan pada Echo Data Hiding

Diagram Ishikawa untuk Analisis Permasalahan Sistem Use CaseDiagram Sistem Aplikasi

Activity DiagramProses Watermarking Activity DiagramProses Ekstraksi

Sequence Diagram Proses Watermarking Sequence Diagram Proses Ekstraksi Flowchart Watermarking

Flowchart Ekstraksi Rancangan Menu Utama

Rancangan Form Watermarking Rancangan Form Ekstraksi

Rancangan Hasil Pengujian Watermarking Rancangan Hasil Pengujian Ekstraksi Rancangan About

Data Stream Audio WAV

Sinyal awal yang dipecah menjadi beberapa bagian kecilPembuatan sinyal echo 1 dan sinyal echo 0 Sinyal Mixer

Tampilan Menu Utama

Tampilan Form Watermarking Tampilan Form Extraction

Tampilan Hasil Pengujian Watermarking Tampilan Hasil Pengujian Extraction Tampilan About

Tampilan Hasil Pengujian Watermarking beserta file video Tampilan Hasil Pengujian Ekstraksi beserta file video

13 14 20 22 22 22 23 24 28 30 32 34 35 36 39 40 41 42 43 45 46 46 47 52 53 53 56 57 58 58 59 60 61 62


(6)

DAFTAR LAMPIRAN

Halaman