LISTING PROGRAM. TabHost tab = (TabHost) findviewbyid(r.id.tabhost); tab.setup();

dokumen-dokumen yang mirip
Penggunaan Button di Android

Listing Program. //mengeset nama tab dan mengisi content pada menu tab anda. tabhost.addtab(spec);

Tutorial Aplikasi Android Sederhana dengan Action Button

Cara Membuat Aplikasi Android Sederhana Menggunakan Eclipse

PERTEMUAN KE 7 Broadcast Receiver dan Services

Aplikasi Mobile Informasi Pengenalan Profil Pahlawan Tingkat Dasar di Indonesia Menggunakan Java Berbasis Android

Membuat list dengan RecylerView dan dependency injection ButterKniffe

UNIVERSITAS KOMPUTER INDONESIA

PAPB-C. Yang harus dipersiapkan: 1. Eclipse 2. AVD/GenieMotion 3. JDK Membuat Android Application Project Baru

Modul Pengembangan Aplikasi Android Berbasis Client- Server Aplikasi sederhana android Versi 1.0

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR

LAYOUT MENU UTAMA. <Button android:text="zakat Profesi" android:layout_width="wrap_content"

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR

[Pelatihan Pemrograman Android]

Membuat Spash Screen

Praktikum VI Activity dan Intent

Variabel dan tipe data

Membuat preferensi atau pengaturan pada aplikasi android

Android - Apa itu.this dan.class

Tutorial berikut akan mengajarkan rekan-rekan cara membuat kalkulator sederhana di android.

Custom Button pada Android Februari 2012 Tingkat: Oleh : Feri Djuandi Pemula Menengah Mahir Platform : Android 2.3, Eclipse

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR

