• Tidak ada hasil yang ditemukan

Implementasi Operasi XOR dan Teknik Transposisi Segitiga Untuk Pengamanan Citra JPEG Berbasis Android

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Operasi XOR dan Teknik Transposisi Segitiga Untuk Pengamanan Citra JPEG Berbasis Android"

Copied!
16
0
0

Teks penuh

(1)

LISTING PROGRAM

Menu Enkripsi

package com.example.program;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException;

import java.io.OutputStreamWriter; import java.text.SimpleDateFormat; import java.util.ArrayList;

import java.util.Date; import java.util.Random;

import android.app.Activity; import android.app.AlertDialog;

import android.content.ActivityNotFoundException; import android.content.DialogInterface;

import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap;

import android.graphics.BitmapFactory; import android.graphics.Color;

import android.graphics.Bitmap.Config;

import android.graphics.drawable.BitmapDrawable; import android.net.Uri;

import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore; import android.util.Log;

import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.Toast;

public class Enkripsi extends Activity{ public int SELECT_PICTURE = 1;

public String selectedImagePath; EditText nama, ukuran, kunci;

ImageView img, imgxor, imgtranspos; Bitmap bmp;

Button btn_pilih, btn_acak, btn_xor, btn_transpos, btn_reset, btn_save, btn_tampil;

Integer x,y;

ArrayList<Integer> kunci1 ;

ArrayList<Integer> nilai_R = new ArrayList<Integer>(); ArrayList<Integer> nilai_G = new ArrayList<Integer>(); ArrayList<Integer> nilai_B = new ArrayList<Integer>(); ArrayList<Integer> nilai_Rh = new ArrayList<Integer>(); ArrayList<Integer> nilai_Gh = new ArrayList<Integer>(); ArrayList<Integer> nilai_Bh = new ArrayList<Integer>(); Integer baris,kolom;

(2)

@Override

protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);

setContentView(R.layout.enkripsi);

nama = (EditText)findViewById(R.id.editText1); ukuran = (EditText)findViewById(R.id.EditText01); img = (ImageView)findViewById(R.id.imageView1); imgxor = (ImageView)findViewById(R.id.ImageView01); imgtranspos = (ImageView)findViewById(R.id.ImageView02);

btn_tampil = (Button)findViewById(R.id.Buttonkunci); btn_tampil.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0){

File file=new File(namafilekunci);

if(file.exists())

{

try{

Intent i=new Intent(Intent.ACTION_EDIT);

i.setDataAndType(Uri.fromFile(file),"text/plain");

startActivity(i);

}

catch(ActivityNotFoundException e)

{

Toast.makeText(Enkripsi.this, "Proses gagal", Toast.LENGTH_LONG).show();

}

} } });

btn_pilih = (Button)findViewById(R.id.Buttonpilih); btn_pilih.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0) {

Intent intent = new Intent();

intent.setType("image/*");

intent.setAction(Intent.ACTION_GET_CONTENT);

startActivityForResult(Intent.createChooser(intent,"S elect Picture"), SELECT_PICTURE);

} });

btn_acak = (Button)findViewById(R.id.button1);

btn_acak.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0) {

kunci1 = new ArrayList<Integer>(); Random rand = new Random();

Bitmap bitmap =

((BitmapDrawable)img.getDrawable()).getBitmap(); for(int i=0;

i<bitmap.getHeight()*bitmap.getWidth();i++) {

kunci1.add(rand.nextInt(256));

}

Toast.makeText(getBaseContext(), "Kunci Berhasil Dibuat", Toast.LENGTH_SHORT).show();

} });

(3)

btn_xor.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0) {

double startTime= System.currentTimeMillis();

Bitmap bitmap =

((BitmapDrawable)img.getDrawable()).getBitmap(); Bitmap hasil =

Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888); int p, R, G, B, k=0;

