14 0 682 KB
Software Requirements Specification for
SISTEM INFORMASI AGENDA RAPAT ABSESNSI BERBASIS KODE QR Version 1.0 approved
Prepared by Septian Rio Gumilang
Informatics Department
January 2nd 2020
Copyright © 1999 by Karl E. Wiegers. Permission is granted to use, modify, and distribute this document.
Software Requirements Specification for
Page ii
Table of Contents Table of Contents ...................................................................................................................... ii Revision History...................................................................................................................... iiii 1. Introduction ......................................................................................................................... 1 1.1 Purpose ........................................................................................................................... 1 1.2 Document Conventions ................................................................................................... 1 1.3 Intended Audience and Reading Suggestions ................................................................. 2 1.4 Product Scope ................................................................................................................. 2 1.5 References ...................................................................................................................... 3 2. Overall Description ............................................................................................................. 3 2.1 Product Perspective ........................................................................................................ 3 2.2 Product Functions ........................................................................................................... 3 2.3 User Classes and Characteristics .................................................................................... 4 2.4 Operating Environment .................................................................................................... 4 2.5 Design and Implementation Constraints .......................................................................... 5 2.6 User Documentation ........................................................................................................ 6 2.7 Assumptions and Dependencies ..................................................................................... 6 3. External Interface Requirements........................................................................................ 7 3.1 User Interfaces ................................................................................................................ 7 3.2 Hardware Interfaces ...................................................................................................... 11 3.3 Software Interfaces........................................................................................................ 12 3.4 Communications Interfaces ........................................................................................... 12 4. System Features ............................................................................................................... 13 4.1 Fungsi-1: Membuat rapat baru ....................................... 1Error! Bookmark not defined. 4.2 Fungsi-2: Menutup rapat ............................................................................................... 15 4.3 Fungsi-3: Menandai izin ................................................................................................ 16 4.4 Fungsi-4: Membuat laporan ........................................................................................... 17 4.5 Fungsi-5: Membuat arsip ............................................................................................... 18 4.6 Fungsi-2: Aktivasi scanner............................................................................................. 19 4.7 Fungsi-2: Memindai kode QR ........................................................................................ 20 5. Other Nonfunctional Requirements ................................................................................. 22 5.1 Performance Requirements ........................................................................................... 22 5.2 Safety Requirements ..................................................................................................... 22 5.3 Security Requirements .................................................................................................. 22 5.4 Software Quality Attributes ............................................................................................ 24 5.5 Business Rules.............................................................................................................. 24 6. Other Requirements .......................................................................................................... 24 Appendix A: Glossary............................................................................................................. 24 Appendix B: Analysis Models ................................................................................................ 25 Appendix C: To Be Determined List ...................................................................................... 43
Software Requirements Specification for
Page iii
Revision History Name
Date
Reason For Changes
Version
Software Requirements Specification for QR-Code Attendance
Page 1
1. Introduction 1.1 Purpose Dokumen ini berisi Spesifikasi Kebutuhan Perangkat Lunak (SKPL) atau Software Requirement Spesification (SRS) untuk Sistem Informasi Absensi Agenda Rapat Berbasis Quick Response (QR code). Dokumen ini dibuat untuk membantu membuat spesifikasi perangkat lunak yang dikembangkan dengan rancangan berorientasi obyek. Pada prinsipnya, hasil analisis sistem perangkat lunak ini sebagai kumpulan diagram dalam bentuk Unified Modeling Language (UML) yang tersusun mulai dari rancangan paling umum hingga rancangan detail. Tujuan penulisan dokumen ini yaitu sebagai dokumentasi dari segala aktifitas yang dilakukan selama pengembangan proyek perangkat lunak berbasis web dimulai dari beberapa tahap yaitu tahap penggalian kebutuhan, analisis dan desain, implementasi sampai tahap pengujian. Adapun jabaran tujuan yaitu sebagai berikut : a) Mendefinisikan dan menjelaskan hal-hal yang diperlukan dalam pengembangan sistem sesuai dengan hasil analisis kebutuhan. b) Memperjelas detail spesifikasi kebutuhan dan ruang lingkup kerja yang akan dilakukan dalam pengembangan sistem beserta kendala-kendala yang mungkin akan dihadapi. c) Mendefinisikan dan mendeskripsikan secara global sistem yang akan dikembangkan, yang menggambarkan fungsionalitas, performansi, Batasan rancangan, atribut, serta antarmuka eksternal sistem yang diimplementasikan. d) Mempermudah proses pengembangan sistem pada tahap-tahap berikutnya.
1.2 Document Conventions Dokumen ini ditulis menggunakan Bahasa Indonesia. Adapun definisi, istilah dan singkatan yang digunakan dalam dokumen ini merupakan Bahasa teknik yang umum digunakan dalam area pengembangan perangkat lunak.
Software Requirements Specification for QR-Code Attendance
Page 2
1.3 Intended Audience and Reading Suggestions Dokumen ini ditujuan kepada pihak-pihak yang berkepentingan dan berhak menggunakan yang di antaranya yaitu : a) Malik
Fajar
Lapele
sebagai
pengembang
sistem.
Pihak
pengembang
akan
menggunakan SKPL ini sebagai acuan dan pedoman dalam mengembangkan sistem ini. b) Program studi Informatika sebagai pengguna sistem. Pengguna akan menggunakan dokumen ini untuk melakukan pengecekan atau validasi terhadap kebutuhankebutuhan yang akan diimplementasikan oleh pengembang.
1.4 Product Scope Di Prodi Teknik Informatika, ketika rapat selain membahas kegiatan yang akan dan telah dilaksanakan, juga membahas agenda rutin setiap awal bulan, awal semester, dan akhir semester, serta ada juga rapat yang dilaksanakan secara insidensial jika terdapat masalah yang bersifat insidensial. Rapat rutin yang dilaksanakan dihadiri oleh seluruh dosen tetap Prodi Teknik Informatika. Hampir di setiap rapat, Sekretaris Prodi Teknik Informatika sebagai notulis. Notulis bertugas mencatat hasil rapat pada notulen rapat. Notulen rapat akan ditandatangani oleh ketua dan notulis rapat, kemudian notulen rapat tersebut akan diarsipkan oleh sekretaris Prodi Teknik Informatika dan dilaporkan kepada ketua Prodi Teknik Informatika setiap akhir tahun. Selama ini sistem pengarsipan notulen rapat belum terkomputerisasi, yaitu notulen rapat masih dicatat pada buku arsip notulen rapat, sehingga proses pengolahan, dan pencarian data serta pembuatan laporan setiap tahunnya membutuhkan waktu yang lama dan kurang efektif. Selain itu pada saat rapat juga terkendala proses absensi yang lama karena masih menggunakan absensi manual yaitu menggunakan tanda tangan Sistem informasi agenda rapat adalah sistem yang mampu mengelola agenda rapat, mulai dari pembuatan agenda hingga pengarsipan agenda. Hasil rapat juga dapat dilihat pada web ini, notulen atau admin lah yang bertugas mencatat hasil rapat lalu diunggah pada sistem informasi agenda rapat tersebut. Admin juga bisa melihat daftar hadir peserta rapat karena telah terintegrasi dengan QR Code.
Software Requirements Specification for QR-Code Attendance
Page 3
1.5 References Daftar dokumen yang digunakan sebagai acuan atau rujukan dalam penyusunan dokumen SKPL ini adalah Kerangka dokumen SKPL IEEE.
2. Overall Description 2.1 Product Perspective Sistem informasi agenda rapat adalah sistem informasi berbasis aplikasi web yang digunakan untuk mengolah data absensi rapat. Cara kerja sistem ini hampir sama dengan sistem lain yang menggunakan kode QR sebagai identifikasi objek atau akses otentik seperti login web aplikasi Whatsapp, hanya saja pada sistem ini, kode QR digunakan sebagai akses otentik penanda kehadiran.
2.2 Product Functions Sistem informasi ini dirancang untuk bisa melakukan beberapa fungsi yang di antaranya sebagai berikut : Identifikasi
Fungsi
Fungsi-1
Autentikasi (login dan logout)
Fungsi-2
Membuat rapat baru
Fungsi-3
Membuat laporan
Fungsi-4
Membuat arsip
Fungsi-5
Menutup rapat
Fungsi-6
Menandai izin
Fungsi-7
Aktivasi scanner
Fungsi-8
Memindai kode hadir
Fungsi-9
Membaca kode
Software Requirements Specification for QR-Code Attendance
Page 4
2.3 User Classes and Characteristics Aktor
Fungsi
Hak Akses Sistem
Autentikasi (login dan logout)
Mengolah seluruh data rapat
Membuat rapat baru
(baca, tambah, ubah, hapus)
Membuat laporan Admin
Membuat arsip Menutup rapat Menandai izin Aktivasi scanner
Dosen
Scanner
Autentikasi (login dan logout)
Tambah dan ubah data hadir
Memindai kode hadir
pada satu pengguna.
Membaca kode
Membaca dan menyimpan masukan kode
2.4 Operating Environment Sistem informasi yang akan dibangun dapat beroperasi berdasarkan spesifikasi yang terdapat pada tabel di bawah. Spesifikasi Sistem operasi
Jenis Windows 7 dan 10 MacOs Semua distribusi Linux Semua versi Android Semua versi IOS
Perangkat lunak browser
Semua versi Chrome Edge +6 Mozilla Firefox +8 Safari +3 Android Browser Opera +6 dan Opera GX
Jaringan
Terhubung dengan jaringan internet
Software Requirements Specification for QR-Code Attendance
Perangkat keras
Page 5
Komputer portable atau ponsel cerdas
2.5 Design and Implementation Constraints Perangkat lunak yang akan dibangun dirancang berdasarkan pada kebutuhan fungsional sehingga bisa disimpulkan beberapa spesifikasi dan batasan berupa bahasa, kerangka, protokol dan jenis DBMS yang di antaranya seperti pada tabel di bawah. Penggunaan
Jenis
Bahasa pengembangan
Nama PHP (versi 7)
Penggunaan Sebagai implementasi backend
Javascript (Typescript)
Sebagai control tampilan dan penghubung backend
SQL
Sebagai
pengolahan
manajemen data pada basis data HTML versi 5
Sebagai rancangan tampilan front-end
CSS versi 3
Sebagai pengaturan tampilan sistem
DBMS
MySQL
Model arsitektur sistem
MVC
Model
Kerangka
kerja Laravel versi 7
pengembangan sistem Protokol akses
HTTPS
Perawatan
Sistem sepenuhnya dirawat
oleh klien setelah sesudah
pengembangan selesai dilakukan dan diberikan. Metode pengiriman data
Metode POST
Penggunaan Sebagai penambahan, hapus dan modifikasi data
GET
Sebagai pengambilan data, berkas publik dan tampilan
Software Requirements Specification for QR-Code Attendance
Page 6
sistem Keamanan pengiriman data
Keamanan pengiriman data menggunakan ekripsi token CSRF yang telah disediakan oleh Laravel
Integritas akses
Akses data sistem hanya diberikan kepada pengguna tertentu yang memiliki akun autentikasi dengan hak akses tersendiri
2.6 User Documentation Pada implementasi pengembangan sistem dan perawatan, pengembang dan klien dapat menggunakan beberapa dokumentasi dan artikel sebagai referensi yang di antaranya. •
https://getbootstrap.com/docs/4.1/getting-started/introduction/
•
https://api.jquery.com
•
https://laravel.com/docs/7.x/installation
•
https://ngrok.com/docs
•
https://www.pagedjs.org/documentation/
•
https://gist.github.com/dvergeylen/a256deb3182b8a863238fcc0704aecb9
2.7 Assumptions and Dependencies Sistem yang akan dikembangkan bergantung pada beberapa komponen pihak ketiga seperti Bootstrap, Paged.js, JsQrcode dimana komponen tersebut diakses secara daring lewat layanan CDN. Perubahan yang dilakukan oleh pengembang komponen tersebut bisa saja menimbulkan error kedepannya. Layanan PHP Composer digunakan untuk mengakses komponen-komponen yang bekerja pada server. Jika sewaktu-waktu pada tahap perawatan, pihak klien melakukan perubahan pada Composer maka error bisa saja terjadi karena perubahan yang versi pendukung komponen yang dilakukan oleh pihak ketiga. Sistem bergantung dengan keamanan sertifikat SSH untuk dapat mengakses perangkat kamera pada komputer sehingga pada tahap pengembangan dan pengujian, pengembangan menggunakan Ngrok sebagai penyedia tunel SSH. Penyewaan layanan SSH oleh pihak klien dibutuhkan agar sistem dapat berjalan.
Software Requirements Specification for QR-Code Attendance
3. External Interface Requirements 3.1 User Interfaces a) Antarmuka pengguna login (tidak ada rapat)
b) Antarmuka pengguna login (rapat berlangsung)
c) Antarmuka pengguna dashboard admin (tidak ada riwayat rapat)
Page 7
Software Requirements Specification for QR-Code Attendance
d) Antarmuka pengguna dashboard admin (dengan riwayat rapat)
e) Antarmuka pengguna data pengguna
Page 8
Software Requirements Specification for QR-Code Attendance
f) Antarmuka pengguna dashboard dosen (tidak ada rapat berlangsung)
g) Antarmuka pengguna dashboard dosen (rapat sedang berlangsung)
Page 9
Software Requirements Specification for QR-Code Attendance
h) Antarmuka pengguna pemindai kode QR
i)
Antarmuka pengguna laporan hasil rapat
Page 10
Software Requirements Specification for QR-Code Attendance
Page 11
3.2 Hardware Interfaces Sistem yang akan dikembangkan membutuhkan interaksi pada perangkat keras sebagai masukan dari. Dalam melakukan interaksi dengan pengguna membutuhkan proses transformasi input dan output dari dan ke pengguna lewat perangkat keras. Perangkat keras tersebut adalah sebagai berikut. -
Perangkat keyboard Keyboard diperlukan sebagai sarana bagi pengguna untuk mengetikkan data masukan yang akan diproses oleh perangkat lunak.
-
Perangkat mouse Perangkat mouse digunakan sebagai sarana bagi pengguna untuk memasukkan data input bagi perangkat lunak. Meskipun Sebagian besar fungsi mouse dapat digantikan dengan keyboard tetapi akan lebih ergonomis apabila pada jenis input tertentu menggunakan mouse sebagai salah satu perangkat keras yang dibutuhkan sebagai antarmuka penghubung pengguna dengan perangkat lunak.
-
Perangkat monitor Monitor sebagai sarana untuk menampilkan aplikasi kepada pengguna mempunyai spesifikasi di antaranya monitor mampu menampilkan grafis dengan kualitas warna yang baik untuk menampilkan kode QR.
-
Perangkat kamera
Software Requirements Specification for QR-Code Attendance
Page 12
Perangkat kamera merupakan inti dari sistem informasi yang akan dibangun dimana kamera berfungsi membaca gambar kode QR oleh pengguna yang kemudian diproses menjadi informasi oleh perangkat lunak. -
Perangkat touchscreen Penggunaan touchscreen bisa dilakukan sebagai pengganti perangkat keyboard dan mouse.
-
Kartu Grafis Kartu grafis yang dibutuhkan dalam mengoperasikan perangkat lunak ini diharapkan mempunyai kapasitas di atas 4 Megabyte. Apabila menggunakan kartu grafis dengan kemampuan yang tidak sesuai maka perangkat lunak akan berjalan dengan kurang maksimal, khususnya saat memproses tampilan kode QR.
-
Kartu Ethernet Kartu Ethernet dibutuhkan untuk menghubungkan komputer dengan jaringan internet.
3.3 Software Interfaces Perangkat lunak yang digunakan oleh sistem di antaranya adalah browser, driver jaringan internet dan driver kamera. Hampir semua browser dapat digunakan untuk menjalankan sistem informasi ini selama browser mendukung penggunaan pemanggilan fungsi-fungsi pada Javascript seperti setTimeout, setInterval dan XHRHttpRequest sedangkan pada driver jaringan dan kamera bersifat opsional jika diasumsikan klien menggunakan kamera luar komputer dan jaringan kabel.
3.4 Communications Interfaces Perangkat lunak yang akan dibangun menggunakan beberapa antarmuka komunikasi untuk alasan keamanan proses pada beberapa fitur. Jenis spesifikasi antarmuka komunikasi tersebut terdapat pada tabel di bawah : a) Antarmuka komunikasi Server Sistem pada sisi server bertujuan melayani semua request yang dikirimkan oleh client yang meminta layanan dengan protocol https. Oleh karena itu pada sisi server dibutuhkan adanya web server yang terhubung dengan jaringan internet. Web server tersebut harus mempunyai alamat IP dan domain yang dapat dikenali dalam jaringan internet. b) Antarmuka komunikasi Client
Software Requirements Specification for QR-Code Attendance
Page 13
Pada sisi client, proses yang dilakukan adalah melakukan request pada server untuk meminta data. Oleh karena itu antarmuka yang dibutuhkan pada sisi client adalah perangkat komunikasi yang memungkinkan komputer client terhubung dengan jaringan internet.
4. System Features Fitur sistem yang akan diimplementasikan berdasarkan dari hasil penggalian kebutuhan seperti yang terdapat pada gambar use-case di bawah.
Software Requirements Specification for QR-Code Attendance
Page 14
4.1 Fungsi-1: Membuat rapat baru 4.1.1
Deskripsi Admin membuat rapat baru pada halaman dashboard dengan memasukkan pukul, dan tema rapat kemudian men-submit data tersebut.
4.1.2
Activity
4.1.3
Sequence
Software Requirements Specification for QR-Code Attendance
Page 15
4.2 Fungsi-2: Menutup rapat 4.2.1
Deskripsi menutup rapat yang terdiri dari admin, sistem dan scanner yang menggambarkan workflow yang bisa dilakukan. Pertama admin melakukan login kemudian masuk ke halaman utama admin, lalu klik menu tutup rapat, sistem akan menutup akses rapat, menyimpan data absensi dan menutup akses pada scanner.
4.2.2
Activity
Software Requirements Specification for QR-Code Attendance
4.2.3
Page 16
Sequence
4.3 Fungsi-3: Menandai izin 4.3.1
Deskripsi menutup rapat yang terdiri dari admin, sistem dan scanner yang menggambarkan workflow yang bisa dilakukan. Pertama admin melakukan login kemudian masuk ke halaman utama admin, lalu klik menu tutup rapat, sistem akan menutup akses rapat, menyimpan data absensi dan menutup akses pada scanner.
4.3.2
Activity
4.3.3
Sequence
Software Requirements Specification for QR-Code Attendance
Page 17
4.4 Fungsi-4: Membuat laporan 4.4.1
Deskripsi Pertama admin melakukan login kemudian masuk ke halaman utama sistem, lalu memilih menu buat laporan rapat, lalu sistem akan membangun format tampilan berkas laporan, kemudian membuka tab baru yang berisi opsi printer, lalu admin klik print dan sistem akan mencetak laporan.
4.4.2
Activity
Software Requirements Specification for QR-Code Attendance
4.4.3
Page 18
Sequence
4.5 Fungsi-5: membuat arsip 4.5.1
Deskripsi Pertama admin melakukan login kemudian masuk ke halaman utama sistem, lalu memilih menu buat arsip rapat, lalu sistem akan membangun format tampilan berkas arsip, sistem akan menghapus semua data rapat, kemudian membuka tab baru yang berisi opsi printer, lalu admin klik print dan sistem akan mencetak arsip.
4.5.2
Activity
Software Requirements Specification for QR-Code Attendance
4.5.3
Page 19
Sequence
4.6 Fungsi-6: aktivasi scanner 4.6.1
Deskripsi dijelaskan alur aktivasi scanner dari mulai tahapan pertama sampai selesai. Aktor disni merupakan admin, kondisi awal klik menu QR rapat dan kondisi akhir memperbarui data scanner
4.6.2
Activity
Software Requirements Specification for QR-Code Attendance
4.6.3
Page 20
Sequence
4.7 Fungsi-7: memindai kode hadir 4.7.1
Deskripsi Kode
haidr
yang
terdiri
dari
dosen,
sistem
dan
scanner
yang
menggambarkan workflow yang bisa dilakukan. Pertama dosen melakukan login kemudian masuk ke halaman utama sistem, lalu sistem akan menampilkan QR Code rapat, selanjutnya dosen melakukan pemindaian yang akan dibaca oleh scanner, sistem akan memproses data, jika valid sistem akan menandai dosen/user hadir rapat, menyimpan data user, lalu menampilkan pesan sukses. 4.7.2
Activity
Software Requirements Specification for QR-Code Attendance
4.7.3
Sequence
Page 21
Software Requirements Specification for QR-Code Attendance
Page 22
5. Other Nonfunctional Requirements 5.1 Performance Requirements Sistem yang akan dibangun memiliki beberapa fungsionalitas proses dengan waktu terbatas seperti pengiriman permintaan dari klien ke server dan pemrosesan kode QR. Detail dari performa sistem yang dibutuhkan dapat dilihat pada tabel di bawah.
Proses Pengiriman permintaan tanpa
Performa waktu (millisecond) Maksimal 10000 ms
data menggunakan metode GET Pengiriman permintaan dengan
Maksimal 3000 ms
data menggunakan metode POST Pengiriman data XHR kode QR
Maksimal 900 ms
Proses generasi kode QR
Maksimal 300 ms
Proses baca kode QR
Maksimal 100 ms
5.2 Safety Requirements Sistem dibangun berdasarkan hasil penggalian kebutuhan pada Agustus 2020. Jika seandainya klien ingin melakukan rekayasa ulang sistem sebaiknya klien menggunakan pengembang yang sama atau pihak tertentu yang pernah mengembangkan sistem sejenis.
5.3 Security Requirements Berdasarkan fitur-fitur yang diimplementasikan pada sistem yang akan dibangun maka beberapa jenis keamanan perlu dispesifikasikan secara khusus agar sistem dapat berjalan sesuai harapan tanpa ada gangguan. Beberapa spesifikasi keamanan yang perlu diimplementasikan pada sistem ini yaitu di antaranya.
Software Requirements Specification for QR-Code Attendance
Spesifikasi Hak akses sistem
Page 23
Pengamanan
Keterangan
Pengecekan autentikasi pengguna (ID
Autentikasi
berfungsi
untuk
dan kata sandi)
membatasi agar hanya orangorang tertentu saja yang bisa menggunakan Autentikasi
sistem.
dapat
digunakan
menggunakan ID dan kata sandi. Hak Kelola sistem
Pengelompokan autorisasi pengguna
Autorisasi
berfungsi
(atribut role)
mendetailkan
spesifikasi
pengguna
serta
yang
dilakukan
bisa
untuk
tugas-tugas dengan
sistem.
Autorisasi
dilakukan
secara
otomatis
dengan
memeriksa
role
pengguna
apakah admin atau dosen. Autorisasi
Pembagian dan pengecekan
Selain lewat interaksi tampilan
penggunaan fungsi
autorisasi pengguna untuk setiap
view, fungsi-fungsi pada server
pada server
fungsi pada server
juga
dapat
diakses
dengan
URL,
untuk
menggunakan memastikan maka
tidak
ada
pengecekan
celah
autorisasi
perlu ditambahkan pada tiap pemanggilan fungsi. Pengamanan
Enkripsi paket XHR (protocol HTTPS)
transmisi data
Transmisi data tanpa enkripsi HTTPS umumnya bisa dilihat dan diubah oleh pihak lain. Untuk mencegah hal ini maka protocol
HTTPS
perlu
digunakan. Pengamanan
Pengamanan FormData metode
Selain
FormData
POST (token)
HTTPS,
menggunakan pengamanan
menggunakan bawaan
protocol
token
Laravel
juga
data CSRF perlu
Software Requirements Specification for QR-Code Attendance
Page 24
digunakan agar sistem dapat berjalan tanpa gangguan antara klien dan server.
5.4 Software Quality Attributes Jenis
Keterangan
usability
Sistem dapat digunakan sesuai dengan keinginan
correctness
Sistem sudah sesuai dan bebas error
portability
Sistem dapat dijalankan di berbagai perangkat dan berbagai sistem Sperasi secara responsive
reusability
Sistem dapat digunakan kembali oleh pihak lain yang sejenis dengan sangat mudah
5.5 Business Rules Sistem tidak dibangun untuk tujuan komersial melainkan sebagai penelitian tugas akhir. Sistem dapat digunakan oleh siapa saja tanpa Batasan. Penggunaan untuk tujuan komersial atau profit sepihak tanpa sepengetahuan sesudah setelah sistem diserahkan tidak ditanggung oleh pihak pengembang.
6. Other Requirements
Appendix A: Glossary Istilah
Definisi
SKPL
Spesifikasi Kebutuhan Perangkat Lunak
DBMS
Database Management System
Software Requirements Specification for QR-Code Attendance
UML
Unified Modeling Language
GUI
Graphical User Interface
Appendix B: Analysis Models a) Model ERD
b) Pengujian White Box c) Membuat Rapat Baru Tabel 4.1 Sourcecode Membuat Rapat Baru 1
@csrf_token
2
3
Page 25
Software Requirements Specification for QR-Code Attendance
4
$id = Injection::createRapat($request); $year = date(“Y”); $month = date(“m”); $day = date(“d”); $start = date(“h:i”); $temp = date(“YYYY-MM-DD”); $temp = strtotime($temp); $hari = date(“l”,$temp);
5
if($month == ‘01’) $month = ‘Januari’
6
else if($month == ‘02’) $month = ‘Februari’;
7
else if($month == ‘03’) $month = ‘Maret’;
8
else if($month == ‘04’) $month = ‘April’;
9
else if($month == ‘05’) $month = ‘Mei’;
10 else if($month == ‘06’) $month = ‘Juni’; 11 else if($month == ‘07’) $month = ‘Juli’; 12 else if($month == ‘08’) $month = ‘Agustus’; 13 else if($month == ‘09’) $month = ‘September’; 14 else if($month == ‘10’) $month = ‘Oktober’; 15 else if($month == ‘11’) $month = ‘November’; 16 else if($month == ‘12’) $month = ‘Desember’; 17 if($hari == ‘monday’) $hari = ‘senin’ 18 else if($hari == ‘tuesday’) $hari = ‘selasa’; 19 else if($hari == ‘wednesday’) $hari = ‘rabu’; 20 else if($hari == ‘thursday’) $hari = ‘kamis’;
Page 26
Software Requirements Specification for QR-Code Attendance
Page 27
21 else if($hari == ‘friday’) $hari = ‘jumat’; 22 else if($hari == ‘saturday’) $hari = ‘sabtu’; 23 else if($hari == ‘sunday’) $hari = ‘minggu’; 24 $rapat = new Rapat(); $rapat->tema = $request->tema; $rapat->tanggal = $hari.’, ’.$day.’ ’.$month.’ ’.$year; $rapat->mulai = $start; $rapat->status = ‘1’; $rapat->absen = DB::table(‘users’) ->where(‘role’,’user’) ->get->count(); $rapat->save();
25 Injection::setAbsenAll($id); 26 Qr::setScannerCode(); 27 Return redirect()->back();
Tabel di atas menunjukkan bahwa pada case membuat rapat baru yang dilakukan oleh admin, dietmukan sejumlah 27 titik atau node sehingga bisa dihitung kompleksitas cyclomaticnya sebelum digambarkan melalui flowgraph.
Software Requirements Specification for QR-Code Attendance
Page 28
Gambar 4.10 Flowgraph buat rapat baru E
= 109
N
= 27
V(G) = E-N+2 = 109-27+2 = 84 Tabel 4.2 Hasil WhiteBox Testing untukMembuat Rapat Baru Basis Alur
Jalur Independen
Deskripsi
Sukses
Jalur 1
1-2-3-4-5-1724-25-26-27
$bulan == ‘01’ && $hari == ‘monday’
Iya
Jalur 2
1-2-3-4-5-1824-25-26-27
$bulan == ‘01’ && $hari == ‘tuesday’
Iya
Jalur 3
1-2-3-4-5-1924-25-26-27
$bulan == ‘01’ && $hari == ‘wednesday’
Iya
Jalur 4
1-2-3-4-5-2024-25-26-27
$bulan == ‘01’ && $hari == ‘thursday’
Iya
Software Requirements Specification for QR-Code Attendance
Page 29
Jalur 5
1-2-3-4-5-2124-25-26-27
$bulan == ‘01’ && $hari == ‘friday’
Iya
Jalur 6
1-2-3-4-5-2224-25-26-27
$bulan == ‘01’ && $hari == ‘saturday’
Iya
Jalur 7
1-2-3-4-5-2324-25-26-27
$bulan == ‘01’ && $hari == ‘sunday’
Iya
Jalur 8
1-2-3-4-6-1724-25-26-27
$bulan == ‘02’ && $hari == ‘monday’
Iya
Jalur 9
1-2-3-4-6-1824-25-26-27
$bulan == ‘02’ && $hari == ‘tuesday’
Iya
Jalur 10
1-2-3-4-6-1924-25-26-27
$bulan == ‘02’ && $hari == ‘wednesday’
Iya
Jalur 11
1-2-3-4-6-2024-25-26-27
$bulan == ‘02’ && $hari == ‘thursday’
Iya
Jalur 12
1-2-3-4-6-2124-25-26-27
$bulan == ‘02’ && $hari == ‘friday’
Iya
Jalur 13
1-2-3-4-6-2224-25-26-27
$bulan == ‘02’ && $hari == ‘saturday’
Iya
Jalur 14
1-2-3-4-6-2324-25-26-27
$bulan == ‘02’ && $hari == ‘sunday’
Iya
Jalur 15
1-2-3-4-7-1724-25-26-27
$bulan == ‘03’ && $hari == ‘monday’
Iya
Jalur 16
1-2-3-4-7-1824-25-26-27
$bulan == ‘03’ && $hari == ‘tuesday’
Iya
Jalur 17
1-2-3-4-7-1924-25-26-27
$bulan == ‘03’ && $hari == ‘wednesday’
Iya
Jalur 18
1-2-3-4-7-2024-25-26-27
$bulan == ‘03’ && $hari == ‘thursday’
Iya
Jalur 19
1-2-3-4-7-2124-25-26-27
$bulan == ‘03’ && $hari == ‘friday’
Iya
Jalur 20
1-2-3-4-7-2224-25-26-27
$bulan == ‘03’ && $hari == ‘saturday’
Iya
Software Requirements Specification for QR-Code Attendance
Page 30
Jalur 21
1-2-3-4-7-2324-25-26-27
$bulan == ‘03’ && $hari == ‘sunday’
Iya
Jalur 22
1-2-3-4-8-1724-25-26-27
$bulan == ‘04’ && $hari == ‘monday’
Iya
Jalur 23
1-2-3-4-8-1824-25-26-27
$bulan == ‘04’ && $hari == ‘tuesday’
Iya
Jalur 24
1-2-3-4-8-1924-25-26-27
$bulan == ‘04’ && $hari == ‘wednesday’
Iya
Jalur 25
1-2-3-4-8-2024-25-26-27
$bulan == ‘04’ && $hari == ‘thursday’
Iya
Jalur 26
1-2-3-4-8-2124-25-26-27
$bulan == ‘04’ && $hari == ‘friday’
Iya
Jalur 27
1-2-3-4-8-2224-25-26-27
$bulan == ‘04’ && $hari == ‘saturday’
Iya
Jalur 28
1-2-3-4-8-2324-25-26-27
$bulan == ‘04’ && $hari == ‘sunday’
Iya
Jalur 29
1-2-3-4-9-1724-25-26-27
$bulan == ‘05’ && $hari == ‘monday’
Iya
Jalur 30
1-2-3-4-9-1824-25-26-27
$bulan == ‘05’ && $hari == ‘tuesday’
Iya
Jalur 31
1-2-3-4-9-1924-25-26-27
$bulan == ‘05’ && $hari == ‘wednesday’
Iya
Jalur 32
1-2-3-4-9-2024-25-26-27
$bulan == ‘05’ && $hari == ‘thrusday’
Iya
Jalur 33
1-2-3-4-9-2124-25-26-27
$bulan == ‘05’ && $hari == ‘friday’
Iya
Jalur 34
1-2-3-4-9-2224-25-26-27
$bulan == ‘05’ && $hari == ‘saturday’
Iya
Jalur 35
1-2-3-4-9-2324-25-26-27
$bulan == ‘05’ && $hari == ‘sunday’
Iya
Jalur 36
1-2-3-4-10-1724-25-26-27
$bulan == ‘06’ && $hari == ‘monday’
Iya
Software Requirements Specification for QR-Code Attendance
Page 31
Jalur 37
1-2-3-4-10-1824-25-26-27
$bulan == ‘06’ && $hari == ‘tuesday’
Iya
Jalur 38
1-2-3-4-10-1924-25-26-27
$bulan == ‘06’ && $hari == ‘wednesday’
Iya
Jalur 39
1-2-3-4-10-2024-25-26-27
$bulan == ‘06’ && $hari == ‘thursday’
Iya
Jalur 40
1-2-3-4-10--2125-26-27
$bulan == ‘06’ && $hari == ‘friday’
Iya
Jalur 41
1-2-3-4-10-2224-25-26-27
$bulan == ‘06’ && $hari == ‘saturday’
Iya
Jalur 42
1-2-3-4-10-2324-25-26-27
$bulan == ‘06’ && $hari == ‘sunday’
Iya
Jalur 43
1-2-3-4-11-1724-25-26-27
$bulan == ‘07’ && $hari == ‘monday’
Iya
Jalur 44
1-2-3-4-11-1824-25-26-27
$bulan == ‘07’ && $hari == ‘tuesday’
Iya
Jalur 45
1-2-3-4-11-1924-25-26-27
$bulan == ‘07’ && $hari == ‘wednesday’
Iya
Jalur 46
1-2-3-4-11-2024-25-26-27
$bulan == ‘07’ && $hari == ‘thursday’
Iya
Jalur 47
1-2-3-4-11-2124-25-26-27
$bulan == ‘07’ && $hari == ‘friday’
Iya
Jalur 48
1-2-3-4-11-2224-25-26-27
$bulan == ‘07’ && $hari == ‘saturday’
Iya
Jalur 49
1-2-3-4-11-2324-25-26-27
$bulan == ‘07’ && $hari == ‘sunday’
Iya
Jalur 50
1-2-3-4-12-1724-25-26-27
$bulan == ‘08’ && $hari == ‘monday’
Iya
Jalur 51
1-2-3-4-12-1824-25-26-27
$bulan == ‘08’ && $hari == ‘tuesday’
Iya
Jalur 52
1-2-3-4-12-1924-25-26-27
$bulan == ‘08’ && $hari ==
Iya
Software Requirements Specification for QR-Code Attendance
Page 32
‘wednesday’ Jalur 53
1-2-3-4-12-2024-25-26-27
$bulan == ‘08’ && $hari == ‘thursday’
Iya
Jalur 54
1-2-3-4-12-2124-25-26-27
$bulan == ‘08’ && $hari == ‘friday’
Iya
Jalur 55
1-2-3-4-12-2224-25-26-27
$bulan == ‘08’ && $hari == ‘saturday’
Iya
Jalur 56
1-2-3-4-12-2324-25-26-27
$bulan == ‘08’ && $hari == ‘sunday’
Iya
Jalur 57
1-2-3-4-13-1724-25-26-27
$bulan == ‘09’ && $hari == ‘monday’
Iya
Jalur 58
1-2-3-4-13-1824-25-26-27
$bulan == ‘09’ && $hari == ‘tuesday’
Iya
Jalur 59
1-2-3-4-13-1924-25-26-27
$bulan == ‘09’ && $hari == ‘wednesday’
Iya
Jalur 60
1-2-3-4-13-2024-25-26-27
$bulan == ‘09’ && $hari == ‘thursday’
Iya
Jalur 61
1-2-3-4-13-2124-25-26-27
$bulan == ‘09’ && $hari == ‘friday’
Iya
Jalur 62
1-2-3-4-13-2224-25-26-27
$bulan == ‘09’ && $hari == ‘saturday’
Iya
Jalur 63
1-2-3-4-13-2324-25-26-27
$bulan == ‘09’ && $hari == ‘sunday’
Iya
Jalur 64
1-2-3-4-14-1724-25-26-27
$bulan == ‘10’ && $hari == ‘monday’
Iya
Jalur 65
1-2-3-4-14-1824-25-26-27
$bulan == ‘10’ && $hari == ‘tuesday’
Iya
Jalur 66
1-2-3-4-14-1924-25-26-27
$bulan == ‘10’ && $hari == ‘wednesday’
Iya
Jalur 67
1-2-3-4-14-2024-25-26-27
$bulan == ‘10’ && $hari == ‘thursday’
Iya
Software Requirements Specification for QR-Code Attendance
Page 33
Jalur 68
1-2-3-4-14-2124-25-26-27
$bulan == ‘10’ && $hari == ‘friday’
Iya
Jalur 69
1-2-3-4-14-2224-25-26-27
$bulan == ‘10’ && $hari == ‘saturday’
Iya
Jalur 70
1-2-3-4-14-2324-25-26-27
$bulan == ‘10’ && $hari == ‘sunday’
Iya
Jalur 71
1-2-3-4-15-1724-25-26-27
$bulan == ‘11’ && $hari == ‘monday’
Iya
Jalur 72
1-2-3-4-15-1824-25-26-27
$bulan == ‘11’ && $hari == ‘tuesday’
Iya
Jalur 73
1-2-3-4-15-1924-25-26-27
$bulan == ‘11’ && $hari == ‘wednseday’
Iya
Jalur 74
1-2-3-4-15-2024-25-26-27
$bulan == ‘11’ && $hari == ‘thursday’
Iya
Jalur 75
1-2-3-4-15-2124-25-26-27
$bulan == ‘11’ && $hari == ‘friday’
Iya
Jalur 76
1-2-3-4-15-2224-25-26-27
$bulan == ‘11’ && $hari == ‘saturday’
Iya
Jalur 77
1-2-3-4-15-2324-25-26-27
$bulan == ‘11’ && $hari == ‘sunday’
Iya
Jalur 78
1-2-3-4-16-1724-25-26-27
$bulan == ‘12’ && $hari == ‘monday’
Iya
Jalur 79
1-2-3-4-16-1824-25-26-27
$bulan == ‘12’ && $hari == ‘tuesday’
Iya
Jalur 80
1-2-3-4-16-1924-25-26-27
$bulan == ‘12’ && $hari == ‘wednesday’
Iya
Jalur 81
1-2-3-4-16-2024-25-26-27
$bulan == ‘12’ && $hari == ‘thursday’
Iya
Jalur 82
1-2-3-4-16-2124-25-26-27
$bulan == ‘12’ && $hari == ‘friday’
Iya
Jalur 83
1-2-3-4-16-2224-25-26-27
$bulan == ‘12’ && $hari == ‘saturday’
Iya
Software Requirements Specification for QR-Code Attendance
Jalur 84
1-2-3-4-16-2324-25-26-27
$bulan == ‘12’ && $hari == ‘sunday’
Page 34
Iya
Tabel di atas merupakan hasil pengujian untuk case membuat rapat baru dimana ditemukan 84 jalur dan semua jalur tersebut sukses dijalankan.
d) Menandai Izin Tabel 4.3 Sourcecode Menandai Izin 1
@csrf id”>
2
Injection::setIzin($request->id);
3
$user = self::getUser($id); $rapat = self::getCurrentRapat():
4
DB::table('izin_rapat')->insert([ 'rapat' => $rapat->id, 'peserta' => $user->nid, ]); DB::table('absen_rapat') ->where('peserta',$user->nid) ->where('rapat',$rapat->id) ->delete();
5
return redirect()->back();
Software Requirements Specification for QR-Code Attendance
Page 35
Tabel di atas menunjukkan bahwa pada case membuat rapat baru yang dilakukan oleh admin, dietmukan sejumlah 5 titik atau node sehingga bisa dihitung kompleksitas cyclomaticnya sebelum digambarkan melalui flowgraph.
Gambar 4.11 Flowgraph Menandai Izin E =4 N =5 V(G) = E-N+2 = 4-5+2 =1
Tabel 4.4 Hasil White Box Testing untuk Menandai Izin Basis Alur Jalur 1
Jalur Independen 1-2-3-4-5
Deskripsi
Sukses
Menandai dosen yang belum hadir
Iya
Tabel diatas merupakan hasil testing untuk case menandai izin, terdapat 1 jalur saja dan telah di jalankan secara sukses.
e) Aktivasi Scanner Tabel 4.5 Sourcecode Aktivasi Scanner
Software Requirements Specification for QR-Code Attendance
1
Page 36
const imageData = canvas.getImageData(); const code = jsQr(imageData);
2
if (code) {
3
if (init)
4
if (auth)
5
else code = false; }
6
$.ajax({ type: 'POST', url: '{{url('post_qr_code')}}', data: {_token:'{{csrf_token()}}',qr:code.data} });
7
$res = Qr::verifyScanner($request->code);
8
if ($res) {
9
Else
10 $scanner = QR_scanner::find(1); 11 $qr_code = $scanner->qr; 12 else console.log(0); 13 setInterval(scanner,1000); }
Tabel di atas menunjukkan bahwa pada case membuat rapat baru yang dilakukan oleh admin, dietmukan sejumlah 13 titik atau node sehingga bisa dihitung kompleksitas cyclomaticnya sebelum digambarkan melalui flowgraph.
Software Requirements Specification for QR-Code Attendance
Page 37
Gambar 4.12 Flowgraph Aktivasi Scanner E = 15 N = 13 V(G) = E-N+2 = 15-13+2 =4 Tabel 4.6 Hasil White Box Testing untuk Aktivasi Scanner Basis Alur Jalur Deskripsi Sukses Independen Jalur 1
1-2-3-4-6-7-8-1011-13
Mengaktifkan scanner dengan akun admin Ketika tidak ada rapat yang sedang berjalan dan kode qr yang sesuai dengan data
Iya
Jalur 2
1-2-3-4-6-7-9-13
Mengaktifkan scanner dengan akun admin Ketika tidak ada rapat yang sedang berjalan dan kode qr yang tidak sesuai dengan data
Iya
Software Requirements Specification for QR-Code Attendance
Page 38
Jalur 3
1-2-3-5-13
Mengaktifkan scanner menggunakan akun admin Ketika ada rapat yang sedang berjalan
Iya
Jalur 4
1-2-12-13
Mengaktifkan scanner menggunakan akun dosen
Iya
Tabel diatas merupakan hasil testing untuk case aktivasi scanner, terdapat 4 jalur dan telah di jalankan semua secara sukses.
f) Memindai Kode Hadir Tabel 4.7 Sourcecode Memindai Kode Hadir 1
Auth::login();
2
if (Auth::user()->role == ‘admin’)
3
return view(‘page’);
4
Else
5
return view(‘page.user’);
6
qrcode = new QRCode("qr-code",{ text: "{{$response->data}}", width: 152, height: 152, colorDark : "#000000", colorLight : "#ffffff", correctLevel : QRCode.CorrectLevel.H });
7
if (qrcode)
8
Else
9
$.ajax({ type: 'POST', url:'{{url('post_update_qr')}}',
Software Requirements Specification for QR-Code Attendance
Page 39
data:{_token:'{{csrf_token()}}'}, });
10 status = data.status; 11 $result = Qr::verify(request->code); 12 return $code_data = DB::table('q_r_dosens') ->where('qr',$qr_code) ->first();
13 if($result[0]) 14 Else 15 return response()->json(array('result'=>'1','nid'=>$result[1]),200); 16 qrcode.clear(); 17 $(‘#has_rapat’).removeClass('d-none'); $(‘#no_rapat’).addClass('d-none');
18 if (data.status == ‘1’) 19 $(‘#has_rapat’).html(` Anda telah dicatat hadir!
Keluar
` );
20 setTimeout(qrcode,1000); 21 else clearInterval(qrcode);
Tabel di atas menunjukkan bahwa pada case membuat rapat baru yang dilakukan oleh admin, dietmukan sejumlah 21 titik atau node sehingga bisa dihitung kompleksitas cyclomaticnya sebelum digambarkan melalui flowgraph.
Software Requirements Specification for QR-Code Attendance
Page 40
Gambar 4.13 Flowgraph Memindai Kode Hadir E = 24 N = 21 V(G) = E-N+2 = 24-21+2 =5 Tabel 4.8 Hasil White Box Testing untuk Memindai Kode Hadir Basis Alur Jalur Deskripsi Sukses Independen Jalur 1
1-2-3-4-20
$user.role != ‘dosen’
Iya
Jalur 2
1-2-3-5-6-7-9-1011-12-13
$user.role == ‘dosen’
Iya
Update data qr $scanner->status == ‘1’ $request->qr == true
Jalur 3
1-2-3-5-6-7-9-1011-12-13-15-1617-21-20
$user.role == ‘dosen’ Update data qr
Iya
Software Requirements Specification for QR-Code Attendance
Page 41
$scanner->status == ‘0’ $request->qr == false Jalur 4
1-2-3-5-6-8-10-11- $user.role == ‘dosen’ 12-13-15-16-17$scanner->status == ‘1’ 21-20 $request->qr == false
Iya
Jalur 5
1-2-3-5-6-8-10-11- $user.role == ‘dosen’ 12-14-20 $scanner->status == ‘0’
Iya
Tabel diatas merupakan hasil testing untuk case memindai kode hadir, terdapat 5 jalur dan telah di jalankan semua secara sukses.
g) Membuat Laporan Tabel 4.9 Sourcecode Membuat Laporan 1
Laporan
2
$rapat = Injection::getRapat_($id); $pukul = $rapat->mulai .' -'.$rapat->selesai.' WIB'; $report = Paper::newPaper($rapat->tanggal,$pukul,$rapat->tema);
3
Return 'LEMBAGA JURUSAN XXHasil Notula Rapat'. '
Tanggal | ' ': | '. ''.$tanggal.' |
Pukul | '. ': | '. ''.$pukul.' |
Tema | '. ': | '. ''.$tema.' |
No. | Nama Lengkap | Nomor Induk Dosen | '. 'Status | Total Hadir | Total Izin | Total Absen | '. '||
'.$index.'. | '. ''.$item->name.' | '. ''.$item->nid.' | '; $status = Injection::userRapatStatus($item->nid,$id_rapat);hadir | ';izin | ';absen | ';'.$userAtt[2].' | ';'.$userAtt[2].' | ';'.$userAtt[2].' | ';