67 4.1 Implementasi Sistem
Tahap implementasi sistem merupakan tahap eksekusi dari rancangan sistem yang telah dibuat menjadi kode program sehingga dapat dihasilkan suatu sistem yang siap untuk digunakan sesuai dengan fungsional yang telah ditetapkan pada tahap analisis dan perancangan.
Pada awal tahap implementasi ini diuraikan spesifikasi perangkat keras dan perangkat lunak yang digunakan dalam implementasi pembuatan program, implementasi enkripsi dan dekripsi kriptografi hibrida dari algorithma Ron, Shamir, Adleman(RSA) dan Advanced Encryption Standard(AES)-128, serta implementasi interface aplikasi “Note Encryptor” setelah diimplementasikan pada sistem operasi Andorid.
4.1.1 Perangkat Pendukung yang Digunakan
Dalam proses pembuatan aplikasi ini, tentunya membutuhkan perangkat keras (hardware) dan perangkat lunak (software). Berikut merupakan spesifikasi dari perangkat keras dan perangkat lunak yang digunakan.
1. Perangkat Keras (Hardware)
a. Spesifikasi perangkat keras smartphone
Smartphone yang digunakan adalah Samsung GT-S5670 dengan spesifikasi sebagai berikut:
a. Sistem operasi : Android 2.2.1 (Froyo)
b. CPU : 600 MHz
c. Memori : 256 MB RAM
d. Dimensi layar : QVGA 240 x 320 (Internal) e. Kamera : 5 MP (auto focus)
f. Fitur lain : A-GPS, sensor Accelerometer, Wi-Fi, Bluetooth
b. Spesifikasi perangkat keras komputer
Komputer digunakan untuk membangun aplikasi. Adapun komputer yang digunakan memiliki spesifikasi sebagai berikut:
a. Sistem Operasi : Windows 7 Ultimate
b. CPU : Intel Core 2 Duo processor 2.0 GHz
c. Memori : 2 GB
d. VGA : 732 MB
e. Harddisk : 250 GB
f. Lain-lain : Monitor, Mouse dan Keyboard
2. Perangkat Lunak (Software)
Perangkat lunak yang digunakan dalam pembangunan aplikasi ini memiliki spesifikasi sebagai berikut:
Dalam pembangunan aplikasi ini digunakan Java Development Kit (JDK) 1.6 dan Java Runtime Environment (JRE).
b. Eclipse Galileo
Untuk memudahkan dalam pengembangan aplikasi, maka digunakan IDE karena memiliki beberapa fasilitas yang diperlukan dalam pembangunan perangkat lunak. Adapun dalam pengembangan aplikasi ini digunakan Eclipse versi 3.5 Galileo dikarenakan telah mendukung Android Development Tools.
c. Android SDK (Software Development Kit)
Android SDK menyediakan development environment dengan semua komponen yang diperlukan. Antara lain tools pengembangan, libraries, dokumentasi, dan contoh aplikasi serta disertakan pula emulator untuk mensimulasikan aplikasi berjalan pada perangkat. Adapun dalam pengembangan aplikasi ini SDK yang digunakan adalah SDK versi 2.2 (Gingerbread).
d. ADT (Android Development Tools)
Android membuat kostum plugin untuk IDE Eclipse, sehingga dengan adanya ADT ini memberikan kemudahan dalam pengembangan aplikasi, membuat tampilan antarmuka aplikasi, menambahkan komponen yang diperlukan, men-debug aplikasi dengan menggunakan perangkat SDK Android, dan bahkan membungkus aplikasi yang telah dikembangkan untuk di distribusikan. Adapun dalam pengembangan aplikasi ini ADT yang digunakan adalah ADT versi 8.0.1.
4.1.2 Implementasi Kriptografi Hibrida(RSA dan AES)
Pada tahap ini akan dilakukan implementasi dari analisis kriptografi hibrida(RSA dan AES-128) kedalam kode program, pada laporan tugas akhir ini kode program telah terlampir dengan nama class CryptoHybrid, berikut ini sebagian kode dalam bahasa pemrograman java:
package ta.NEDv1.program; import java.math.BigInteger; import java.security.SecureRandom; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec;
public class CryptoHibryd {
//============== METHODS ===================== // Method yang membuat Ciphertext (E)
private int[] genCiphertext(int[] param) { //cetakNilai("param", param.length); int[] temp = new int[getTotalChar()]; for (int i = 0; i < param.length; i++) {
temp[i] = (int) (Math.pow(param[i], getE()) % getN()); }
return temp; }
// Method untuk membuat plaintext (D) private String genPlaintext(int[] param) {
StringBuilder sb = new StringBuilder(); for (int i = 0; i < param.length; i++) {
BigInteger POW = pow(BigInteger.valueOf(param[i]), BigInteger.valueOf(getD())); BigInteger MOD = POW.mod(BigInteger.valueOf(getN())); sb.append((char) MOD.intValue()); } return sb.toString();
} /**
* Method yang melakukan enkripsi * */
private int[] encryptRSA(String plaintext) {
// Tentukan jumlah karakter yang akan diproses // Jumlah karakter berdasarkan banyaknya huruf setTotalChar(plaintext.length());
// Sediakan dua buah array untuk menampung ASCII dan CIPHERTEXT
int arrASCII[] = new int[getTotalChar()]; int arrCiphertext[] = new int[getTotalChar()]; // Langkah 1: setP(11); setQ(13); // Langkah 2: setN(getP() * getQ()); // Langkah 3: setTetha((getP() - 1) * (getQ() - 1)); // Langkah 4:
// set kunci public setE(7);
// Looping berikut untuk mengambil huruf demi huruf yg terdapat pada plaintext
// Lalu memasukkan seluruh karakter ke dalam array for (int i = 0; i < plaintext.length(); i++) {
// casting dari Char ke ASCII arrASCII[i] = plaintext.charAt(i); }
// Langkah 5:
// Bangkitkan kunci privat generateKeyPrivate(arrASCII); // Bentuk Ciphertext
arrCiphertext = genCiphertext(arrASCII); // Kembalikan Ciphertext ke driver return arrCiphertext;
} /**
* Method untuk melakukan dekripsi * */
private String decryptRSA(String decriptedAESString){ int [] arrayAngkaDariAES =
getArrayIntFromAES(decriptedAESString); // method untuk mandapatkan array integer // Langkah 1: setP(11); setQ(13); // Langkah 2: setN(getP() * getQ()); // Langkah 3: setTetha((getP() - 1) * (getQ() - 1)); // Langkah 4
// Set kunci private: setD(103);
return genPlaintext(arrayAngkaDariAES); }
private int [] getArrayIntFromAES(String decriptedAESString){ String [] arrtemp = decriptedAESString.split(" "); int [] res = new int[arrtemp.length];
for(int i=0 ; i<arrtemp.length; i++){
res[i] = Integer.parseInt(arrtemp[i]); }
return res; }
/**
* Method untuk pemangkatan */
private static BigInteger pow(BigInteger base, BigInteger exponent) { BigInteger result = BigInteger.ONE;
while (exponent.signum() > 0) { if (exponent.testBit(0)) result = result.multiply(base); base = base.multiply(base); exponent = exponent.shiftRight(1); } return result; }
void cetakNilai(String title, Object value){ System.out.println(title + ": " + value);}
/*==============AES Tools================*/
private byte[] encrypt(byte[] raw, byte[] clear) throws Exception { SecretKeySpec s_kunci_rahasia = new SecretKeySpec(raw, "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, s_kunci_rahasia); byte[] encrypted = cipher.doFinal(clear);
return encrypted; }
private byte[] decrypt(byte[] raw, byte[] encrypted) throws Exception { SecretKeySpec s_kunci_rahasia = new SecretKeySpec(raw, "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, s_kunci_rahasia); byte[] decrypted = cipher.doFinal(encrypted);
return decrypted; }
private byte[] rawKey(byte[] kunci,int tipe) throws Exception {
KeyGenerator kunci_gen = KeyGenerator.getInstance("AES"); SecureRandom acak =
SecureRandom.getInstance("SHA1PRNG"); acak.setSeed(kunci);
kunci_gen.init(tipe, acak);
SecretKey kunci_rahasia = kunci_gen.generateKey(); byte[] raw = kunci_rahasia.getEncoded();
return raw; }
@SuppressWarnings("unused") private String d_hexa(String hexa) {
return new String(k_byte(hexa)); }
private String k_hexa(byte[] buffer) { if (buffer == null)
{
return ""; }
StringBuffer hasil = new StringBuffer(2 * buffer.length); for (int i = 0; i < buffer.length; i++)
{
appendHex(hasil, buffer[i]); }
4.1.3 Implementasi Database pada SQLite
Pada tahap ini akan dilakukan implementasi dari perancangan database kedalam kode program, pada laporan tugas akhir ini kode program telah terlampir dengan nama class DBUtility, berikut ini sebagian kode dalam bahasa pemrograman java: package taNED.gs.database; import java.util.ArrayList; import java.util.Date; import java.util.List; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import taNED.gs.entity.Note;
public class DBUtility {
private static final String DB_NAME = "catattan"; private static final String[] TABEL = { "notepad" };
private static final String[] NOTEPAD_COL = { "id", "title", "data", "date" };
private static int DB_VERSION = 1; private final Context context; private SQLiteDatabase db; private DatabaseHelper DBHelper; public DBUtility(Context ctx) { this.context = ctx;
this.DBHelper = new DatabaseHelper(context); }
public DBUtility open() {
db = DBHelper.getWritableDatabase(); return this;
}
public void close() { DBHelper.close();
}
public SQLiteDatabase sqliteDB() { return db;
}
/*INSERT*/
public long insertNote(Note note){
ContentValues cv = new ContentValues(); cv.put(NOTEPAD_COL[0], note.getId()); cv.put(NOTEPAD_COL[1],
note.getTitle().equals("")?"UNTITLED":note.getTitle()); cv.put(NOTEPAD_COL[2], note.getNote()); cv.put(NOTEPAD_COL[3], new Date().toString());
return db.insert(TABEL[0], null, cv); }
/*RETRIEVE ALL*/
public List<Note> getAllNote(){
Cursor c = db.query(TABEL[0], NOTEPAD_COL, null, null, null, null, "date desc");
List<Note> notes = new ArrayList<Note>();
if( c!= null){
while(c.moveToNext()){
Note n = new Note();
n.setId(c.getString(0)); n.setTitle(c.getString(1)); n.setNote(c.getString(2)); n.setDate(c.getString(3)); notes.add(n); } c.close(); } return notes; }
4.1.4 Implementasi Tampilan Antarmuka Aplikasi
Pada tahap implementasi tampilan antarmuka ini akan dijelaskan bagaimana program sistem ini bekerja dengan memberikan tampilan antarmuka aplikasi yang dibuat. Pada bagian ini akan ditampilkan antarmuka aplikasi sesuai dengan fitur-fitur yang terdapat pada aplikasi,
serta akan dijelaskan pula bagaimana aplikasi ini bekerja pada tiap tampilan antarmuka.
1. Implementasi Tampilan Layar Startup
Tampilan startup adalah tampilan yang akan muncul pertama kali ketika aplikasi dijalankan. Implementasi dari tampilan layar startup
adalah seperti pada gambar 4.1 di bawah ini.
Gambar 4.1 ImplementasiTampilan Layar Startup
2. Implementasi Tampilan Layar Menu Utama
Tampilan layar menu utama adalah tampilan untuk memilih fitur-fitur yang ada pada aplikasi, yang terdiri dari tiga pilihan menu utama diantaranya; list note, help, dan exit. Implementasi dari tampilan layar menuutama adalah seperti pada gambar 4.2 di bawah ini.
Gambar 4.2 Implementasi Tampilan Layar Menu Utama
3. Implementasi Tampilan Layar List Note
Tampilan layar alert dialog menu list note adalah seperti pada gambar4.3 di bawah ini:
Setelah pengguna menekan tombol go pada alert tersebut maka akan tampil tampilan layar list note awal seperti pada gambar4.4 dibawah ini.
Gambar 4.4 Implementasi Tampilan Layar List Note Awal
Untuk membuat catatan pengguna memilih menu add note maka akan tampil tampilan layar editor note awal seperti gambar4.5 dibawah ini.
Setelah muncul class editor note tersebut pengguna dipersilahkan mengisi semua kolom sesuai keterangan kolom yang desediakan, kolom pertama untuk judul, kolom kedua untuk password dengan tipe character, dan kolom ketiga untuk inputan note. Tampilan contoh inputan catatan adalah seperti gambar4.6 dibawah ini.
Gambar 4.6 Implementasi Contoh Membuat Catatan
Kemudian akan muncul tampilan list note setelah membuat catatan, seperti pada gambar4.7 dibawah ini.
Gambar 4.6 Implementasi Tampilan List Note Setelah Membuat Catatan
Untuk melihat kembali catatan yang tadi dibuat penggguna menekan dan memilih list catatan yang akan dilihat dan akan tampil catatan yang telah terenkripsi. Tampilan editor note setelah membuat catatan adalah seperti gambar4.7 dibawah ini.
Untuk dekripsi catatan silahkan masukan password yang di inputkan pengguna saat membuat catatan, maka akan tampil tampilan editor note setelah dekripsi seperti gambar4.8 dibawah ini.
Gambar 4.8 Implementasi Tampilan Editor Note Setelah Dekripsi
4. Implementasi Tampilan Layar Help
Tampilan antarmuka fitur Bantuan ini merupakan tabulasi yang menyajikan tiga bantuan yaitu tentang aplikasi, langkah aplikasi, dan informasi dari istilah-istilah kriptografi yang diterapkan pada aplikasi. Implementasi dari tampilan layar help adalah seperti di bawah ini:
Tampilan layar help dengan pilihan tentang aplikasi adalah tampilan bantuan pada aplikasi yang menjelaskan semua hal tentang aplikasi. Tampilan layar tentang aplikasi seperti gambar4.9 dibawah ini.
Gambar 4.9 Implementasi Tampilan Layar Tentang Aplikasi
Tampilan layar help dengan pilihan langkah aplikasi adalah tampilan bantuan pada aplikasi yang menjelaskan mengenai langkah penggunaan aplikasi. Tampilan layar langkah aplikasi seperti gambar4.10 dibawah ini.
Tampilan layar help dengan pilihan informasi adalah tampilan bantuan pada aplikasi yang menjelaskan istilah-istilah kriptografi yang diterapkan pada aplikasi. Tampilan layar informasi seperti gambar4.11 dibawah ini.
Gambar 4.11 Implementasi Tampilan Layar Informasi
4.2 Pengujian Sistem
Pengujian sistem merupakan hal terpenting yang bertujuan untuk menemukan kesalahan-kesalahan atau kekurangan-kekurangan pada perangkat lunak yang dibangun. Pengujian bermaksud untuk mengetahui perangkat lunak yang dibuat sudah memenuhi kriteria yang sesuai dengan tujuan perancangan perangkat lunak tersebut.
Pengujian dilakukan dalam dua metode, yaitu pengujian white box dan black box. Pengujian white box dilakukan dengan menguji atribut dan method yang ada pada kelas-kelas kode program yang dibangun. Pengujian white box dilakukan pada proses pembuatan aplikasi. Sedangkan pengujian black box dilakukan untuk
menguji apakah sistem yang dikembangkan sesuai dengan apa yang tertuang dalam spesifikasi fungsional sistem yang telah dirancang sebelumnya. Pengujian
black box dilakukan setelah proses pembuatan aplikasi selesai dan sebelum aplikasi didistribusikan kepada pengguna.
4.2.1 Pengujian Alpha
Pengujian alpha digunakan untuk menguji aplikasi dengan berbagai kondisi, metode yang digunakan pada pengujian alpha adalah metode white-box. Pengujian white-box digunakan untuk meyakinkan semua perintah dan kondisi pada aplikasi Note Encyrptor Droid V.1 dieksekusi secara minimal. Pengujian
white-box yang pada aplikasi Note Encyrptor Droid V.1 menggunakan dua tools
yaitu flow graph yang digunakan untuk menggambarkan alur dari algoritma dan
graph matrix yang digunakan untuk menggenerasi flow graph. Adapun pengujian
white-box pada aplikasi Note Encyrptor Droid V.1 adalah sebagai berikut:
1. Pengujian Enkripsi Rsa
1. setTotalChar(plaintext.length());
2. int arrASCII[] = new int[getTotalChar()]; 3. int arrCiphertext[] = new int[getTotalChar()]; 4. setP(11);
5. setQ(13);
6. setN(getP() * getQ());
7. setTetha((getP() - 1) * (getQ() - 1)); 8. setE(7);
10. arrASCII[i] = plaintext.charAt(i);} 11. generateKeyPrivate(arrASCII);
12. arrCiphertext = genCiphertext(arrASCII); 13. return arrCiphertext;
14. int[] temp = new int[getTotalChar()]; 15. for (int i = 0; i < param.length; i++) {
16. temp[i] = (int) (Math.pow(param[i], getE()) % getN());} 17. return temp;
a. Flow GraphEnkripsi Rsa
Flow graph Enkripsi RSA dapat dilihat pada Gambar 4.12 dibawah ini. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 16 15 17
Dari Gambar4.12 dapat dihitung cyclomatic complexity
sebagai berikut: Region = 3
V(G) = 18 edge – 17 node + 2 = 3
Jadi, cyclomatic complexity untuk Gambar 4.12 adalah 3. Berdasarkan cyclomatic complexity tersebut, Gambar 4.12 memiliki 3 path yang terdiri dari:
Path 1: 1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-16-17
Path 2: 1-2-3-4-5-6-7-8-9-10-11-12-13-9-10-11-12-13-14-15- 16-17
Path 3: 1-2-3-4-5-6-7-8-9-10-11-12-13-9-10-11-12-13-14-15- 16-17-15-16-17
b. Graph Matrix Enkripsi RSA
Tabel4.1 Graph Matrix Enkripsi RSA
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 1 2 3 1 4 5 1 6 7 1 8 9 1 10 1 11 1 12 1 13 1 1 14 1 15 1 16 1 17 1
2. Pengujian Enkripsi AES
1. Cipher cipher = Cipher.getInstance("AES");
2. cipher.init(Cipher.ENCRYPT_MODE, s_kunci_rahasia); 3. byte[] encrypted = cipher.doFinal(clear);
4. return encrypted;
5. KeyGenerator kunci_gen = KeyGenerator.getInstance("AES"); 6. SecureRandom acak =
SecureRandom.getInstance("SHA1PRNG"); 7. acak.setSeed(kunci);
8. kunci_gen.init(tipe, acak);
9. SecretKey kunci_rahasia = kunci_gen.generateKey(); 10. byte[] raw = kunci_rahasia.getEncoded();
11. return raw; 12. if (buffer == null) 13. return "";
14. StringBuffer hasil = new StringBuffer(2 * buffer.length); 15. for (int i = 0; i < buffer.length; i++)
16. appendHex(hasil, buffer[i]); 17. return hasil.toString();
a. Flow GraphEnkripsi AES
Flow graph Enkripsi AES dapat dilihat pada Gambar 4.13 dibawah ini. 1 13 10 6 12 17 16 14 11 15 8 9 7 5 4 3 2
Gambar 4.13 Flow GraphEnkripsi AES
Dari Gambar 4.20 dapat dihitung cyclomatic complexity sebagai berikut:
Region = 2
Jadi, cyclomatic complexity untuk Gambar 4.13 adalah 2.
Berdasarkan cyclomatic complexity tersebut, Gambar 4.13 memiliki 2 path yang terdiri dari:
Path 1: 1-2-3-4-5-6-7-8-9-10-11-12-13
Path 2: 1-2-3-4-5-6-7-8-9-10-11-12-14-15-16-17
b. Graph Matrix Enkripsi AES
Tabel 4.2. Graph Matrix Enkripsi AES
3. Pengujian Dekripsi AES
1. Cipher cipher = Cipher.getInstance("AES");
2. cipher.init(Cipher.DECRYPT_MODE, s_kunci_rahasia); 3. byte[] decrypted = cipher.doFinal(encrypted);
4. return decrypted;acak.setSeed(kunci); 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 1 2 3 1 4 5 1 6 7 1 8 9 1 10 11 1 12 13 14 1 15 16 1 17
5. KeyGenerator kunci_gen = KeyGenerator.getInstance("AES"); 6. SecureRandom acak = SecureRandom.getInstance("SHA1PRNG"); 7. acak.setSeed(kunci); 8. kunci_gen.init(tipe, acak);
9. byte[] raw = kunci_rahasia.getEncoded(); 10.return raw;return "";
11.int panjang = hexa_string.length() / 2; 12.byte[] hasil = new byte[panjang]; 13.for (int i = 0; i < panjang; i++)
14.hasil[i] = Integer.valueOf(hexa_string.substring(2 * i,2 * i + 2),16).byteValue();
15.return hasil;return hasil.toString();
16.String aes = decrypt(kunci, chiperText, tipe); 17.return decStr;
c. Flow GraphDekripsi AES
Flow graph Dekripsi AES dapat dilihat pada Gambar 4.14 dibawah ini.
1 10 6 15 18 12 11 13 14 17 8 9 7 5 4 3 2
Gambar 4.14 Flow GraphDekripsi AES
Dari Gambar 4.14 dapat dihitung cyclomatic complexity sebagai berikut:
Region = 2
V(G) = 17 edge – 17 node + 2 = 2
Berdasarkan cyclomatic complexity tersebut, Gambar 4.14 memiliki 2 path yang terdiri dari:
Path 1: 1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-16-17
Path 2: 1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-16-17-13-14-15-16
d. Graph Matrix Dekripsi AES
Tabel 4.3. Graph Matrix Dekripsi AES
4. Pengujian Dekripsi Rsa
1. int [] arrayAngkaDariAES =
getArrayIntFromAES(decriptedAESString); 2. setP(11);
3. int arrCiphertext[] = new int[getTotalChar()];
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 1 2 3 1 4 5 1 6 7 1 8 9 1 10 11 1 12 13 14 1 15 16 1 17
4. setP(11); 5. setQ(13);
6. setN(getP() * getQ());
7. setTetha((getP() - 1) * (getQ() - 1)); 8. setD(103);
9. return genPlaintext(arrayAngkaDariAES);10. arrASCII[i] = plaintext.charAt(i);}
11. StringBuilder sb = new StringBuilder(); 12. for (int i = 0; i < param.length; i++) { 13. return arrCiphertext;
14. BigInteger POW = pow(BigInteger.valueOf(param[i]), BigInteger.valueOf(getD()));
15. BigInteger MOD = POW.mod(BigInteger.valueOf(getN())); 16. sb.append((char) MOD.intValue());
c. Flow GraphDekripsi Rsa
Flow graph Dekripsi RSA dapat dilihat pada Gambar 4.15 dibawah ini. 1 17 10 6 16 15 12 11 13 14 8 9 7 5 4 3 2
Gambar 4.15 Flow GraphDekripsi Rsa
Dari Gambar 4.15 dapat dihitung cyclomatic complexity
sebagai berikut: Region = 2
V(G) = 17 edge – 17 node + 2 = 2
Jadi, cyclomatic complexity untuk Gambar 4.15 adalah 2. Berdasarkan cyclomatic complexity tersebut, Gambar 4.15 memiliki 2 path yang terdiri dari:
Path 1: 1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-16-17
Path 2: 1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-16-17-12-13-14-
15-16-17
d. Graph Matrix Dekripsi RSA
Tabel 4.4 Graph Matrix Dekripsi RSA
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 1 2 3 1 4 5 1 6 7 1 8 9 1 10 1 11 1 12 1 13 1 14 1 15 1 16 1 17
4.2.2 Pengujian Betha
Pengujian betha berfokus pada pengujian fungsional yang bertujuan untuk menguji sistem pengembangan dari versi alpha dengan menggunakan metode pengujian black box. Pengujian betha dilakukan melalui tahap pengujian performansi atau uji coba langsung kepada pengguna sistem untuk mencoba aplikasi yang baru dan hasil dari percobaan tersebut dicatat untuk mengetahui tingkat keakuratan dan keberhasilan sistem.
Pengujian dilakukan dengan menjalankan semua fitur-fitur Aplikasi dan fungsi-fungsi Aplikasi. Kemudian pengujian dikatakan berhasil jika semua fitur tampil dan pesan menyatakan fungsi berhasil. Dibawah ini tabel dari pengujian fitur dan fungsi aplikasi.
Tabel 4.5 Hasil Pengujian Aplikasi NoteEncryptorDroidV.1
No. Fitur-Fitur Aplikasi Hasil Keterangan
Sukses Gagal
1 Tampil PlashScreen √ Tampil
2 Tampil Menu Utama √ Tampil
3 Masuk Menu Add Note √ Tampil List Catatan Awal
4 Masuk Menu Kriptografi √ Tampil List View Catatan
5 Masuk Menu Informasi √ Tampil Tabulasi dua
Informasi
6 Pilih Menu Exit √ Berhasil Keluar
7 Tampil Editor Catatan √ Tampil
8 Tampil List Catatan √ Tampil
9 Membuat Catatan √ Berhasil
Tabel 4.5 Hasil Pengujian Aplikasi NoteEncryptorDroidV.1(lanjutan)
No. Fitur-Fitur Aplikasi Hasil Keterangan
Sukses Gagal
11 Enkripsi Catatan √ Enkripsi tampil ketiaka
select list view
12 Tampil List catatan √ Tampil
13 Dekripsi Catatan √ Berhasil
14 Mengubah Catatan √ Ada pesan pemberitahuan
15 Menghapus Catatan √ Ada pesan pemberitahuan
16 Menampilkan Pesan √ Berhasil
17 Menampilkan List View Istilah
Kriptografi √ Tampil
18 Select List View √ Berhasil
19 Menampilkan Informasi Tentang
Aplikasi √ Tampil
20 Menampilkan Informasi
Procedure Aplikasi √ Tampil