• Tidak ada hasil yang ditemukan

Implementasi Kombinasi Algoritma Vigenere Cipher dan Myszkowski Transposition Pada Aplikasi Penyandian Pesan Berbasis Android

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Kombinasi Algoritma Vigenere Cipher dan Myszkowski Transposition Pada Aplikasi Penyandian Pesan Berbasis Android"

Copied!
17
0
0

Teks penuh

(1)

LISTING PROGRAM

1.

MainActivity.java

package com.example.ilmukomputer.mycipher;

import android.content.Intent; import android.graphics.Color; import android.os.Bundle;

import android.support.v7.app.AppCompatActivity; import android.text.InputType;

import android.view.View; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; import android.widget.ImageButton; import android.widget.TabHost; import android.widget.TextView; import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) { setTheme(R.style.AppTheme);

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

TabHost tab = (TabHost) findViewById(R.id.tabHost); tab.setup();

TabHost.TabSpec spec1 = tab.newTabSpec("Pengamanan"); spec1.setIndicator("PENGAMANAN");

spec1.setContent(R.id.layout1); tab.addTab(spec1);

TabHost.TabSpec spec2 = tab.newTabSpec("Pengungkapan"); spec2.setIndicator("PENGUNGKAPAN");

spec2.setContent(R.id.layout2); tab.addTab(spec2);

for(int i=0;i<tab.getTabWidget().getChildCount();i++) {

TextView tv = (TextView)

tab.getTabWidget().getChildAt(i).findViewById(android.R.id.title); tv.setTextColor(Color.parseColor("#FFFFFF"));

tv.setTextSize(15); }

buttonClick(); pengamanan(); pengungkapan(); }

private boolean checkInput(String pesan, String key1, String key2){ int i, j;

if(pesan.length() > 0 && key1.length() >= 2 && key2.length() >= 2) {

if(pesan.length() >= key1.length() && pesan.length() >= key2.length()) {

for(i=0; i<pesan.length(); i++){ j = (int) pesan.charAt(i); if (j < 32 || j > 126){

return false; }

}

for(i=0; i<key1.length(); i++){ j = (int) key1.charAt(i); if(j < 32 || j > 126){

(2)

}

for(i=0; i<key2.length(); i++){ j = (int) key2.charAt(i); if(j < 48 || j > 57){

return false; }

} } else{

return false; }

} else{

return false; }

return true; }

private void pengamanan(){

final EditText et_plaintext_en = (EditText) findViewById(R.id.et_plaintext_en);

final EditText et_key1_en = (EditText) findViewById(R.id.et_key1_en); final EditText et_key2_en = (EditText) findViewById(R.id.et_key2_en); final TextView tv_ciphertext_en = (TextView)

findViewById(R.id.tv_ciphertext_en);

ImageButton b_encrypt = (ImageButton) findViewById(R.id.b_encrypt); b_encrypt.setOnClickListener(new View.OnClickListener(){

@Override

public void onClick(View v) {

String plaintext = et_plaintext_en.getText().toString(); String key1 = et_key1_en.getText().toString();

String key2 = et_key2_en.getText().toString(); if (checkInput(plaintext, key1, key2)) {

String key = "", ciphertext1 = "", ciphertext2 = ""; int i, j, k, pesan, kecil = 0, tmp = 0;

//enkripsi vigenere

for (i = 0; i < plaintext.length(); i++) { j = i % key1.length();

key += key1.charAt(j); }

for (i = 0; i < plaintext.length(); i++) { j = (int) plaintext.charAt(i);

k = (int) key.charAt(i);

pesan = ((j - 32) + (k - 32)) % 95; pesan += 32;

ciphertext1 += (char) pesan; }

//ciphertext2 = ciphertext1; //ciphertext1 = plaintext;

//enkripsi myszkowski

int kol = key2.length(), bar = (int) Math.ceil((double) ciphertext1.length() / kol);

char[][] matrix = new char[bar][kol];

for (i = 0; i < bar; i++) { for (j = 0; j < kol; j++) {

if (tmp < ciphertext1.length()) {

matrix[i][j] = ciphertext1.charAt(tmp); tmp++;

} else {

matrix[i][j] = Character.MIN_VALUE; }

} }

tmp = -1;

while (ciphertext2.length() < ciphertext1.length()) { for (i = 0; i < kol; i++) {

(3)

break; }

}

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

if (Integer.parseInt(key2.charAt(i) + "") > tmp && Integer.parseInt(key2.charAt(i) + "") < kecil) {

kecil = Integer.parseInt(key2.charAt(i) + ""); }

}

for (i = 0; i < bar; i++) { for (j = 0; j < kol; j++) {

if (Integer.parseInt(key2.charAt(j) + "") == kecil && matrix[i][j] != Character.MIN_VALUE) {

ciphertext2 += matrix[i][j]; }

} }

tmp = kecil; }

tv_ciphertext_en.setText(ciphertext2);

Toast.makeText(MainActivity.this, "Pengamanan Sukses", Toast.LENGTH_LONG).show();

} else{

tv_ciphertext_en.setText("");

Toast.makeText(MainActivity.this, "Periksa Kembali Inputan Anda", Toast.LENGTH_LONG).show();

} } }); }

