46
BAB IV IMPLEMENTASI DAN PENGUJIAN
4.1.
Implementasi
Implementasi aplikasi adalah implementasi dari hasil analisa dan desain aplikasi yang telah dibuat sebelumnya agar dapat dipahami jalannya aplikasi dalam pengolahan data karyawan untuk melihat informasi tentang karyawan. Sintaks 4.1 Login ke aplikasi pengolahan data karyawan private void Masuk(){ try{ String nama=tuser.getText(); String pass=new String(ppas.getPassword()); s=c.createStatement(); String sql="Select*From login where username='"+nama+"' and password='"+pass+"'"; r=s.executeQuery(sql); int baris=0; while(r.next()){ baris=r.getRow(); } if(baris==1){ BersihField(); } else{ BersihField(); JOptionPane.showMessageDialog(null,"Login gagal"); } } catch(SQLException e){ JOptionPane.showMessageDialog(null,e); } }
Sintaks ini merupakan sintaks login yaitu nama bertipe string, dan password mempunyai tipe string sql merupakan perintah yang menghubungkan database dengan input yang bertipe string. Program akan mengeksekusi setelah nama dan password di isi, jika tidak perintah gagal
47
Sintaks 4.2 Buka koneksi ke database karyawan private void BukaKoneksi(){ try{ Class.forName("com.mysql.jdbc.Driver"); c=DriverManager.getConnection("jdbc:mysql://localhost/db_karyawan","root",""); System.out.println("Koneksi sukses"); } catch(Exception e){ System.out.println(e); } }
Sintaks ini adalah sintaks untuk mengkoneksikan mysql ke database netbeans, pesan koneksi sukses jika eksekusi sambungan database dan netbeans lancar. Sintaks 4.3 Untuk simpan data ke database karyawan private void SimpanData(){ try{ String sql="Insert into karyawan values('"+tkd_kywn.getText()+"',"+ "'"+tnm_kywn.getText()+"','"+ttemp.getText()+"','"+ttgl.getText()+"',"+ "'"+cb_pend.getSelectedItem()+"','"+cb_jab.getSelectedItem()+"',"+ "'"+ttelp.getText()+"','"+talm.getText()+"')"; s.executeUpdate(sql); s.close(); JOptionPane.showMessageDialog(null,"Data berhasil ditambah"); BersihField(); BacaTableKaryawan(); } catch(SQLException e){ JOptionPane.showMessageDialog(null,e); } }
Potongan kode untuk mengentry data karyawan dengan menggunakan sintaks sql “insert into karyawan “ . Jika program berhasil akan menampilkan pesan “Data berhasil Ditambah”.
48
Sintaks 4.4 Untuk baca tabel karyawan private void BacaTableKaryawan(){ try{ s=c.createStatement(); String sql="Select*from karyawan"; r=s.executeQuery(sql); ResultSetMetaData m=r.getMetaData(); int kolom=m.getColumnCount(); int baris=0; while(r.next()){ baris=r.getRow(); } datakaryawan=new Object[baris][kolom]; int x=0; r.beforeFirst(); while(r.next()){ datakaryawan[x][0]=r.getString("kd_kywn"); datakaryawan[x][1]=r.getString("nm_kywn"); datakaryawan[x][2]=r.getString("temp_lhr"); datakaryawan[x][3]=r.getString("tgl_lhr"); datakaryawan[x][4]=r.getString("pend"); datakaryawan[x][5]=r.getString("jab"); datakaryawan[x][6]=r.getString("no_telp"); datakaryawan[x][7]=r.getString("alamat"); x++; } catch(SQLException e){ JOptionPane.showMessageDialog(null,e); } } DefaultTableModel(datakaryawan,label2)); }
Sintaks ini untuk metadata database yaitu memanfaatkan
sintaks
Resulsetmetadata yang fungsinya untuk menyediakan informasi mengenai objekobjek database , seperti table dan kolom. Object Resulset Yaitu kd_kywn,nm, kywn, temp_lhr, tgl_lhr, pend, jab, no_telp, alamat
49
Sintaks 4.5 Untuk filter data karyawan private void cariData(Integer kriteria, String kunci){ // replace tanda kutip tunggal kunci=kunci.replaceAll("'","''"); String sKunci = ""; switch(kriteria) { case 0: sKunci = "nm_kywn"; break; case 1: sKunci = "alamat"; break; } String sql="Select * from " +"karyawan where "+sKunci+ " LIKE '%"+kunci+"%' "; System.out.println(sql); try{ r=s.executeQuery(sql); r.last(); if (r.getRow()==0){ JOptionPane.showMessageDialog(null,"Data tidak Ditemukan"); setTitle("Pencarian Data"); return ; }else{ setTitle("Ditemukan"+r.getRow()+"data"); }
50
Sintaks 4.5 Lanjutan sintaks untuk filter data karyawan ResultSetMetaData m=r.getMetaData(); int kolom=m.getColumnCount(); int baris=0; r.beforeFirst(); while(r.next()){ baris=r.getRow(); } datakaryawan=new Object[baris][kolom]; int x=0; //kembali kursor ke awal r.beforeFirst(); while(r.next()){ datakaryawan[x][0]=r.getString("kd_kywn"); datakaryawan[x][1]=r.getString("nm_kywn"); datakaryawan[x][2]=r.getString("temp_lhr"); datakaryawan[x][3]=r.getString("tgl_lhr"); datakaryawan[x][4]=r.getString("pend"); datakaryawan[x][5]=r.getString("jab"); datakaryawan[x][6]=r.getString("no_telp"); datakaryawan[x][7]=r.getString("alamat"); x++; } tbl_kywn.setModel(new DefaultTableModel(datakaryawan,label2)); } catch(SQLException e){ JOptionPane.showMessageDialog(null,e); } }
Sintaks ini merupakan sintaks untuk memfilter dengan kategori berdasarkan nama karyawan dan alamat karyawan dengan sintaks variabel string sql="Select * from
+"karyawan where "+sKunci+ " LIKE '%"+kunci+"%' ". jika nama
karyawan dan alamat karyawan tidak ada pesan akan di tampilkan data tidak di temukan
51
Sintaks 4.6 Untuk edit data private void EditData(){ try{ String sql="Update karyawan Set kd_kywn='"+tkd_kywn.getText()+"'," + "nm_kywn='"+tnm_kywn.getText()+"',temp_lhr='"+ttemp.getTe xt()+"'," +"tgl_lhr='"+ttgl.getText()+"',pend='"+cb_pend.getSelecte dItem()+"'," + "jab='"+cb_jab.getSelectedItem()+"',no_telp='"+ttelp.getT ext()+"'," + "alamat='"+talm.getText()+"' where kd_kywn='"+tkd_kywn.getText()+"'"; s.executeUpdate(sql); s.close(); JOptionPane.showMessageDialog(null,"Data berhasil diedit"); BersihField(); BacaTableKaryawan(); } catch(SQLException e){ JOptionPane.showMessageDialog(null,e); } }
Sintaks ini merupakan sintaks untuk mengubah data karyawan dengan potongan sintaks “Update karyawan..” jika program berhasil akan tampil pesan “Data berhasil diedit”. Sintaks 4.7 Untuk hapus data private void HapusData(){ try{ String sql="Delete from karyawan where kd_kywn='"+tkd_kywn.getText()+"'"; s.executeUpdate(sql); s.close(); JOptionPane.showMessageDialog(null,"Data berhasil dihapus"); BersihField(); BacaTableKaryawan(); } catch(SQLException e){ JOptionPane.showMessageDialog(null,e); } }
52
Sintaks ini merupakan sintaks untuk menghapus data karyawan dengan menggunakan potongan
sintaks sql “Delete into karyawan “ . Jika program
berhasil akan menampilkan pesan “Data berhasil Dihapus”. Sintaks 4.8 Program java AES untuk mengenkripsi dan mendekripsi import java.security.Key; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; public class AESencrp { private static final String ALGO = "AES"; private static final byte[] keyValue = new byte[] { 'T', 'h', 'e', 'B', 'e', 's', 't', 'S', 'e', 'c', 'r','e', 't', 'K', 'e', 'y' }; public static String encrypt(String Data) throws Exception { Key key = generateKey(); Cipher c = Cipher.getInstance(ALGO); c.init(Cipher.ENCRYPT_MODE, key); byte[] encVal = c.doFinal(Data.getBytes()); String encryptedValue = new BASE64Encoder().encode(encVal); return encryptedValue; } public static String decrypt(String encryptedData) throws Exception { Key key = generateKey(); Cipher c = Cipher.getInstance(ALGO); c.init(Cipher.DECRYPT_MODE, key); byte[] decordedValue = new BASE64Decoder().decodeBuffer(encryptedData); byte[] decValue = c.doFinal(decordedValue); String decryptedValue = new String(decValue); return decryptedValue; } private static Key generateKey() throws Exception { Key key = new SecretKeySpec(keyValue, ALGO); return key; } }
Algoritma AES sudah terintegrasi dengan bahasa pemograman java. Dalam java Development Kit sudah tersedia paket class-class yang dapat di
53
gunakan. Untuk proses enkripsi maupun deskripsi menggunakan algoritma AES ini. Paket-paket class tersebut yaitu Java.Security.* dan javax.Chiper. Penjelasan penggunaan dari library sebagai berikut; 1. Import Security Key : nama paket yang merupakan library key yang mempunya fungsi memberikan keamanan dengan kunci rahasia. 2. Javax.Crypto.Chiper: nama paket yang merupakan library chiper yang mempunyai fungsi chipper kriptografi untuk enkripsi dan dekripsi membentuk inti dari JCE (Java Cryptography Extension). 3. Javax.Crypto.Spec.SecretkeySpec: nama paket yang merupakan library Secretkeyspec, paket ini tidak mengandung metode atau konstanta. Satusatunya tujuannya adalah untuk memberikan security. 4. Sun.misc.Base64.Decoder:
nama paket
yang merupakan library
Base64Decoder kelas ini mengimplementasikan decoderbase64 karakter. Byte
[]
decorderdedValue
=
new
Base64Decoder().decodeBuffer(encryptedData); ini akan memecahkan kode string dalam buffer string dan memberikan sebuah array byte dalam decorded value. 5. Sun.misc.Base64.encoder:
nama
paket
yang
merupakan
library
Base64Encoder, kelas ini mengimplementasikan encoder karakter base64. Teks dikodekan hanya akan mulai dengan baris pertama dari teks di kodekan dan di akhiri dengan baris terakhir teks dikodekan.
4.2.
Implementasi Basis Data
Implementasi basis data yang digunakan untuk aplikasi ini disesuaikan dengan class diagram yang dibuat di Bab III. Pada gambar dapat dilihat bahwa tabel yang dirancang sudah terpasang sesuai kebutuhan. Tabel login
54
Gambar 4.1 Implementasi Tabel Login Terdapat Column name kd_kywn, username, password. Pada gambar ini dapat dilihat bahwa tabel karyawanmemiliki kolom-kolom sesuai dengan perancangan di bab III.
Gambar 4.2 Implementasi Tabel Karyawan
4.3.
Implementasi Antarmuka
Implementasi antar muka penting untuk dirancang karena harus dibuat menarik dan tidak sukar dalam penggunaanya dan juga pengguna dapat berinteraksi dengan baik berdasarkan sistem yang telah dirancang. Berikut implementasi dari antarmuka sistem yang telah dibangun
55
4.3.1 Implementasi Antarmuka Form Login Form login ini adalah tampilan awal
user
setelah menjalankan aplikasi.
Implementasi antarmuka form login dapat dilihat pada gambar
Gambar 4.3 Implementasi antarmuka form login
4.3.2 Implementasi Antarmuka Form Pilihan Menu Form Ini untuk pilihan awal mengentry data atau melihat hasil data Implementasi antarmuka form pilihan menu dapat dilihat pada gambar
Gambar 4.4 Implementasi Antarmuka Form Pilihan Menu
4.3.3 Implementasi Antarmuka Form Input Data Karyawan Form ini untuk mengisi data – data karyawan Form ini memiliki tombol tambah dan show data. Implementasi antarmuka form input data karyawan dapat dilihat pada gambar
56
Gambar 4.5 Implementasi Antarmuka Form Input Data Karyawan 4.3.4 Implementasi Antarmuka Form ShowData Form ini untuk menampilkan hasil input data, dan memiliki tombol filter untuk memfilter kategori nama karyawan dan alamat karyawan, memiliki tombol revisi data, tambah data dan tobol print berguna untuk mengeprint data karyawan karyawan. Implementasi antarmuka form show data dapat dilihat pada gambar
. Gambar 4.6 Implementasi antarmuka Form Show Data
4.3.5 Implementasi Antarmuka Form Revisi Data Form interface untuk merubah data karyawan , Form ini memiliki tombol edit, hapus,tambah data, dan show data Implementasi antarmuka Form revisi data dapat di lihat pada gambar
57
Gambar 4.7 Implementasi antarmuka form revisi data
4.3.6 Implementasi AES Isi Tabel yang terenkripsi Isi record yang telah terenkripsi dapat dilihat pada gambar Record ini bisa di lihat dengan menggunakan kode “select * from karyawan “ pada database.
Gambar 4.8 Isi record yang telah terenkripsi
4.3.7 Implementasi Antarmuka Form User Form ini mirip dengan form pilihan bedanya tidak ada tombol input data. Implementasi antarmuka form user dapat dilihat pada gambar
58
Gambar 4.9 Implementasi antarmuka form user
4.3.8 Implementasi Antarmuka Form ShowData User Form ini mirip dengan form showdata bedanya formshowdata user tidak memiliki tombol revisi data dan tambah data. Implementasi antarmuka form showdata user dapat dilihat pada gambar
Gambar 4.10 Implementasi antarmuka form showdata user
4.4.
Verifikasi dan Pengujian
Pengujian sistem dilakukan untuk menguji program yang telah dibuat apakah sudah sesuai dengan rancangan atau tidak. Pengujian yang akan dilakukan yaitu
59
menguji proses pengentrian data, proses merevisi data,proses memfilter data, dan mereprint data karyawan.
4.5.
Skenario Pengujian
Uji coba dilakukan setelah pembuatan perangkat lunak selesai dengan percobaan pada komputer tampilan pengguna.Dengan melakukan uji coba ini dapat dilakukan untuk mengetahui kemungkinan terjadinya kesalahan dan untuk memastikan fungsi-fungsi yang terdapat pada modul-modul aplikasi ini apakah sudah berjalan dengan baik.
4.5.1 Metode Black Box Tahapan pengujian ini meliputi berbagai skenario pengujian, hasil pengujian dan analisis hasil pengujian. Dalam proses pengujiannya metode yang digunakan adalah black box. Metode black box merupakan pengujian dengan metode test dari persfektif eksternal, tidak ada informasi mengenai struktur internal perangkat lunak baik yang berkaitan dengan desain atau listing kode program. Pengujian ini bisa dilakukan baik secara fungsional maupun non-fungsional, walaupun pada umumnya yang dilakukan kebanyakan secara fungsional. Pengujian ini dapat dilakukan pada semua level tes. Semakin tinggi level yang diuji, semakin besar keharusan untuk melakukan pengujian menggunakan metode black box. Pengujian tipe ini dapat mendeteksi adanya bagian dari spesifikasi yang diimplementasikan, tetapi tidak bisa mendeteksikeseluruhan kemungkinan kesalahan operasional.
Tabel 4.1 Skenario pengujian dengan aktor administrator No
1
Deskripsi
Sifat
Kondisi Awal
Hasil yang diinginkan
Normal : Aplikasi Berjalan
Tampilkan Aplikasi login sukses
Aplikasi Login sukses
Tidak Normal : gagal di jalankan
Login Aplikasi gagal
tidak bisa mengakses aplikasi
Menjalankan aplikasi
60
2
3
4
5
6
7
Form pilihan Input Data
Input Data Karyawan
Tombol Filter
Tombol Edit Data
Tombol Delete
Tombol Print
Normal : Menampilkan Form input data karyawan
Tampilkan Form Input Data
Tampilan Form Input Data
Tidak Normal : tidak bisa menampilkan form input data karyawan
Tidak bisa menampilkan form input data
Tidak menampilkan Form input
Normal : Menampilkan Form input data karyawan
Tampilkan Form Input Data
Tampilan Form Input Data
Tidak Normal : tidak bisa menampilkan form input data karyawan
Tidak bisa menampilkan form input data
Tidak menampilkan Form input
Normal : Menampilkan hasil filter pada tabel
Tampilkan Hasil filter pada table
Tampilan hasil filter pada tabel
Tidak Normal : tidak bisa menampilkanhasil filter pada tabel
Tidak bisa menampilkan hasil filter
Tidak menampilkan Form input
Normal : Menampilkan pesan data berhasil di edit
Tampilkan pesan "Data berhasil diedit"
Tidak Normal : tidak bisa menampilkan pesan "data berhasil diedit"
Tidak bisa menampilkan pesan "berhasil diedit"
Normal : Menampilkan pesan data berhasil di hapus
Tampilkan pesan "Data berhasil dihapus"
Tidak Normal : tidak bisa menampilkan pesan "data berhasil dihapus"
Tidak bisa menampilkan pesan "berhasil dihapus"
Normal : Menampilkan Dialog print data
Menampilkan Dialog print data
Tampilkan Dialog Print
Tidak Normal : tidak menampilkan Dialog Print
Tidak menampilkan Dialog Print Data
Tidak menampilkan Dialog Print Data
Tampilan pesan "Data berhasil diedit"l Tidak menampilkan pesan "Data berhasil diedit" Tampilan pesan "Data berhasil dihapus" Tidak menampilkan pesan "Data berhasil dihapus"
61
Tabel 4.2 Skenario pengujian dengan aktor user No
1
Deskripsi
Sifat
Kondisi Awal
Hasil yang diinginkan
Normal : Aplikasi Berjalan
Tampilkan Aplikasi login sukses
Aplikasi Login sukses
Tidak Normal : gagal di jalankan
Login Aplikasi gagal
tidak bisa mengakses aplikasi
Normal : Menampilkan tabel data
Tampilkan tabel data
Tampilkan tabel data
Tidak Normal : tidak menampilkan tabel data
Tidak bisa menampilkan tabel data
Tidak bisa menampilkan tabel data
Menjalankan aplikasi
2
Tombol Show Data
3
Tombol Filter
4
Tombol Print
Normal : Menampilkan hasil filter pada tabel
Tampilkan Hasil filter pada table
Tidak Normal : tidak bisa menampilkanhasil filter pada tabel
Tidak bisa menampilkan hasil filter
Normal : Menampilkan Dialog print data
Menampilkan Dialog print data
Tidak Normal : tidak menampilkan Dialog print data
Tidak menampilkan Dialog print data
Tampilan hasil filter pada tabel Tidak menampilkan Form input Tampilkan Dialog print data Tidak menampilkan Dialog print data
Tabel 4.3 Hasil pengujian dengan aktor administrator No
Deskripsi
Kondisi Awal
Hasil yang diinginkan
Hasil Pengujian
1
Menjalankan aplikasi
Tampilkan Aplikasi login sukses
Bisa Login
Berhasil
2
Form pilihan Input Data
Menampilkan Form Input data karyawan
Tampilkan Form Input Data Karyawan
Berhasil
3
Input Data
Menampilkan pesan "Data berhasil ditambah"
Tampilkan pesan "Data berhasil ditambah"
Berhasil
4
Tombol Filter
Menampilkan hasil filter pada tabel
Tampilkan hasil filter pada table
Berhasil
5
Tombol Edit
Menampilkan pesan "Data berhasil diEdit"
Tampilkan pesan "Data berhasil diEdit"
Berhasil
62
6
Tombol Delet
Menampilkan pesan "Data berhasil diDelete"
Tampilkan pesan "Data berhasil diDelet"
Berhasil
7
Print
Menampilkan dialog Print
Tampilkan Dialogprint
Berhasil
Tabel 4.4 Hasil pengujian dengan aktor user No
Deskripsi
Kondisi Awal
Hasil yang diinginkan
Hasil Pengujian
1
Menjalankan aplikasi
Tampilkan Aplikasi login sukses
Bisa Login
Berhasil
2
Tombol ShowData
Menampilkan Tabel Data
Tampilkan Tabel Data
Berhasil
3
Tombol Filter
Tampilkan hasil filter pada table
Berhasil
4
Print
Tampilkan Dialog print data
Berhasil
Menampilkan hasil filter pada tabel Menampilkan Dialog print data
4.5.2 Metode White Box Testing Merupakan metode desain uji kasus yang menggunakan struktur control dari desain procedural untuk menghasilkan kasus kasus uji. Dengan menggunakan metode pengujian white box akan memperoleh test case yang : 1. Menjamin bahwa semua jalur independen didalam modul telah dieksekusi sedikitnya satu kali 2. Melaksanakan semua keputusan logis pada sisi benar dan yang salah 3. Melaksanakan semua loop pada batas mereka dalam batas-batas operasional mereka 4. Melakukan struktur dan internal untuk memastikan keakuratannya Kenapa pengujian white box : 1. Adanya kesalahan logic dan asumsi yang tidak tepat pada setiap kemungkinan eksekusi 2. Ada kemungkinan alur program yang tidak tereksekusi 3. Ada kemungkinan kesalahan typography yang sulti di temukan kalau tidak di jalankan
63
4.5.2.1 Teknik Pengujian White Box 1. Notasi Grafik Alir Pada Login Sebuah Notasi sederhana untuk representative aliran control yang di sebut grafik alir (grafik program). Sintaks 4.9 PDL dengan node-node yang di identifikasi dari Sintaks Login private void bt_okActionPerformed(java.awt.event.ActionEvent evt) { try { xsistem_karyawan.Admin mn= new Admin(); xsistem_karyawan.User mno= new User(); BukaKoneksi(); s = c.createStatement(); String sql = "SELECT COUNT(*) AS jumlah_baris FROM login WHERE username='" + tuser.getText() + "'"; r = s.executeQuery(sql); int i = 0; r.beforeFirst();
1
while (r.next()) { i = r.getInt("jumlah_baris");
2
}
3
if ( i == 0 ) { JOptionPane.showMessageDialog(this, "User name " + tuser.getText() + " belum
terdaftar!");
4
return ; } sql = "SELECT * FROM login WHERE username='" + tuser.getText() + "' AND
5
password=MD5('" + ppas.getText() + "')";
6
r = s.executeQuery(sql); r.beforeFirst(); String status = ""; while (r.next()) { status = r.getString("status");
7
} if ( status.isEmpty() ) { JOptionPane.showMessageDialog(this, "Password yang Anda
8
masukkan salah!");
9
return ; } 10
if (status.equals("0")) { mn.show(); /* Untuk menampilkan Tabel admin*/
11
} else { mno.show(); /* Untuk menampilkan Tabel user*/
12
} } catch (SQLException ex) { Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex); } }
dispose();
13
64
Grafik Alir dari Login dapat di lihat pada gambar
Gambar 4.11 Grafik alir Login 2. Basic Path Testing Basic path tetsing adalah teknik pengujian white box, yang pertama kali di ajukan oleh Tom McCabe[McC76]. Metode ini memungkinkan perancang test Case untuk menurunkan
ukuran kompleksiyas logis dari suatu rancangan
procedural dan menggunakan ukuran ini sebagai pedoman untuk menentukan rangkaian dasar jalur eksekusi. Test Case di turunkan untuk menguji rangkaian dasar yang di jamin untuk mengeksekusi setiap pernyataan dalam program, setidaknya satu kali selama pengujian.
3. Kompleksitas siklomatik dari aliran grafik yang di hasilkan Kompleksitas siklomatik pada teori graph, kompleksitas di hitung dalam salah satu dari tiga cara berikut.
65
1. Jumlah daerah-daerah grafik alir yang berhubungan dengan kompleksitas siklomatik. 2. Kompleksitas siklomatik V(G) untuk grafik alir G di definisikan sebagai V(G)= E-N + 2 Dimana E adalah jumlah edge grafik alir dan N adalah jumlah node grafik alir. 3. Kompleksitas siklomatik V(G) untuk grafik aliran G juga di definisikan sebagai V (G) = P + 1 dimana P adalah jumlah node predikat yang terdapat dalam grafik alir G Mengacu pada gambar V(G) = 4 region V(G) = 15 edge – 13 node + 2 = 4 V(G) = 3 node predikat + 1 = 4
4. Jalur independen Jalur
independen
adalah
setiap
jalur
yang
melalui
program
yang
memperkenalkan setidaknya satu kumpulan pernyataan-pernyataan pemrosesan atau kondisi baru.Bila dinyatakan dalam grafik alir, jalur independen harus bergerak sepanjang setidaknya satu edge yang belum di lintasi sebelum jalur tersebut di definisikan mengacu pada gambar Jalur 1 : 1-2-5-6-7-10-11-13 Jalur 2 : 1-2-5-6-7-10-12-13 Jalur 3 : 1-2-3-4-2-. . . Jalur 4 : 1-2-5-6-7-8-9-7. . .
5. Grap Matrix Graph Matrixnya bisa dilihat pada Tabel
66
Gambar 4.12 Matriks grafik login
67
6. Notasi Grafik Alir Pada Login PDL dengan node-node yang di identifikasi dari Sintaks Input Data
Sintaks 4.10 PDL dengan node-node yang di identifikasi dari Sintaks Input Data
if (tkd_kywn.getText().trim().isEmpty()) {
1
JOptionPane.showMessageDialog(this, "Kode karyawan belum diisi dengan benar!"); 2
return ; } if (tnm_kywn.getText().trim().isEmpty()) {
3
JOptionPane.showMessageDialog(this, "nama karyawan belum diisi dengan benar!"); return ;
4
} if (ttemp.getText().trim().isEmpty()) {
5
JOptionPane.showMessageDialog(this, "Tempat lahirkaryawan belum diisi dengan 6
benar!"); return ; } 7
if (ttgl.getText().trim().isEmpty()) { JOptionPane.showMessageDialog(this, "Tanggal lahirkaryawan belum diisi dengan 8
benar!"); return ; } 9
if (ttelp.getText().trim().isEmpty()) { JOptionPane.showMessageDialog(this, "nomor telepon belum diisi dengan benar!"); return ;
10
} 11
if (talm.getText().trim().isEmpty()) { JOptionPane.showMessageDialog(this, "Alamat belum diisi dengan benar!"); return ;
12
} SimpanData(); }
13
68
7. Grafik Alir dari Input Data dapat di lihat pada gambar
Gambar 4.13 Grafik Alir dari Input Data
8. Kompleksitas siklomatik dari aliran grafik yang di hasilkan Mengacu pada gambar V(G) = 7 region V(G) = 18 edge – 13 node + 2 = 7 V(G) = 6 node predikat + 1 = 4
9. Jalur Independen Jalur Independen dari notasi di atas adalah : Jalur 1 : 1-3-5-7-9-11-13 Jalur 2 : 1-2-1… Jalur 3 : 1-3-4-1. . . Jalur 4 : 1-3-5-6-1. . . Jalur 5 : 1-3-5-7-8-1-…
69
Jalur 6 : 1-3-5-7-9-10-1-. . . Jalur 7 : 1-3-5-7-9-11-12-1-. . .
10. Graph Matrixnya bisa dilihat pada Tabel
Gambar 4.14 Matriks grafik Input Data
4.6.
Analisis Hasil Pengujian
Dari keseluruhan proses pengujian dapat dianalisis bahwa: 1. Aplikasi ini dapat berjalan dengan baik , aplikasi terkoneksi dengan database, tidak ada kesalahan pengentryan data, edit data, hapus data. Hal ini terlihat ketika proses
menambahkan atau mengedit data yang
terkoneksi dengan database berhasil di tambah dan di edit.. 2. Pada proses filter aplikasi berjalan dengan baik sesuai perintah memfilter dengan kategori nama karyawan dan alamat. 3. Pada proses print dengan akses administrator dan user dapat mengeprint dengan lancar.