• Tidak ada hasil yang ditemukan

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM. Pada awal tahap implementasi ini diuraikan spesifikasi perangkat keras dan

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM. Pada awal tahap implementasi ini diuraikan spesifikasi perangkat keras dan"

Copied!
31
0
0

Teks penuh

(1)

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

(2)

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:

(3)

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)

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();

(5)

} /**

* 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 * */

(6)

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);}

(7)

/*==============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]); }

(8)

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();

(9)

}

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,

(10)

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.

(11)

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:

(12)

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.

(13)

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.

(14)

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.

(15)

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.

(16)

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.

(17)

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

(18)

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);

(19)

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

(20)

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

(21)

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();

(22)

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

(23)

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

(24)

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.

(25)

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

(26)

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

(27)

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());

(28)

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

(29)

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

(30)

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

(31)

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

Gambar

Gambar 4.1 Implementasi Tampilan Layar Startup
Gambar 4.3 Implementasi Antarmuka Alert Dialog Menu List Note
Gambar 4.5 Implementasi Tampilan Antarmuka Editor Note Awal
Gambar 4.6 Implementasi Tampilan  List Note Setelah Membuat Catatan
+7

Referensi

Dokumen terkait

Berdasarkan data hasil penelitian (tabel 10) diperoleh data bahwa skor kemampuan berpikir divergen keterampilan proses sains (KBDKPS) aspek Biologi siswa kelas V

Dari dua definisi tersebut terlihat bahwa sosiologi adalah suatu ilmu yang menggambarkan tentang keadaan masyarakat lengkap dengan struktur lapisan serta gejala

Hal ini tidak ubahnya dengan perlengkapan listrik bah-wa yang digambar pada suatu gambar kerja adalah bukan benda-benda atau alat-alat listrik secara fisik, melainkan

(2) Bagaimana pelaksanaan ajaran panca dasar bela diri Pencak silat Persaudaraan Setia Hati Terate Komisariat IAIN Walisongo Semarang dalam perspektif pendidikan

Konversi minyak jelantah sawit menjadi bahan bakar setara diesel melalui reaksi dekarboksilasi dengan pretreatment saponifikasi menggunakan Kalsium Hidroksida telah

Semakin besar motivasi seseorang dalam berwirau- saha akan berpengaruh positif terhadap penggunaan alternatif pem- biayaan metode bootstrap financing yang sumber

Dengan aplikasi ini akan lebih mudah dalam mencari fungsi dari titik-titik yang diketahui untuk memprediksi nilai lainnya. Sinha, 2000, Microcomputer-Based Numerical Methods

Mesnet donatısı hesabı yapılırken Xküçük/Xbüyük oranına bakmak gereklidir.Buna göre Xk/Xb&lt;0,8 olması durumunda aradaki moment farkının 2/3’lük kısmı