private void pengungkapan(){

final EditText et_ciphertext_de = (EditText) findViewById(R.id.et_ciphertext_de);

final EditText et_key1_de = (EditText) findViewById(R.id.et_key1_de); final EditText et_key2_de = (EditText) findViewById(R.id.et_key2_de); final TextView tv_plaintext_de = (TextView)

findViewById(R.id.tv_plaintext_de);

ImageButton b_decrypt = (ImageButton) findViewById(R.id.b_decrypt);

b_decrypt.setOnClickListener(new View.OnClickListener(){ @Override

public void onClick(View v){

String ciphertext2 = et_ciphertext_de.getText().toString(); String key1 = et_key1_de.getText().toString();

String key2 = et_key2_de.getText().toString(); if (checkInput(ciphertext2, key1, key2)) {

String key="", ciphertext1="", plaintext=""; int i, j, k=0, pesan, kecil=0, tmp=-1;

//dekripsi myszkowski

int kol = key2.length(), bar = (int) Math.ceil((double) ciphertext2.length()/kol);

char[][] matrix = new char[bar][kol];

while(k < ciphertext2.length()) { for(i=0; i<kol; i++) {

if(Integer.parseInt(key2.charAt(i) + "") > tmp) { kecil = Integer.parseInt(key2.charAt(i) + ""); break;

} }

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

if(Integer.parseInt(key2.charAt(i) + "") > tmp && Integer.parseInt(key2.charAt(i) + "") < kecil) {

kecil = Integer.parseInt(key2.charAt(i) + ""); }

}

(4)

if(Integer.parseInt(key2.charAt(j)+"") == kecil){ if(i == bar-1 && j >=

kol-((bar*kol)-ciphertext2.length())){

} else {

matrix[i][j] = ciphertext2.charAt(k); k++;

} } } }

tmp = kecil; }

for(i=0; i<bar; i++){ for(j=0; j<kol; j++){

if(ciphertext1.length() < ciphertext2.length()){ ciphertext1 += matrix[i][j];

} } }

//plaintext = ciphertext1; //ciphertext1 = ciphertext2;

//dekripsi vigenere

for(i=0; i<ciphertext1.length(); i++){ j = i % key1.length();

key += key1.charAt(j); }

for(i=0; i<ciphertext1.length(); i++){ j = (int) ciphertext1.charAt(i); k = (int) key.charAt(i);

if(j >= k) {

pesan = ((j - 32) - (k - 32)) % 95; }

else{

pesan = ((j - 32) + 95 - (k - 32)) % 95; }

pesan += 32;

plaintext += (char) pesan; }

tv_plaintext_de.setText(plaintext);

Toast.makeText(MainActivity.this, "Pengungkapan Sukses", Toast.LENGTH_LONG).show();

} else{

tv_plaintext_de.setText("");

Toast.makeText(MainActivity.this, "Periksa Kembali Inputan Anda", Toast.LENGTH_LONG).show();

} } }); }

private void buttonClick(){

final EditText et_plaintext_en = (EditText) findViewById(R.id.et_plaintext_en);

final EditText et_key1_en = (EditText) findViewById(R.id.et_key1_en); final EditText et_key2_en = (EditText) findViewById(R.id.et_key2_en); final TextView tv_ciphertext_en = (TextView)

findViewById(R.id.tv_ciphertext_en);

final EditText et_ciphertext_de = (EditText) findViewById(R.id.et_ciphertext_de);

final EditText et_key1_de = (EditText) findViewById(R.id.et_key1_de); final EditText et_key2_de = (EditText) findViewById(R.id.et_key2_de); final TextView tv_plaintext_de = (TextView)

findViewById(R.id.tv_plaintext_de);

final ImageButton b_clear_en = (ImageButton) findViewById(R.id.b_clear_en);

(5)

public void onClick(View v) { et_plaintext_en.setText(""); et_key1_en.setText(""); et_key2_en.setText(""); tv_ciphertext_en.setText("");

Toast.makeText(MainActivity.this, "Kolom Inputan Telah Direset", Toast.LENGTH_SHORT).show();

} });