for(int i=0; i<bitmap.getWidth();i++) {

for(int j=0; j<bitmap.getHeight();j++)

{

p = bitmap.getPixel(i, j);

R = Color.red(p);

G = Color.green(p);

B = Color.blue(p);

hasil.setPixel(i, j, Color.argb(255,

R^kunci1.get(k), G^kunci1.get(k), B^kunci1.get(k)));

k++;

}

}

imgxor.setImageBitmap(hasil);

double endTime= System.currentTimeMillis();

double total =(endTime-startTime)/1000;

Toast.makeText(getBaseContext(), "Proses Enkripsi

XOR selesai dengan waktu " + total + "s", Toast.LENGTH_SHORT).show();

} });

btn_transpos = (Button)findViewById(R.id.Button02);

btn_transpos.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0) {

double startTime= System.currentTimeMillis();

Bitmap bitmap =

((BitmapDrawable)imgxor.getDrawable()).getBitmap(); Bitmap hasil =

Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888); int p, R, G, B, k=0;

for(int i=0; i<bitmap.getWidth();i++) {

for(int j=0; j<bitmap.getHeight();j++)

{

p = bitmap.getPixel(i, j);

R = Color.red(p);

G = Color.green(p);

B = Color.blue(p);

nilai_R.add(R);

nilai_G.add(G);

nilai_B.add(B);

}

}

nilai_Rh.clear();

nilai_Gh.clear();

nilai_Bh.clear();

nilai_R = proses(nilai_R,1);

(4)

nilai_B = proses(nilai_B,3);

for(int i=0; i<bitmap.getWidth();i++)

{

for(int j=0; j<bitmap.getHeight();j++)

{

hasil.setPixel(i, j, Color.argb(255,

nilai_R.get(k), nilai_G.get(k), nilai_B.get(k)));

k++;

}

}

imgtranspos.setImageBitmap(hasil);

double endTime= System.currentTimeMillis();

double total =(endTime-startTime)/1000;

Toast.makeText(getBaseContext(), "Proses Enkripsi

Transposisi Segitiga selesai dengan waktu " + total + "s", Toast.LENGTH_SHORT).show();

} });

btn_reset = (Button)findViewById(R.id.Button04);

btn_reset.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0){

img.setImageResource(R.drawable.ssss);

imgxor.setImageResource(R.drawable.ssss);

imgtranspos.setImageResource(R.drawable.ssss);

nama.setText(""); ukuran.setText(""); }

});

btn_save = (Button)findViewById(R.id.Button05);

btn_save.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) {

Bitmap bitmap =

((BitmapDrawable)imgtranspos.getDrawable()).getBitmap ();

storeImage(bitmap);

} });

}

