Anda di halaman 1dari 94

HALAMAN JUDUL

KRIPTOGRAFI SECURITY DATA MENGGUNAKAN


ALGORITMA ADVANCED ENCRYPTION STANDARD (AES)
PADA SISTEM COMPUTER BASED TEST (CBT)
(Studi kasus: SMK Kesehatan Binatama Yogyakarta)

PROYEK TUGAS AKHIR

Disusun oleh:
MUHAMMAD YUSRAN
5140411221

PROGRAM STUDI INFORMATIKA


FAKULTAS TEKNOLOGI INFORMASI DAN ELEKTRO
UNIVERSITAS TEKNOLOGI YOGYAKARTA
2020
HALAMAN PENGESAHAN
KRIPTOGRAFI SECURITY DATA MENGGUNAKAN
ALGORITMA ADVANCED ENCRYPTION STANDARD (AES)
PADA SISTEM COMPUTER BASED TEST (CBT)
(Studi kasus: SMK Kesehatan Binatama Yogyakarta)

PROYEK TUGAS AKHIR

Disusun oleh
Muhammad Yusran
5140411221

Telah dipertanggungjawabkan di dalam Sidang Proyek Tugas Akhir


pada tanggal, 11-Februari-2020

Tim Penguji:
Adityo Permana Wibowo, S.Kom., M.Cs. ( )
Ketua tgl.

Saucha Diwandari, S.Kom., M.Eng. ( )


Anggota tgl.

Joko Sutopo, S.T., M.T. ( )


Anggota tgl.

Yogyakarta ,…………….
Ketua Program Studi Informatika
Fakultas Teknologi Informasi dan Elektro, Universitas Teknologi Yogyakarta

Dr. Enny Itje Sela, S.Si., M.Kom.

ii
LEMBAR PERNYATAAN

Saya yang bertanda tangan dibawah ini:


Nama : Muhammad Yusran
NPM : 5140411221
Program Studi : Informatika
Menyatakan bahwa Proyek Tugas Akhir yang berjudul:

KRIPTOGRAFI SECURITY DATA MENGGUNAKAN ALGORITMA


ADVANCED ENCRYPTION STANDARD (AES) PADA SISTEM
COMPUTER BASED TEST (CBT)
merupakan karya ilmiah asli saya dan belum pernah dipublikasikan oleh orang
lain, kecuali yang tertulis sebagai acuan dalam naskah ini dan disebutkan dalam
daftar pustaka. Apabila di kemudian hari, karya saya disinyalir bukan merupakan
karya asli saya, maka saya bersedia menerima konsekuensi apa yang diberikan
Program Studi Informatika Fakultas Teknologi Informasi dan Elektro Universitas
Teknologi Yogyakarta kepada saya.

Demikian surat pernyataan ini saya buat dengan sebenarnya.

Dibuat di : Yogyakarta
Pada tanggal : 1 Maret 2019
Yang menyatakan

Muhammad Yusran

iii
KATA PENGANTAR

Puji syukur dipanjatkan atas kehadirat Allah SWT, karena dengan


limpahan karunia-Nya penulis dapat menyelesaikan Proyek Tugas Akhir
dengan judul Kriptografi Security Data menggunakan Algoritma AES pada
Sistem CBT. Selawat dan salam haturkan kepada Nabi Muhammad SAW semoga
kita mendapatkan syafaat di yaumil akhir Amiin Yaa Robbal ‘Alamiin.

Penyusunan Proyek Tugas Akhir diajukan sebagai salah satu syarat untuk
memperoleh gelar sarjana pada Program Studi Informatika Fakultas Teknologi
Informasi dan Elektro Universitas Teknologi Yogyakarta.

Proyek Tugas Akhir ini dapat diselesaikan tidak lepas dari segala
bantuan, bimbingan, dorongan dan doa dari berbagai pihak, yang pada
kesempatan ini penulis ingin menyampaikan ucapan terima kasih kepada:
1. Bapak Dr. Bambang Moertono Setiawan, MM., Akt., CA. selaku Rektor
di Universitas Teknologi Yogyakarta.
2. Bapak Sutarman, M.Kom., Ph.D. selaku Dekan Fakultas Teknologi
Informasi dan Elektro di Universitas Teknologi Yogyakarta.
3. Ketua Program Studi Ibu Dr. Enny Itje Sela, S.Si., M.Kom. selaku
Kaprodi S-1 Informatika di Universitas Teknologi Yogyakarta.
4. Bapak Joko Sutopo, ST., MT. selaku Dosen pembimbing Tugas Akhir
yang selalu mendorong terselesaikannya penelitian ini.
5. Nuri Hastuti, S.P. selaku Kepala Sekolah SMK Kesehatan Binatama
beserta jajarannya yang telah mengijinkan dan membantu saya dalam
melakukan penelitian.
6. Kedua Orang tua, yaitu Ibunda tersayang (Mutiara) dan juga Ayahanda
(Muhtar) yang sudah membimbing dan memberikan kesempatan untuk
menjadi bagian dari kehidupan.
7. Kedua Kakak saya, yaitu Abdul Rahman dan Ahmad Rusman, dan semua

iv
keluarga yang selalu memberi dukungan baik morel maupun materi.
8. Semua senior-senior, teman-teman satu angkatan, adik-adik angkatan
yang tergabung dalam Ikatan Keluarga Mahasiswa Muslim Komodo –
Yogyakarta (IKMMIKOM-Y) yang telah sama-sama berjuang, susah
senang bersama kita hadapi karena kita adalah keluarga.
9. Semua teman-teman (Informatika kelas D) dan teman-teman yang tidak
dapat saya sebutkan satu persatu, baik langsung maupun tidak langsung
membantu saya dalam penyelesaikan Proyek Tugas Akhir ini.

Akhir kata, penulis menyadari bahwa sepenuhnya akan terbatasnya


pengetahuan penyusun, sehingga tidak menutup kemungkinan jika ada
kesalahan serta kekurangan dalam penyusunan Proyek Tugas Akhir, untuk itu
sumbang saran dari pembaca sangat diharapkan sebagai bahan pelajaran
berharga dimasa yang akan datang.

Yogyakarta, 1 Maret 2019

Muhammad Yusran

v
ABSTRAK

Database merupakan tempat penyimpanan data dan informasi. Seluruh sistem


menyimpan datanya di dalam database, sehingga isi data yang tersimpan harus
dijaga keamanan dan kerahasiaannya. Untuk menjaga keamanan database
tersebut diperlukan sebuah metode, metode tersebut adalah kriptografi. Sistem
Computer Based Test (CBT) umumnya memproses data user, soal, jawaban dan
hasil tes yang datanya di simpan ke dalam database, sehingga data yang
tersimpan di dalam database perlu dijamin keamanan dan kerahasiaannya. Untuk
menjaga kerahasiaan dan keamanan data pada sistem yang dibangun, maka
diterapkan algoritma kriptografi simetris Advanced Encription Standart (AES).
Algoritma kriptografi terbagi menjadi dua yaitu algoritma simetris dan algoritma
asimetris. Salah satu contoh algoritma simetris adalah AES. Advanced Encryption
Standard (AES) merupakan algoritma cryptographic yang dapat digunakan untuk
mengamakan data. Algoritma AES adalah blokchipertext simetrik yang dapat
mengenkripsi (encipher) dan dekripsi (decipher) informasi. Enkripsi merubah
data yang tidak dapat lagi dibaca disebut ciphertext; sebaliknya dekripsi adalah
merubah ciphertext data menjadi bentuk semula yang kita kenal sebagai plaintext.
Sistem yang dibangun menggunakan bahasa pemrograman PHP dan database
menggunakan MySQLi. Data yang di inputkan pada database berhasil di enkripsi
sehingga tidak dapat dibaca dan dimengerti oleh pihak yang tidak punya
kepentingan, data kemudian di dekripsi untuk ditampilkan pada laporan.

Kata Kunci: Kriptografi, Security, AES, CBT

vi
ABSTRACT

The database is a repository of data and information. The entire system stores its
data in the database, so that the contents of the data stored should be kept in strict
confidence and security.To maintain the security of the database required a
method, that method is Cryptography.System of Computer Based Test (CBT)
generally process the user data, question, answer and test results data is stored
into the database, so that data stored in the database needs to be guaranteed the
security and confidential.To maintain the confidentiality and security of data on a
system that was built, then the symmetric cryptographic algorithms applied to the
Advanced Encryption Standard (AES).Cryptographic algorithms are divided into
two symmetric algorithms and asymmetric algorithms.One example of a
symmetric algorithm is AES. Advanced Encryption Standard (AES) is a
cryptographic algorithm that can be used for mengamakan data.The AES
algorithm is a symmetric blokchipertext can encrypt (encipher) and decrypt
(decipher) information.Change the encryption data can no longer be read is
called ciphertext; decryption is the reverse change the ciphertext data into a form
that we know as the original plaintext.The system is built using the PHP
programming language and uses the MySQLi database.The data in the inputkan
on the database successfully encrypted so it cannot be read and understood by the
parties that have no interest, then the data in decrypted for display on the report.

Keywords: Cryptography, Security, AES, CBT

vii
DAFTAR ISI

HALAMAN JUDUL .............................................................................................. i


HALAMAN PENGESAHAN ............................................................................... ii
LEMBAR PERNYATAAN ................................................................................. iii
KATA PENGANTAR .......................................................................................... iv
ABSTRAK ............................................................................................................ vi
ABSTRACT .......................................................................................................... vii
DAFTAR ISI ....................................................................................................... viii
DAFTAR TABEL ................................................................................................. x
DAFTAR GAMBAR ............................................................................................ xi
BAB I PENDAHULUAN ...................................................................................... 1
1.1 Latar Belakang .................................................................................................. 1
1.2 Rumusan Masalah ............................................................................................. 2
1.3 Batasan Masalah................................................................................................ 2
1.4 Tujuan penelitian ............................................................................................... 2
1.5 Manfaat Penelitian ............................................................................................ 3
1.6 Sistematika Penulisan ....................................................................................... 3
BAB II KAJIAN PUSTAKA DAN LANDASAN TEORI ................................. 5
2.1 Kajian Hasil Penelitian ...................................................................................... 5
2.2 Dasar Teori ........................................................................................................ 7
2.2.1 Kriptografi .................................................................................................. 7
2.2.2 Sistem informasi ........................................................................................ 8
2.2.3 Basis data ................................................................................................... 8
2.2.4 Advanced Encryption Standard (AES) ...................................................... 9
2.2.5 Computer Based Test (CBT) .................................................................... 14
2.2.6 Unified Modeling Languange (UML) ...................................................... 15
2.2.7 Entity Relationship Diagram (ERD) ........................................................ 18
BAB III METODE PENELITIAN..................................................................... 20
3.1 Obyek Penelitian ............................................................................................. 20
3.2 Metode Penelitian............................................................................................ 20
3.2.1 Requirement ............................................................................................. 21
3.2.2 Perancangan ............................................................................................. 21
3.2.3 Implementasi ............................................................................................ 22
3.2.4 Pengujian .................................................................................................. 22
BAB IV ANALISA DAN PERANCANGAN SISTEM .................................... 23
4.1 Analisa Sistem................................................................................................. 23
4.1.1 Sistem yang berjalan ................................................................................ 23
4.1.2 Sistem yang diusulkan.............................................................................. 24
4.2 Analisa Kebutuhan User ................................................................................. 24
4.2.1 Kebutuhan peserta .................................................................................... 24
4.2.2 Kebutuhan administrator .......................................................................... 25
4.2.3 Kebutuhan operator .................................................................................. 25

viii
4.3 Rancangan Sistem ........................................................................................... 25
4.3.1 Flowchat sistem ........................................................................................ 25
4.3.2 Use case diagram...................................................................................... 27
4.3.3 Sequence diagram .................................................................................... 28
4.3.4 Activity diagram....................................................................................... 32
4.4 Rancangan Database ....................................................................................... 34
4.4.1 ERD (Entity Relationship Diagram) ........................................................ 34
4.4.2 Skema database ........................................................................................ 35
4.4.3 Tabel database .......................................................................................... 35
4.5 Rancangan Antar Muka................................................................................... 40
4.5.1 Rancangan halaman login ........................................................................ 41
4.5.2 Rancangan halaman home........................................................................ 42
4.5.3 Rancangan halaman peserta ..................................................................... 43
4.5.4 Rancangan halaman operator ................................................................... 43
4.5.5 Rancangan halaman ujian ........................................................................ 44
4.5.6 Rancangan halaman status ujian .............................................................. 44
4.5.7 Rancangan halaman nilai ......................................................................... 45
4.5.8 Rancangan halaman tambah ..................................................................... 45
4.5.9 Rancangan halaman tes ............................................................................ 46
BAB V IMPLEMENTASI SISTEM .................................................................. 47
5.1 Implementasi ................................................................................................... 47
5.2 Hubungan Masalah.......................................................................................... 47
5.3 Perangkat Keras (Hardware) .......................................................................... 48
5.4 Perangkat Lunak (Software)............................................................................ 48
5.5 Implementasi Aplikasi .................................................................................... 48
5.5.1 Halaman login .......................................................................................... 48
5.5.2 Halaman home ......................................................................................... 49
5.5.3 Halaman peserta ....................................................................................... 51
5.5.4 Halaman tahun ajaran ............................................................................... 52
5.5.5 Halaman operator ..................................................................................... 52
5.5.6 Halaman ujian .......................................................................................... 53
5.5.7 Halaman TA ujian .................................................................................... 54
5.5.8 Halaman soal ............................................................................................ 54
5.5.9 Halaman status ujian ................................................................................ 55
5.5.10 Halaman nilai ujian ................................................................................ 56
5.5.11 Halaman pengerjaan soal ....................................................................... 56
5.5.12 Halaman hasil tes ................................................................................... 57
5.5.13 Soal hasil enkripsi dan dekripsi ............................................................. 58
5.6 Pengujian Aplikasi .......................................................................................... 60
5.6.1 Equivalence partitioning .......................................................................... 60
5.6.2 Boundary value analysis .......................................................................... 65
5.6.3 Requirement testing ................................................................................. 69
BAB VI PENUTUP ............................................................................................. 73
6.1 Kesimpulan ..................................................................................................... 73
6.2 Saran................................................................................................................ 73
DAFTAR PUSTAKA .......................................................................................... 74
ix
DAFTAR TABEL

Tabel 2.1 Perbandingan Tinjauan Pustaka .............................................................. 6