final ImageButton b_clear_de = (ImageButton) findViewById(R.id.b_clear_de); b_clear_de.setOnClickListener(new View.OnClickListener(){

@Override

public void onClick(View v) { et_ciphertext_de.setText(""); et_key1_de.setText(""); et_key2_de.setText(""); tv_plaintext_de.setText("");

Toast.makeText(MainActivity.this, "Kolom Inputan Telah Direset", Toast.LENGTH_SHORT).show();

} });

CheckBox cb_view1_en = (CheckBox) findViewById(R.id.cb_view1_en); cb_view1_en.setOnCheckedChangeListener(new

CompoundButton.OnCheckedChangeListener() {

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

if (isChecked) {

et_key1_en.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD); }

else{

et_key1_en.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);

}

} });

CheckBox cb_view1_de = (CheckBox) findViewById(R.id.cb_view1_de); cb_view1_de.setOnCheckedChangeListener(new

CompoundButton.OnCheckedChangeListener() {

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

if (isChecked) {

et_key1_de.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD); }

else{

et_key1_de.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);

}

} });

CheckBox cb_view2_en = (CheckBox) findViewById(R.id.cb_view2_en); cb_view2_en.setOnCheckedChangeListener(new

CompoundButton.OnCheckedChangeListener() {

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

if (isChecked) {

et_key2_en.setInputType(InputType.TYPE_CLASS_NUMBER); }

else{

et_key2_en.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD);

}

(6)

});

CheckBox cb_view2_de = (CheckBox) findViewById(R.id.cb_view2_de); cb_view2_de.setOnCheckedChangeListener(new

CompoundButton.OnCheckedChangeListener() {

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

if (isChecked) {

et_key2_de.setInputType(InputType.TYPE_CLASS_NUMBER); }

else{

et_key2_de.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD);

}

} });

final ImageButton b_help_en = (ImageButton) findViewById(R.id.b_help_en); b_help_en.setOnClickListener(new View.OnClickListener(){

@Override

public void onClick(View v){

Intent i = new Intent(MainActivity.this, HelpActivity.class); startActivity(i);

} });

final ImageButton b_help_de = (ImageButton) findViewById(R.id.b_help_de); b_help_de.setOnClickListener(new View.OnClickListener(){

@Override

public void onClick(View v){

Intent i = new Intent(MainActivity.this, HelpActivity.class); startActivity(i);

} });

final ImageButton b_about_en = (ImageButton) findViewById(R.id.b_about_en); b_about_en.setOnClickListener(new View.OnClickListener(){

@Override

public void onClick(View v){

Intent i = new Intent(MainActivity.this, AboutActivity.class); startActivity(i);

} });

final ImageButton b_about_de = (ImageButton) findViewById(R.id.b_about_de); b_about_de.setOnClickListener(new View.OnClickListener(){

@Override

public void onClick(View v){

Intent i = new Intent(MainActivity.this, AboutActivity.class); startActivity(i);

} }); } }

2.

HelpActivity.java

package com.example.ilmukomputer.mycipher;

import android.content.Intent; import android.os.Bundle;

import android.support.v7.app.AppCompatActivity; import android.text.InputType;

import android.view.MotionEvent; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.ImageButton; import android.widget.TextView; import android.widget.Toast;

/**

(7)

*/

