PERANCANGAN SISTEM VERIFIKASI KEANGGOTAAN DENGAN KARTU CERDAS NIRKONTAK BERBASIS ARDUINO MEGA 2560 Reza Al Kautsar Lubis(1), Soeharwinto(2) Konsentrasi Teknik Komputer, Departemen Teknik Elektro Fakultas Teknik Universitas Sumatera Utara (USU) Jl. Almamater, Kampus USU Medan 20155 INDONESIA e-mail:
[email protected]
Abstrak Penelitian ini membahas tentang bagaimana melindungi hak-hak anggota suatu organisasi berdasarkan status keanggotaannya karena hak-hak yang disediakan oleh organisasi tentunya hanya diperuntukkan bagi anggota organisasi saja. Hak-hak anggota yang disediakan oleh organisasi pada umumnya adalah hak untuk mendapatkan berbagai izin akses, hak untuk mendapatkan izin penggunaan fasilitas serta hak untuk mendapatkan pelayanan. Kurangnya tingkat keamanan dalam suatu organisasi dapat menyebabkan hak-hak tersebut digunakan oleh orang asing yang bukan bagian dari anggota. Penggunaan kartu cerdas nirkontak sebagai kartu identitas anggota dapat menjadi alternatif untuk mengatasi masalah tersebut. Kartu cerdas nirkontak menyimpan serangkaian serial ID yang unik. Untuk memastikan pemilik kartu tersebut adalah pemilik aslinya maka ditambahkan sebagian citra sidik jari yang dibaca dengan modul ZFM-20 untuk kemudian ditanamkan didalam kartu. Sidik jari dijadikan sebagai objek permanen kepemilikan kartu. Proses menanamkan informasi sebagian citra sidik jari menggunakan Arduino kit. Dari hasil pengujian pembacaan sidik jari menggunakan Arduino kit ditemukan bahwa data hasil pembacaan sidik jari tidak lengkap karena hanya ditemukan 1 data packet dari yang seharusnya ditemukan adalah 287 data packet.
Kata Kunci: Arduino, RFID, kartu MIFARE, finger sprint
bergabung sebagai anggota organisasi. Untuk mengatasi hal tersebut diperlukan sistem yang bertugas untuk melindungi hak-hak anggota dengan memverifikasi status keanggotaannya sehingga diketahui apakah orang tersebut terdaftar sebagai anggota organisasi atau tidak. Sistem verifikasi keanggotan ini mengguna-kan kartu cerdas nirkontak (contactless smart card). Kartu ini menyimpan serangkaian serial ID yang dapat dijadikan sebagai objek verifikasi. Kartu ini diasumsikan sebagai kartu identitas anggota yang didalamnya menyimpan beberapa informasi anggota tersebut misalnya sidik jari. Informasi ini dapat digunakan untuk memastikan pemilik kartu adalah pemilik yang sebenarnya.
1. Pendahuluan Suatu organisasi atau lembaga memiliki anggota sebagai unsur organisasinya. Anggota memiliki hak dan tanggung jawab yang harus dipenuhi. Tanggung jawab anggota adalah menjalankan tugas yang telah diberikan oleh organisasi. Sedangkan hak yang didapatkan oleh anggota diantaranya adalah mendapatkan berbagai izin akses, mendapatkan izin penggunaan fasilitas serta mendapatkan pelayanan dari organisasi. Semakin besar suatu organisasi maka semakin banyak jumlah anggota organisasi tersebut. Anggota organisasi akan fokus untuk melakukan pekerjaannya masing-masing sesuai dengan jam kerja yang telah ditetapkan. Banyaknya kesibukan kerja yang berlangsung dalam organisasi akan menyebabkan tingkat konsentrasi anggota terhadap pekerjaannya meningkat. Hal tersebut memungkin-kan anggota satu dengan lainnya tidak saling mengenal sehingga tidak menutup kemungkinan anggota tidak mengetahui bahwa ada orang lain yang bukan anggota telah
2. Studi Pustaka 2.1 Radio Frequency Identification (RFID) RFID adalah teknologi yang menggunakan gelombang radio dengan frekuensi tertentu untuk mengenali suatu benda. RFID terdiri dari dua komponen utama yaitu tag dan reader. RFID tag tersusun atas mikroprosesor, memori
– 88 –
copyright@ DTE FT USU
SINGUDA ENSIKOM
VOL.11 NO.30/MEI 2015
dan antena. Memori berguna menyimpan informasi. Antena berguna memungkinkan mikroprosesor dapat menerima atau mengirim data dari atau ke RFID reader secara nirkabel dalam jangkauan yang lebih jauh[1]. Baik RFID tag ataupun RFID reader masing-masing harus memiliki saluran frekuensi yang sama dan juga harus berkomunikasi dalam standar protokol yang sama pula sehingga keduanya dapat saling bertukar informasi. Komponen dasar sistem RFID dapat dilihat pada Gambar1.
2.3 Biometrik Sidik Jari Biometrik sidik jari merupakan teknologi biometrik dengan karakteristik fisik berupa sidik jari. Jenis biometrik ini populer digunakan karena memiliki performansi serta keunikan yang baik[3]. Selain itu sidik jari bersifat permanen seumur dengan hidup seseorang. Sidik jari dapat diklasifikasikan berdasarkan pola guratannya. Pola guratan pada sidik jari berbentuk pola bukit (ridge) atau lembah (valley).
3. Metodologi Penelitian 3.1 Perancangan Sistem Secara umum sistem ini dirancang untuk memverifikasi seorang anggota suatu organisasi atau lembaga. Sehingga melalui sistem ini akan diketahui apakah anggota organisasi tersebut terdaftar sebagai anggota yang sah atau tidak. Secara umum blok diagram sistem dapat dilihat pada Gambar 3.
Gambar 1. Sistem RFID[1]
2.2 Kartu Cerdas (Smart Card) Kartu cerdas (Smart Card) merupakan sebuah kartu yang didalamnya tertanam IC. Kartu cerdas juga dikenal dengan sebutan Integrated Circuit Card (ICC). Dimensi fisik kartu cerdas telah ditentukan didalam ISO IEC 7810 kartu cerdas menngunakan standar ukuran ID-1. Standar ukuran kartu tersebut dapat dilihat pada Gambar 2. Menurut cara transmisi datanya kartu cerdas terbagi menjadi dua yaitu kartu cerdas kontak (contact) dan nirkontak (contactless). Kartu cerdas kontak memiliki area konduktor yang harus kontak ke reader ketika ingin melakukan komunikasi. Sedangkan pada kartu cerdas nirkontak, kartu dapat berkomunikasi dengan reader tanpa harus melakukan kontak langsung dengan jarak tertentu.
Gambar 0. Blok Diagram Sistem
Sistem ini diawali dengan proses registrasi kemudian proses verifikasi. Perangkatperangkat yang digunakan pada sistem ini diantaranya adalah RFID tag, RFID reader, finger print scanner, Arduino sebagai host dari RFID reader dan finger print scanner selanjutnya komputer sebagai tempat pengolahan data dan informasi verifikasi.
3.2 Spesifikasi Sistem Protokol RFID yang digunakan mengacu kepada standar ISO/IEC 14443. Standar tersebut merupakan standar yang disediakan oleh badan standarisasi ISO untuk proximity card dengan jarak baca sekitar 0–10cm dan bekerja pada frekuensi 13.56 MHz (HF) [4]. Komponen RFID yang digunakan terdiri atas dua perangkat utama yaitu RFID reader dan tag (card). RFID tag memiliki serial ID dan jenis serial ID yang digunakan adalah jenis Double Size UID (7 byte hexa). Diantara 7 byte data tersebut mengandung 2 byte bersifat unik[5]. Catu daya yang digunakan oleh perangkat
Gambar 0. Standar Ukuran Identification Card[2]
– 89 –
copyright@ DTE FT USU
SINGUDA ENSIKOM
VOL.11 NO.30/MEI 2015
modul RFID reader bersumber dari pin 3.3V Arduino. Sedangkan Arduino sendiri mendapat catu daya dari komputer yang terhubung melalui kabel USB. Fungsi tambahan yang ditambahkan didalam sistem ini ialah fungsi finger print capturing dengan menggunakan modul sensor finger print (finger print scanner). Modul sensor finger print yang digunakan adalah jenis optikal. Fungsi finger print capturing ini diperlukan untuk membaca citra sidik jari anggota, data citra tersebut nantinya akan disimpan di RFID tag. Hal ini bertujuan agar RFID tag tersebut memiliki objek identitas permanen dari pemilik asli RFID tag tersebut. Detail spesifikasi sistem yang dirancang adalah sebagai berikut: Frekuensi kerja RFID : 13.56 MHz Standar dan protokol RFID : ISO/IEC 14443A Catu daya : +5V melalui USB Jarak baca : Up to 6 cm Kecepatan baca : 6 ms Serial number : UID (UniqueIdentifier) Serial number size : Double size UID (7 byte length) Jenis sensor sidik jari : Optikal Jalur Komunikasi PC ke Arduino : USB
dan RFID tag diperlukan juga perangkat finger print scanner. Perangkat ini digunakan untuk menangkap sebagian citra sidik jari anggota organisasi. Perangkat finger print scanner yang digunakan adalah jenis ZFM-20. Komunikasi antara modul RFID reader (MF522-AN) dengan Arduino menggunakan komunikasi serial SPI. Konfigurasi pin yang digunakan modul RFID reader menggunakan pin digital 50 sebagai jalur MISO, 51 sebagai jalur MOSI, 52 sebagai jalur SCK, 53 sebagai jalur SS dan 42 sebagai jalur Reset Hardware. Sedangkan komunikasi antara finger print scanner (ZFM-20) dengan Arduino menggunakan komunikasi serial UART. Pin 10 dan pin 11 Arduino terhubung dengan pin RX dan pin TX pada finger print scanner. 3.4 Perancangan Perangkat Lunak Perangkat lunak yang dirancang pada sistem ini, bekerja pada sisi komputer dan bekerja pada sisi Arduino. Perangkat lunak yang digunakan pada sisi komputer adalah Matlab dan perangkat lunak yang digunakan pada sisi Arduino adalah program tertanam yang dibuat dengan bahasa pemrograman C++ melalui IDE Arduino. Langkah kerja dari sistem yang dirancang mengacu kepada diagram usecase yang dapat dilihat pada Gambar 4.
3.3 Perancangan Perangkat Keras Perancangan perangkat keras dilakukan dengan mengintegrasikan beberapa modul perangkat keras. Beberapa modul perangkat keras yang digunakan diantaranya adalah Arduino, modul RFID reader, finger print scanner dan komputer. Pada sistem ini digunakan RFID reader dengan tipe MF522-AN. RFID reader ini diproduksi dengan bahan dasar contactless reader IC MFRC522. MFRC522 ini adalah sebuah contactless reader IC produksi NXP yang mendukung untuk pembacaan kartu Mifare dengan standard 14443 A. Selanjutnya untuk RFID tag yang digunakan harus berada pada frekusensi dan standar protokol yang sama dengan RFID readernya. Ditinjau dari kemudahan dalam memahami sistem pada RFID tag serta keunikan ID yang dimilikinya maka digunakan RFID tag jenis MIFARE Ultralight. Selain komponen RFID reader
Gambar 4. Diagram usecase
Program yang dibuat pada sistem ini mengacu kepada fungsi-fungsi dan pustakapustaka yang telah disediakan oleh perangkat lunak. Pustaka ini akan membantu saat membuat program (coding). Diagram alir keseluruhan perancangan perangkat lunak sistem ini dapat dilihat pada Gambar 5.
– 90 –
copyright@ DTE FT USU
SINGUDA ENSIKOM
VOL.11 NO.30/MEI 2015 pengaksesan isi(content) EEPROM pada alamat 0000 h dan 0001 h. Kedua alamat ini menyimpan alamat selanjutnya yang akan ditulis ke EEPROM (next address). Perlu diketahui bahwa susunan organisasi memori EEPROM (dimulai dari 0000 h) yang pertama adalah nilai next address (2byte), UID anggota ke-n (7 byte), finger print anggota ke-n (80byte), UID anggota ke-n+1 (7 byte)...dst. EEPROM berisi UID serta citra sidik jari setiap pemilik kartu. Citra sidik jari yang digunakan berukuran 128 byte. Citra sidik jari tersebut disimpan secara terpisah 80 byte disimpan di EEPROM dan 40 byte disimpan di kartu. Program dilanjutkan dengan pembacaan serial port secara berulang oleh Arduino. Disini Arduino menunggu karakter khusus yang mengisyaratkan aksi tertentu misalkan jika karakter yang terbaca adalah karakter “^” maka berarti tombol “Registrasi” telah ditekan pada layar komputer sehingga Arduino akan mengeksekusi fungsi scanID() dan scanFinger(). Namun jika karakter yang terbaca adalah karakter “#” maka berarti tombol “Verifikasi” yang telah ditekan sehingga Arduino akan mengeksekusi fungsi scanID() dan serial ID tersebut akan dibandingkan dengan serial ID yang telah tersimpan di database.
4. Hasil dan Pembahasan 4.1 Pengujian Pembacaan UID oleh IDE Arduino Pada pengujian ini Arduino akan membaca UID melalui MF522-AN. Setiap kartu digunakan sebagai kartu identitas anggota. Hasil pembacaan dengan sepuluh kartu Mifare Ultralight dapat dilihat pada Tabel 1. Tabel 1. Hasil Pengujian Pembacaan UID oleh IDE Arduino
Gambar 5. Diagram Alir Sistem
Sistem ini diawali dengan inisialisasi perangkat kemudian akan dilakukan
– 91 –
copyright@ DTE FT USU
SINGUDA ENSIKOM
VOL.11 NO.30/MEI 2015 Setiap pengiriman data akan diawali dengan data packet dan diakhiri dengan end of data packet. Setiap packet berukuran 139 byte. Jika diuraikan 139 byte packet tersebut berisi 2byte header, 4 byte address, 1 byte package identifier, 2 byte length, 128 byte data sidik jari dan 2byte checksum. Data packet akan dikirim sebanyak 287 kali kemudian diikuti 1 kali end data packet pada kiriman terakhir sehingga total data yang diterima Arduino adalah 288 x 139byte.
4.2 Pengujian Pembacaan UID oleh Matlab Pengujian ini dilakukan untuk memastikan UID yang telah diterima Arduino dapat sampai ke komputer dengan baik. Hasil pengujiannya dapat dilihat pada Tabel 2. Tabel 2. Hasil Pengujian Pembacaan UID oleh Matlab
4.5 Pembahasan Pengujian pertama yang dilakukan adalah pengujian pembacaan UID kartu oleh Arduino, dari pengujian tersebut UID berhasil terbaca pada jarak 6cm dengan waktu pembacaan 1ms (14448~1465 µs). Pengujian yang dilakukan berikutnya adalah pengujian pembacaan UID oleh Arduino yang langsung diteruskan ke komputer, UID berhasil terbaca pada jarak 6cm dengan waktu pembacaan 6ms (5666~6101 µs). Selanjutnya pada pengujian baca tulis kartu ditemukan bahwa kartu berhasil untuk ditulis dan dibaca. Pengujian selanjutnya adalah pengujian pembacaan sidik jari. Pengujian ini dilakukan dengan menggunakan Arduino dan Matlab. Dari pengujian pembacaan sidik jari menggunakan Arduino diketahui bahwa banyaknya data yang dibaca dari finger print scanner tidak konsisten dan data packet hanya ditemukan adalah sebanyak 1 paket dan juga tidak ditemukan end of data packet. Sehingga perbandingan antara ukuran citra yang diacu pada datasheet yaitu sebesar 288x256 pixel dengan ukuran citra hasil pembacaan yang telah didecode yaitu sebesar 1x256 adalah 1 : 0.00347222. Dengan kata lain ukuran citra yang dapat dibaca adalah sebesar 0.0035% dari ukuran citra yang dinginkan. Pengujian berikutnya adalah pembacaan sidik jari menggunakan menggunakan komputer dengan bantuan perangkat lunak Matlab. Dari pengujian tersebut diketahui bahwa data packet yang ditemukan adalah sebanyak 287 paket dan disertai dengan 1 end of data packet. Dari hasil pengujian ini ditemukan bahwa perbandingan antara ukuran citra yang diinginkan dengan ukuran citra hasil pembacaan yang telah didecode adalah sama yaitu 1 : 1. Hal ini menunjukkan bahwa pembacaan sidik jari oleh komputer melalui Matlab memiliki hasil pembacaan yang lebih valid.
4.3 Pengujian baca dan Tulis Memori Kartu Pengujian ini dilakukan untuk memastikan memori kartu berhasil ditulis dan dibaca. Percobaan ini dilakukan dengan memanfaatkan pustaka MFRC522.h. Pada percobaan ini Arduino akan membaca isi (content) memori kartu sekarang kemudian menulis memori kartu tersebut dimulai dari page 3 hingga 15 dengan nilai ‘AA’. Selanjutnya memori kartu akan dibaca kembali untuk mengetahui penulisan ke memori kartu telah berhasil dilakukan. 4.4 Pengujian Pembacaan Sidik Jari Menggunakan Arduino dan Matlab Pengujian ini dilakukan dengan membaca sidik jari melalui Arduino dan membaca sidik jari tanpa melalui Arduino artinya ZFM-20 terhubung langsung ke komputer melalui serial to USB converter. Citra sidik jari (grayscale) yang dibaca oleh ZFM-20 berukuran 288x256 pixel (73728 byte) namun perlu diketahui data citra tersebut akan diencode terlebih dahulu oleh ZFM-20 sebelum dikirim ke Arduino atau komputer. Encoding dilakukan dengan menggabungkan 4bit MSB setiap byte yang berdekatan menjadi menjadi satu byte baru. Sehingga data sidik jari yang diterima akan berukuran 288x128. Misalnya urutan byte dari citra yang seharusnya terbaca adalah F0,F0,E0,10,E0, 80… sedangkan yang akan diterima nantinya adalah hasil encoding sehingga yang terbaca adalah FF,E1,E8,… . Pengujian ini dilakukan dengan baudrate default ZFM-20 yaitu 57600bps.
– 92 –
copyright@ DTE FT USU
SINGUDA ENSIKOM
VOL.11 NO.30/MEI 2015
Pengujian pembacaan sidik jari melalui Arduino juga dilakukan dengan memvariasikan kecepatan baudrate. Hal tersebut mempengaruhi banyaknya data sidik jari yang dapat dibaca oleh Arduino namun data yang terbaca masih tidak valid dan tidak konsisten.
5.2 Saran Adapun saran yang disampaikan penulis untuk pengembangan penelitian adalah sebagai berikut: 1. Pada pengembangannya penggunaan sistem operasi dan perangkat lunak yang berbasis open source dapat meminimalkan biaya. 2. Untuk menambah jumlah anggota organisasi yang dapat diverifikasi dengan sistem ini maka sistem dapat diperluas dengan menambahkan memori eksternal.
5. Kesimpulan dan Saran 5.1 Kesimpulan Berdasarkan hasil pembahasan maka diperoleh kesimpulan sebagai berikut : 1. Sistem yang dirancang dapat membaca UID dan memori kartu Mifare Ultralight. Verifikasi anggota dinyatakan berhasil apabila UID yang terbaca oleh komputer dapat dicocokkan dengan UID yang tersimpan di database. 2. Kecepatan pembacaan UID kartu oleh komputer adalah 6ms (5666~6101 µs). Kecepatan pembacaan tersebut cukup memadai untuk spesifikasi sistem yang telah dirancang. 3. Jumlah anggota maksimal yang dapat didaftarkan ke sistem ini hanya sebanyak 47 orang karena kapasitas EEPROM yang tersedia di Arduino sebesar 4KB. 4. Pembacaan citra sidik jari langsung ke komputer tanpa perantara Arduino menghasilkan data yang lebih konsisten dan valid daripada menggunakan perantara Arduino. 5. Kecepatan baudrate mempengaruhi banyaknya data yang dapat dibaca oleh Arduino. Kecepatan yang paling optimal diperoleh pada kecepatan 9600 bps data yang dibaca mencapai 9851 byte.
Untuk pengembangan selanjutnya akan lebih baik untuk mengubah arsitektur sistem agar sistem dapat berjalan dengan baik misalnya dengan membypass langsung komunikasi dari finger print scanner ke komputer.
6. Referensi [1] P.Sweney II, RFID for Dummies, Indiana: Willey Publishing, 2005. [2] Wikipedia, 24 November 2014. [Online]. Available:http://en.wikipedia.org/wiki/ISO /IEC_7810.[Diakses2014]. [3] D. Maltoni, D. Maio, A. K. Jain dan S. Prabkahar, Handbook of Fingerprint Recognition, 2nd, Springer Press. [4] Finkenzeller dan Klaus, RFID Handbook Fundamentals And Applications In Contactless Smart Cards, Radio Frequency Identification And Near-Field Communication, Jhon Willey & Son, 2010. [5] NXP, 2 Oktober 2013. [Online].Available: http://www.nxp.com/documents/applicatio n_note/AN10927.pdf. [Diakses2014].
– 93 –
copyright@ DTE FT USU