Tabel 2.2 Perbandingan Jumah Putaran dan Kunci ................................................ 9
Tabel 2.3 Simbol Use Case Diagram ................................................................... 16
Tabel 2.4 Simbol Activity Diagram ...................................................................... 16
Tabel 2.5 Simbol Sequence Diagram.................................................................... 18
Tabel 2.6 Simbol dalam ERD ............................................................................... 19
Tabel 4.1 Tabel Users ........................................................................................... 35
Tabel 4.2 Tabel Peserta ......................................................................................... 36
Tabel 4.3 Tabel Soal ............................................................................................. 36
Tabel 4.4 Tabel Ujian ............................................................................................ 37
Tabel 4.5 Tabel Tahun Ajaran .............................................................................. 37
Tabel 4.6 Tabel Tahun Ajaran Ujian..................................................................... 38
Tabel 4.7 Tabel Nilai............................................................................................. 38
Tabel 4.8 Tabel Analisis ....................................................................................... 38
Tabel 4.9 Tabel Pengumuman............................................................................... 39
Tabel 4.10 Tabel Komentar................................................................................... 39
Tabel 4.11 Tabel Identitas ..................................................................................... 40
Tabel 5.1 Equivalence Partitioning Login ............................................................ 61
Tabel 5.2 Equivalence Partitioning Tahun Ajaran ............................................... 61
Tabel 5.3 Equivalence Partitioning Peserta .......................................................... 62
Tabel 5.4 Equivalence Partitioning Operator ....................................................... 63
Tabel 5.5 Equivalence Partitioning Ujian ............................................................ 64
Tabel 5.6 Equivalence Partitioning Soal .............................................................. 65
Tabel 5.7 Equivalence Partitioning Identitas........................................................ 65
Tabel 5.8 Boundary Value Analysis NISN ............................................................ 66
Tabel 5.9 Boundary Value Analysis Nama Lengkap ............................................ 67
Tabel 5.10 Boundary Value Analysis Email ......................................................... 67
Tabel 5.11 Boundary Value Analysis Nomor Handphone .................................... 68
Tabel 5.12 Boundary Value Analysis Alamat ....................................................... 68
Tabel 5.13 Boundary Value Analysis Tentang ...................................................... 69
Tabel 5.14 Requirement Testing Login ................................................................. 69
Tabel 5.15 Requirement Testing Left Panel .......................................................... 70
Tabel 5.16 Requirement Testing Header .............................................................. 70
Tabel 5.17 Requirement Testing Content .............................................................. 71
Tabel 5.18 Requirement Testing Peserta ............................................................... 72

x
DAFTAR GAMBAR

Gambar 2.1 Nilai S-Box ........................................................................................ 10


Gambar 2.2 Pergeseran Shiftrows ......................................................................... 11
Gambar 2.3 Matriks Publik Keys Enkripsi............................................................ 11
Gambar 2.4 Diagram Alur Proses Enkripsi AES .................................................. 12
Gambar 2.5 Nilai Inverse S-Box ........................................................................... 13
Gambar 2.6 Matriks Publik Keys Dekripsi ........................................................... 13
Gambar 2.7 Diagram Alur Proses Dekripsi AES .................................................. 14
Gambar 3.1 Foto Obyek Penelitian ....................................................................... 20
Gambar 3.2 Tahapan Penelitian ............................................................................ 21
Gambar 4.1 Alur Tes Konvensional ...................................................................... 23
Gambar 4.2 Alur Tes CBT .................................................................................... 24
Gambar 4.3 Flowchat Registrasi Peserta .............................................................. 26
Gambar 4.4 Flowchat Pelaksanaan Tes ................................................................ 26
Gambar 4.5 Flowchat Pengamanan Data .............................................................. 27
Gambar 4.6 Use Case Diagram ............................................................................ 28
Gambar 4.7 Sequence Diagram Login .................................................................. 29
Gambar 4.8 Sequence Diagram Input Data Peserta .............................................. 30
Gambar 4.9 Sequence Diagram Input Soal ........................................................... 31
Gambar 4.10 Sequence Diagram Mengerjakan Soal............................................. 32
Gambar 4.11 Activity Diagram .............................................................................. 33
Gambar 4.12 Entity Relationship Diagram (ERD) ............................................... 34
Gambar 4.13 Skema Relasi Tabel ......................................................................... 35
Gambar 4.14 Struktur Menu Peserta ..................................................................... 40
Gambar 4.15 Struktur Menu Admin ..................................................................... 41
Gambar 4.16 Rancangan Halaman Login ............................................................. 41
Gambar 4.17 Rancangan Halaman Home Admin dan Operator ........................... 42
Gambar 4.18 Rancangan Halaman Home Peserta ................................................ 42
Gambar 4.19 Rancangan Halaman Peserta ........................................................... 43
Gambar 4.20 Rancangan Halaman Operator ........................................................ 43
Gambar 4.21 Rancangan Halaman Ujian .............................................................. 44
Gambar 4.22 Rancangan Halaman Status Ujian ................................................... 44
Gambar 4.23 Rancangan Halaman Nilai ............................................................... 45
Gambar 4.24 Rancangan Halaman Tambah.......................................................... 45
Gambar 4.25 Rancangan Halaman Tes ................................................................. 46
Gambar 5.1 Tampilan Login ................................................................................. 49
Gambar 5.2 Tampilan Home Operator atau Admin .............................................. 50
Gambar 5.3 Tampilan Home Peserta .................................................................... 50
Gambar 5.4 Tampilan Peserta ............................................................................... 51
Gambar 5.5 Tampilan Tahun Ajaran .................................................................... 52
Gambar 5.6 Tampilan Operator ............................................................................ 53
Gambar 5.7 Tampilan Ujian .................................................................................. 53
Gambar 5.8 Tampilan Tahun Ajaran Ujian........................................................... 54
xi
Gambar 5.9 Tampilan Soal ................................................................................... 55
Gambar 5.10 Tampilan Status Ujian ..................................................................... 55
Gambar 5.11 Tampilan Nilai Ujian ....................................................................... 56
Gambar 5.12 Tampilan Pengerjaan Soal ............................................................... 57
Gambar 5.13 Tampilan Hasil Tes ......................................................................... 58
Gambar 5.14 Proses Enkripsi dan Dekripsi .......................................................... 59
Gambar 5.15 Soal Hasil Enkripsi .......................................................................... 59
Gambar 5.16 Soal Hasil Deksripsi ........................................................................ 60
Gambar 5.17 Struktur Tabel Peserta ..................................................................... 66

xii
BAB I
PENDAHULUAN

1.1 Latar Belakang


SMK Kesehatan Binatama Yogyakarta, merupakan instansi pendidikan
swasta berdiri pada 17 Desember 2012 yang terletak di Jl. Monumen Jogja
Kembali No.134, Gemangan, Sinduadi, Mlati, Kabupaten Sleman, Daerah
Istimewa Yogyakarta 55284. SMK Kesehatan Binatama Yogyakarta ini telah
terakreditasi A, memiliki Bidang Keahlian yaitu Kesehatan dan Pekerjaan Sosial,
memiliki Program Keahlian yaitu Keperawatan dan Farmasi, dan memiliki
Kopetensi Keahlian yaitu Asisten Keperawatan, Farmasi Klinis dan Komunitas.
SMK Kesehatan Binatama saat ini masih menerapkan tes atau ujian untuk
Penerimaan Siswa Baru (PSB) yang dilakukan secara konvensional dengan cara
membagikan kertas soal kepada masing-masing peserta tes, tentunya
membutuhkan banyak kertas sebagai media tes dan membutuhkan banyak waktu
dalam proses menyediakan fasilitas ujian, dan tidak relavan lagi dengan
perkembangan teknologi saat ini, yang sebagian besar pekerjaan sudah
terkomputerisasi yang sangat membantu dalam melakukan pekerjaan yang relatif
cepat serta efisien dalam hal waktu. maka peneliti mengusulkan agar menerapkan
sistem Computer Based Test (CBT) yang sangat cepat dalam pengolahan data dan
pemakaian waktu yang efisien.
Sistem Computer Based Test (CBT) umumnya akan memproses data-data
seperti data user, soal, jawaban dan hasil tes, semua data tersebut akan di simpan
ke dalam database, sehingga data-data tersebut yang tersimpan di dalam database
perlu dijamin keamanannya sehingga data akan terjamin dari sisi privacy
(kerahasiaan), authenticity (keaslian), integrity (keutuhan), dan non-repudiation
(tidak adanya penolakan) data.
Berdasarkan permasalahan ini maka penulis melakukan penelitian dengan
tujuan membangun sebuah sistem Computer Based Test (CBT) untuk test
Penerimaan Siswa Baru (PSB) pada SMK Kesehatan Binatama Yogyakarta, dan

1
2

menambahkan sebuah algoritma kriptografi yaitu algoritma Advanced Encryption


Standard (AES) untuk keamanan data pada database. Algoritma ini digunakan
untuk proses enkripsi data pada database dan kemudian di dekripsi saat
ditampilkan kembali data-data pada halaman user.

1.2 Rumusan Masalah


Berdasarkan latar belakang maka penulis merumuskan masalah bagaimana
membangun sistem Computer Based Test (CBT) dengan menerapkan kriptografi
security data pada database menggunakan algoritma Advanced Encryption
Standart (AES) ?

1.3 Batasan Masalah


Untuk menghindari pembahasan yang meluas, maka penulis membatasi
penelitian pada SMK Kesehatan Binatama ini akan berfokus pada:
a. Membangun sistem Computer Based Test (CBT) untuk Peneriman
Siswa Baru (PSB).
b. Penerapan algoritma AES untuk enkripsi dan dekripsi data soal yang
berbentuk text dan bersifat pilihan ganda (multiple choice).
c. Terdapat hak akses user pada sistem, yaitu administrator, operator,
dan peserta.
d. Input pada sistem yang dibangun, yaitu data user, soal, dan jawaban.
e. Output pada sistem yang dibangun, yaitu laporan hasil peserta lulus
tes dan peserta gagal tes.

1.4 Tujuan penelitian


Penelitian ini bertujuan untuk membantu SMK Kesehatan Binatama
Yogyakarta dalam proses ujian atau tes Penerimaan Siswa Baru (PSB) dengan
menggunakan sistem Computer Based Test (CBT) serta menerapkan algoritma
Advanced Encryption Standart (AES) untuk keamanan data-data pada database.
3

1.5 Manfaat Penelitian


Penelitian ini diharapkan dapat memberikan manfaat terhadap SMK
Kesehatan Binatama Yogyakarta yaitu:
a. SMK Kesehatan Binatama Yogyakarta dapat menyelenggarakan tes
untuk Penerimaan Siswa Baru (PSB) menggunakan sistem Computer
Based Test (CBT).
b. Sistem Computer Based Test (CBT) dapat menerapkan algoritma
Advanced Encryption Standart (AES) untuk keamanan data-data pada
database.

1.6 Sistematika Penulisan


Penulisan laporan proyek tugas akhir ini terdiri dari beberapa bab dengan
maksud untuk memberikan gambaran serta mempermudah pemahaman laporan
yang akan disusun. Adapun sistematika penulisan proyek tugas akhir ini sebagai
berikut:
BAB I PENDAHULUAN
Bab ini berisi latar belakang masalah yang akan diteliti, batasan
masalah, rumusan masalah, tujuan penelitian, manfaat penelitian,
sistematika penulisan.
BAB II KAJIAN PUSTAKA DAN LANDASAN TEORI
Bab ini berisi tentang kajian hasil penelitian terdahulu yang
digunakan sebagai pembanding dan dasar teori yang mendasari
pembahasan berupa definisi-definisi dan metode-metode yang
berkaitan langsung dengan masalah yang diteliti.
BAB III METODE PENELITIAN
Bab ini berisi tentang obyek penelitian dan metode penelitian yang
digunakan.
BAB IV ANALISA DAN PERANCANGAN SISTEM
Bab ini menjelaskan tentang analisa sistem yang berjalan dan
sistem yang diusulkan, analisa kebutuhan user sistem yaitu
kebutuhan peserta, administrator, dan operator, rancangan sistem
4

menggunakan flowchat, usecase diagram, sequence diagram, dan


activity diagram, rancangan database menggunakan ERD, dan
rancangan antar muka sistem.
BAB V IMPLEMENTASI SISTEM
Bab ini berisi penjelasan tentang spesifikasi perangkat yang
digunakan dalam pembuatan sistem, implementasi aplikasi berupa
penjelasan setiap halaman dalam aplikasi, dan pengujian aplikasi
menggunakan metode equivalence partition, boundary value
analysis, dan requirement testing.
BAB VI PENUTUP
Bab ini berisi rangkuman dari keseluruhan penelitian dan dibuat
kesimpulan dengan disertai saran untuk pengembangan sistem agar
lebih baik sesuai dengan yang diinginkan.
DAFTAR PUSTAKA
LAMPIRAN
BAB II
KAJIAN PUSTAKA DAN LANDASAN TEORI

2.1 Kajian Hasil Penelitian

Beberapa hasil penelitian yang pernah dilakukan oleh peneliti sebelumnya


yang memiliki bidang dan tema yang sama dengan penelitian yang akan
dilakukan.
Penelitian oleh Pabokory, F. N. dkk., (2015), dengan judul Implementasi
Kriptografi Pengamanan Data Pada Pesan Teks, Isi File Dokumen, Dan File
Dokumen Menggunakan Algoritma Advanced Encryption Standard. Penelitian
tersebut membuat sebuah sistem keamanan data dengan mengimplementasikan
kriptografi pada pesan teks, isi file dokumen, dan file dokumen dengan
melakukan perhitungan algoritma Advanced Encryption Standard (AES). Hasil
dari penelitian yaitu pengguna dapat mengenkripsi pesan teks kemudian disimpan
menjadi sebuah file dokumen dan isi file dokumen tersebut dienkripsi, file
dokumennya dienkripsikan dan selanjutnya dikompresi dan disembunyikan pada
sebuah file citra (gambar) agar keamanan data informasi tersebut dapat terjaga
keamanannya karena telah dilakukan pengamanan dan penyandian yang berlapis-
lapis.
Penelitian oleh Muzakir, A., (2016), dengan judul Implementasi Teknik
Steganografi Dengan Kriptografi Kunci Private AES untuk Keamanan File Gambar
Berbasis Android. Penelitian membahas tentang mengimplementasikan teknik
steganografi menggunakan algoritma kunci private AES kedalam smartphone
berbasis android, sehingga para pengguna ponsel android yang memiliki hobi selfi
dapat mengabadikan gambar mereka kemudian menyisipkan suatu hak cipta pada
gambar tersebut. Hasil dari penelitian ini adalah suatu aplikasi pengolahan citra
gambar yang aman, dimana sumber gambar dapat diambil dari kamera langsung atau
dari file galeri ponsel. Selanjutnya gambar dari hasil pengolahan dapat langsung di
share via sosial media yang telah terinstal di ponsel android.

5
6

Penelitian oleh Leohani, R. A. dan Agus, I., (2016), dengan judul Proses
Enkripsi dan Dekripsi Email menggunakan Algoritma Advanced Encryption
Standard ( AES ). Penelitian ini membahas tentang
Penelitian oleh Peling, I. B. A. dan Sastra, N. P., (2018), dengan judul
Enhanced Audio Steganografi dengan Algoritma Advanced Encryption Standard
untuk Pengamanan Data Pada File Audio. Penelitian untuk mengetahui kualitas file
audio setelah disisipkan pesan yang terenkripsi dengan menggunakan metode
steganografi EAS dan untuk mengetahui integritas data setelah dilakukan proses
kriptografi dan steganografi. Hasil penelitian dengan menggunakan metode AES
sebagai kriptografi dan EAS sebagai steganografi menghasilkan kualitas file audio
yang baik karena dari keseluruhan skenario pengujian yang dilakukan nilai SNR
terendah yang didapat adalah 49,33 dB sedangkan nilai SNR tertinggi adalah 51,10
dB.