public class HelpActivity extends AppCompatActivity { @Override

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

setContentView(R.layout.activity_help);

ImageButton b_back = (ImageButton) findViewById(R.id.b_back); Button b_penggunaan = (Button) findViewById(R.id.b_penggunaan); Button b_algoritma = (Button) findViewById(R.id.b_algoritma);

final TextView tv_bantuan = (TextView) findViewById(R.id.tv_bantuan);

b_back.setOnClickListener(new View.OnClickListener() { @Override

public void onClick(View v) {

Intent i = new Intent(HelpActivity.this, MainActivity.class); i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

startActivity(i); }

});

b_penggunaan.setOnClickListener(new View.OnClickListener() { @Override

public void onClick(View v) {

tv_bantuan.setText("Terdiri dari proses Pengamanan dan Pengungkapan. Pada Pengamanan, tulis pesan asli yang " +

"ingin disandi pada Kolom Pesan, kunci pertama pada Kolom Kunci 1 dan kunci kedua pada Kolom Kunci 2, kemudian klik " +

"Button Proses untuk memulai Pengamanan. Hasil Pengamanan berupa pesan tersandi yang tidak dapat dibaca.\nPada " +

"Pengungkapan, tulis pesan tersandi hasil dari proses Pengamanan pada Kolom Pesan, kunci pertama pada Kolom Kunci 1 dan " +

"kunci kedua pada Kolom Kunci 2, kemudian klik Button Proses untuk memulai Pengungkapan. Hasil Pengungkapan berupa pesan " +

"asli yang dapat dibaca."); }

});

b_algoritma.setOnClickListener(new View.OnClickListener() { @Override

public void onClick(View v) {

tv_bantuan.setText("Menggunakan dua buah algoritma Kriptografi yaitu algoritma Vigenere Cipher dan Myszkowski Transposition. " +

"Pada proses Pengamanan, pesan asli dienkripsi menggunakan algoritma Vigenere Cipher, kemudian hasilnya dienkripsi " +

"lagi menggunakan algoritma Myszkowski Transposition menjadi pesan tersandi. Sedangkan pada proses Pengungkapan, " +

"pesan tersandi didekripsi menggunakan algoritma Myszkowski transposition, kemudian hasilnya didekripsi lagi menggunakan " +

"algoritma Vigenere Cipher menjadi pesan asli."); }

});

ImageButton encrypt = (ImageButton) findViewById(R.id.b_encrypt); encrypt.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

tv_bantuan.setText("Button yang digunakan untuk memulai proses Pengamanan atau Pengungkapan. Pada proses Pengungkapan, button " +

"bergambar gembok terbuka. Apabila proses berhasil maka akan ditampilkan pemberitahuan Pengamanan atau Pengungkapan " +

"Sukses. Apabila inputan tidak sesuai maka akan ditampilkan pemberitahuan Periksa Kembali Inputan Anda.");

Toast.makeText(HelpActivity.this, "Button Proses", Toast.LENGTH_SHORT).show();

} });

ImageButton clear = (ImageButton) findViewById(R.id.b_clear_en); clear.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

tv_bantuan.setText("Button untuk mereset seluruh kolom inputan, yaitu Kolom Pesan, Kolom Kunci 1, Kolom Kunci 2 dan Kolom Hasil " +

"menjadi kosong. Apabila sudah terhapus maka anda bisa kembali mengisi kolom-kolom tersebut.");

(8)

Toast.LENGTH_SHORT).show(); }

});

ImageButton help = (ImageButton) findViewById(R.id.b_help_en); help.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

tv_bantuan.setText("Button untuk menampilkan Halaman Bantuan penggunaan (halaman ini). Bantuan yang disediakan yaitu penjelasan " +

"mengenai Penggunaan aplikasi dan apa saja yang ada pada Halaman Pengamanan atau Pengungkapan. Selain itu, Halaman Bantuan " +

"juga berisi penjelasan Algoritma yang digunakan untuk memproses pesan. Gunakan button bergambar panah di kiri atas untuk " +

"kembali ke Halaman Pengamanan.");

Toast.makeText(HelpActivity.this, "Button Bantuan", Toast.LENGTH_SHORT).show();

} });

ImageButton about = (ImageButton) findViewById(R.id.b_about_en); about.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

tv_bantuan.setText("Button untuk menampilkan Halaman Tentang. Halaman ini berisi informasi mengenai pembuat aplikasi. Gunakan button " +

"bergambar panah di kiri atas untuk kembali ke Halaman Pengamanan.");

Toast.makeText(HelpActivity.this, "Button Tentang", Toast.LENGTH_SHORT).show();

} });

EditText pesan = (EditText) findViewById(R.id.et_plaintext_en); pesan.setInputType(InputType.TYPE_NULL);

pesan.setOnTouchListener(new View.OnTouchListener() { @Override

public boolean onTouch(View v, MotionEvent event) {

tv_bantuan.setText("Kolom untuk menulis pesan yang ingin diproses. Pesan terdiri dari karakter ASCII 32 hingga 126. Apabila muncul " +

"pemberitahuan Periksa Kembali Input Anda, maka mungkin saja salah satu karakter pesan yang digunakan tidak sesuai. " +

"Pesan dapat di-copy ke clipboard dan di-paste dengan menahan klik pada teks. Gunakan button yang muncul pada kanan " +

"atas setelah teks di-select");

Toast.makeText(HelpActivity.this, "Kolom Pesan", Toast.LENGTH_SHORT).show();

return false; }

});