private void storeImage(Bitmap image) {

File pictureFile = getOutputMediaFile(); if (pictureFile == null) {

Log.d("ooo",

"Error creating media file, check storage permissions: ");// e.getMessage()); return;

} try {

double startTime= System.currentTimeMillis(); FileOutputStream fos = new

FileOutputStream(pictureFile);

image.compress(Bitmap.CompressFormat.PNG, 90, fos); fos.close();

(5)

namafilekunci = pictureFile.getPath().substring(0, pictureFile.getPath().length()-4) + "_k.txt";

File myFile = new File(namafilekunci); myFile.createNewFile();

FileOutputStream fOut = new FileOutputStream(myFile); OutputStreamWriter myOutWriter = new

OutputStreamWriter(fOut);

for(int i = 0; i< kunci1.size()-1; i++)

myOutWriter.append(kunci1.get(i).toString()+"~");

myOutWriter.append(kunci1.get(kunci1.size()-1).toString()+"\n");

myOutWriter.close();

fOut.close();

String namafile = pictureFile.getPath().substring(0, pictureFile.getPath().length()-4) + ".txt";

myFile = new File(namafile); myFile.createNewFile();

fOut = new FileOutputStream(myFile);

myOutWriter = new OutputStreamWriter(fOut); for(int i = 0; i< nilai_Rh.size()-1; i++)

myOutWriter.append(nilai_Rh.get(i).toString()+"~");

myOutWriter.append(nilai_Rh.get(nilai_Rh.size()-1).toString()+"\n");

for(int i = 0; i< nilai_Gh.size()-1; i++)

myOutWriter.append(nilai_Gh.get(i).toString()+"~");

myOutWriter.append(nilai_Gh.get(nilai_Gh.size()-1).toString()+"\n");

for(int i = 0; i< nilai_Bh.size()-1; i++)

myOutWriter.append(nilai_Bh.get(i).toString()+"~");

myOutWriter.append(nilai_Bh.get(nilai_Bh.size()-1).toString()+"\n");

myOutWriter.append(baris.toString()+"\n"); myOutWriter.append(kolom.toString()+"\n"); myOutWriter.close();

fOut.close();

double endTime= System.currentTimeMillis();

double total =(endTime-startTime)/1000;

Toast.makeText(this, "File Berhasil Disimpan dengan waktu " + total + "s", Toast.LENGTH_SHORT).show();

} catch (FileNotFoundException e) {

Log.d("ooo", "File not found: " + e.getMessage()); } catch (IOException e) {

Log.d("ooo", "Error accessing file: " + e.getMessage()); }

}

private File getOutputMediaFile(){ File mediaStorageDir = new

File(Environment.getExternalStorageDirectory() + "/Pictures");

if (! mediaStorageDir.exists()){ if (! mediaStorageDir.mkdirs()){ return null;

} }

String timeStamp = new

SimpleDateFormat("ddMMyyyy_HHmm").format(new Date()); File mediaFile;

(6)

mediaFile = new File(mediaStorageDir.getPath() + File.separator + mImageName);

return mediaFile; }

ArrayList<Integer> proses(ArrayList<Integer> temp, int x) {

int limit = 0, j = 1, i, row = 0, col = 0;

ArrayList<Integer> temp2 = new ArrayList<Integer>(); i=0;

limit = i*i;

while(limit<temp.size()) {

i++;

limit = i*i; row++;

}

col = row + (row-1);

String[][] triangle = new String[row][col]; int mid = ((col + 1) /2)-1;

int idx = 0;

for(i = 0; i<row; i++) {

for(j = mid-i; j<=mid+i; j++) {

if(temp.size() <= idx)

triangle[i][j] = "-1";

else

{

triangle[i][j] = temp.get(idx).toString();

idx++; }

} }

for(i=0; i<col; i++) for(j=0; j<row; j++)

if(triangle[j][i] != null && triangle[j][i] != "-1")

temp2.add(Integer.parseInt(triangle[j][i]));

for(i=0; i<col; i++) {

for(j=0; j<row; j++) {

if(triangle[j][i] != null)

{

if(x==1)

nilai_Rh.add(Integer.parseInt(triangle[j][i]));

else if(x==2)

nilai_Gh.add(Integer.parseInt(triangle[j][i]));

else if(x==3)

nilai_Bh.add(Integer.parseInt(triangle[j][i]));

}

} }

(7)

public void onActivityResult(int requestCode, int resultCode, Intent data) {

if (resultCode == RESULT_OK) {

if (requestCode == SELECT_PICTURE) {

Uri selectedImageUri = data.getData();

selectedImagePath = getPath(selectedImageUri); nama.setText(selectedImagePath.toString()); try{

File f = new File(selectedImagePath); bmp = BitmapFactory.decodeStream(new

FileInputStream(f)); img.setImageBitmap(bmp);

if

(f.getPath().endsWith(".JPEG")||(f.getPath().endsWith(

".jpg"))) {

img.setImageBitmap(bmp); }

else {

nama.setText(""); ukuran.setText("");

img.setImageBitmap(null);

Toast.makeText(getBaseContext(), "Silahkan

pilih gambar dengan ekstensi .jpg atau JPEG", Toast.LENGTH_SHORT).show();

}

x = bmp.getWidth(); y = bmp.getHeight();

ukuran.setText(x.toString()+" X "+y.toString()); if ((bmp.getWidth() > 600) && (bmp.getHeight() > 600

)) {

nama.setText(""); ukuran.setText("");

img.setImageBitmap(null);

Toast.makeText(getBaseContext(), "silahkan pilih gambar lebih kecil dari 600 x 600 piksel", Toast.LENGTH_SHORT).show();

} }

catch (FileNotFoundException e){ e.printStackTrace();

} } } }

public String getPath(Uri uri) { if( uri == null ) { return null; }

String[] projection = { MediaStore.Images.Media.DATA }; Cursor cursor = managedQuery(uri, projection, null, null,

null);

if( cursor != null ){ int column_index =

cursor.getColumnIndexOrThrow(MediaStore.Images.Media.D ATA);

cursor.moveToFirst();

(8)

cursor.close(); return path; }

return uri.getPath(); }

@Override

public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) {

case R.id.action_home:

Intent home = new Intent(Enkripsi .this, MainActivity.class);

this.finish();

startActivity(home); break;

case R.id.action_enkripsi:

Intent enkrip = new Intent(Enkripsi .this, Enkripsi.class); this.finish();

startActivity(enkrip);

break;

case R.id.action_help:

Intent help = new Intent(Enkripsi .this, Help.class); this.finish();

startActivity(help);

break;

case R.id.action_dekripsi:

Intent dekrip = new Intent(Enkripsi .this, Dekripsi.class); this.finish();

startActivity(dekrip);

break; }

return super.onOptionsItemSelected(item); }

