dokumen-dokumen yang mirip
DAFTAR PUSTAKA. Ariyus, Dony Keamanan Multimedia. Yogyakarta : Penerbit Andi

BAB IV PERANCANGAN Perancangan Proses Kriptanalisis

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

BAB IV HASIL DAN UJI COBA

BAB IV IMPLEMENTASI DAN EVALUASI SISTEM. telah dibuat sebelumnya, sehinggga user dapat memahami jalannya sistem tersebut.

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN PEMBAHASAN

BAB IV HASIL DAN UJI COBA

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN PEMBAHASAN

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB 4 IMPLEMENTASI DAN PENGUJIAN

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA

BAB IV IMPLEMENTASI DAN PENGUJIAN. dan pengujian merupakan langkah yang dilakukan setelah melakukan

BAB V IMPLEMENTASI DAN PENGUJIAN. (Studi kasus Dinas Tenaga Kerja dan Transmigrasi sub Kepegawaian dan Umum) ada

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB IV HASIL DAN UJICOBA

BAB IV IMPLEMENTASI DAN EVALUASI

BAB IV HASIL DAN UJI COBA

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA

BAB IV IMPLEMENTASI DAN EVALUASI. Pengelolaan Food Court terlebih dahulu diperlukan komponen-komponen utama

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJICOBA

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN PEMBAHASAN

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA

Pengenalan JavaScript

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB III ANALISA DAN PERANCANGAN SISTEM

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB VI IMPLEMENTASI DAN PENGUJIAN

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB IV HASIL DAN PEMBAHASAN. sebagai sumber data untuk kemudian disimpan di dalam server. Database server

BAB IV HASIL DAN UJI COBA

BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

BAB IV HASIL DAN UJI COBA

BAB V IMPLEMENTASI DAN PENGUJIAN SISTEM. menggunakan basis data MySQL. Aplikasi PHP dapat dijalankan pada Operating

BAB IV IMPLEMENTASI DAN PENGUJIAN


BAB IV IMPLEMENTASI DAN EVALUASI. Dalam merancang dan membangun sistem penjualan online ini ada

BAB IV IMPLEMENTASI DAN EVALUASI. Tahap implementasi sistem adalah tahap penerapan dari hasil analisis dan

BAB IV HASIL DAN UJI COBA

BAB IV DISKRIPSI PEKERJAAN. Kerja praktik ini dilaksanakan selama satu bulan di Klinik Pendidikan

BAB IV HASIL DAN UJI COBA

BAB IV IMPLEMENTASI DAN EVALUASI. mempersiapkan kebutuhan system (baik hardware maupun software), persiapan

BAB IV HASIL DAN PEMBAHASAN

BAB 3 ANALISIS DAN PERANCANGAN. utuh ke dalam bagian-bagian komponennya dengan maksud untuk

BAB IV IMPLEMENTASI DAN EVALUASI. rangka memenuhi kebutuhan pengguna agar permasalahan yang ada dapat

BAB V IMPLEMENTASI DAN PENGUJIAN

BAB IV IMPLEMENTASI DAN EVALUASI. Pada bab empat ini akan dibahas mengenai hasil analisis dan

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB IV HASIL DAN PEMBAHASAN

BAB IV HASIL DAN UJICOBA

BAB IV HASIL DAN UJI COBA

BAB IV IMPLEMENTASI SISTEM

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB IV IMPLEMENTASI DAN EVALUASI. perancangan sistem yang telah dibuat sebelumnya. Implementasi terdiri dari:

BAB IV IMPLEMENTASI DAN PENGUJIAN APLIKASI. Setelah melakukan analisis dan perancangan terhadap Aplikasii

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISA DAN PERANCANGAN SISTEM

BAB IV HASIL DAN UJI COBA

BAB IV IMPLEMENTASI DAN EVALUASI. Rekam Medis pada Rumah Sakit Mata Masyarakat Surabaya.

BAB IV HASIL DAN UJI COBA

Bab 3 Metode Perancangan

BAB IV HASIL DAN UJI COBA

BAB III ANALISIS DAN DESAIN SISTEM

BAB IV HASIL DAN UJI COBA

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB IV HASIL DAN UJI COBA

BAB III PERANCANGAN SISTEM

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA

BAB V IMPLEMENTASI DAN PENGUJIAN

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB IV HASIL DAN UJI COBA

BAB V IMPLEMENTASI SISTEM

BAB IV HASIL DAN UJI COBA. Berikut adalah tampilan hasil dan pembahasan dari Perancangan Analisa

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB IV HASIL DAN UJICOBA

4. BAB IV IMPLEMENTASI DAN PENGUJIAN

Transkripsi:

BAB V IMPLEMENTASI DAN PENGUJIAN 5.1. Implementasi Pada tahapan ini dilakukan proses implementasi dan pengujian. Dimana proses ini dilakukan setelah proses analisis dan perancangan dari sistem yang dibahas telah selesai dikerjakan. Dalam tahap implementasi, akan dibahas tentang hasil implementasi berupa implementasi kode program dan implementasi dari aplikasi. Sedangkan pada tahap pengujian akan dibahas tentang pengujian sistem yang telah dibuat. Sistem di uji sesuai dengan skenario yang sudah ditentukan. Artinya sesuai dengan apa yang sudah ada di tahap sebelumnya yaitu tahap analisia dan perancangan sistem.pada tahap implementasi juga akan dibahas tentang spesifikasi dari kebutuhan sistem yang akan diuji meliputi perangkat keras dan perangkat lunak yang akan digunakan. 5.1.1. Perangkat Keras Implementasi pada sistem yang akan dibangun didukung oleh beberapa perangkat keras. Dalam implementasi perangkat keras dibutuhkan untuk memenuhi kebutuhan spesifikasi kebutuhan sistem untuk mendukung dalam membangun aplikasi kriptografi untuk username dan password. Berikut spesifikasi perangkat keras dapat dilihat pada Tabel 5.1. Tabel 5.1. Spesifikasi Perangkat Keras Prosesor Intel Pentium P6300 RAM 1 GB Kartu Grafis Intel GMA 4500HD Harddisk 320 GB Layar 1366 x 768 69