EditText key1 = (EditText) findViewById(R.id.et_key1_en); key1.setInputType(InputType.TYPE_NULL);

key1.setOnTouchListener(new View.OnTouchListener() { @Override

public boolean onTouch(View v, MotionEvent event) {

tv_bantuan.setText("Kolom untuk menulis kunci pertama. Kunci terdiri dari karakter ASCII 32 hingga 126. Minimal panjang kunci " +

"yang digunakan adalah 2 karakter dan maksimal sepanjang pesan. Apabila muncul pemberitahuan Periksa Kembali Input " +

"Anda, maka mungkin saja kunci yang digunakan tidak sesuai."); Toast.makeText(HelpActivity.this, "Kolom Kunci 1",

Toast.LENGTH_SHORT).show(); return false; }

});

EditText key2 = (EditText) findViewById(R.id.et_key2_en); key2.setInputType(InputType.TYPE_NULL);

key2.setOnTouchListener(new View.OnTouchListener() { @Override

public boolean onTouch(View v, MotionEvent event) {

tv_bantuan.setText("Kolom untuk menulis kunci kedua. Kunci terdiri dari angka 0 hingga 9. Minimal panjang kunci yang " +

(9)

Apabila muncul pemberitahuan Periksa Kembali Inputan " +

"Anda, maka mungkin saja kunci yang digunakan tidak sesuai."); Toast.makeText(HelpActivity.this, "Kolom Kunci 2",

Toast.LENGTH_SHORT).show(); return false; }

});

TextView hasil = (TextView) findViewById(R.id.tv_ciphertext_en); hasil.setOnTouchListener(new View.OnTouchListener() {

@Override

public boolean onTouch(View v, MotionEvent event) {

tv_bantuan.setText("Kolom untuk menampilkan pesan hasil proses Pengmanan atau Pengungkapan. Pesan dapat di-copy ke clipboard " +

"dengan menahan klik pada teks. Gunakan button yang muncul di kanan atas setelah teks di-select.");

Toast.makeText(HelpActivity.this, "Kolom Hasil Proses", Toast.LENGTH_SHORT).show();

return false; }

});

final CheckBox view1 = (CheckBox) findViewById(R.id.cb_view1_en); view1.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) { if(view1.isChecked()){

tv_bantuan.setText("Bila kotak diceklis maka akan memperlihatkan kunci pertama");

Toast.makeText(HelpActivity.this, "Kotak Lihat Kunci 1", Toast.LENGTH_SHORT).show();

} else{

tv_bantuan.setText("Bila kotak tidak diceklis maka akan menyembunyikan kunci pertama");

Toast.makeText(HelpActivity.this, "Kotak Lihat Kunci 1", Toast.LENGTH_SHORT).show();

} } });

final CheckBox view2 = (CheckBox) findViewById(R.id.cb_view2_en); view2.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) { if(view2.isChecked()){

tv_bantuan.setText("Bila kotak diceklis maka akan memperlihatkan kunci kedua");

Toast.makeText(HelpActivity.this, "Kotak Lihat Kunci 2", Toast.LENGTH_SHORT).show();

} else{

tv_bantuan.setText("Bila kotak tidak diceklis maka akan menyembunyikan kunci kedua");

Toast.makeText(HelpActivity.this, "Kotak Lihat Kunci 2", Toast.LENGTH_SHORT).show();

} } });

} }

3.

AboutActivity.java

package com.example.ilmukomputer.mycipher;

import android.content.Intent; import android.os.Bundle;

import android.support.v7.app.AppCompatActivity; import android.view.View;

(10)

/**

* Created by ILMUKOMPUTER on 8/6/2016. */

public class AboutActivity extends AppCompatActivity { @Override

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

setContentView(R.layout.activity_about);

ImageButton b_back = (ImageButton) findViewById(R.id.b_back); b_back.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Intent i = new Intent(AboutActivity.this, MainActivity.class); i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

startActivity(i); }

}); } }

4.

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context="com.example.ilmukomputer.mycipher.MainActivity"

android:background="@drawable/background">

<TabHost

android:id="@+id/tabHost"

android:layout_width="match_parent"

android:layout_height="match_parent">

<LinearLayout

android:id="@+id/linearLayout"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

<TabWidget

android:id="@android:id/tabs"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="@color/colorPrimary"></TabWidget>

<FrameLayout

android:id="@android:id/tabcontent"

android:layout_width="match_parent"

android:layout_height="match_parent">