public class MainActivity extends Activity implements AdapterView.OnItemClickListener{

PERTEMUAN KE 4 Representasi Data (ListView dan Spinner)

Cara membuat Aplikasi Android : CheckBox dengan Eclipse

Praktikum IV Komponen UI (Radio Button, CheckBox dll)

Praktikum XI Animasi dan Multimedia

Membuat tab menu di aplikasi android

UNIVERSITAS KOMPUTER INDONESIA

Praktikum 9 Pemprograman Android GUI 2 Layar

Lecture Notes

Membuat Alert Dialog Pada Android

PROGRAM STUDI D3 JURUSAN TEKNIK KOMPUTER POLITEKNIK NEGERI SRIWIJAYA PALEMBANG Pemrograman Berorientasi Objek 3 (Mobile And Web Programming)

Membuat Interface Dinamis Menggunakan FrameLayout

UNIVERSITAS KOMPUTER INDONESIA

DAFTAR PUSTAKA. Binanto, I., multimedia digital-dasar teori dan pengembangannya, yogyakarta.

BAB 3 XML LAYOUT, BASIC WIDGET DAN SELECTION WIDGET

Cara Membuat Layout Dynamic di Android

PEMROGRAMAN MOBILE PRAKTIKUM 11 ( DATABASE II ) Disusun oleh : CYNTHIA STEFFI CLIFF SI 12 A

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR

BAB IV IMPLEMENTASI DAN PENGUJIAN

LAMPIRAN PROGRAM. import android.content.intent; import android.support.v7.app.appcompatactivity; import android.os.bundle; import android.view.

TUTORIAL PEMBUATAN APLIKASI SEDERHANA TOUCH AND GESTURE PADA ANDROID

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR

Cara Membuat Background Dinamis di Android

DAFTAR PUSTAKA. Adisasmita, Rahardjo Manajemen Pemerintah Daerah. Yogyakarta: Penerbit Graha Ilmu.

Program Database Sederhana di Android Desember 2011 Tingkat: Oleh : Feri Djuandi Pemula Menengah Mahir Platform : Android 2.

MODUL 10 KOMPONEN GUI ANDROID

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR

UNIVERSITAS KOMPUTER INDONESIA

UNIVERSITAS KOMPUTER INDONESIA

MODUL 14 INTERKONEKSI CLIENT-SERVER ANDROID

Daftar Pustaka. Irawan Aplikasi Android dengan Eclipse.Palembang:H.Abdul Rozak

ANDROID FOR BEGINNER MODUL 2

Memiih Penyimpanan Internal atau External

Praktikum XI Animasi dan Multimedia

Praktikum 3 Create a Simple Calculator Program

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR

BAB V KESIMPULAN DAN SARAN. besar dari perbandingan perhitungan manual dan program adalah 1,4473 %. Selisih

Penulis. Bagi anda yang mencari referensi buku, berikut ini buku yang sangat saya rekomendasikan sebagai panduan belajar.

BAB IV IMPLEMENTASI DAN PENGUJIAN

MODUL 13 KOMPONEN GUI ANDROID

MOBILE PROGRAMMING. Oleh : CHALIFA CHAZAR

LAMPIRAN A. Universitas Sumatera Utara

UNIVERSITAS KOMPUTER INDONESIA

Latihan 1 Menghitung Luas Persegi Panjang

DAPATKAN SEGERAA!!!!! PERSEDIAAN TERBATASS!

BAB 5 Android Event Handling Mahardeka Tri Ananta

Pertemuan 2. Pemrograman Mobile. 3 SKS Semester 7 S1 Sistem Informasi. Nizar Rabbi Radliya

DAFTAR PUSTAKA. Kementrian Agama. Alamat KUA. (diakses pada Maret 25, 2015).

Struktur & Pemakaian Teknologi Game Pembuatan Activity

Pembuatan Aplikasi Android Sederhana dengan Eclipse

main activity resource layout

Workshop Struktur dan Pemakaian Teknologi Game BAB 4. Menu

PEMBUATAN APLIKASI SOAL UMPN BESERTA PEMBAHASANNYA MENGGUNAKAN ANDROID BERBASIS CLIENT SERVER TUGAS AKHIR EKO JULIO MISRA

Membuat UI Cantik Dan Serasi Di Android Menggunakan Palette Library Material Design

INTERFACING APLIKASI PENGHITUNGAN LUAS SEGITIGA DI ANDROID. Dibuat Oleh : Nama : Zunar Fitrianto NIM : Kelas : 13.5B.11

PROGRAM STUDI D3 JURUSAN TEKNIK KOMPUTER POLITEKNIK NEGERI SRIWIJAYA PALEMBANG Pemrograman Berorientasi Objek 3 (Mobile And Web Programming)


Ijin Akses Agar program kita dapat mengakses GPS, kita harus menambahkan permission pada AndroidManifest.xml sebagai berikut:

DAPATKAN SEGERAA!!!!! PERSEDIAAN TERBATASS!

Praktikum IX Drag and Drop GUI dan Image Gallery

Membuat project Android di Eclipse Struktur project pada eclipse Mengenal Tag Layout User Interface

Class yang dipakai Untuk membuat tampilan map pada Android, kita bisa memanfaatkan MapView sebagai berikut:

DAPATKAN SEGERAA!!!!! PERSEDIAAN TERBATASS!

PERTEMUAN KE 9 Camera dan Multimedia

Tutorial Membuat Aplikasi Web View Android pada Eclipse

Gambar Tampilan aplikasi Database Android 2

DAPATKAN SEGERAA!!!!! PERSEDIAAN TERBATASS!

Menulis Aplikasi untuk Android Bagian I

LAMPIRAN PROGRAM APLIKASI DESTINASI WISATA MEDAN BERBASIS ANDROID. 1. Lampiran Program menu splash screen.xml

Modul Aplikasi Mobile. Pertemuan ke-2. Pengenalan environment android pada eclipse

Multi-platform Target sistem operasi Eclipse adalah Microsoft Windows, Linux, Solaris, AIX, HP- UX dan Mac OS X.

Location Based Services

Praktikum VI Activity dan Intent

DAFTAR PUSTAKA. A. S., R., & Shalahuddin, M. (2013). Rekayasa Perangkat Lunak Terstruktur dan Berorientasi Objek. Bandung: Informatika.

Transkripsi:

A-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 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) for(i=0; i<key1.length(); i++) j = (int) key1.charat(i); if(j < 32 j > 126)

A-2 for(i=0; i<key2.length(); i++) j = (int) key2.charat(i); if(j < 48 j > 57) else else 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() 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++) if (Integer.parseInt(key2.charAt(i) + "") > tmp) kecil = Integer.parseInt(key2.charAt(i) + "");

A-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() 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) + ""); for(i=0; i<bar; i++) for(j=0; j<kol; j++)

