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

dokumen-dokumen yang mirip
LAMPIRAN. Dim WithEvents diagnosa As New DB_MYSQL Dim sql = "select * from gejala order by kode asc"

Menjelaskan variabel aksi sebagai data string nilai,hasil dan simpan sebagai data double.

PENGGUNAAN DATA DAN VARIABEL KOMPUTER APLIKASI AKUNTANSI V PRODI AKUNTANSI - UNIKOM

P5 Variabel, Tipe Data dan Operator

TiPe Data Array di Vb.net. By Faizah,S.Kom


Writting Procedure and Function

PEMROGRAMAN VISUAL BASIC

MODUL 2 PERANCANGAN INTERFACE

Budi permana, S.Kom

LISTING PROGRAM. namespace NTRUEOF { public class parameterenkripsi { public static readonly parameterenkripsi parameterenkripsi(401, 2048, 113, 60);

PENDAHULUAN. A. Membuat Database dalam SQL SERVER. 1. Klik Kanan pada databases lalu pilih new database

Budi Permana, S.Kom Pendahuluan. Lisensi Dokumen:

BAB IV IMPLEMENTASI DAN PENGUJIAN

IV. RANCANG BANGUN SISTEM. Perangkat lunak bantu yang dibuat adalah perangkat lunak yang digunakan untuk

PENGGUNAAN STRUKTUR KONTROL


BAB IV ANALISA DAN PERANCANGAN

Pertemuan ke-3. Statemen input/output Struktur Kontrol Keputusan

KARTU BIMBINGAN TUGAS AKHIR MAHASISWA

PEMROGRAMAN VB.NET. Sintaks Pada Class

BAB I PENDAHULUAN 1.1 LATAR BELAKANG MASALAH



LISTING PROGRAM. Public m, n, i, j, result1, cocok1, mpnext(0 To 255) As Integer

VISUAL PROGRAMMING 2. bangdanu.wordpress.com. By: Danu Wira Pangestu

BAB 4 PROTOKOL TCP UDP - REMOTE

PEMROGRAMAN VB.NET. Koneksi Ke Database

Berikut. langkahnya: Pastikan. anda sudah. - Klik File. Berikut. - Save All


BAB-2 : TIPE DATA, VARIABEL DAN OPERATOR

Aplikasi Login Dengan Database dan Tanpa Database Pada Visual Basic 2010

LAMPIRAN A. Private Sub Menu_utama_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Data Hasil Penelitian bobot 200 butir persilangan tanaman jagung

Bab 4 Hasil dan Pembahasan

MODUL PRAKTIKUM CLENT SERVER. Menggunakan Visual Basic 2010 dan MySQL. (Prodi Manajemen Informatika D3)

Source Code Test Program Dengan VB Net

BAB VIII PENGENALAN DATABASE

P6 Struktur Kontrol pada Visual Basic.Net

Properti HttpWebRequest 1. Properi Informasi Methode, PreAuthenticate dan Versi Protokol 4. Properti Path, Url, Port dan Scheme 5


MODUL 3 PRAKTIKUM PEMROGRAMAN VISUAL VARIABEL, TIPE DATA, DAN OPERATOR PADA VB.NET

BAB III ANALISIS DAN DESAIN SISTEM

BAB IV IMPLEMENTASI DAN EVALUASI SISTEM. telah dibuat sebelumnya, sehinggga user dapat memahami jalannya sistem tersebut.

MODUL 2 SELECTION & LOOPING PADA FORM

LAMPIRAN. Kelompok kami melakukan teknik wawancara sebanyak dua kali, di awal masa

MENU. 5.1 Membuat MenuStrip

BAB III ANALISIS DAN DESAIN SISTEM

Pengenalan Microsoft Visual Studio 2010

P8 Procedure & Function pada Visual Basic.Net

LAMPIRAN SKRIPSI. A. Lampiran Capture Program. Gambar L.1 Tampilan Layar Menu Home. Gambar L.2 Tampilan Layar Menu Login

Backup dan Restore Database SQL Server 2005 Lewat Aplikasi Backup

Modul 8. Pokok Bahasan: Class dan Object Field Metode Properti Deklarasi Objek dan Instantiasi Objek Constructor Event Inheritance

TUGAS 3 PRAKTIKUM PEMROGRAMAN.NET

BAB IV IMPLEMENTASI DAN PENGUJIAN

M. Choirul Amri. 2.1 Membuat Project Baru.

M. Choirul Amri.




MODUL-MODUL PRAKTIKUM VB.

pertemuan 2 Tipe Data, Variabel, Konstanta, Fungsi dan Operator

Bab 4 Hasil dan Pembahasan

DAFTAR PUSTAKA. Anton, Howard Aljabar Linier Elementer. Jakarta: Erlangga

Brigida Arie Minartiningtyas, M.Kom

Pengertian Data datum

MODUL 2 IP ADDRESS SOCKET

PEMROGRAMAN INPUT JURNAL TRANSAKSI

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

MODUL II FUNGSI NUMERIK. A. TUJUAN Memahami mengenai penggunaan numerik. Membuat program numerik sederhana menggunakan VB.

Gratis Tutorial Pemograman Visual Basic MEMBUAT CRUD VISUAL BASIC.NET DATABASE MYSQL

Metode yang umum digunakan :


PENGENALAN VISUAL BASIC 2005

Denda = 28 % x pokok PKB x 2 ( angka 2 dilihat catatan no1) =.(denda PKB)

PERANCANGAN APLIKASI ENKRIPSI DEKRIPSI MENGGUNAKAN METODE CAESAR CHIPER DAN OPERASI XOR


Spesifikasi: Ukuran: 14x21m Tebal: 220 hlm Harga: Rp Terbit pertama: Mei 2005 Sinopsis singkat:

Cara Koneksi Database

BAB IV ANALISA DAN PERANCANGAN

P11 & 12 Operasi DML pada Form Aplikasi (Project Aplikasi Rumah Sakit)

Teori Pengolahan Citra PJJ-4. Hero Yudo Martono 28 April 2016

BAB 1 PENDAHULUAN Latar Belakang

Aplikasi Penggunaan If Then Else dan Select Case Pada Visual Basic 2010

BAB II ARITMATIKA DAN PENGKODEAN

Disini kita akan bahas cara koneksi antara Database MySQL dengan VB.Net 2010, semoga dengan ini E-book ini bisa ingat sepanjang jaman ya ^ ^

BAB VII MENU, TOOLBAR DAN STATUSBAR

CLASS. Program yang dibuat melalui Class Library memiliki format penulisan seperti berikut: Class Form memiliki bentuk program berikut:

BAB 3 SYSTEM AKSES WINDOWS

BAB Memulai VB.Net

Membuat Program Kriptografi dengan VB.Net 2010

TEKNIK PENYEMBUNYIAN PESAN TEKS PADA MEDIA CITRA GIF DENGAN METODE LEAST SIGNIFICANT BIT (LSB)

BAB 2 LANDASAN TEORI

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

VARIABEL, OPERATOR DAN EKSPRESI

PEMROGRAMAN TERSTRUKTUR II

BAB III ANALISIS DAN DESAIN SISTEM

BAB IV IMPLEMENTASI DAN PENGUJIAN

WAWANCARA SEBELUM IMPLEMENTASI. 1. Sejak kapan Klinik Gigi Drg. Kosasih Kurnia berdiri? memadai dengan jumlah pasien yang semakin bertambah.

PENGENALAN VISUAL BASIC NET

Transkripsi:

A-1 LISTING PROGRAM TAMPILAN UTAMA Public Class FormUtama Public lokasilsb As String Public lokasi2lsb As String Public besarfilelsb As Long Public besarfile2lsb As Long Public lokasieof As String Public lokasi2eof As String Public besarfileeof As Long Public besarfile2eof As Long Public waktusisiplsb As Long Public waktusisipeof As Long Public waktuekstraksilsb As Long Public waktuekstraksieof As Long Private Sub LSBToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LSBToolStripMenuItem.Click Dim frm As New LSB frm.show() Private Sub EOFToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EOFToolStripMenuItem.Click Dim frm As New EOF frm.show() Private Sub MDIParent1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click Me.Close() Private Sub AboutToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AboutToolStripMenuItem.Click Dim frm As New Tentang frm.show()

A-2 EOF Public Class EOF Public lokasi As String = "" Public lokasi2 As String = "" Public namafile As String = "" Public namafile2 As String = "" Public besarfileasli As Long = 0 Public besarfilesetelahproses As Long = 0 Dim kelas As New Kelas() Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click OpenFileDialog1.Title = "Buka File Gambar" OpenFileDialog1.Filter = "BMP Files (*.bmp) *.bmp JPEG Files (*.jpeg) *.jpeg JPG Files (*.jpg) *.jpg All files (*.*) *.*" OpenFileDialog1.FilterIndex = 1 OpenFileDialog1.RestoreDirectory = True OpenFileDialog1.FileName = "" OpenFileDialog1.ShowDialog() Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk 'Buka file gambar 'Variabel temp untuk menampung nama file sementara, jika diujung nama file terdapat terdapat -EOF.bmp berarti file tersebut sudah tersisip gambar. Dim temp = OpenFileDialog1.SafeFileName.ToString 'Cek apakah file tersebut memiliki panjang string lebih dari 8 agar tidak terjadi error. If temp.length > 8 Then temp = temp.substring(temp.length - 8) If temp <> "-EOF.bmp" Then 'Inisialisasi pembukaan file. Dim strm As System.IO.Stream strm = OpenFileDialog1.OpenFile() lokasi = OpenFileDialog1.FileName.ToString FormUtama.lokasiEof = lokasi namafile = OpenFileDialog1.SafeFileName.ToString namafile = namafile.remove(namafile.length - 4) besarfileasli = New System.IO.FileInfo(lokasi).Length FormUtama.besarFileEof = besarfileasli 'besarfileasli *= 0.000976562 'Masukkan gambar pada textbox PictureBox1.ImageLocation = lokasi PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage If IsNothing(strm) Then strm.close()

A-3 LSB Public Class LSB Public lokasi As String = "" Public lokasi2 As String = "" Public namafile As String = "" Public namafile2 As String = "" Public besarfileasli As Long = 0 Public besarfilesetelahproses As Long = 0 Dim sudahsisip = False Dim kelas As New Kelas() Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click OpenFileDialog1.Title = "Buka File Gambar" OpenFileDialog1.Filter = "BMP Files (*.bmp) *.bmp JPEG Files (*.jpeg) *.jpeg JPG Files (*.jpg) *.jpg All files (*.*) *.*" OpenFileDialog1.FilterIndex = 1 OpenFileDialog1.RestoreDirectory = True OpenFileDialog1.FileName = "" OpenFileDialog1.ShowDialog() Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk 'Buka file gambar 'Variabel temp untuk menampung nama file sementara, jika diujung file terdapat terdapat -LSB.bmp berarti file tersebut sudah tersisip gambar. Dim temp = OpenFileDialog1.SafeFileName.ToString 'Cek apakah file tersebut memiliki panjang string lebih dari 8 agar tidak terjadi error. If temp.length > 8 Then temp = temp.substring(temp.length - 8) If temp <> "-LSB.bmp" Then 'Inisialisasi pembukaan file. Dim strm As System.IO.Stream strm = OpenFileDialog1.OpenFile() lokasi = OpenFileDialog1.FileName.ToString FormUtama.lokasiLsb = lokasi namafile = OpenFileDialog1.SafeFileName.ToString namafile = namafile.remove(namafile.length - 4) besarfileasli = New System.IO.FileInfo(lokasi).Length FormUtama.besarFileLsb = besarfileasli 'besarfileasli *= 0.000976562 'Masukkan gambar pada textbox PictureBox1.ImageLocation = lokasi PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage sudahsisip = False If IsNothing(strm) Then strm.close() 'Inisialisasi pembukaan file. Dim strm As System.IO.Stream strm = OpenFileDialog1.OpenFile() lokasi2 = OpenFileDialog1.FileName.ToString

namafile2 = OpenFileDialog1.SafeFileName.ToString 'Masukkan gambar pada textbox PictureBox1.ImageLocation = lokasi2 PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage sudahsisip = True If IsNothing(strm) Then strm.close() Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click If lokasi = "" Then MsgBox("Gambar belum di masukkan!") If TextBox1.Text.Length = 0 Then MsgBox("Pesan yang ingin disisipkan kosong!") If ((TextBox1.Text.Length * 8) + 1) > ((PictureBox1.Image.Width * PictureBox1.Image.Height) * 3) Then MsgBox("Dimensi gambar tidak cukup untuk menampung pesan!") If sudahsisip = True Then MsgBox("Gambar yang dipilih adalah gambar yang sudah disisipi!") PictureBox1.Image = Nothing TextBox1.Text = "" Button1.Focus() 'Masukkan gambar kepada variabel bmp Dim bmp As New Bitmap(lokasi) 'Inisialisasi kelas LSB bmp = kelas.leastsignificantbit(bmp, TextBox1.Text & "#") PictureBox1.Image = bmp 'Beri nama file dengan akhiran -LSB agar dapat diketahui gambar yang telah disisipi text atau tidak. Dim lokasinamafile As String = Environment.CurrentDirectory & "\" & namafile & "-LSB.bmp" FormUtama.lokasi2Lsb = lokasinamafile 'Simpan gambar bmp.save(lokasinamafile, System.Drawing.Imaging.ImageFormat.Bmp) besarfilesetelahproses = New System.IO.FileInfo(lokasiNamaFile).Length FormUtama.besarFile2Lsb = besarfilesetelahproses 'besarfilesetelahproses *= 0.000976562 TextBox1.Clear() PictureBox1.Image = Nothing MsgBox("Pesan telah disisip, disimpan pada " & lokasinamafile) A-4

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click If lokasi2 = "" Then MsgBox("Gambar hasil sisip LSB belum di masukkan") Dim bmp As New Bitmap(lokasi2) TextBox1.Text = kelas.ekstraksilsb(bmp) Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click PictureBox1.Image = Nothing TextBox1.Text = "" lokasi = "" lokasi2 = "" namafile = "" namafile2 = "" Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged If namafile = "" Then MsgBox("Masukkan gambar terlebih dahulu!") TextBox1.Clear() Button1.Focus() If IsNothing(PictureBox1.Image) Then Label1.Text = TextBox1.Text.Length & " / " & Math.Floor((((PictureBox1.Image.Width * PictureBox1.Image.Height) * 3) / 8) - 1) Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click End Class A-5

A-6 LAPORAN Public Class Laporan Private Sub Laporan_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load If FormUtama.lokasiLsb = "" Or FormUtama.lokasi2Lsb = "" Or FormUtama.besarFileLsb = 0 Or FormUtama.besarFile2Lsb = 0 Then MsgBox("Penyisipan / Ekstraksi LSB belum di lakukan!") Dim bmp1 As New Bitmap(FormUtama.lokasiLsb) pboxlsb1.image = bmp1 pboxlsb1.sizemode = PictureBoxSizeMode.StretchImage lokasilsb1.text = FormUtama.lokasiLsb besarlsb1.text = FormUtama.besarFileLsb & " Byte" resolusilsb1.text = bmp1.width & " x " & bmp1.height lblwaktusisiplsb.text = FormUtama.waktuSisipLsb & " ms" " ms" Dim bmp2 As New Bitmap(FormUtama.lokasi2Lsb) pboxlsb2.image = bmp2 pboxlsb2.sizemode = PictureBoxSizeMode.StretchImage lokasilsb2.text = FormUtama.lokasi2Lsb besarlsb2.text = FormUtama.besarFile2Lsb & " Byte" resolusilsb2.text = bmp2.width & " x " & bmp2.height lblwaktuekstraksilsb.text = FormUtama.waktuEkstraksiLsb & If FormUtama.lokasiEof = "" Or FormUtama.lokasi2Eof = "" Or FormUtama.besarFileEof = 0 Or FormUtama.besarFile2Eof = 0 Then MsgBox("Penyisipan / Ekstraksi EOF belum di lakukan!") Dim bmp1 As New Bitmap(FormUtama.lokasiEof) pboxeof1.image = bmp1 pboxeof1.sizemode = PictureBoxSizeMode.StretchImage lokasieof1.text = FormUtama.lokasiEof besareof1.text = FormUtama.besarFileEof & " Byte" resolusieof1.text = bmp1.width & " x " & bmp1.height lblwaktusisipeof.text = FormUtama.waktuSisipEof & " ms" " ms" Dim bmp2 As New Bitmap(FormUtama.lokasi2Eof) pboxeof2.image = bmp2 pboxeof2.sizemode = PictureBoxSizeMode.StretchImage lokasieof2.text = FormUtama.lokasi2Eof besareof2.text = FormUtama.besarFile2Eof & " Byte" resolusieof2.text = bmp2.width & " x " & bmp2.height lblwaktuekstraksieof.text = FormUtama.waktuEkstraksiEof & Private Sub pboxlsb2_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles pboxlsb2.click End Class

A-7 TENTANG Public Class Tentang Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click End Class HELP Public Class Help Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click End Class CLASS Imports System.Drawing Public Class Kelas Private Function binerkedesimal(byval biner As String) Dim hasil As Integer = 0 Dim multi As Integer = 0 Dim i As Integer = biner.length - 1 Do While (i >= 0) If biner.substring(i, 1) = "1" Then hasil += Math.Pow(2, multi) multi += 1 i -= 1 Loop Return hasil End Function Private Function desimalkebiner(byval desimal As Integer) Dim biner As String = "" Dim temp As Integer = 0 While (desimal > 0) temp = desimal Mod 2 desimal = Math.Floor(desimal / 2) biner = biner.insert(0, temp.tostring) End While If biner.length < 8 Then For i As Integer = 0 To 8 - biner.length - 1 biner = biner.insert(i, "0") Return biner End Function

A-8 Public Function leastsignificantbit(byval bmp As Bitmap, ByVal txt As String) Dim waktu As DateTime = DateTime.Now Dim selang As TimeSpan Dim maksx As Integer = bmp.width Dim maksy As Integer = bmp.height Dim str As String = "" Dim z As Integer = 0 Dim habis As Boolean = False 'Ubah setiap karakter dari string menjadi ASCII lalu ubah kedalam bentuk biner. 'Tambahkan setiap 8 bit biner kedalam String str untuk mempermudah penyisipan. For i As Integer = 0 To (txt.length - 1) str += desimalkebiner(ascw(txt.substring(i, 1))) 'Perulangan dari kiri atas gambar hingga kanan bawah gambar. For y As Integer = 0 To (maksy - 1) For x As Integer = 0 To (maksx - 1) 'Ambil R,G,B dari setiap Piksel dan ubah kedalam bentuk biner lalu masukkan ke variabel merah,hijau,biru. Dim merah As String = desimalkebiner(bmp.getpixel(x, y).r) Dim hijau As String = desimalkebiner(bmp.getpixel(x, y).g) Dim biru As String = desimalkebiner(bmp.getpixel(x, y).b) 'Cek apakah penyisipan bit telah selesai / sampai z = panjang dari str. If z < str.length Then 'Buang bit terakhir dari merah. merah = merah.remove(7, 1) 'Sisipkan bit ke z dari str pada merah. merah = merah.insert(7, str.substring(z, 1)) 'Tambahkan z agar dapat membaca bit selanjutnya pada str. z += 1 'Cek apakah penyisipan bit telah selesai / sampai z = panjang dari str. If z < str.length Then 'Buang bit terakhir dari hijau. hijau = hijau.remove(7, 1) 'Sisipkan bit ke z dari str pada hijau. hijau = hijau.insert(7, str.substring(z, 1)) 'Tambahkan z agar dapat membaca bit selanjutnya pada str. z += 1 'Cek apakah penyisipan bit telah selesai / sampai z = panjang dari str. If z < str.length Then 'Buang bit terakhir dari biru. biru = biru.remove(7, 1) 'Sisipkan bit ke z dari str pada biru.

A-9 pada str. biru = biru.insert(7, str.substring(z, 1)) 'Tambahkan z agar dapat membaca bit selanjutnya z += 1 'Masukkan piksel yang telah dirubah R,G,B nya kepada bmp. bmp.setpixel(x, y, Color.FromArgb(binerKeDesimal(merah), binerkedesimal(hijau), binerkedesimal(biru))) 'Jika z = panjang dari str, maka habis = true dan keluar dari perulangan x. If z = str.length Then habis = True Exit For 'Jika habis = true, keluar dari perulangan y. If habis Then Exit For 'Hitung selang waktu. selang = DateTime.Now - waktu FormUtama.waktuSisipLsb = selang.totalmilliseconds 'Lempar kembali bmp ke si pemanggil fungsi ini. Return bmp End Function Public Function ekstraksilsb(byval bmp) Dim waktu As DateTime = DateTime.Now Dim selang As TimeSpan Dim maksx As Integer = bmp.width Dim maksy As Integer = bmp.height Dim str As String = "" Dim biner As String = "" Dim z As Integer = 0 Dim selesai As Boolean = False 'Perulangan dari kiri atas gambar hingga kanan bawah gambar. For y As Integer = 0 To (maksy - 1) For x As Integer = 0 To (maksx - 1) 'Ambil R,G,B dari setiap Piksel dan ubah kedalam bentuk biner lalu masukkan ke variabel merah,hijau,biru. Dim merah As String = desimalkebiner(bmp.getpixel(x, y).r) Dim hijau As String = desimalkebiner(bmp.getpixel(x, y).g) Dim biru As String = desimalkebiner(bmp.getpixel(x, y).b) 'Cek apakah z=8 / bit yang telah terbaca sudah terdapat 8 bit. If z = 8 Then 'Ubah biner ke desimal ASCII lalu ubah kembali menjadi karakter biasa, masukkan dalam variabel temp.

Dim temp As String = Chr(binerKeDesimal(biner)).ToString 'Jika karakter yang ditemukan = # maka proses ekstraksi telah selesai / selesai=true, keluar dari perulangan x. If temp = "#" Then selesai = True Exit For 'Jika tidak tambahkan karakter yang didapatkan kepada String str. str += temp 'Set z=0 agar dapat diketahui berapa bit yang telah terbaca. z = 0 'Kosongkan String biner biner = "" A-10 String biner. 'Ambil bit terakhir dari merah, dan tambahkan kedalam biner += merah.substring(7, 1) 'Tambahkan indeks z. z += 1 'Cek apakah z=8 / bit yang telah terbaca sudah terdapat 8 bit. If z = 8 Then 'Ubah biner ke desimal ASCII lalu ubah kembali menjadi karakter biasa, masukkan dalam variabel temp. Dim temp As String = Chr(binerKeDesimal(biner)).ToString 'Jika karakter yang ditemukan = # maka proses ekstraksi telah selesai / selesai=true, keluar dari perulangan x. If temp = "#" Then selesai = True Exit For 'Jika tidak tambahkan karakter yang didapatkan kepada String str. str += temp 'Set z=0 agar dapat diketahui berapa bit yang telah terbaca. z = 0 'Kosongkan String biner biner = "" String biner. 'Ambil bit terakhir dari hijau, dan tambahkan kedalam biner += hijau.substring(7, 1) 'Tambahkan indeks z. z += 1 'Cek apakah z=8 / bit yang telah terbaca sudah terdapat 8 bit. If z = 8 Then 'Ubah biner ke desimal ASCII lalu ubah kembali menjadi karakter biasa, masukkan dalam variabel temp. Dim temp As String = Chr(binerKeDesimal(biner)).ToString

'Jika karakter yang ditemukan = # maka proses ekstraksi telah selesai / selesai=true, keluar dari perulangan x. If temp = "#" Then selesai = True Exit For 'Jika tidak tambahkan karakter yang didapatkan kepada String str. str += temp 'Set z=0 agar dapat diketahui berapa bit yang telah terbaca. z = 0 'Kosongkan String biner biner = "" 'Ambil bit terakhir dari biru, dan tambahkan kedalam String biner. biner += biru.substring(7, 1) 'Tambahkan indeks z. z += 1 'Jika selesai = true, keluar dari perulangan y. If selesai Then Exit For 'Hitung selang waktu. selang = DateTime.Now - waktu FormUtama.waktuEkstraksiLsb = selang.totalmilliseconds 'Lempar kembali String str kepada si pemanggil fungsi. Return str End Function Public Function endoffile(byval bmp As Bitmap, ByVal txt As String) Dim waktu As DateTime = DateTime.Now Dim selang As TimeSpan A-11 Dim maksx As Integer = bmp.width Dim maksy As Integer = bmp.height 'Hitung penambahan pada Y dengan rumus bulatkan keatas(panjang teks / tinggi gambar). Dim penambahanpaday As Integer = Math.Ceiling(Val(txt.Length) / Val(maksX)) Dim bmp2 As New Bitmap(maksX, bmp.height + penambahanpaday + 1) Dim z As Integer = 0 Dim habis = False 'Beri penanda pada awal pesan dan akhir pesan. txt = txt.insert(0, "#") txt = txt.insert(txt.length, "#") 'Isi semua pixel gambar asli kepada gambar yang akan ditambahkan pesan. For y As Integer = 0 To maksy - 1 For x As Integer = 0 To maksx - 1 Dim merah As Integer = bmp.getpixel(x, y).r Dim hijau As Integer = bmp.getpixel(x, y).g

A-12 biru)) Dim biru As Integer = bmp.getpixel(x, y).b bmp2.setpixel(x, y, Color.FromArgb(merah, hijau, 'Perulangan dari tinggi maksimum gambar sampai penambahan yang telah dihitung. For y As Integer = maksy To maksy + penambahanpaday For x As Integer = 0 To maksx - 1 'Cek apakah z = panjang text. Jika sudah, habis = true dan isi semua piksel yang belum terisi sepanjang X dengan 0(NULL) / warna hitam. If z = txt.length Then habis = True bmp2.setpixel(x, y, Color.FromArgb(0, 0, 0)) 'Ambil 1 karakter pada String txt dan ubah menjadi ASCII. Dim karakter As Integer = AscW(txt.Substring(z, 1)) 'Tambahkan indeks z. z += 1 'Masukkan piksel yang berisikan nilai karakter,karakter,karakter sebagai R,G,B pada bmp2. bmp2.setpixel(x, y, Color.FromArgb(karakter, karakter, karakter)) 'Jika habis = true, maka keluar dari perulangan y. If habis Then Exit For 'Hitung selang Waktu. selang = DateTime.Now - waktu FormUtama.waktuSisipEof = selang.totalmilliseconds ' Lempar kembali bmp2 kepada si pemanggil fungsi. Return bmp2 End Function Public Function ekstraksieof(byval bmp As Bitmap) Dim waktu As DateTime = DateTime.Now Dim selang As TimeSpan Dim maksy As Integer = bmp.height Dim maksx As Integer = bmp.width Dim str As String = "" Dim start As Boolean = False Dim selesai As Boolean = False Dim x As Integer = maksx - 1 Dim y As Integer = maksy - 1 true. 'Perulangan dari maksimumy dan maksimumx hingga selesai = Do While (selesai = False) 'Ambil R dari bmp dan ubah menjadi karakter lalu masukkan kepada variabel karakter. Dim karakter As String = Chr(bmp.GetPixel(x, y).r)

A-13 'Jika start = true. If start Then 'Masukkan karakter ke String str, di indeks ke 0 String str tersebut. str = str.insert(0, karakter) 'Jika karakter = # dan start = false. If karakter = "#" And start = False Then 'Telah ditemukan tanda pagar, inisialisasi start = true. start = True If karakter = "#" And start = True Then 'Jika karakter = # dan start = true. 'Hilangkan indeks ke 0 dari String str agar tanda # tidak terikut ke pesan. str = str.remove(0, 1) 'Keluar dari perulangan. selesai = True Exit Do 'Jika y<0 keluar perulangan agar tidak terjadi error. If y <= 0 Then Exit Do 'Jika x masi lebih besar dari 0, kurangi x agar dapat membaca kolom piksel selanjutnya. If x > 0 Then x -= 1 'Ini menandakan baris tertentu telah terbaca semuanya. 'Jika x = 0 maka x = maksimumx dari gambar dikurang 1. x = maksx - 1 'Kurangi y agar dpt membaca baris berikutnya. y -= 1 Loop 'Hitung selang waktu. selang = DateTime.Now - waktu FormUtama.waktuEkstraksiEof = selang.totalmilliseconds 'Lempar kembali str kepada si pemanggil fungsi. Return str End Function End Class

B-1 ASCII Table (ASCII = American Standard Code for Information Interchage) Decimal Octal Hex Binary Character 048 060 30 00110000 0 049 061 31 00110001 1 050 062 32 00110010 2 051 063 33 00110011 3 052 064 34 00110100 4 053 065 35 00110101 5 054 066 36 00110110 6 055 067 37 00110111 7 056 070 38 00111000 8 057 071 39 00111001 9 065 101 41 01000001 A 066 102 42 01000010 B 067 103 43 01000011 C 068 104 44 01000100 D 069 105 45 01000101 E 070 106 46 01000110 F 071 107 47 01000111 G 072 110 48 01001000 H 073 111 49 01001001 I 074 112 4A 01001010 J 075 113 4B 01001011 K 076 114 4C 01001100 L 077 115 4D 01001101 M 078 116 4E 01001110 N 079 117 4F 01001111 O 080 120 50 01010000 P 081 121 51 01010001 Q 082 122 52 01010010 R 083 123 53 01010011 S 084 124 54 01010100 T 085 125 55 01010101 U 086 126 56 01010110 V 087 127 57 01010111 W 088 130 58 01011000 X 089 131 59 01011001 Y 090 132 5A 01011010 Z 097 141 61 01100001 a 098 142 62 01100010 b 099 143 63 01100011 c 100 144 64 01100100 d 101 145 65 01100101 e 102 146 66 01100110 f 103 147 67 01100111 g 104 150 68 01101000 h 105 151 69 01101001 i 106 152 6A 01101010 j 107 153 6B 01101011 k

B-2 108 154 6C 01101100 l 109 155 6D 01101101 m 110 156 6E 01101110 n 111 157 6F 01101111 o 112 160 70 01110000 p 113 161 71 01110001 q 114 162 72 01110010 r 115 163 73 01110011 s 116 164 74 01110100 t 117 165 75 01110101 u 118 166 76 01110110 v 119 167 77 01110111 w 120 170 78 01111000 x 121 171 79 01111001 y 122 172 7A 01111010 z

C-1 CURRICULUM VITAE Data Personal Nama : Cindy Violita. Tempat/Tanggal Lahir : Medan/7 November 1990 Jenis Kelamin Status Perkawinan Alamat Lengkap 20216 : Perempuan : Belum Kawin : Jl. A.R.Hakim GG.Sukahati No.5 Medan. Kode pos Telp/Hp : 061 7361366 / 081375368884 Email :Indylubis@gmail.com Riwayat Pendidikan dari Tahun 2008 s/d Tahun 2013 SMA Negeri 10 Medan dari Tahun 2005 s/d Tahun 2008 SMP Negeri 3 Medan dari Tahun 2002 s/d Tahun 2005 SD Swasta Kartini Medan dari Tahun 1996 s/d Tahun 2002 Kemampuan 1. Dance 2. Modeling