• Tidak ada hasil yang ditemukan

Master Slave

PERANCANGAN SISTEM

6.4 Perancangan Perangkat Lunak

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

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.

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 program(coding).

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

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

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.

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 RegisterCard()selesai dieksekusi selanjutnya dilakukan kembali pembacaan serial port. Kemudian dicek apakah karakter yang terbaca adalah karakter “@”. Jika iya berarti tombol “Scan Finger” ditekan dan fungsi RegisterFinger()akan 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 VerifyMember()untuk membaca UID dari kartu identitas anggota. UID tersebut akan diterima oleh

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 adalahmfrc522.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.

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 CL1(cascade 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

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.UpImage()berisi 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

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.

Dokumen terkait