(9)

Menu Dekripsi

package com.example.program; import java.io.BufferedReader; import java.io.File;

import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException;

import java.io.OutputStreamWriter; import java.text.SimpleDateFormat; import java.util.ArrayList;

import java.util.Date;

import android.app.Activity;

import android.content.ActivityNotFoundException; import android.content.Intent;

import android.database.Cursor; import android.graphics.Bitmap;

import android.graphics.BitmapFactory; import android.graphics.Color;

import android.graphics.Bitmap.Config;

import android.graphics.drawable.BitmapDrawable; import android.net.Uri;

import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore; import android.util.Log;

import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.Toast;

public class Dekripsi extends Activity { public int SELECT_PICTURE = 1; public String selectedImagePath; EditText nama, ukuran;

ImageView img, imgxor, imgtranspos; Bitmap bmp;

Button btn_pilih, btn_xor, btn_transpos, btn_reset, btn_save, btn_tampil;

Integer x,y;

ArrayList<Integer> kunci1 = new ArrayList<Integer>(); ArrayList<Integer> nilai_R = new ArrayList<Integer>(); ArrayList<Integer> nilai_G = new ArrayList<Integer>(); ArrayList<Integer> nilai_B = new ArrayList<Integer>(); ArrayList<Integer> nilai_Rh = new ArrayList<Integer>(); ArrayList<Integer> nilai_Gh = new ArrayList<Integer>(); ArrayList<Integer> nilai_Bh = new ArrayList<Integer>(); int baris,kolom;

String namafilekunci; @Override

(10)

super.onCreate(savedInstanceState); setContentView(R.layout.dekripsi);

nama = (EditText)findViewById(R.id.editText1); ukuran = (EditText)findViewById(R.id.EditText01); img = (ImageView)findViewById(R.id.imageView1); imgxor = (ImageView)findViewById(R.id.ImageView02); imgtranspos = (ImageView)findViewById(R.id.ImageView01);

btn_tampil = (Button)findViewById(R.id.Button06);

btn_tampil.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) {

File file=new File(namafilekunci); if(file.exists())

{

try{

Intent i=new Intent(Intent.ACTION_EDIT);

i.setDataAndType(Uri.fromFile(file),"tex t/plain");

startActivity(i);

}

catch(ActivityNotFoundException e)

{

Toast.makeText(Dekripsi.this, "error",Toast.LENGTH_LONG).show();

}

}

} });