5.1.2. Perangkat Lunak Selain perangkat keras yang dibutuhkan untuk mendukung dalam membangun aplikasi kriptografi untuk username dan password, perangkat lunak juga dibutuhkan agar aplikasi dapat berjalan dengan baik dan optimal. Spesifikasi perangkat lunak dapat dilihat pada Tabel 5.2. Tabel 5.2. Spesifikasi Perangkat Lunak Sistem Operasi Microsoft Windows 7 Ultimate Platform Intellij IDEA Community Edition 2016 Dbms MySql 5.2. Hasil Implementasi Kode program dan tampilan aplikasi merupakan hasil implementasi dari pembuatan sistem. Langkah dalam analisa dan perancangan berguna untuk mempermudah dalam pembuatan sistem. Karena memberikan maping dalam pemecahan masalah yang nantinya akan di transformasikan kedalam kode program. Langkah pertama yaitu mendefinsikan kode program pada sistem. Kode program dibuat agar dapat dimengerti oleh mesin tentang apa yang kita inginkan. Output dari kode program itu sendiri yaitu suatu tampilan aplikasi yang setiap komponennya mempunyai fungsi masing-masing. Dengan adanya fungsi dari setiap komponen didalam aplikasi tersebut maka itu sudah dapat dikatakan sebuah sistem. 5.2.1. Implementasi Antar Muka Antar muka adalah tampilan program aplikasi yang berinteraksi dengan user. Tampilan aplikasi dirancang semnearik mungkin, agar user dapat nyaman saat mengoperasikan aplikasi. Antar muka dalam aplikasi kriptografi untuk username dan password dengan key berdasarkan nomor urut registrasi ini terdiri dari, antar muka halaman utama, antar muka halaman registrasi, antar muka halaman login, antar muka halaman about, dan antar muka halaman berhasil login. 70

5.2.1.1. Antar Muka Halaman Utama Antar muka halaman utama ini akan tampil pada saat pertama kali aplikasi dijalankan. Pada halaman utama tertera ucapan Selamat Datang. Halama utama ini tidak memiliki komponen yang mempunyai fungsi untuk melakukan proses. Pada halaman utama user melakukan operasi untuk memilih menu yang akan user jalankan. Menu tersebut terdiri dari menu registrasi, menu login, dan menu about. Untuk lebih jelasnya lihat Gambar 5.1. Gambar 5.1. Antar Muka Halaman Utama 71

5.2.1.2. Antar Muka Halaman Registrasi Antar muka halaman registrasi adalah halaman aplikasi yang berfungsi untuk melakukan registrasi. User menginputkan data lengkap pribadinya dengan aturan dan batasan-batasan yang sudah ditentukan didalam aplikasi. Pada halaman registrasi ini terdapat dua tombol yang masing-masing mempunyai fungsi. Tombol-tombol ini yang nantinya akan digunakan untuk melakukan proses didalam halaman registrasi. Tomboltombol tersebut adalam tombol Register dan Reset. Tombol Register berfungsi untuk melakukan proses registrasi dan tombol Reset yang berfungsi untuk melakukan proses penghapusan terhadap data pada field-field yang sudah diisi oleh user. Untuk jelasnya lihat Gambar 5.2. Gambar 5.2. Antar Muka Halaman Registrasi 72

5.2.1.3. Antar Muka Halaman Login Antar muka halaman login adalah halaman aplikasi yang berfungsi untuk melakukan proses login. Ketika proses registrasi telah berhasil dilakukan maka tahap selanjutnya yang akan dilakukan oleh user adalah melakukan login. Data yang dimasukkan untuk melakukan login yaitu username dan password. Pada halaman login terdapat 2 tombol yang masing-masing memiliki fungsi. Tombol tersebut adalah tombol Login dan Register. Tombol Login berfungsi untuk melakukan proses login dan tombol Register yang berfungsi untuk menampilkan halaman registrasi, tombol ini akan diklik oleh user apabila user tersebut belum melakukan proses registrasi. Untuk jelasnya lihat Gambar 5.3. Gambar 5.3. Antar Muka Halaman Login 73

5.2.1.4. Antar Muka Halaman About Antar muka halaman about adalah halaman tentang penjelasan tujuan aplikasi di rancang. Pada halaman ini tidak ada komponen yang mempunyai fungsi untuk melakukan proses. Pada halaman ini hanya penjelasan tujuan aplikasi saja. Untuk lebih jelasnya bisa dilihat Gambar 5.4. Gambar 5.4. Antar Muka Halaman About 74

5.2.1.5. Antar Muka Halaman Berhasil Login Antar muka halaman berhasil login adalah halaman yang akan ditampilkan oleh sistem apabila user berhasil melakukan proses login. Halaman ini berfungsi hanya untuk pembuktian jika user berhasil melakukan proses login dengan memasukkan username dan password dengan benar. Pada halaman ini terdapat tombol Logout yang berfungsi untuk keluar dari halaman berhasil login dan kembali kehalaman login. Untuk jelasnya lihat Gambar 5.5. Gambar 5.5. Antar Muka Halaman Berhasil Login 75

