LISTING PROGRAM
Menu Proses
package com.example.skripsii;
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.DialogInterface; import android.content.Intent;
import android.database.Cursor; import android.graphics.Bitmap;
import android.graphics.Bitmap.Config; import android.graphics.BitmapFactory; import android.graphics.Color;
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 Sender extends Activity implements View.OnClickListener {
public int SELECT_PICTURE = 1; public String selectedImagePath; public double mse1,psnr1;
ArrayList<Integer> kunci1,kunci2;
ImageView img, imgc1, imgc2, imgc3, imgdekrip; Bitmap bmp;
Integer baris,kolom;
EditText nama, size1, size2, mse, psnr;
Button btn_pilih, btn_kunci1, btn_kunci2, btn_proses1, btn_proses2, btn_proses3, btn_dekrip, btn_reset;
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.sender);
imgc3 = (ImageView)findViewById(R.id.img_c3);
imgdekrip = (ImageView)findViewById(R.id.img_dekripsi); nama = (EditText)findViewById(R.id.et_nama);
size1 = (EditText)findViewById(R.id.et_size1); size2 = (EditText)findViewById(R.id.et_size2); mse = (EditText)findViewById(R.id.et_mse); psnr = (EditText)findViewById(R.id.et_psnr);
btn_pilih = (Button)findViewById(R.id.button_pilih); btn_pilih.setOnClickListener(this);
btn_kunci1 = (Button)findViewById(R.id.button_kpengirim); btn_kunci1.setOnClickListener(this);
btn_kunci2 = (Button)findViewById(R.id.button_kpenerima); btn_kunci2.setOnClickListener(this);
btn_proses1 = (Button)findViewById(R.id.button_c1); btn_proses1.setOnClickListener(this);
btn_proses2 = (Button)findViewById(R.id.button_c2); btn_proses2.setOnClickListener(this);
btn_proses3 = (Button)findViewById(R.id.button_c3); btn_proses3.setOnClickListener(this);
btn_dekrip = (Button)findViewById(R.id.button_dekripsi); btn_dekrip.setOnClickListener(this);
btn_reset = (Button)findViewById(R.id.button_reset); btn_reset.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true;
}
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(selectedImageUri.toString());
try {
File f = new File(selectedImagePath); bmp = BitmapFactory.decodeStream(new
FileInputStream(f));
if (f.getPath().endsWith(".bmp")) { img.setImageBitmap(bmp);
} else {
nama.setText(""); size1.setText(""); size2.setText("");
img.setImageBitmap(null);
Toast.makeText(getBaseContext(), "Silahkan pilih gambar dengan ekstensi .bmp",
Toast.LENGTH_SHORT).show(); }
size1.setText(x.toString()); size2.setText(y.toString());
if ((bmp.getWidth() > 1000) && (bmp.getHeight() > 1000 )) {
nama.setText(""); size1.setText(""); size2.setText("");
img.setImageBitmap(null);
Toast.makeText(getBaseContext(), "Resolusi Gambar diatas 1000x1000 piksel, silahkan pilih gambar yang lebih kecil dari 1000x1000 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.Medi a.DATA);
cursor.moveToFirst();
String path = cursor.getString(column_index); cursor.close();
return path; }
return uri.getPath(); }
public void onClick(View v) { if (v == btn_pilih) {
Intent intent = new Intent(); intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(Intent.createChooser(intent,"Sele ct Picture"), SELECT_PICTURE);
}
else if(v == btn_kunci1) {
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)); }
Berhasil Dibuat", Toast.LENGTH_SHORT).show(); }
else if(v == btn_kunci2) {
kunci2 = new ArrayList<Integer>(); Random rand = new Random();
Bitmap bitmap =
((BitmapDrawable)img.getDrawable()).getBitmap();
for(int i=0;
i<bitmap.getHeight()*bitmap.getWidth();i++)
{
kunci2.add(rand.nextInt(256));
}
Toast.makeText(getBaseContext(), "Kunci Penerima Berhasil Dibuat", Toast.LENGTH_SHORT).show(); }
else if(v == btn_proses1) {
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++;
} }
imgc1.setImageBitmap(hasil);
double endTime = System.currentTimeMillis();
double totalTime = (endTime - startTime) / 1000;
Toast.makeText(getBaseContext(), "Enkripsi C1 berhasil dengan waktu "+ totalTime + " sekon",
Toast.LENGTH_SHORT).show(); }
else if(v == btn_proses2) {
double startTime = System.currentTimeMillis(); Bitmap bitmap =
((BitmapDrawable)imgc1.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++) {
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^kunci2.get(k), G^kunci2.get(k), B^kunci2.get(k)));
k++;
} }
imgc2.setImageBitmap(hasil);
double endTime = System.currentTimeMillis(); double totalTime = (endTime - startTime)/1000;
Toast.makeText(getBaseContext(), "Enkripsi C2 berhasil dengan waktu "+ totalTime + " sekon",
Toast.LENGTH_SHORT).show(); }
else if(v == btn_proses3) {
double startTime = System.currentTimeMillis(); Bitmap bitmap =
((BitmapDrawable)imgc2.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++;
} }
imgc3.setImageBitmap(hasil); double endTime = System.currentTimeMillis();
double totalTime = (endTime - startTime) / 1000;
Toast.makeText(getBaseContext(), "Enkripsi C3 berhasil dengan waktu "+ totalTime + " sekon",
Toast.LENGTH_SHORT).show();
}
else if(v == btn_dekrip) {
double startTime = System.currentTimeMillis(); Bitmap bitmap =
((BitmapDrawable)imgc3.getDrawable()).getBitmap(); Bitmap hasil = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), Config.ARGB_8888); int p, R, G, B, k=0, pixelAsli, pixelHasil; int R1,G1,B1;
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^kunci2.get(k), G^kunci2.get(k), B^kunci2.get(k)));
k++;
} }
for(int i=0; i<bitmap.getWidth();i++) {
for(int j=0; j<bitmap.getHeight();j++) {
pixelAsli = bmp.getPixel(i, j); pixelHasil = hasil.getPixel(i, j); R1 = Color.red(pixelAsli);
G1 = Color.green(pixelAsli); B1 = Color.blue(pixelAsli); R2 = Color.red(pixelHasil); G2 = Color.green(pixelHasil); B2 = Color.blue(pixelHasil);
mse1 = mse1 + Math.pow(R1-R2, 2) +
Math.pow(G1-G2, 2) + Math.pow(B1-B2, 2); }
mse1= 1.0/(bitmap.getWidth()*bitmap.getHeight()) * mse1;
psnr1 = 10*Math.log10(Math.pow(255, 2)/mse1);
mse.setText(Double.toString(mse1)); psnr.setText(Double.toString(psnr1)); }
imgdekrip.setImageBitmap(hasil);
double endTime = System.currentTimeMillis();
double totalTime = (endTime - startTime) / 1000;
Toast.makeText(getBaseContext(), "Dekripsi berhasil dengan waktu "+ totalTime + " sekon",
Toast.LENGTH_SHORT).show(); }
else if(v == btn_reset) {
nama.setText(""); size1.setText(""); size2.setText("");
img.setImageResource(R.drawable.noo); imgc1.setImageResource(R.drawable.noo2); imgc2.setImageResource(R.drawable.noo2); imgc3.setImageResource(R.drawable.noo2); imgdekrip.setImageResource(R.drawable.noo2); }
@Override
public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) {
case R.id.action_home:
Intent i=new Intent(Sender.this, MainActivity.class) ;
this.finish(); startActivity(i); break;
case R.id.action_tpp:
Intent a=new Intent(Sender.this, Sender.class) ; this.finish();
startActivity(a);
break;
case R.id.action_help:
Intent c=new Intent(Sender.this, Help.class) ; this.finish();
startActivity(c);
}
return super.onOptionsItemSelected(item); }
public void onBackPressed(){ exit();
}
public void exit(){
AlertDialog.Builder builder = new AlertDialog.Builder(Sender.this);
builder.setMessage("Do you want to exit ?").setCancelable(true)
.setPositiveButton("Yes",new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Sender.this.finish(); } }).setNegativeButton("No", new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
Toast.makeText(getBaseContext(), "Anda membatalkan perintah keluar", Toast.LENGTH_SHORT).show();
}
}).show();
}
DAFTAR RIWAYAT HIDUP
C
URRICULUMV
ITAEI. DATA PRIBADI /Personal Identification
Nama Lengkap : Lily Aulya Tempat/
Tgl. Lahir
: Padangsidimpuan / 26 Agustus 1995
Jenis Kelamin : Perempuan
Agama : Islam
Kebangsaan : Indonesia
Alamat : Jl. Silandit, Lk.IV, Komplek Sidimpuan Baru, Padangsidimpuan
Telepon : 085261116009
Email : [email protected]
II. KEMAMPUAN / Capabilities
Bahasa : Bahasa Indonesia, Bahasa Inggris Bahasa Pemrograman : C#, C++, PHP, Java
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 1 Padangsidimpuan
[ 2007 – 2010 ] SMP Negeri 4 Padangsidimpuan
[ 2001 – 2007 ] SD Negeri 200117 Padangsidimpuan
IV. PENDIDIKAN NON-FORMAL / Informal Education
[ 2012 – 2013 ] Ganesha Operation, Medan
V. PELATIHAN DAN SEMINAR / Trainings & Workshop
1) Peserta Seminar Nasional “Melalui Inovasi Teknologi untuk Menciptakan Mahasiswa
Kreatif dan Mandiri”, Universitas Sumatera Utara [2017]
2) Peserta Workshop “Bank Indonesia Goes To Campus Bersama NET.”, Universitas Sumatera
Utara [2016]
3) Peserta TRANSFORMER (Training Super for Mid Level Kader), UKMI Al-Khuwarizmi, Universitas Sumatera Utara [2015]
4) Peserta Seminar Nasional Literasi Informasi (SENARAI) Fasilkom-TI Universitas Sumatera Utara [2014]
5) Peserta TRICK (Training Islam Ceria dan Kreatif), UKMI Al-Khuwarizmi, Universitas Sumatera Utara [2013]
6) Peserta Seminar “What Will You Be?” IMILKOM, Universitas Sumatera Utara [2013]
XIII. LAINNYA / Others
1) Penerima Beasiswa BBM (Bantuan Belajar Mahasiswa) [2014]
2) Penerima Beasiswa BBM (Bantuan Belajar Mahasiswa) [2016]