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