Anda di halaman 1dari 30

UNIVERSITAS GUNADARMA

PROJECT SISTEM KEAMANAN KOMPUTER

MANUAL BOOK
“KriptoGraf”
Kelompok :
Nama : Reezky Illmawati (57415601)
Luky Ilyas S (53415880)
Rizqy Fitrianto (56415216)
Reffy Ferdiyatno (55415717)
Rico Chandra (55415917)
Roki Pratama (56415247)
Kelas : 3IA26
Fakultas : Teknologi Industri
Jurusan : Teknik Informatika
Dosen : Dr. HENNY MEDYAWATI, SKom,MM.

Ditulis Guna Melengkapi Nilai


Sistem Keamanan Komputer

UNIVERSITAS GUNADARMA
2017-2018

0
KATA PENGANTAR

Puji dan syukur kami panjatkan kehadirat Allah SWT, karena dengan rahmat dan
karunia-Nya kami dapat menyelesaikan makalah ini dengan baik. Manual Book ini disusun
untuk memenuhi tugas “Sistem Keamanan Komputer” .

Penyusun juga mengucapkan terimakasih kepada dosen yang telah memberikan


arahan kepada kami dalam menyelesaikan tugas ini. Kami berharap semoga para pembaca
dapat mempelajari isi dari manual book ini. Penyusunan manual book ini, kita ketahui belum
sempurna. Oleh karena itu, semua kritik, saran, atau pendapat akan diterima dengan terbuka.

Walaupun manual book ini mempunyai kelebihan dan kekurangannya. Oleh karena
itu, kami mengharapkan saran,kritik, dan pendapat yang membangun untuk kesempurnaan
makalah ini .

Terimakasih

Jakarta, Juni 2018

Penyusun

1
DAFTAR ISI

KATA PENGANTAR 1

DAFTAR ISI 2

BAB I PENDAHULUAN

1.1 Latar Belakang 3


1.2 Tujuan 3
1.3 Ruang Lingkup 3

BAB II LANDASAN TEORI

2.1 Prinsip Kerja Kriptografi 4

2.2 Tujuan Kriptografi 5

2.3 Proses Enkripsi 6

2.4 Proses Deskripsi 9

BAB III PEMBAHASAN

3.1 Android Studio 11

3.2 Substitusi 12

3.3 Caesar Chipper 12

3.4 ROT 13 13

3.5 Langkah- Langkah Pembuatan 14

BAB IV PENUTUP

4.1 Kesimpulan 26

4.2 Saran 26

DAFTAR PUSTAKA 27

LAMPIRAN 28

2
BAB I

PENDAHULUAN

1.4 Latar Belakang


Perkembangan teknologi saat ini yang semakin pesat maka proses pengiriman data
dapat dilakukan dengan mudah dan melalui berbagai macam media yang ada. Antara lain,
memalui media internet dengan melakukan fasilitas email, melalui transfer data antar
perangkat mobile (Handphone, PDA, Flash Disk) maupun dengan teknologi radio
frequency hingga dengan menggunakan jaringan komputer.
Proses perkembangan yang pesat dalam proses pengiriman data membawa dampak
yang sangat besar, yaitu masalah kemanan data yang di kirim. untuk itu, tidak mungkin
mengirim data melalui media – media tersebut secara polos (plain), melainkan harus
dilakukan proses pengamanan untuk data yang akan dikirim, salah satunya dengan cara
melakukan enkripsi pada data tersebut.
Metode pengamanan data yang digunakan adalah kriptografi, kriptografi merupakan
salah satu pengamanan data yang dapat digunakan untuk menjaga kerahasiaan data, serta
keaslian pengirim. Dalam makalah ini akan diulas aplikasi kriptografi dengan metode
Substitusi (Tabel subsitusi,Caesar Chipher,ROT 13) dengan tujuan meningkatkan
keamanan data agar informasi yang bersifat rahasia di-enkripsi terlebih dahulu sebelum
dikirim melalui internet agar tidak dapat di ketahui, di modifikasi atau dimanfaatkan oleh
orang lain yang tidak berkepentingan.
1.5 Tujuan
Tujuan dari project ini adalah untuk mempermudah dilakukannya Enkripsi dan
Dekripsi dari suatu pesan dengan dibuatnya sebuah aplikasi sederhana berbasis Android.
Cara kerja dari aplikasi ini adalah pertama masukkan pesan yang ingin di Enkripsi lalu
masukkan kunci yang ingin dijadikan sebagai Cipher dan kemudian pesan yang
dimasukkan tadi akan dicetak hasil Enkripsinya dan begitupun juga pada saat hasil
Enkripsinya di Dekripsi. Dalam pembuatan aplikasi ini menggunakan program Android
Studio versi 3.1.1.
1.6 Ruang Lingkup
Berdasarkan latar belakang diatas, pada manual book ini hanya membahas mengenai
aplikasi kriptografi dengan metode substitusi (Tabel Substitusi, Caesar Chipper, dan
ROT13).

