• Tidak ada hasil yang ditemukan

LAMPIRAN A : LISTING PROGRAM

N/A
N/A
Protected

Academic year: 2019

Membagikan "LAMPIRAN A : LISTING PROGRAM"

Copied!
17
0
0

Teks penuh

(1)

LAMPIRAN A : LISTING PROGRAM

1. frmMenu.frm

Dim CN As Connection Dim rsHapus As Recordset

Private Sub DfaHasil_Click() Call frmLap.Cetak

End Sub

Private Sub Form_Load()

Set CN = New ADODB.Connection

CN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\dbLLSB.mdb;Persist Security Info=False"

CN.Open End Sub

Private Sub HapUji_Click() On Error Resume Next

XX = MsgBox("Semua data hasil pengujian mau dihapus ?", vbYesNo) If XX = vbYes Then

Set rsHapus = New ADODB.Recordset

rsHapus.Open "Delete from Hasil1", CN, 1, 2 Set rsHapus = Nothing

Kill App.Path & "\BackUpMP3\*.*" MsgBox "Proses selesai"

Exit Sub Else

MsgBox "Batal ..." End If

End Sub

Private Sub qt_Click() End

End Sub

Private Sub Steg_Click() Main.Show

End Sub

2. Main.frm Option Explicit

Dim FSO As New FileSystemObject, fileInfo As File Private WithEvents AAC As clsAAC

Sub CariID()

Set rsCari = New ADODB.Recordset

(2)

ID = rsCari!ID + 1 Else

ID = 1 End If

Set rsCari = Nothing

End Sub

Sub Bersih()

List1.Visible = True List2.Visible = True List3.Visible = True List1.Clear

List2.Clear List3.Clear

Label8.Visible = True Label15.Visible = True Label18.Visible = True Text1.Text = "" Text2.Text = "" Text4.Text = "" lblUkuran1 = "" lblUkuran2 = "" Ukuran1 = 0 Ukuran2 = 0 lblKelang = "" Kelang = 0 Text3(0).Text = "" Text3(1).Text = "" List1.Clear List2.Clear pesan = "" bolSisip = False bolEkstrak = False NmFile1 = "" Title1 = "" Pesan1 = "" Lama1 = 0 Lama2 = 0 Kode = "" lblLama = "" bolSisip = False

cmdSisip.Enabled = False cmdEkstrak.Enabled = False cmdLoad.Enabled = True cmdLoad.SetFocus End Sub

(3)

List2.Visible = False Label8.Visible = False Label15.Visible = False Label18.Visible = False List3.Visible = False

Label13.Visible = False Label17.Visible = False lblUkuran2.Visible = False

Kode = "E" bolEkstrak = True

Call AAC.ExtractPesan(Text1.Text, Text4.Text) End Sub

Private Sub cmdLoad_Click() Call Bersih

cmd.Filter = "All Files (*.MP3)|*.MP3" cmd.DialogTitle = "Open File"

cmd.ShowOpen

If (cmd.Filename <> "") Then

Set fileInfo = FSO.GetFile(cmd.Filename) Ukuran1 = fileInfo.Size

lblUkuran1.Caption = Ukuran1 / 1024 NmFile1 = ""

NmFile1 = cmd.Filename Title1 = cmd.FileTitle Text1 = cmd.Filename End If

End Sub

Sub Simpan() Call CariID

Set rsNo = New ADODB.Recordset

rsNo.Open "Hasil1", CN, adOpenDynamic, adLockOptimistic rsNo.AddNew

rsNo!ID = ID

rsNo!NmFile = NmFile1 rsNo!Title = Title1 rsNo!Ukuran = Ukuran1 rsNo!pesan = Pesan1 If Kode = "S" Then rsNo!Lama = Lama1 Else

rsNo!Lama = Lama2 End If

rsNo!Kelang = Val(Text4.Text) rsNo!status = "1"

(4)

MsgBox "Data sudah disimpan" End Sub

'Private Sub cmdSimpan_Click() Call Simpan

cmdSimpan.Enabled = False Call Bersih

End Sub

Private Sub cmdSisip_Click() List1.Visible = True List2.Visible = True Label8.Visible = True Label15.Visible = True List3.Visible = True Label18.Visible = True

Label13.Visible = True Label17.Visible = True lblUkuran2.Visible = True

Pesan1 = RTrim(Text2) Kode = "S"

bolSisip = True

Call AAC.GetAudioData(Text1.Text, fileInfo.Name, Text2.Text, Text4.Text) End Sub

Private Sub cmdTutup_Click() Set Main = Nothing

Unload Me End Sub

