LISTING PROGRAM. mainform.vb A-1. Universitas Sumatera Utara

Similar documents
LISTING PROGRAM. a = b; b = c; c = a + b; } fibs.reverse(); for (int i = 0; i < fibs.count; i++) { if (n >= fibs[i]) { n = n - fibs[i];

LISTING PROGRAM. 1. Module SkripsiUmri.py. import sys, operator, codecs, time. class Timer(object): def init (self): self.t1= time.

'The following GUID is for the ID of the typelib if this project is exposed to COM <Assembly: Guid("8b a5-46bb-a6a9-87b4949d1f4c")>

LISTING PROGRAM. private void filetoolstripmenuitem_click(object sender, EventArgs e) { this.hide(); Form2 fr = new Form2(); fr.

A-1 LISTING PROGRAM. 1. Form1.cs. Universitas Sumatera Utara

LAMPIRAN LISTING PROGRAM

LAMPIRAN A: Listing Program

Listing Progam. Universitas Sumatera Utara

LAMPIRAN A : LISTING PROGRAM

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Label1.Text = Label1.

LISTING PROGRAM. % UIWAIT makes pertama wait for user response (see UIRESUME) % uiwait(handles.figure1);

LISTING PROGRAM. % Edit the above text to modify the response to help cover. % Last Modified by GUIDE v Jun :24:43

LAMPIRAN A : LISTING PROGRAM

LAMPIRAN DAFTAR PUBLIKASI ILMIAH PENULIS. No Judul Nama Seminar Tempat Tahun 1 Pemanfaatan Fuzzy Logic Dalam menakar Prestasi

Software for Auto-Generating Electrode Block Order Sheet: Study Case in Mold Machining Workshop

PROGRAMMING ASSIGNMENT: MOVIE QUIZ

QR Code as Private Key on El Gamal Algorithm

VB FUNCTIONS AND OPERATORS

LAMPIRAN A LISTING PROGRAM

Learning VB.Net. Tutorial 19 Classes and Inheritance

A-1 LAMPIRAN A LISTING PROGRAM. Kode Program Form Main: Universitas Sumatera Utara

Form Connection. Imports System Imports System.Threading Imports System.IO.Ports Imports System.ComponentModel

Lampiran 2 MASTER TABEL

LISTING PROGRAM. if nargout [varargout{1:nargout}] = gui_mainfcn(gui_state, varargin{:}); else gui_mainfcn(gui_state, varargin{:}); end

Else. End If End Sub End Class. PDF created with pdffactory trial version

LAMPIRAN LISTING PROGRAM

COMBINING TABLES. Akademi Audit Negara. CAATs ASAS ACL / 1

Private Sub MenuUtamaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Me.ShowDialog() End Sub

End Sub. Sub Kunci() Dim i As Integer For i = 0 To 4 Txtfield(i).Locked = True Next i grddatagrid.enabled = False End Sub

Revision for Final Examination (Second Semester) Grade 9

C4.3, 4 Lab: Conditionals - Select Statement and Additional Input Controls Solutions

VARIABLES. 1. STRINGS Data with letters and/or characters 2. INTEGERS Numbers without decimals 3. FLOATING POINT NUMBERS Numbers with decimals

LAMPIRAN A. LISTING PROGRAM

DRAWING AND MOVING IMAGES

VISUAL BASIC PROGRAMMING (44) Technical Task KEY. Regional 2013 TOTAL POINTS (485)

Objectives. After completing this topic, the students will: Understand of the concept of polymorphism Know on How to implement 2 types of polymorphism

To enter the number in decimals Label 1 To show total. Text:...

Learning VB.Net. Tutorial 10 Collections

PANDUAN PENGGUNA (PENTADBIR SYSTEM/SYSTEM ADMINISTRATOR) (INFOTECH, BPPF DAN POLIS

ssk 2023 asas komunikasi dan rangkaian TOPIK 4.0 PENGALAMATAN RANGKAIAN Minggu 11

IMS1906: Business Software Fundamentals Tutorial exercises Week 5: Variables and Constants

Mr.Khaled Anwar ( )

S.2 Computer Literacy Question-Answer Book

โปรแกรมช วยทดสอบหม อแปลงกระแส

LISTING PROGRAM. namespace vigenere_des { public partial class MainPage : PhoneApplicationPage { public MainPage() { InitializeComponent(); }

PERU BAHAN PERKHIDMATAN KREDIT DAN PERBANKAN ARAHAN KERJA UNIT KOMPUTER. Tatacara Proses AGM03. BPKP/KJAK-104 Bilangan Semakan : 0 Tarikh :

LISTING PROGRAM. // // TODO: Add constructor code after the InitializeComponent()

VISUAL BASIC II CC111 INTRODUCTION TO COMPUTERS

INFORMATION SYSTEM OF LIBRARY AT PONDOK PESANTREN DARUL IHSAN MUHAMMADIYAH SRAGEN

DAFTAR PUSTAKA. Bojic, Paul, 2008, Business Information System. Pearson Education Ltd., England

Lab 3 The High-Low Game

1. Create your First VB.Net Program Hello World

Form Adapter Example. DRAFT Document ID : Form_Adapter.PDF Author : Michele Harris Version : 1.1 Date :

PERKHIDMATAN KREDIT DAN PERBANKAN PROSEDUR UNIT KOMPUTER. Proses Backup ( Windows) BPKP/KlOK-118 Bilangan Semakan : Q Tarikh :

LAMPIRAN. Private Sub FrmSkinDetect_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load IndikatorHandle(False) End Sub

Tutorial, Source code, Request Program Visual Basic

PANDUAN PENGGUNA (PENSYARAH)

LAMPIRAN A LISTINGPROGRAM

LISTING CODE A-1. Indo_to_jawa_Fragments.java. package studio.arti.kamusjawaindonesia;

CALIFORNIA STATE UNIVERSITY, SACRAMENTO College of Business Administration. MIS 15 Introduction to Business Programming. Programming Assignment 3 (P3)

Pengenalan Sistem Maklumat Dalam Pendidikan

The Implementation of Alert System for LAN Network Monitoring Using the Dude Based

Universitas Sumatera Utara

How to Validate DataGridView Input

Tutorial 03 understanding controls : buttons, text boxes

Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init

Panduan Pengguna Autodesk Education Community

A Complete Tutorial for Beginners LIEW VOON KIONG

Déclaration du module

LISTING PROGRAM. 1. Form Login. Private Sub BATAL_Click() End End Sub

LISTING PROGRAM. void KOMPRESIToolStripMenuItemClick(object sender, EventArgs e) { Kompresi k = new Kompresi(); k.show(); this.

LISTING PROGRAM. 1. Tampilan Awal. 2. Menu Login. Public Class Awal

Chapter Ten String Manipulation and Menus

FOR 240 Homework Assignment 4 Using DBGridView and Other VB Controls to Manipulate Database Introduction to Computing in Natural Resources

Panduan Menggunakan Autoresponder FreeAutobot.com

IMPLEMENTATION AND PERFORMANCE ANALYSIS OF IDENTITY- BASED AUTHENTICATION IN WIRELESS SENSOR NETWORKS MIR ALI REZAZADEH BAEE

My first game. 'function which adds objects with bug tag to bugarray array. Saturday, November 23, :06 AM

DO NOT COPY AMIT PHOTOSTUDIO

Herefordshire College of Technology Centre Edexcel BTEC Level 3 Extended Diploma in Information Technology (Assignment 1 of 3)

PENDAFTARAN KURSUS SEMESTER 1 (DEP/DEE) SESI DIS 2017

PENGELUARAN PERAKUAN KEKOMPETENAN DAN PERAKUAN KECEKAPAN BARU MENGIKUT STCW 1978, SEPERTI PINDAAN

DOKUMEN TIDAK TERKAWAL

Send to: MM Irfan Subakti CC to Muhammad Ryanda Nugraha M with the. IF184401_DAA(F)_MID_NRP_Name.

The New Brew-CQ Synchronous Sockets and Threading

JABATAN KIMIA Kategori Arahan Kerja

Visitor Management System

Registration of Supplier (ROS) TM Supplier Registration Renewal via SUS Portal (Pembaharuan Pendaftaran Pembekal TM melalui SUS Portal)

Blum-Blum-Shub cryptosystem and generator. Blum-Blum-Shub cryptosystem and generator

[40 marks] [40 marks] Answer all questions. Jawab semua soalan.

LISTING PROGRAM. // // TODO: Add constructor code after the InitializeComponent() call. //

Manual Pengguna. PCN Online Service Fulfillment System

MICROSOFT EXCEL. Membina Hamparan Elektronik Fungsi Hamparan Elektronik

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

LAMPIRAN A-2 : LAPORAN PENJUALAN DOKUMEN KELUARAN

Decision Structures. Start. Do I have a test in morning? Study for test. Watch TV tonight. Stop

Learning VB.Net. Tutorial 16 Modules

Year 12 : Visual Basic Tutorial.

In this tutorial we will create a simple calculator to Add/Subtract/Multiply and Divide two numbers and show a simple message box result.

Algoritma dan Struktur Data Leon Andretti Abdillah. 08 Control Flow Statements Selection by Using Switch and Case

LAMPIRAN 1 TATA CARA PENGGUNAAN SOFTWARE ALGORITMA GENETIKA

Transcription:

A-1 LISTING PROGRAM mainform.vb Imports System.IO Public Class mainform Private Sub mainform_load(byval sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load enkripsirb.checked = True browsebtn.enabled = False targettxt.enabled = False Private Sub enkripsirb_checkedchanged(byval sender As System.Object, ByVal e As System.EventArgs) Handles enkripsirb.checkedchanged If enkripsirb.checked Then ekeytxt.enabled = True dkeytxt.enabled = False generatersabtn.enabled = True ykeytxt.enabled = True xkeytxt.enabled = False gkeytxt.enabled = True pkeytxt.enabled = True generateelgamalbtn.enabled = True If sourcetxt.text <> "" Then Dim fdir, fname, fext As String fdir = Path.GetDirectoryName(sourceTxt.Text) fname = Path.GetFileNameWithoutExtension(sourceTxt.Text) fext = Path.GetExtension(sourceTxt.Text) targettxt.text = fdir & "\" & fname & "-encrypt" & Date.Now.ToString("dd-MMM-yyyy, hh mm ss") Private Sub dekripsirb_checkedchanged(byval sender As System.Object, ByVal e As System.EventArgs) Handles dekripsirb.checkedchanged If dekripsirb.checked Then ekeytxt.enabled = False dkeytxt.enabled = True generatersabtn.enabled = False ykeytxt.enabled = False xkeytxt.enabled = True gkeytxt.enabled = False pkeytxt.enabled = True generateelgamalbtn.enabled = False If sourcetxt.text <> "" Then Dim fdir, fname, fext As String fdir = Path.GetDirectoryName(sourceTxt.Text) fname = Path.GetFileNameWithoutExtension(sourceTxt.Text) fext = Path.GetExtension(sourceTxt.Text) targettxt.text = fdir & "\" & fname & "-encrypt" & Date.Now.ToString("dd-MMM-yyyy, hh mm ss") & fext

A-2 Private Sub openbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles openbtn.click OpenFileDialog.Title = "Pilih File Citra..." OpenFileDialog.Filter = "JPEG *.jpg BMP *.bmp" OpenFileDialog.ShowDialog() Private Sub prosesbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles prosesbtn.click If enkripsirb.checked Then If (ekeytxt.text <> "") And (nkeytxt.text <> "") And (ykeytxt.text <> "") And (gkeytxt.text <> "") And (pkeytxt.text <> "") And (sourcetxt.text <> "") Then If File.Exists(sourceTxt.Text) Then Dim source As New Bitmap(sourceTxt.Text) Dim target As Bitmap ProgressBar.Maximum = source.width * source.height MsgBox("Proses Enkripsi Algoritma RSA") source = encryptrsa(source, ekeytxt.text, nkeytxt.text) ProgressBar.Maximum = source.width * source.height MsgBox("Proses Enkripsi Algoritma Elgamal") target = encryptelgamal(source, ykeytxt.text, gkeytxt.text, pkeytxt.text) target.save(targettxt.text) targetpb.image = target browsebtn.enabled = True MsgBox("File tidak ditemukan") MsgBox("File atau Kunci Belum Lengkap") If dekripsirb.checked Then If (dkeytxt.text <> "") And (nkeytxt.text <> "") And (xkeytxt.text <> "") And (pkeytxt.text <> "") And (sourcetxt.text <> "") Then If File.Exists(sourceTxt.Text) Then Dim source As New Bitmap(sourceTxt.Text) Dim target As Bitmap ProgressBar.Maximum = source.width * source.height \ 2 MsgBox("Proses Dekripsi Algoritma Elgamal") source = decryptelgamal(source, xkeytxt.text, pkeytxt.text) ProgressBar.Maximum = source.width * source.height \ 2 MsgBox("Proses Dekripsi Algoritma RSA") target = decryptrsa(source, dkeytxt.text, nkeytxt.text) target.save(targettxt.text) targetpb.image = target browsebtn.enabled = True MsgBox("File tidak ditemukan") MsgBox("File atau Kunci Belum Lengkap") Private Sub OpenFileDialog_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog.FileOk

A-3 If OpenFileDialog.FileName <> "" Then Dim fdir, fname, fext As String sourcepb.imagelocation = OpenFileDialog.FileName fdir = Path.GetDirectoryName(OpenFileDialog.FileName) fname = Path.GetFileNameWithoutExtension(OpenFileDialog.FileName) fext = Path.GetExtension(OpenFileDialog.FileName) sourcetxt.text = fdir & "\" & fname & fext If enkripsirb.checked Then targettxt.text = fdir & "\" & fname & "-encrypt" & Date.Now.ToString("dd-MMM-yyyy, hh mm ss") & fext If dekripsirb.checked Then targettxt.text = fdir & "\" & fname & "-encrypt" & Date.Now.ToString("dd-MMM-yyyy, hh mm ss") & fext Private Sub generatersabtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles generatersabtn.click Me.Enabled = False genrsaform.show() Private Sub generateelgamalbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles generateelgamalbtn.click Me.Enabled = False genelgamalform.show() Private Sub browsebtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles browsebtn.click Dim Folder_Path As String = "C:\" If targettxt.text <> "" Then Folder_Path = targettxt.text Folder_Path = Path.GetDirectoryName(Folder_Path) If Directory.Exists(Folder_Path) Then Process.Start("explorer.exe", Folder_Path) End Class genelgamalform.vb Imports System.Numerics Public Class genelgamalform Private Function isprime(byval p As Integer) As Boolean Dim s, n, i As BigInteger Dim prime As Boolean prime = False i = 1 If p = 2 Then s = 0 s = 4 n = BigInteger.Pow(2, p) - 1 Do While (i <= p) s = (BigInteger.Multiply(s, s) - 2) Mod n If s.equals(0) Then

A-4 prime = True Exit Do i = i + 1 Loop Return prime Private Sub generateprime(byval max As Integer) Dim exponent As Integer ProgressBar.Maximum = max - 256 If max > 1000 Then Dim result As Integer = MessageBox.Show("Mencari Bilangan Prima > 1000 membutuhkan waktu yang lama, Lanjutkan?", " Peringatan", MessageBoxButtons.YesNo) If result = DialogResult.No Then Exit Sub Dim v As Integer = 1 For exponent = 257 To max If isprime(exponent) Then ListBox_p.Items.Add(exponent) ListBox_p.Refresh() ProgressBar.Value = v v = v + 1 Next Private Sub genprimebtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles genprimebtn.click Me.Enabled = False generateprime(cint(batasnilaitxt.text)) Me.Enabled = True ListBox_p.Enabled = True Private Sub genelgamalform_formclosed(byval sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed If ListBox_p.SelectedItem <> 0 Or gtxt.text <> "" Or xtxt.text <> "" Or ytxt.text <> "" Then mainform.pkeytxt.text = ListBox_p.SelectedItem.ToString mainform.gkeytxt.text = gtxt.text mainform.xkeytxt.text = xtxt.text mainform.ykeytxt.text = ytxt.text mainform.enabled = True Private Sub keybtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles keybtn.click Dim p As Integer = ListBox_p.SelectedItem Dim rnd As New Random Dim g, x, y As BigInteger If ListBox_p.SelectedItem = 0 Then MsgBox("Pilih nilai p") Exit Sub

A-5 g = rnd.next(2, p - 1) x = g Do While (x = g) x = rnd.next(1, p - 1) Loop y = BigInteger.ModPow(g, x, p) gtxt.text = g.tostring xtxt.text = x.tostring ytxt.text = y.tostring ListBox_p.Enabled = False End Class genrsaform.vb Imports System.Numerics Public Class genrsaform Private Function isprime(byval p As Integer) As Boolean Dim s, n, i As BigInteger Dim prime As Boolean prime = False i = 1 If p = 2 Then s = 0 s = 4 n = BigInteger.Pow(2, p) - 1 Do While (i <= p) s = (BigInteger.Multiply(s, s) - 2) Mod n If s.equals(0) Then prime = True Exit Do i = i + 1 Loop Return prime Private Sub generateprime(byval max As Integer) Dim exponent As Integer ProgressBar.Maximum = max - 1 If max > 1000 Then Dim result As Integer = MessageBox.Show("Mencari Bilangan Prima > 1000 membutuhkan waktu yang lama, Lanjutkan?", " Peringatan", MessageBoxButtons.YesNo) If result = DialogResult.No Then Exit Sub Dim v As Integer = 1 For exponent = 2 To max If isprime(exponent) Then ListBox_p.Items.Add(exponent) ListBox_q.Items.Add(exponent) ListBox_p.Refresh() ListBox_q.Refresh() ProgressBar.Value = v v = v + 1

A-6 Next Private Function gcd(byval x As Integer, ByVal y As Integer) As Integer If x Mod y = 0 Then Return y Return gcd(y, x Mod y) Private Sub genprimebtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles genprimebtn.click ListBox_p.Items.Clear() ListBox_q.Items.Clear() ListBox_e.Items.Clear() Me.Enabled = False generateprime(cint(batasnilaitxt.text)) Me.Enabled = True ListBox_p.Enabled = True ListBox_q.Enabled = True Private Sub eprosesbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles eprosesbtn.click Dim p As Integer = ListBox_p.SelectedItem Dim q As Integer = ListBox_q.SelectedItem ListBox_e.Items.Clear() Dim n, t As Integer If ListBox_p.SelectedItem = 0 Or ListBox_q.SelectedItem = 0 Then MsgBox("Pilih nilai p dan q") Exit Sub If p = q Then MsgBox("nilai p sama dengan q") Exit Sub Me.Enabled = False n = p * q t = (p - 1) * (q - 1) If n < 256 Then MsgBox("Untuk mengurangi error, n > 255") Dim v As Integer = 1 ProgressBar.Maximum = t - 1 For i As Integer = 2 To t - 1 If (gcd(i, t) = 1) Then If isprime(i) And i <> p And i <> q Then ListBox_e.Items.Add(i) ProgressBar.Value = v v = v + 1 Next i n1txt.text = n n2txt.text = n Me.Enabled = True

A-7 Private Sub dprosesbtn_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles dprosesbtn.click Dim p As Integer = ListBox_p.SelectedItem Dim q As Integer = ListBox_q.SelectedItem Dim ekey As Integer = ListBox_e.SelectedItem If ListBox_e.SelectedItem = 0 Then MsgBox("Pilih nilai e") Exit Sub Me.Enabled = False Dim t As Integer = (p - 1) * (q - 1) Dim dkey As Double Dim k As Integer = 1 ProgressBar.Maximum = ekey Do While (Not dkey.equals(cint(dkey)) Or dkey < 1) dkey = (1 + (k * t)) / ekey k = k + 1 ProgressBar.Value = k Mod ekey Loop etxt.text = ekey dtxt.text = CInt(dkey) Me.Enabled = True Private Sub genrsaform_formclosed(byval sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed If etxt.text <> "" Or dtxt.text <> "" Or n1txt.text <> "" Then mainform.ekeytxt.text = etxt.text mainform.dkeytxt.text = dtxt.text mainform.nkeytxt.text = n1txt.text mainform.enabled = True End Class Elgamal.vb Imports System.Numerics Module Elgamal Public Function encryptelgamal(byval img As Bitmap, ByVal y As Integer, ByVal g As Integer, ByVal p As Integer) As Bitmap Dim result As New Bitmap(img.Width * 2, img.height * 2) Dim rnd As New Random Dim k As Integer = rnd.next(1, p - 2) Dim i1, i2, j1, j2 As Integer j1 = 0 j2 = 1 Dim yk As BigInteger = BigInteger.Pow(y, k) For j As Integer = 0 To img.height - 1 i1 = 0 i2 = 1

A-8 For i As Integer = 0 To img.width - 1 Dim rc, gc, bc As Byte Dim er1, er2, eg1, eg2, eb1, eb2 As Integer Dim er11, er12, er21, er22, eg11, eg12, eg21, eg22, eb11, eb12, eb21, eb22 As Byte Dim b16 As String rc = img.getpixel(i, j).r gc = img.getpixel(i, j).g bc = img.getpixel(i, j).b er1 = BigInteger.ModPow(g, k, p) er2 = BigInteger.Multiply(yk, rc) Mod p eg1 = BigInteger.ModPow(g, k, p) eg2 = BigInteger.Multiply(yk, gc) Mod p eb1 = BigInteger.ModPow(g, k, p) eb2 = BigInteger.Multiply(yk, bc) Mod p b16 = Convert.ToString(er1, 2).PadLeft(16, "0"c) er11 = Convert.ToByte(Mid(b16, 1, 8), 2) er12 = Convert.ToByte(Mid(b16, 9, 8), 2) b16 = Convert.ToString(er2, 2).PadLeft(16, "0"c) er21 = Convert.ToByte(Mid(b16, 1, 8), 2) er22 = Convert.ToByte(Mid(b16, 9, 8), 2) b16 = Convert.ToString(eg1, 2).PadLeft(16, "0"c) eg11 = Convert.ToByte(Mid(b16, 1, 8), 2) eg12 = Convert.ToByte(Mid(b16, 9, 8), 2) b16 = Convert.ToString(eg2, 2).PadLeft(16, "0"c) eg21 = Convert.ToByte(Mid(b16, 1, 8), 2) eg22 = Convert.ToByte(Mid(b16, 9, 8), 2) b16 = Convert.ToString(eb1, 2).PadLeft(16, "0"c) eb11 = Convert.ToByte(Mid(b16, 1, 8), 2) eb12 = Convert.ToByte(Mid(b16, 9, 8), 2) b16 = Convert.ToString(eb2, 2).PadLeft(16, "0"c) eb21 = Convert.ToByte(Mid(b16, 1, 8), 2) eb22 = Convert.ToByte(Mid(b16, 9, 8), 2) If er11 > 255 Or eg11 > 255 Or eb11 > 255 Then MsgBox("Nilai RGB 1 Melebihi Nilai Maksimum") If er12 > 255 Or eg12 > 255 Or eb12 > 255 Then MsgBox("Nilai RGB 2 Melebihi Nilai Maksimum") If er21 > 255 Or eg21 > 255 Or eb21 > 255 Then MsgBox("Nilai RGB 3 Melebihi Nilai Maksimum") If er22 > 255 Or eg22 > 255 Or eb22 > 255 Then MsgBox("Nilai RGB 4 Melebihi Nilai Maksimum") result.setpixel(i1, j1, Color.FromArgb(er11, eg11, eb11)) result.setpixel(i2, j1, Color.FromArgb(er21, eg21, eb21)) result.setpixel(i1, j2, Color.FromArgb(er12, eg12, eb12)) result.setpixel(i2, j2, Color.FromArgb(er22, eg22, eb22)) mainform.progressbar.value = mainform.progressbar.value + 1 mainform.persenlbl.text = Format((mainForm.ProgressBar.Value / mainform.progressbar.maximum) * 100, "0.00") & " %" mainform.persenlbl.refresh() i1 = i1 + 2 i2 = i2 + 2 Next i j1 = j1 + 2 j2 = j2 + 2

A-9 mainform.targetpb.refresh() Next j Public Function decryptelgamal(byval img As Bitmap, ByVal x As Integer, ByVal p As Integer) As Bitmap Dim result As New Bitmap(img.Width \ 2, img.height \ 2) Dim i1, i2, j1, j2 As Integer j1 = 0 j2 = 1 For j As Integer = 0 To (img.height \ 2) - 1 i1 = 0 i2 = 1 For i As Integer = 0 To (img.width \ 2) - 1 Dim rc, gc, bc As Integer Dim er1, er2, eg1, eg2, eb1, eb2 As BigInteger Dim er11, er12, er21, er22, eg11, eg12, eg21, eg22, eb11, eb12, eb21, eb22 As Byte Dim rx, gx, bx As BigInteger Dim b16a, b16b As String er11 = img.getpixel(i1, j1).r er12 = img.getpixel(i1, j2).r er21 = img.getpixel(i2, j1).r er22 = img.getpixel(i2, j2).r eg11 = img.getpixel(i1, j1).g eg12 = img.getpixel(i1, j2).g eg21 = img.getpixel(i2, j1).g eg22 = img.getpixel(i2, j2).g eb11 = img.getpixel(i1, j1).b eb12 = img.getpixel(i1, j2).b eb21 = img.getpixel(i2, j1).b eb22 = img.getpixel(i2, j2).b b16a = Convert.ToString(er11, 2).PadLeft(8, "0"c) b16b = Convert.ToString(er12, 2).PadLeft(8, "0"c) er1 = Convert.ToInt16(b16a & b16b, 2) b16a = Convert.ToString(er21, 2).PadLeft(8, "0"c) b16b = Convert.ToString(er22, 2).PadLeft(8, "0"c) er2 = Convert.ToInt16(b16a & b16b, 2) b16a = Convert.ToString(eg11, 2).PadLeft(8, "0"c) b16b = Convert.ToString(eg12, 2).PadLeft(8, "0"c) eg1 = Convert.ToInt16(b16a & b16b, 2) b16a = Convert.ToString(eg21, 2).PadLeft(8, "0"c) b16b = Convert.ToString(eg22, 2).PadLeft(8, "0"c) eg2 = Convert.ToInt16(b16a & b16b, 2) b16a = Convert.ToString(eb11, 2).PadLeft(8, "0"c) b16b = Convert.ToString(eb12, 2).PadLeft(8, "0"c) eb1 = Convert.ToInt16(b16a & b16b, 2) b16a = Convert.ToString(eb21, 2).PadLeft(8, "0"c) b16b = Convert.ToString(eb22, 2).PadLeft(8, "0"c) eb2 = Convert.ToInt16(b16a & b16b, 2) rx = BigInteger.Pow(er1, p - 1 - x) gx = BigInteger.Pow(eg1, p - 1 - x) bx = BigInteger.Pow(eb1, p - 1 - x)

A-10 rc = er2 * rx Mod p gc = eg2 * gx Mod p bc = eb2 * bx Mod p If rc > 255 Or gc > 255 Or bc > 255 Then MsgBox("Nilai RGB Melebihi Nilai Maksimum : R = " & rc & " G = " & gc & " B = " & bc) result.setpixel(i, j, Color.FromArgb(rc, gc, bc)) mainform.progressbar.value = mainform.progressbar.value + 1 mainform.persenlbl.text = Format((mainForm.ProgressBar.Value / mainform.progressbar.maximum) * 100, "0.00") & " %" mainform.persenlbl.refresh() i1 = i1 + 2 i2 = i2 + 2 Next i j1 = j1 + 2 j2 = j2 + 2 mainform.targetpb.refresh() Next j End Module RSA.vb Imports System.Numerics Module RSA Public Function encryptrsa(byval img As Bitmap, ByVal e As Integer, ByVal n As Integer) As Bitmap Dim result As New Bitmap(img.Width, img.height * 2) Dim j1 As Integer = 0 Dim j2 As Integer = 1 For j As Integer = 0 To img.height - 1 For i As Integer = 0 To img.width - 1 Dim r, g, b, er1, er2, eg1, eg2, eb1, eb2 As Byte Dim er, eg, eb As Integer Dim b16 As String r = img.getpixel(i, j).r g = img.getpixel(i, j).g b = img.getpixel(i, j).b er = BigInteger.ModPow(r, e, n) eg = BigInteger.ModPow(g, e, n) eb = BigInteger.ModPow(b, e, n) b16 = Convert.ToString(er, 2).PadLeft(16, "0"c) er1 = Convert.ToByte(Mid(b16, 1, 8), 2) er2 = Convert.ToByte(Mid(b16, 9, 8), 2) b16 = Convert.ToString(eg, 2).PadLeft(16, "0"c) eg1 = Convert.ToByte(Mid(b16, 1, 8), 2)

A-11 eg2 = Convert.ToByte(Mid(b16, 9, 8), 2) b16 = Convert.ToString(eb, 2).PadLeft(16, "0"c) eb1 = Convert.ToByte(Mid(b16, 1, 8), 2) eb2 = Convert.ToByte(Mid(b16, 9, 8), 2) If er1 > 255 Or eg1 > 255 Or eb1 > 255 Then MsgBox("Nilai RGB Melebihi Nilai Maksimum : R = " & er1 & " G = " & eg1 & " B = " & eb1) If er2 > 255 Or eg2 > 255 Or eb2 > 255 Then MsgBox("Nilai RGB 2 Melebihi Nilai Maksimum : R = " & er2 & " G = " & eg2 & " B = " & eb2) result.setpixel(i, j1, Color.FromArgb(er1, eg1, eb1)) result.setpixel(i, j2, Color.FromArgb(er2, eg2, eb2)) mainform.progressbar.value = mainform.progressbar.value + 1 mainform.persenlbl.text = Format((mainForm.ProgressBar.Value / mainform.progressbar.maximum) * 100, "0.00") & " %" mainform.persenlbl.refresh() Next i j1 = j1 + 2 j2 = j2 + 2 mainform.targetpb.refresh() Next j Public Function decryptrsa(byval img As Bitmap, ByVal d As Integer, ByVal n As Integer) As Bitmap Dim result As New Bitmap(img.Width, img.height \ 2) Dim j1 As Integer = 0 Dim j2 As Integer = 1 For j As Integer = 0 To (img.height \ 2) - 1 For i As Integer = 0 To (img.width) - 1 Dim er1, eg1, eb1, er2, eg2, eb2 As Byte Dim dr, dg, db, er, eg, eb As Integer Dim b16a, b16b As String er1 = img.getpixel(i, j1).r er2 = img.getpixel(i, j2).r eg1 = img.getpixel(i, j1).g eg2 = img.getpixel(i, j2).g eb1 = img.getpixel(i, j1).b eb2 = img.getpixel(i, j2).b b16a = Convert.ToString(er1, 2).PadLeft(8, "0"c) b16b = Convert.ToString(er2, 2).PadLeft(8, "0"c) er = Convert.ToInt16(b16a & b16b, 2) b16a = Convert.ToString(eg1, 2).PadLeft(8, "0"c) b16b = Convert.ToString(eg2, 2).PadLeft(8, "0"c) eg = Convert.ToInt16(b16a & b16b, 2) b16a = Convert.ToString(eb1, 2).PadLeft(8, "0"c) b16b = Convert.ToString(eb2, 2).PadLeft(8, "0"c) eb = Convert.ToInt16(b16a & b16b, 2) dr = BigInteger.ModPow(er, d, n) dg = BigInteger.ModPow(eg, d, n) db = BigInteger.ModPow(eb, d, n)

A-12 If dr > 255 Or dg > 255 Or db > 255 Then MsgBox("Nilai RGB Melebihi Nilai Maksimum : R = " & dr & " G = " & dg & " B = " & db) result.setpixel(i, j, Color.FromArgb(dr, dg, db)) mainform.progressbar.value = mainform.progressbar.value + 1 mainform.persenlbl.text = Format((mainForm.ProgressBar.Value / mainform.progressbar.maximum) * 100, "0.00") & " %" mainform.persenlbl.refresh() Next i j1 = j1 + 2 j2 = j2 + 2 mainform.targetpb.refresh() Next j End Module

A-13 CURRICULUM VITAE Nama Alamat Sekarang Alamat Orang Tua : Ahmad Ihsan : Jl. Bunga Kantil IV No. 77 Padang Bulan, Medan : Jl. Bunga Kantil IV No. 77 Padang Bulan, Medan Tempat/Tgl Lahir : Medan/ 18 Januari 1989 Telp/Hp : 085207891515 Email : ahmadihsan18@yahoo.co.id Riwayat Pendidikan SD Negeri 060935 Medan dari Tahun 1995 s/d Tahun 2001 SMP Swasta Dharma Pancasila Medan dari Tahun 2001 s/d Tahun 2004 SMA Negeri 2 Medan dari Tahun 2004 s/d Tahun 2007 dari Tahun 2008 s/d Tahun 2015 Keahlian/Kursus yang diikuti 1. Mampu mengoperasikan aplikasi dasar pada komputer 2. Mampu membangun jaringan internet 3. Mampu mengoperasikan aplikasi Photoshop 4. Mampu mengakses sistem operasi Windows 5. Pengalaman menjadi pengajar jaringan computer di SMK Raksana 6. Pengalaman menjadi teknisi computer