3
BAB II

LANDASAN TEORI

2.1 Prinsip Kerja Kriptografi

Kriptografi adalah ilmu yang mempelajari bagaimana membuat suatu pesan yang
dikirim pengirim dapat disampaikan kepada penerima dengan aman. Ilmu kriptografi adalah
ilmu yang mempelajari tentang penyembunyian huruf atau tulisan sehingga membuat tulisan
tersebut tidak dapat dibaca oleh orang yang tidak berkepentingan. Kriptografi sudah dipakai
sejak jaman Julius Caesar dimana akan mengirimkan pesan kepada panglimanya tetapi tidak
mempercayai kurir pembawa pesan tersebut. Kriptografi mempunyai 2 (dua) bagian yang
penting, yaitu enkripsi dan dekripsi. Enkripsi adalah proses dari penyandian pesan asli
menjadi pesan yang tidak dapat diartikan seperti aslinya. Dekripsi sendiri berarti merubah
pesan yang sudahdisandikan menjadi pesan aslinya. Pesan asli biasanya disebut plaintext,
sedangkan pesan yang sudah disandikan disebut ciphertext. Kriptografi dapat memenuhi
kebutuhan umum suatu transaksi:

1. Kerahasiaan (confidentiality) dijamin dengan melakukan enkripsi


2. (penyandian).
3. Keutuhan (integrity) atas data-data pembayaran dilakukan dengan fungsi hash satu
arah.
4. Jaminan atas identitas dan keabsahan (authenticity) pihak-pihak yang melakukan
transaksi dilakukan dengan menggunakan password atau sertifikat digital. Sedangkan
keotentikan data transaksi dapat dilakukan dengan tanda tangan digital.
5. Transaksi dapat dijadikan barang bukti yang tidak bisa disangkal (nonrepudiation)
dengan memanfaatkan tanda tangan digital dan sertifikat digital. Pembakuan
penulisan pada kriptografi dapat ditulis dalam bahasa matematika. Fungsi-fungsi yang
mendasar dalam kriptografi adalah enkripsi dan dekripsi. Enkripsi adalah proses
mengubah suatu pesan asli (plaintext) menjadi suatu pesan dalam bahasa sandi
(ciphertext).

C = E (M)

dimana

4
M = pesan asli

E = proses enkripsi

C = pesan dalam bahasa sandi (untuk ringkasnya

disebut sandi)

Sedangkan dekripsi adalah proses mengubah pesan dalam suatu bahasa sandi menjadi
pesan asli kembali.

M = D (C)

D = proses dekripsi

Umumnya, selain menggunakan fungsi tertentu dalam melakukan enkripsi dan


dekripsi, seringkali fungsi itu diberi parameter tambahan yang disebut dengan istilah
kunci.

2.2 Tujuan Kriptografi

Seperti juga perkembangan ilmu kriptografi, tujuan-tujuan dari kriptografi terus


berkembang. Bila pertama kali dibuat hanya untuk keamanan data saja, tetapi sekarang
semakin

banyak tujuan-tujuan yang ingin dicapai, yaitu:

1. Privasi, Musuh tidak dapat membongkar tulisan yang kita kirim.


2. Autentikasi, Penerima pesan dapat meyakinkan dirinya bahwa pesan yang diterima
tidak terjadi perubahan dan berasal dari orang yang diinginkan.
3. Tanda tangan, penerima pesan dapat meyakinkan pihak ketiga bahwa pesan yang
diterima berasal dari orang yang diinginkan.
4. Minimal, Tidak ada yang dapat berkomunikasi dengan pihak lain kecuali
berkomunikasi dengan pihak yang diinginkan.
5. Pertukaran bersama, suatu nilai (misalnya tanda tangan sebuah kontrak) tidak akan
dikeluarkan sebelum nilai lainnya (misalnya tanda tangan pihak lain) diterima.
6. Koordinasi, di dalam komunikasi dengan banyak pihak, setiap pihak dapat
berkoordinasi untuk tujuan yang sama walaupun terdapat kehadiran musuh.