Private Sub Form_Activate() If Kode = "S" Then

List1.Visible = True List2.Visible = True Label8.Visible = True Label15.Visible = True List3.Visible = True Label18.Visible = True ElseIf Kode = "E" Then List1.Visible = False List2.Visible = False Label8.Visible = False Label15.Visible = False List3.Visible = False Label18.Visible = False Else

(5)

Label15.Visible = True List3.Visible = True Label18.Visible = True End If

cmdLoad.Enabled = True cmdSisip.Enabled = False cmdEkstrak.Enabled = False

If bolSisip = True Then lblKelang.Caption = Kelang ElseIf bolEkstrak = True Then lblKelang.Caption = Kelang End If

cmdLoad.SetFocus End Sub

Private Sub Form_Load() Set AAC = New clsAAC

Set CN = New ADODB.Connection

CN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\dbLLSB.mdb;Persist Security Info=False"

CN.Open End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, Y As Single) OnForm

End Sub

Private Sub Form_Unload(Cancel As Integer) Set Main = Nothing

Unload Me End Sub

Private Sub Text2_Change() If Text2.Text = "" Then cmdSisip.Enabled = False Else

cmdSisip.Enabled = True End If

End Sub

Private Sub Text4_Change() If (Text4.Text = "") Then cmdEkstrak.Enabled = False Else

cmdEkstrak.Enabled = True End If

(6)

3. frmLap.frm Option Explicit

Dim rsCari As Recordset

Private Sub cmdCetak_Click() Call Cetak

End Sub

Private Sub Command1_Click() Unload Me

End Sub

Sub Cetak()

Me.WindowState = 2

cr.ReportFileName = App.Path & "\Report 3.rpt" cr.RetrieveDataFiles

cr.Connect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\dbLLSB.mdb;Persist Security Info=False"

cr.WindowShowRefreshBtn = True cr.PrintReport

cr.WindowState = crptMaximized cr.Action = 1

End Sub

Private Sub Form_Load()

Set CN = New ADODB.Connection

CN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\dbLLSB.mdb;Persist Security Info=False"

CN.Open End Sub

Private Sub Form_Unload(Cancel As Integer) Unload Me

frmMenu.Show End Sub

4. frmTmplProses.frm Dim tmpJarak As Integer

Private WithEvents AAC As clsAAC

Public Sub BinerAudio2(Teks As String) rtbSisip.SelBold = False

rtbSisip.SelStart = rtbSisip.SelStart rtbSisip.SelText = Teks

If tmpJarak = jarak + 1 Then

rtbSisip.SelStart = rtbSisip.SelStart - 1 rtbSisip.SelLength = 1

(7)

rtbSisip.SelBold = False

rtbSisip.SelStart = rtbSisip.SelStart + 1

tmpJarak = 0 End If

End Sub

Public Sub IsiRTBSisip() Dim noBaris As Integer Dim noCount As Integer Dim i&

tmpJarak = jarak + 1 noCount = 0

noBaris = 0

For i = 0 To UBound(sample_audio_sisip) If noCount <> 0 And noCount <> 4 Then Call BinerAudio2(sample_audio_sisip(i)) rtbSisip.SelText = " "

End If

If noCount = 0 Then rtbSisip.SelText = "1) "

Call BinerAudio2(sample_audio_sisip(i)) rtbSisip.SelText = " "

noBaris = 1 End If

rtbSisip.SelBold = False If noCount = 4 Then noBaris = noBaris + 1 rtbSisip.SelText = vbCrLf

rtbSisip.SelText = noBaris & ") " Call BinerAudio2(sample_audio_sisip(i)) rtbSisip.SelText = " "

noCount = 0 End If

noCount = noCount + 1 tmpJarak = tmpJarak + 1 Next

End Sub

Public Sub BinerAudio1(Teks As String) rtbBiner.SelBold = False

rtbBiner.SelText = Teks End Sub

(8)

Dim i&

noCount = 0 noBaris = 0

For i = 0 To UBound(sample_audio) If noCount <> 0 And noCount <> 4 Then Call BinerAudio1(sample_audio(i)) rtbBiner.SelText = " "

End If

If noCount = 0 Then rtbBiner.SelText = "1) "

Call BinerAudio1(sample_audio(i)) rtbBiner.SelText = " "

noBaris = 1 End If

If noCount = 4 Then noBaris = noBaris + 1 rtbBiner.SelText = vbCrLf

rtbBiner.SelText = noBaris & ") " Call BinerAudio1(sample_audio(i)) rtbBiner.SelText = " "

noCount = 0 End If

noCount = noCount + 1 Next

End Sub

Private Sub Form_Load() If Kode = "S" Then