<include

android:id="@+id/layout1" layout="@layout/layout_encrypt"

android:layout_width="match_parent"

android:layout_height="match_parent"></include>

<include

android:id="@+id/layout2" layout="@layout/layout_decrypt"

android:layout_width="match_parent"

android:layout_height="match_parent"></include>

</FrameLayout> </LinearLayout> </TabHost>

</RelativeLayout>

5.

layout_encrypt.xml

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

(11)

<TextView

android:id="@+id/tv_ciphertext_en"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:hint="Pesan Tersandi"

android:background="@drawable/box"

android:gravity="left"

android:textIsSelectable="true"

android:padding="20dp"

android:layout_margin="10dp"

android:layout_below="@+id/et_key2_en"

android:layout_above="@+id/et_plaintext_en"

android:layout_alignParentEnd="true" />

<ImageButton

android:id="@+id/b_encrypt"

android:layout_width="50dip"

android:layout_height="50dip"

android:background="@drawable/ic_encrypt"

android:gravity="center"

android:layout_marginLeft="10dp"

android:layout_marginRight="10dp"

android:layout_marginBottom="10dp"

android:layout_alignParentBottom="true"

android:layout_alignParentEnd="true" />

<EditText

android:id="@+id/et_plaintext_en"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:inputType="text"

android:hint="Tulis Pesan"

android:maxLines="1"

android:minHeight="40dp"

android:background="@drawable/box"

android:gravity="center_vertical"

android:padding="10dp"

android:layout_toStartOf="@+id/b_encrypt"

android:layout_marginLeft="10dp"

android:layout_marginBottom="10dp"

android:layout_alignParentStart="true"

android:layout_alignParentBottom="true" />

<EditText

android:id="@+id/et_key1_en"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:ems="10"

android:inputType="textPassword"

android:hint="Kunci 1"

android:maxLines="1"

android:background="@drawable/box"

android:gravity="center_vertical"

android:paddingLeft="10dp"

android:paddingTop="5dp"

android:paddingBottom="5dp"

android:layout_below="@+id/b_clear_en"

android:layout_toStartOf="@+id/cb_view1_en" />

<EditText

android:id="@+id/et_key2_en"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:ems="10"

android:inputType="numberPassword"

android:hint="Kunci 2"

android:maxLines="1"

android:background="@drawable/box"

android:gravity="center_vertical"

android:paddingLeft="10dp"

android:paddingTop="5dp"

android:paddingBottom="5dp"

android:layout_marginTop="5dp"

(12)

android:layout_toStartOf="@+id/cb_view2_en"

android:layout_alignStart="@+id/et_key1_en" />

<ImageButton

android:id="@+id/b_clear_en"

android:layout_width="50dip"

android:layout_height="50dip"

android:background="@drawable/ic_clear"

android:gravity="center"

android:layout_marginBottom="10dp"

android:layout_alignParentTop="true"

android:layout_alignParentEnd="true" />

<ImageButton

android:id="@+id/b_about_en"

android:layout_width="50dip"

android:layout_height="50dip"

android:background="@drawable/ic_about"

android:gravity="center"

android:layout_toRightOf="@+id/b_help_en"

android:layout_marginBottom="10dp"

android:layout_alignParentTop="true" />

<ImageButton

android:id="@+id/b_help_en"

android:layout_width="50dip"

android:layout_height="50dip"

android:background="@drawable/ic_help"

android:gravity="center"

android:layout_alignParentStart="true"

android:layout_marginBottom="10dp"

android:layout_alignParentTop="true" />

<CheckBox

android:id="@+id/cb_view1_en"

android:layout_width="40dip"

android:layout_height="40dip"

android:gravity="center"

android:layout_below="@+id/b_clear_en"

android:layout_alignBottom="@+id/et_key1_en"

android:layout_alignParentEnd="true" />

<CheckBox

android:id="@+id/cb_view2_en"

android:layout_width="40dip"

android:layout_height="40dip"

android:gravity="center"

android:layout_below="@+id/et_key1_en"

android:layout_alignBottom="@+id/et_key2_en"

android:layout_alignParentEnd="true" />

</RelativeLayout>

6.

layout_decrypt.xml

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent">

<TextView

android:id="@+id/tv_plaintext_de"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:hint="Pesan Asli"

android:background="@drawable/box"

android:gravity="left"

android:textIsSelectable="true"

android:padding="20dp"

android:layout_margin="10dp"

android:layout_below="@+id/et_key2_de"

