LISTING PROGRAM keygenerator.cs
using System;
using System.Drawing;
using System.Windows.Forms; using System.Numerics; using System.IO;
namespace Skripsiku {
/// <summary>
/// Description of keygenerator. /// </summary>
public partial class keygenerator : Form {
int p,alpa,d, beta;
Random r = new Random(); public keygenerator() {
//
// 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 PseudoPrime(int n) {
BigInteger modularExponentiation = BigInteger.ModPow(2,n-1, n); if (modularExponentiation == 1)
{
return n; }
else {
} }
void MenuToolStripMenuItemClick(object sender, EventArgs e) {
MainForm menampilkan = new MainForm(); menampilkan.Show();
this.Hide(); }
void AboutToolStripMenuItemClick(object sender, EventArgs e) {
About menampilkan = new About(); menampilkan.Show();
this.Hide(); }
void KeyGeneratorToolStripMenuItemClick(object sender, EventArgs e) {
keygenerator menampilkan = new keygenerator(); menampilkan.Show();
this.Hide(); }
void HelpToolStripMenuItemClick(object sender, EventArgs e) {
Help menampilkan = new Help(); menampilkan.Show();
this.Hide(); }
void EnkripsiToolStripMenuItemClick(object sender, EventArgs e) {
enkripsi menampilkan = new enkripsi(); menampilkan.Show();
this.Hide();
}
void DekripsiToolStripMenuItemClick(object sender, EventArgs e) {
dekripsi menampilkan = new dekripsi(); menampilkan.Show();
this.Hide(); }
void KeygeneratorLoad(object sender, EventArgs e) {
}
void Button2Click(object sender, EventArgs e) {
SaveFileDialog simpan = new SaveFileDialog(); simpan.Filter = "key Files( *.key)|*.key";
simpan.FileName = "*.key";
if (simpan.ShowDialog() == DialogResult.OK) {
string filename = simpan.FileName.Substring(0, simpan.FileName.Length 3) + "key";
FileStream fstream = new FileStream(filename, FileMode.Create); StreamWriter sw = new StreamWriter(fstream);
SeekOrigin seekorigin = new SeekOrigin(); sw.BaseStream.Seek(0, seekorigin);
sw.WriteLine(textBox1.Text); sw.WriteLine(textBox4.Text); sw.Flush();
sw.Close();
MessageBox.Show("kunci berhasil disimpan");
} }
void Btn_publicClick(object sender, EventArgs e) {
SaveFileDialog simpan = new SaveFileDialog(); simpan.Filter = "key Files( *.key)|*.key";
simpan.FileName = "*.key";
if (simpan.ShowDialog() == DialogResult.OK) {
string filename = simpan.FileName.Substring(0, simpan.FileName.Length 3) + "key";
FileStream fstream = new FileStream(filename, FileMode.Create); StreamWriter sw = new StreamWriter(fstream);
SeekOrigin seekorigin = new SeekOrigin(); sw.BaseStream.Seek(0, seekorigin);
sw.WriteLine(textBox1.Text); sw.WriteLine(textBox2.Text); sw.WriteLine(textBox4.Text); sw.Flush();
sw.Close();
MessageBox.Show("kunci berhasil disimpan");
void Btn_generateClick(object sender, EventArgs e) {
p = PseudoPrime(r.Next(257,5000)); textBox1.Text = p.ToString(); alpa = r.Next(2,p-1);
textBox2.Text = alpa.ToString(); d = r.Next(2,p-2);
textBox3.Text = d.ToString(); beta = modexp(alpa,d,p);
textBox4.Text = beta.ToString(); }
} }
enkripsi.cs
using System;
using System.Collections.Generic; using System.Drawing;
using System.IO;
using System.Windows.Forms;
namespace Skripsiku {
/// <summary>
/// Description of enkripsi. /// </summary>
public partial class enkripsi : Form {
Random rnd = new Random(); List<int> c1 = new List<int>(); List<int> c2 = new List<int>(); List<int> plain = new List<int>(); List<int> cpher = new List<int>(); int prime, alpa, beta, r;
string plainkey;
Bitmap gambarasli, gambarenkrip; int[] angka = new int[256];
int[] aangka = new int[256]; int ab = 0;
int aab = 0; public enkripsi() {
//
// The InitializeComponent() call is required for Windows Forms designer support. //
//
// TODO: Add constructor code after the InitializeComponent() call. //
}
void MenuToolStripMenuItemClick(object sender, EventArgs e) {
MainForm menampilkan = new MainForm(); menampilkan.Show();
this.Hide(); }
void AboutToolStripMenuItemClick(object sender, EventArgs e) {
About menampilkan = new About(); menampilkan.Show();
this.Hide(); }
void HelpToolStripMenuItemClick(object sender, EventArgs e) {
Help menampilkan = new Help(); menampilkan.Show();
this.Hide(); }
void EnkripsiToolStripMenuItemClick(object sender, EventArgs e) {
enkripsi menampilkan = new enkripsi(); menampilkan.Show();
this.Hide();
}
void DekripsiToolStripMenuItemClick(object sender, EventArgs e) {
dekripsi menampilkan = new dekripsi(); menampilkan.Show();
this.Hide(); }
void KeyGToolStripMenuItemClick(object sender, EventArgs e) {
keygenerator menampilkan = new keygenerator(); menampilkan.Show();
this.Hide(); }
OpenFileDialog ofd = new OpenFileDialog();
ofd.InitialDirectory = @"D:\"; // menentukan direktori awal saat browse file ofd.Title = "Browse Image File"; //set title pada window browse file
ofd.CheckFileExists = true; // set pengecekan file harus ada atau valid ofd.DefaultExt = "jpeg"; // set tipe file default
ofd.Filter = "image files|*.jpg;*.png"; // filter untuk menentukan file apa saja yang boleh dipilih
ofd.FilterIndex = 0; // menentukan filter index, index dimulai dari nol ofd.RestoreDirectory = true; // menentukan nilai restorasi direktori
ofd.ReadOnlyChecked = true; // set nilai bahwa file hanya akan dibaca atau read ofd.ShowReadOnly = true; // set nilai untuk menampilkan file
if (ofd.ShowDialog() == DialogResult.OK) {
// jika sudah, tampilkan gambar dalam pictureBox dengan mode Stretch(disesuaikan dengan picturebox)
pictureBox1.Image = new Bitmap(ofd.FileName);
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; }
}
void PictureBox1Click(object sender, EventArgs e) {
}
void EnkripsiLoad(object sender, EventArgs e) {
}
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; }
plainkey = textBox1.Text + "~" + textBox2.Text; prime=int.Parse(textBox3.Text);
alpa =int.Parse(textBox4.Text); beta =int.Parse(textBox5.Text); do
{
r = rnd.Next(1,prime-1); }
while(r>= (prime-1));
for (int i=0; i<plainkey.Length;i++) {
c1.Add(modexp(alpa,r,prime));
c2.Add(modexp(beta,plainkey[i],r,prime)); }
MessageBox.Show("berhasil dienkripsi"); }
void Button8Click(object sender, EventArgs e) {
SaveFileDialog simpan = new SaveFileDialog(); simpan.Filter = "Encrypted Files( *.egl)|*.egl"; simpan.FileName = "*.egl";
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(); }
}
void Button3Click(object sender, EventArgs e) {
SaveFileDialog save = new SaveFileDialog(); save.Filter = "Image Files(*.jpeg) | *.jpeg"; if (save.ShowDialog() == DialogResult.OK) {
pictureBox1.Image.Save(save.FileName, System.Drawing.Imaging.ImageFormat.B mp);
} }
void Button4Click(object sender, EventArgs e) {
gambarasli = new Bitmap(pictureBox1.Image); int x = gambarasli.Height;
int y = gambarasli.Width; double rd=0,bl=0,gr=0,gy=0;
Bitmap imageabu = new Bitmap(x,y); for (int i = 0; i <= x-1; i++)
{
for (int j = 0; j <= y-1; j++) {
rd = gambarasli.GetPixel(i,j).R; gr = gambarasli.GetPixel(i,j).G; bl = gambarasli.GetPixel(i,j).B; gy = (rd*0.3 + gr*0.59 + bl*0.11);
imageabu.SetPixel(i,j,Color.FromArgb((int)gy,(int)gy,(int)gy)); gy = 0;
} }
pictureBox1.Image= imageabu; }
bool cekKunci(int huruf) {
for (int i = 0; i < ab; i++) {
if (angka[i] == huruf) return false;
}
angka[ab] = huruf; ab++;
return true; }
bool ccekKunci(int huruf) {
for (int i = 0; i < aab; i++) {
if (aangka[i] == huruf) return false;
}
aangka[aab] = huruf; aab++;
return true; }
private void enkripsii(int a, int b, int[,] Matrik1, int[,] Matrik2) {
bool limit = false;
int[] bigramx = new int[2]; int[] bigramy = new int[2]; for (int i = 0; i < 16; i++) {
for (int j = 0; j < 16; j++) {
if (a == Matrik1[i, j]) {
bigramx[0] = i; bigramy[0] = j; limit = true; if (limit == true) break;
} }
if (limit == true) break;
}
limit = false;
for (int i = 0; i < 16; i++) {
for (int j = 0; j < 16; j++) {
if (b == Matrik2[i, j]) {
bigramx[1] = i; bigramy[1] = j; limit = true; if (limit == true) break;
} }
if (limit == true) break;
}
if (bigramx[0] == bigramx[1]) {
if ((bigramy[0] == 15)) {
cpher.Add(Matrik1[bigramx[0],0]); }
else {
cpher.Add(Matrik1[bigramx[0],(bigramy[0]+1)]); }
cpher.Add(Matrik2[bigramx[1],0]); }
else {
cpher.Add(Matrik2[bigramx[1],(bigramy[1]+1)]); }
} else {
cpher.Add(Matrik2[bigramx[0],bigramy[1]]); cpher.Add(Matrik1[bigramx[1],bigramy[0]]); }
}
void Button2Click(object sender, EventArgs e) {
gambarasli = new Bitmap(pictureBox1.Image); int xx = gambarasli.Height;
int yy = gambarasli.Width; plain = new List<int>(); cpher = new List<int>(); angka = new int[256]; aangka = new int[256]; ab = 0;
aab = 0;
string kunci1 = textBox1.Text; string kunci2 = textBox1.Text; int PKunci1 = kunci1.Length; int PKunci2 = kunci2.Length; int[,] Matrik1 = new int[16,16]; int[,] Matrik2 = new int[16,16]; int a = 0, pixel = 0;
//tabel1
for (int i = 0; i < 16; i++) {
for (int j = 0; j < 16; j++) {
if (a < PKunci1) {
if (cekKunci(kunci1[a]) == true) Matrik1[i, j] = kunci1[a]; else
j--; a++; } else {
Matrik1[i, j] = pixel; else
j--; pixel++; }
} } a=0; pixel=0; //tabel2
for (int i = 0; i < 16; i++) {
for (int j = 0; j < 16; j++) {
if (a < PKunci1) {
if (ccekKunci(kunci2[a]) == true) Matrik2[i, j] = kunci2[a]; else
j--; a++; } else {
if (ccekKunci(pixel) == true) Matrik2[i, j] = pixel; else
j--; pixel++; }
} }
//ambil plaintext
for (int i = 0; i <= xx-1; i++) {
for (int j = 0; j <= yy-1; j++) {
plain.Add(gambarasli.GetPixel(i,j).R); }
}
//enkrip
if (plain.Count % 2 != 0) plain.Add(255);
for (int i = 0; i < plain.Count; i+=2) {
enkripsii(plain[i],plain[i+1], Matrik1, Matrik2); }
//jadikan gambar int indeks = 0;
gambarenkrip = new Bitmap(xx,yy); for (int i = 0; i <= xx-1; i++)
{
for (int j = 0; j <= yy-1; j++) {
gambarenkrip.SetPixel(i,j,Color.FromArgb((int)cpher[indeks],(int)cpher[indek s],(int)cpher[indeks]));
indeks++; }
}
pictureBox1.Image= gambarenkrip;
for (int i = 0; i < 10; i++) {
richTextBox1.Text += plain[i].ToString() + " "; }
for (int i = 0; i < 10; i++) {
richTextBox2.Text += cpher[i].ToString()+ " "; }
}
string tipe;
OpenFileDialog dialog;
private void button5_Click(object sender, EventArgs e) {
//import dari key generator dialog = new OpenFileDialog(); dialog.Filter = "File Kunci|*.key"; dialog.Title = "Open File : "; dialog.RestoreDirectory = true;
if (dialog.ShowDialog() == DialogResult.OK) {
tipe = dialog.FileName.Substring(dialog.FileName.Length - 3, 3); if (tipe == "key")
{
string[] lines = File.ReadAllLines(dialog.FileName); textBox3.Text = lines[0];
textBox4.Text = lines[1]; textBox5.Text = lines[2]; }
} }
dekripsi.cs
using System;
using System.Collections.Generic; using System.Drawing;
using System.IO;
using System.Windows.Forms;
namespace Skripsiku {
/// <summary>
/// Description of dekripsi. /// </summary>
public partial class dekripsi : Form {
Random rnd = new Random(); List<int> c1 = new List<int>(); List<int> c2 = new List<int>(); List<int> plain = new List<int>(); List<int> cpher = new List<int>(); int prime, d;
string plainkey;
Bitmap gambarasli, gambarenkrip; int[] angka = new int[256];
int[] aangka = new int[256]; int ab = 0;
int aab = 0; public dekripsi() {
//
// The InitializeComponent() call is required for Windows Forms designer support. //
InitializeComponent();
//
// TODO: Add constructor code after the InitializeComponent() call. //
}
void MenuToolStripMenuItemClick(object sender, EventArgs e) {
MainForm menampilkan = new MainForm(); menampilkan.Show();
this.Hide(); }
void AboutToolStripMenuItemClick(object sender, EventArgs e) {
About menampilkan = new About(); menampilkan.Show();
this.Hide(); }
void KeyGeneratorToolStripMenuItemClick(object sender, EventArgs e) {
keygenerator menampilkan = new keygenerator(); menampilkan.Show();
this.Hide(); }
void HelpToolStripMenuItemClick(object sender, EventArgs e) {
Help menampilkan = new Help(); menampilkan.Show();
this.Hide(); }
void EnkripsiToolStripMenuItemClick(object sender, EventArgs e) {
enkripsi menampilkan = new enkripsi(); menampilkan.Show();
this.Hide();
}
void DekripsiToolStripMenuItemClick(object sender, EventArgs e) {
dekripsi menampilkan = new dekripsi(); menampilkan.Show();
this.Hide(); }
void Button1Click(object sender, EventArgs e) {
OpenFileDialog ofd = new OpenFileDialog();
ofd.InitialDirectory = @"D:\"; // menentukan direktori awal saat browse file ofd.Title = "Browse Image File"; //set title pada window browse file
ofd.CheckFileExists = true; // set pengecekan file harus ada atau valid ofd.DefaultExt = "jpeg"; // set tipe file default
ofd.Filter = "image files|*.jpeg;*.png"; // filter untuk menentukan file apa saja yang boleh dipilih
ofd.RestoreDirectory = true; // menentukan nilai restorasi direktori
ofd.ReadOnlyChecked = true; // set nilai bahwa file hanya akan dibaca atau read ofd.ShowReadOnly = true; // set nilai untuk menampilkan file
if (ofd.ShowDialog() == DialogResult.OK) {
// jika sudah, tampilkan gambar dalam pictureBox dengan mode Stretch(disesuaikan dengan picturebox)
pictureBox1.Image = new Bitmap(ofd.FileName);
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; }
}
void PictureBox1Click(object sender, EventArgs e) {
}
void Label4Click(object sender, EventArgs e) {
}
void Button7Click(object sender, EventArgs e) {
dialog = new OpenFileDialog();
dialog.Filter = "Encrypted Files( *.egl)|*.egl"; dialog.Title = "Open File : ";
dialog.RestoreDirectory = true;
if (dialog.ShowDialog() == DialogResult.OK) {
tipe = dialog.FileName.Substring(dialog.FileName.Length - 3, 3); if (tipe == "egl")
{
string[] lines = File.ReadAllLines(dialog.FileName); textBox3.Text = lines[0];
textBox4.Text = lines[1]; }
} }
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 Button6Click(object sender, EventArgs e) {
prime=int.Parse(textBox1.Text); d =int.Parse(textBox2.Text); plainkey = "";
for (int i=0; i<c1.Count;i++) {
plainkey += (char)(modexp(c1[i],c2[i],(prime-1-d),prime)); }
string[] k = new string[2]; k = plainkey.Split('~'); textBox3.Text = k[0]; textBox4.Text = k[1]; }
bool cekKunci(int huruf) {
for (int i = 0; i < ab; i++) {
if (angka[i] == huruf) return false;
}
angka[ab] = huruf; ab++;
return true; }
bool ccekKunci(int huruf) {
for (int i = 0; i < aab; i++) {
if (aangka[i] == huruf) return false;
}
aangka[aab] = huruf; aab++;
return true; }
private void dekripsii(int a, int b, int[,] Matrik1, int[,] Matrik2) {
bool limit = false;
int[] bigramx = new int[2]; int[] bigramy = new int[2]; for (int i = 0; i < 16; i++) {
for (int j = 0; j < 16; j++) {
bigramx[0] = i; bigramy[0] = j; limit = true; if (limit == true) break;
} }
if (limit == true) break;
}
limit = false;
for (int i = 0; i < 16; i++) {
for (int j = 0; j < 16; j++) {
if (b == Matrik1[i, j]) {
bigramx[1] = i; bigramy[1] = j; limit = true; if (limit == true) break;
} }
if (limit == true) break;
}
if (bigramx[0] == bigramx[1]) {
if ((bigramy[1] == 0)) {
cpher.Add(Matrik1[bigramx[1],15]); }
else {
cpher.Add(Matrik1[bigramx[1],(bigramy[1]-1)]); }
if ((bigramy[0] == 0)) {
cpher.Add(Matrik2[bigramx[0],15]); }
else {
cpher.Add(Matrik2[bigramx[0],(bigramy[0]-1)]); }
} else {
}
void Button2Click(object sender, EventArgs e) {
gambarasli = new Bitmap(pictureBox1.Image); int xx = gambarasli.Height;
int yy = gambarasli.Width; plain = new List<int>(); cpher = new List<int>(); angka = new int[256]; aangka = new int[256]; ab = 0;
aab = 0;
string kunci1 = textBox3.Text; string kunci2 = textBox4.Text; int PKunci1 = kunci1.Length; int PKunci2 = kunci2.Length; int[,] Matrik1 = new int[16,16]; int[,] Matrik2 = new int[16,16]; int a = 0, pixel = 0;
//tabel1
for (int i = 0; i < 16; i++) {
for (int j = 0; j < 16; j++) {
if (a < PKunci1) {
if (cekKunci(kunci1[a]) == true) Matrik1[i, j] = kunci1[a]; else
j--; a++; } else {
if (cekKunci(pixel) == true) Matrik1[i, j] = pixel; else
j--; pixel++; }
} } a=0; pixel=0; //tabel2
for (int j = 0; j < 16; j++) {
if (a < PKunci1) {
if (ccekKunci(kunci2[a]) == true) Matrik2[i, j] = kunci2[a]; else
j--; a++; } else {
if (ccekKunci(pixel) == true) Matrik2[i, j] = pixel; else
j--; pixel++; }
} }
//ambil plaintext
for (int i = 0; i <= xx-1; i++) {
for (int j = 0; j <= yy-1; j++) {
plain.Add(gambarasli.GetPixel(i,j).R); }
}
//enkrip
if (plain.Count % 2 != 0) plain.Add(255);
for (int i = 0; i < plain.Count; i+=2) {
dekripsii(plain[i],plain[i+1], Matrik1, Matrik2); }
//jadikan gambar int indeks = 0;
gambarenkrip = new Bitmap(xx,yy); for (int i = 0; i <= xx-1; i++)
{
for (int j = 0; j <= yy-1; j++) {
gambarenkrip.SetPixel(i,j,Color.FromArgb((int)cpher[indeks],(int)cpher[indek s],(int)cpher[indeks]));
}
pictureBox1.Image= gambarenkrip;
for (int i = 0; i < 10; i++) {
richTextBox1.Text += plain[i].ToString() + " "; }
for (int i = 0; i < 10; i++) {
richTextBox2.Text += cpher[i].ToString()+ " "; }
}
string tipe;
OpenFileDialog dialog;
private void button5_Click(object sender, EventArgs e) {
dialog = new OpenFileDialog(); dialog.Filter = "File Kunci|*.key"; dialog.Title = "Open File : "; dialog.RestoreDirectory = true;
if (dialog.ShowDialog() == DialogResult.OK) {
tipe = dialog.FileName.Substring(dialog.FileName.Length - 3, 3); if (tipe == "key")
{
string[] lines = File.ReadAllLines(dialog.FileName); textBox1.Text = lines[0];
textBox2.Text = lines[1]; }
} }
private void groupBox3_Enter(object sender, EventArgs e) {
}
private void button4_Click(object sender, EventArgs e) {
gambarasli = new Bitmap(pictureBox1.Image); int x = gambarasli.Height;
int y = gambarasli.Width;
{
for (int j = 0; j <= y - 1; j++) {
rd = gambarasli.GetPixel(i, j).R; gr = gambarasli.GetPixel(i, j).G; bl = gambarasli.GetPixel(i, j).B; gy = (rd * 0.3 + gr * 0.59 + bl * 0.11);
imageabu.SetPixel(i, j, Color.FromArgb((int)gy, (int)gy, (int)gy)); gy = 0;
} }
pictureBox1.Image = imageabu; }
private void button3_Click(object sender, EventArgs e) {
}
void Button3Click(object sender, EventArgs e) {
SaveFileDialog save = new SaveFileDialog(); save.Filter = "Image Files(*.jpeg) | *.jpeg"; if (save.ShowDialog() == DialogResult.OK) {
pictureBox1.Image.Save(save.FileName, System.Drawing.Imaging.ImageFormat.B mp);
MessageBox.Show("Gambar tersimpan"); }
D
AFTAR
R
IWAYAT
H
IDUP
CURRICULUM VITAE
I. DATA PRIBADI / Personal Identification
Nama Lengkap
: Nanda Safrina
Tempat/ Tgl. Lahir
: Medan/ 05 Juli 1995 Jenis Kelamin : Perempuan
Agama : Islam Kebangsaan : Indonesia
Alamat : Jl. Sewindu no.41 Medan Kec. Medan Petisah.
Telepon : 081263709095
Email : nanda.safrina@gmail.com
II. PENDIDIKAN FORMAL / Formal Education
• [ 2013 – 2017 ] S1 Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara
• [ 2010 – 2013 ] MAS Miftahussalam Medan
• [ 2007 – 2010 ] SMP Negeri 19 Medan
• [ 2001 – 2007 ] SD MIN Medan
III. PENDIDIKAN NON-FORMAL / Informal Education
• -
IV. PELATIHAN DAN SEMINAR / Trainings & Workshop
1) Peserta Workshop “Bank Indonesia Goes To Campus Bersama NET.”, Universitas Sumatera Utara [2016]
2) Peserta “Pelatihan Standar Layanan Perbankan.”, PT. Bank Negara Indonesia (Persero) Tbk. Kantor Wilayah Medan [2016]
3) Peserta Seminar Nasional Literasi Informasi (SENARAI) Fasilkom-TI Universitas Sumatera Utara [2014]
4) Peserta Seminar “What Will You Be?” IMILKOM Universitas Sumatera Utara [2013]
V. LAINNYA / Others
1) Penerima Beasiswa PPA (Peningkatan Prestasi Akademik) dan Program Kreativitas Mahasiswa [2014]