BAB IV INTEGRASI DAN PENGUJIAN SISTEM
4.1
Integrasi Sistem
Pada bagian integrasi ini diawali dengan create data sources ODBC (Open Database Connectivity), fungsi ODBC ini untuk koneksi database dari sistem fingerprint dengan database sistem yang dibangun. Gambar sistem DNS Accessmdb setelah create datasource nama ODBC pada komputer server terlihat pada gambar dibawah ini.
Gambar 4.1 Sistem DNS accessmdb data source ODBC Untuk melakukan koneksi ke database sistem fingerprint menggunakan fungsi odbc_connect(), kode dari fungsi ini adalah: odbc_connect (string $dsn, string $user, string $password) $dsn adalah nama DSN yang digunakan untuk mengkoneksikan database sistem fingerprint, $user adalah user name saat membuat sistem DSN, $password adalah password sistem DSN. 91
92
4.2
Aktif Browser PHP (Access Server)
Aktif browser PHP yang diberi nama access server merupakan browser yang akan selalu aktif di komputer server. Access server ini berfungsi untuk integrasi antara sistem fingerprint dengan SMS gateway. Berikut gambar aktif browser pada komputer server.
Gambar 4.2 Aktif browser PHP pada komputer server Pada
aktif
browser
PHP
ini
terdiri
dari
beberapa
proses
untuk
mengintegrasikan sistem fingerprint dengan SMS gatway untuk monitoring kehadiran siswa antara lain: proses mengecek data, proses insert data, proses cek duplicate data, proses create pesan, proses send SMS, dan proses delete data.
4.2.1
Proses Mengecek Data
Dalam proses mengecek data aktif browser akan melakukan pengecekan data masuk pada tabel NGAC_LOG pada database NITGENDBAC setiap interval 3 detik, data hasil siswa melakukan insert fingerprint pada alat fingerprint. Berikut gambar tabel NGAC_LOG pada database.
93
Gambar 4.3 Tabel NGAC_LOG pada tabel Microsoft Access Pada gambar 4.3 diatas terlihat field tabel NGAC_LOG antara lain: logindex, nodeindex, logtime, userid, nodeid, authtype, authresult, openresult, functionno, functionno, checked, reserved. Aktif browser akan mengecek tabel NGAC_LOG dimana authresult=0 dan mengambil field-field yang dibutuhkan dalam membangun sistem presensi siswa. Kode PHP yang digunakan untuk proses mengecek data, seperti pada gambar dibawah ini. =1) //proses kondisi pengulangan apabila data yang masuk lebih dari 1 for ($i=1; $i<=$jum; $i++) {
Gambar 4.4 Kode PHP proses pengecekan data
94
Lanjutan kode PHP proses pengecekan data //include ("include/select.php"); $con = odbc_connect("Accessmdb","","nac3000"); $select = odbc_exec($con,"SELECT * FROM NGAC_LOG WHERE authresult=0 ORDER BY logindex"); $baris = odbc_fetch_array($select); $logidx= $baris['logindex']; $idpresensi = date("Ymd").$baris['userid']; $idsiswa = $baris['userid']; $logtime = $baris['logtime']; $finger = "Fingerprint"; $terlambat = "Terlambat"; odbc_close($con);
}
//proses insert dan sms data pada database MySQL //proses delete data yang ada di tabel ms. access
?>
Gambar 4.4 Kode PHP proses pengecekan data
4.2.2
Proses Insert Data
Dalam proses insert data aktif browser akan memasukan data ke tabel tfingerprintmasuk pada database sps, data yang masuk berdasarkan hasil dari proses mengecek data. Field-field yang di masukan ke tabel tfingerprintmasuk data field yang diambil dari tabel NGAC_LOG yaitu: idsiswa dan logtime. Berikut gambar tabel tfingerprintmasuk pada database.
Gambar 4.5 Tabel tfingerprintmasuk pada MySQL
95
Berikut kode PHP yang digunakan untuk proses insert data, seperti pada gambar dibawah ini. //koneksi ke database sps MySQL $host = "localhost"; $user = "sps"; $pass = "123456789"; $dbName = "sps"; mysql_connect($host, $user, $pass); mysql_select_db($dbName) or die ("Connect Failed !! : ".mysql_error()); //insert data siswa yang tepat waktu ke tabel fingerprintmasuk $sql = "INSERT INTO tfingerprintmasuk VALUES ('".$idpresensi."', '".$idsiswa."', '".$logtime."', '".$logtime."', '".$finger."','')"; $hasil = mysql_query($sql) or die (mysql_error());
Gambar 4.6 Kode PHP proses insert data
4.2.3
Proses Cek Duplicate Data
Dalam proses cek duplicate data aktif browser akan mengecek setiap ada data yang dimasukan ke tabel tfingerprintmasuk dan tfingerprintpulang, apakah data tersebut sudah dimasukan atau belum di hari atau waktu yang sama. Berikut kode PHP yang digunakan untuk proses cek duplicate data, seperti pada gambar dibawah ini. //mengecek duplicate id, apabila ada yang melakukan finger 2 kali $cek = mysql_query("SELECT * FROM tfingerprintmasuk WHERE tanggal = '$tgl' AND idsiswa = '$idsiswa' AND idfpmasuk = '$idpresensi'"); $num_rows = mysql_num_rows($cek); if ($num_rows) { include ("delete.php"); } else { //insert data siswa yang tepat waktu ke tabel fingerprintmasuk }
Gambar 4.7 Kode PHP proses cek duplicate data
96
Proses duplicate data berfungsi untuk menghindari terjadinya double data yang dimasukan ke tabel tfingerprintmasuk dan tfingerprintpulang dan menghindari terjadinya double pengiriman SMS ke orangtua tentang putraputrinya masuk sekolah dan pulang dari sekolah.
4.2.4
Proses Create Pesan
Dalam proses create pesan aktif browser akan membuat pesan yang akan dikirimkan ke orangtua siswa apakah putra-putrinya sampai di sekolah tepat waktu atau terlambat dan apakah putra-putrinya sudah keluar dari sekolah. Sebelum create pesan aktif browser akan mencocokan data siswa yang melakukan fingerprint dengan data siswa yang ada di tabel tsiswa pada database menggunakan proses pencarian data idsiswa. Berikut gambar tabel tsiswa pada database.
Gambar 4.8 Tabel tsiswa pada MySQL Berikut kode PHP yang digunakan untuk proses create pesan, seperti pada gambar dibawah ini.
97
//proses pencarian data siswa yang melakukan fingerprint $search = "SELECT * FROM tsiswa, tkelas WHERE tsiswa.idkelas = tkelas.idkelas AND idsiswa LIKE '%$idsiswa%'"; $query = mysql_query($search) or die (mysql_error()); data = mysql_fetch_array($query); //variable yang dibutuhkan untuk proses create SMS $namasiswa = $data['namasiswa']; $kelas = $data['namakelas']; $nohportu = $data['nohp']; //pesan teks yang akan dikirimkan ke orang tua melalui SMS, siswa datang tepat waktu $smsmasuk = "(GJIS)"." ".$tgl.", Anak anda ".$namasiswa." ".$kelas.""." hadir di sekolah pukul"." ".$jammasuk." "; //pesan teks yang akan dikirimkan ke orang tua melalui SMS, siswa terlambat $smsterlambat = "(GJIS)"." ".$tgl.", Anak anda ".$namasiswa." ".$kelas.""." hadir di sekolah pukul"." ".$jammasuk." terlambat"." ".$late.""." Menit".""; //pesan teks yang akan dikirimkan ke orang tua melalui SMS, siswa pulang dari sekolah $smspulang = "(GJIS)"." ".$tgl.", Anak anda ".$namasiswa." ".$kelas.""." keluar dari sekolah pukul"." ".$jammasuk." ";
Gambar 4.9 Kode PHP proses create pesan
4.2.5
Proses Send SMS
Dalam proses send SMS aktif browser mengirim pesan teks SMS melalui NowSMS dengan PHP. Berikut kode PHP yang digunakan untuk proses mengirim teks SMS, seperti pada gambar dibawah ini. //function untuk menerima parse parameter kirim SMS ke orang tua function SendSMS ($host, $port, $username, $password, $nohp, $pesantekt) { $fp = fsockopen ($host, $port, $errno, $errstr); if (!$fp) { echo "errno: ". $errno."\n"; echo "erstr: ". $erstr."\n"; return $result; } fwrite($fp, "GET/?Phone=". rawurlencode($nohp). "&Text=". rawurlencode($pesantekt). ""); if ($username !="") {
Gambar 4.10 Kode PHP proses mengirim pesan teks SMS
98
Lanjutan kode PHP proses mengirim pesan teks SMS $auth = $username. ":". $password; $auth = base64_encode($auth); //fwrite($fp,"Authorization: Basic" .$auth. "\n"); fwrite($fp," Basic" .$auth. "\n");
} fwrite($fp,"\n"); $res = ""; while (!feof($fp)) { $res .=fread($fp,1); } fclose($fp); return $res; }
Gambar 4.10 Kode PHP proses mengirim pesan teks SMS Pada gambar 4.9 terlihat fungsi sendSMS menggunakan parameter, fungsi ini untuk membuat URL yang menghubungkan ke server NowSMS. Parameter $host adalah alamat IP atau nama host server NowSMS, $port adalah nomor port untuk antarmuka web dari server NowSMS, $username adalah account pengguna pada server NowSMS, $password adalah password pengguna pada server NowSMS, $nohp adalah nomor telepon tujuan atau nomor yang akan menerima pesan teks SMS, $pesantekt adalah pesan teks SMS yang akan dikirimkan. Berikut kode PHP yang digunakan untuk posting parameter untuk mengirim pesan teks SMS, seperti pada gambar dibawah ini. //mengirim atau memanggil parse parameter untuk (proses pengiriman sms ke orang tua),siswa tepatwaktu $smsgateway = SendSMS("127.0.0.1", 8800, "caslim", "1234", $nohportu, $smsmasuk ); //mengirim parse parameter untuk (proses pengiriman sms ke orang tua), siswa terlambat $smsgateway = SendSMS("127.0.0.1", 8800, "caslim", "1234", $nohportu, $smsterlambat ); //mengirim parse parameter untuk (proses pengiriman sms ke orang tua), siswa pulang $smsgateway = SendSMS("127.0.0.1", 8800, "caslim", "1234", $nohportu, $smspulang );
Gambar 4.11 Kode PHP posting parameter mengirim pesan teks SMS
99
4.2.6
Proses Delete Data
Dalam proses delete data aktif browser akan melakukan delete data pada tabel NGAC_LOG pada database NITGENDBAC apablia semua proses diatas sudah diproses. Berikut kode PHP yang digunakan untuk proses delete data, seperti pada gambar dibawah ini.
Gambar 4.12 Kode PHP proses delete data
4.3
Pengujian Sistem
Proses pengujian sistem presensi siswa yang mengintegrasikan sistem fingerprint dengan SMS gateway dilakukan pada sebuah notebook.
4.3.1
Persiapan Teknis
Aplikasi ini dipasang pada sebuah notebook yang memiliki sistem operasi Windows yang sudah terinstal Xampp sebagai web servernya, sudah terinstal driver fingerprint Nitgen NAC-2500, dan sudah terinstal aplikasi SMS gateway NowSMS. Aplikasi ini diletakkan di Document Root windows yaitu c:\xampp\htdocs\.
Direktori
untuk
sisi
server
diletakkan
di
C:\xampp\htdocs\sps\server dan untuk sisi pengguna (user) diletakkan di C:\xampp\htdocs\sps\client.
100
Selain itu aplikasi ini juga memerlukan perangkat tambahan penting yaitu: (1) sebuah alat fingerprint untuk kehadiran siswa, serta sebuah kabel UTP konektor RJ-45 sebagai penghubung antara alat fingerprint Nitgen NAC-2500
dan
notebook. (2) sebuah modem GSM yang berfungsi untuk mengirim SMS kepada orangtua siswa, serta sebuah kabel data sebagai penghubung antara modem GSM dan notebook. Persiapan teknis dari sistem presensi siswa yang mengintegrasikan sistem fingerprint dengan SMS gateway, seperti pada gambar dibawah ini.
Gambar 4.13 Persiapan teknis pengujian sistem presensi siswa
101
4.3.2
Pengujian Hasil Integrasi Sistem Fingerprint dengan SMS Gateway
Pengujian ini dilakukan dengan cara mengaktifkan Aktif Browser PHP (Access Server) dengan mengetikan http://localhost/sps/server/index.php pada web browser komputer server. Tampilan halaman aktif browser, seperti pada Gambar 4.2.
Tahap pengujian selanjutnya adalah meletakan sidik jari pada alat fingerprint, beberapa saat kemudian aplikasi sistem presensi siswa (Aktif browser) akan memproses hasil fingerprint dan mengirim pesan SMS ke telepon selular melalui SMS gateway NowSMS, berikut merupakan tampilan SMS pada telepon selular orangtua siswa.
Gambar 4.14 Tampilan SMS pada telepon selular hasil pengujian
4.3.3
Pengujian Aplikasi Sistem Presensi Siswa Online
Untuk menjalankan aplikasi dapat dilakukan dengan cara mengetikkan http://localhost/sps/index.php pada web browser komputer yang bertindak sebagai client. Dari hasil pengujian yang telah dilakukan, maka dapat dilihat hasil desain web sistem presensi siswa, sebagai berikut:
102
4.3.3.1
Halaman Login
Gambar 4.15 Tampilan halaman login
4.3.3.2
Halaman Menu Utama
Gambar 4.16 Tampilan halaman menu utama
103
4.3.3.3
Halaman Menu Admin
Gambar 4.17 Tampilan halaman menu admin
4.3.3.4
Halaman Menu Data Siswa
Gambar 4.18 Tampilan halaman menu data siswa
104
4.3.3.5
Halaman Tambah Data Siswa
Gambar 4.19 Tampilan halaman tambah data siswa
4.3.3.6
Halaman Cari Data Siswa
Gambar 4.20 Tampilan halaman cari data siswa
105
4.3.3.7
Halaman Ubah Data Siswa
Gambar 4.21 Tampilan halaman ubah data siswa
4.3.3.8
Halaman Menu Data Pengguna
Gambar 4.22 Tampilan halaman menu data pengguna
106
4.3.3.9
Halaman Tambah Data Pengguna
Gambar 4.23 Tampilan halaman tambah data pengguna
4.3.3.10 Halaman Cari Data Pengguna
Gambar 4.24 Tampilan halaman cari data pengguna
107
4.3.3.11 Halaman Ubah Data Pengguna
Gambar 4.25 Tampilan halaman ubah data pengguna
4.3.3.12 Halaman Tambah Data Hak Akses
Gambar 4.26 Tampilan halaman tambah data hak akses login
108
4.3.3.13 Halaman Menu Presensi Siswa
Gambar 4.27 Tampilan halaman menu presensi siswa
4.3.3.14 Halaman Presensi Siswa Online
Gambar 4.28 Tampilan halaman form presensi siswa online
109
4.3.3.15
Halaman Lihat Data Presensi Siswa
Gambar 4.29 Tampilan halaman lihatdata presensi siswa
4.3.3.16
Halaman Data Hasil Siswa Fingerprint
Gambar 4.30 Tampilan halaman data hasil siswa fingerprint
110
4.3.3.17
Halaman Laporan Siswa Terlambat
Gambar 4.31 Tampilan halaman laporan siswa terlambat
4.3.3.18
Halaman Laporan Siswa Absen
Gambar 4.32 Tampilan halaman laporan siswa absen
111
4.3.3.19
Halaman Laporan Siswa Tidak Fingerprint
Gambar 4.33 Tampilan halaman laporan siswa tidak fingerprint
4.4
Skenario Pengujian
Pengujian program aplikasi sistem presensi siswa dilakukan dengan metode black box testing. Metode pengujian black box ini merupakan metode pengujian dengan program kasus pengujian yang berbasis spesifikasi, dan pengujian dimulai pada saat pengembangan sistem. Metode black box ini merupakan pengujian berdasarkan fungsi dari program yang diuji yang bertujuan untuk menemukan kesalahan fungsi pada program. Pengujian dilakukan dengan cara memberikan sejumlah input (masukan) pada program aplikasi yang kemudian diproses sesuai dengan kebutuhan fungsionalnya untuk melihat apakah program aplikasi web menghasilkan output (keluaran) yang diinginkan dan sesuai dengan fungsi dari program aplikasi web tersebut. Bila dari input yang diberikan proses menghasilkan output yang sesuai dengan kebutuhan
112
fungsionalnya, maka program aplikasi yang diuji telah benar atau berhasil, tetapi bila output yang dihasilkan tidak sesuai dengan kebutuhan fungsionalnya, maka masih terdapat kesalahan pada program aplikasi tersebut. Pengujian dilakukan dengan mencoba semua kemungkinan yang terjadi dan dilakukan secara berulang-ulang. Jika dalam pengujian ditemukan kesalahan, maka akan dilakukan penelusuran dan perbaikan untuk memperbaiki kesalahan pengujian kembali. Pengujian dan perbaikan dilakukan secara terus menerus hingga diproleh hasil yang terbaik. Skenario pengujian diperlukan untuk mengetahui apakah aplikasi sistem presensi siswa dapat berfungsi dengan baik atau tidak. Skenario pengujian pada aplikasi sistem presensi siswa meliputi pengujian pada hasil integrasi fingerprint dengan SMS gateway dan pengujian dilakukan dengan memilih dari setiap pilihan yang ada pada web sistem presensi siswa. Tabel 4.1 Skenario pengujian No 1
2
Tampilan yang diuji Aktif browser (Access Server)
Bagian yang diuji Integrasi fingerprint dengan SMS gateway
Skenario pengujian Meletakan sidik jari pada alat fingerprint
Halama data siswa
Tambah data siswa
Melakukan penambahan data dan menekan tombol simpan
Cari data siswa
Melakukan pencarian data siswa dan menekan tombol cari
Hasil yang diharapkan Aplikasi akan memproses dan mengirimkan pesan SMS ke telepon selular Aplikasi menampilkan pesan data tersimpan dan data berhasil di simpan ke database Aplikasi menampilkan data siswa yang dicari
113
Tabel 4.1 Skenario pengujian (lanjutan) No
3
Tampilan yang diuji
Halama data pengguna
Bagian yang diuji Ubah data siswa
Skenario pengujian Melakukan perubahan data siswa dan menekan tombol ubah
Tambah data pengguna
Melakukan penambahan data dan menekan tombol simpan
Cari data pengguna
Melakukan pencarian data pengguna dan menekan tombol cari Melakukan perubahan data pengguna dan menekan tombol ubah
Ubah data pengguna
4
Halaman tambah data hak akses
Tambah data hak akses
Melakukan penambahan data dan menekan tombol simpan
5
Halaman presensi siswa
Presensi siswa Memilih data online kelas dan mata pelajaran dan menekan tombol buka Melakukan presensi siswa secara online dan menekan tombol simpan
Hasil yang diharapkan Aplikasi menampilkan pesan data berhasil diubah dan data di database berhasil di ubah Aplikasi menampilkan pesan data tersimpan dan data berhasil di simpan ke database Aplikasi menampilkan data pengguna yang dicari Aplikasi menampilkan pesan data berhasil diubah dan data di database berhasil diubah Aplikasi menampilkan pesan data tersimpan dan data berhasil di simpan ke database Menampilkan form presensi online berdasarkan data siswa dan mata pelajaran yang dipilih Menampilkan pesan berhasil dan data presensi siswa berhasil di simpan ke database
114
Tabel 4.1 Skenario pengujian (lanjutan) No
Tampilan yang diuji
Bagian yang diuji Cari data presensi siswa online
Cari data hasil fingerprint siswa masuk dan pulang
6
Halaman laporan
Memlih siswa absen
Skenario pengujian Melakukan pencarian data presensi siswa online dan menekan tombol cari Melakukan pencarian data fingerprint siswa masuk dan pulang dan menekan tombol cari Mengklik siswa absen
Memilih siswa terlambat
Mengklik siswa terlambat
Memilih siswa tidak fingerprint
Mengkilik siswa tidak fingerprint
Hasil yang diharapkan Aplikasi menampilkan data presensi siswa online yang dicari
Aplikasi menampilkan data fingerprint siswa masuk dan pulang yang dicari Aplikasi menampilkan laporan siswa absen hari ini Aplikasi menampilkan laporan siswa terlambat hari ini Aplikasi menampilkan laporan siswa tidak fingerprint hari ini