android:layout_above="@+id/et_ciphertext_de"

android:layout_alignParentEnd="true" />

<ImageButton

(13)

android:layout_width="50dip"

android:layout_height="50dip"

android:background="@drawable/ic_decrypt"

android:gravity="center"

android:layout_marginLeft="10dp"

android:layout_marginRight="10dp"

android:layout_marginBottom="10dp"

android:layout_alignParentBottom="true"

android:layout_alignParentEnd="true" />

<EditText

android:id="@+id/et_ciphertext_de"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:inputType="text"

android:hint="Tulis Pesan Tersandi"

android:maxLines="1"

android:minHeight="40dp"

android:background="@drawable/box"

android:gravity="center_vertical"

android:padding="10dp"

android:layout_toStartOf="@+id/b_decrypt"

android:layout_marginLeft="10dp"

android:layout_marginBottom="10dp"

android:layout_alignParentStart="true"

android:layout_alignParentBottom="true" />

<EditText

android:id="@+id/et_key1_de"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:ems="10"

android:inputType="textPassword"

android:hint="Kunci 1"

android:maxLines="1"

android:background="@drawable/box"

android:gravity="center_vertical"

android:paddingLeft="10dp"

android:paddingTop="5dp"

android:paddingBottom="5dp"

android:layout_below="@+id/b_clear_de"

android:layout_toStartOf="@+id/cb_view1_de" />

<EditText

android:id="@+id/et_key2_de"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:ems="10"

android:inputType="numberPassword"

android:hint="Kunci 2"

android:maxLines="1"

android:background="@drawable/box"

android:gravity="center_vertical"

android:paddingLeft="10dp"

android:paddingTop="5dp"

android:paddingBottom="5dp"

android:layout_marginTop="5dp"

android:layout_below="@+id/et_key1_de"

android:layout_toStartOf="@+id/cb_view2_de"

android:layout_alignStart="@+id/et_key1_de" />

<ImageButton

android:id="@+id/b_clear_de"

android:layout_width="50dip"

android:layout_height="50dip"

android:background="@drawable/ic_clear"

android:gravity="center"

android:layout_marginBottom="10dp"

android:layout_alignParentTop="true"

android:layout_alignParentEnd="true" />

<ImageButton

android:id="@+id/b_about_de"

android:layout_width="50dip"

(14)

android:background="@drawable/ic_about"

android:gravity="center"

android:layout_toRightOf="@+id/b_help_de"

android:layout_marginBottom="10dp"

android:layout_alignParentTop="true" />

<ImageButton

android:id="@+id/b_help_de"

android:layout_width="50dip"

android:layout_height="50dip"

android:background="@drawable/ic_help"

android:gravity="center"

android:layout_alignParentStart="true"

android:layout_marginBottom="10dp"

android:layout_alignParentTop="true" />

<CheckBox

android:id="@+id/cb_view1_de"

android:layout_width="40dip"

android:layout_height="40dip"

android:gravity="center"

android:layout_below="@+id/b_clear_de"

android:layout_alignBottom="@+id/et_key1_de"

android:layout_alignParentEnd="true" />

<CheckBox

android:id="@+id/cb_view2_de"

android:layout_width="40dip"

android:layout_height="40dip"

android:gravity="center"

android:layout_below="@+id/et_key1_de"

android:layout_alignBottom="@+id/et_key2_de"

android:layout_alignParentEnd="true" />

</RelativeLayout>

7.

activity_help.xml

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context="com.example.ilmukomputer.mycipher.HelpActivity"

android:background="@drawable/background">

<ImageButton

android:id="@+id/b_back"

android:layout_width="50dip"

android:layout_height="50dip"

android:background="@drawable/ic_back"

android:gravity="center"

android:layout_marginBottom="10dp"

android:layout_alignParentStart="true"

android:layout_alignParentTop="true" />

<TextView

android:id="@+id/tv_menu_bantuan"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Menu Bantuan"

android:textSize="50sp"

android:layout_marginBottom="20dp"

android:layout_below="@+id/b_back"

android:layout_centerHorizontal="true" />

<Button

android:id="@+id/b_penggunaan"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Penggunaan"

android:layout_below="@+id/tv_menu_bantuan"

android:layout_alignParentStart="true"

android:minHeight="90dp" />

(15)

android:id="@+id/b_algoritma"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Algoritma"

android:layout_below="@+id/b_penggunaan"

android:layout_alignParentStart="true"

android:layout_alignEnd="@+id/b_penggunaan"

android:minHeight="90dp" />

<TextView