btn_pilih = (Button)findViewById(R.id.Button01);

btn_pilih.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) {

Intent intent = new Intent(); intent.setType("image/*");

intent.setAction(Intent.ACTION_GET_CONTENT);

startActivityForResult(Intent.createChooser(in tent,"Select Picture"), SELECT_PICTURE); }

});

btn_transpos = (Button)findViewById(R.id.Button03);

btn_transpos.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) {

double startTime= System.currentTimeMillis(); Bitmap bitmap =

((BitmapDrawable)img.getDrawable()).getBitmap(); Bitmap hasil =

Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888); nilai_R = proses2(nilai_Rh);

nilai_G = proses2(nilai_Gh); nilai_B = proses2(nilai_Bh); int k=0;

(11)

{

for(int j=0; j<bitmap.getHeight();j++) {

hasil.setPixel(i, j, Color.argb(255, nilai_R.get(k), nilai_G.get(k), nilai_B.get(k)));

k++; }

}

imgtranspos.setImageBitmap(hasil); double endTime= System.currentTimeMillis(); double total =(endTime-startTime)/1000;

Toast.makeText(getBaseContext(), "Proses Dekripsi Transposisi Segitiga selesai dengan waktu " + total + "s", Toast.LENGTH_SHORT).show();

} });

btn_xor = (Button)findViewById(R.id.Button02);

btn_xor.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) {

double startTime= System.currentTimeMillis(); Bitmap bitmap =

((BitmapDrawable)imgtranspos.getDrawable()).getBitmap(); Bitmap hasil = Bitmap.createBitmap(bitmap.getWidth(),

bitmap.getHeight(), Config.ARGB_8888); int p, R, G, B, k=0;

for(int i=0; i<bitmap.getWidth();i++) {

for(int j=0; j<bitmap.getHeight();j++)

{

p = bitmap.getPixel(i, j); R = Color.red(p);

G = Color.green(p); B = Color.blue(p);

hasil.setPixel(i, j, Color.argb(255, R^kunci1.get(k), G^kunci1.get(k), B^kunci1.get(k)));

k++;

}

}

imgxor.setImageBitmap(hasil);

double endTime= System.currentTimeMillis(); double total =(endTime-startTime)/1000;

Toast.makeText(getBaseContext(), "Proses Dekrip XOR selesai dengan waktu " + total + "s",

Toast.LENGTH_SHORT).show(); }

});

btn_reset = (Button)findViewById(R.id.Button04);

btn_reset.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) {

img.setImageResource(R.drawable.ssss); imgxor.setImageResource(R.drawable.ssss); imgtranspos.setImageResource(R.drawable.ssss); nama.setText("");

(12)

} });

btn_save = (Button)findViewById(R.id.Button05);

btn_save.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) {

Bitmap bitmap =

((BitmapDrawable)imgxor.getDrawable()).getBitmap(); storeImage(bitmap);

} }); }

ArrayList<Integer> proses2(ArrayList<Integer> temp) {

int j = 1, i, row = baris, col = kolom;

ArrayList<Integer> temp2 = new ArrayList<Integer>(); String[][] triangle = new String[row][col];

int mid = ((col + 1) /2)-1; int idx = 0;

for(i = 0; i<col; i++) {

if( i >= mid) {

for(j = i-row+1; j<row; j++) {

triangle[j][i] = temp.get(idx).toString(); idx++;

} }

else if(i<mid) {

for(j = row-i-1; j<row; j++) {

triangle[j][i] = temp.get(idx).toString(); idx++;

} } }

for(i=0; i<row; i++) for(j=0; j<col; j++)

if(triangle[i][j] != null && triangle[i][j] != "-1")

temp2.add(Integer.parseInt(triangle[i][j])); return temp2;

}