Tabel 2.1 Perbandingan Tinjauan Pustaka


No Judul Penulis Metode Hasil/Kesimpulan
1. Implementasi Fresly Nandar Advanced Pengguna dapat
Kriptografi Pabokory, Encription mengenkripsi pesan
Pengamanan Data Indah Fitri Standart teks kemudian
Pada Pesan Teks, Astuti, Awang (AES) disimpan menjadi
Isi File Dokumen, Harsa sebuah file
Dan File Dokumen Kridalaksana dokumen. File
Menggunakan dokumennya
Algoritma dienkripsikan dan
Advanced selanjutnya
Encryption dikompresi dan
Standard disembunyikan pada
sebuah file citra.
7

Tabel 2.1 Lanjutan Perbandingan Tinjauan Pustaka


No Judul Penulis Metode Hasil/Kesimpulan
2. Implementasi Ari Muzakir Advanced Pengolahan citra
Teknik Encription gambar yang aman,
Steganografi Standart sumber gambar
Dengan (AES) dapat diambil dari
Kriptografi Kunci kamera langsung
Private AES untuk atau dari file galeri
Keamanan File ponsel. Selanjutnya
Gambar Berbasis gambar dari hasil
Android pengolahan dapat
langsung di share
via sosial media
yang telah terinstal
di ponsel android.
3. Enhanced Audio Ida Bagus Advanced Menghasilkan
Steganografi Adisimakrisna Encription kualitas file audio
dengan Algoritma Peling, Standart yang baik karena
Advanced Nyoman Putra (AES) dari keseluruhan
Encryption Sastra skenario pengujian
Standard untuk yang dilakukan nilai
Pengamanan Data SNR terendah yang
Pada File Audio didapat adalah 49,33
dB sedangkan nilai
SNR tertinggi
adalah 51,10 dB.

Seperti terlihat pada Tabel 2.1. tidak ada perbedaan pada metode yang
digunakan, yaitu dengan penggunaan teknik Algoritma Advanced Encription Standart
(AES). Perbedaan dari ketiga referensi dengan judul yang diangkat oleh penulis
terletak pada judul penelitian, sehingga menunjukan algoritma Advanced Encription
Standart (AES) dapat digunakan dibeberapa permasalahan yang ada.

2.2 Dasar Teori


2.2.1 Kriptografi
Kriptografi adalah ilmu dan seni untuk menjaga kerahasiaan pesan dengan
cara menyandikannya ke dalam bentuk yang tidak dapat dimengerti lagi
maknanya. Dalam ilmu kriptografi, terdapat dua buah proses yaitu melakukan
8

enkripsi dan dekripsi. Pesan yang akan dienkripsi disebut sebagai plaintext (teks
biasa). Disebut demikian karena informasi ini dengan mudah dapat dibaca dan
dipahami oleh siapa saja. Algoritma yang dipakai untuk mengenkripsi dan
mendekripsi sebuah plaintext melibatkan penggunaan suatu bentuk kunci. Pesan
plaintext yang telah dienkripsi atau dikodekan dikenal sebagai ciphertext (teks
sandi) (Pabokory, F. N. dkk., 2015).

2.2.2 Sistem informasi


Sistem informasi adalah suatu sistem di dalam suatu organisasi yang
mempertemukan kebutuhan pengolahan transaksi harian yang mendukung fungsi
operasi organisasi yang bersifat manajerial dengan kegiatan strategi dari suatu
organisasi untuk dapat menyediakan kepada pihak luar tertentu dengan laporan-
laporan yang diperlukan (Sutabri, T., 2012). Sistem informasi mencakup sejumlah
komponen (manusia, komputer, teknologi informasi, dan prosedur kerja), ada
sesuatu yang diproses (data menjadi informasi), dan dimaksudkan untuk mencapai
suatu sasaran atau tujuan (Kadir, A., 2014).

2.2.3 Basis data


Data adalah bahan keterangan tentang kejadian-kejadian nyata/fakta yang
dirumuskan dalam sekelompok lambang/simbol tertentu yang tidak acak yang
dapat menunjukan jumlah, tindakan, atau hal. Sedangkan basis data dapat
dipahami sebagai suatu kumpulan data terhubung (interrelated data) yang
disimpan secara bersama-sama pada suatu media, tanpa mengatap satu sama lain
atau tidak perlu suatu kerangkapan data (kalaupun ada maka kerangkapan data
tersebut harus seminimal mungkin dan terkontrol [controlled redudancy]), data
tersimpan dengan cara-cara tertentu sehingga mudah digunakan atau ditampilkan
kembali; data dapat digunakan oleh satu atau lebih program-program aplikasi
secara optimal; data disimpan tanpa mengalami ketergantungan dengan program
yang akan menggunakannya; data disimpan sedemikian rupa sehingga proses
penambahan, pengembalian, dan modifikasi data dapat dilakukan dengan mudah
dan terkontrol (Sutanta, E., 2011).
9

2.2.4 Advanced Encryption Standard (AES)


Advanced Encryption Standard (AES) merupakan algoritma
cryptographic yang dapat digunakan untuk mengamankan data. Algoritma AES
adalah blokchipertext simetrik yang dapat mengenkripsi (encipher) dan dekripsi
(decipher) informasi. Enkripsi merubah data yang tidak dapat lagi dibaca disebut
ciphertext, sebaliknya dekripsi adalah merubah ciphertext data menjadi bentuk
semula yang kita kenal sebagai plaintext (Pabokory, F. N. dkk., 2015).
Menurut Leohani, R. A. dan Agus, I., (2016), Advanced Encryption
Standard (AES) merupakan algoritma kriptografi yang bisa digunakan untuk
memproteksi data. Algoritma ini ditetapkan oleh National Institute of Standarts
and Technology (NIST) menjadi pengganti DES dalam algoritma enkripsi simteri
yang baru. Hal ini disebabkan karena DES hanya menggunakan pengolahan data
64-Bit dan kunci 56-bit yang dianggap sudah tidak memadai lagi untuk
pengamanan data. Maka pada tahun 1997 diadakanlah kontes pemilihan standar
algoritma baru, hingga pada akhirnya di tahun 2000 algoritma yang
dikembangkan oleh Vincent Rijndael dan Joan Daemen ditetapkan sebagai
standar algoritma yang baru. Algoitma ini dikenal sebagai AES.
AES menggunakan chiper blok simetri yang dapat memproses blok data
128 bit, dengan menggunakan kunci chiper yang panjangnya 128, 192, dan 256
bit. Berdasarkan hal tersebut, perbedaan panjang kunci akan mempengaruhi
jumlah putaran yang akan diimplementasikan dalam algoritma AES. Secara
ringkas akan ditampilkan pada Tabel 2.2.

Tabel 2.2 Perbandingan Jumah Putaran dan Kunci


Panjang Kunci Panjang Kunci Ukuran Blok Data Jumlah Proses
dalam Bit (Nk) (Nb) (Nr)
128 4 4 10
192 6 4 12
256 8 4 14
10

Menurut (Leohani, R. A. dan Agus, I., 2016), adapun langkah-langkah


enkripsi dan dekripsi dengan menggunakan algoritma Advanced Encryption
Standard (AES) sebagai berikut:
1. Enkripsi
Proses enkripsi pada algoritma Advanced Encryption Standard (AES)
terdiri dari beberapa tahap proses transformasi bytes, yaitu:
a. Addroundkey, Pada tahap ini pesan yang dikirim (plain text) akan
di XOR kan dengan cipher key. Tahap ini disebut juga dengan
Initial round.
b. Round, Selanjutnya akan dilakukan putran sebanyak Nr-1 kali.
Proses yang dilakukan sebagai berikut:
a) Subbytes, pada proses ini hasil dari addroundkey akan
dikonversikan menggunakan nilai S-Box seperti Gambar 2.1.

Gambar 2.1 Nilai S-Box

b) ShiftRows, Hasil dari Subbytes digeser secara wrapping.


Transformasi Shiftrows pada dasarnya adalah proses
11

pergeseran bit dimana bit paling kiri akan dipindahkan


menjadi bit paling kanan (rotasi bit). Proses pergeseran
Shiftrows ditunjukkan dalam Gambar 2.2.

Gambar 2.2 Pergeseran Shiftrows

c) MixColumns, Mengacak data dengan melakukan perkalian


antara matriks publik keys dengan matriks hasil Shiftrows.
Adapun matriks publik keys untuk enkripsi data dapat dilihat
pada Gambar 2.3.

Gambar 2.3 Matriks Publik Keys Enkripsi

d) Addroundkey, state yang dihasilkan sebelumnya di XOR kan


dengan Round key.
c. Final Round, untuk putaran ke Nr, dilakukan tahap-tahap yang
sama dengan round namun tidak melalui proses Mixcolumns.
Adapun prosesnya yaitu, Subbytes, Shiftrows, dan Addroundkey.
Diagram alur proses enkripsi pada algoritma Advanced Encryption
Standard (AES) dapat dilihat pada Gambar 2.4 (Pabokory, F. N. dkk., 2015).
12

Gambar 2.4 Diagram Alur Proses Enkripsi AES

2. Dekripsi
Proses dekripsi pada algoritma Advanced Encryption Standard (AES)
terdiri dari beberapa tahap proses transformasi bytes, yaitu:
a. Addroundkey, pada tahap ini pesan yang diterima (chiper text)
akan di XOR kan dengan cipher key. Tahap ini disebut juga
dengan Initial round.
b. Round, selanjutnya akan dilakukan putaran sebanyak Nr-1 kali.
13

Proses yang dilakukan sebagai berikut:


a) InvShiftrows, hasil dari Subbytes digeser secara wrapping.
b) InvSubbytes, pada proses ini hasil dari addroundkey akan
dikonversikan menggunakan nilai Inverse S-Box seperti
Gambar 2.5.

Gambar 2.5 Nilai Inverse S-Box

c) InvMixcolumns, mengacak data dengan melakukan perkalian


antara matriks publik keys dengan matriks hasil Shiftrows.
Adapun matriks publik keys untuk dekripsi data seperti
Gambar 2.6.

Gambar 2.6 Matriks Publik Keys Dekripsi

d) Addroundkey, state yang dihasilkan sebelumnya di XOR kan


dengan Round key.
a. Final Round, untuk putaran ke Nr, dilakukan tahap-tahap yang
sama dengan round namun tidak melalui proses Mixcolumns.
14

Adapun prosesnya yaitu, InvShiftrows, InvSubbytes, dan


Addroundkey.
Diagram alur proses dekripsi pada algoritma Advanced Encryption
Standard (AES) dapat dilihat pada Gambar 2.7 (Pabokory, F. N. dkk., 2015).

Gambar 2.7 Diagram Alur Proses Dekripsi AES

2.2.5 Computer Based Test (CBT)


Computer Based Test (CBT) merupakan test yang diselenggarakan dengan
menggunakan komputer sebagai media utama dalam melakukan kegiatan
15

test/ujian. Karakteristik tes ini sama dengan tes konvensional, yaitu menggunakan
satu perangkat tes untuk beberapa peserta dengan panjang tes yang sama (fixed
test lenght) (Hariyanto, A., 2017).
Perbedaan Computer Based Test dengan Convensional Test terletak pada
teknik penyampaian (delivery) butir soal yang tidak lagi menggunakan kertas
(paperless), baik untuk naskah soal maupun lembar jawaban. Sistem skor atau
koreksi langsung dilakukan oleh komputer. Computer Based Test merupakan
inovasi baru di era digital teknologi. Dengan teknologi pendidikan yang efektif,
Computer Based Test mampu menyajikan sistem evaluasi/ujian jarak jauh yang
dikelola oleh server local maupun di integrasikan dengan server online. Server
local yang diletakkan pada suatu lab akan menangani sejumlah perangkat
komputer client yang akan digunakan oleh siswa untuk menjawab pertanyaan
secara offline maupun dalam jaringan online (Hariyanto, A., 2017).

2.2.6 Unified Modeling Languange (UML)


Menurut Hendini, A., (2016), Unified Modeling Language (UML) adalah
bahasa spesifikasi standar yang dipergunakan untuk mendokumentasikan,
menspesifikasikan dan membangun perangkat lunak. UML merupakan
metodologi dalam mengembangkan sistem berorientasi objek dan juga merupakan
alat untuk mendukung pengembangan sistem. Alat bantu yang digunakan dalam
perancangan berorientasi objek berbasiskan UML adalah sebagai berikut:
a. Use Case Diagram
Use case diagram merupakan pemodelan untuk kelakuan (behavior)
sistem informasi yang akan dibuat. Use case digunakan untuk
mengetahui fungsi apa saja yang ada di dalam sistem informasi dan
siapa saja yang berhak menggunakan fungsi-fungsi tersebut. Simbol-
simbol yang digunakan dalam Use Case Diagram dapat dilihat pada
Tabel 2.3.
16

Tabel 2.3 Simbol Use Case Diagram


Gambar Keterangan
Use Case menggambarkan fungsionalitas yang
disediakan sistem sebagai unit-unit yang bertukar
pesan antar unit dengan aktor, yang dinyatakan
dengan menggunakan kata kerja.
Aktor adalah abstraction dari orang atau sistem yang
lain yang mengaktifkan fungsi dari target sistem.
Untuk mengidentifikasikan aktor, harus ditentukan
pembagian tenaga kerja dan tugas-tugas yang
berkaitan dengan peran pada konteks target sistem.
Orang atau sistem bisa muncul dalam beberapa
peran. Perlu dicatat bahwa aktor berinteraksi dengan
use case, tetapi tidak memiliki kontrol terhadap use
case.
Asosiasi antara aktor dan use case, digambarkan
dengan garis tanpa panah yang mengindikasikan
siapa atau apa yang meminta interaksi secara
langsung dan bukannya mengindikasikan data.
Asosiasi antara aktor dan use case yang
menggunakan panah terbuka untuk mengindikasikan
bila aktor berinteraksi secara pasif dengan sistem.
Include, merupakan di dalam use case lain (required)
atau pemanggilan Use Case oleh use case lain,
contohnya adalah pemanggilan sebuah fungsi
program.
Extend merupakan perluasan dari use case lain jika
kondisi atau syarat terpenuhi.

b. Diagram Aktivitas (Activity Diagram)


Activity Diagram menggambarkan workflow (aliran kerja) atau
aktivitas dari sebuah sistem atau proses bisnis. Simbol-simbol yang
digunakan dalam Activity Diagram dapat dilihat pada Tabel 2.4.

Tabel 2.4 Simbol Activity Diagram


Gambar Keterangan
Start Point, diletakkan pada pojok kiri atas dan
merupakan awal aktivitas.
End Point, akhir aktivitas.
17

Tabel 2.4 Lanjutan Simbol Activity Diagram


Gambar Keterangan
Activities, menggambarkan suatu proses/kegiatan
bisnis.

Fork/percabangan, digunakan untuk menunjukkan


