Kode Program Form Home namespace SkripsiLagi public partial class Form9 : Form public Form9() LISTING PROGRAM private void filetoolstripmenuitem_click(object sender, EventArgs e) Form2 fr = new Form2(); private void helptoolstripmenuitem1_click(object sender, EventArgs e) Form11 fr = new Form11(); private void exittoolstripmenuitem_click_1(object sender, EventArgs e) Application.Exit(); private void helptoolstripmenuitem_click(object sender, EventArgs e) Form10 fr = new Form10(); Kode Program Form Identitas
namespace SkripsiLagi public partial class Form2 : Form public Form2() private void button1_click(object sender, EventArgs e) Form1 fr = new Form1(); Kode Program Form Autentikasi using System.Numerics; using System.Diagnostics; namespace SkripsiLagi public partial class Form1 : Form int p1_arb, p2_arb, n_arb = 0, e_arb, d_arb, totien_n; int p1_user1, p2_user1, n_user1 = 0, e_user1, d_user1; int p1_user2, p2_user2, n_user2 = 0, e_user2, d_user2; int[] X; public BigInteger[] sign_id1; public BigInteger[] sign_id2; public BigInteger sign_k1n, sign_k1e, sign_k2n, sign_k2e; BigInteger[] dekrip_id1; BigInteger[] dekrip_id2; BigInteger dekrip_k1n, dekrip_k1e, dekrip_k2n, dekrip_k2e; string id1, id2; int enkrip_sign_sk, enkrip_sign_t; Stopwatch sw = new Stopwatch(); Random rnd = new Random(); public Form1()
public Form1(string frm4, string aa) : this() int dekrip_sign_sk = Convert.ToInt32(s_KeyDec.Text); int dekrip_sign_t = Convert.ToInt32(t_StampDec.Text); s_keydec.text = ""; t_stampdec.text = ""; MessageBox.Show(dekrip_sign_sk.ToString() + " : " + dekrip_sign_t.tostring()); private void button2_click(object sender, EventArgs e) string identitas; //Sign User1 identitas = id_user1_sign.text; int[] id1 = new int[identitas.length]; sign_id1 = new BigInteger[identitas.Length]; for (int i = 0; i < identitas.length; i++) id1[i] = Convert.ToInt32(identitas[i]); for (int i = 0; i < id1.length; i++) sign_id1[i] = BigInteger.ModPow(id1[i], d_arb, n_arb); sign_k1n = BigInteger.ModPow(n_user1, d_arb, n_arb); sign_k1e = BigInteger.ModPow(e_user1, d_arb, n_arb); //Sign User2 identitas = id_user2_sign.text; int[] id2 = new int[identitas.length]; sign_id2 = new BigInteger[identitas.Length]; for (int i = 0; i < identitas.length; i++) id2[i] = Convert.ToInt32(identitas[i]); for (int i = 0; i < id2.length; i++) sign_id2[i] = BigInteger.ModPow(id2[i], d_arb, n_arb); sign_k2n = BigInteger.ModPow(n_user2, d_arb, n_arb); sign_k2e = BigInteger.ModPow(e_user2, d_arb, n_arb); Form3 fr3 = new Form3(sign_id1, sign_k1n, sign_k1e, sign_id2, sign_k2n, sign_k2e); fr3.show(); /*string iduser1 = ""; dekrip_id1 = new BigInteger[sign_id1.Length]; dekrip_id2 = new BigInteger[sign_id2.Length]; int limit = sign_id1.length; for (int i = 0; i < limit; i++) iduser1 += sign_id1[i].tostring() + " "; id_user1dec.text = iduser1; n_user1dec.text = sign_k1n.tostring();
e User1Dec.Text = sign_k1e.tostring(); string iduser2 = ""; limit = sign_id2.length; for (int i = 0; i < limit; i++) iduser2 += sign_id2[i].tostring() + " "; id_user2dec.text = iduser2; n_user2dec.text = sign_k2n.tostring(); e User2Dec.Text = sign_k2e.tostring();*/ private void button4_click(object sender, EventArgs e) BigInteger skey = Convert.ToInt32(s_Key.Text); BigInteger time = Convert.ToInt32(t_Stamp.Text); BigInteger sign_sk, sign_t; sign_sk = BigInteger.ModPow(sKey, d_user1, n_user1); sign_t = BigInteger.ModPow(time, d_user1, n_user1); Form4 fr = new Form4(sign_sk, sign_t, e_user2, n_user2); // private void button5_click(object sender, EventArgs e) sw.start(); id1 = ""; id2 = ""; dekrip_id1 = new BigInteger[sign_id1.Length]; dekrip_id2 = new BigInteger[sign_id2.Length]; for (int i = 0; i < sign_id1.length; i++) dekrip_id1[i] = BigInteger.ModPow(sign_id1[i], e_arb, n_arb); id1 += char.convertfromutf32((int)dekrip_id1[i]); for (int i = 0; i < sign_id2.length; i++) dekrip_id2[i] = BigInteger.ModPow(sign_id2[i], e_arb, n_arb); id2 += char.convertfromutf32((int)dekrip_id2[i]); dekrip_k1n = BigInteger.ModPow(Convert.ToInt32(n_User1Dec.Text), e_arb, n_arb); dekrip_k1e = BigInteger.ModPow(sign_k1e, e_arb, n_arb); dekrip_k2n = BigInteger.ModPow(Convert.ToInt32(n_User2Dec.Text), e_arb, n_arb); dekrip_k2e = BigInteger.ModPow(sign_k2e, e_arb, n_arb); sw.stop(); time.text = "Time: " + sw.elapsed + " second"; Form6 fr = new Form6(id1, dekrip_k1n, dekrip_k1e, id2, dekrip_k2n, dekrip_k2e); private void button6_click(object sender, EventArgs e) sw.start(); /*state = true;
s_keydec.text = enkrip_sign_sk.tostring(); t_stampdec.text = enkrip_sign_t.tostring();*/ enkrip_sign_sk = Convert.ToInt32(s_KeyDec.Text); enkrip_sign_t = Convert.ToInt32(t_StampDec.Text); int dekrip_sign_sk = (int)biginteger.modpow(enkrip_sign_sk, d_user2, n_user2); int dekrip_sign_t = (int)biginteger.modpow(enkrip_sign_t, d_user2, n_user2); n_user1); n_user1); int dekrip_sk = (int)biginteger.modpow(dekrip_sign_sk, e_user1, int dekrip_t = (int)biginteger.modpow(dekrip_sign_t, e_user1, sw.stop(); time.text = "Time: " + sw.elapsed + " second"; Form7 fr = new Form7(dekrip_sk, dekrip_t); private void textbox22_textchanged(object sender, EventArgs e) private void Form1_Load(object sender, EventArgs e) if (id_user1.text == "") TextBox id1 = Application.OpenForms["Form2"].Controls["id_User1"] as TextBox; id_user1.text = id1.text; TextBox id2 = Application.OpenForms["Form2"].Controls["id_User2"] as TextBox; id_user2.text = id2.text; //Form frm2 = Application.OpenForms["Form2"] as Form; //frm2.dispose(); public bool Fermat(BigInteger prime) BigInteger a = 0; for (int i = 0; i <= prime.tostring().length; i++) a = Random(prime); if (!(BigInteger.ModPow(a, prime - 1, prime).isone)) return false; return true; public BigInteger Random(BigInteger prime) BigInteger bigval; int limit = rnd.next(2, prime.tostring().length); do
string strval = ""; if (prime.tostring().length == 1) for (int i = 0; i < prime.tostring().length; i++) int val = rnd.next(2, 10); strval += val.tostring(); bigval = BigInteger.Parse(strVal); else int val; for (int i = 0; i < limit; i++) if (i == 0) val = rnd.next(0, Convert.ToInt32(prime.ToString().Substring(0, 1))); strval += val.tostring(); else val = rnd.next(0, 10); strval += val.tostring(); bigval = BigInteger.Parse(strVal); while (bigval < 2 bigval >= prime); return bigval; private int get_e(int totien_n) int e = 1; for (int i = 2; i < totien_n; i++) if (BigInteger.GreatestCommonDivisor(i, totien_n) == 1) e = i; break; return e; private int get_d(int totien_n, int e) int j = 1, ed = 0, d; while (ed!= 1) ed = (j * e) % totien_n; j++; d = j - 1; return d; private void btn_kunci_click(object sender, EventArgs e)
//Get Key Arbitrator p1_arb = rnd.next(100, 1000); p2_arb = rnd.next(100, 1000); while (!(Fermat((BigInteger)p1_arb) && Fermat((BigInteger)p2_arb))) p1_arb = rnd.next(100, 1000); p2_arb = rnd.next(100, 1000); n_arb = p1_arb * p2_arb; totien_n = (p1_arb - 1) * (p2_arb - 1); e_arb = get_e(totien_n); d_arb = get_d(totien_n, e_arb); n_arbit.text = n_arb.tostring(); e_arbit.text = e_arb.tostring(); d_arbit.text = d_arb.tostring(); //Get Key User 1 p1_user1 = rnd.next(100, 1000); p2_user1 = rnd.next(100, 1000); while (!(Fermat((BigInteger)p1_user1) && Fermat((BigInteger)p2_user1))) p1_user1 = rnd.next(100, 1000); p2_user1 = rnd.next(100, 1000); n_user1 = p1_user1 * p2_user1; if (n_user1 >= n_arb) btn_kunci_click(null, null); totien_n = (p1_user1-1) * (p2_user1-1); e_user1 = get_e(totien_n); d_user1 = get_d(totien_n, e_user1); n_user1.text = n_user1.tostring(); e_user1.text = e_user1.tostring(); d_user1.text = d_user1.tostring(); //Get Key User 2 p1_user2 = rnd.next(100, 1000); p2_user2 = rnd.next(100, 1000); while (!(Fermat((BigInteger)p1_user2) && Fermat((BigInteger)p2_user2))) p1_user2 = rnd.next(100, 1000); p2_user2 = rnd.next(100, 1000); n_user2 = p1_user2 * p2_user2; if (n_user2 >= n_arb) btn_kunci_click(null, null); totien_n = (p1_user2-1) * (p2_user2-1); e_user2 = get_e(totien_n); d_user2 = get_d(totien_n, e_user2); n_user2.text = n_user2.tostring(); e_user2.text = e_user2.tostring(); d_user2.text = d_user2.tostring(); id_user1_sign.text = id_user1.text; n_user1_sign.text = n_user1.text; e_user1_sign.text = e_user1.text;
id_user2_sign.text = id_user2.text; n_user2_sign.text = n_user2.text; e_user2_sign.text = e_user2.text; private int LCG() int a = 106, b = 1283, m = 6075; X = new int[m]; for (int i = 1; i < m; i++) X[i] = ((int)a * X[i - 1] + (int)b) % m; //hasil += X[i].ToString() + " "; //richtextbox1.text = hasil; int idx = rnd.next(1, m); int key = X[idx]; return key; private void btn_ok_click(object sender, EventArgs e) s_key.text = LCG().ToString(); t_stamp.text = DateTime.Now.ToString("hhmm"); private void t_stampdec_textchanged(object sender, EventArgs e) /*if (s_keydec.text!= "" && t_stampdec.text!= "" && state == false) enkrip_sign_sk = Convert.ToInt32(s_KeyDec.Text); enkrip_sign_t = Convert.ToInt32(t_StampDec.Text); s_keydec.text = ""; t_stampdec.text = ""; //MessageBox.Show(dekrip_sign_sk.ToString() + " : " + dekrip_sign_t.tostring()); */ private void s_keydec_textchanged(object sender, EventArgs e) Kode Program Form Hasil Sign Arbitrator using System.Numerics;
namespace SkripsiLagi public partial class Form3 : Form public Form3() public Form3(BigInteger[] sign_id1, BigInteger sign_k1n, BigInteger sign_k1e, BigInteger[] sign_id2, BigInteger sign_k2n, BigInteger sign_k2e) : this() string iduser1 = ""; int limit = sign_id1.length; for (int i = 0; i < limit; i++) iduser1 += sign_id1[i].tostring() + " "; id_user1_sign.text = iduser1; n_user1_sign.text = sign_k1n.tostring(); e_user1_sign.text = sign_k1e.tostring(); string iduser2 = ""; limit = sign_id2.length; for (int i = 0; i < limit; i++) iduser2 += sign_id2[i].tostring() + " "; id_user2_sign.text = iduser2; n_user2_sign.text = sign_k2n.tostring(); e_user2_sign.text = sign_k2e.tostring(); //this.form3_load(null, null); private void button1_click(object sender, EventArgs e) GroupBox gb = Application.OpenForms["Form1"].Controls["groupBox4"].Controls["groupBox6"] as GroupBox; TextBox id1 = gb.controls["id_user1dec"] as TextBox; id1.text = id_user1_sign.text; TextBox n1 = gb.controls["n_user1dec"] as TextBox; n1.text = n_user1_sign.text; TextBox e1 = gb.controls["e User1Dec"] as TextBox; e1.text = e_user1_sign.text; TextBox id2 = gb.controls["id_user2dec"] as TextBox; id2.text = id_user2_sign.text; TextBox n2 = gb.controls["n_user2dec"] as TextBox; n2.text = n_user2_sign.text; TextBox e2 = gb.controls["e User2Dec"] as TextBox; e2.text = e_user2_sign.text; Form fr = Application.OpenForms["Form1"] as Form; private void Form3_Load(object sender, EventArgs e)
// //Form1 frm1 = new Form1();// Application.OpenForms["Form1"] as Form; Kode Program Form Hasil Sign User1 using System.Numerics; namespace SkripsiLagi public partial class Form4 : Form int e2, n2; public Form4() public Form4(BigInteger sign_sk, BigInteger sign_t, int e, int n) : this() s_keysign.text = sign_sk.tostring(); t_stampsign.text = sign_t.tostring(); e2 = e; n2 = n; private void button1_click(object sender, EventArgs e) int sign_sk = Convert.ToInt32(s_KeySign.Text); int sign_t = Convert.ToInt32(t_StampSign.Text); BigInteger Enkrip_sign_sk = BigInteger.ModPow(sign_sk, e2, n2); BigInteger Enkrip_sign_t = BigInteger.ModPow(sign_t, e2, n2); Form5 fr = new Form5(Enkrip_sign_sk, Enkrip_sign_t); private void Form4_Load(object sender, EventArgs e)
Kode Program Form Hasil Enkripsi User1 using System.Numerics; namespace SkripsiLagi public partial class Form5 : Form public Form5() public Form5(BigInteger Enkrip_sign_sk, BigInteger Enkrip_sign_t) : this() s_keyenkrip.text = Enkrip_sign_sk.ToString(); t_stampenkrip.text = Enkrip_sign_t.ToString(); private void button1_click(object sender, EventArgs e) GroupBox gb = Application.OpenForms["Form1"].Controls["groupBox4"].Controls["groupBox6"] as GroupBox; TextBox key = gb.controls["s_keydec"] as TextBox; key.text = s_keyenkrip.text; TextBox time = gb.controls["t_stampdec"] as TextBox; time.text = t_stampenkrip.text; Form fr = Application.OpenForms["Form1"] as Form; //fr.show(); private void Form5_Load(object sender, EventArgs e) Kode Program Form Hasil Dekripsi Identitas dan Kunci using System.Numerics;
namespace SkripsiLagi public partial class Form6 : Form public Form6() public Form6(string id1, BigInteger dekrip_k1n, BigInteger dekrip_k1e, string id2, BigInteger dekrip_k2n, BigInteger dekrip_k2e) : this() id_user1.text = id1; n_user1.text = dekrip_k1n.tostring(); e_user1.text = dekrip_k1e.tostring(); id_user2.text = id2; n_user2.text = dekrip_k2n.tostring(); e_user2.text = dekrip_k2e.tostring(); private void button5_click(object sender, EventArgs e) GroupBox gb1 = Application.OpenForms["Form1"].Controls["groupBox3"] as GroupBox; GroupBox gb2 = Application.OpenForms["Form1"].Controls["groupBox4"] as GroupBox; TextBox id1 = gb1.controls["id_user1"] as TextBox; TextBox n1 = gb1.controls["n_user1"] as TextBox; TextBox e1 = gb1.controls["e_user1"] as TextBox; TextBox id2 = gb2.controls["id_user2"] as TextBox; TextBox n2 = gb2.controls["n_user2"] as TextBox; TextBox e2 = gb2.controls["e_user2"] as TextBox; if (id_user1.text == id1.text && n_user1.text == n1.text && e_user1.text == e1.text && id_user2.text == id2.text && n_user2.text == n2.text && e_user2.text == e2.text) MessageBox.Show("Identitas dan Kunci Publik Valid"); Button btn = gb2.controls["groupbox6"].controls["btn_dec2user2"] as Button; btn.enabled = true; else MessageBox.Show("Identitas atau Kunci Publik tidak Valid"); private void Form6_Load(object sender, EventArgs e) Kode Program Form Hasil Dekripsi Session Key dan Timestamp
namespace SkripsiLagi public partial class Form7 : Form public Form7() public Form7(int sk, int t) : this() string time = t.tostring(); if (time.length == 1) time = "000" + time; else if (time.length == 2) time = "00" + time; else if (time.length == 3) time = "0" + time; s_key.text = sk.tostring(); t_stamp.text = time; private void button6_click(object sender, EventArgs e) GroupBox gb = Application.OpenForms["Form1"].Controls["groupBox3"].Controls["groupBox1"] as GroupBox; TextBox key = gb.controls["s_key"] as TextBox; if (s_key.text == key.text) int time = Convert.ToInt32(t_Stamp.Text); int time_now = Convert.ToInt32(DateTime.Now.ToString("hhmm")); if (time_now - time >= 0 && time_now - time <= 10) MessageBox.Show("Session Key dan Timestamp valid"); Form8 fr = new Form8(s_Key.Text); else if (s_key.text!= key.text) MessageBox.Show("Session Key dan Timestamp tidak valid"); private void Form7_Load(object sender, EventArgs e)
Kode Program Form Komunikasi using System.Numerics; using System.IO; namespace SkripsiLagi public partial class Form8 : Form BigInteger n_user1, n_user2; int e_user1, d_user1, e_user2, d_user2; string user1, user2; public Form8() public Form8(string key) : this() s_key.text = key; GroupBox gb = Application.OpenForms["Form1"].Controls["groupBox3"] as GroupBox; GroupBox gb2 = Application.OpenForms["Form1"].Controls["groupBox4"] as GroupBox; TextBox id1 = gb.controls["id_user1"] as TextBox; TextBox id2 = gb2.controls["id_user2"] as TextBox; TextBox n1 = gb.controls["n_user1"] as TextBox; TextBox e1 = gb.controls["e_user1"] as TextBox; TextBox d1 = gb.controls["d_user1"] as TextBox; TextBox n2 = gb2.controls["n_user2"] as TextBox; TextBox e2 = gb2.controls["e_user2"] as TextBox; TextBox d2 = gb2.controls["d_user2"] as TextBox; user1 = id1.text; user2 = id2.text; n_user1 = BigInteger.Parse(n1.Text); n_user2 = BigInteger.Parse(n2.Text); e_user1 = Convert.ToInt32(e1.Text); e_user2 = Convert.ToInt32(e2.Text); d_user1 = Convert.ToInt32(d1.Text); d_user2 = Convert.ToInt32(d2.Text); private void button4_click(object sender, EventArgs e) if (MessageBox.Show("End Chat?", "Exit", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) Application.Exit();
private void Form8_Load(object sender, EventArgs e) private void pesan_user1_textchanged(object sender, EventArgs e) if (pesan_user1.text == "") btn_kirimuser1.enabled = false; else btn_kirimuser1.enabled = true; private void pesan_user2_textchanged(object sender, EventArgs e) if (pesan_user2.text == "") btn_kirimuser2.enabled = false; else btn_kirimuser2.enabled = true; private void chat_cipher_textchanged(object sender, EventArgs e) if (chat_cipher.text == "") btn_simpan.enabled = false; else btn_simpan.enabled = true; private void btn_kirimuser1_click(object sender, EventArgs e) string pesan = "", pesan2 = ""; int ascii, plaintext; BigInteger cipher; foreach (char c in pesan_user1.text) ascii = Convert.ToInt32(c); cipher = BigInteger.ModPow(c, e_user2, n_user2); pesan += cipher.tostring() + " "; //int j = chat_user1.textlength; chat_user1.text += "You: " + pesan_user1.text + "\r\n"; chat_cipher.text += pesan + "\r\n"; //MessageBox.Show(j.ToString() + " " + chat_user1.textlength); /*chat_user1.select(j, 3); chat_user1.selectioncolor = Color.Blue; chat_user1.select(j + 3, chat_user1.textlength); chat_user1.selectioncolor = Color.Black;*/ pesan_user1.text = ""; //chat_user1.select(0, 0); string[] temp = pesan.split(' '); int[] plain = new int[temp.length]; for (int i = 0; i < temp.length - 1; i++) plain[i] = Convert.ToInt32(temp[i]); plaintext = (int)biginteger.modpow(plain[i], d_user2, n_user2); pesan2 += char.convertfromutf32(plaintext);
//int k = chat_user2.text.length; chat_user2.text += user1 + ": " + pesan2 + "\r\n"; /*int length = user1.length; chat_user2.select(k, length); chat_user2.selectioncolor = Color.Red;*/ private void btn_kirimuser2_click(object sender, EventArgs e) string pesan = "", pesan2 = ""; int ascii, plaintext; BigInteger cipher; foreach (char c in pesan_user2.text) ascii = Convert.ToInt32(c); cipher = BigInteger.ModPow(c, e_user1, n_user1); pesan += cipher.tostring() + " "; //int k = chat_user2.text.length; chat_user2.text += "You: " + pesan_user2.text + "\r\n"; chat_cipher.text += pesan + "\r\n"; pesan_user2.text = ""; //chat_user2.select(k, 3); //chat_user2.selectioncolor = Color.Blue; string[] temp = pesan.split(' '); int[] plain = new int[temp.length]; for (int i = 0; i < temp.length - 1; i++) plain[i] = Convert.ToInt32(temp[i]); plaintext = (int)biginteger.modpow(plain[i], d_user1, n_user1); pesan2 += char.convertfromutf32(plaintext); //int j = chat_user1.text.length; chat_user1.text += user2 + ": " + pesan2 + "\r\n"; //int length = user2.length; //chat_user1.select(j, length); //chat_user1.selectioncolor = Color.Red; private void btn_simpan_click(object sender, EventArgs e) string text = chat_cipher.text + "/" + user1 + "/" + n_user1.tostring() + "/" + e_user1.tostring() + "/" + user2 + "/" + n_user2.tostring() + "/" + e_user2.tostring(); string filename = "D:\\Data\\" + s_key.text + ".txt"; FileStream fstream = new FileStream(filename, FileMode.OpenOrCreate); StreamWriter sw = new StreamWriter(fstream); SeekOrigin seekorigin = new SeekOrigin(); sw.basestream.seek(0, seekorigin); sw.writeline(text); sw.flush(); MessageBox.Show("File berhasil disimpan", "Simpan", MessageBoxButtons.OK, MessageBoxIcon.Information); private void Home_Click(object sender, EventArgs e)
Form9 frm = new Form9(); Form frm1 = Application.OpenForms["Form1"] as Form; frm1.dispose(); this.dispose(); frm.showdialog(); Kode Program Form Arsip using System.IO; namespace SkripsiLagi public partial class Form10 : Form public Form10() private void btn_ok_click(object sender, EventArgs e) string isi; FileStream fstream = new FileStream("D:\\Data\\" + s_key.text + ".txt", FileMode.Open, FileAccess.Read); StreamReader sr = new StreamReader(fstream); sr.basestream.seek(0, SeekOrigin.Begin); isi = sr.readtoend(); sr.close(); string[] text = isi.split('/'); txtcipher.text = text[0]; id_user1.text = text[1]; n_user1.text = text[2]; e_user1.text = text[3]; id_user2.text = text[4]; n_user2.text = text[5]; e_user2.text = text[6]; private void btn_exit_click(object sender, EventArgs e) Form9 fr = new Form9();
Kode Program Form Help namespace SkripsiLagi public partial class Form11 : Form public Form11() private void button1_click(object sender, EventArgs e) Form9 fr = new Form9();
CURRICULUM VITAE Nama : Santo Palentin Manarias Tempat/Tanggal Lahir : Sukamakmur, 28 Oktober 1989 Agama : Kristen Alamat Sekarang : Jl. Jamin Ginting Gg Pembangunan No 3A Alamat Orang Tua : Bagan Batu - Riau Telp/ Hp : 081361628053 Email : santonainggolan@gmail.com Riwayat Pendidikan 2009 2013 : S1 Ilmu Komputer, Medan 2005 2008 : SMA Katolik Budi Murni 1 Medan 2002 2005 : SMP Katolik Budi Murni 1 Medan 1996 2002 : SDN 112155 Gunung Raya Pengalaman Organisasi dan Kegiatan Ilmiah Anggota Departemen Humas Ikatan Mahasiswa S1 Ilmu Komputer (IMILKOM), 2011-2012 Ketua Departemen Humas Pemerintahan Mahasiswa Fakultas Ilmu Komputer dan Teknologi Informasi (PEMA FASILKOM-TI) 2012-2013 Praktek Kerja Lapangan di PT. Adhi Karya Medan