A-4 ciphertext2.length())) if(integer.parseint(key2.charat(j)+"") == kecil) if(i == bar-1 && j >= kol-((bar*kol)- 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); b_clear_en.setonclicklistener(new View.OnClickListener()

A-5 et_plaintext_en.settext(""); et_key1_en.settext(""); et_key2_en.settext(""); tv_ciphertext_en.settext(""); Toast.makeText(MainActivity.this, "Kolom Inputan Telah Direset", ); final ImageButton b_clear_de = (ImageButton) findviewbyid(r.id.b_clear_de); b_clear_de.setonclicklistener(new View.OnClickListener() et_ciphertext_de.settext(""); et_key1_de.settext(""); et_key2_de.settext(""); tv_plaintext_de.settext(""); Toast.makeText(MainActivity.this, "Kolom Inputan Telah Direset", ); 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);

A-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() 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() 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() 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() 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; /** * Created by ILMUKOMPUTER on 8/6/2016.

A-7 */ public class HelpActivity extends AppCompatActivity 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() Intent i = new Intent(HelpActivity.this, MainActivity.class); i.setflags(intent.flag_activity_clear_top); startactivity(i); ); b_penggunaan.setonclicklistener(new View.OnClickListener() 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() 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() 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", ); ImageButton clear = (ImageButton) findviewbyid(r.id.b_clear_en); clear.setonclicklistener(new View.OnClickListener() 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."); Toast.makeText(HelpActivity.this, "Button Reset",

A-8 ); ImageButton help = (ImageButton) findviewbyid(r.id.b_help_en); help.setonclicklistener(new View.OnClickListener() 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", ); ImageButton about = (ImageButton) findviewbyid(r.id.b_about_en); about.setonclicklistener(new View.OnClickListener() 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", ); EditText pesan = (EditText) findviewbyid(r.id.et_plaintext_en); pesan.setinputtype(inputtype.type_null); pesan.setontouchlistener(new View.OnTouchListener() 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", ); EditText key1 = (EditText) findviewbyid(r.id.et_key1_en); key1.setinputtype(inputtype.type_null); key1.setontouchlistener(new View.OnTouchListener() 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", ); EditText key2 = (EditText) findviewbyid(r.id.et_key2_en); key2.setinputtype(inputtype.type_null); key2.setontouchlistener(new View.OnTouchListener() 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 " + "digunakan adalah 2 karakter dan maksimal sepanjang pesan.

A-9 Apabila muncul pemberitahuan Periksa Kembali Inputan " + "Anda, maka mungkin saja kunci yang digunakan tidak sesuai."); Toast.makeText(HelpActivity.this, "Kolom Kunci 2", ); TextView hasil = (TextView) findviewbyid(r.id.tv_ciphertext_en); hasil.setontouchlistener(new View.OnTouchListener() 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", ); final CheckBox view1 = (CheckBox) findviewbyid(r.id.cb_view1_en); view1.setonclicklistener(new View.OnClickListener() if(view1.ischecked()) tv_bantuan.settext("bila kotak diceklis maka akan memperlihatkan kunci pertama"); Toast.makeText(HelpActivity.this, "Kotak Lihat Kunci 1", else tv_bantuan.settext("bila kotak tidak diceklis maka akan menyembunyikan kunci pertama"); Toast.makeText(HelpActivity.this, "Kotak Lihat Kunci 1", ); final CheckBox view2 = (CheckBox) findviewbyid(r.id.cb_view2_en); view2.setonclicklistener(new View.OnClickListener() if(view2.ischecked()) tv_bantuan.settext("bila kotak diceklis maka akan memperlihatkan kunci kedua"); Toast.makeText(HelpActivity.this, "Kotak Lihat Kunci 2", else tv_bantuan.settext("bila kotak tidak diceklis maka akan menyembunyikan kunci kedua"); Toast.makeText(HelpActivity.this, "Kotak Lihat Kunci 2", ); 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; import android.widget.imagebutton;

A-10 /** * Created by ILMUKOMPUTER on 8/6/2016. */ public class AboutActivity extends AppCompatActivity 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() 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_height="match_parent" tools:context="com.example.ilmukomputer.mycipher.mainactivity" android:background="@drawable/background"> <TabHost android:id="@+id/tabhost" android:layout_height="match_parent"> <LinearLayout android:id="@+id/linearlayout" android:layout_height="match_parent" android:orientation="vertical"> <TabWidget android:id="@android:id/tabs" android:background="@color/colorprimary"></tabwidget> <FrameLayout android:id="@android:id/tabcontent" android:layout_height="match_parent"> </FrameLayout> </LinearLayout> </TabHost> </RelativeLayout> <include android:id="@+id/layout1" layout="@layout/layout_encrypt" android:layout_height="match_parent"></include> <include android:id="@+id/layout2" layout="@layout/layout_decrypt" android:layout_height="match_parent"></include> 5. layout_encrypt.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="match_parent">

A-11 <TextView android:id="@+id/tv_ciphertext_en" android:layout_width="fill_parent" android:layout_height="fill_parent" android:hint="pesan Tersandi" 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:id="@+id/b_encrypt" android:background="@drawable/ic_encrypt" android:layout_marginleft="10dp" android:layout_marginright="10dp" android:layout_alignparentbottom="true" <EditText android:id="@+id/et_plaintext_en" android:inputtype="text" android:hint="tulis Pesan" android:maxlines="1" android:minheight="40dp" android:gravity="center_vertical" android:padding="10dp" android:layout_tostartof="@+id/b_encrypt" android:layout_marginleft="10dp" android:layout_alignparentstart="true" android:layout_alignparentbottom="true" /> <EditText android:id="@+id/et_key1_en" android:ems="10" android:inputtype="textpassword" android:hint="kunci 1" android:maxlines="1" 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:ems="10" android:inputtype="numberpassword" android:hint="kunci 2" android:maxlines="1" android:gravity="center_vertical" android:paddingleft="10dp" android:paddingtop="5dp" android:paddingbottom="5dp" android:layout_margintop="5dp" android:layout_below="@+id/et_key1_en"

A-12 android:layout_tostartof="@+id/cb_view2_en" android:layout_alignstart="@+id/et_key1_en" /> android:id="@+id/b_clear_en" android:background="@drawable/ic_clear" android:layout_alignparenttop="true" android:id="@+id/b_about_en" android:background="@drawable/ic_about" android:layout_torightof="@+id/b_help_en" android:layout_alignparenttop="true" /> android:id="@+id/b_help_en" android:background="@drawable/ic_help" android:layout_alignparentstart="true" android:layout_alignparenttop="true" /> <CheckBox android:id="@+id/cb_view1_en" android:layout_width="40dip" android:layout_height="40dip" android:layout_below="@+id/b_clear_en" android:layout_alignbottom="@+id/et_key1_en" <CheckBox android:id="@+id/cb_view2_en" android:layout_width="40dip" android:layout_height="40dip" android:layout_below="@+id/et_key1_en" android:layout_alignbottom="@+id/et_key2_en" </RelativeLayout> 6. layout_decrypt.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 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: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:id="@+id/b_decrypt"

A-13 android:background="@drawable/ic_decrypt" android:layout_marginleft="10dp" android:layout_marginright="10dp" android:layout_alignparentbottom="true" <EditText android:id="@+id/et_ciphertext_de" android:inputtype="text" android:hint="tulis Pesan Tersandi" android:maxlines="1" android:minheight="40dp" android:gravity="center_vertical" android:padding="10dp" android:layout_tostartof="@+id/b_decrypt" android:layout_marginleft="10dp" android:layout_alignparentstart="true" android:layout_alignparentbottom="true" /> <EditText android:id="@+id/et_key1_de" android:ems="10" android:inputtype="textpassword" android:hint="kunci 1" android:maxlines="1" 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:ems="10" android:inputtype="numberpassword" android:hint="kunci 2" android:maxlines="1" 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" /> android:id="@+id/b_clear_de" android:background="@drawable/ic_clear" android:layout_alignparenttop="true" android:id="@+id/b_about_de"

A-14 android:background="@drawable/ic_about" android:layout_torightof="@+id/b_help_de" android:layout_alignparenttop="true" /> android:id="@+id/b_help_de" android:background="@drawable/ic_help" android:layout_alignparentstart="true" android:layout_alignparenttop="true" /> <CheckBox android:id="@+id/cb_view1_de" android:layout_width="40dip" android:layout_height="40dip" android:layout_below="@+id/b_clear_de" android:layout_alignbottom="@+id/et_key1_de" <CheckBox android:id="@+id/cb_view2_de" android:layout_width="40dip" android:layout_height="40dip" android:layout_below="@+id/et_key1_de" android:layout_alignbottom="@+id/et_key2_de" </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_height="match_parent" tools:context="com.example.ilmukomputer.mycipher.helpactivity" android:background="@drawable/background"> android:id="@+id/b_back" android:background="@drawable/ic_back" android:layout_alignparentstart="true" android:layout_alignparenttop="true" /> <TextView android:id="@+id/tv_menu_bantuan" 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:text="penggunaan" android:layout_below="@+id/tv_menu_bantuan" android:layout_alignparentstart="true" android:minheight="90dp" /> <Button

A-15 android:id="@+id/b_algoritma" 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:layout_alignbottom="@+id/b_algoritma" android:layout_toendof="@+id/b_penggunaan" android:layout_below="@+id/tv_menu_bantuan" android:layout_margintop="10dp" /> <FrameLayout android:id="@android:id/tabcontent" 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" > <include android:id="@+id/layout3" layout="@layout/layout_encrypt" ></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_height="match_parent" tools:context="com.example.ilmukomputer.mycipher.aboutactivity" android:background="@drawable/background"> android:id="@+id/b_back" android:background="@drawable/ic_back" android:layout_alignparentstart="true" android:layout_alignparenttop="true" /> <TextView android:id="@+id/tv_menu_tentang" android:text="tentang Aplikasi" android:textsize="50sp" android:layout_below="@+id/b_back" android:layout_centerhorizontal="true" /> <ImageView android:id="@+id/iv_cover" android:layout_width="fill_parent"

A-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" /> </RelativeLayout>

B-1 CURRICULUM VITAE DATA PRIBADI PENDIDIKAN FORMAL 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 Alamat Orang Tua Jl. Jermal VII Komp. Graha Jermal A.20 No.HP Orang Tua 081260127059 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 Program Studi : S1 IlmuKomputer KEMAMPUAN Programming Database Bahasa C++, C#, Java MySQL Indonesia, Inggris