android:id="@+id/tv_bantuan"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:text="Penjelasan"

android:layout_marginRight="10dp"

android:padding="20dp"

android:gravity="center"

android:background="@drawable/box"

android:layout_alignBottom="@+id/b_algoritma"

android:layout_toEndOf="@+id/b_penggunaan"

android:layout_below="@+id/tv_menu_bantuan"

android:layout_marginTop="10dp"

android:layout_marginBottom="10dp" />

<FrameLayout

android:id="@android:id/tabcontent"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_below="@+id/tv_bantuan"

android:layout_alignParentBottom="true"

android:layout_toEndOf="@+id/b_penggunaan"

android:padding="20dp"

android:layout_marginRight="10dp"

android:layout_marginBottom="10dp"

android:background="@drawable/box"> <include

android:id="@+id/layout3" layout="@layout/layout_encrypt"

android:layout_width="wrap_content"

android:layout_height="wrap_content"></include> </FrameLayout>

</RelativeLayout>

8.

activity_about.xml

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context="com.example.ilmukomputer.mycipher.AboutActivity"

android:background="@drawable/background">

<ImageButton

android:id="@+id/b_back"

android:layout_width="50dip"

android:layout_height="50dip"

android:background="@drawable/ic_back"

android:gravity="center"

android:layout_marginBottom="10dp"

android:layout_alignParentStart="true"

android:layout_alignParentTop="true" />

<TextView

android:id="@+id/tv_menu_tentang"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Tentang Aplikasi"

android:textSize="50sp"

android:layout_below="@+id/b_back"

android:layout_centerHorizontal="true" />

<ImageView

android:id="@+id/iv_cover"

(16)

android:layout_height="fill_parent"

android:layout_marginLeft="20dp"

android:layout_marginRight="20dp"

android:layout_centerHorizontal="true"

android:layout_below="@+id/tv_menu_tentang"

android:src="@drawable/cover" />

(17)

CURRICULUM VITAE

DATA PRIBADI

PENDIDIKAN FORMAL

1999

2000

TK Angkasa Lanud Padang

2000

2004

SD An-Nur Pekanbaru

2004

2006

SD Angkasa 1 Lanud Padang

2006

2009

SMPN 7 Padang

2009

2010

SMAN 10 Padang

2010

2012

SMAN 4 Pekanbaru

2012

sedang berlangsung

Universitas Sumatera Utara

Program Studi : S1 IlmuKomputer

KEMAMPUAN

Programming

C++, C#, Java

Database

MySQL

Bahasa

Indonesia, Inggris

Nama Lengkap

Faisal Ridho

Jenis Kelamin

121401055

Tempat, Tanggal Lahir

Medan, 25 Mei 1994

Agama

Islam

Alamat

Jl. Jermal VII Komp. Graha Jermal A.20

No.HP

081269946242

E-mail

buatkirimtugas@gmail.com

Referensi

Dokumen terkait

19660414198803 1 009 Pengertian Proses kegiatan yang meliputi penyiapan obat untuk penderita Tujuan Agar pasien mendapat obat sesuai dengan resep dokter/paramedis.. dari

Bagian / Departemen / Instalasi Kedokteran Forensik dan Medikolegal merupakan sarana untuk memberi pelayanan kedokteran forensik dan medikolegal,

Berdasarkan observasi yang dilakukan pada 3 Mei 2013 di kelas VIII MTs Negeri Sleman Kota, diperolah hasil bahwa sebagaian besar siswa tidak dapat mengatur

Ilmu, dalam pengertian akuntansi biaya merupakan hal yang dapat dipelajari dan tentu saja telah memenuhi kaidah-kaidah tertentu untuk dapat diakui sebagai suatu disiplin ilmu;

Data yang diperoleh dalam penelitian ini merupakan data primer yaitu menggunakan kuisioner yang diberikan kepada 37 ibu yang telah memberikan MP-ASI pada bayi

Berpijak dari rumusan masalah tersebut, maka tujuan tujuan dari penelitian ini adalah untuk: pertama , mengetahui efektivitas penggunaan multimedia interaktif berbasis flash

Skripsi Brillian Rosy dengan judul “Pelaksanaan Penilaian Kinerja Pegawai Puskesmas Demangan Kecamatan Taman Kota Madiun”. Berdasarkan hasil penelitian dapat

Kondisi SM Rimbang Baling sangat memprihatinkan saat ini, dan sangat disayangkan jika pada akhirnya, pemasalahan yang terjadi di kawasan konservasi menyebabkan