IsiRTBPesan (pesanTeks) IsiRTBBiner

IsiRTBSisip IsiFileAudio IsiFileSisip Else

IsiRTBPesan (pesanTeks) IsiRTBSisip

IsiFileSisip

lblTeks.Visible = False lblBiner.Visible = False rtbTeks.Visible = False rtbBiner.Visible = False End If

End Sub

Private Sub Form_Unload(Cancel As Integer) Set frmLap = Nothing

(9)

End Sub

Public Sub IsiFileAudio() Dim noBaris As Integer Dim noCount As Integer Dim i&

noCount = 0 noBaris = 0

For i = 0 To UBound(FileAudio)

If noCount <> 0 And noCount <> 4 Then Call TeksAudio1(FileAudio(i))

rtbTeks.SelText = " " End If

If noCount = 0 Then rtbTeks.SelText = "1) " Call TeksAudio1(FileAudio(i)) rtbTeks.SelText = " " noBaris = 1

End If

If noCount = 4 Then noBaris = noBaris + 1 rtbTeks.SelText = vbCrLf

rtbTeks.SelText = noBaris & ") " Call TeksAudio1(FileAudio(i)) rtbTeks.SelText = " " noCount = 0

End If

noCount = noCount + 1 Next

End Sub

Public Sub TeksAudio1(Teks As Byte) rtbTeks.SelBold = False

rtbTeks.SelText = DecToChar(Teks) End Sub

Public Sub IsiFileSisip() Dim noBaris As Integer Dim noCount As Integer Dim i&

tmpJarak = jarak + 1 noCount = 0

noBaris = 0

(10)

End If

If noCount = 0 Then

rtbTeksSisip.SelText = "1) " Call TeksAudio2(FileAudioSisip(i)) rtbTeksSisip.SelText = " " noBaris = 1

End If

If noCount = 4 Then noBaris = noBaris + 1

rtbTeksSisip.SelText = vbCrLf

rtbTeksSisip.SelText = noBaris & ") " Call TeksAudio2(FileAudioSisip(i)) rtbTeksSisip.SelText = " " noCount = 0

End If

noCount = noCount + 1 Next

End Sub

Public Sub TeksAudio2(Teks As Byte) rtbTeksSisip.SelBold = False

rtbTeksSisip.SelText = DecToChar(Teks)

If tmpJarak = jarak + 1 Then

rtbTeksSisip.SelStart = rtbSisip.SelStart - 1 rtbTeksSisip.SelLength = 1

rtbTeksSisip.SelBold = True rtbTeksSisip.SelLength = 0 rtbTeksSisip.SelBold = False

rtbTeksSisip.SelStart = rtbSisip.SelStart + 1

tmpJarak = 0 End If

End Sub

Public Function DecToChar(Dec As Byte) As String Dim a As String

a = Chr(Dec) DecToChar = a End Function

Public Sub IsiRTBPesan(HiddenTeks As String) Dim x As Long

(11)

If Kode = "S" Then

Else End If

noBrs = 1

For x = 1 To Len(HiddenTeks) a = Asc(Mid(HiddenTeks, x, 1)) b = DecimalToBinary(a)

If Kode = "S" Then If noBrs = 1 Then

rtbPesan.SelText = "1) " & Mid(HiddenTeks, x, 1) & " = " & b

Else

rtbPesan.SelText = vbCrLf

rtbPesan.SelText = noBrs & ") " & Mid(HiddenTeks, x, 1) & " = " & b End If

Else

If noBrs = 1 Then

rtbPesan.SelText = "1) " & b & " = " & Mid(HiddenTeks, x, 1)

Else

rtbPesan.SelText = vbCrLf

rtbPesan.SelText = noBrs & ") " & b & " = " & Mid(HiddenTeks, x, 1) End If

End If

noBrs = noBrs + 1 Next

End Sub

Public Function DecimalToBinary(DecimalNum As Long) As String Dim tmp As String

Dim n As Long

n = DecimalNum

tmp = Trim(Str(n Mod 2)) n = n \ 2

Do While n <> 0

tmp = Trim(Str(n Mod 2)) & tmp n = n \ 2

Loop

(12)

5. clsAAC.cls Option Explicit

Dim SampleAudio() As String

Event Progress(Procent As Integer)

Private Function FileExist(Filename As String) As Boolean

On Error GoTo FileDoesNotExist

Call FileLen(Filename) FileExist = True Exit Function

FileDoesNotExist: FileExist = False

End Function

Public Sub GetAudioData(SrcFile As String, NamaFile As String, pesan As String, numKelang As String)