5
2.3 Proses Enkripsi

Enkripsi data merupakan bagian awal dari proses pengamanan data. Dalam proses
enkripsi ini data yang asli akan dilakukan proses pengacakan dengan algoritma yang sudah
ditentukan. Salah satu hal yang penting dalam komunikasi menggunakan computer untuk
menjamin kerahasiaan data adalah Enkripsi. Enkripsi adalah sebuah proses yang melakukan
perubahan sebuah kode yang bisa dimengerti menjadi sebuah kode yang tidak dapat
dimengerti (tidak terbaca).

Enkripsi dapat diartikan sebagai kode atau chiper. Sebuah system pengkodean
menggunakan suatu table atau kamus yang telah didefinisikan untuk mengganti kata dari
informasi atau yang merupakan bagian dari informasi yang dikirim. Sebuah chiper
mengunakan suatu algoritma yang dapat mengkodekan semua aliran data (stream) bit dari
sebuah pesan menjadi cryptogram yang tidak dimengerti (unintelligible). Karena teknik
chiper merupakan suatu system yang telah siap untuk di automasi, maka teknik ini digunakan
dalam system keamanan computer dan jaringan. Enkripsi dimaksudkan untuk melindungi
informasi agar tidak terlihat oleh orang atau pihak yang tidak berhak. Informasi ini dapat
berupa nomor kartu kredit, catatan penting dalam komputer, maupun password untuk
mengakses sesuatu. Masalah kerahasiaan ini sudah ada jauh sebelum adanya computer. Julius
Caesar, yang khawatir jangan sampai pesan untuk para jenderalnya jatuh ke tangan musuh,
maka ia menggunakan metode enkripsi sederhana dengan menggeser huruf pada abjad
dengan nilai tertentu. Sederhana memang, namun pada waktu itu sudah memadai. Sepanjang
sejarah pembentukan kode dan pemecahannya selalu mendapat perhatian khusus dalam
operasi militer. Penggunaan computer untuk pertama kalinya dalam kriptografi merupakan
usaha untuk memecahkan kode enigma Nazi sewaktu Perang Dunia II. Kini, pada zaman
modern, adanya computer memungkinkan kita menghasilkan kode yang kompleks, dan
sebaliknya pula dapat digunakan untuk memecahkannya.

E-commerce adalah industri lain yang sangat intensif memanfaatkan kriptografi.


Dengan meng-enkrip paket data yang lalu lalang di internet, walaupun seseorang dapat

6
menangkap paket-paket data tersebut, tetap saja ia tidak dapat memahamin artinya. Enkripsi
juga digunakan untuk verifikasi, maksudnya bila mendownload software, kita akan tahu
bahwa software yang kita download adalah yang asli, bukannya yang telah dipasangkan
Trojan di dalamnya. Dalam hal ini terdapat tiga kategori enkripsi, yaitu :

1. Kunci enkripsi rahasia, artinya terdapat sebuah kunci yang digunakan untuk
mengenkripsi dan juga sekaligus mendekripsikan informasi
2. Kunci enkripsi public, artinya dua kunci digunakan satu untuk proses enkripsi dan
yang lain untuk proses dekripsi.
3. Fungsi one-way, atau fungsi satu arah adalah suatu fungsi dimana informasi
dienkripsi untuk menciptakan “signature” dari informasi asli yang bisa digunakan
untuk keperluan autentikasi.

Tampilan ini meminta pemakai untuk memasukan nama file yang akan dienkripsi.
Adapun langkah-langkah proses enkripsi adalah :

1. Proses enkripsi dilakukan setelah menginputkan file yang akan dienkripsi dan
menginput kunci / key pada text key.
2. Form enkripsi data ditampilkan setelah tombol Enkripsi di pilih.

7
3. Frame Text Area berfungsi untuk menampilkan informasi dari file file sumber / asal
yang akan dilakukan enkripsi.
4. Edit Text berfungsi untuk menginput kata yang akan di enkripsi.
5. Tombol enkripsi berfungsi untuk melakukan proses perubahan / enkripsi dari plaintext
menjadi ciphertext.
6. Proses enkripsi dilakukan setelah menginputkan type file yang akan dienkripsi dan
menginput kunci / key pada text key.

Kode program enkripsi adalah sebagai berikut :

8
2.4 Proses Deskripsi

Proses dekripsi merupakan proses yang dilakukan untuk mengembalikan file dari
bentuk simbol-simbol kembali ke bentuk semula .

