• Tidak ada hasil yang ditemukan

Implementasi Algoritma Elias Delta dan Algoritma ElGamal Dalam Kompresi dan Pengamanan Citra

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Algoritma Elias Delta dan Algoritma ElGamal Dalam Kompresi dan Pengamanan Citra"

Copied!
22
0
0

Teks penuh

(1)

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)); }

(2)

{

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(); }

}

(3)

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();

} }

(4)

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.

(5)

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) {

(6)

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) {

(7)

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;

(8)

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();

(9)

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);

(10)

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++) {

(11)

}

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) {

(12)

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();

(13)

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();

(14)

}

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();

(15)

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;

(16)

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";

(17)

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;

(18)

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]; }

} }

(19)

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;

(20)

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(); }

(21)

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(); }

(22)

D

AFTAR

R

IWAYAT

H

IDUP

C

URRICULUM

V

ITAE

I. 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 YAPENA

IV. PENDIDIKAN NON-FORMAL / Informal Education

[ 2012

2013 ]

Ganesha Operation, Medan

V. 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]

Referensi

Dokumen terkait

Aktiviti/Laporan Aktiviti Pelajar dan Borang Tuntutan Kewangan perlu di hantar kepada Pegawai Penyelaras yang

Dari diagram aktivitas belajar siklus I dan siklus II dapat dijelaskan mengenai peningkatan aktivitas belajar peserta didik, perolehan data pada siklus I indikator pertama

Untuk selanjutnya keputusan Presiden RI Nomor 172, terhitung tanggal 1 Juni 1957 Kantor Pusat Statistik (KPS) diubah menjadi Biro Pusat Statistik yang semula menjadi

Menindaklanjuti Surat Edaran dari Sekretariat Daerah Kota Yogyakarta Tanggal 26 Maret 2018 Nomor : 027/968/SE/2018 tentang Usulan RKMBD Pemerintah Kota Yogyakarta Tahun

Untuk melakukan pengujian pada implementasi failover ini apakah berjalan dengan baik atau tidak adalah menghentikan cluster service, dengan cara menghentikan cluster

Penerapan model kooperatif tipe mind mapping dapat meningkatkan ketuntasan belajar siswa pada mata pelajaran Matematika materi Sudut dan Pengukurannya.Hal tersebut

Saya adalah mahasiswa Program Studi Pendidikan Ners Fakultas Keperawatan Universitas Sumatera Utara yang melakukan penelitian dengan tujuan untuk mengidentifikasi kognitif,

Berdasarkan penjelasan diatas, bahwa tugas akhir dengan judul “ Game Adventure Treasure Of Mouse ” penulis dapat menarik beberapa kesimpulan sebagai berikut :..