Dim FileNum As Integer Dim FileNew As Integer Dim FileBinary() As Byte Dim FileSize As Long

Dim i&, a&, x&, j&, k&, syncSmple& Dim status As Boolean

Dim n&, n_bit&

Dim BinerPesan As String

'Pengecekan file tersebut ada atau tidak ada If (Not FileExist(SrcFile)) Then

Err.Raise vbObjectError, "clsAAC.GetAudioData", "File tidak ada ...." End If

time.StartTimer

'Ambil semua data yang ada pada file FileNum = FreeFile

Open SrcFile For Binary As #FileNum ReDim FileBinary(0 To LOF(FileNum) - 1) ReDim SampleAudio(0 To LOF(FileNum) - 1) Get #FileNum, , FileBinary()

FileSize = LOF(FileNum) Close #FileNum

k = 0

For j = 0 To FileSize - 2

If (FileBinary(j) = &HFF) And (FileBinary(j + 1) = &HFB) Then j = j + 36

(13)

Next

syncSmple = k

Main.List1.Clear Main.List2.Clear Main.List3.Clear

If (numKelang = "") Then

MsgBox "Jumlah Lompatan sebagai kata kunci belum Anda isi", vbInformation, "Info" Else

BinerPesan = HiddenTextToBinary(pesan) n_bit = Len(BinerPesan)

If ((FileSize - syncSmple) < Len(Pesan)) Then

MsgBox "Pesan Teks lebih besar daripada ukuran file audio yang bisa dimasukkan", vbInformation, "Info"

Else

status = False n = numKelang a = 0

x = 1

For i = 0 To FileSize - 1

ReCheck: If (FileBinary(i) = &HFF) And (FileBinary(i + 1) = &HFB) Then status = True

i = i + 36

GoTo GetSmplAud End If

GetSmplAud: If status = True Then Do While i <> FileSize - 1

If Not ((FileBinary(i) = &HFF) And (FileBinary(i + 1) = &HFB)) Then SampleAudio(a) = DecimalToBinary(Val(FileBinary(i)))

Main.List2.AddItem (SampleAudio(a)) n = n + 1

'proses LLSB

If (n = numKelang + 1) And (x <= Len(BinerPesan)) Then

SampleAudio(a) = Left(SampleAudio(a), 7) & Mid(BinerPesan, x, 1) x = x + 1

n = 0

FileBinary(i) = BinaryToDecimal(SampleAudio(a)) Main.List3.AddItem (SampleAudio(a))

If (x > Len(BinerPesan)) Then ' dibuat supaya program tidak terlalu lama Exit For

End If End If a = a + 1 i = i + 1 Else

(14)

n = numKelang GoTo ReCheck End If

Loop End If Next

‘save new one FileNew = FreeFile

Open App.Path & "\BackUpMP3\" & NamaFile For Binary As #FileNew Put #FileNew, , FileBinary()

Seek #FileNew, LOF(FileNew) + 1

'Put #FileNew, , Right(" " & numKelang, 2) & Right(" " & n_bit, 3) Main.lblUkuran2.Caption = LOF(FileNew) / 1024

Close #FileNew

time.StopTimer

Main.lblLama.Caption = Format(time.Elasped, "0.000000") Lama1 = Format(time.Elasped, "0.000000")

Call Main.Simpan 'End If

End If End Sub

Public Function BinaryToDecimal(Binary As String) As Long Dim n As Long

Dim s As Integer

For s = 1 To Len(Binary)

n = n + (Mid(Binary, Len(Binary) - s + 1, 1) * (2 ^ (s - 1))) Next s

BinaryToDecimal = n End Function

Public Function DecimalToBinary(DecimalNum As Long) As String Dim tmp As String

Dim n As Long

n = DecimalNum

tmp = Trim(Str(n Mod 2)) n = n \ 2

Do While n <> 0

tmp = Trim(Str(n Mod 2)) & tmp n = n \ 2

Loop

(15)

Public Function HiddenTextToBinary(HiddenTeks As String) As String Dim x, a As Long

Dim b As String

For x = 1 To Len(HiddenTeks) a = Asc(Mid(HiddenTeks, x, 1)) b = b & DecimalToBinary(a)

Main.List1.AddItem (Right("00000000" & DecimalToBinary(a), 8)) Next

HiddenTextToBinary = b End Function

Public Function HiddenTextToChar(HiddenBinary As String) As String Dim x, a, b, c As Long

Dim HideArr() As String Dim Teks As String

ReDim HideArr(0 To Len(HiddenBinary) / 8) a = 0

x = 1

Do While x <= Len(HiddenBinary) HideArr(a) = Mid(HiddenBinary, x, 8) a = a + 1