5.2.2. Implementasi Kode Program Kode program dibuat agar rancangan program yang dibuat dapat diterjemahkan kedalam bahasa mesin. Pada tahapan ini akan diberikan beberapa baris program tentang aplikasi diterjemahkan kedalam bahasa mesin. Pada tahapan ini akan diberikan beberapa baris program tentang aplikasi kriptografi untuk username dan password dengan key berdasarkan nomor urut registrasi menggunakan algoritma Caesar cipher. Berikut adalah potongan kode program yang terdapat pada aplikasi tersebut: 5.2.2.1. Kode Program Class Caesarchiper Class Caesarchiper adalah sebuah class yang mempunyai fungsi untuk melakukan proses enkripsi dan dekripsi. Dimana pada class tersebut mempunyai 2 function yaitu function untuk melakukan proses enkripsi dan function untuk melakukan proses dekripsi. Ada beberapa variabel yang didefinisikan didalam class ini, berikut variabelnya: private static String Huruf = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; private static String Angka = "0123456789"; Berikut function yang terdapat dalam class Caesarchiper: 1. Function enkripsi Enkripsi adalah function yang terdapat didalam class Caesarchiper, dimana fungsi function enkripsi berfungsi untuk melakukan proses enkripsi. Berikut adalah kode programnya: 76