Tampilan ini meminta pemakai untuk memasukan nama file yang akan di deskripsi
Adapun langkah-langkah proses deskripsi adalah :

1. Form dekripsi data ditampilkan setelah tombol deskripsi diklik


2. Frame Text Area berfungsi untuk menampilkan informasi dari file file sumber /
asal yang akan dilakukan dekripsi.
3. Edit Text berfungsi untuk menginput kata yang akan di deskripsi
4. Tombol dekripsi berfungsi untuk melakukan proses perubahan / dekripsi dari
ciphertext menjadi plaintext.
5. Proses dekripsi dilakukan setelah menginputkan type file yang akan dideskripsi
dan menginput kunci / key pada text key.

9
Kode program untuk proses dekripsi adalah sebagai berikut :

10
BAB III

PEMBAHASAN

3.1 Android Studio

Android Studio adalah Integrated Development Environment (IDE) resmi untuk


pengembangan aplikasi Android, berdasarkan IntelliJ IDEA. Android berubah
menjadi platform yang begitu cepat dalam melakukan inovasi. Hal ini tidak lepas dari
pengembangan utama dibelakangnya, yaitu Google. Googlelah yang mengakuisisi
Android dan kemudian membuatkan sebuah platform. Platform android terdiri dari
Sistem Operasi berbasis Linux, sebuah GUI (Graphic User Interface), sebuah web
browser dan Aplikasi End-User yang dapat di download dan juga para pengembang
bisa dengan leluasa berkarya serta menciptakan aplikasi yang terbaik dan terbuka
untuk digunakan oleh berbagai macam perangkat.

3.2 Tabel Substitusi

Tabel substitusi dapat dibuat sesuka hati, dengan catatan bahwa penerima pesan
memiliki tabel yang sama untuk keperluan dekripsi.
Enkripsi Tabel Substitusi Deskripsi Tabel Substitusi

11
3.3 Caesar Chipper

Pada prinsipnya, setiap huruf digantikan dengan huruf yang berada tiga (3) posisi
dalam urutan alfabet. Sebagai contoh huruf “a” digantikan dengan huruf “D” dan
seterusnya.
Enkripsi Caesar Chipper Deskripsi Caesar Chipper

12
3.4 ROT 13

Pada sistem ini sebuah huruf digantikan dengan huruf yang letaknya 13 posisi
darinya. Sebagai contoh, huruf “A” digantikan dengan huruf “N”, huruf “B”
digantikan dengan huruf “O”, dan seterusnya.
Enkripsi ROT13 Deskripsi ROT13

13
3.5 Langkah-langkah Pembuatan

Langkah pertama adalah buka program Android Studio lalu pilih New Project.

14
15
MainActivity.java

Setelah selesai membuat Project., defaultnya akan terdapat file MainActivity.java


pada app > java . Main Activity.java digunakan untuk memberikan fungsi button dan
memanggil fungsi pada Caesar.java

package com.example.reezkyillma.kriptografi;

