Usecase Diagram Perancangan Perangkat Lunak

32 komputer dapat dilihat di layar serial monitor yang telah disediakan oleh IDE Arduino. Komputer menerima data serial dari Arduino melalui perangkat lunak Matlab dengan membaca serial port komputer. Matlab juga digunakan sebagai penampil GUI sederhana. Tampilan GUI sederhana tersebut digunakan pada proses input data anggota, tulis baca data ke database dan pada proses konfirmasi hasil verifikasi. Pada perancangan perangkat lunak iniArduino harus dapat memahami informasi yang dikirim komputer. Untuk itu program yang dibuat pada Arduino dimulai dengan menunggu sinyal informasi dari komputer. Sinyal informasi yang pertama kali diterima oleh Arduino dari komputer adalah berupa karakter alfanurmerik tertentu. Karakter tersebut akan diterjemahkan oleh Arduino sebagai suatu perintah tertentu tergantung dari jenis karakternya. Perintah tersebut dapat diterjemahkan menjadi beberapa instruksi seperti instruksi untuk membaca kartu, menulis kartu atau membaca sidik jari. Sinyal-sinyal perintah tersebut akan digunakan baik saat melakukan registrasi maupun verifikasi.

6.4.1 Usecase Diagram

Diagram usecase ini menjelaskan segala proses yang terjadi pada sistem yang akan dibangun serta relasi antara suatu usecase dengan aktor yang berperan didalam sistem. Dua aktor utama yang berperan adalah anggota dan administrator. Registrasi dilakukan oleh anggota baru sedangkan verifikasi hanya akan dilakukan setelah terdaftar menjadi anggota tetap. Pada tahap registrasi administratorakan menginput data pribadi dari calon anggota. Setelah langkah Universitas Sumatera Utara 33 tersebut dilakukan administrator akan menyediakan kartu anggota kartu cerdas nirkontak dan mentap kartu tersebut ke RFID reader. Setelah ID dari kartu terbaca. Administratormeminta anggota baru untuk menyentuhkan jari jempol kiri ke perangkat finger print scanner. Jari akan dibaca dan citra jari tersebut akan disimpan sebagian ke Arduino dan sebagian lagi ke kartu. Hal ini dimaksudkan untuk memaksimalkan fungsi kerja Arduino sehingga Arduino tidak hanya digunakan untuk membaca perangkat saja namun Arduino juga digunakan sebagai penyimpanan data sidik jari. Penyimpanan tersebut dipisah karena citra yang diterima berkapasitas cukup besar bagi kartu. Setelah registrasi selesai dilakukan artinya anggota baru tersebut telah resmi terdaftar sebagai anggota tetap organisasi. Anggota yang telah menjadi anggota tetap akan melakukan verifikasi dengan kartu identitasnya pada saat yang diperlukan seperti sewaktu ingin mendapatkan izin akses, izin penggunaan fasilitas atau izin dalam mendapatkan pelayanan dari organisasi. Verifikasi dilakukan dengan membaca kartu dan memvalidasi ID yang telah terbaca. Diagramusecase dapat dilihat pada gambar 3.7. Gambar 3.7 Diagram usecase Universitas Sumatera Utara 34 6.4.2 Program Program yang dibuat di sistem ini mengacu kepada fungsi-fungsi dan pustaka-pustaka yang telah disediakan oleh perangkat lunak, baik perangkat lunak pada sisi komputer Matlab ataupun perangkat lunak pada sisi host Arduino. Pustaka Arduino yang digunakan pada sistem ini diantaranya adalah Adafruit_Fingerprint.h, SoftwareSerial.h, EEPROM.h, SPI.h dan MFRC522.h. Pustaka ini akan membantu saat membuat programcoding. Program yang bekerja pada sisi Arduino dan pada sisi komputer harus dibuat dapat saling berinteraksi dengan baik sehingga menjadi suatu sistem yang dapat bekerja secara utuh. Diagram alir keseluruhan perancangan perangkat lunak sistem ini dapat dilihat pada gambar 3.8.Berdasarkan diagram alir tersebut sistem diawali dengan proses inisialisasi. Selain inisialisasi variabel dan konstanta yang digunakan dalam program, inisialisasi juga dilakukan dengan mengkonfigurasi komunikasi antara perangkat sehingga setiap perangkat dapat saling berkomunikasi atau bertukar informasi. Komunikasi yang digunakan dalam sistem ini adalah komunikasi serial. Konfigurasi komunikasi antara Arduino dengan komputer memanfaatkan fungsi serial.begin. Konfigurasi komunikasi serial dilakukan pada Arduino,agar Arduino dapat berkomunikasi dengan perangkat finger print scanner. Konfigurasi ini memanfaatkan fungsi finger.begin.Jenis komunikasi serial yang dikonfigurasi pada Arduino adalah komunikasi jenis UART dan SPI. Komunikasi UART dimanfaatkan untukhubungan antara Arduino dengan komputer dan Arduino Universitas Sumatera Utara 35 dengan finger print scanner sedangkan komunikasi SPI dimanfaatkan untuk hubungan antara Arduino dengan RFID reader. Gambar 3.8 Diagram Alir Sistem Setelah inisialisasi, proses selanjutnya adalah mengakses EEPROM dan membaca isi alamat 0000 h dan 0001 h. Pembacaan ini dilakukan karena kedua alamat ini menyimpan nilai alamat yang akan ditulis ke EEPROM selanjutnya next address. Perlu diketahui bahwa susunan isi EEPROM yang pertama adalah Universitas Sumatera Utara 36 nilai next address 2 byte, UID0 7 byte, citra sidik jari ke-0 80 byte, UID1 7 byte , citra sidik jari ke-1 80 byte, UID2 7 byte dst. EEPROM berisi UID dan citra sidik jari setiap pemilik kartu. Citra sidik jari yang mampu dicapture oleh finger print scanner berukuran 73728 byte 288x256 pixel. Namun dalam penelitian ini hanya menggunakan 128 byte pertama dari citra yang dibaca finger print scanner. Pengambilan nilai 128 ini dikarenakan data packet hanya ditemukan pada pengiriman data paket pertama. Data citra yang berukuran 128 byte tersebut akan disimpan didalam kartu dan sisa nya akan disimpan didalam EEPROM host. Citra sidik jari tersebut disimpan secara terpisah 80 byte disimpan di EEPROM dan 40 byte disimpan di kartu. Organisasi memori EEPROM dan kartu terhadap data UID dan cita sidik jari dapat dilihat pada gambar 3.9. Gambar 3.9Organisasi Memori untuk UID dan Sidik Jari Universitas Sumatera Utara 37 Setelah pembacaan next address maka diketahui dimana alamatyang akan ditulis di EEPROM selanjutnya. Program dilanjutkan dengan pembacaan serial port secara terus menerus. Jika karakter yang terbaca adalah karakter “” berarti tombol “Registrasi”di layar Matlab ditekan. Namun jika karakter yang terbaca adalah karakter “” berarti tombol “Verifikasi” di layar Matlab.Jika ditemukan bahwa karakter “” terbaca makapembacaan serial port kembali dilakukan. Kemudian dicek kembali apakah karakter yang terbaca adalah karakter “”. Jika iyaberarti tombol “Scan ID” ditekan dan fungsi RegisterCard akan di- eksekusi. Jika tidak serial port akan terus menerus dibaca hingga karakter “” terbaca. Setelah fungsi RegisterCardselesai dieksekusi selanjutnya dilakukan kembali pembacaan serial port. Kemudian dicek apakah karakter yang terbaca adalah karakter “”. Jika iya berarti tombol “Scan Finger” ditekan dan fungsi RegisterFingerakan dieksekusi. Jika tidak serial port akan terus menerus dibaca hingga karakter “” terbaca. Pada tahap registrasi, sistem menggunakan dua fungsi utama yaitu fungsi RegisterCard dan RegisterFinger. Fungsi RegisterCard digunakan pada proses pembacaan UID kartu sedangkan fungsi RegisterFinger digunakan untuk pembacaan citra sidik jari. Setelah kedua fungsi tersebut dieksekusi selanjutnya dilakukan proses pembagian terhadap 128 byte data citra tersebut menjadi dua bagian yaitu 80byte dan 40byte. Setelah citra tersebut dibagi maka dilakukan proses penulisan data UID dan 80 byte citra sidik jari ke EEPROM dan 48 byte bagian citra lainya ke kartu. Pada tahap verifikasi sistem menggunakan fungsi VerifyMemberuntuk membaca UID dari kartu identitas anggota. UID tersebut akan diterima oleh Universitas Sumatera Utara 38 komputer lalukomputer akan melakukan pencarian keberadaan UID tersebut dengan membandingkan UID kartu dengan UID yang telah tersimpan di database saat registrasi. Fungsi-fungsiutama yang digunakan untuk kebutuhan perangkat MF522- AN adalah mfrc522.PICC_IsNewCardPresent dan mfrc522.PICC_ReadCardSerial . Fungsi mfrc522.PICC_IsNewCardPresent digunakan untuk mendeteksi keberadaan kartu. Fungsi selanjutnya adalah mfrc522.PICC_ReadCardSerial. Fungsi ini digunakan untuk memilih dan membaca UID kartu. fungsi-fungsi tersebut mengacu kepada standar protokol ISO 1444-3[16] dan standar protokol MIFARE proprietary. Fungsi mfrc522.PICC_IsNewCardPresent adalah fungsi yang digunakan untuk mendeteksi keberadaan kartu. Pada fungsi ini RFID reader MF522-AN akan melakukan polling terhadap RFID tag Mifare Ultralight yang memasuki jangkauan jarak baca RFID reader. Setelah ada kartu yang terdeteksi oleh RFID readerkartu akan berubah keadaan dari keadaan POR Power On Reset memasuki keadaan idle yaitu keadaan dimana kartu siap menerima command REQA sebagai langkah awal proses handshaking. Pengiriman command REQA Request dilakukan oleh modul MF522-AN dengan urutan frame data 7 bit atau yang dikenal dengan short frame dengan data yang dikirim adalah 0x26. Kartu yang menerima REQA akan merespon dengan mengirim sinyal ATQA Answer to Request. ATQA dikirim oleh kartu Mifare Ultralight dalam urutan frame data 2 byte atau yang dikenal dengan standard frame dengan data yang dikirim adalah 0x0044 sebagai tanda bahwa diketahui ada kartu yang merespon. Universitas Sumatera Utara 39 Fungsi yang digunakan berikutnya adalah mfrc522.PICC_ReadCardSerial. Fungsi ini melakukan proses pembacaan UID kartu yaitu menggunakan metode anticollision. Anticollision merupakan metode yang digunakan RFID reader untuk dapat berkomunikasi dengan kartu RFID dari beberapa kartu RFID yaang berada dalam jangkauan jarak baca reader. Fungsi utama metode anticollision ini adalah untuk memilih sebuah kartu RFID yang akan diajak untuk saling berkomunikasi. Anticollision terdiri dari 3 level. Level tersebut dikenal juga dengan CL cascade level. Untuk kartu dengan jenis UID 4 byte hanya akan melaksanakan metode anticollision cukup hingga CL1cascade level 1. Kartu dengan UID 7 byte Mifare Ultralight akan melaksanakan metode anticollision CL1 dan CL2. Kartu dengan UID 10 byte akan melaksanakan metode anticollision CL1,CL2,CL3. Fungsi anticolllision dimulai dengan pengiriman command SEL 0x93 diikuti dengan NVB 0x20 ke Mifare Ultralight. NVB Number Valid Bits memastikan banyaknya data yang dikirim valid. Metode ini mengacu pada standar protokol 14443-3. Paket command ini digunakan untuk melakukan anticollision CL1 cascade level 1. Kemudian kartu akan merespon dengan mengirimkan data berupa 1 byte CT cascade tag dan diikuti dengan 3 byte UID pertama UID0… UID2 serta diikuti 1 byte BCC. CT yang diterima bernilai ‘88’ bermakna UID yang diterima belum sempurna. Sehingga modul akan mengirimkan kembali perintah SEL 0x93’ NVB 0x70 disertai dengan CT, UID0…UID2, BCC, CRC. Perintah tersebut diterima kartu dan kartu meresponnya dengan mengirimkan SAK Select Acknowledge CL1 bernilai 0x04. bermakna diperlukan metode anticollision CL2 cascade level 2. Disini kartu telah memasuki keadaan Universitas Sumatera Utara 40 READY1. CL2 cascade level 2 bertujuan untuk menyempurnakan UID dengan mengakses UID sisanya UID3…UID6. Selanjutnya modul akan mengirim command SEL 0x95 yaitu bertujuan memulai kembali metode anticollision disertai dengan NVB 0x20. Command ini akan diterima kartu dan kartu akan merespon dengan mengirimkan UID kedua UID3…. UID6 diikuti dengan 1 byte BCC. Sempurnanya UID yang diterima modul ditandai dengan diterimanya SAK ‘00’. Untuk fungsi-fungsi yang digunakan untuk keperluan perangkat ZFM-20 adalah finger.getImage dan finger.UpImage. Fungsi finger.getImage berisi perintah dari Arduino ke ZFM-20 untuk mengcapture sidik jari dan fungsi finger.UpImageberisi perintah oleh Arduino ke ZFM-20 untuk mengupload citra sidikke Arduino. Pertukaran data antara Arduino dengan ZFM-20 mengacu kepada beberapa jenis format data paket ZFM-20 ini diantaranyacommand packet, acknowledge packet, data packet dan end of data packet[17]. Fungsi-fungsi Arduino yang digunakan saat berkomunikasi dengan ZFM-20 mengacu kepada format data paket tersebut. Command packet merupakan paket yang dikirimkan ke ZFM-20 yang bertujuan agar perangkat ZFM-20 ini melaksanakan perintah tertentu sesuai dengan kode instruksi yang disisipkan didalam command packet tersebut. Setelah command packet tersebut diterima maka ZFM-20 akan melakukan aksi sesuai kode instruksi yang diberikan. Hasil eksekusi yang dilakukan ZFM-20 akan dikirimkan ke Arduino dalam bentuk acknowledge packet. Acknowledge packet Universitas Sumatera Utara 41 merupakan paket hasil konfirmasi atas eksekusi perintah dari command packet yang telah diberikan. Acknowledge packetberisi kode konfirmasi yang disisipkan didalam Acknowledge packet tersebut. Arduino akan membaca kode konfirmasi tersebut dan dari kode konfirmasi tersebut dapat dilihat apakah eksekusi command packet berhasil dilakukan atau tidak.Command packet dan acknowledge packetmemiliki perbedaan dengan data packet dan end of data packet yaitu pada jenis data yang disisipkan pada paketnya.Pada data packetdan end of data packetisi content yang disisipkan pada paket ini bukan berupa kode instruksi atau kode konfirmasi namun serangkaian data sidik jari sepanjang 128 byte default. Data packet akan dikirim sebanyak 287 kali dan ditutup dengan 1 end of data packet. Universitas Sumatera Utara 42 7 BAB IV IMPLEMENTASI DAN PENGUJIAN

7.1 Implementasi