kegiatan yang dilakukan secara paralel atau untuk
menggabungkan dua kegiatan paralel menjadi satu.

Join (penggabungan) atau rake, digunakan untuk


menunjukkan adanya dekomposisi.

Decision Points, menggambar kan pilihan untuk


pengambilan keputusan, true atau false.

Swimlane, pembagian activity diagram untuk


menunjukkan siapa melakukan apa.

c. Diagram Urutan (Sequence Diagram)


Sequence Diagram menggambarkan kelakuan objek pada use case
dengan mendeskripsikan waktu hidup objek dan pesan yang
dikirimkan dan diterima antar objek. Simbol-simbol yang digunakan
dalam Sequence Diagram dapat dilihat pada Tabel 2.5.
18

Tabel 2.5 Simbol Sequence Diagram


Gambar Keterangan
Entity Class, merupakan bagian dari sistem yang
berisi kumpulan kelas berupa entitas-entitas yang
membentuk gambaran awal sistem dan menjadi
landasan untuk menyusun basis data
Boundary Class, berisi kumpulan kelas yang menjadi
interfaces atau interaksi antara satu atau lebih aktor
dengan sistem, seperti tampilan form entry dan form
cetak
Control class, suatu objek yang berisi logika aplikasi
yang tidak memiliki tanggung jawab kepada entitas,
contohnya adalah kalkulasi dan aturan bisnis yang
melibatkan berbagai objek
Message, simbol mengirim pesan antar class
Recursive, menggambarkan pengiriman pesan yang
dikirim untuk dirinya sendiri
Activation, mewakili sebuah eksekusi operasi dari
objek, panjang kotak ini berbanding lurus dengan
durasi aktivasi sebuah operasi
Lifeline, garis titik-titik yang terhubung dengan
objek, sepanjang lifeline terdapat activation

2.2.7 Entity Relationship Diagram (ERD)


Entity Relationship Diagram adalah hubungan antar entitas dalam basis
data berdasarkan objek-objek yang mempunyai hubungan antar relasi, sehingga
dari perancangan ERD tersebut dapat diketahui elemen-elemen apa saja yang akan
menjadi sebuah entitas, yang berguna sebagai pondasi bagi proses secara teknis
selanjutnya (Aditama, R., 2017).
Menurut Simarmata, J., (2007), konektivitas dari suatu hubungan
menguraikan pemetaan dari kejadian entitas yang dihubungkan. Nilai-nilai
konektivitas adalah satu atau banyak. Kardinalitas suatu hubungan menyatakan
sejumlah kejadian terkait untuk masing-masing dua entitas. Jenis dasar
konektivitas untuk hubungan adalah :
a. Satu-ke-satu (1:1), terjadi jika sebanyak satu kejadian dari suatu
entitas A dihubungkan dengan satu kejadian entitas B. Sebagai
contoh, masing-masing karyawan dalam suatu perusahaanditugaskan
19

dibagian masing-masing. Oleh karena itu masing-masing karyawan


berada di bagian yang unik dan di masing-masing bagian terdapat
karyawan yang unik.
b. Satu-ke-banyak (1:N), terjadi ketika dalam satu kejadian dari entitas
A, terdapat nol, satu, atau banyak kejadian pada entitas B. Sebagai
contoh, suatu departemen memiliki banyak karyawan atau masing-
masing karyawan ditugaskan dalam satu departemen.
c. Banyak-ke-banyak (M:N), kadang-kadang disebut tidak spesifik
ketika untuk satu kejadian dari entitas A, ada nol, satu, atau banyak
kejadian dari entitas B dan untuk satu kejadian dari entitas B ada nol,
satu, atau banyak kejadian dari entitas A. Sebagai contoh, karyawan
ditugaskan dalam tidak lebih dari dua proyek pada waktu yang sama
atau proyek harus menugaskan sedikitnya tiga karyawan.
Hubungan antara entitas akan menyangkut dua komponen yang
menyatakan jalinan ikatan yang terjadi, yaitu derajat hubungan dan partisipasi
hubungan. Adapun beberapa simbol dalam ERD dapat dilihat pada Tabel 2.6.

Tabel 2.6 Simbol dalam ERD


No. Gambar Keterangan
1. Entitas atau bentuk persegi panjang
merupakan sesuatu objek data yang ada di
Entitas dalam sistem, nyata maupun abstrak dimana
data tersimpan atau dimana terdapat data.
2. Relationship merupakan hubungan alamiah
Relasi yang terjadi antar entitas. Umumnya diberi
nama dengan kata kerja dasar.

3. Atribut atau bentuk elips adalah sesuatu yang


menjelaskan apa sebenarnya yang dimaksud
Attribut entitas atau relationship dan mewakili atribut
dari masing-masing entitas.
4. Garis merupakan penghubung antar entitas.
BAB III
METODE PENELITIAN

3.1 Obyek Penelitian


Obyek dari penelitian ini ada di SMK Kesehatan Binatama, merupakan
instansi pendidikan swasta yang terletak di Jl. Monumen Jogja Kembali No.134,
Gemangan, Sinduadi, Mlati, Kabupaten Sleman, Daerah Istimewa Yogyakarta
55284. Gambar obyek penelitian dapat dilihat pada Gambar 3.1.

Gambar 3.1 Foto Obyek Penelitian

3.2 Metode Penelitian


Dalam melakukan penelitian, penulis memulai dengan proses requirement
yaitu mengkaji tentang kebutuhan dalam penelitian, proses perancangan, proses

20
21

implementasi sistem, hingga proses pengujian sistem. Tahapan-tahapan penelitian


yang dilakukan dapat dilihat pada Gambar 3.2.

Gambar 3.2 Tahapan Penelitian

3.2.1 Requirement
Tahapan requirement melakukan pengumpulan data menggunakan metode
observasi, studi literatur, dan analis sistem yang terbagi menjadi dua bagian yaitu
analisis sistem yang berjalan dan analis sistem yang diusulkan.

3.2.2 Perancangan
Pada tahap ini menjelaskan tentang proses yang dilakukan untuk membuat
kriptografi security data pada sistem Computer Based Test (CBT) dengan
algoritma Advanced Encription Standart (AES). Berikut ini akan diberikan
perincian yang akan dibuat adalah sebagai berikut :
a. Model security data
Skema algoritma Advanced Encryption Standart (AES) menggunakan
124 bit kunci secara umum terdiri dari tiga proses, yaitu proses
22

pembentukan kunci, proses enkripsi dan proses dekripsi.


b. Perancangan sistem
Perancangan sistem meliputi perancangan Unified Modeling
Languange (UML) meliputi usecase diagram, sequence diagram, dan
activity diagram.
c. Perancangan database
Perancangan database meliputi perancangan Entity Relationship
Diagram (ERD), skema database, dan perancangan tabel.
d. Perancangan interface
Perancangan interface meliputi perancangan interface input, dan
output.

3.2.3 Implementasi
Implementasi dengan menerapkan server side scripting bahasa
pemrograman php, html, css, database menggunakan MySQL. Penulis juga
menerapkan algorima Advanced Encryption Standart (AES) untuk keamanan
data.

3.2.4 Pengujian
Aplikasi yang sudah terbentuk selanjutnya akan dilakukan uji coba. Uji
coba dilakukan dengan black box testing. Metode yang dipakai untuk
melaksanakan Black Box Testing yaitu Equivalence Partitioning, Boundary Value
Analysis, dan Requirement Testing.
BAB IV
ANALISA DAN PERANCANGAN SISTEM

4.1 Analisa Sistem


Analisa sistem ini bertujuan untuk mengetahui alur sistem yang sudah
berjalan karena sistem yang dibangun nanti harus mampu menerjemahkan kondisi
nyata pelaksanaan test yang sesungguhnya, sehingga sistem yang dibangun dapat
berfungsi dengan baik.

4.1.1 Sistem yang berjalan


Sistem yang sedang berjalan dilaksanakan secara konvensional dengan
menggunakan kertas sebagai media. Petugas memberikan kertas soal kepada
peserta yang berjumlah 50 soal terdiri dari Bahasa Indonesia, Bahasa Inggris,
Matematika, IPA, dan kepribadian masing-masing 10 soal. Setelah soal selesai
dikerjakan, peserta meyerahkan kertas jawaban kepada petugas. Selanjutnya
petugas mengoreksi jawaban peserta. Alur konvensional tes dapat dilihat pada
Gambar 4.1.

Gambar 4.1 Alur Tes Konvensional

23
24

4.1.2 Sistem yang diusulkan


Sistem yang akan dibangun nanti dapat mengubah kondisi nyata saat tes
konvensional itu ke dalam sebuah sistem aplikasi CBT yang dibangun untuk
mengganti peran kertas sebagai media utama diubah menjadi berbasis komputer.
Peserta melakukan login ke aplikasi CBT dan dapat memulai tes, setelah selesai
peserta dapat menyimpan hasil tes. Admin dapat melihat hasil tes peserta sebagai
bukti peserta dinyatakan lulus atau tidak. Admin juga berperan untuk mengontrol
sistem secara keseluruhan. Alur tes menggunakan sistem CBT dapat dilihat pada
Gambar 4.2.

Gambar 4.2 Alur Tes CBT

4.2 Analisa Kebutuhan User


Pada sistem yang dibangun memiliki user, yaitu user sebagai peserta,
operator, dan sebagai admin. Penjelasan kebutuhan setiap user yaitu:

4.2.1 Kebutuhan peserta


Kebutuhan peserta tes hanya bisa menjawab pertanyaan dari soal yang
telah disediakan oleh petugas. Secara umum hal yang dibutuhkan oleh peserta
adalah :
25

a. Proses login untuk peserta.


b. Proses pengerjaan soal tes yang telah disediakan oleh petugas.

4.2.2 Kebutuhan administrator


Kebutuhan admin yaitu untuk mengatur secara keseluruhan berjalannya
sistem. Secara umum hal yang dibutuhkan oleh admin adalah :
a. Proses login untuk admin
b. Proses setting user, level user, dan menu.
c. Proses input modul soal.
d. Proses input data user dan data tes.
e. Proses evaluasi jawaban dan mencetak hasil tes.

4.2.3 Kebutuhan operator


Kebutuhan operator tergantung pada batasan hak akses menu oleh admin,
bisa hanya untuk mengakses data modul atau data peserta.

4.3 Rancangan Sistem


Proses perancangan sistem CBT ini menggunakan UML (Unified
Modeling Languange) sebagai metodologi dalam mengembangkan sistem
berorientasi objek. Alat bantu yang digunakan dalam perancangan berorientasi
objek berbasiskan UML yaitu use case diagram, sequence diagram, dan actifity
diagram.

4.3.1 Flowchat sistem


Peserta sebelum melakukan tes pada aplikasi CBT, terlebih dahulu
melakukan registrasi kepada petugas pelaksanaan tes. Agar lebih jelas proses
registrasi dapat di lihat pada flowchat registrasi peserta pada Gambar 4.3.
26

Gambar 4.3 Flowchat Registrasi Peserta

Proses registrasi telah selesai, maka peserta mendapat username dan


password untuk masuk ke aplikasi dan melakukan proses tes. Flowchat
pelaksanaan tes peserta terlihat pada Gambar 4.4.

Gambar 4.4 Flowchat Pelaksanaan Tes


27

Proses entry data soal pada aplikasi CBT kemudian diproses berupa
enkripsi dengan algoritma AES untuk pengamanan data yang tersimpan pada
database. Data enkripsi yang telah disimpan pada database kemudian di dekripsi
terlebih dahulu sebelum digunakan kembali. Flowchat proses security data dapat
dilihat pada Gambar 4.5.

Gambar 4.5 Flowchat Pengamanan Data

4.3.2 Use case diagram


Diagram use case menggambarkan bagaimana proses-proses interaksi
sistem dengan user dalam lingkungan sistem tes berbasis komputer yang akan
dirancang. Use case diagram pada sistem tes berbasis komputer dapat dilihat pada
Gambar 4.6.
28

Gambar 4.6 Use Case Diagram

Sistem memiliki user yaitu admin, operator, dan peserta. Admin


berinteraksi dengan sistem pertama kali melakukan login terlebih dahulu,
selanjutnya admin dapat melakukan sejumlah setting user, setting menu, input
data user, modul soal, data tes, dan cetak hasil tes. Operator hanya dapat
mengakses menu yang dibatasi oleh admin, sedangkan sejumlah peserta
melakukan login, lalu mengerjakan soal yang tersedia.

4.3.3 Sequence diagram


Sequence diagram menggambar model interaksi antar objek pada sistem
tes berbasis komputer berdasarkan urutan proses.
a. Sequence diagram login
Sequence diagram login merupakan sebuah bentuk pemodelan
interaksi yang terjadi ketika user login ke sistem. Agar lebih jelas
terlihat pada Gambar 4.7.
29

Gambar 4.7 Sequence Diagram Login

user input data login agar dapat masuk ke dalam sistem tes berbasis
komputer, kemudian data login di cek apakah valid atau tidak dengan data pada
database. Jika data login valid maka tampil menu untuk user, sebaliknya maka
tampil pesan bahwa data login salah.
b. Sequence diagram input data user
Sequence diagram input data user merupakan sebuah bentuk
pemodelan interaksi yang terjadi ketika user admin input data user.
Agar lebih jelas terlihat pada Gambar 4.8.
30

Gambar 4.8 Sequence Diagram Input Data Peserta

Admin masuk ke form user untuk input data, database merespon data
yang di input. Data user berhasil di simpan pada database, selanjutnya data akan
tampil pada form user.
c. Sequence diagram input soal
Sequence diagram input soal merupakan sebuah bentuk pemodelan
interaksi yang terjadi ketika admin input data soal. Agar lebih jelas
terlihat pada Gambar 4.9.
31

Gambar 4.9 Sequence Diagram Input Soal

Admin masuk ke form soal untuk input data soal tes, selanjutnya proses
enkripsi data soal sebelum simpan ke database. Admin harus input key enkripsi,
sebagai kunci untuk enkripsi dan juga untuk dekripsi. Proses enkripsi selesai dan
berhasil maka data tersimpan pada database, data soal kemudian tampil pada form
soal.
d. Sequence diagram mengerjakan soal
Sequence diagram mengerjakan soal merupakan sebuah bentuk
pemodelan interaksi yang terjadi ketika proses peserta menjawab soal.
Agar lebih jelas terlihat pada Gambar 4.10.
32

Gambar 4.10 Sequence Diagram Mengerjakan Soal

Peserta masuk ke form jawab soal untuk mengerjakan sejumlah soal tes
yang ada. Soal dari database masih terenkripsi, maka sebelum tampil ke form
terlebih dahulu proses dekripsi. Peserta input key dekripsi untuk melanjutkan
proses dekripsi soal, proses dekripsi soal gagal ketika salah input key dekripsi.

4.3.4 Activity diagram


Activity diagram menjelaskan pemodelan proses-proses peserta melakukan
tes, logika prosedural, dan jalur kerja dalam sebuah sistem tes berbasis komputer.
Proses melakukan tes berbasis komputer akan dilakukan oleh peserta diawali
33

dengan mendaftar pada petugas, peserta mendapatkan username dan password