import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.ArrayAdapter;
import android.widget.ImageButton;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Spinner;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {


ImageButton pindah;

16
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

final Spinner keySpinner = (Spinner)


findViewById(R.id.spnr_keys);
ArrayAdapter<CharSequence> adapter =
ArrayAdapter.createFromResource(this,
R.array.keys_array,
android.R.layout.simple_spinner_item);

adapter.setDropDownViewResource(android.R.layout.simple_spinner_drop
down_item);
keySpinner.setAdapter(adapter);
final ImageButton bEncrypt = (ImageButton)
findViewById(R.id.bttn_encrypt);
final ImageButton bDecrypt = (ImageButton)
findViewById(R.id.bttn_decrypt);
EditText etText = (EditText) findViewById(R.id.et_text);
final TextView tvResult = (TextView)
findViewById(R.id.tv_result);
bEncrypt.setOnClickListener(
new View.OnClickListener() {
public void onClick(View v) {
String in = ((EditText)
findViewById(R.id.et_text)).getText().toString();
String out = Caesar.encrypt(in,
keySpinner.getSelectedItemPosition() - 1);
tvResult.setText(out);
View view = getCurrentFocus();
if (view != null) {
InputMethodManager imm =
(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);

imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}
});
bDecrypt.setOnClickListener(
new View.OnClickListener() {
public void onClick(View v) {
String in = ((EditText)
findViewById(R.id.et_text)).getText().toString();
String out = Caesar.decrypt(in,
keySpinner.getSelectedItemPosition() - 1);
tvResult.setText(out);

17
View view = getCurrentFocus();
if (view != null) {
InputMethodManager imm =
(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);

imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}
});

}
}

Activity_Main.xml

Activity Main.xml digunakan untuk membuat layout/ tampilan pada aplikasi kriptografi

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


<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:background="@drawable/bgg"
android:fillViewport="true" >
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity">

<ImageView
android:layout_width="113dp"
android:layout_height="17dp"
android:layout_alignParentTop="true"
android:layout_alignStart="@+id/et_text"
android:layout_marginTop="155dp"
android:background="@drawable/enter" />

<ImageView
android:layout_width="242dp"
android:layout_height="64dp"
android:layout_alignParentTop="true"

18
android:layout_centerHorizontal="true"
android:layout_marginTop="64dp"
android:background="@drawable/krippp" />

<EditText
android:id="@+id/et_text"
android:layout_width="341dp"
android:layout_height="62dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="174dp"
android:hint="@string/et_hint_text"
android:maxLines="1"
android:textColor="#000"
android:textColorHighlight="#000"
android:textColorHint="#000" />

<LinearLayout
android:id="@+id/ll_key"
android:layout_width="191dp"
android:layout_height="38dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="252dp"
android:orientation="horizontal">

<ImageView
android:layout_width="40dp"
android:layout_height="21dp"
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="@drawable/key" />

<Spinner
android:id="@+id/spnr_keys"
android:layout_width="107dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" />

</LinearLayout>

<RelativeLayout
android:id="@+id/rl_buttons"

19
android:layout_width="wrap_content"
android:layout_height="55dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="291dp">

<ImageButton
android:id="@+id/bttn_encrypt"
android:layout_width="129dp"
android:layout_height="44dp"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_marginStart="16dp"
android:background="@drawable/enkripsi"
android:foregroundGravity="center" />

<ImageButton
android:id="@+id/bttn_decrypt"
android:layout_width="126dp"
android:layout_height="36dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="36dp"
android:background="@drawable/deskripsi"
android:foregroundGravity="center" />

</RelativeLayout>

<LinearLayout
android:id="@+id/ll_results"
android:layout_width="357dp"
android:layout_height="119dp"
android:layout_alignParentBottom="true"
android:layout_alignStart="@+id/tv_instructions"
android:layout_marginBottom="62dp"
android:background="#ffff"
android:gravity="center"
android:padding="15dp">

<TextView
android:id="@+id/tv_result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textIsSelectable="true"
android:textSize="20sp" />

</LinearLayout>

20
</RelativeLayout>

</ScrollView>

SpkashScreen.java

SplashScreen.java digunakan untuk memberikan fungsi untuk splashscreen.

package com.example.reezkyillma.kriptografi;

import android.content.Intent;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ProgressBar;

public class SplashScreen extends AppCompatActivity {

private static int progress = 0;


private int status = 0;
ProgressBar progressBar;
Handler handler = new Handler();

@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);

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

progressBar = (ProgressBar)findViewById(R.id.progressBar1);
new Thread(new Runnable() {
@Override
public void run() {
while(status < 100) {
status = loading();
handler.post(new Runnable() {
@Override
public void run() {

21
progressBar.setProgress(status);
}
});
}
handler.post(new Runnable() {
@Override
public void run() {
Intent pindah = new
Intent(SplashScreen.this,
MainActivity.class);
startActivity(pindah);
finish();
}
});
}
public int loading() {
try {
Thread.sleep(50);
} catch (
InterruptedException ie) {
ie.printStackTrace();
} return ++progress;
}
}).start();
}
}
SplashScreen.xml

SplashScreen.xml digunakan untuk mengatur layout atau tampilan pada splash screen
seperti memesukkan image pada tampilan tersebut.

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


<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bgsp"
tools:context=".SplashScreen">

<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="376dp"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true"

22
android:layout_marginBottom="21dp"
android:layout_marginStart="0dp" />

<ImageView
android:layout_width="268dp"
android:layout_height="48dp"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
android:layout_marginEnd="45dp"
android:layout_marginTop="69dp"
android:background="@drawable/kripp" />

<ImageView
android:layout_width="155dp"
android:layout_height="168dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="144dp"
android:background="@drawable/logoo" />

<ImageView
android:layout_width="155dp"
android:layout_height="222dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="146dp"
android:background="@drawable/kunci" />

</RelativeLayout>

Caesar.java

Caesar.java digunakan untuk mendeklarasikan key,button enkripsi dan button


deskripsi yang akan digunakan pada aplikasi kriptografi.

