BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM 1.1. Kebutuhan Sistem Setelah analisa dan perancangan sistem pada bab III, maka tahap selanjutnya adalah sistem siap untuk di implementasikan. Tahap implementasi sistem (system implementation) merupakan tahap meletakkan sistem supaya siap dioperasikan, salah satu diantaranya adalah pemrograman dan pengetesan program. Penulisan kode program merupakan kegiatan terbesar didalam tahap implementasi sistem. Lingkungan implementasi untuk kebutuhan sistem aplikasi Query Console ini meliputi lingkungan perangkat keras (hardware) dan perangkat lunak (software). 1.1.1. Spesifikasi Hardwaredan Software Berikut ini adalah spesifikasi komputer yang digunakan penulis dalam implementasi dan pengujian. Antara tingkatan terhubung protokol TCP/IP: 1. Tingkat Sumber Data a. Prosesor Intel Pentium 4 CPU 2.80GHz,RAM 512 MB, b. Sistem Operasi Microsoft Windows XP Professional, dan c. Microsoft SQL Server 2000. 2. Tingkat Menengah a. Prosesor Intel Pentium 4 CPU 2.80GHz,RAM 512 MB b. Sistem Operasi Microsoft Windows XP Professional, dan c. Terinstall Jaguar Server (sybase) 3. Tingkat Presentasi a. Prosesor Intel Pentium 4 CPU 2.80GHz,RAM 512 MB, b. Sistem Operasi Microsoft Windows XP Professional. 1.2. Implementasi Perancangan Perancangan yang dibuat pada bab sebelumnya diimplementasikan sesuai dengan tingkatan arsitektur tiga tingkatan. Tingkat sumber data berisi basis data, tingkat menengah berisi server aplikasi, dan tingkat client berisi client aplikasi. 59
60 1.2.1. Tingkat Sumber Data (Data Layer) Tingkat sumber data yaitu berupa kumpulan basis data yang tersedia dari setiap basis data server. Berikut ini profil basis data untuk menghubungkan server aplikasi dengan basis data: 1. Sistem Manajemen Basis Data Sistem Manajemen Basis Data adalah perangkat lunak yang digunakan untuk menampung basis data. Pada penulisan ini, penulis menggunakan perangkat lunak basis data Microsoft SQL Server 2000. 2. Basis Data Basis data adalah nama basis data pada sistem manajemen basis data yang digunakan. Pada implementasinya menggunakan SQL Server 2000. 3. Server Basis Data Server basis data adalah server dimana tempat sistem manajemen basis data berada. Server bisa diisi dengan Sistem Nama Domain (Domain Name System) atau Internet Protocol (IP) basis data berada, sebagai contoh penulis menggunakan Localhost karena berada pada komputer lokal, seperti yang dituliskan berikut: ServerName = "LOCALHOST" 4. Identitas Pengguna Basis Data Identitas pengguna adalah identitas yang telah diberi akses untuk mengeksekusi basis data pada sistem manajemen basis data. Penulis menggunakan identitas sa yang secara otomatis disediakan oleh Microsoft SQL Server. Berikut skrip yang digunakan: LogId = "sa" 5. Kata Sandi Basis Data Kata sandi digunakan untuk mendampingi identitas pengguna sebagai keamanan supaya tidak sembarangan orang mengakses basis data. Berikut skrip kata kunci dari identitas pengguna sa yang dalam hal ini kata kuncinya bukopin: LogPass = bukopin
61 Pada basis data ini terdapat lima tabel utama yaitu: tabel pemilihan koneksi diberi nama tbl_konek_select, tabel log user diberi nama tbl_log_select, tabel pending diberi nama tbl_pending, tabel penyimpanan script diberi nama tbl_save_select, dan tabel user diberi nama tbl_user_select. Kelima tabel tersebut dibuat menggunakan perangkat lunak Microsoft SQL Server 2000. Tabel-tabel terkumpul dalam satu basis data yang diberi nama query_console. Tabel-tabel disajikan dalam bentuk design table berupa nama kolom (column name), tipe data (data type), dan panjang kolom (length). Tabel 4.1 tbl_konek_select Tabel 4.2 tbl_log_select Tabel 4.3 tbl_pending Tabel 4.4 tbl_save_select
62 Tabel 4.5 tbl_user_select 1.2.2. Tingkat Menengah (Application Layer) Tingkat menengah menampung fungsi yang mengambil data dari client untuk diakses ke basis data. Tingkat menengah ini merupakan kelebihan dari arsitektur tiga tingkat dibandingkan dengan dua tingkat yang memungkinkan client terisolasi dari basis data. Berikut daftar fungsi: a. User Function Login Aplikasi Nama Fungsi : uf_logon Tipe Kembalian : integer Tabel 4.6 Parameter Fungsi uf_logon Nama Parameter Tipe Paramter Pass by user string value pass string value string pwd f_dwh() f_connect(1) SELECT tbl_user_select.pass INTO :pwd FROM tbl_user_select WHERE tbl_user_select.user_id = :user using sqlca ;
63 f_connect(0) if pwd = "" then return 0 if trim(pwd) = trim(pass) then return 1 return 0 Gambar 4.1 Skrip login aplikasi b. User Function Ubah Password Nama Fungsi : uf_change Tipe Kembalian : integer Tabel 4.7 Parameter Fungsi uf_change Nama Parameter Tipe Paramter Pass by user string value Pass_baru string value f_dwh() f_connect(1) UPDATE tbl_user_select SET pass = :pass_baru WHERE tbl_user_select.user_id = :user using sqlca ; SELECT tbl_user_select.pass INTO :tmp_pass FROM tbl_user_select
64 WHERE tbl_user_select.user_id = :user using sqlca; f_connect(0) if trim(tmp_pass) = trim(pass_baru) then return 1 return 0 Gambar 4.2 Skrip ubah password c. User Function Eksekusi Perintah Nama Fungsi : uf_select Tipe Kembalian : string Tabel 4.8 Parameter Fungsi uf_select Nama Parameter Tipe Paramter Pass by koneksi string value Sql_syntax string value dwsyntax_str string reference errors string reference datastore ds_1 ds_1 = create datastore f_mesin(koneksi) f_connect(1) dwsyntax_str = SQLCA.SyntaxFromSQL(sql_syntax,"Style(type=GRID) text(border=5 color=150) Column(border=5)", ERRORS)
65 ds_1.create( dwsyntax_str, ERRORS) ds_1.settransobject( sqlca) ds_1.retrieve() hasil = ds_1.object.datawindow.data destroy ds_1 f_connect(0) return hasil Gambar 4.3 Skrip eksekusi perintah/skrip d. User Function Simpan Perintah Nama Fungsi : uf_insert Tipe Kembalian : integer Tabel 4.9 Parameter Fungsi uf_insert Nama Parameter Tipe Paramter Pass by user string value Nm_file string value Log_ket String value f_dwh() f_connect(1) INSERT INTO tbl_save_select ( user_id, nama_file, log_ket ) VALUES ( :user, :nm_file, :log_ket) using sqlca; SELECT tbl_save_select.nama_file INTO :tmp_file FROM tbl_save_select WHERE ( tbl_save_select.user_id = :user ) and ( tbl_save_select.nama_file = :nm_file ) using sqlca;
66 f_connect(0) if len(trim(tmp_file)) > 0 then return 1 return 0 Gambar 4.4 Skrip simpan perintah/skrip e. User Function Tambah User Nama Fungsi : uf_add_user Tipe Kembalian : integer Tabel 4.10 Parameter Fungsi uf_add_user Nama Parameter Tipe Paramter Pass by usr string value nama string value lvl integer value fas string value f_dwh() f_connect(1) INSERT INTO tbl_user_select ( user_id, pass, nama, status,lvl,fasilitas ) VALUES ( :usr, ' ',:nama, 0,:lvl,:fas ) using sqlca ; if sqlca.sqlcode = -1 then hasil = 0 hasil = 1
67 f_connect(0) return hasil Gambar 4.5 Skrip tambah user 2.2.3. Tingkat Presentasi (Presentation Layer) Tingkat presentasi menyediakan interaksi Program Query Console dengan pengguna. Terdapat tiga jenis tampilan berdasarkan fasilitas user yang dimiliki yaitu tampilan layar maker, tampilan layar approval, dan tampilan layar admin. 4.2.3.1 Login Aplikasi Gambar 4.6 merupakan tampilan layar login aplikasiquery Console. Masukkan userid dan password, kemudian tekan tombol login. Gambar 4.6Tampilan Login versi = uo_clt_select.uf_versi() if versi <> 'v1.4' then messagebox('informasi','login gagal, download aplikasi terbaru!!!') return if sle_1.text = "" then messagebox("pesan","username Belum diisi") sts = uo_clt_select.uf_cek_status(sle_1.text)
68 if sts = 1 then messagebox("sorry","status user aktif") return jum = len (sle_2.text) jum1= len (sle_2.text) for i = 1 to jum tmp [i]= mid(sle_2.text,i,i) hsl = hsl + char((asc(tmp[i])+jum1)) next hasil = uo_clt_select.uf_logon( sle_1.text, hsl) if hasil = 1 then gs_user = UPPER(sle_1.text) uo_clt_select.uf_level(sle_1.text,gs_level,gs_fas) open(w_utama) close(w_login) uo_clt_select.uf_status( gs_user,1) messagebox("pesan","login gagal..") sle_2.setfocus( ) Gambar 4.7 Skrip Login
69 4.2.3.2 Tampilan Menu Change Password Gambar berikut merupakan tampilan layar change password pada aplikasiquery Console. Masukkan oldpassword,new password dan confirm new password kemudian tekan tombol OK. Gambar 4.1: Menu Change Password 4.2.3.3 Tampilan Utama Query Console Pada tampilan layar utama ini terdapat beberapa perbedaan menu tergantung dari fasilitas yang dimiliki user, sebagai berikut: 1. Tampilan admin Pada tampilan admin ini user memiliki fasilitas untuk : a. Menambah koneksi b. Melihat log aktivitas user c. Pemeliharaan user d. Approval status pending
70 Gambar 4.8 Tampilan Admin 2. Tampilan maker dan approval Pada tampilan maker dan approval yang muncul hanya fasilitas pending, perbedaan antara keduanya yaitu, user maker hanya bisa melihat data tidak bisa melakukan update, delete, dan inserttampa persetujuan dari user approval, sedangkan user approval bisa melakukannya. Gambar 4.9 Tampilan Maker dan Approval 1.3. Pengujian Perangkat Lunak Tujuan pengujian perangkat lunak ini didasarkan batasan masalah pada sub bab 1.3 sehingga tercapai tujuan pembahasan sesuai sub bab 1.2. 1.3.1. Pengujian White Box Pengujian ini merupakan pendekatan pengujian ke arah skrip aplikasi program. Tujuan pengujian ini untuk meyakinkan bahwa setiap skrip dalam program diproses satu kali pada satu waktu. Berikut adalah pengujian white box untuk fungsi koneksi client ke server dan fungsi login. 1. Fungsi koneksi ke basis data 1 myconnect = create connection 2 3 myconnect.driver = "jaguar" myconnect.userid = profilestring("clt_select.ini","user","userid","")
71 4 5 6 7 8 9 10 11 12 13 myconnect.password = profilestring("clt_select.ini","user","password","") myconnect.application = profilestring("clt_select.ini","user","application","") myconnect.location = profilestring("clt_select.ini","user","location","") nilai = myconnect.connecttoserver() if nilai = 0 then nilai = myconnect.createinstance(uo_clt_select,"pkg_select_appr/uo_sql_select") if nilai = 0 then open( w_login) Dari skrip fungsi koneksi diatas didapatkan aliran skrip/statement program aplikasi sebagai berikut : Path 1 : 1-2-3-4-5-6-7-8-13 Path 2 : 1-2-3-4-5-6-7-8-9-10-11-12-13 Path 3 : 1-2-3-4-5-6-7-8-9-10-13
72 Gambar 4.10 White Box Testing Fungsi Koneksi Client ke Server 2. Fungsi koneksi login 1 hasil = uo_clt_select.uf_logon( sle_1.text, hsl) 2 3 4 5 6 7 8 9 10 if hasil = 1 then gs_user = UPPER(sle_1.text) uo_clt_select.uf_level(sle_1.text,gs_level,gs_fas) open(w_utama) close(w_login) messagebox("pesan","login gagal..") sle_2.setfocus( )
73 Dari skrip fungsi login diatas didapatkan aliran skrip program aplikasi sebagai berikut : Path 1 : 1-2-3-4-5-6-10 Path 2 : 1-2-7-8-9-10 Gambar 4.11White Box Testing Fungsi Login 1.3.2. Pengujian Black Box Pengujian ini merupakan pendekatan pengujian ke arah interface aplikasi program. Diharapkan dengan pengujian ini dapat ditemukan kesalahan-kesalahan yang meliputi kesalahan interface, fungsi, akses ke basis data dan kinerja aplikasi program. Tabel 4.11 menunjukkan skenario pengujian untuk aplikasi QueryConsole. Skenario pengujian berisikan skenario dan hasil yang diharapkan. Tabel 4.11Skenario Pengujian. No. Skenario Pengujian Hasil Diharapkan 1. Program mengecek user login Sukses 2. Program mengecek fasilitas masing-masing user Sukses
74 3. Program menampilkan list koneksi yang tersedia Sukses 4. Program menampilkan menu pending Sukses 5. Program menampilkan menu tambah koneksi Sukses 6. Program menampilkan menu tambah user Sukses 7. Program menjalankan tambah user Sukses 8. Program menjalankan ubah user Sukses 9. Program menjalankan hapus Sukses 10. Program menjalankan simpan script Sukses 11. Program menjalankan tambah koneksi Sukses 12. Program menjalankan script yang ditulis Sukses 1.3.3. Hasil Pengujian Hasil pengujian diharapkan dapat memenuhi dari harapan pengujian. Tabel 4.2 menunjukkan hasil dari pengujian perangkat lunak. Hasil pengujian berisi skenario pengujian, hasil yang diharapkan, dan hasil pengujian. Tabel 4.12 Hasil Pengujian Perangkat Lunak. No. Skenario Pengujian Hasil Hasil Diharapkan Pengujian 1. Program mengecek user login Sukses Sesuai 2. Program mengecek fasilitas masing-masing user Sukses Sesuai 3. Program menampilkan listkoneksi yang tersedia Sukses Sesuai 4. Program menampilkan menu pending Sukses Sesuai 5. User maker melakukan perintah hapus data Gagal Sesuai 6. Program menampilkan menu tambah user Sukses Sesuai 7. Program menjalankan tambah user Sukses Sesuai 8. Program menjalankan ubah user Sukses Sesuai 9. Program menjalankan hapus Sukses Sesuai 10. Program menjalankan simpan script Sukses Sesuai 11. Program menjalankan tambah koneksi Sukses Sesuai 12. Program menjalankan script yang ditulis Sukses Sesuai
75 1.3.4. Analisa Hasil Pengujian Dari seluruh pengujian yang dilakukan penulis, hasil pengujian selalu sesuai dengan hasil yang diharapkan. Berikut keterangan hasil pengujian sesuai dengan nomor pada Tabel 4.10 : 1. Program dapat mengenali user login yang sudah tercatat di basis data 2. Program menampilkan tampilan antar muka sesuai fasilitas user 3. Program bisa menampilkan list koneksi yang sudah tersedia di basis data 4. Program bisa menampilkan tampilan pending 5. User maker tidak bisa melakukan penghapusan data tampa approval 6. Program menampilkan menu tambah user 7. Program berhasil menjalankan menambhan user baru 8. Program berhasil mengubah data user 9. Program berhasil menjalankan perintah hapus data user 10. Program bisa simpan scriptyang ditulis user 11. Program berhasil menjalankan tambah koneksi 12. Program bisa menjalankan perintah script yang ditulis