Tugas akhir ini dibuat sebagai solusi untuk mengurangi pemalsuan sertifikat dengan menyediakan sistem untuk menghasilkan sertifikat otentik yang dapat divalidasi. Akhir kata, peneliti mengucapkan terima kasih kepada semua pihak atas bantuannya dalam menyelesaikan tugas akhir ini. Puji syukur kehadirat Allah SWT atas rahmat-Nya sehingga peneliti dapat menyelesaikan tugas akhir ini.
Ainezzahira atas bantuannya selama ini, baik materil maupun moril, sehingga peneliti dapat menyelesaikan tugas akhir ini. Ingat, peneliti mohon maaf apabila terdapat kekeliruan atau kekeliruan dalam tugas akhir ini. Untuk mencapai tujuan penelitian ini, sistem penulisan yang disiapkan dalam tugas akhir ini adalah sebagai berikut :.
PENDAHULUAN
- Latar Belakang
- Rumusan Masalah
- Batasan Masalah
- Tujuan Penelitian
- Manfaat Penelitian
- Sistematika Penulisan
Dengan dikembangkannya sistem ini diharapkan para penyelenggara acara dapat lebih memperhatikan keaslian sertifikat dan piagam yang akan diterbitkan. Sistem ini juga diharapkan dapat digunakan secara luas pada acara-acara akademik maupun non-akademik, sehingga memudahkan penggunaan sertifikat yang perlu melalui proses digitalisasi.
TINJAUAN PUSTAKA
Penelitian Terkait
Qashlim & Hasruddin (2015) menggunakan kode QR untuk mempersingkat proses pengaksesan halaman identitas siswa di forlap.dikti.go.id, sehingga siswa dapat dengan cepat mengakses halaman identitasnya. Tujuan penggunaan beberapa generator adalah untuk membandingkan hasil decoding kode QR yang dihasilkan oleh masing-masing generator. Alhasil, hasil decoding kode QR, dengan gambar kode QR yang berbeda-beda tiap generatornya, semuanya mengarah ke satu URL.
Musthofa, Mutrophin, & Murtadho (2016) membuat aplikasi berbasis web untuk mengautentikasi dokumen menggunakan kode QR.
Landasan Teori
- QR Code
- Node.js dan Node Package Manager (NPM)
- Express.js
- MongoDB
- Bootstrap
- Papaparse
- Library QR Code
- Pengujian Black Box
Setiap versi simbol kode QR memiliki kapasitas data yang sesuai dengan jumlah data, jenis karakter dan tingkat koreksi kesalahan. Node.js adalah platform sisi server yang dibangun dari Mesin Javascript Google Chrome (Mesin V8). Node.js dikembangkan oleh Ryan Dahl pada tahun 2009, dan versi terbaru Node.js saat ini adalah v10.12.0.
Node.js adalah sumber terbuka dan dapat digunakan di seluruh platform untuk mengembangkan aplikasi sisi server dan jaringan. Aplikasi Node.js ditulis dalam Javascript dan dapat berjalan bersamaan dengan runtime Node.js di OS X, Microsoft Windows, dan Linux. Registri NPM adalah kumpulan umum paket kode sumber terbuka untuk Node.js, aplikasi web front-end, aplikasi seluler, bot, router, dan berbagai kebutuhan komunitas JavaScript lainnya.
Express adalah kerangka kerja sumber terbuka yang dibangun berdasarkan fitur Node.js untuk menyediakan fungsionalitas yang mudah digunakan yang memenuhi kebutuhan kasus penggunaan server web Node.js. Untuk menggunakan Express, Anda harus memastikan terlebih dahulu bahwa Node.js sudah terinstall, kemudian install Express pada folder yang diinginkan melalui command line dengan perintah npm install express --save. MongoDB merupakan teknologi database berorientasi dokumen atau biasa disebut NoSQL, berbeda dengan database relasional (SQL).
Bootstrap adalah pustaka kerangka CSS yang dibuat khusus untuk pengembangan web front-end. Node.js menyediakan perpustakaan sumber terbuka untuk menghasilkan kode QR melalui NPM.
METODOLOGI PENELITIAN
Tahapan Penelitian
- Kebutuhan Non Fungsional
- Kebutuhan Fungsional
- Pemodelan Data
- Pemodelan Use Case
Sistem ini akan membantu pengguna untuk menghasilkan sertifikat dengan berbagai desain yang disiapkan dalam sistem. Pengguna bisa mendapatkan desain sertifikat dalam bentuk file PDF yang dapat diunduh dari sistem, dan datanya akan disimpan di server, sehingga sertifikat dapat diunduh kapan saja. Tipe pengguna yang akan menggunakan sistem ini adalah penyelenggara acara (organizer) yang ingin membuatkan sertifikat untuk seluruh peserta, peserta yang mengikuti acara dan pengguna umum tanpa login yang akan memvalidasi sertifikat dengan memindai kode QR berisi URL yang akan dituju. halaman validasi.
Dalam proses memasukkan informasi peserta, sistem secara otomatis akan menghasilkan kode QR untuk setiap peserta. Setelah informasi acara dan peserta disimpan, penyelenggara dapat mengambil file sertifikat untuk setiap peserta. Pengguna tidak dapat login ke sistem sebagai peserta karena keterkaitannya dengan acara, dimana tidak akan ada peserta jika acara tidak didaftarkan.
Pengguna umum adalah pengguna yang dapat menggunakan sistem tanpa registrasi, karena pengguna umum hanya dapat memindai kode QR untuk keperluan validasi sertifikat.
Perancangan Sistem
- Diagram Class
- Diagram Sequence
- Perancangan Interface
- Halaman Utama
- Halaman Layouting
Struktur data pada kelas Event akan digunakan untuk menyimpan data event, kelas Sertifikat digunakan untuk menyimpan data sertifikat dan kelas Template digunakan untuk menyimpan data template. Kelas User dan kelas Event dihubungkan dengan metode referensi, dimana atribut userId di kelas Event akan mereferensikan atribut userId di kelas User. Kelas Event dan kelas Sertifikat dihubungkan dengan metode referensi, di mana atribut eventId di kelas Sertifikat merujuk ke atribut eventId di kelas Event.
Tujuannya adalah untuk menggabungkan data event dan sertifikat sehingga data tersebut dapat diolah untuk menyajikan informasi pada halaman validasi dan sertifikat. Kedua kelas tersebut dihubungkan dengan hubungan satu-ke-banyak, artinya suatu peristiwa memiliki banyak sertifikat. Kemudian kelas Pengguna dan Sertifikat dihubungkan bersama menggunakan metode referensi, di mana atribut ownId di kelas Sertifikat mereferensikan atribut userId.
Kedua kelas ini dihubungkan melalui hubungan satu-ke-banyak, artinya pengguna dapat memiliki banyak sertifikat. Demikian pula, kelas Event dan kelas Template dihubungkan dengan metode referensi, dimana atribut template di kelas Event mereferensikan atribut templateId. Pada halaman dashboard, penyelenggara dapat membuat acara dengan menekan tombol Buat Acara lalu memasukkan detail acara pada formulir yang sesuai.
Setelah acara dibuat, penyelenggara dapat memasukkan informasi peserta dalam bentuk file CSV di halaman acara. Sistem kemudian mem-parsing file CSV tersebut menjadi JSON agar dapat disimpan ke database. Pada halaman ini penyelenggara akan membuat sertifikat menggunakan template yang disediakan di sistem.
Pengujian Black Box
Sistem akan menampilkan halaman dashboard dan event yang dibuat akan muncul pada bagian Event Created. Sistem akan memuat ulang halaman acara dan kemudian akan muncul tabel peserta sesuai dengan isi file CSV. Sistem akan menampilkan halaman dashboard dan pengguna dapat mendownload file sertifikat melalui halaman event atau halaman sertifikat.
Ketika pengguna mengunjungi suatu website, sistem akan menerima request berupa HTTP GET, kemudian mengirimkan respon berupa tampilan halaman beranda. Ketika user memasukkan password pada kedua kolom tersebut maka sistem akan membandingkan kedua password tersebut, jika tidak sama maka akan muncul pesan “Password tidak cocok”. Email pengguna tidak boleh sama, sehingga sebelum menyimpan data, sistem akan memeriksa data email yang telah digunakan.
Jika alamat email dan kata sandi yang dimasukkan benar, sistem akan menyimpan sesi ke database. Sistem akan memuat ulang halaman acara dan kemudian akan muncul tabel peserta berdasarkan isi file CSV. Sistem menampilkan halaman dashboard dan pengguna dapat mengunduh file sertifikat dari halaman acara atau halaman sertifikat.
Berdasarkan hasil pengujian pada Tabel 4.2, sistem secara fungsional memperoleh hasil yang diharapkan, yaitu memberikan kemudahan bagi pengguna untuk mendapatkan file sertifikat dalam format PDF, dan kode QR yang berisi URL untuk validasi tertanam dalam file ini. . halaman. Pengguna hanya perlu memindai kode QR, kemudian sistem langsung membuka halaman berisi informasi keaslian sertifikat.
PEMBAHASAN
Analisis Alur Kerja Program
- Halaman Utama (Home)
- Halaman Signup
- Halaman Login
- Halaman Dashboard
- Halaman Create Event
- Halaman Event
- Halaman Layout
- Halaman Sertifikat
Kolom password harus diisi dengan karakter dengan panjang minimal 6 karakter. Jika kata sandi yang dimasukkan kurang dari 6 karakter, sebuah pesan akan muncul. Konfirmasi kata sandi pada halaman ini bertujuan untuk memberikan keyakinan lebih besar kepada pengguna bahwa kata sandi yang dimasukkan benar. Jika pengguna salah memasukkan alamat email dan kata sandi, akan muncul pesan “Alamat email atau kata sandi tidak valid”.
Halaman ini memungkinkan pengguna untuk mengelola acara yang telah dibuat dan diikuti. Pengguna dapat membuat acara dengan menekan tombol "Buat Acara". Mereka kemudian akan diarahkan ke halaman pembuatan acara. Jika pengguna mengklik tombol "Detail" di bagian "Berpartisipasi dalam Acara", mereka akan langsung dibawa ke halaman sertifikat.
Pada Gambar 4.6, pengguna akan diminta untuk memasukkan data dalam bentuk file CSV (Comma Separated Values) untuk menghasilkan sertifikat. Setelah file CSV diunggah maka akan terlihat halaman acara seperti Gambar 4.7, akan muncul tabel berisi nama peserta dan data lainnya. Halaman ini berisikan detail event seperti pada halaman event, bedanya pada halaman ini akan menampilkan form sertifikat yang dimiliki pengguna.
Jika halaman ini dikunjungi oleh pengguna yang login, tombol Muat Sertifikat akan muncul. Pengguna umum dapat mengakses halaman ini dengan memindai kode QR pada sertifikat, namun pengguna umum tidak dapat mengunduh sertifikat.
Analisis Sistem
- Implementasi MongoDB dan Node.js
- MongoDB Atlas dan MongoDB Compass
- Menggunakan Mongoose
- Struktur Dokumen pada MongoDB
- Proses Signup
- Proses Login
- Proses Add Partisipants
- Proses Generate QR Code
Dalam sistem ini, penulis menggunakan Mongoose, sebuah perpustakaan untuk memetakan objek dalam dokumen (Object-Document Mapping). MongoDB Compass adalah GUI untuk MongoDB yang dapat digunakan secara lokal (localhost) atau di cloud. Metode penyematan ini tidak cocok untuk menyematkan data dalam jumlah besar karena akan memperbesar ukuran file dokumen.
Penulis menggunakan perpustakaan Mongoose untuk menyederhanakan penulisan kode sehingga penulisan kode untuk interaksi sistem dengan database menjadi lebih sederhana. Berbeda dengan SQL, MongoDB akan secara otomatis membuat “_id” untuk setiap dokumen berupa string unik dengan panjang 24 karakter. Halaman sertifikat ini berisi informasi mengenai kejadian dan pemilik sertifikat, sehingga dapat digunakan untuk membuktikan bahwa sertifikat tersebut benar-benar milik pengguna.
Penulis menggunakan server lokal untuk mengembangkan sistem, sehingga ketika kode QR dipindai, URL akan merujuk ke nama host dari host lokal. Untuk konfigurasinya, penulis menggunakan koreksi tingkat tinggi yang dapat mentolerir kesalahan pemindaian kode QR hingga 30%, ketik.
Hasil Pengujian Black Box
Lengkapi formulir pendaftaran dengan memasukkan kata sandi yang berbeda pada bagian Kata Sandi dan Konfirmasi Kata Sandi lalu tekan tombol Daftar. Isi formulir login dan masukkan kata sandi 6 karakter yang sama di bagian Kata Sandi dan Konfirmasi Kata Sandi. Isikan pada bagian Tambah Atribut Tanda Tangan untuk menambahkan nama dan posisi tanda tangan, lalu tekan tombol Tambah.
Pengujian pertama dilakukan oleh penulis sendiri dengan menguji sistem sesuai item pengujian yang tertera pada tabel 3.1. Berdasarkan tabel 4.2 terlihat hasil pengujian pertama masih terdapat cacat pada poin 7 dan 8. Pengujian kedua ini dilakukan oleh 5 orang yang berperan sebagai pengguna dengan melakukan langkah pengujian yang sama dengan pengujian pertama dan hasilnya adalah tidak ada kesalahan yang ditemukan.
Pengujian black box ini sesuai dengan skenario yang dijelaskan pada Tabel 3.1, sehingga dapat dikatakan berhasil berdasarkan uraian hasil pada Tabel 4.2. Penyelenggara dan peserta (pemegang sertifikat) dapat memperoleh file sertifikat langsung dari sistem ini. Sistem ini juga memungkinkan penambahan lebih dari satu kolom tanda tangan jika penyelenggara ingin menyiapkan sertifikat untuk ditandatangani. Namun sistem ini hanya dapat menambahkan nama dan jabatan orang yang menandatangani, bukan gambar tanda tangan.
Berdasarkan pengalaman penulis dalam membuat sistem ini, sistem ini perlu lebih ditingkatkan dan didukung dengan fitur-fitur yang lebih interaktif agar dapat digunakan secara maksimal.