package com.example.reezkyillma.kriptografi;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class Caesar {


private static ArrayList<Character> ALPHABET;

static {
ArrayList<Character> temp = new ArrayList<Character>();

23
for (int i = 0; i < 26; i++) {
temp.add((char) ('A' + i));
}
ALPHABET = temp;
}

public static String encrypt(String text, int key) {


if (key < 0) {
return encryptGeneral(text);
}
text = text.toUpperCase();
String result = "";
for (int i = 0; i < text.length(); i++) {
if (ALPHABET.contains(text.charAt(i))) {
result +=
ALPHABET.get((ALPHABET.indexOf(text.charAt(i))
+ (26 - key)) % 26);
} else {
result += text.charAt(i);
}
}
return result;
}

public static String encryptGeneral(String text) {


String result = "";
for (int i = 0; i < 26; i++) {
result += "KEY: " + i + " - " + encrypt(text, i) + "\n";
}
return result;
}

public static String decrypt(String text, int key) {


if (key >= 0) {
return decryptSpecific(text, key);
}
String result = "";
for (int i = 0; i < 26; i++) {
result += "KEY: " + i + " - ";
result += decryptHelper(text, i);
result += "\n";
}
return result;
}

public static String decryptSpecific(String text, int key) {


return decryptHelper(text, key);
}

24
private static String decryptHelper(String text, int key) {
text = text.toUpperCase();
String result = "";
for (int i = 0; i < text.length(); i++) {
if (ALPHABET.contains(text.charAt(i))) {
result +=
ALPHABET.get((ALPHABET.indexOf(text.charAt(i))
+ key) % 26);
} else {
result += text.charAt(i);
}
}
return result;
}
}
Code Program yang dibutuhkan untuk Aplikasi Kriptografi sudah dimasukkan semua
dan aplikasi bisa dirunning dengan cara menghubungkan ponsel Android ke PC dengan kabel
USB, namun sebelumnya ponsel Android harus dibuka dulu Developer Options dan USB
Debugging sudah di Enable. Atau bisa juga dirunning dengan Emulator Android yang
terinstall di PC seperti Nox, dan BlueStack. Jika sudah dihubungkan dengan Ponsel Android
atau sudah membuka Emulator Android, tekan button Run yang berada di bagian Toolbar
atas layar dan terakhir pilih Device Android yang sudah kita persiapkan.

25
BAB IV

PENUTUP

4.1 Kesimpulan

Kriptografi sederhana Tabel Substitusi yaitu Tabel substitusi dapat dibuat sesuka hati,
dengan catatan bahwa penerima pesan memiliki tabel yang sama untuk keperluan dekripsi.

Kriptografi sederhana Metode Caesar Sistem sandi Caesar ini dilakukan dengan
menggeser deretan huruf (alfabet) tiga langkah kedepan guna mendapatkan alfabet baru yang
digunakan untuk mengirimkan pesan rahasia.

Kriptografi sederhana Metode ROT13 Pada sistem ini sebuah huruf digantikan
dengan huruf yang letaknya 13 posisi darinya. Sebagai contoh, huruf “A” digantikan dengan
huruf “N”, huruf “B” digantikan dengan huruf “O”, dan seterusnya.

4.2 Saran

Meskipun perancangan program enkripsi,dekripsi dan tahapan implementasi telah


memenuhi kebutuhan proses pengamanan data namum aplikasi perlu dilakukan
pengembangan agar lebih sempurna lagi

26
DAFTAR PUSTAKA

http://informatika.stei.itb.ac.id/~rinaldi.munir/Kriptografi/2017-
2018/Algoritma%20Kriptografi%20Klasik_bag1%20(2018).pdf(diakses pada tanggal 1 Juni
2018 pukul 15.10 WIB)

http://dinus.ac.id/repository/docs/ajar/Kriptografi_%232.pdf(diakses pada tanggal 1 Juni


2018 pukul 15.10 WIB)

http://staffsite.stimata.ac.id/assets/uploads/files/download/efb95-ki-02.pdf(diakses pada
tanggal 1 Juni 2018 pukul 15.10 WIB)

https://balianzahab.wordpress.com/teknologi-informasi/proses-enkripsi-dan-
deskripsi/(diakses pada tanggal 1 Juni 2018 pukul 15.10 WIB)

http://tugaskuliah-esti.blogspot.com/2011/10/makalah-kriptografi.html(diakses pada tanggal


1 Juni 2018 pukul 15.10 WIB)

27
LAMPIRAN

28
29

Anda mungkin juga menyukai