untuk login ke sistem. Setelah proses login berhasil maka lanjutkan dengan proses
menjawab semua soal yang tersedia, setelah selesai peserta dapat simpan jawaban.
Petugas melakukan pemeriksaan jawaban peserta, kemudian petugas dapat
mencetak hasil tes peserta. Activity diagram dapat terlihat pada Gambar 4.11.

Gambar 4.11 Activity Diagram


34

4.4 Rancangan Database


Pada rancangan database ini akan menjelaskan tentang penggunaan
database dalam membangun sistem CBT, meliputi ERD (Entity Relationship
Diagram), skema database, dan table database.

4.4.1 ERD (Entity Relationship Diagram)


Model entity-relationship berisi beberapa komponen yaitu himpunan
entitas, himpunan relasi, dan atribut-atribut yang merepresentasikan fakta yang
diteliti. Penggambaran ERD (Entity Relationship Diagram) pada sistem Computer
Based Test (CBT) seperti terlihat pada Gambar 4.12.

Gambar 4.12 Entity Relationship Diagram (ERD)


35

4.4.2 Skema database


Skema database ini menggambarkan relasi antar tabel dalam sebuah
database. Penggambaran desain skema database pada sistem Computer Based
test (CBT) seperti terlihat pada Gambar 4.13.

Gambar 4.13 Skema Relasi Tabel

4.4.3 Tabel database


Rancangan table database akan menjelaskan struktur tabel, field, dan tipe
data yang digunakan. Nama database cbtaes, didalamnya terdapat 10 tabel yaitu
tabel users, peserta, soal, ujian, nilai, tahun ajaran, tahun ajaran ujian,
pengumuman, analisis dan identitas. Berikut penjabaran dari masing-masing tabel.

Tabel 4.1 Tabel Users


Users
id_user integer (5) auto increment
username varchar (100)
password varchar (50)
pass varchar (50)
nama_lengkap varchar (100)
alamat varchar (200)
hp varchar (13)
36

Tabel 4.1 Lanjutan Tabel Users


Users
email varchar (100)
tentang varchar (100)
foto varchar (100)
level varchar (20)
blokir enum (‘Y’,’N’)
id_session varchar (50)
status varchar (100)

Tabel users adalah tabel yang menyimpan data operator dan admin sistem
CBT. Atribut dari tabel users yaitu iduser sebagai primary key, username,
password, dan lain-lain.

Tabel 4.2 Tabel Peserta


peserta
id_peserta integer (5) auto increment
id_ta integer (5)
username varchar (100)
password varchar (50)
nama_lengkap varchar (100)
alamat varchar (200)
hp varchar (13)
email varchar (100)
tentang varchar (100)
foto varchar (100)
level varchar (20)
id_session varchar (50)
status varchar (100)

Tabel peserta adalah tabel yang menyimpan data peserta tes. Atribut dari
tabel peserta yaitu id_pesera sebagai primary key, username, password, dan lain-
lain.

Tabel 4.3 Tabel Soal


soal
id_soal integer (5) auto increment
id_ujian integer (5)
jumlahsoal integer (5)
37

Tabel 4.3 Lanjutan Tabel Soal


soal
soal text
pilihan_1 text
pilihan_2 text
pilihan_3 text
pilihan_4 text
kunci text
urut int (5)
status enum (‘Y’,’N’)

Tabel soal adalah tabel yang menyimpan data soal beserta kunci
jawabannya. Atribut dari tabel soal yaitu id_soal sebagai primary key, soal,
pilihan, kunci, dan lain-lain.

Tabel 4.4 Tabel Ujian


ujian
id_ujian integer (5) auto increment
id_user int (5)
nama_ujian varchar (50)
tanggal_mulai date
tanggal_akhir date
waktu time
jml_soal int (3)
nilai_min int (4)
key_soal varchar (100)
acak varchar (100)
tipe int (1)

Tabel ujian yang mengimpan data ujian atau tes peserta. Atribut dari tabel
ujian yaitu id_ujian sebagai primary key, nama_ujian, tanggal, waktu ujian, dan
lain-lain.

Tabel 4.5 Tabel Tahun Ajaran


ta
id_ta integer (5) auto increment
nama_ta varchar (20)
38

Tabel tahun ajaran yang mengimpan data tahun ajaran. Atribut dari tabel ta
yaitu id_ta sebagai primary key, dan nama_ta.

Tabel 4.6 Tabel Tahun Ajaran Ujian


ta_ujian
id_ujian integer (5)
id_ta int (5)
aktif enum (‘Y’,’N’)

Tabel tahun ajaran ujian untuk mengatur ujian untuk tahun ajaran ujian
atau tes yang akan dilaksanakan. Atribut dari tabel ta_ujian yaitu id_ujian, id_ta,
dan aktif.

Tabel 4.7 Tabel Nilai


nilai
id_nilai integer (10) auto increment
id_ta integer (5)
id_ujian int (5)
nisn varchar (20)
acak_soal text
jawaban text
sisa_waktu time
waktu_selesai time
jml_benar int (5)
jml_kosong int (5)
jml_salah int (5)
nilai varchar (5)
status_tes varchar (20)
status varchar (100)

Tabel nilai yang mengimpan data nilai. Atribut dari tabel nilai yaitu
id_nilai sebagai primary key, nisn, dan lain-lain.

Tabel 4.8 Tabel Analisis


analisis
id_analisis integer (10) auto increment
id_soal integer (5)
id_ujian int (5)
39

Tabel 4.8 Lanjutan Tabel Analisis


analisis
nisn varchar (20)
jawaban varchar (100)

Tabel analisis yang mengimpan data analisis. Atribut dari tabel analisis
yaitu id_analisis sebagai primary key, nisn, jawaban, dan lain-lain.

Tabel 4.9 Tabel Pengumuman


pengumuman
id_pengumuman integer (10) auto increment
isi_pengumuman text
tanggal_posting date
gambar varchar (100)
dibaca int (5)
username varchar (50)

Tabel pengumuman yang mengimpan data pengumuman hal-hal yang


penting untuk di beritahukan kepada peserta tes. Atribut dari tabel pengumuman
yaitu id_pengumuman sebagai primary key, isi_pengumuman, dan lain-lain.

Tabel 4.10 Tabel Komentar


komentar
id_komentar integer (10) auto increment
id_pengumuman integer (10)
nama varchar (100)
isi text
tanggal date
jam time
aktif enum (‘Y’,’N’)
username varchar (100)

Tabel komentar yang menyimpan data komentar dari user atau pengguna
sistem sebagai respon dari pengumuman. Atribut dari tabel komentar yaitu
id_komentar sebagai primary key, nama user yang komentar, isi komentar, dan
lain-lain.
40

Tabel 4.11 Tabel Identitas


identitas
id_identitas integer (10) auto increment
nama_aplikasi varchar (100)
gambar_logo varchar (100)

Tabel identitas yang mengimpan data identitas aplikasi. Atribut dari tabel
identitas yaitu id_identitas sebagai primary key, nama_aplikasi, dan gambar_logo.

4.5 Rancangan Antar Muka


Antarmuka atau yang lebih dikenal sebagai user interface adalah sebuah
media yang menghubungkan manusia dengan komputer agar dapat saling
berinteraksi. Sebelum merancang antarmuka dari semua form pada sistem CBT,
maka untuk lebih memudahkan dalam perancangan akan dijelaskan terlebih
dahulu struktur menu user dari sistem terlihat pada Gambar 4.14.

Gambar 4.14 Struktur Menu Peserta

Gambar 4.15 menunjukan rancangan struktur menu admin, yang dirancang


untuk mengatur sistem.
41

Gambar 4.15 Struktur Menu Admin

4.5.1 Rancangan halaman login


Pengguna maupun peserta masukan username dan password terlebih
dahulu agar bisa mengakses aplikasi. Pengguna aplikasi adalah admin, operator,
dan peserta. Rancangan halaman login dapat dilihat pada Gambar 4.16.

Gambar 4.16 Rancangan Halaman Login


42

4.5.2 Rancangan halaman home


Halaman home terdapat daftar menu pada leftpanel yaitu dashboard,
peserta, peserta, operator, ujian, status ujian, nilai, identitas, dan logout.
Rancangan halaman home dapat dilihat pada Gambar 4.17.

Gambar 4.17 Rancangan Halaman Home Admin dan Operator

Halaman home peserta terdapat content daftar ujian dan tombol untuk
memulai tes atau ujian. Rancangan halaman dapat dilihat pada Gambar 4.18.

Gambar 4.18 Rancangan Halaman Home Peserta


43

4.5.3 Rancangan halaman peserta


Halaman peserta menampilkan data tahun ajaran dan data peserta tes,
terdapat juga tombol tambah untuk menambah tahun ajaran dan export data
peserta. Rancangan halaman peserta dapat dilihat pada Gambar 4.19.

Gambar 4.19 Rancangan Halaman Peserta

4.5.4 Rancangan halaman operator


Halaman operator dapat menampilkan data operator, terdapat juga tombol
tambah untuk menambah operator, cetak kartu operator, export dan import.
Rancangan halaman operator dapat dilihat pada Gambar 4.20.

Gambar 4.20 Rancangan Halaman Operator


44

4.5.5 Rancangan halaman ujian


Halaman ujian dapat menampilkan data ujian, terdapat juga tombol
tambah untuk menambah ujian. Rancangan halaman ujian dapat dilihat pada
Gambar 4.21.

Gambar 4.21 Rancangan Halaman Ujian

4.5.6 Rancangan halaman status ujian


Halaman status ujian dapat menampilkan data status ujian. Rancangan
halaman status ujian dapat dilihat pada Gambar 4.22.

Gambar 4.22 Rancangan Halaman Status Ujian


45

4.5.7 Rancangan halaman nilai


Halaman nilai dapat menampilkan data nilai ujian. Rancangan halaman
nilai ujian dapat dilihat pada Gambar 4.23.

Gambar 4.23 Rancangan Halaman Nilai

4.5.8 Rancangan halaman tambah


Halaman tambah dapat menambah data pada database, terdapat juga
tombol simpan untuk menyimpan data dan tombol untuk batas simpan.
Rancangan halaman tambah data dapat dilihat pada Gambar 4.24.

Gambar 4.24 Rancangan Halaman Tambah


46

4.5.9 Rancangan halaman tes


Halaman tes dapat menampilkan soal tes dan pilihan jawaban masing-
masing soal, terdapat juga daftar soal, dan tombol tambah sebelumya, ragu-ragu,
dan berikutnya. Rancangan halaman tes dapat dilihat pada Gambar 4.25.

Gambar 4.25 Rancangan Halaman Tes


BAB V
IMPLEMENTASI SISTEM

5.1 Implementasi
Tahap implementasi ini akan dijelaskan mengenai hubungan masalah
yang akan diteliti, perangkat keras (hardware) dan perangkat lunak (software)
yang digunakan dalam membangun sistem, tampilan berdasarkan halaman
aplikasi beserta algoritma penggunaan masing-masing halaman, dan pengujian
aplikasi.

5.2 Hubungan Masalah


Masalah yang temukan oleh penulis yakni penerapan tes atau ujian untuk
Penerimaan Siswa Baru (PSB) di SMK Kesehatan Binatama saat ini masih
dilakukan secara konvensional tentunya tidak relavan lagi dengan perkembangan
teknologi saat ini yang sudah terkomputerisasi. Tes secara konvensional juga
banyak kekurangan misalnya membutuhkan banyak kertas sebagai media tes dan
membutuhkan banyak waktu dalam menyediakan fasilitas untuk proses tes
tersebut, maka peneliti mengusulkan agar menerapkan sistem Computer Based
Test (CBT) yang sangat cepat dalam pengolahan data dan pemakaian waktu yang
efisien.
Sistem Computer Based Test (CBT) umumnya akan memproses data-data
yaitu data user, soal, jawaban dan hasil tes yang akan di simpan ke database, data-
data tersebut perlu dijamin keamanannya agar data akan terjamin dari sisi privacy
(kerahasiaan), authenticity (keaslian), integrity (keutuhan), dan non-repudiation
(tidak adanya penolakan) data. Berdasarkan permasalahan ini maka penulis
menambahkan sebuah algoritma kriptografi enkripsi dan dekripsi yaitu algoritma
Advanced Encryption Standard (AES) data pada sistem Computer Based Test
(CBT) yang diusulkan.

47
48

5.3 Perangkat Keras (Hardware)


Perangkat keras yang digunakan untuk mengoperasikan Kriptografi
Security Data menggunakan Algoritma AES pada Sistem CBT ini adalah:
a. Asus X453M
b. Processor Intel(R) Pentium(R) CPU N3540 @ 2.16GHz
c. RAM 8000 MB
d. SSD 240 GB

5.4 Perangkat Lunak (Software)


Perangkat lunak yang digunakan dalam membangun Kriptografi Security
Data menggunakan Algoritma AES pada Sistem CBT ini adalah:
a. XAMPP
b. Sublime Text 3
c. Google Chrome
d. Algoritma Advanced Encryption Standard (AES)

5.5 Implementasi Aplikasi


Implementasi aplikasi merupakan penjelasan tentang fitur-fitur uang
terdapat pada aplikasi yang telah dibangun.

5.5.1 Halaman login


Halaman login merupakan halaman pertama muncul ketika website
dijalankan. Sebelum masuk ke halaman utama, pengguna diminta untuk
memasukkan username dan password. Tampilan halaman login dapat dilihat pada
Gambar 5.1.
49

Gambar 5.1 Tampilan Login

Algoritma halaman login


1. Mulai
2. Masukan username dan password pengguna
3. Klik tombol login
4. Jika username dan password sesuai dengan yang ada pada database
maka berhasil masuk ke aplikasi
5. Jika tidak sesuai dengan database maka ditolak dan muncul pesan
kesalahan.
6. selesai

5.5.2 Halaman home


Halaman home merupakan halaman utama dari website Sistem Computer
Based Test. Halaman home admin dan operator ini berfungsi sebagai tempat
untuk menampilkan informasi-informasi tentang operator, admin, peserta tes,
ujian, soal, dan nilai. Adapun tampilan home admin dan operator pada Gambar
5.2.
50

Gambar 5.2 Tampilan Home Operator atau Admin

Halaman home peserta tes ini berfungsi sebagai tempat untuk


menampilkan informasi-informasi tentang biodata diri, pengerjaan soal tes, dan
hasil tes. Adapun tampilan home peserta terlihat pada Gambar 5.3.

Gambar 5.3 Tampilan Home Peserta


51

Algoritma halaman dalam aplikasi CBT


1. Mulai.
2. Tampil halaman home.
3. Pilih tombol yang terdapat pada leftpanel halaman home sesuai
kebutuhan berdasarkan fungsi tombol masing-masing.
4. Terdapat tombol pada halaman yang memiliki fungsi yang berbeda
seperti tombol tambah, export, import, edit, dan hapus.
5. Memilih tombol sesuai fungsi masing-masing.
6. Selesai.

5.5.3 Halaman peserta


Halaman peserta ini berfungsi sebagai tempat untuk menampilkan
informasi-informasi tentang peserta tes. Adapun tampilan peserta terlihat pada
Gambar 5.4.