public void onActivityResult(int requestCode, int resultCode, Intent data) {

String temp = "";

if (resultCode == RESULT_OK) {

if (requestCode == SELECT_PICTURE) { Uri selectedImageUri = data.getData();

selectedImagePath = getPath(selectedImageUri); temp =

(13)

namafilekunci =

selectedImagePath.substring(0,selectedImagePath.length()-4) + "_k.txt";

nama.setText(selectedImagePath.toString());

try{

File f = new File(selectedImagePath);

bmp = BitmapFactory.decodeStream(new FileInputStream(f)); img.setImageBitmap(bmp);

x = bmp.getWidth(); y = bmp.getHeight();

ukuran.setText(x.toString()+" X "+y.toString());

}

catch (FileNotFoundException e){ e.printStackTrace();

}

File file = new File(namafilekunci);

try {

BufferedReader br = new BufferedReader(new FileReader(file));

String line;

line = br.readLine();

String[] tmp = line.split("~"); if(kunci1!=null)

kunci1.clear();

for(int i=0; i<tmp.length; i++) {

kunci1.add(Integer.parseInt(tmp[i])); }

br.close(); }

catch (IOException e) { e.printStackTrace(); }

file = new File(temp);

try {

BufferedReader br = new BufferedReader(new FileReader(file));

String line;

line = br.readLine();

String[] tmp1 = line.split("~"); if(nilai_Rh!=null)

nilai_Rh.clear();

for(int i=0; i<tmp1.length; i++) {

nilai_Rh.add(Integer.parseInt(tmp1[i])); }

line = br.readLine();

String[] tmp2 = line.split("~"); if(nilai_Gh!=null)

(14)

{

nilai_Gh.add(Integer.parseInt(tmp2[i])); }

line = br.readLine();

String[] tmp3 = line.split("~"); if(nilai_Bh!=null)

nilai_Bh.clear(); for(int i=0; i<tmp3.length; i++) {

nilai_Bh.add(Integer.parseInt(tmp3[i])); }

line = br.readLine();

baris = Integer.parseInt(line); line = br.readLine();

kolom = Integer.parseInt(line);

br.close();

Toast.makeText(this, "File Dibuka", Toast.LENGTH_LONG).show();

}

catch (IOException e) { e.printStackTrace(); }

} } }

public String getPath(Uri uri) { if( uri == null ) { return null; }

String[] projection = { MediaStore.Images.Media.DATA }; Cursor cursor = managedQuery(uri, projection, null, null,

null);

if( cursor != null ){ int column_index =

cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA) ;

cursor.moveToFirst();

String path = cursor.getString(column_index); cursor.close();

return path; }

return uri.getPath(); }

private File getOutputMediaFile(){ File mediaStorageDir = new

File(Environment.getExternalStorageDirectory() + "/Pictures");

if (! mediaStorageDir.exists()){ if (! mediaStorageDir.mkdirs()){ return null;

} }

String timeStamp = new

(15)

String mImageName="NUR_"+timeStamp +".jpg"; mediaFile = new File(mediaStorageDir.getPath() +

File.separator + mImageName); return mediaFile;

}

private void storeImage(Bitmap image) {

File pictureFile = getOutputMediaFile(); if (pictureFile == null) {

Log.d("ooo","Error creating media file, check storage permissions: ");

return; }

try {

FileOutputStream fos = new FileOutputStream(pictureFile); image.compress(Bitmap.CompressFormat.PNG, 90, fos); fos.close();

Toast.makeText(this, "File Berhasil Disimpan", Toast.LENGTH_SHORT).show();

} catch (FileNotFoundException e) {

Log.d("ooo", "File not found: " + e.getMessage()); } catch (IOException e) {

Log.d("ooo", "Error accessing file: " + e.getMessage()); }

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.main, menu); return true; }