x = x + 8 Loop

For b = 1 To a

c = BinaryToDecimal(HideArr(b - 1)) Teks = Teks & Chr(c)

Next

HiddenTextToChar = Teks End Function

Public Sub ExtractPesan(SrcFile As String, num_Kelang As String) Dim FileNum As Integer

Dim FileNew As Integer Dim FileBinary() As Byte Dim FileSize As Long Dim i&, a&

Dim status As Boolean Dim n&, x&

Dim BinerPesan As String Dim PesanChar As String Dim BitPesan As String Dim GetKelang As String Dim GetNBiner As String Dim numKelang As Integer

(16)

If (Not FileExist(SrcFile)) Then

Err.Raise vbObjectError, "clsAAC.ExtractPesan", "File tidak ada ...." End If

'Ambil semua data yang ada pada file FileNum = FreeFile

Open SrcFile For Binary As #FileNum ReDim FileBinary(0 To LOF(FileNum) - 1) ReDim SampleAudio(0 To LOF(FileNum) - 1) Get #FileNum, , FileBinary()

FileSize = LOF(FileNum) Close #FileNum

'GetKelang = Chr(FileBinary(FileSize - 2)) & Chr(FileBinary(FileSize - 1)) 'GetKelang = Chr(FileBinary(FileSize - 5)) & Chr(FileBinary(FileSize - 4)) 'GetNBiner = Chr(FileBinary(FileSize - 3)) & Chr(FileBinary(FileSize - 2)) & Chr(FileBinary(FileSize - 1))

If (num_Kelang = "") Then

MsgBox "Jumlah Lompatan sebagai kata kunci belum Anda isi", vbInformation, "Info" ElseIf Not (Trim(GetKelang) = num_Kelang) Then

MsgBox "Kata kunci Anda salah!", vbInformation, "Info" Else

time.StartTimer

numKelang = num_Kelang 'jarak = numKelang ' PesanChar = "" BinerPesan = "" status = False n = numKelang a = 0

x = 1

For i = 0 To FileSize - 1

ReCheck: If (FileBinary(i) = &HFF) And (FileBinary(i + 1) = &HFB) Then status = True

i = i + 36

GoTo GetSmplAud End If

GetSmplAud: If status = True Then Do While i <> FileSize - 1

If Not ((FileBinary(i) = &HFF) And (FileBinary(i + 1) = &HFB)) Then SampleAudio(a) = DecimalToBinary(Val(FileBinary(i)))

n = n + 1

'proses extract LLSB

If (n = numKelang + 1) Then

BitPesan = Right(SampleAudio(a), 1) BinerPesan = BinerPesan & BitPesan x = x + 1

n = 0

(17)

If Not (GetNBiner + 1 < x) Then

PesanChar = PesanChar & BinerPesan BinerPesan = ""

Else

PesanChar = HiddenTextToChar(PesanChar) Main.Text2.Text = PesanChar

Exit For End If End If End If a = a + 1 i = i + 1 Else

status = False n = numKelang GoTo ReCheck End If

Loop End If Next

time.StopTimer

Main.lblLama.Caption = Format(time.Elasped, "0.000000") Lama2 = Format(time.Elasped, "0.000000")

Pesan1 = Trim(Main.Text2.Text) Call Main.Simpan

Referensi

Dokumen terkait

Biaya langsung non personil, dihitung berdasarkan jumlah volume pekerjaan x harga satuan. – Dijumlahkan semua biaya untuk seluruh

Kondisi SM Rimbang Baling sangat memprihatinkan saat ini, dan sangat disayangkan jika pada akhirnya, pemasalahan yang terjadi di kawasan konservasi menyebabkan

Hal ini terjadi karena semakin banyak sudu yang digunakan maka semakin banyak pula jumlah sudu yang berada di daerah downstream yang akan menghasilkan

Jumlah Saham yang ditawarkan Saham Biasa Atas Nama dengan Nilai Nominal Rp.

Bacalah berbagai literatur lainnya tentang karakteristik peserta didik SD dan prinsip- prinsip pembelajaran yang mendidik dan tuliskan hal-hal yang sulit dipahami dan tidak dibahas

It can be concluded that this capacity building and workshop can improve the teachers’ understanding in preparing local government financial statement so that the teachers’ be ready

Produktivitas karyawan diperoleh dari data sekunder yang diambil dari. laporan hasil kerja karyawan bagian produksi dengan

Laporan Akhir ini disusun berdasarkan apa yang telah kami lakukan pada saat pengerjaan alat simulasi baik dari proses pembuatan, proses pengujian dan perencanaan