Gambar 5.4 Tampilan Peserta


52

5.5.4 Halaman tahun ajaran


Halaman tahun ajaran ini berfungsi sebagai tempat untuk menampilkan
informasi-informasi tentang tahun ajaran atau sesi peserta peserta melakukan tes.
Adapun tampilan tahun ajaran terlihat pada Gambar 5.5.

Gambar 5.5 Tampilan Tahun Ajaran

5.5.5 Halaman operator


Halaman operator ini berfungsi sebagai tempat untuk menampilkan
informasi-informasi tentang data operator. Adapun tampilan halaman operator
terlihat pada Gambar 5.6.
53

Gambar 5.6 Tampilan Operator

5.5.6 Halaman ujian


Halaman ujian ini berfungsi sebagai tempat untuk menampilkan
informasi-informasi tentang data ujian, soal dan tahun ajaran atau sesi untuk
masing-masing ujian. Adapun tampilan halaman ujian terlihat pada Gambar 5.7.

Gambar 5.7 Tampilan Ujian


54

5.5.7 Halaman TA ujian


Halaman tahun ajaran ujian ini berfungsi sebagai tempat untuk
menampilkan informasi-informasi tentang data tahun ajaran masing-masing ujian.
Adapun tampilan halaman tahun ajaran ujian terlihat pada Gambar 5.8.

Gambar 5.8 Tampilan Tahun Ajaran Ujian

5.5.8 Halaman soal


Halaman soal ini berfungsi sebagai tempat untuk menampilkan informasi-
informasi tentang data soal untuk masing-masing ujian. Adapun tampilan halaman
soal terlihat pada Gambar 5.9.
55

Gambar 5.9 Tampilan Soal

5.5.9 Halaman status ujian


Halaman status ujian ini berfungsi sebagai tempat untuk menampilkan
informasi-informasi tentang data peserta yang sedang berlangsung tes. Adapun
tampilan halaman status ujian terlihat pada Gambar 5.10.

Gambar 5.10 Tampilan Status Ujian


56

5.5.10 Halaman nilai ujian


Halaman nilai ujian ini berfungsi sebagai tempat untuk menampilkan
informasi-informasi tentang data nilai masing-masing peserta tes. Adapun
tampilan halaman nilai ujian terlihat pada Gambar 5.11.

Gambar 5.11 Tampilan Nilai Ujian

5.5.11 Halaman pengerjaan soal


Halaman pengerjaan soal ini berfungsi sebagai tempat untuk menampilkan
lembar soal untuk dikerjakan oleh peserta tes. Adapun tampilan halaman
pengerjaan soal terlihat pada Gambar 5.12.
57

Gambar 5.12 Tampilan Pengerjaan Soal

Algoritma pengerjaan soal


1. Mulai.
2. Menampilkan halaman kerjakan soal.
3. Pilih jawaban yang dianggap benar, jika ingin merubah pilihan pilih
pilihan yang lain
4. Pilihan terpilih langsung disimpan.
5. Terdapat beberapa tombol yang memiliki fungsi masing-masing
seperti tombol daftar soal, sebelumnya, selanjutnya, ragu-ragu, dan
selesai.
6. Selesai.

5.5.12 Halaman hasil tes


Halaman hasil tes ini berfungsi sebagai tempat untuk menampilkan
informasi-informasi tentang data hasil tes peserta. Adapun tampilan halaman hasil
tes terlihat pada Gambar 5.13.
58

Gambar 5.13 Tampilan Hasil Tes

Algoritma hasil tes


1. Mulai.
2. Menampilkan halaman hasil tes.
3. Data nilai terlampir pada halaman.
4. Jika nilai yang di peroleh peserta dari hasil tes lebih atau sama dengan
nilai minimum yang telah di definisikan maka dinyatakan lolos.
5. Jika sebaliknya peserta dinyatakan tidak lolos tes.
6. Selesai.

5.5.13 Soal hasil enkripsi dan dekripsi


Proses enkripsi pada sistem Computer Based Test (CBT) akan dilakukan
saat penginputan soal dan pilihan jawaban sebelum tersimpan ke database
kemudian di dekripsi kembali saat proses menampilkan soal beserta pilihan
jawabannya ke halaman soal. Proses enkripsi dan dekripsi dapat dilihat pada
Gambar 5.14.
59

Gambar 5.14 Proses Enkripsi dan Dekripsi

Tampilan soal yang telah di enkripsi tersimpan pada database. Kolom soal
yaitu data soal yang telah di enkripsi, kolom pilihan_1 sampai pilihan_5 adalah
pilihan jawaban soal, dan kolom kunci yaitu jawaban benar dari pilihan jawaban.
Tampilan soal hasil enkripsi dapat dilihat pada Gambar 5.15.

Gambar 5.15 Soal Hasil Enkripsi

Soal yang terenkripsi pada database kemudian di proses dekripsi lagi


menggunakan algoritma AES sebelum di tampilkan pada halaman soal server
maupun pada halaman pengerjaan soal peserta ujian. Tampilan soal hasil dekripsi
dapat dilihat pada Gambar 5.16.
60

Gambar 5.16 Soal Hasil Deksripsi

5.6 Pengujian Aplikasi


Pengujian aplikasi sangat diperlukan untuk memastikan aplikasi yang
sudah dibuat dapat berjalan sesuai dengan fungsionalitas yang diharapkan,
kesalahan ataupun kekurangan dapat dideteksi sejak awal dan dikoreksi
secepatnya. Pengujian untuk aplikasi Computer Based Test (CBT) ini
menggunakan cara Black Box Testing yang berfokus pada spesifikasi fungsional
dari perangkat lunak. Metode yang dipakai untuk melaksanakan Black Box
Testing yaitu Equivalence Partitioning, Boundary Value Analysis, dan
Requirement Testing.

5.6.1 Equivalence partitioning


Metode Equivalence Partitioning untuk menguji data yang di input sama
dengan data yang terdapat dalam database atau yang telah di definisikan oleh
defeloper dan menghasilkan respon yang sama pula. Modul yang diuji yaitu
modul admin yang memiliki sub modul login, tahun ajaran, peserta, operator,
ujian, soal, dan identitas.
61

1. Pengujian login
Berikut dapat dilihat pengujian dari login dengan kasus dan hasil
uji data falid dan infalid kemudian diamati dan menghasilkan
kesimpulan dari pengujian tersebut. Pengujian login dapat dilihat pada
Tabel 5.1.

Tabel 5.1 Equivalence Partitioning Login


Data Skenario Pengujian Perkiraan Hasil Hasil Ket
Masukan
Username, input username dan infalid, muncul pesan T sukses
Password password yang sama kesalahan
dengan database.
input username dan falid, masuk ke T sukses
password yang tidak halaman home
sama dengan database.

2. Pengujian tahun ajaran


Berikut dapat dilihat pengujian dari tahun ajaran dengan kasus dan
hasil uji data falid dan infalid sesuai dengan batasan atau format dari
skenario pengujian kemudian diamati dan menghasilkan kesimpulan
dari pengujian tersebut. Pengujian tahun ajaran dapat dilihat pada
Tabel 5.2.

Tabel 5.2 Equivalence Partitioning Tahun Ajaran


Data Skenario Pengujian Perkiraan Hasil Hasil Ket
Masukan
Tahun Panjang min 4 max 10 Data dapat di simpan. T sukses
Ajaran karakter, hanya angka,
huruf, tanda / dan tanda
-
Data kosong, tidak Memuncul pesan T sukses
sesuai dengan format. kesalahan bahwa field
harus di isi dan harus
sesuai dengan format.
62

3. Pengujian peserta
Berikut dapat dilihat pengujian dari peserta dengan kasus dan hasil
uji data falid dan infalid sesuai dengan batasan atau format dari
skenario pengujian kemudian diamati dan menghasilkan kesimpulan
dari pengujian tersebut. Pengujian peserta dapat dilihat pada Tabel
5.3.

Tabel 5.3 Equivalence Partitioning Peserta


Data Skenario Pengujian Perkiraan Hasil Hasil Ket
Masukan
NISN Hanya angka, panjang Data dapat di simpan. T sukses
min-max 10 karakter.
Data kosong, tidak Memuncul pesan T sukses
sesuai dengan format. kesalahan bahwa field
harus di isi dan harus
sesuai dengan format.
Nama Panjang max 50 Data dapat di simpan. T sukses
karakter, hanya huruf,
dan spasi.
Data kosong, tidak Memuncul pesan T sukses
sesuai dengan format. kesalahan bahwa field
harus di isi dan harus
sesuai dengan format.
Email Sesuai aturan standar Data dapat di simpan. T sukses
input type email.
Data kosong, tidak Memuncul pesan T sukses
sesuai dengan format. kesalahan bahwa field
harus di isi dan harus
sesuai dengan format.
HP Panjang min 10 max 12 Data dapat di simpan. T sukses
karakter, hanya angka.
Data kosong, tidak Memuncul pesan T sukses
sesuai dengan format. kesalahan bahwa field
harus di isi dan harus
sesuai dengan format.
Alamat Panjang max 100 Data dapat di simpan. T sukses
karakter.
Data kosong, input Memuncul pesan T sukses
lebih dari panjang kesalahan bahwa field
karakter. harus di isi dan harus
sesuai dengan format.
63

Tabel 5.3 Lanjutan Equivalence Partitioning Peserta


Data Skenario Pengujian Perkiraan Hasil Hasil Ket
Masukan
Foto Type harus Data dapat di simpan. T sukses
JPG/JPEG, lebar max
400 px
Data kosong, tidak Dapat disimpan, data T sukses
sesuai dengan format. kosong diganti dengan
gambar universal.
Tidak dapat disimpan
data yang tidak sesuai
format.

4. Pengujian operator
Berikut dapat dilihat pengujian dari operator dengan kasus dan
hasil uji data falid dan infalid sesuai dengan batasan atau format dari
skenario pengujian kemudian diamati dan menghasilkan kesimpulan
dari pengujian tersebut. Data masukan untuk pengujian operator
hampir sama dengan peserta, hanya username yang berbeda.
Pengujian operator dapat dilihat pada Tabel 5.4.

Tabel 5.4 Equivalence Partitioning Operator


Data Skenario Pengujian Perkiraan Hasil Hasil Ket
Masukan
Usename Panjang min 8 max 10 Data dapat di simpan. T sukses
karakter, huruf, angka,
dan tanda _
Data kosong, tidak Memuncul pesan T sukses
sesuai dengan format. kesalahan bahwa field
harus di isi dan harus
sesuai dengan format.

5. Pengujian ujian
Berikut dapat dilihat pengujian dari ujian atau tes dengan kasus
dan hasil uji data falid dan infalid sesuai dengan batasan atau format
dari skenario pengujian kemudian diamati dan menghasilkan
64

kesimpulan dari pengujian tersebut. Pengujian ujian atau tes dapat


dilihat pada Tabel 5.5.

Tabel 5.5 Equivalence Partitioning Ujian


Data Skenario Pengujian Perkiraan Hasil Hasil Ket
Masukan
Nama Panjang min 3 max 50 Data dapat di simpan. T sukses
Ujian karakter, huruf, angka,
dan tanda /
Data kosong, tidak Memuncul pesan T sukses
sesuai dengan format. kesalahan bahwa field
harus di isi dan harus
sesuai dengan format.
Tanggal Panjang max 10 Data dapat di simpan. T sukses
Mulai karakter, yyyy-mm-dd.
Data kosong, tidak Memuncul pesan T sukses
sesuai dengan format. kesalahan bahwa field
harus di isi dan rubah
automatis ke format
standar.
Tanggal Panjang max 10 Data dapat di simpan. T sukses
Akhir karakter, yyyy-mm-dd,
>= tanggal mulai.
Data kosong, tidak Memuncul pesan T sukses
sesuai dengan format. kesalahan bahwa field
harus di isi dan rubah
automatis ke format
standar.
Waktu Jam min=00 max=12, Data dapat di simpan. T sukses
Ujian menit min=00 max=59.
Data kosong, tidak Memuncul pesan T sukses
sesuai dengan format. kesalahan bahwa field
harus di isi dan
automatis di atur
sesuai format.
Nilai Nilai min=0 max=100 Data dapat di simpan. T sukses
Minimal Data kosong, tidak Memuncul pesan T sukses
sesuai dengan format. kesalahan bahwa field
harus di isi dan
automatis di atur
sesuai format.
Key Panjang max=256 Data dapat di simpan. T sukses
Enkripsi Data kosong Data dapat di simpan. T sukses
65

6. Pengujian soal
Berikut dapat dilihat pengujian dari soal dengan kasus dan hasil uji
data falid dan infalid sesuai dengan batasan atau format dari skenario
pengujian kemudian diamati dan menghasilkan kesimpulan dari
pengujian tersebut. Pengujian soal dapat dilihat pada Tabel 5.6.

Tabel 5.6 Equivalence Partitioning Soal


Data Skenario Pengujian Perkiraan Hasil Hasil Ket
Masukan
Soal, Huruf, gambar, dan Data dapat di simpan. T sukses
pilihan suara.
A,B,C,D Data kosong. Data tidak dapat di T sukses
simpan.

7. Pengujian identitas
Berikut dapat dilihat pengujian dari identitas dengan kasus dan
hasil uji data falid dan infalid sesuai dengan batasan atau format dari
skenario pengujian kemudian diamati dan menghasilkan kesimpulan
dari pengujian tersebut. Pengujian identitas dapat dilihat pada Tabel
5.7.

Tabel 5.7 Equivalence Partitioning Identitas


Data Skenario Pengujian Perkiraan Hasil Hasil Ket
Masukan
Nama Panjang max=3 Data dapat di simpan. T sukses
Web karakter, hanya huruf.
Data kosong, tidak Memuncul pesan T sukses
sesuai dengan format. kesalahan bahwa field
harus di isi dan harus
sesuai dengan format.

5.6.2 Boundary value analysis


Metode Boundary Value Analysis (BVA) yang berfokus pada pengujian
proses masukan dengan menguji nilai batas atas dan nilai batas bawah. Modul
66

yang diuji hanya modul peserta karena data masukkan yang diuji dapat
merepresentasi modul yang lain. Modul peserta terdiri atas satu panel entry data
seperti pada gambar berikut. Gambar 5.17 adalah form peserta terdapat 14 field
entry data yaitu id_peserta, nama_lengkap, nisn, password, id_ta, status, waktu,
email, foto, id_session, hp, alamat, dan tentang, namun yang di uji adalah
sebagian field yang langsung di input dari program.

Gambar 5.17 Struktur Tabel Peserta

Pengujian nilai batas atas dan nilai batas bawah NISN dengan hasil uji
data true dan false sesuai dengan batasan dari data sampel dan perkiraan hasil
kemudian diamati dan menghasilkan kesimpulan dari pengujian tersebut.
Pengujian NISN dapat dilihat pada Tabel 5.8.

Tabel 5.8 Boundary Value Analysis NISN


Data Sampel Perkiraan Hasil Hasil Kesimpulan
9964224393 TRUE TRUE sukses
99642243 FALSE FALSE sukses
9964224393 TRUE TRUE sukses
996422439393 FALSE FALSE sukses
67

