OpenFileDialog openfile = new OpenFileDialog (); openfile.Filter =
LISTING PROGRAM
Mainform.cs usingSystem; using
System.Collections.Generic; using
System.Drawing; using
System.Drawing.Imaging; using
System.Windows.Forms; using
System.IO; BtCariTeksClick void ( object sender, EventArgs e) { new OpenFileDialog
OpenFileDialog openfile = (); openfile.Filter = "Text Files | *.txt" ; if ShowDialog
(openfile. () == DialogResult.OK) { tbPesan1.Text = File. ReadAllText (openfile.FileName); } }
BtCariCoverClick void ( object sender, EventArgs e) { if
(tbPesan1.Text == "" | tbKunci1.Text == "" ) { MessageBox. Show ( "Silahkan masukkan pesan dan kunci terlebih dahulu !" , "Peringatan" ,
MessageBoxButtons.OK,MessageBoxIcon.Warning); return ;
} new OpenFileDialog
OpenFileDialog openfile = (); openfile.Filter = "Bitmap Files | *.bmp" ; if ShowDialog
(openfile. () == DialogResult.OK) { FromFile bmp = (Bitmap)Image. (openfile.FileName); if capacityCheck
(MLSB. (tbPesan1.Text,bmp)) { pbCover.Image = bmp; tbPCover.Text = bmp.Height. ToString ()+ " px" ;
ToString tbLCover.Text = bmp.Width. ()+ " px" ; } else Show
MessageBox. ( "Gambar yang Anda masukkan tidak dapat menampung
- pesan." "Silahkan pilih gambar yang lain" , "Peringatan" ); } }
BtSimpanStegoClick void ( object sender, EventArgs e) { new SaveFileDialog
SaveFileDialog savefile = (); savefile.Filter = "Bitmap Files | *.bmp" ; if ShowDialog
(savefile. () == DialogResult.OK) { bmp. Save (savefile.FileName, ImageFormat.Bmp); Show
MessageBox. ( "Gambar stego telah berhasil disimpan." ); clearAll
(); } } void BtProsesEnkripsiClick ( object sender, EventArgs e) { if
(pbCover.Image == null) { Show
MessageBox. ( "Silahkan, masukkan gambar cover terlebih dahulu !" , "Peringatan" ,MessageBoxButtons.OK,MessageBoxIcon.Warning)
; return ;
} plainteks = tbPesan1.Text; key = tbKunci1.Text; bmp = (Bitmap)pbCover.Image; new RC4
RC4 rc4 = (); KSA rc4. (key); int i = , j = ; for int
( pos= ;pos<plainteks.Length;pos++){ char PRGA byte cipherteks = cipherteks + ( )rc4. (( )plainteks[pos],i,j); i = rc4. getValue ( "i" ); getValue j = rc4. ( "j" ); } embedText bmp = (Bitmap)MLSB. (cipherteks,bmp); tbCipherteks1.Text = cipherteks pbStego1.Image = bmp;
Show MessageBox. ( "Informasi telah berhasil disembunyikan." ); }
BtCariStegoClick void ( object sender, EventArgs e) { new OpenFileDialog
OpenFileDialog openfile = (); openfile.Filter = "Bitmap Files | *.bmp" ; if ShowDialog
(openfile. () == DialogResult.OK) { FromFile pbStego2.Image = Image. (openfile.FileName);
ToString tbPStego.Text = pbStego2.Image.Height. ()+ " px" ;
ToString tbLStego.Text = pbStego2.Image.Width. ()+ " px" ; } }
BtSimpanPesanClick void ( object sender, EventArgs e) { new SaveFileDialog
SaveFileDialog savefile = (); savefile.Filter = "Text Files | *.txt" ; if ShowDialog
(savefile. () == DialogResult.OK) { File. WriteAllText (savefile.FileName, tbPesan2.Text); Show
MessageBox. ( "Pesan telah berhasil disimpan." ); } }
BtProsesEkstrakClick void ( object sender, EventArgs e) { if (pbStego2.Image == null) {
Show MessageBox. ( "Silahkan, masukkan gambar stego terlebih dahulu" ,
"Peringatan" ,MessageBoxButtons.OK,MessageBoxIcon.Warning); return ;
} else if
(tbKunci2.Text == "" ) { Show
MessageBox. ( "Silahkan, masukkan kunci terlebih dahulu" , "Peringatan" , MessageBoxButtons.OK,MessageBoxIcon.Warning); return ;
} bmp = (Bitmap)pbStego2.Image; key = tbKunci2.Text; extractText cipherteks = MLSB. (bmp); if
(cipherteks == "" ) { Show
MessageBox. ( "Maaf, gambar stego yang Anda masukkan tidakmengandung
pesan" , "Peringatan" ,MessageBoxButtons.OK,MessageBoxIcon.Information); return ;
} new RC4
RC4 rc4 = (); rc4. KSA (key); int i = , j = ; for int
( pos= ;pos<cipherteks.Length;pos++){ plainteks = plainteks + ( char )rc4. PRGA (( byte )cipherteks[pos],i,j); getValue i = rc4. ( "i" ); getValue j = rc4. ( "j" ); } tbCipherteks2.Text = cipherteks; tbPesan2.Text = plainteks;
Show MessageBox. ( "Informasi telah berhasil ditampilkan." ); }
RC4.cs
using System; using
System.Diagnostics;
byte new byte
[] S = [ 256 ];
byte [] T = new byte [ 256 ]; byte new byte
[] kunci = [ 256 ];
byte [] pesan = new byte [ 10000 ]; byte byte
t = ( ) ;
byte key = ( byte ) ; public void KSA ( string k){ for int
( i= ;i< 256 ;i++){ S[i]=( byte )i;
byte
T[i]=( )k[(i % k.Length)];
//Debug.Write(T[i]+"\t");
}
int j= ; for ( int i= ;i< 256 ;i++){
j=(j+S[i]+T[i])% 256 ; t=S[i]; S[i]=S[j]; S[j]=t; } }
int i, j; public byte PRGA byte int int
( pesan, i, j){ i=(i+
1 )% 256 ;
j=(j+S[i]) % 256 ; t=S[i]; S[i]=S[j]; S[j]=t; t=(( byte )((S[i]+S[j])% 256 )); key=S[t];
if
(key == pesan) { key = ; } this.i = i; this.j = j;
return ( byte )(key^pesan);
}
MLSB.cs using
System.Drawing; using
System.Diagnostics; public enum State {
Hiding, Filling_With_Zeros };
public bool capacityCheck static ( string text, Bitmap bmp) { int cap= ; for int
( i = ; i < bmp.Height; i++){
for ( int j = ; j < bmp.Width; j++) { GetPixel
Color pixel = bmp. (j, i);
if (pixel.R < 100 ) cap++; if (pixel.G < 122 ) cap++; if
(pixel.B < 114 ) cap++; } }
if (text.Length+ 1 <= cap/ 8 ) true return ; else return false ;
}
public int reverseBits int static ( n) { int result = ; for int
( i = ; i <
8 ; i++) {
result = result *
2 + n % 2 ;
n /=
2 ;
}
return result;
}
public embedText
static Bitmap ( string text, Bitmap bmp) {
State state = State.Hiding;
int
charIndex = , charValue = 0, zeros = ;
long pixelElementIndex = ; int
R = , G = , B = ,embed = ;
for int
( i = ; i < bmp.Height; i++) {
for ( int j = ; j < bmp.Width; j++) { GetPixel
Color pixel = bmp. (j, i); R = pixel.R - pixel.R %
2 ;
G = pixel.G - pixel.G %
2 ;
B = pixel.B - pixel.B %
2 ; for int
( n = ; n <
3 ; n++){ if (embed== ){ if
(state==State.Filling_With_Zeros&&zeros ==
8 ){ if
((pixelElementIndex -
1 ) % 3 < 2 ) {
bmp. SetPixel (j,i,Color. FromArgb (R,G,B ));
}
return bmp; } if (charIndex >= text.Length) {
state = State.Filling_With_Zeros; }
else
{ charValue = text[charIndex++]; embed =
8 ;
} }
switch (n){ case
: {
if
(R < 100 ) {
if (state == State.Hiding) {
R += charValue %
2 ;
charValue /=
2 ;
embed--; }
else
zeros++; } } break ;
case 1 :
{
if (G < 122 ) { if
(state == State.Hiding) { G += charValue %
2 ;
charValue /=
2 ;
embed--; }
else
zeros++; } } break ;
case 2 : { if
(B < 114 ) {
if (state == State.Hiding) {
B += charValue %
2 ;
charValue /=
2 ;
embed--; }
else
zeros++; }
SetPixel FromArgb
bmp. (j,i,Color. (R,G,B)); } break ; } pixelElementIndex++; } } }
return bmp;
public static string extractText (Bitmap bmp) { int
colorUnitIndex = ;
int charValue = ; int
embed =
8 ; for int
( i = ; i < bmp.Height; i++) {
for int
( j = ; j < bmp.Width; j++) {
GetPixel
Color pixel = bmp. (j, i);
for ( int n = ; n < 3 ; n++)
{
switch (colorUnitIndex % 3 )
{
case : { if
(pixel.R< 100 ){ charValue = charValue *
2 +pixel.R % 2 ;
embed--; } } break ;
case 1 : { if
(pixel.G< 122 ){ charValue = charValue*
2 + pixel.G % 2 ;
embed--; } } break ;
case 2 : { if (pixel.B< 114 ){
charValue = charValue*
2 + pixel.B % 2 ;
embed--; } } break ; } colorUnitIndex++;
if (embed == ) { reverseBits
charValue = (charValue); embed =
8 ; if
(charValue == ) {
if (extractedText == "" ) return "" ; return extractedText;
} extractedText+=(( char )charValue). ToString (); } } } }
return "" ;
}
Tabel Pengkodean ASCII
Dokumen Pengujian
wonderful
Kunci : Cover Object :
Plainteks :
Asal mula nama Raja Ampat menurut mitos masyarakat setempat berasal dari seorang
wanita yang menemukan tujuh telur. Empat butir di antaranya menetas menjadi empat
orang pangeran yang berpisah dan masing-masing menjadi raja yang berkuasa di
Waigeo, Salawati, Misool Timur dan Misool Barat. Sementara itu, tiga butir telur
lainnya menjadi hantu, seorang wanita, dan sebuah batu.Kepulauan Raja Ampat merupakan tempat yang sangat berpotensi untuk dijadikan
sebagai objek wisata, terutama wisata penyelaman. Perairan Kepulauan Raja Ampat
menurut berbagai sumber, merupakan salah satu dari 10 perairan terbaik untuk diving
site di seluruh dunia. Bahkan, mungkin juga diakui sebagai nomor satu untuk
kelengkapan flora dan fauna bawah air pada saat ini.Tim ahli dari Conservation International, The Nature Conservancy, dan Lembaga
Oseanografi Nasional (LON) Lembaga Ilmu Pengetahuan Indonesia (LIPI) pernah
melakukan penilaian cepat pada 2001 dan 2002. Hasilnya, mereka mencatat di
perairan ini terdapat lebih dari 540 jenis karang keras (75% dari total jenis di dunia),
lebih dari 1.000 jenis ikan karang, 700 jenis moluska, dan catatan tertinggi bagi
gonodactyloid stomatopod crustaceans. Ini menjadikan 75% spesies karang dunia
berada di Raja Ampat. Tak satupun tempat dengan luas area yang sama memiliki
jumlah spesies karang sebanyak ini.Ada beberapa kawasan terumbu karang yang masih sangat baik kondisinya dengan
persentase penutupan karang hidup hingga 90%, yaitu di selat Dampier (selat antara
Pulau Waigeo dan Pulau Batanta), Kepulauan Kofiau, Kepualauan Misool Tenggara
dan Kepulauan Wayang. Tipe dari terumbu karang di Raja Ampat umumnya adalah
terumbu karang tepi dengan kontur landai hingga curam. Tetapi juga terdapat tipe atol
dan gosong atau taka. Di beberapa tempat seperti di kampung Saondarek, ketika
pasang surut terendah, bisa disaksikan hamparan terumbu karang tanpa menyelam,
karang tersebut tetap bisa hidup walaupun berada di udara terbuka dan terkena sinar
matahari langsung.Cipherteks :
99 68 83 222 177 201 209 98 97 117 236 205 117 221 185 162 78 19 97 155 131
165 245 64 87 95 165 222 119 229 163 123 254 181 161 111 38 156 31 117 212
239 255 82 186 243 15 158 56 9 161 199 92 230 55 121 142 75 83 169 135 75
131 145 8 56 210 164 109 74 125 195 22 98 131 183 165 229 118 254 42 45 119
136 87 29 169 218 162 41 6 152 228 244 239 94 236 137 214 177 76 75 33 248
148 189 136 214 163 60 200 121 130 188 60 21 178 32 85 27 107 209 214 32
129 186 123 165 197 142 100 247 76 116 26 100 219 141 213 203 1 8 113 213
245 201 211 60 105 113 206 168 115 25 151 61 104 162 155 113 43 68 72 247
38 22 90 84 117 208 252 122 5 248 226 212 16 242 36 47 131 182 207 35 203
107 190 48 186 136 77 144 248 53 138 139 4 32 226 61 74 45 246 40 168 95 26
90 24 130 165 51 12 10 65 80 91 152 59 174 212 210 138 157 36 15 181 181 93
101 107 165 117 172 192 31 248 147 83 255 116 181 28 96 137 82 106 162 197
1 207 69 99 155 185 107 128 28 94 94 216 241 175 138 190 213 76 194 42 234
169 115 13 53 170 3 93 46 155 139 140 119 217 229 253 5 22 50 199 59 74 149
86 18 248 191 216 151 79 218 78 84 30 168 21 91 134 84 153 189 79 114 103 7
76 253 3 66 41 1 177 66 232 210 214 166 188 171 187 234 4 158 25 205 117 59
75 105 69 12 204 239 76 189 253 198 42 20 176 110 148 177 71 70 161 246 231
20 5 144 51 161 2 212 209 42 202 233 132 237 235 182 188 170 173 207 173 53
111 79 2 212 17 102 90 229 146 99 125 240 152 223 162 131 190 150 215 189
250 129 167 145 224 112 161 53 244 91 18 218 216 130 126 20 62 110 74 34
132 156 210 34 89 142 34 40 37 237 187 237 104 245 119 5 142 221 226 7 185
64 10 191 190 99 63 153 247 44 21 190 166 176 98 207 59 32 232 174 176 23
80 197 116 109 241 126 87 34 187 40 183 121 179 107 253 17 86 30 109 26 16
149 87 222 9 127 58 247 127 181 189 217 179 14 193 253 112 233 157 22 0 213
173 199 149 126 209 243 166 183 185 239 86 175 166 111 63 166 130 109 181
168 42 18 126 210 108 59 12 62 54 105 215 116 99 77 98 133 172 6 28 88 107
61 124 119 202 11 88 111 80 5 180 35 3 42 113 150 46 218 8 178 137 30 174
21 72 255 74 177 171 214 224 11 30 139 91 193 164 205 164 204 137 21 191
213 36 46 67 68 204 223 129 144 184 75 121 232 231 168 124 33 96 183 208
165 152 4 154 109 181 104 47 19 194 206 47 96 238 141 252 118 198 220 177
197 64 62 134 243 3 37 59 47 224 62 113 45 76 157 166 79 194 23 126 237 74
85 217 233 219 51 58 232 170 212 157 135 54 138 99 124 231 125 122 205 51
253 155 37 27 226 248 105 142 154 22 116 26 82 209 9 81 45 250 144 51 162
157 123 50 64 144 219 95 34 227 121 194 44 79 51 108 198 227 82 84 19 42 98
163 241 9 159 137 111 55 167 145 245 237 224 185 79 230 3 183 186 209 180
154 69 25 13 17 114 71 180 252 212 15 22 126 45 136 130 187 152 30 71 13 25
78 239 242 28 187 33 143 221 65 127 35 254 255 96 189 153 140 144 2 232 166
89 44 212 180 22 13 75 184 207 249 26 90 192 140 2 41 222 69 78 146 244 218
213 211 13 227 50 77 101 62 205 22 221 255 243 71 156 86 35 218 252 222 139
220 189 156 182 121 123 67 100 253 50 182 236 208 91 116 134 5 47 75 61 247
135 208 191 125 43 39 120 231 249 12 39 146 117 1 225 86 149 80 222 32 120
31 215 222 173 211 22 92 255 122 36 192 226 193 243 171 133 160 40 242 219
52 164 157 152 63 39 81 29 113 240 90 196 231 16 117 69 72 206 204 128 66
83 184 85 231 40 55 165 255 214 154 9 70 102 171 83 31 4 151 165 13 199 77
122 220 16 249 120 35 13 149 118 77 93 68 150 193 182 15 203 195 178 32 156
98 63 194 179 180 73 215 218 42 44 208 185 161 7 172 45 201 73 58 13 156
152 135 23 153 214 171 111 205 14 241 234 252 23 42 177 209 3 245 204 213
122 29 177 207 239 212 76 117 57 203 103 219 64 19 108 77 4 213 141 2 55 117
250 121 243 108 170 24 248 99 236 205 223 230 10 238 103 92 169 111 247 166
218 22 249 150 232 3 236 2 179 211 62 95 230 94 237 71 214 224 145 40 113
167 133 220 111 215 13 75 96 80 166 225 144 75 146 4 190 81 53 11 191 168
90 121 78 134 170 71 58 219 226 199 109 27 143 3 219 139 49 135 128 126 159
244 49 190 83 56 106 216 112 113 158 62 152 101 131 165 223 250 221 133 83
200 208 33 224 217 16 99 197 212 132 151 59 66 84 193 167 30 14 154 84 92
104 150 52 64 235 30 230 33 79 88 201 102 83 250 110 188 60 137 169 210 188
225 182 106 38 58 55 189 171 27 174 171 82 5 178 200 20 122 24 101 25 160
233 232 5 160 88 174 76 125 135 227 132 196 32 15 202 211 100 192 166 156
69 120 168 187 243 190 156 160 96 36 155 5 198 238 80 55 225 137 134 170 76
75 202 32 60 197 57 68 173 247 133 30 232 111 252 145 182 131 72 203 110
195 32 220 49 203 34 50 170 249 244 86 109 71 57 87 57 168 189 110 232 94
45 97 235 109 250 13 198 80 247 184 126 231 207 9 172 8 186 80 1 178 159 9
152 56 74 34 229 27 110 232 88 146 73 251 123 182 41 252 134 187 76 68 62
130 235 93 131 4 108 134 36 163 95 114 178 9 96 139 166 231 114 182 76 105
83 65 3 133 255 116 113 200 60 173 107 137 154 57 172 112 103 108 115 68 48
103 165 150 211 130 71 219 221 214 11 136 255 84 73 13 90 193 93 231 19 197
247 225 231 27 222 134 107 245 100 59 109 72 204 195 103 170 173 139 185 61
95 89 111 4 68 181 21 159 33 39 252 157 115 155 79 169 94 42 31 30 208 190
210 84 209 32 174 192 48 11 112 192 154 253 18 248 210 122 220 233 243 221
213 208 8 138 92 50 147 220 209 22 70 84 130 53 175 133 163 206 22 14 98
216 67 88 203 146 239 122 118 224 114 119 106 241 73 184 37 79 190 61 37 95
115 144 244 151 159 201 231 57 66 7 38 62 223 159 54 238 47 60 177 5 74 114
153 49 124 104 156 23 119 91 122 11 109 110 35 24 230 241 9 21 9 58 49 175
59 55 81 41 215 128 19 38 171 162 38 51 156 31 188 152 138 150 59 228 206
201 65 97 199 135 23 196 224 48 199 10 247 224 95 84 121 7 71 198 188 76
231 141 23 205 170 168 176 164 212 45 245 196 149 99 253 189 41 29 253 101
252 63 160 232 46 29 176 44 49 201 91 35 33 224 69 85 222 76 153 215 110
115 55 202 115 25 74 147 145 17 98 205 238 41 96 214 109 60 124 89 64 205
214 118 41 152 189 246 173 238 199 34 243 23 234 112 207 222 226 214 84 130
171 242 102 48 110 237 132 254 210 151 18 91 67 249 164 21 155 159 239 101
30 32 205 122 146 153 63 7 32 68 164 51 242 130 101 77 9 204 113 26 195 127
254 95 59 37 79 20 255 117 201 199 171 205 255 74 187 245 34 164 45 188 67
98 83 207 70 147 116 203 18 99 125 191 104 190 193 80 40 136 240 197 226
146 17 3 120 39 120 106 19 148 120 23 185 194 96 185 64 130 187 65 106 156
79 182 125 46 176 81 103 153 246 253 80 114 56 255 135 235 160 122 167 46
39 136 92 32 67 154 56 204 149 11 177 37 97 29 1 154 92 125 192 203 227 107
28 89 219 86 156 187 166 28 6 137 112 163 59 142 29 117 201 220 194 91 36
241 61 217 188 171 102 207 85 64 181 118 4 244 125 249 29 179 8 71 221 214
2 79 68 164 6 77 190 215 43 180 254 154 168 131 194 178 126 53 234 42 158
69 166 189 233 165 175 216 5 192 76 200 65 66 213 98 8 85 132 187 199 207
71 113 212 22 162 254 23 236 244 154 243 107 243 245 234 151 41 67 78 243
174 22 94 244 160 225 255 49 32 90 252 63 53 94 34 237 222 66 217 188 115
220 40 165 199 118 88 97 11 55 237 46 55 101 170 6 125 224 99 112 24 5 191
129 86 199 216 94 248 84 142 28 157 95 175 215 37 200 185 27 245 242 85 179
120 185 236 41 98 170 64 232 219 105 229 195 37 14 92 35 197 38 246 72 161
231 163 29 88 21 206 30 142 60 72 130 182 137 2 36 148 89 8 215 237 89 9
108 202 37 164 255 79 86 148 13 229 118 2 3 208 250 8 218 Stego Objek :DAFTAR RIWAYAT HIDUP CURRICULUM VITAE
I. DATA PRIBADI / Personal Identification Nama Lengkap : Febri Aro Gea Tempat / Tgl. Lahir : Binjai / 6 Februari 1993 Jenis Kelamin : Laki-laki Agama : Kristen Protestan Kebangsaaan : Indonesia Alamat : Jalan Citra Anggrek No 15 Tj Sari Medan Telepon : +6283197889520 Tinggi / Berat : 178 cm / 65 kg Email : [email protected]
II. KESEHATAN / Health Tidak memiliki cacat fisik maupun mental dan tidak meiliki penyakit bawaan.
III.
KEMAMPUAN / Capabilities Bahasa Pemrograman : C++, Java, C#, VB Database : MySQl Lainnya : Adobe Flash, HTML, Photoshop IV.
PENDIDIKAN FORMAL / Formal Eduction [2011 – 2016]
S1 Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara
[2008 – 2011] SMA Swasta Sutomo 1 Medan
[2005 – 2008] SMP Negeri 1 Binjai
[1999 – 2005] SD Negri 027950 Binjai
[1998 – 1999] TK Santo Petrus Binjai
V. PRESTASI / Achievements 1.
Juara II Kompetisi “Problem Solving” IMILKOM Contest [2012] VI. PENGALAMAN KERJA / Working Experience 1.
Asisten Laboratorium di Ilmu Komputer Laboratory Center Fasilkom-TI USU [2013-2016] VII.
SEMINARS / Seminars 1.
Peserta Seminar Nasional : “Inovasi Ilmuwan Muda dalam Industri Berbasis IPTEK Menyonsong Indonesia Emas 2045”, Ikatan Alumni Ilmuwan Indonesia, Medan [2016]