@Override

public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) {

case R.id.action_home:

Intent home = new Intent(Dekripsi.this, MainActivity.class);

this.finish(); startActivity(home); break;

case R.id.action_enkripsi:

Intent enkrip = new Intent(Dekripsi.this, Enkripsi.class);

this.finish();

startActivity(enkrip); break;

case R.id.action_help:

Intent help = new Intent(Dekripsi.this, Help.class); this.finish();

startActivity(help); break;

case R.id.action_dekripsi:

Intent dekrip = new Intent(Dekripsi.this, Dekripsi.class);

this.finish();

startActivity(dekrip); break;}

return super.onOptionsItemSelected(item); }

(16)

D

AFTAR

R

IWAYAT

H

IDUP

CURRICULUM VITAE

I. DATA PRIBADI /Personal Identification Nama Lengkap

: Nurhasanah

Tempat/ Tgl. Lahir

: Guntung/ 17 Oktober 1995

Jenis Kelamin : Perempuan

Agama : Islam

Kebangsaan : Indonesia

Alamat : Desa Empat Negri Dusun VII Kec. Lima Puluh Kab. Batu Bara

Telepon : 089663362594

Email : [email protected]

II. KEMAMPUAN / Capabilities

Bahasa : Bahasa Indonesia, Bahasa Inggris

Bahasa Pemrograman : C#, C++,Pascal

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 ]MA Perguruan Cipta Simpang Dolok

[ 2007

2010 ]SMP Negeri 2 Lima Puluh

[ 2001

2007 ]SD Negeri No: 010162

IV. PELATIHAN DAN SEMINAR / Trainings & Workshop

1) Peserta Seminar Nasional “Melalui Inovasi Teknologi untuk Menciptkan Mahasiswa Kreatif

dan Mandiri” , Universitas Sumatera Utara [2017]

2) Peserta Seminar IMPACT Medan “Success Has No Limit”, Universitas Sumatera Utara

[2016]

3) Peserta Workshop “Bank Indonesia Goes To Campus Bersama NET.”, Universitas

Sumatera Utara [2016]

4) Peserta Seminar Nasional Literasi Informasi (SENARAI) Fasilkom-TI Universitas Sumatera Utara [2014]

5) Peserta Seminar “What Will You Be?” IMILKOM Universitas Sumatera Utara [2013]

V. LAINNYA / Others

1) Penerima Beasiswa Bidik Misi [2013 – 2017]

Gambar

gambar lebih kecil dari 600 x 600 piksel"Toast.LENGTH_SHORT).show();

Referensi

Dokumen terkait

Berdasarkan dari rumusan masalah dan percobaan yang telah dilakukan untuk peningkatan keamanan pada sebuah citra dapat disimpulkan bahwa pengamanan citra pada metode super

Running time akan semakin tinggi ketika ukuran pesan teks semakin besar dan begitu juga dengan nilai entropy sehingga tingkat keamanan dari proses steganografi ini

import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.EditText; import

Implementasi Algoritma Affine Cipher dan Algoritma Advanced Encryption Standard (AES) pada Aplikasi Short Message Service (SMS).. Universitas

Dalam skripsi ini, beliau menyimpulkan bahwa enkripsi plainteks dengan menggunakan Algoritma One Time Pad dapat melindungi informasi yang terdapat dalam file teks

Tujuan dari penelitian ini adalah untuk membuat aplikasi menggunakan algoritma Vernam Cipher dalam skema Three-Pass Protocol pada pengamanan citra bitmap..

Hasil penelitian menunjukkan bahwa algoritma Vernam Cipher dalam skema Three-Pass Protocol dapat mengembalikan citra awal secara utuh.. Sehingga dapat disimpulkan

Untuk meningkatkan keamanan citra dirancang sebuah sistem pengamanan citra menggunakan algoritma kriptografi Vernam Cipher dalam skema Three-Pass Protocol yang