public static String enkripsi(string Plaintext, int Kunci) { String hasil = ""; int kuncihuruf = Kunci % Huruf.length(); if (kuncihuruf == 0) kuncihuruf = 1; int kunciangka = Kunci % Angka.length(); if (kunciangka == 0) kunciangka = 1; for(int i=0; i<plaintext.length(); i++){ char teksterinput = Plaintext.charAt(i); if(character.isletter(teksterinput)){ char hurufkapital = Character.toUpperCase(teksTerinput); for (int a=0; a<huruf.length(); a++){ if(hurufkapital == Huruf.charAt(a)){ int ab = (a + kuncihuruf) % Huruf.length(); char hasilenkripsihuruf = Huruf.charAt(ab); if(character.islowercase(teksterinput)){ hasil = hasil +Character.toLowerCase(hasilEnkripsiHuruf); else{ hasil = hasil + hasilenkripsihuruf; else if(character.isdigit(teksterinput)){ for (int b=0; b<angka.length(); b++){ if(teksterinput == Angka.charAt(b)){ int bc = (b + kunciangka) % Angka.length(); hasil = hasil + Angka.charAt(bc); else { hasil = hasil + teksterinput; return hasil; 2. Function dekripsi Dekripsi adalah function yang terdapat didalam class Caesarchiper, dimana fungsi function dekripsi yaitu untuk melakukan proses dekripsi. Berikut adalah kode programnya: 77

public static String dekripsi(string Ciphertext, int Kunci){ String hasil = ""; int kuncihuruf = Kunci % Huruf.length(); if(kuncihuruf == 0) kuncihuruf = 1; int kunciangka = Kunci % Angka.length(); if(kunciangka == 0) kunciangka = 1; for (int i=0; i<ciphertext.length(); i++){ char teksterinput = Ciphertext.charAt(i); if(character.isletter(teksterinput)){ char hurufkapital = Character.toUpperCase(teksTerinput); for (int a=0; a<huruf.length(); a++){ if(hurufkapital == Huruf.charAt(a)){ int ab = (Huruf.length()+ a - kuncihuruf) % Huruf.length(); char hasildekripsihuruf = Huruf.charAt(ab); if(character.islowercase(teksterinput)){ hasil = hasil + Character.toLowerCase(hasilDekripsiHuruf); else{ hasil = hasil + hasildekripsihuruf; else if(character.isdigit(teksterinput)){ for (int b=0; b<angka.length(); b++){ if(teksterinput == Angka.charAt(b)){ int bc = (Angka.length() + b - kunciangka) % Angka.length(); hasil = hasil + Angka.charAt(bc); else{ hasil = hasil + teksterinput; return hasil; 5.2.2.2. Kode Program Class BasisData Class BasisData adalah class yang mempunyai beberapa function yang masingmasing mempuyai fungsi untuk melakukan koneksi ke database, proses validasi data pada database, melakukan insert data kedalam database, dan melakukan proses pemanggilan data yang dimasukkan ke dalam database yang dilakukan pada proses login. Berikut function yang terdapat dalam class BasisData: 78

1. Function connect Connect adalah function yang terdapat didalam class BasisData dimana fungsi dari function connect yaitu untuk melakukan koneksi ke database. Berikut adalah kode programnya: public static void connect() throws ClassNotFoundException, SQLException{ if (database == null){ Class.forName("com.mysql.jdbc.Driver"); database = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_user", "root", ""); statementhelper = database.createstatement(); 2. Function validasidatabase Function ini berfungsi untuk memeriksa data username yang ada di database. Karena data username di database tidak boleh sama. Untuk mengetahui data sama atau tidak dilakukan proses dekripsi terlebih dahulu. Berikut kode programmnya: public static boolean validasidatabase(string username) throws SQLException { Statement cariusername = getstatementhelper(); ResultSet cari = cariusername.executequery("select no_registrasi, username_cipher FROM table_user"); while (cari.next()) { int no_registrasi = cari.getint("no_registrasi"); String username_cipher = cari.getstring("username_cipher"); String username_real = Caesarchiper.dekripsi(username_cipher, no_registrasi); if (username_real.equals(username)) { return false; return true; 3. Function user User adalah function yang terdapat didalam class BasisData dimana fungsi dari function user yaitu untuk melakukan insert data user kedalam database. Pada function ini terdapat proses enkripsi, proses enkripsi dilakukan ketika data akan dimasukkan ke dalam database. Berikut adalah kode programnya: 79

public static int user(string username, String password, String email, String nama_lengkap, String tanggal_lahir, String asal_kota, char jenis_kelamin, String alamat, String kode_pos, String handphone) throws SQLException{ Statement hitunguser = getstatementhelper(); ResultSet hasil = hitunguser.executequery("select COUNT(*) AS TOTAL FROM table_user"); int no_registrasi = 0; while (hasil.next()){ no_registrasi = hasil.getint("total") + 1; String sql_query = "INSERT INTO table_user VALUES (" + String.valueOf(no_registrasi) + "," + "'" + Caesarchiper.enkripsi(username, no_registrasi) + "'," + "'" + username + "'," + "'" + Caesarchiper.enkripsi(password, no_registrasi) + "'," + "'" + password + "'," + "'" + Caesarchiper.enkripsi(email, no_registrasi) + "'," + "'" + email + "'," + "'" + nama_lengkap + "'," + "'" + Caesarchiper.enkripsi(tanggal_lahir, no_registrasi) + "'," + "'" + tanggal_lahir + "'," + "'" + asal_kota + "'," + "'" + jenis_kelamin + "'," + "'" + alamat + "'," + "'" + kode_pos + "'," + "'" + Caesarchiper.enkripsi(handphone, no_registrasi) + "'," + "'" + handphone + "')"; int x = getstatementhelper().executeupdate(sql_query); return x; 4. Function login Login adalah function yang terdapat didalam class BasisData dimana fungsi dari function login yaitu untuk melakukan pemanggilan data user didalam database, dimana proses ini terjadi pada saat melakukan login. Pada function ini terdapat proses dekripsi, proses dekripsi dilakukan pada data yang sudah dienkripsi di dalam database. Function login bertipe HasilLogin. HasilLogin menyimpan sebuah nilai yang bernilai false. Nilai itu akan berubah menjadi true jika data yang didekripsi sama dengan data yang diinput. Berikut adalah kode programnya: 80

public static HasilLogin login(string username, String password) throws SQLException{ int no_registrasi = 0; String dekripsi_username = ""; String dekripsi_password = ""; HasilLogin hasil = new HasilLogin(); Statement pilih = getstatementhelper(); ResultSet hasil_pilih = pilih.executequery("select no_registrasi, " + "username_cihper, " + "password_cipher, " + "email_cipher, " + "nama_lengkap, " + "tanggal_lahir_cipher, " + "asal_kota, " + "jenis_kelamin, " + "alamat, " + "kode_pos, " + "handphone_cipher " + "FROM table_user"); while (hasil_pilih.next()) { no_registrasi = hasil_pilih.getint("no_registrasi"); dekripsi_username = Caesarchiper.dekripsi(hasil_pilih.getString("username_cipher"), no_registrasi); dekripsi_password = Caesarchiper.dekripsi(hasil_pilih.getString("password_cipher"), no_registrasi); if ((username.equals(dekripsi_username)) && (password.equals(dekripsi_password))){ hasil.issucces = true; return hasil; return hasil; 5.2.2.3. Kode Program Class HasilLogin HasilLogin adalah class yang nantinya akan dipanggil pada class BasisData atau tepatnya pada function login, guna untuk memberikan nilai awal pada sub class login. Karena class HasilLogin menyimpan nilai false yang nantinya nilai tersebut dapat berubah menjadi true apabila data pada database didekripsi hasilnya sama dengan data yang diinput pada saat login maka nilainya akan berubah. Berikut kode programnya: public class HasilLogin { public boolean issucces = false; 81

5.2.2.4. Kode Program Halaman Utama Pada halaman utama terdapat kode program yang berfungsi untuk terhubung kedalam database, membuat frame, membuat menu dan sub menu, menampilkan halaman home, menampilkan halaman registrasi, menampilkan halaman login, menampilkan halaman about, dan keluar dari aplikasi. Berikut kode program yang ada di halaman utama: 1. Koneksi Database Kode program ini berfungsi untuk Menguhubungkan aplikasi kedalam database yang sudah dibuat. Pada kode program ini hanya memanggil class dan function yang sudah dibuat. Class dan function tersebut terdapat pada class BasisData. Dimana class yang dipanggil yaitu BasisData dan function-nya yaitu connect(). Berikut kode programnya: try { BasisData.connect(); catch (ClassNotFoundException e) { JOptionPane.showMessageDialog(frame, e.getlocalizedmessage(), "class tidak ditemukan", JOptionPane.ERROR_MESSAGE); catch (SQLException e) { JOptionPane.showMessageDialog(frame, e.getsqlstate() + "Gagal dijalankan", "SQL Gagal dijalankan?", JOptionPane.ERROR_MESSAGE ); 2. Membuat Frame Kode program ini berfungsi untuk membuat sebuah frame yang nantinya frame tersebut menjadi frame induk dari semua halaman yang ada di dalam aplikasi. Berikut kode programnya: frame = new JFrame("Kriptografi"); frame.setcontentpane(new HalamanUtama().panelUtama); frame.setdefaultcloseoperation(windowconstants.exit_on_close); frame.setjmenubar(menubar); frame.setsize(410, 530); frame.setresizable(false); Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize(); frame.setlocation(dimension.width / 2 - frame.getsize().width / 2, dimension.height / 2 - frame.getsize().height / 2); frame.setvisible(true); 82

3. Membuat Menu dan Sub Menu Kode program ini berfungsi untuk membuat menu dan sub menu pada frame aplikasi. Didalam aplikasi ini terdapat menu bar Menu yang mempunyai sub yaitu Home, Registration, Login, Close, dan menu bar Help yang mempunyai sub yaitu About. Berikut kode programnya: JMenu menu = new JMenu("Menu"); JMenuItem menuutama = new JMenuItem("Home"); menu.add(menuutama); JMenuItem menuregistrasi = new JMenuItem("Registration"); menu.add(menuregistrasi); JMenuItem menulogin = new JMenuItem("Login"); menu.add(menulogin); menu.addseparator(); JMenuItem menukeluar = new JMenuItem("Close"); menu.add(menukeluar); JMenu bantuan = new JMenu("Help"); JMenuItem menubantuan = new JMenuItem("About"); bantuan.add(menubantuan); JMenuBar menubar = new JMenuBar(); menubar.add(menu); menubar.add(bantuan); 4. Menampilkan Halaman Home Kode program ini berfungsi untuk menampilkan halaman home pada aplikasi. Prosesnya ketika diklik sub menu Home maka akan langsung menampilkan halaman home. Berikut kode programnya: menuutama.addactionlistener(new ActionListener() { @Override public void actionperformed(actionevent actionevent) { setcontentpane(new HalamanUtama().getPanelUtama()); ); 5. Menampilkan Halaman Registrasi Kode program ini berfungsi untuk menampilkan halaman registrasi pada aplikasi. Prosesnya ketika diklik sub menu Registration maka akan langsung menampilkan halaman registrasi. Berikut kode programnya: 83

menuregistrasi.addactionlistener(new ActionListener() { @Override public void actionperformed(actionevent actionevent) { setcontentpane(new FormRegistration().getPanelRegist()); ); 6. Menampilkan Halaman Login Kode program ini berfungsi untuk menampilkan halaman Login pada aplikasi. Prosesnya ketika diklik sub menu Login maka akan langsung menampilkan halaman Login. Berikut kode programnya: menulogin.addactionlistener(new ActionListener() { @Override public void actionperformed(actionevent actionevent) { setcontentpane(new FormLogin(frame).getPanelLogin()); ); 7. Menampilkan Halaman About Kode program ini berfungsi untuk menampilkan halaman About pada aplikasi. Prosesnya ketika diklik sub menu About maka akan langsung menampilkan halaman About. Berikut kode programnya: menubantuan.addactionlistener(new ActionListener() { @Override public void actionperformed(actionevent actionevent) { setcontentpane(new FormAbout().getPanelAbout()); ); 8. Keluar Aplikasi Kode program ini berfungsi untuk keluar dari aplikasi. Prosesnya ketika diklik sub menu Close maka akan langsung Keluar dari aplikasi. Berikut kode programnya: 84

menukeluar.addactionlistener(new ActionListener() { @Override public void actionperformed(actionevent actionevent) { frame.dispose(); ); 5.2.2.5. Kode Program Halaman Registrasi Pada halaman registrasi terdapat class FormRegistration yang memiliki beberapa kode program yang berfungsi untuk men-setting kalender(date picker), melakukan reset, dan registrasi. Di class ini ada beberapa function yang berfungsi untuk melakukan reset dan validasi pada data yang diinput. Berikut kode program yang ada di halaman Registrasi: 1. Setting kalender (date picker) Kode program ini berfungsi untuk men-setting kalender atau merubah format tanggal-bulan-tahun. Berikut adalah kode programnya: DTTanggalLahir.setDateFormat(new SimpleDateFormat("EEEE, dd MMMM yyyy")); 2. Registrasi Kode program ini berfungsi untuk menyimpan data yang diinput kedalam database, dengan memanggil class BasisData dan function user. function reset, validasi, validasi database juga didefinisikan didalam kode program registrasi untuk melakukan proses reset dan validasi terhadap data yang diinput. Data yang diinput diproses kedalam class dan function yang dicantumkan. Kode program registrasi ini didefinisikan kedalam button Register. Berikut adalah kode programnya: 85

btnregister.addactionlistener(new ActionListener() { @Override public void actionperformed(actionevent e) { if (validasi()) { String username = txtusername.gettext(); String password = txtpassword.gettext(); String email = txtemail.gettext(); String nama_lengkap = txtnamalengkap.gettext(); DateFormat df = new SimpleDateFormat("dd MMMM yyyy"); Date date_tanggal_lahir = DTTanggalLahir.getDate(); String tanggal_lahir = df.format(date_tanggal_lahir); String asal_kota = cmbasalkota.getselecteditem().tostring(); char jenis_kelamin = ' '; switch (cmbjeniskelamin.getselectedindex()) { case 1: jenis_kelamin = 'P'; break; case 2: jenis_kelamin = 'W'; break; String alamat = txtalamat.gettext(); String kode_pos = txtkodepos.gettext(); String handphone = txthp.gettext(); try { switch (BasisData.user( username, password, email, nama_lengkap, tanggal_lahir, asal_kota, jenis_kelamin, alamat, kode_pos, handphone )){ case 1: JOptionPane.showMessageDialog(panelRegist, "Anda berhasil melakukan registrasi.\nsilakan Login.", "Informasi", JOptionPane.INFORMATION_MESSAGE); reset(); break; default: JOptionPane.showMessageDialog(panelRegist, "Anda gagal melakukan registrasi.", "Gagal Registrasi", JOptionPane.ERROR_MESSAGE); catch (SQLException e1) { JOptionPane.showMessageDialog(panelRegist, e1.getlocalizedmessage(), "Kesalahan SQL", JOptionPane.ERROR_MESSAGE); ); 86

3. Reset Kode program ini berfungsi untuk melakukan reset/hapus terhadap data yang diinput kedalam field-field yang sudah disediakan. Kode program ini akan didefiniskan kedalam button Reset. jadi, button Reset mempunyai fungsi untuk mereset atau menghapus data yang diinput kedalam field. Berikut kode programnya: btnreset.addmouselistener(new MouseAdapter() { @Override public void mouseclicked(mouseevent e) { super.mouseclicked(e); switch (JOptionPane.showConfirmDialog(panelRegist, "Anda yakin ingin mereset?", "Reset Formulir", JOptionPane.OK_CANCEL_OPTION)){ case JOptionPane.OK_OPTION: reset(); break; ); 4. Function reset Function reset adalah function yang mempunyai fungsi untuk menghapus data. Dibuatnya function ini bertujuan untuk menghindari pengetikkan ulang terhadap kode program untuk menghapus data. Dengan dibuatnya function ini otomatis untuk melakukan penghapusan data hanya memanggil function reset saja. Berikut kode programnya: private void reset() { txtusername.settext(""); txtpassword.settext(""); txtemail.settext(""); txtnamalengkap.settext(""); DTTanggalLahir.setText(""); cmbasalkota.setselectedindex(0); cmbjeniskelamin.setselectedindex(0); txtalamat.settext(""); txtkodepos.settext(""); txthp.settext("+62"); 5. Function validasi Function validasi adalah function yang mempunyai fungsi untuk memvalidasi data yang diinput dengan batasan-batasan yang sudah ditentukan. Dibuatnya function ini bertujuan untuk menghindari pengetikkan ulang terhadap 87

kode program untuk memvalidasi data. Dengan dibuatnya function ini otomatis untuk melakukan validasi data hanya memanggil function validasi saja. Berikut kode programnya: private boolean validasi() { List<String> errmessage = new ArrayList<String>(); if (txtusername.gettext().isempty()) errmessage.add("username belum terisi."); else if (txtusername.gettext().contains(" ")) errmessage.add("username tidak boleh ada spasi."); else if (txtusername.gettext().length() < 6) errmessage.add("username harus 6 karakter atau lebih."); else if (txtusername.gettext().length() > 15) errmessage.add("username tidak boleh melebihi 15 karakter."); if (txtpassword.gettext().isempty()) errmessage.add("password belum terisi."); else if (txtpassword.gettext().length() < 6) errmessage.add("password harus 6 karakter atau lebih."); else if (txtpassword.gettext().length() > 12) errmessage.add("password tidak boleh melebihi 12 karakter."); if (txtemail.gettext().isempty()) errmessage.add("email belum terisi."); else if (!txtemail.gettext().contains("@")) errmessage.add("email tidak valid."); else if (txtemail.gettext().length() > 35) errmessage.add("email tidak boleh melebihi 35 karakter."); if (txtnamalengkap.gettext().isempty()) errmessage.add("nama lengkap belum terisi."); else if (txtnamalengkap.gettext().length() < 6) errmessage.add("nama lengkap harus 6 karakter atau lebih"); else if (txtnamalengkap.gettext().length() > 50) errmessage.add("nama lengkap tidak boleh melebihi 50 karakter."); Date hariini = new Date(); Calendar calendar = Calendar.getInstance(); calendar.add(calendar.year, -7); Date TenYearBefore = calendar.gettime(); if (DTTanggalLahir.getText().isEmpty()) errmessage.add("tanggal lahir belum terisi."); else if (DTTanggalLahir.getDate().after(hariIni)) errmessage.add("tanggal lahir tidak boleh di masa depan."); else if (DTTanggalLahir.getDate().after(TenYearBefore)) errmessage.add("anda harus berusia 7 tahun atau lebih untuk mendaftar."); if (cmbasalkota.getselectedindex() == 0) errmessage.add("asal kota belum terpilih."); if (cmbjeniskelamin.getselectedindex() == 0) errmessage.add("jenis kelamin belum terpilih."); if (txtalamat.gettext().isempty()) errmessage.add("alamat masih belum terisi."); else if (txtalamat.gettext().length() < 10) errmessage.add("alamat harus 10 karakter atau lebih."); else if (txtalamat.gettext().length() > 100) errmessage.add("alamat tidak boleh melebihi 100 karakter atau lebih."); 88

if (txtkodepos.gettext().isempty()) errmessage.add("kode pos masih belum terisi."); else if (txtkodepos.gettext().length() < 5) errmessage.add("alamat harus 5 karakter atau lebih."); else if (txtkodepos.gettext().length() > 10) errmessage.add("alamat tidak boleh melebihi 10 karakter atau lebih."); if (txthp.gettext().isempty()) errmessage.add("nomor ponsel masih belum terisi."); else if (txthp.gettext().length() < 9) errmessage.add("nomor ponsel tidak lengkap (harus 8 karakter lebih)."); else if (txthp.gettext().length() > 15) errmessage.add("nomor ponsel tidak boleh melebihi 15 karakter lebih)."); if (errmessage.size() == 0) return true; else { String pesankesalahan = "Kesalahan berikut perlu Anda tindak lanjuti :"; int jumlahkesalahan = 1; for (String e: errmessage) { pesankesalahan = pesankesalahan + "\n" + String.valueOf(jumlahKesalahan) + ". " + e; jumlahkesalahan = jumlahkesalahan + 1; JOptionPane.showMessageDialog(panelRegist, pesankesalahan, "Form Belum Lengkap", JOptionPane.ERROR_MESSAGE); return false; 5.2.2.6. Kode Program Halaman Login Pada halaman login terdapat class FormLogin yang memiliki beberapa kode program yang berfungsi untuk melakukan login, dan menampilkan halaman registrasi. Di class ini terdapat pendefinisian class dan function BasisData. Berikut kode program yang ada di halaman Login: 1. Login Kode program ini berfungsi untuk melakukan proses login. Kode program ini di definisikan kedalam button Login. Pada kode program ini ada pendefinisian class BasisData dan function login. Class dan function tersebut berfungsi untuk memproses data username dan password yakni memeriksa apakah data yang diinput tersebut sama dengan data yang terdapat di database. Jika proses login berhasil maka akan menampilkan formberhasillogin. Berikut adalah kode programnya: 89

btnlogin.addactionlistener(new ActionListener() { @Override public void actionperformed(actionevent e) { String username = txtusername.gettext(); String password = txtpassword.gettext(); try { HasilLogin hasil = BasisData.login(username, password); if (hasil.issucces){ JOptionPane.showMessageDialog(panelLogin, "Berhasil Login", "Confirmation", JOptionPane.INFORMATION_MESSAGE); formberhasillogin = new JFrame("Display Sistem"); formberhasillogin.setcontentpane(new FormBerhasilLogin(formBerhasilLogin, formlogin).getpanelberhasillogin()); formberhasillogin.setdefaultcloseoperation(windowconstants.exit_on_close) ; formberhasillogin.setsize(500,520); formberhasillogin.setresizable(false); Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize(); formberhasillogin.setlocation(dimension.width / 2 - formberhasillogin.getsize().width / 2, dimension.height / 2 - formberhasillogin.getsize().height / 2); formberhasillogin.setvisible(true); txtusername.settext(""); txtpassword.settext(""); formlogin.setvisible(false); else{ JOptionPane.showMessageDialog(panelLogin,"Username Dan Password Cocok", "Confirmation", JOptionPane.INFORMATION_MESSAGE); catch (SQLException e1) { JOptionPane.showMessageDialog(panelLogin, e1.getlocalizedmessage(), "SQL Exeption", JOptionPane.ERROR_MESSAGE); ); 2. Menampilkan Halaman Registrasi Pada kode program ini berfungsi untuk menampilkan halaman registrasi. Kode program ini didefinisikan kedalam button Register. User akan mengklik button ini jika belum mempunyai akun untuk melakukan login. Berikut adalah kode program untuk menampilkan halaman registrasi: btnregister.addactionlistener(new ActionListener() { @Override public void actionperformed(actionevent e) { HalamanUtama.setContentpane(new FormRegistration().getPanelRegist()); ); 90

5.2.2.7. Kode Program Halaman Berhasil Login Pada kode program halaman berhasil login terdapat class FormBerhasilLogin yang memiliki kode program yang berfungsi untuk melakukan logout. Kode program untuk melakukan proses logout didefinisikan kedalam button Logout. Berikut kode program yang ada di halaman berhasil login untuk melakukan logout: btnlogout.addactionlistener(new ActionListener() { @Override public void actionperformed(actionevent e) { formberhasillogin.setvisible(false); formlogin.setvisible(true); ); 5.2.3. Implementasi Basis Data Basis data untuk aplikasi kriptografi untuk username dan password yaitu db_aplikasi. Pada basis data untuk aplikasi ini memiliki 1 tabel yaitu tabel user yang memiliki field-field yang nantinya berfungsi untuk menyimpan data yang diinput, dimana data-data tersebut dimasukkan sesuai field yang sudah ditentukan. Struktur dari tabel user dapat dilihat pada Tabel 5.3. Tabel 5.3. Struktur Tabel User 5.3. Pengujian Sistem Pada sebuah proses pembuatan sistem perlu dilakukan proses pengujian sebagai verifikasi atas sistem yang telah dibuat. Pengujian sistem disini untuk mengetahui kemungkinan terdapat bug atau kesalahan dari sistem tersebut serta untuk mengetahui fungsi-fungsi yang terdapat didalam modul-modul sistem berjalan sesuai dengan yang diinginkan. Pada tahap pengujian sistem ini meliputi metode pengujian, skenario pengujian, hasil pengujian dan kesimpulan hasil pengujian. 91

5.3.1. Metode Pengujian Pengujian sistem dengan metode black box dilakukan dengan menjalankan aplikasi kriptografi untuk username dan password dengan key berdasarkan nomor urut registrasi terlebih dahulu. Setelah itu dilakukan pengujian dengan melakukan pengisian terhadap field-field yang tersedia dan menekan tombol-tombol yang terdapat aplikasi tersebut apakah sesuai dengan yang diharapkan. 5.3.2. Skenario Pengujian Proses pengujian terhadap sistem yang telah dibuat, diperlukan skenario pengujian yang fungsinya untuk memastikan sistem tersebut berjalan sesuai dengan yang diharapkan. Skenario pengujian dilakukan dengan cara satu persatu dari setiap modul sistem yang dibuat. Skenario pengujian ini menggunakan metode black box testing yaitu dengan metode test dari perspektif eksternal, artinya tidak ada informasi mengenai struktur internal software. Berikut Tabel 5.4. menjelaskan tentang skenario pengujian. 92

Tabel 5.4. Skenario Pengujian Skenario Sifat Pengujian Hasil yang diharapkan Halaman Pembuka membuka menu aplikasi Sistem menampilkan pilihan menu aplikasi memilih menu home Sistem menampilkan halaman home Menu halaman utama memilih menu registrasi Sistem menampilkan halaman registrasi memilih menu login Sistem menampilkan halaman login memilih menu about Sistem menampilkan halaman about memilih menu keluar Sistem menutup aplikasi Halaman registrasi menginput data dan menekan tombol register menekan tombol reset Sistem mengenkripsi data yang sudah ditentukan dan menyimpan semua data kedalam database Sistem menghapus data yang diinput kedalam field-field yang disediakan Halaman login memasukkan username dan password, menekan tombol login menekan tombol register Sistem akan masuk kehalaman berhasil login Sistem menampilkan halaman registrasi Halaman berhasil login menekan tombol logout Sistem akan keluar dari halaman berhasil login, sistem menampilkan halaman login 5.3.3. Hasil Pengujian Setelah melakukan pengujian terhadap sistem yang di rancang, dengan mendefinisiikan skenario pengujian yang sudah ditentukan maka didapat hasil pengujian yang pastinya sesuai dengan apa yang diharapkan. Artinya sesuai dengan skenario pengujian yang sudah ditentukan. mengalami kesalahan terhadapa sistem yang dirancang. Berikut adalah penjelasan hasil dari pengujian sistem yang telah dirancang. Dimulai pada Tabel 5.5. 93

Tabel 5.5. Hasil Pengujian Skenario Sifat Pengujian Hasil yang diharapakn Hasil pengujian yang sesuai Hasil pengujian yang tidak sesuai Status akhir Sistem Dapat Sukses membuka menampilkan menampilkan menu pilihan menu pilihan menu Halaman aplikasi aplikasi pembuka Keadaan dapat normal membuka sistem tidak menampilkan sukses menu ada yang pilihan menu aplikasi berubah Sistem Masuk Sukses memilih menampilkan kehalaman menu home halaman home home Keadaan dapat normal memilih sistem tidak masuk sukses Menu halaman utama menu home memilih ada yang berubah Sistem menampilkan Masuk kehalaman kehalaman home Sukses menu halaman registrasi registrasi registrasi Sistem tetap dapat normal memilih pada masuk sukses menu dihalaman kehalaman registrasi utama registrasi 94

Tabel 5.6. Hasil Pengujian (Lanjutan) Skenario Sifat Pengujian Hasil yang diharapakn Hasil pengujian yang sesuai Hasil pengujian yang tidak sesuai Status akhir memilih menu login Sistem menampilkan halaman login Masuk kehalaman login Sukses Keadaan dapat normal memilih sistem tidak masuk sukses menu login berubah kehalaman login Sistem Masuk Sukses Menu halama utama memilih menu about menampilkan halaman about Keadaan kehalaman about dapat normal memilih sistem tidak masuk sukses menu about berubah kehalaman about Sistem Aplikasi Sukses memilih menutup tertutup menu keluar aplikasi Keadaan dapat normal memilih sistem tidak menutup sukses menu keluar berubah aplikasi 95

Tabel 5.7. Hasil Pengujian (Lanjutan) Skenario Sifat Pengujian Hasil yang diharapakn Hasil pengujian yang sesuai Hasil pengujian yang tidak sesuai Status akhir Sistem Data berhasil Sukses menginput mengenkripsi di enkripsi dan data dan data yang semua data menekan sudah tersimpan di tombol ditentukan dan database register menyimpan semua data kedalam Halaman database registrasi Sistem dapat normal tidak menampilkan mengenkripsi sukses menginput pemberitahuan dan data terlebih kepada menyimpan dahulu pengguna data kemudian untuk menekan menginput tombol data register 96

Tabel 5.8. Hasil Pengujian (Lanjutan) Skenario Sifat Pengujian Hasil yang diharapakn Hasil pengujian yang sesuai Hasil pengujian yang tidak sesuai Status akhir Sistem Data berhasil Suksess menginput mendekripsi didekripsi dan username data enkripsi berhasil dan pada database masuk password dan kedalam menampilkan halaman Halaman halaman berhasil login login berhasil login Sistem Gagal normal menginput menampilkan masuk sukses username pemberitahuan kedalam dan data yang halaman password diinput tidak berhasil valid login Sistem Halaman Sukses menekan menutup berhasil login tombol halaman sukses ditutup logout berhasil login dan masuk ke Halama lalu halaman login berhasil menampilkan login halaman login ada Tetap berada normal menekan perubahan di halaman sukses tombol terhadap berhasil logout sistem login 97

5.3.4. Analisa Hasil Pengujian Tahap pengujian telah selesai dilakukan, dari proses tersebut didapatkan hasil pengujian terhadap sistem nyang telah dirancang. Hasil ini akan di analisis untuk mengetahui kesimpulan dari hasil pengujian yang sudah dilaksanakan. Berikut analisa hasil pengujian sistem: 1. Proses pada tiap menu atau halaman aplikasi sesuai dengan apa yang diharapkan. 2. Tombol- tombol pada tiap halaman dapat berfungsi sesuai dengan apa yang diharapkan. Artinya berjalan sesuai fungsinya. 3. Fungsi-fungsi pada aplikasi kriptografi untuk username dan password dengan key berdasarkan nomor urut registrasi menggunakan algoritma Caesar cipher berjalan sesuai dengan harapan. 98