LISTING PROGRAM
Key.cs
using System;
using System.Collections.Generic; using System.Diagnostics;
using System.Drawing;
using System.Drawing.Drawing2D; using System.Drawing.Imaging; using System.IO;
using System.Text;
using System.Windows.Forms;
namespace TugasAkhir {
/// <summary>
/// Description of key. /// </summary>
public partial class key : Form
{
int p,alpa,d, beta; Random r = new Random();
public key() {
//
// The InitializeComponent() call is required for Windows Forms designer support.//
InitializeComponent();
// TODO: Add constructor code after the InitializeComponent() call.
// }
public int modexp(int x, int y, int n) {
int z = 1;
for (int i = 0; i < y ; i++){ z = (x * z) % n;
}
return z; }
public int agrawal(int n) {
int z;
z = r.Next(4,n-2);
if( (Convert.ToInt32(modexp((1+z),n,n)) == ((1 + Convert.ToInt32(modexp(z,n,n))) % n)) && (n%2!=0 && n%5!=0))
return n; else
return agrawal(r.Next(257,5000)); }
{
p = agrawal(r.Next(257,5000)); tb_prima.Text = p.ToString(); alpa = r.Next(2,p-1);
tb_alpa.Text = alpa.ToString(); d = r.Next(2,p-2);
tb_d.Text = d.ToString(); beta = modexp(alpa,d,p);
tb_beta.Text = beta.ToString(); }
void Button_publicClick(object sender, EventArgs e) {
SaveFileDialog simpan = new SaveFileDialog(); simpan.Filter = "Public Key( *.public)|*.public"; simpan.FileName = "*.public";
if (simpan.ShowDialog() == DialogResult.OK) {
FileStream fstream=new FileStream(simpan.FileName,FileMode.Create);
StreamWriter sw = new StreamWriter(fstream);
SeekOrigin seekorigin = new SeekOrigin(); sw.BaseStream.Seek(0, seekorigin);
sw.WriteLine(p); sw.WriteLine(alpa); sw.WriteLine(beta);
sw.Flush(); sw.Close();
} }
void Btn_privateClick(object sender, EventArgs e) {
SaveFileDialog simpan = new SaveFileDialog();
simpan.Filter = "Private Key( *.private)|*.private"; simpan.FileName = "*.private";
if (simpan.ShowDialog() == DialogResult.OK) {
FileStream fstream=new FileStream(simpan.FileName,FileMode.Create);
StreamWriter sw = new StreamWriter(fstream);
SeekOrigin seekorigin = new SeekOrigin(); sw.BaseStream.Seek(0, seekorigin);
sw.WriteLine(p); sw.WriteLine(d);
sw.Flush(); sw.Close(); }
}
this.Hide();
MainForm f1= new MainForm(); f1.ShowDialog();
}
void HelpToolStripMenuItemClick(object sender, System.EventArgs e)
{
this.Hide();
help f1= new help(); f1.ShowDialog(); }
void SenderToolStripMenuItemClick(object sender, EventArgs e)
{
this.Hide();
sender f1= new sender(); f1.ShowDialog();
}
void RecipientToolStripMenuItemClick(object sender, EventArgs e)
{
this.Hide();
Recipient f1= new Recipient(); f1.ShowDialog();
}
void KeyGeneratorToolStripMenuItemClick(object sender, EventArgs e)
{
this.Hide();
key f1= new key(); f1.ShowDialog(); }
void MSEAndPSNRToolStripMenuItemClick(object sender, EventArgs e)
{
this.Hide();
result f1= new result(); f1.ShowDialog();
} }
Sender.cs
/*
* Created by SharpDevelop. * User: Cut Amalia S
* Date: 13/03/2017 * Time: 22:02 *
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic; using System.Diagnostics;
using System.Drawing;
using System.Drawing.Drawing2D; using System.Drawing.Imaging; using System.IO;
using System.Text;
using System.Windows.Forms;
namespace TugasAkhir {
/// <summary>
/// Description of sender. /// </summary>
public partial class sender : Form
{
Random rnd = new Random(); Image file;
Bitmap bmp;
double fileLength; Color p;
List<int> ch = new List<int>(); List<int> hs = new List<int>(); List<int> c1 = new List<int>(); List<int> c2 = new List<int>();
public static String[] edc;
int[] fr;
int width,height;
public sender() {
//
// The InitializeComponent() call is required for Windows Forms designer support.
InitializeComponent();
// TODO: Add constructor code after the InitializeComponent() call.
void HomeToolStripMenuItemClick(object sender, EventArgs e)
{
this.Hide();
MainForm f1= new MainForm(); f1.ShowDialog();
}
void HelpToolStripMenuItemClick(object sender, System.EventArgs e)
{
this.Hide();
help f1= new help(); f1.ShowDialog(); }
void SenderToolStripMenuItemClick(object sender, EventArgs e)
{
this.Hide();
sender f1= new sender(); f1.ShowDialog();
}
void RecipientToolStripMenuItemClick(object sender, EventArgs e)
{
this.Hide();
Recipient f1= new Recipient(); f1.ShowDialog();
}
void KeyGeneratorToolStripMenuItemClick(object sender, EventArgs e)
{
this.Hide();
key f1= new key(); f1.ShowDialog(); }
private Bitmap ResizeBitmap(Bitmap b, int nWidth,
int nHeight) {
Bitmap result = new Bitmap(nWidth, nHeight); using (Graphics g =
Graphics.FromImage((Image)result)) {
g.InterpolationMode = InterpolationMode.NearestNeighbor;
g.DrawImage(b, 0, 0, nWidth, nHeight); }
return result; }
void Btn_browseClick(object sender, EventArgs e) {
open.Filter = "bmp files (*.bmp)|*.bmp"; if (open.ShowDialog() == DialogResult.OK) {
file = Image.FromFile(open.FileName); bmp = new Bitmap(open.FileName); pictureBox1.Image = file;
textBox1.Text = open.FileName;
textBox2.Text = file.Height.ToString() + " x " +file.Width.ToString();
width = bmp.Width; height = bmp.Height;
fileLength = new FileInfo(open.FileName).Length * 1.0 /1024;
size1.Text = fileLength.ToString()+" kb";
} }
bool cek(int x) {
for(int i=0; i<ch.Count; i++) {
if(ch[i] == x) return false; }
return true; }
void freq(int x) {
for(int i=0; i<ch.Count; i++) {
if(ch[i] == x) fr[i]++; }
}
void Insertion() {
for (int i = 1; i < ch.Count; i++) for (int j = 0; j < i; j++)
if (fr[i] > fr[j])
{
int frtemp = fr[i];
fr[i] = fr[j]; fr[j] = frtemp; int sbtemp = ch[i]; ch[i] = ch[j]; ch[j] = sbtemp;
}
}
int indeks(int x) {
if(ch[i]==x) return i; }
return 0; }
void init() {
ch.Clear();
for(int i=0; i<height; i++) {
for(int j=0; j<width; j++) {
p = bmp.GetPixel(i,j); if(cek(p.R))
ch.Add(p.R); if(cek(p.G))
ch.Add(p.G); if(cek(p.B))
ch.Add(p.B);
} }
fr = new int[ch.Count]; for(int i=0; i<ch.Count;i++)
fr[i] = 0;
for(int i=0; i<height; i++) {
for(int j=0; j<width; j++) {
p = bmp.GetPixel(i,j); freq(p.R);
freq(p.G); freq(p.B); }
}
Insertion(); }
void Btn_encodeClick(object sender, EventArgs e) {
edc_proses();
MessageBox.Show("Citra berhasil dikompresi"); }
void Kodeedc() {
edc = new string[ch.Count]; int c = 0;
for (int n = 1; n < ch.Count + 1; n++) { String b = DecToBin(n);
int M = b.Length;
StringBuilder u = new StringBuilder();
string stb_edc() {
StringBuilder stb = new StringBuilder();
for(int i=0; i<height; i++) {
for(int j=0; j<width; j++) {
p = bmp.GetPixel(i,j);
stb.Append(edc[indeks(p.R)]);
return stb.ToString(); }
string Reverse(String sb)
{
char[] charArray = sb.ToCharArray();
return new String(charArray);
}
int BinToDec(String bin)
{
StringBuilder sb = new StringBuilder(Reverse(bin));
int n = 1; int dec = 0;
for (int i = 0; i < sb.Length; i++)
{
dec = dec +
(int)(Char.GetNumericValue(sb[i])) * n;
n = n * 2;
}
return dec;
}
void Encode(String stb) {
for (int i = 0; i < stb.Length; i+= 8)
{
String x = stb.Substring(i, 8); int y = BinToDec(x);
hs.Add(y);
}
}
long ukuran() {
long temp = 0;
for(int i=0; i<hs.Count; i++)
temp+=hs[i].ToString().Length; return temp;
}
long ukuran2() {
long temp = 0;
for(int i=0; i<c1.Count; i++)
temp+=c1[i].ToString().Length + c2[i].ToString().Length;
return temp; }
void edc_proses() {
Stopwatch watch = new Stopwatch();// running time watch.Start();
hs.Clear(); //
init(); Kodeedc();
string hasil = stb_edc(); Encode(hasil);
double siz = ukuran() * 1.0 /1024;
size2.Text = Math.Round(siz,2).ToString() + " kb";
double CR = (fileLength/siz);
cr.Text = Math.Round(CR,2).ToString(); double RC = (siz/(fileLength * 1.0))*100; rc.Text = Math.Round(RC,2).ToString()+" %"; double SS = (1.0 - (1.0/CR)) * 100;
ss.Text = Math.Round(SS,2).ToString()+" %"; time.Text =
Math.Round(Convert.ToDecimal(watch.ElapsedMilliseconds)/1000,4).ToS tring()+" s";
}
void Button1Click(object sender, EventArgs e) {
SaveFileDialog simpan = new SaveFileDialog(); simpan.Filter = "Compressed and Encrypted Files( *.cas)|*.cas";
simpan.FileName = "*.cas";
if (simpan.ShowDialog() == DialogResult.OK) {
FileStream fstream=new FileStream(simpan.FileName,FileMode.OpenOrCreate);
StreamWriter sw = new StreamWriter(fstream);
SeekOrigin seekorigin = new SeekOrigin();
sw.BaseStream.Seek(0, seekorigin); for(int i=0; i<c1.Count; i++) {
sw.WriteLine(c1[i]); sw.WriteLine(c2[i]); }
sw.Flush(); sw.Close();
string
filenamee=simpan.FileName.Substring(0,simpan.FileName.Length- 4) + "e.dat";
FileStream fstreamm=new FileStream(filenamee,FileMode.OpenOrCreate);
StreamWriter sww = new StreamWriter(fstreamm);
SeekOrigin seekoriginn = new SeekOrigin();
sww.BaseStream.Seek(0, seekoriginn);
sww.WriteLine(width.ToString()+"~"+height.ToString()+"~"+ch.C ount);
StringBuilder stb = new StringBuilder();
for(int i=0; i<ch.Count; i++) {
}
sww.WriteLine(stb);
for (int n = 0; n < edc.Length; n++) sww.Write(edc[n]+"~");
sww.Flush(); sww.Close(); }
}
void Button6Click(object sender, EventArgs e) {
int x, y;
for (x = 0; x < bmp.Width; x++) {
for (y = 0; y < bmp.Height; y++) {
Color pixelColor = bmp.GetPixel(x, y); int z = (pixelColor.R + pixelColor.G + pixelColor.B)/3;
Color newColor = Color.FromArgb(z, z, z); bmp.SetPixel(x, y, newColor);
} }
pictureBox1.Image = bmp; }
public int modexp(int x, int y, int n) {
int z = 1;
for (int i = 0; i < y ; i++){ z = (x * z) % n;
}
return z; }
public int modexp(int x, int z, int y, int n) {
for (int i = 0; i < y ; i++){ z = (x * z) % n;
}
return z; }
void Button2Click(object sender, EventArgs e) {
OpenFileDialog open = new OpenFileDialog();
open.Filter = "Public Key( *.public)|*.public"; open.FileName="";
if (open.ShowDialog() == DialogResult.OK) {
tb_prime.Text = lines[0]; tb_alpa.Text = lines[1]; tb_beta.Text=lines[2]; }
}
void Button3Click(object sender, EventArgs e) {
Stopwatch watch = new Stopwatch(); // running time
watch.Start();
int prime=int.Parse(tb_prime.Text); int alpa =int.Parse(tb_alpa.Text); int beta =int.Parse(tb_beta.Text); int r;
do{
r = rnd.Next(1,prime-1); }
while(r>= (prime-1));
for (int i=0; i<hs.Count; i++){ c1.Add(modexp(alpa,r,prime));
c2.Add(modexp(beta,hs[i],r,prime)); }
watch.Stop();
double siz2 = ukuran2() * 1.0 /1024;
size3.Text = Math.Round(siz2,2).ToString() + " kb";
time2.Text =
Math.Round(Convert.ToDecimal(watch.ElapsedMilliseconds)/1000,4).ToS tring()+" s";
MessageBox.Show("Enkripsi sukses"); }
void MSEAndPSNRToolStripMenuItemClick(object sender, EventArgs e)
{
this.Hide();
result f1= new result(); f1.ShowDialog();
Recipient.cs
using System;
using System.Collections.Generic; using System.Diagnostics;
using System.Drawing; using System.IO; using System.Text;
using System.Windows.Forms;
namespace TugasAkhir {
/// <summary>
/// Description of Recipient. /// </summary>
public partial class Recipient : Form
{
List<int> c1 = new List<int>(); List<int> c2 = new List<int>();
public Recipient() {
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
}
void HomeToolStripMenuItemClick(object sender, EventArgs e)
{
this.Hide();
MainForm f1= new MainForm(); f1.ShowDialog();
}
void HelpToolStripMenuItemClick(object sender, System.EventArgs e)
{
this.Hide();
help f1= new help(); f1.ShowDialog(); }
void SenderToolStripMenuItemClick(object sender, EventArgs e)
{
this.Hide();
sender f1= new sender(); f1.ShowDialog();
}
void RecipientToolStripMenuItemClick(object sender, EventArgs e)
{
this.Hide();
}
void KeyGeneratorToolStripMenuItemClick(object sender, EventArgs e)
{
this.Hide();
key f1= new key(); f1.ShowDialog(); }
void MSEAndPSNRToolStripMenuItemClick(object sender, EventArgs e)
{
this.Hide();
result f1= new result(); f1.ShowDialog();
}
int w ,h;
List<int> ch = new List<int>(); List<int> hs = new List<int>(); List<int> pic = new List<int>();
public String[] edc;
void Button1Click(object sender, EventArgs e) {
OpenFileDialog open = new OpenFileDialog(); open.Filter = "Compressed and Encrypted( *.cas)|*.cas";
open.FileName="";
if (open.ShowDialog() == DialogResult.OK) {
string nama =
open.FileName.Substring(0, open.FileName.Length); ch.Clear();
hs.Clear(); pic.Clear(); textBox1.Text = Path.GetFullPath(nama);
string[] lines = File.ReadAllLines(nama);
int linecount = File.ReadAllLines(nama).Length;
for (int i=0; i<linecount;i=i+2){ c1.Add(int.Parse(lines[i])); c2.Add(int.Parse(lines[i+1])); }
string namaa = open.FileName.Substring(0, open.FileName.Length- 4) + "e.dat";
FileStream fstreamm = new FileStream(namaa, FileMode.Open,FileAccess.ReadWrite);
StreamReader sreaderr = new StreamReader(fstreamm);
sreaderr.BaseStream.Seek(0, SeekOrigin.Begin);
string keterangan = sreaderr.ReadLine();
info = keterangan.Split('~'); w = int.Parse(info[0]);
h = int.Parse(info[1]); int n = int.Parse(info[2]); keterangan = sreaderr.ReadLine(); info = new string[n];
info = keterangan.Split('~'); for(int i = 0;i<n;i++)
ch.Add(int.Parse(info[i])); keterangan = sreaderr.ReadLine(); info = new string[n];
edc = new string[n];
info = keterangan.Split('~'); for(int i = 0;i<n;i++)
edc[i] = info[i];
sreaderr.Close(); }
}
string DecToBin(int dec)
{
StringBuilder bin = new StringBuilder(); int r = dec % 2;
bin.Insert(0, r); dec = dec / 2; while (dec != 0)
{
r = dec % 2;
bin.Insert(0, r); dec = dec / 2;
}
return bin.ToString();
}
string Reverse(String sb)
{
char[] charArray = sb.ToCharArray();
Array.Reverse(charArray); return new String(charArray);
}
int BinToDec(String bin)
{
StringBuilder sb = new StringBuilder(Reverse(bin));
int n = 1; int dec = 0;
for (int i = 0; i < sb.Length; i++)
{
dec = dec +
(int)(Char.GetNumericValue(sb[i])) * n;
n = n * 2;
}
return dec;
string Decode()
void Decompress(String stb)
{
void Button2Click(object sender, EventArgs e) {
Stopwatch watch = new Stopwatch();// running time
watch.Start();
String dc = Decode(); Decompress(dc);
MessageBox.Show("Citra berhasil didekompresi");
Gambar(); watch.Stop(); time2.Text =
Math.Round(Convert.ToDecimal(watch.ElapsedMilliseconds)/1000,4).ToS tring()+" s";
double siz2 = ukuran2() * 1.0 /1024;
size2.Text = Math.Round(siz2,2).ToString() + " kb";
void Gambar()
{
Bitmap bmp = new Bitmap(w,h); int k = 0;
for(int i=0; i<h; i++) {
for(int j=0; j<w; j++) {
bmp.SetPixel(i,j,Color.FromArgb(pic[k],pic[k+1],pic[k+2])); k=k+3;
} }
pictureBox1.Image = bmp;
}
void Button3Click(object sender, EventArgs e) {
SaveFileDialog save = new SaveFileDialog(); save.Filter = "BMP( *.bmp)|*.bmp";
if (save.ShowDialog() == DialogResult.OK) {
string metode =
save.FileName.Substring(save.FileName.Length-3, 3);
pictureBox1.Image.Save(save.FileName,System.Drawing.Imaging.ImageFo rmat.Bmp);
}
double fileLength = new FileInfo(save.FileName).Length * 1.0 /1024;
size3.Text =
Math.Round(fileLength,2).ToString()+" kb"; }
public int modexp(int x, int y, int n) {
int z = 1;
for (int i = 0; i < y ; i++){ z = (x * z) % n;
}
return z; }
public int modexp(int x, int z, int y, int n) {
for (int i = 0; i < y ; i++){ z = (x * z) % n;
}
return z; }
long ukuran() {
long temp = 0;
for(int i=0; i<hs.Count; i++)
temp+=hs[i].ToString().Length; return temp;
long ukuran2() {
long temp = 0;
for(int i=0; i<pic.Count; i++)
temp+=pic[i].ToString().Length; return temp;
}
void Btn_dekripsiClick(object sender, EventArgs e) {
Stopwatch watch = new Stopwatch();// running time watch.Start();
int prime=int.Parse(tb_prime.Text); int d =int.Parse(tb_d.Text);
for (int i=0; i<c1.Count;i++){
hs.Add(modexp(c1[i],c2[i],(prime-1-d),prime));
}
watch.Stop(); time.Text =
Math.Round(Convert.ToDecimal(watch.ElapsedMilliseconds)/1000,4).ToS tring()+" s";
double siz = ukuran() * 1.0 /1024;
size.Text = Math.Round(siz,2).ToString() + " kb"; MessageBox.Show("Berhasil Dekripsi");
}
void Button4Click(object sender, EventArgs e) {
OpenFileDialog open = new OpenFileDialog(); open.Filter = "Private Key(
*.private)|*.private";
open.FileName="";
if (open.ShowDialog() == DialogResult.OK) {
string[] lines = File.ReadAllLines(open.FileName);
tb_prime.Text = lines[0]; tb_d.Text = lines[1]; }
} }
Result
using System;
using System.Collections.Generic; using System.Diagnostics;
using System.Drawing;
using System.Drawing.Drawing2D; using System.Drawing.Imaging; using System.IO;
using System.Text;
using System.Windows.Forms;
namespace TugasAkhir {
/// <summary>
/// Description of result. /// </summary>
public partial class result : Form
{
int width1,height1,width2,height2; Image file, file2;
Bitmap bmp, bmp2;
double fileLength, fileLength2; Color p1, p2;
double mse, psnr; int flag=0;
public result() {
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
//
// TODO: Add constructor code after the InitializeComponent() call.
// }
void Btn_browseClick(object sender, EventArgs e) {
OpenFileDialog open = new OpenFileDialog(); open.Filter = "bmp files (*.bmp)|*.bmp"; if (open.ShowDialog() == DialogResult.OK) {
file = Image.FromFile(open.FileName); bmp = new Bitmap(open.FileName); pictureBox1.Image = file;
namafile1.Text = open.FileName;
resolusi1.Text = file.Height.ToString() + " x " +file.Width.ToString();
width1 = bmp.Width; height1 = bmp.Height; fileLength = new FileInfo(open.FileName).Length * 1.0 /1024;
flag = flag+1; if(flag==2)
hitung();
} }
void Button1Click(object sender, EventArgs e) {
OpenFileDialog open = new OpenFileDialog(); open.Filter = "bmp files (*.bmp)|*.bmp"; if (open.ShowDialog() == DialogResult.OK) {
file2 = Image.FromFile(open.FileName); bmp2 = new Bitmap(open.FileName); pictureBox2.Image = file2;
namafile2.Text = open.FileName;
resolusi2.Text = file2.Height.ToString() + " x " +file2.Width.ToString();
width2 = bmp2.Width; height2 = bmp2.Height; fileLength2 = new FileInfo(open.FileName).Length * 1.0 /1024;
size2.Text = fileLength2.ToString()+" kb";
flag = flag+1; if(flag==2)
hitung();
} }
void hitung() {
for(int i=0; i<height1; i++) {
for(int j=0; j<width1; j++) {
p1 = bmp.GetPixel(i,j); p2 = bmp2.GetPixel(i,j);
mse = mse + Math.Pow(p1.R-p2.R,2) + Math.Pow(p1.G-p2.G,2) + Math.Pow(p1.B-p2.B,2);
} }
mse = 1.0/(width1*height1)*mse;
psnr = 10 * Math.Log10(Math.Pow(255,2)/mse);
nilaimse.Text = mse.ToString(); nilaipsnr.Text = psnr.ToString(); }
this.Hide();
MainForm f1= new MainForm(); f1.ShowDialog();
}
void ToolStripMenuItem3Click(object sender, EventArgs e) {
this.Hide();
sender f1= new sender(); f1.ShowDialog();
}
void ToolStripMenuItem4Click(object sender, EventArgs e) {
this.Hide();
Recipient f1= new Recipient(); f1.ShowDialog();
}
void ToolStripMenuItem5Click(object sender, EventArgs e) {
this.Hide();
key f1= new key(); f1.ShowDialog(); }
void ToolStripMenuItem6Click(object sender, EventArgs e) {
this.Hide();
result f1= new result(); f1.ShowDialog();
}
void ToolStripMenuItem7Click(object sender, EventArgs e) {
this.Hide();
help f1= new help(); f1.ShowDialog(); }
D
AFTAR
R
IWAYAT
H
IDUP
C
URRICULUMV
ITAEI. DATA PRIBADI /Personal Identification
Nama Lengkap
: Cut Amalia Saffiera
Tempat/ Tgl. Lahir
: Lhokseumawe/ 19 April 1995
Jenis Kelamin : Perempuan
Agama : Islam
Kebangsaan : Indonesia
Alamat : Jl. Tarakan No.22, Komplek PT Arun, Lhokseumawe
Telepon : 081370488049
Email : amalia.ssafiera@gmail.com
II. KEMAMPUAN / Capabilities
Bahasa : Bahasa Indonesia, Bahasa Inggris Bahasa Pemrograman : C#, C++, PHP
Database : MySQL
Lainnya : HTML, Ms. Office
III. PENDIDIKAN FORMAL / Formal Education
[ 2013
–
2017 ]
S1 Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara
[ 2010
–
2013 ]
SMA Negri Modal Bangsa Arun
[ 2007
–
2010 ]
SMP Swasta YAPENA
[ 2001
–
2007 ]
SD Swasta YAPENAIV. PENDIDIKAN NON-FORMAL / Informal Education
[ 2012
–
2013 ]
Ganesha Operation, MedanV. PELATIHAN DAN SEMINAR / Trainings & Workshop
1) Peserta Workshop “Bank Indonesia Goes To Campus Bersama NET.”, Universitas Sumatera Utara [2016]
2) Peserta Seminar Nasional Literasi Informasi (SENARAI) Fasilkom-TI Universitas Sumatera Utara [2014]
3) Peserta Seminar “What Will You Be?” IMILKOM Universitas Sumatera Utara [2013]
XIII. LAINNYA / Others
1) Penerima Beasiswa PPA (Peningkatan Prestasi Akademik) dan Program Kreativitas Mahasiswa [2014 – 2016]