Pengujian nilai batas atas dan nilai batas bawah nama lengkap dengan
hasil uji data true dan false sesuai dengan batasan dari data sampel dan perkiraan
hasil kemudian diamati dan menghasilkan kesimpulan dari pengujian tersebut.
Pengujian nama lengkap dapat dilihat pada Tabel 5.9.

Tabel 5.9 Boundary Value Analysis Nama Lengkap


Data Sampel Perkiraan Hasil Kesimpulan
Hasil
Muhammad Yusran TRUE TRUE sukses
- FALSE FALSE sukses
Muhammad Yusran Muhammad Yusran TRUE TRUE sukses
Muhammad Yusran MY
Muhammad Yusran Muhammad Yusran FALSE FALSE sukses
Muhammad Yusran Muhammad Yusran

Pengujian nilai batas atas dan nilai batas bawah email dengan hasil uji data
true dan false sesuai dengan batasan dari data sampel dan perkiraan hasil
kemudian diamati dan menghasilkan kesimpulan dari pengujian tersebut.
Pengujian email dapat dilihat pada Tabel 5.10.

Tabel 5.10 Boundary Value Analysis Email


Data Sampel Perkiraan Hasil Kesimpulan
Hasil
my@gmail.com TRUE TRUE sukses
- FALSE FALSE sukses
my@gmail.com my@gmail.com TRUE TRUE sukses
my@gmail.com my@gmail.com
my@gmail.com my@gmail.com
my@gmail.com my@gmail.
my@gmail.com my@gmail.com FALSE FALSE sukses
my@gmail.com my@gmail.com
my@gmail.com my@gmail.com
my@gmail.com my@gmail.com

Pengujian nilai batas atas dan nilai batas bawah nomor hp dengan hasil uji
data true dan false sesuai dengan batasan dari data sampel dan perkiraan hasil
68

kemudian diamati dan menghasilkan kesimpulan dari pengujian tersebut.


Pengujian nomor hp dapat dilihat pada Tabel 5.11.

Tabel 5.11 Boundary Value Analysis Nomor Handphone


Data Sampel Perkiraan Hasil Kesimpulan
Hasil
0812345678 TRUE TRUE sukses
081234567 FALSE FALSE sukses
081234567890 TRUE TRUE sukses
081234567891010 FALSE FALSE sukses

Pengujian nilai batas atas dan nilai batas bawah alamat dengan hasil uji
data true dan false sesuai dengan batasan dari data sampel dan perkiraan hasil
kemudian diamati dan menghasilkan kesimpulan dari pengujian tersebut.
Pengujian alamat dapat dilihat pada Tabel 5.12.

Tabel 5.12 Boundary Value Analysis Alamat


Data Sampel Perkiraan Hasil Kesimpulan
Hasil
Labuan Bajo, Flores, NTT TRUE TRUE sukses
- FALSE FALSE sukses
Labuan Bajo, Flores, NTT, NTT, NTT, TRUE TRUE sukses
NTT, NTT, NTT, NTT, NTT, NTT, NTT,
NTT, NTT, NTT, NTT, NTT, NTT,
Labuan Bajo, Flores, NTT, NTT, NTT, FALSE FALSE sukses
NTT, NTT, NTT, NTT, NTT, NTT, NTT,
NTT, NTT, NTT, NTT, NTT, Labuan
Bajo, Flores.

Pengujian nilai batas atas dan nilai batas bawah tentang dengan hasil uji
data true dan false sesuai dengan batasan dari data sampel dan perkiraan hasil
kemudian diamati dan menghasilkan kesimpulan dari pengujian tersebut.
Pengujian tentang dapat dilihat pada Tabel 5.13.
69

Tabel 5.13 Boundary Value Analysis Tentang


Data Sampel Perkiraan Hasil Kesimpulan
Hasil
Aku seorang pelajar TRUE TRUE sukses
- TRUE TRUE sukses
aku mau cerita gaes aku ini anak seorang TRUE TRUE sukses
gembala yang ingin cari jodoh di tanah
rantau tapi apa daya aku mau cerita gaes
aku ini anak seorang gembala yang ingin
cari jodoh di tanah rantau tapi apa day
aku mau cerita gaes aku ini anak seorang FALSE FALSE sukses
gembala yang ingin cari jodoh di tanah
rantau tapi apa daya aku mau cerita gaes
aku ini anak seorang gembala yang ingin
cari jodoh di tanah rantau tapi apa daya
tangan tak sampai

5.6.3 Requirement testing


Metode Requirement Testing yang berfokus pada pengujian fungsi dari
komponen-komponen dalam aplikasi agar dapat berfungsi sesuai yang diharapkan
oleh pengguna. Pengujian meliputi form login, admin atau operator, dan peserta.
Admin terbagi menjadi left panel, header, dan content.
1. Pengujian login
Pengujian fungsi komponen dalam form login yaitu mengisi
username dan password yang sama dengan data pada database dan
tombol login. Pengujian dapat dilihat pada Tabel 5.14.

Tabel 5.14 Requirement Testing Login


Skenarion Test Case Perkiraan Hasil Hasil Ket
Pengujian
mengisi input berhasil masuk aplikasi sesuai sukses
username dan username,
password password,
kemudian klik tombol login
tombol login

2. Pengujian left panel


Pengujian fungsi komponen dalam left panel terdapat banyak
70

komponen yang diuji seperti tombol peserta, kemudian dapat diamati


perkiraan hasil. Pengujian dapat dilihat pada Tabel 5.15.

Tabel 5.15 Requirement Testing Left Panel


Skenarion Test Case Perkiraan Hasil Hasil Ket
Pengujian
klik tombol klik dashboard menampilkan halaman sesuai sukses
dashboard dashboard
klik tombol tombol peserta menampilkan halaman sesuai sukses
peserta tahun ajaran dan jumlah
peserta
klik tombol tombol menampilkan halaman sesuai sukses
operator operator operator
klik tombol tombol ujian menampilkan halaman sesuai sukses
ujian ujian
klik tombol tombol status menampilkan halaman sesuai sukses
status ujian ujian status ujian
klik tombol nilai tombol nilai menampilkan halaman sesuai sukses
nilai ujian
klik tombol tombol menampilkan halaman sesuai sukses
identitas identitas identitas aplikasi
klik tombol tombol logout keluar dari apliasi sesuai sukses
logout

3. Pengujian header
Pengujian fungsi komponen dalam header seperti pengujian fungsi
tombol lihat profil dan tombol edit profil, kemudian dapat diamati
perkiraan hasil. Pengujian dapat dilihat pada Tabel 5.16.

Tabel 5.16 Requirement Testing Header


Skenarion Test Case Perkiraan Hasil Hasil Ket
Pengujian
klik tombol lihat tombol lihat menampilkan halaman sesuai sukses
profil profil profil
klik tombol edit tombol edit menampilkan halaman sesuai sukses
profil profil edit profil

4. Pengujian content
Pengujian fungsi komponen dalam content juga terdapat banyak
71

komponen yang diuji seperti input pengumuman, file gambar, dan


lain-lain. Pengujian dapat dilihat pada Tabel 5.17.

Tabel 5.17 Requirement Testing Content


Skenarion Test Case Perkiraan Hasil Hasil Ket
Pengujian
isi data input dapat menyimpan isi sesuai sukses
pengumuman pengumuman pengumuman dan tampil
kemudian klik pada halaman peserta dan
tombol kirim operatot
pilih file file gambar dapat menyimpan sesuai sukses
gambar gambar
kemudian klik
kirim
masukan input dapat menyimpan sesuai sukses
komentar komentar komentar
kemudian enter
klik tombol tombol tambah menampilkan halaman sesuai sukses
tambah tambah
klik tombol edit tombol edit menampilkan halaman sesuai sukses
edit
klik tombol tombol hapus menampilkan halaman sesuai sukses
hapus hapus
mengisi semua entry data dan dapat menyimpan data sesuai sukses
field input tombol simpan
kemudian klik
simpan
klik tombol tombol cetak menampilkan halaman sesuai sukses
cetak kartu kartu kartu sesuai halaman
yang aktif yaitu peserta,
operator, dan nilai
klik tombol tombol export menampilkan halaman sesuai sukses
export data export data dari halaman
aktif
klik tombol tombol import menampilkan halaman sesuai sukses
import data import data dari halaman
aktif
klik tombol tombol jumlah menampilkan halaman sesuai sukses
jumlah peserta peserta peserta
klik tombol tombol jumlah menampilkan halaman sesuai sukses
jumlah soal soal tambah soal untuk ujian
tertentu
72

Tabel 5.17 Lanjutan Requirement Testing Content


Skenarion Test Case Perkiraan Hasil Hasil Ket
Pengujian
klik tombol tombol tahun menampilkan halaman sesuai sukses
tahun ajaran ajaran ujian tahun ajaran ujian untuk
ujian ujian tertentu
tombol reset tombol reset update status login sesuai sukses
status login peserta menjadi belum
peserta login

5. Pengujian peserta
Pengujian fungsi komponen dalam modul peserta terdapat banyak
juga komponen yang akan diuji seperti fungsi tombol mulai tes, dan
lain-lain. Pengujian dapat dilihat pada Tabel 5.18.

Tabel 5.18 Requirement Testing Peserta


Skenarion Test Case Perkiraan Hasil Hasil Ket
Pengujian
klik tombol tombol logout keluar aplikasi sesuai sukses
logout
klik tombol tombol mulai menampilkan halaman sesuai sukses
mulai tes tes data ujian atau tes
klik tombol tombol menampilkan halaman sesuai sukses
kerjakan soal kerjakan soal kerja soal dan memulai
mengerjakan soal
pilih jawaban pilih pilihan dapat mengimpan pilihan sesuai sukses
yang dianggap jawaban benar yang dipilih
benar
klik tombol tombol pindah ke halaman soal sesuai sukses
selanjutnya selanjutnya berikutnya
klik tombol tombol pindah ke halaman soal sesuai sukses
sebelumnya sebelumnya sebelumnya
klik tombol tombol ragu- dapat menyimpan pilihan sesuai sukses
ragu-ragu ragu ragu-ragu
klik tombol tombol selesai menampilkan konfirmasi sesuai sukses
selesai selesai
klik tombol tombol daftar menampilkan semua sesuai sukses
daftar soal soal daftar soal
klik tombol tombol lihat menampilkan halaman sesuai sukses
lihat nilai tes nilai tes nilai tes peserta
BAB VI
PENUTUP

6.1 Kesimpulan
Berdasarkan penelitian yang dilakukan oleh penulis dan merujuk kepada
rumusan masalah, maka dapat diambil kesimpulan bahwa penelitian ini
menghasilan sebuah sistem Computer Based Test (CBT) yang dapat menerapkan
algoritma Advanced Encryption Standart (AES) untuk security atau
mengamankan data berupa data soal, jawaban, dan kunci jawaban pada database.

6.2 Saran
Berdasarkan hasil implementasi sistem kriptografi security data pada
Computer Based Test (CBT) yang penulis lakukan, maka penulis dapat
memberikan saran untuk pengembangan sistem yang mungkin dapat dilakukan
oleh penulis yang lain, yaitu :
a. Algoritma Advanced Encryption Standart (AES) hanya memiliki 1
key enkripsi dan 1 key dekripsi yang sama, sehingga memungkinkan
untuk menggunakan algoritma lain yang memiliki key enkripsi dan
dekripsi yang yang tidak sama dan bisa berjumlah banyak.
b. Key enkripsi dan key dekripsi masih dinput secara manual, maka dapat
dikembangkan berupa key automatis oleh sistem dengan kriteria yang
unik dan kombinasi karakter antara angka, symbol, dan huruf.
c. Data peserta masih di input oleh user admin atau operator, sehingga
dapat dikembangkan agar peserta yang akan mendaftar langsung
melalui sistem.
d. Memerlukan penambahan fungsi untuk proses pengiriman kartu
peserta dan hasil tes menggunakan email secara automatis.

73
DAFTAR PUSTAKA

Aditama, R. (2017), Web Service Pembayaran Uang Kuliah Online dengan PHP
& SOAP WSDL, Yogyakarta: Lokomedia.

Hariyanto, A. (2017), Membuat Aplikasi Computer Based Test dengan PHP


MySQLi & BOOTSTRAP, Yogyakarta: Lokomedia.

Hendini, A. (2016), Pemodelan UML Sistem Informasi Monitoring Penjualan dan


Stok Barang, JURNAL KHATULISTIWA INFORMATIKA, 4(2), 1–10.

Kadir, A. (2014), Pengenalan Sistem Informasi, Edisi Refi Yogyakarta: ANDI.

Leohani, R.A. dan Agus, I. (2016), Proses Enkripsi dan Dekripsi Email
menggunakan Algoritma Advanced Encryption Standard ( AES ), Seminar
Nasional Matematika dan Pendidikan Matematika UNY hal.1–6.

Muzakir, A. (2016), Implementasi Teknik Steganografi Dengan Kriptografi Kunci


Private AES Untuk Keamanan File Gambar Berbasis Android, Seminar
Nasional Teknologi Informasi dan Multimedia 2016 hal.1–7.

Pabokory, F.N., Astuti, I.F. dan Kridalaksana, A.H. (2015), Implementasi


Kriptografi Pengamanan Data Pada Pesan Teks, Isi File Dokumen, Dan File
Dokumen Menggunakan Algoritma Advanced Encryption Standard, Jurnal
Informatika Mulawarman, 10(2), 1–12.

Peling, I.B.A. dan Sastra, N.P. (2018), Enhanced Audio Steganografi dengan
Algoritma Advanced Encryption Standard untuk Pengamanan Data Pada
File Audio, Majalah Ilmiah Teknologi Elektro, 17(1–4), 1–12.

Simarmata, J. (2007), Perancangan Basis Data, Yogyakarta: ANDI.

Susanto (2017), Implementasi Keamanan Data Menggunakan Algoritma Blowfish


Pada Sistem Informasi Koperasi Rias, Jurnal SIMETRIS, 8(4), 1–14.

Sutabri, T. (2012), Analisis Sistem Informasi, Yogyakarta: ANDI.

Sutanta, E. (2011), Basis Data Dalam Tinjauan Konseptual, Yogyakarta: ANDI.

Tedyyana, A. dan Danuri (2017), Computer Based Test Untuk Seleksi Masuk
Politeknik Negeri Bengkalis, Jurnal Teknologi Informasi & Komunikasi
Digital Zone, 8(11), 1–15.

74
LAMPIRAN

Source Code Program


1. Koneksi.php
<?php
// panggil fungsi validasi xss dan injection
require_once('fungsi_validasi.php');
$host = "localhost";
$user = "root";
$pass = "";
$db = "cbt";
//Menggunakan objek mysqli untuk membuat koneksi dan
menyimpanya dalam variabel $mysqli
$mysqli = new mysqli($host, $user, $pass, $db);
// buat variabel untuk validasi dari file fungsi_validasi.php
$val = new validasi;
//Membuat variabel yang menyimpan url website dan folder
website
$url_website = "http://localhost/cbt";
$folder_website = "/cbt";
//Menentukan timezone
date_default_timezone_set('Asia/Jakarta');
?>

