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