• 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 : [email protected]

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

Analisis Perbandingan Kinerja Algoritma Fixed Length Binary Encoding (FLBE) dengan Algoritma Sequitur Dalam Kompresi File Teks.. Universitas

Universitas Sumatera Utara LISTING PROGRAM{.

Erdiansyah, Umri, 2014, Perbandingan Algoritma Elias Delta Code Dengan Levenstein Untuk Kompresi File Teks, Ilmu Komputer, Universitas Sumatera Utara.. F., 2011,

Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, semua dosen dan pegawai pada program studi S1 Ilmu Komputer Fasilkom-TI USU. M.Kom,

Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, semua dosen dan pegawai pada program studi S1 Ilmu Komputer Fasilkom-TI USU..

Analisis Perbandingan File Berformat PNG, GIF dan TIFF pada Kompresi Citra Digital menggunakan Metode Fraktal.. Universitas

Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, semua dosen dan pegawai pada program studi S1 Ilmu Komputer Fasilkom-TI USU.

Elias Delta Code merupakan terobosan yang dibuat oleh Piter Elias sebagai algoritma yang canggih yang menerapkan Elias Gamma Code sebagai dasar algoritmanya,