2. Algoritma AES (Advanced Encription Standart)


Aes.class.php
Class Aes
{
public static function cipher($input, $w)
{
$Nb = 4; // block size (in words): no of columns in state
(fixed at 4 for AES)
$Nr = count($w) / $Nb - 1; // no of rounds: 10/12/14 for
128/192/256-bit keys
$state = array(); // initialise 4xNb byte-array 'state'
with input [§3.4]
for ($i = 0; $i < 4 * $Nb; $i++) $state[$i % 4][floor($i /
4)] = $input[$i];
$state = self::addRoundKey($state, $w, 0, $Nb);
for ($round = 1; $round < $Nr; $round++) { // apply Nr
rounds
$state = self::subBytes($state, $Nb);
$state = self::shiftRows($state, $Nb);
$state = self::mixColumns($state, $Nb);
$state = self::addRoundKey($state, $w, $round, $Nb);
}
$state = self::subBytes($state, $Nb);
$state = self::shiftRows($state, $Nb);
$state = self::addRoundKey($state, $w, $Nr, $Nb);

75
76

$output = array(4 * $Nb); // convert state to 1-d array


before returning [§3.4]
for ($i = 0; $i < 4 * $Nb; $i++) $output[$i] = $state[$i %
4][floor($i / 4)];
return $output;
}
private static function subBytes($s, $Nb)
{
for ($r = 0; $r < 4; $r++) {
for ($c = 0; $c < $Nb; $c++) $s[$r][$c] =
self::$sBox[$s[$r][$c]];
}
return $s;
}
private static function shiftRows($s, $Nb)
{
$t = array(4);
for ($r = 1; $r < 4; $r++) {
for ($c = 0; $c < 4; $c++) $t[$c] = $s[$r][($c + $r) %
$Nb]; // shift into temp copy
for ($c = 0; $c < 4; $c++) $s[$r][$c] = $t[$c]; // and
copy back
} // note that this will work for Nb=4,5,6, but not 7,8
(always 4 for AES):
return $s; // see
fp.gladman.plus.com/cryptography_technology/rijndael/aes.spec.311.
pdf
}
private static function mixColumns($s, $Nb)
{
for ($c = 0; $c < 4; $c++) {
$a = array(4); // 'a' is a copy of the current column
from 's'
$b = array(4); // 'b' is a•{02} in GF(2^8)
for ($i = 0; $i < 4; $i++) {
$a[$i] = $s[$i][$c];
$b[$i] = $s[$i][$c] & 0x80 ? $s[$i][$c] << 1 ^
0x011b : $s[$i][$c] << 1;
}
// a[n] ^ b[n] is a•{03} in GF(2^8)
$s[0][$c] = $b[0] ^ $a[1] ^ $b[1] ^ $a[2] ^ $a[3]; //
2*a0 + 3*a1 + a2 + a3
$s[1][$c] = $a[0] ^ $b[1] ^ $a[2] ^ $b[2] ^ $a[3]; //
a0 * 2*a1 + 3*a2 + a3
$s[2][$c] = $a[0] ^ $a[1] ^ $b[2] ^ $a[3] ^ $b[3]; //
a0 + a1 + 2*a2 + 3*a3
$s[3][$c] = $a[0] ^ $b[0] ^ $a[1] ^ $a[2] ^ $b[3]; //
3*a0 + a1 + a2 + 2*a3
}
return $s;
}
public static function keyExpansion($key)
{
$Nb = 4; // block size (in words): no of columns in state
(fixed at 4 for AES)
$Nk = count($key) / 4; // key length (in words): 4/6/8 for
77

128/192/256-bit keys
$Nr = $Nk + 6; // no of rounds: 10/12/14 for 128/192/256-
bit keys
$w = array();
$temp = array();
for ($i = 0; $i < $Nk; $i++) {
$r = array($key[4 * $i], $key[4 * $i + 1], $key[4 * $i
+ 2], $key[4 * $i + 3]);
$w[$i] = $r;
}
for ($i = $Nk; $i < ($Nb * ($Nr + 1)); $i++) {
$w[$i] = array();
for ($t = 0; $t < 4; $t++) $temp[$t] = $w[$i - 1][$t];
if ($i % $Nk == 0) {
$temp = self::subWord(self::rotWord($temp));
for ($t = 0; $t < 4; $t++) $temp[$t] ^=
self::$rCon[$i / $Nk][$t];
} else if ($Nk > 6 && $i % $Nk == 4) {
$temp = self::subWord($temp);
}
for ($t = 0; $t < 4; $t++) $w[$i][$t] = $w[$i -
$Nk][$t] ^ $temp[$t];
}
return $w;
}
private static function subWord($w)
{
for ($i = 0; $i < 4; $i++) $w[$i] = self::$sBox[$w[$i]];
return $w;
}
private static function rotWord($w)
{
$tmp = $w[0];
for ($i = 0; $i < 3; $i++) $w[$i] = $w[$i + 1];
$w[3] = $tmp;
return $w;
}
// sBox is pre-computed multiplicative inverse in GF(2^8) used
in subBytes and keyExpansion [§5.1.1]
private static $sBox = array(
0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30,
0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76,
0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad,
0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0,
0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34,
0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,
0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07,
0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75,
0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52,
0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84,
0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a,
0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf,
0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45,
0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8,
0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc,
0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2,
78

0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4,


0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73,
0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46,
0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb,
0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2,
0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79,
0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c,
0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08,
0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8,
0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a,
0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61,
0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e,
0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b,
0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,
0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41,
0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16);
// rCon is Round Constant used for the Key Expansion [1st col
is 2^(r-1) in GF(2^8)] [§5.2]
private static $rCon = array(
array(0x00, 0x00, 0x00, 0x00),
array(0x01, 0x00, 0x00, 0x00),
array(0x02, 0x00, 0x00, 0x00),
array(0x04, 0x00, 0x00, 0x00),
array(0x08, 0x00, 0x00, 0x00),
array(0x10, 0x00, 0x00, 0x00),
array(0x20, 0x00, 0x00, 0x00),
array(0x40, 0x00, 0x00, 0x00),
array(0x80, 0x00, 0x00, 0x00),
array(0x1b, 0x00, 0x00, 0x00),
array(0x36, 0x00, 0x00, 0x00));
}

Aesctr.class.php
Class AesCtr extends Aes
{
public static function encrypt($plaintext, $password,
$nBits)
{
$blockSize = 16; // block size fixed at 16 bytes / 128
bits (Nb=4) for AES
if (!($nBits == 128 || $nBits == 192 || $nBits == 256))
return ''; // standard allows 128/192/256 bit keys
// note PHP (5) gives us plaintext and password in UTF8
encoding!
// use AES itself to encrypt password to get cipher key
(using plain password as source for
// key expansion) - gives us well encrypted key
$nBytes = $nBits / 8; // no bytes in key
$pwBytes = array();
for ($i = 0; $i < $nBytes; $i++) $pwBytes[$i] =
ord(substr($password, $i, 1)) & 0xff;
$key = Aes::cipher($pwBytes,
Aes::keyExpansion($pwBytes));
$key = array_merge($key, array_slice($key, 0, $nBytes -
79

16)); // expand key to 16/24/32 bytes long


// initialise 1st 8 bytes of counter block with nonce
(NIST SP800-38A §B.2): [0-1] = millisec,
// [2-3] = random, [4-7] = seconds, giving guaranteed
sub-ms uniqueness up to Feb 2106
$counterBlock = array();
$nonce = floor(microtime(true) * 1000); // timestamp:
milliseconds since 1-Jan-1970
$nonceMs = $nonce % 1000;
$nonceSec = floor($nonce / 1000);
$nonceRnd = floor(rand(0, 0xffff));
for ($i = 0; $i < 2; $i++) $counterBlock[$i] =
self::urs($nonceMs, $i * 8) & 0xff;
for ($i = 0; $i < 2; $i++) $counterBlock[$i + 2] =
self::urs($nonceRnd, $i * 8) & 0xff;
for ($i = 0; $i < 4; $i++) $counterBlock[$i + 4] =
self::urs($nonceSec, $i * 8) & 0xff;
// and convert it to a string to go on the front of the
ciphertext
$ctrTxt = '';
for ($i = 0; $i < 8; $i++) $ctrTxt .=
chr($counterBlock[$i]);
// generate key schedule - an expansion of the key into
distinct Key Rounds for each round
$keySchedule = Aes::keyExpansion($key);
//print_r($keySchedule);
$blockCount = ceil(strlen($plaintext) / $blockSize);
$ciphertxt = array(); // ciphertext as array of strings
for ($b = 0; $b < $blockCount; $b++) {
// set counter (block #) in last 8 bytes of counter
block (leaving nonce in 1st 8 bytes)
// done in two stages for 32-bit ops: using two
words allows us to go past 2^32 blocks (68GB)
for ($c = 0; $c < 4; $c++) $counterBlock[15 - $c] =
self::urs($b, $c * 8) & 0xff;
for ($c = 0; $c < 4; $c++) $counterBlock[15 - $c -
4] = self::urs($b / 0x100000000, $c * 8);
$cipherCntr = Aes::cipher($counterBlock,
$keySchedule); // -- encrypt counter block --
// block size is reduced on final block
$blockLength = $b < $blockCount - 1 ? $blockSize :
(strlen($plaintext) - 1) % $blockSize + 1;
$cipherByte = array();
for ($i = 0; $i < $blockLength; $i++) { // -- xor
plaintext with ciphered counter byte-by-byte --
$cipherByte[$i] = $cipherCntr[$i] ^
ord(substr($plaintext, $b * $blockSize + $i, 1));
$cipherByte[$i] = chr($cipherByte[$i]);
}
$ciphertxt[$b] = implode('', $cipherByte); //
escape troublesome characters in ciphertext
}
// implode is more efficient than repeated string
concatenation
$ciphertext = $ctrTxt . implode('', $ciphertxt);
$ciphertext = base64_encode($ciphertext);
80

return $ciphertext;
}
public static function decrypt($ciphertext, $password,
$nBits)
{
$blockSize = 16; // block size fixed at 16 bytes / 128
bits (Nb=4) for AES
if (!($nBits == 128 || $nBits == 192 || $nBits == 256))
return ''; // standard allows 128/192/256 bit keys
$ciphertext = base64_decode($ciphertext);
// use AES to encrypt password (mirroring encrypt
routine)
$nBytes = $nBits / 8; // no bytes in key
$pwBytes = array();
for ($i = 0; $i < $nBytes; $i++) $pwBytes[$i] =
ord(substr($password, $i, 1)) & 0xff;
$key = Aes::cipher($pwBytes,
Aes::keyExpansion($pwBytes));
$key = array_merge($key, array_slice($key, 0, $nBytes -
16)); // expand key to 16/24/32 bytes long
// recover nonce from 1st element of ciphertext
$counterBlock = array();
$ctrTxt = substr($ciphertext, 0, 8);
for ($i = 0; $i < 8; $i++) $counterBlock[$i] =
ord(substr($ctrTxt, $i, 1));
// generate key schedule
$keySchedule = Aes::keyExpansion($key);
// separate ciphertext into blocks (skipping past
initial 8 bytes)
$nBlocks = ceil((strlen($ciphertext) - 8) /
$blockSize);
$ct = array();
for ($b = 0; $b < $nBlocks; $b++) $ct[$b] =
substr($ciphertext, 8 + $b * $blockSize, 16);
$ciphertext = $ct; // ciphertext is now array of block-
length strings
// plaintext will get generated block-by-block into
array of block-length strings
$plaintxt = array();
for ($b = 0; $b < $nBlocks; $b++) {
// set counter (block #) in last 8 bytes of counter
block (leaving nonce in 1st 8 bytes)
for ($c = 0; $c < 4; $c++) $counterBlock[15 - $c] =
self::urs($b, $c * 8) & 0xff;
for ($c = 0; $c < 4; $c++) $counterBlock[15 - $c -
4] = self::urs(($b + 1) / 0x100000000 - 1, $c * 8) & 0xff;
$cipherCntr = Aes::cipher($counterBlock,
$keySchedule); // encrypt counter block
$plaintxtByte = array();
for ($i = 0; $i < strlen($ciphertext[$b]); $i++) {
// -- xor plaintext with ciphered counter byte-
by-byte --
$plaintxtByte[$i] = $cipherCntr[$i] ^
ord(substr($ciphertext[$b], $i, 1));
$plaintxtByte[$i] = chr($plaintxtByte[$i]);
}
81

$plaintxt[$b] = implode('', $plaintxtByte);


}
// join array of blocks into single plaintext string
$plaintext = implode('', $plaintxt);
return $plaintext;
}
private static function urs($a, $b)
{
$a &= 0xffffffff;
$b &= 0x1f; // (bounds check)
if ($a & 0x80000000 && $b > 0) { // if left-most bit
set
$a = ($a >> 1) & 0x7fffffff; // right-shift one
bit & clear left-most bit
$a = $a >> ($b - 1); // remaining right-shifts
} else { // otherwise
$a = ($a >> $b); // use normal right-shift
}
return $a;
}
}

3. Enkripsi dan dekripsi soal


Enkripsi :
$key = mysqli_fetch_array(mysqli_query($mysqli, "SELECT
key_soal FROM ujian WHERE id_ujian = '$_POST[id]'"));
if(!empty($key[key_soal])){
$soalEnc =
AesCtr::encrypt($_POST[soal],$key[key_soal],256);
$p1Enc =
AesCtr::encrypt($_POST[p1],$key[key_soal],256);
$p2Enc =
AesCtr::encrypt($_POST[p2],$key[key_soal],256);
$p3Enc =
AesCtr::encrypt($_POST[p3],$key[key_soal],256);
$p4Enc =
AesCtr::encrypt($_POST[p4],$key[key_soal],256);
$kunciEnc =
AesCtr::encrypt($_POST[kunci],$key[key_soal],256);

mysqli_query($mysqli, "INSERT INTO soal(id_ujian, soal,


pilihan_1, pilihan_2, pilihan_3, pilihan_4, kunci)
VALUES('$_POST[id]', '$soalEnc', '$p1Enc',
'$p2Enc', '$p3Enc', '$p4Enc', '$kunciEnc')");
82

Dekripsi :
if(!empty($key[key_soal])){
$tgl=tgl_indo($r[tanggal]);
$soal =
AesCtr::decrypt($r[soal],$key[key_soal],256);
$kunci =
AesCtr::decrypt($r[kunci],$key[key_soal],256);
echo "
<tr>
<td width='20'>$no</td>
<td><p style='font-weight:
bold'>$soal</p></td>
<td>
<ol type='A'>";
for($i=1; $i<=4; $i++){
$kolom = "pilihan_$i";
$jawaban =
AesCtr::decrypt($r[$kolom],$key[key_soal],256);
if($kunci==$i){
echo "<li
style='font-weight: bold'>$jawaban</li>";
}else{
echo "<li>$jawaban</li>";
}
}
echo"
</ol>
</td>";
}

Anda mungkin juga menyukai