PERANCANGAN SISTEM VERIFIKASI KEANGGOTAAN
DENGAN KARTU CERDAS NIRKONTAK BERBASIS
ARDUINO MEGA 2560
1 Diajukan untuk memenuhi salah satupersyaratandalam
2menyelesaikan pendidikan sarjana(S-1) padaDepartemen Teknik Elektro 3 Sub Konsentrasi Sistem Pengaturan dan Komputer
Oleh
DEPARTEMEN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS SUMATERA UTARA
MEDAN
2015
LEMBAR PENGESAHAN TUGAS AKHIR
PERANCANGAN SISTEM VERIFIKASI KEANGGOTAAN DENGAN KARTU CERDAS NIRKONTAK BERBASIS
ARDUINO MEGA 2560 Oleh :
1. Ketua Penguji : Ir. T. Ahri Bahriun, M.Sc. ………. REZA AL KAUTSAR LUBIS
090402101
Tugas Akhir ini diajukan untuk melengkapi salah satu syarat untuk mememperoleh gelar Sarjana Teknik pada
DEPARTEMEN TEKNIK ELEKTRO FAKULTAS TEKNIK
UNIVERSITAS SUMATERA UTARA MEDAN
Sidang pada tanggal 18 bulan Februari tahun 2015 di depan Penguji:
2. Anggota Penguji : Ir. Kasmir Tanjung, M.T. ……….
Disetujui oleh: Pembimbing,
SOEHARWINTO, S.T., M.T. NIP : 197105272000031001
Diketahui oleh:
Ketua Departemen Teknik Elektro FT USU,
Pada umumnya suatu organisasi memberikan hak-hak khusus yang
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 anggota. Untuk mengatasi hal tersebut maka dibuatlah sistem yang
bertujuan untuk melindung hak-hak anggota berdasarkan
keanggotaannya.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
kitditemukan bahwa data hasil pembacaan sidik jari tidak lengkap karena hanya
ditemukan 1 data packet dari yang seharusnya ditemukan adalah 287data packet.
Kata Kunci :
KATA PENGANTAR
Puji syukur senantiasa penulis ucapkan kepada Allah SWT yang telah
memberikan kesempatan bagi penulis untuk dapat kiranya menyelesaikan
penulisan tugas akhir ini, yang merupakan salah satu syarat untuk mendapatkan
gelar kesarjanaan.Kemudian shalawat dan salam penulis sampaikan kepada
junjungan kita Nabi besar Muhammad SAW yang selalu menjadi inspirasi penulis
sekaligus menjadi panutan bagi setiapumat muslim.
Penulis juga bersyukur kepada Allah SWT karena telah dilahirkan di
tengah-tengah keluarga yang baik.Tugas akhir ini penulis persembahkan kepada
keluarga,khususnya kedua orang tua yaituIbunda dan Ayahanda yang senantiasa
mendoakan, memberi semangat serta nasehat kepada penulis.
Tugas akhir ini merupakan bagian dari kurikulum yang harus
diselesaikan untuk memenuhi persyaratan menyelesaikan pendidikan Sarjana
Strata Satu di Departemen Teknik Elektro, Fakultas Teknik, Universitas Sumatera
Utara. Adapun judul Tugas Akhir ini adalah :
“PERANCANGAN SISTEM VERIFIKASI KEANGGOTAAN DENGAN KARTU CERDAS NIRKONTAK BERBASIS
ARDUINO MEGA 2560”
Selama masa kuliah sampai penyelesaian tugas akhir, penulis juga
banyak mendapat dukungan baik moril maupun materil dari berbagai pihak yang
telah membantu kelancaran penyusunan tugas akhir ini. Untuk itu penulis ingin
1. Bapak Soeharwinto, S.T, M.T, selaku Dosen Pembimbing tugas akhir yang
telah banyak meluangkan waktu untuk membimbing dan mengarahkan
penulis baik semasa kuliah maupun saat proses penulisan tugas akhir ini.
2. Bapak Ir. T. Ahri Bahriun, M.sc dan Bapak Ir. Kasmir Tanjung, MT selaku
Dosen Penguji yang telah mengevaluasi serta mengarahkan penulis baik
semasa kuliah maupun saat proses penulisan tugas akhir ini.
3. Seluruh Dosen Teknik Elektro sub jurusan komputer tercinta yang menjadi
inspirasi dan sudah penulis anggap sebagai sahabat sekaligus orang tua
sendiri.
4. Bapak Ir. Surya Tarmizi Kasim, M.siselaku Ketua Departemen Teknik
Elektro FT-USU, dan Bapak Rahmad Fauzi, ST, MT selaku Sekretaris
Departemen Teknik Elektro FT-USU yang selama ini telah memotifasi,
membimbing serta membina selama masa perkuliahan.
5. Seluruh Staff Pengajar dan Pegawai di Departemen Teknik Elektro
FT-USU.
6. Sahabat-sahabat terbaikku dari angkatan 2009 : Teguh Triantoro, Dwi Budi
Prasetyo, Arif Azhari, Mahdi Masykur, Adityaz Zardika, Aras Dewanto,
sahabat-sahabat Lab Pengukuran Besaran Listrik (tetangga) (Rijal, Agung
Khairi, Rizki, Adly wkwk, Haditia Pramuda, Faya Efdika, Dimas Harind,
Tondy Zulfadly, Asri Akbar), sahabat-sahabat Lab Pengukuran T3 (Wangto,
Kentrick), sahabat-sahabat Lab Pengukuran AST (Ahmad Mustashir, Doni
Rivi, Fahrul Hadi, Nanda Eka), Eko, Rizi, Oloni, Nuzul, Samuel, dan semua
7. Senior-seniorku yang baik hatinya : Bang Prindi, Bang Muhfi, Bang Teguh,
Bang Roji, Bang Salman, Bang Yu, Bang Reki, Bang Indra, Bang Antonius,
Bang Robin, Bang Jhonson. yang telah bersedia berbagi pengalaman kepada
penulis selama masa perkuliahan.
8. Adik-adik junior (Hardi, Robi, Mian, Frans, Fadlan, Habib, Oyen, Iqbal,
Gading, Ivan, Irwan, Stiff, dan lain-lain) yang selalu siap sedia menolong
penulis ketika dibutuhkan.
9. Seluruh Abang-abang dan Adik-adikku di UKM Robotik Sikonek (dari
periode awal hingga periode sekarang) yang sangat penulis cintai dan
banggakan.
10.Seluruh pihak yang tidak dapat penulis sebutkan satu persatu yang telah
membantu penulis baik secara langsung maupun tidak langsung selama
menjalani masa perkuliahan di Departemen Teknik Elektro FT-USU.
Akhirnya, penulis mengharapkan tulisan ini bermanfaat bagi penulis
dan Departemen Teknik Elektro Fakultas Teknik Sumatera Utara.
Medan, Januari 2015
Penulis
DAFTAR ISI
ABSTRAK ... i
KATA PENGANTAR ... ii
DAFTAR ISI ... v
DAFTAR GAMBAR ... viii
1 BAB I PENDAHULUAN ... 1
1.1 Latar Belakang ... 1
1.2 Rumusan Masalah ... 3
1.3 Tujuan Penulisan ... 3
1.4 Batasan Masalah ... 4
1.5 Metode Penulisan ... 4
1.6 Sistematika Penulisan ... 5
2 BAB II DASAR TEORI ... 7
2.1 Tinjauan Ringkas Organisasi ... 7
2.3.1 Mikrokontroler ... 10
2.3.2 Memori Program ... 11
2.3.3 Memori Data ... 11
2.3.4 Pin Input/Output ... 12
2.3.5 Catu Daya ... 12
2.3.6 Komunikasi Serial ... 13
2.4 Radio Frequency Identification (RFID) ... 17
2.5 Kartu Cerdas (Smart Card) ... 18
2.6 Biometrik Sidik Jari ... 19
3 BAB III PERANCANGAN SISTEM ... 20
3.1 Gambaran Umum Sistem ... 20
3.1.1 Perangkat Keras ... 21
3.1.2 Perangkat Lunak ... 22
3.2 Spesifikasi Sistem ... 23
3.3 Perancangan Perangkat Keras ... 24
3.3.1 Penentuan Komponen ... 26
3.3.2 Komunikasi dan Konfigurasi Pin ... 29
3.4.1 Usecase Diagram ... 32
3.4.2 Program ... 34
4 BAB IV IMPLEMENTASI DAN PENGUJIAN... 42
4.1 Implementasi ... 42
4.2 Pengujian... 43
4.2.1 Pengujian Pembacaan UID oleh IDE Arduino ... 43
4.2.2 Pengujian Pembacaan UID oleh Matlab... 44
4.2.3 Pengujian Baca dan Tulis Memori Kartu ... 46
4.2.4 Pengujian Pembacaan Sidik Jari menggunakan Arduino ... 47
4.2.5 Pengujian Pembacaan Sidik Jari menggunakan Matlab ... 48
4.2.6 Pengujian Perbandingan Pembacaan Sidik Jari Antara Arduino dengan Matlab ... 48
4.3 Analisis Hasil Pengujian ... 49
5 BAB V KESIMPULAN DAN SARAN ... 51
5.1 Kesimpulan ... 51
5.2 Saran ... 52
DAFTAR PUSTAKA ... 53
DAFTAR GAMBAR
Gambar 2.1 Arduino Mega 2560 ... 9
Gambar 2.2 Konfigurasi Pin ATMega2560 ... 10
Gambar 2.3 Peta Memori Program ... 11
Gambar 2.4 Format Data UART ... 14
Gambar 2.5 Konfigurasi Pin SPI ... 16
Gambar 2.6 Sistem RFID ... 18
Gambar 2.7 Standard Ukuran Identification Card ... 19
Gambar 3.1 Blok Diagram Sistem ... 21
Gambar 3.2 MF522-AN ... 27
Gambar 3.3 Mifare Ultralight ... 28
Gambar 3.4 ZFM-20 ... 28
Gambar 3.5 Komunikasi dan Konfigurasi Pin Sistem ... 30
Gambar 3.6 Komunikasi Arduino Mega 2560 dengan PC ... 31
Gambar 3.7 Diagram usecase ... 33
Gambar 3.9 Organisasi Memori untuk UID dan Sidik Jari ... 36
Gambar 4.1 Implementasi Perangkat Keras ... 42
Gambar 4.2 Keberhasilan Pembacaan UID menggunakan Arduino ... 44
Gambar 4.3 Keberhasilan Pembacaan UID menggunakan Matlab ... 45
PENDAHULUAN
4.1 Latar Belakang
Suatu organisasi atau lembagamemiliki 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 anggotadiantaranya adalah
mendapatkan berbagai izin akses, mendapatkan izin penggunaan fasilitas serta
mendapatkan pelayanan dari organisasi. Hak-hak anggota tersebut telah
ditetapkan dan disepakati oleh organisasi atau lembaga yang terkait.
Semakin besar suatu organisasi maka semakin banyak jumlah
anggota.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 pekerjaannyameningkat.Hal tersebut memungkinkan anggota
satu dengan lainnya tidak saling mengenal sehingga tidak menutup kemungkinan
anggota tidak mengetahui bahwa ada orang lain yang bukan anggota telah
bergabung dan menyelinap sebagai anggota organisasi.
Apabila hal tersebut terjadi maka akan merugikan pihak organisasi
karena hak-hak anggota yang seharusnya diperuntukkan hanya bagi anggota dapat
digunakan oleh orang lain yang bukan bagian dari anggota. Untuk mengatasi hal
dengan memverifikasi status keanggotaannya sehingga diketahui apakah orang
tersebut terdaftar sebagai anggota organisasi atau tidak.
Sistem verifikasi keanggotan yang dirancang bertindak sebagai
pengendali atau pengontrol anggota dalam mendapatkan hak akses, hak guna
ataupun hak pelayanan. Sistem ini dirancang dengan menggunakan kartu cerdas
nirkontak (contactless smart card). Kartu ini menyimpan serangkaian serial ID
yang dapat dijadikan sebagai objek verifikasi. Kartu ini juga digunakan sebagai
kartu identitas anggota.
Untuk memastikan pemilik kartu adalah pemilik yang sebenarnya maka
diperlukan suatu data besaran fisik seseorang yang dapat disimpan didalam kartu
identitas sebagai objek kepemilikankartu. Teknologi biometrik dapat menjadi
alternatif untuk mengolah data besaran fisik seseorang. Biometrik sendiri dikenal
sebagai teknologi untuk mengidentifikasi seseorang melalui karakteristik fisik
maupun tingkah laku yang berbeda satu sama lain seperti sidik jari, retina, suara,
wajah, iris dan sebagainya[1]. Jenis biometrik yang populer digunakan adalah
jenis biometrik sidik jari (finger print) karena memiliki performa serta keunikan
yang baik[2]. Sidik jari memiliki pola-pola yang khas yang disebut sebagai
minutiae. Jumlah dan letak minutiae pada setiap orang berbeda-beda sehingga
dapat dijadikan pembeda antara orang yang satu dengan yang lain.
Sistem ini akan bekerja dengan beberapa tahap. Tahapan pertama
adalah registrasi. Registrasi dilakukan oleh administrator ke calon anggota
dengan caramenginput informasi data pribadi , informasi ID kartu serta sebagian
informasi sidik jari ke databaseanggota. Tahapan kedua adalah verifikasi,
memverifikasi anggota tersebut dan memunculkan profil pribadinya melalui layar
komputer.
4.2 Rumusan Masalah
Adapun rumusan masalah dari Tugas Akhir ini adalah sebagai berikut:
1. Merancang sistem yang terintegrasi antara Arduino sebagai host
dengan perangkat RFID reader dan finger print scannersebagai
perangkat masukan dari sistem.
2. Menghitung waktu rata-rata proses pembacaan serial ID kartu.
3. Menentukan besar data sidik jari yang akan disimpan di dalam kartu.
4. Menganalisis kinerja proses pembacaan data sidik jari menggunakan
Arduino dan komputer.
5. Mencocokkan serial ID yang terdapat dalam kartu dengan serial ID
yang tersimpan di dalam database.
4.3 Tujuan Penulisan
Tujuan penulisan tugas akhir ini adalah:
Merancang prototipe sistem verifikasi keanggotaanorganisasi
menggunakan kartu cerdas nirkontak dan untuk memenuhi persyaratan
4.4 Batasan Masalah
Untuk memudahkan pembahasan dalam tulisan ini, maka dibuat batasan masalah
sebagai berikut:
1. Kartu cerdas nirkontak digunakan sebagai kartu identitas anggota dan
diberikan kepada anggota setelah teregistrasi sebagai anggota
organisasi.
2. Alat yang dirancang berupa protipe stand alone.
3. Pemrograman pada IDE Arduino memanfaatkan pustaka (library)
4. Citra sidik jari yang diambil dari ibu jari dengan keadaan bersih dan
normal.
4.5 Metode Penulisan
Metodologi penelitian yang digunakan dalam tugas akhir ini adalah:
1. Studi literatur
Pada tahap ini akan dilakukan studi pada berbagai referensi pustaka
yang berkaitan dengan perancangan. Baik dari buku, artikel, jurnal,
internet dan lain lain.
2. Perancangan perangkat keras
Pada tahap ini akan dilakukan perancangan perangkat keras antara lain
konfigurasi RFID reader dengan Arduino, konfigurasi Arduino ke PC.
3. Perancangan perangkat lunak
Pada tahap ini dilakukan perancangan perangkat lunak antara lain
dan mengirimkannya ke komputer, entri data manual dan pembuatan
GUI Matlab sederhana untuk simulasi pemilihan.
4.6 Sistematika Penulisan
Untuk memberikan gambaran mengenai tugasakhir ini, secara singkat dapat
diuraikan sistematika penulisan sebagai berikut :
BAB I : PENDAHULUAN
Bab ini merupakan pendahuluan yang berisikan tentang latar
belakang masalah, tujuan penulisan, batasan masalah, metode
penulisan, dan sistematika penulisan.
BAB II : DASAR TEORI
Bab ini berisi tentang teori yang digunakan dalam merancang
prototipe sistem verifikasi keanggotaan dengan kartu cerdas
nirkontak berbasis Arduino Mega 2560.
BAB III : PERANCANGAN SISTEM
Bab ini berisi tentang tahapan perancangan baik secara perangkat
keras maupun perangkat lunak.
BAB IV: IMPLEMENTASI DAN PENGUJIAN
Bab ini membahas secara tentang pengujian dan hasil pengujian
BAB V : KESIMPULAN DAN SARAN
Bab ini merupakan bab terakhir yang memuat rangkuman sebagai
kesimpulan penulis dan saran yang dianggap penting agar dapat
DASAR TEORI
5.1 Tinjauan Ringkas Organisasi
Organisasi atau lembaga merupakan sekelompok orang yang bekerja
sama dalam struktur dan koordinasi tertentu dalam mencapai serangkaian tujuan
tertentu. Pada umumnya organisasi memiliki anggota yang terdiri atas pimpinan
dan pegawai. Setiap anggota organisasi memiliki hak dan kewajiban serta
pembagian tugas kerja untuk menjalankan suatu fungsi tertentu yang tunduk pada
peraturan untuk mengadakan kerjasama dan interaksi guna mencapai suatu tujuan
bersama[3].
Pada organisasi ataupun lembaga modern umumnya telah
mengaplikasikan sistem informasi serta teknologi sebagai sarana yang membantu
untuk meningkatkan efisiensi serta efektifitas kerja. Selain itu juga membantu
dalam meningkatkan keamanan pada aset dan privasi organisasi tersebut. Semakin
besar suatu organisasi maka akan semakin membutuhkan keamanan yang tinggi.
Aset menyangkut kekayaan suatu organisasi seperti fasilitas-fasilitas
yang disediakan oleh organisasi. Sedangkan privasi menyangkut hal-hal yang
pribadi yang tidak boleh disebarluaskan tanpa seizin organisasi tersebut. Baik aset
maupun privasi organisasi hanya boleh diperuntukkan bagi anggota organisasi
5.2 Mikrokontroler Kit Arduino
Arduino merupakan kit mikrokontroler yang bersifat Open-Source baik
perangkat keras maupun perangkat lunaknya. Perangkat keras yang diprogram
menggunakan bahasa pemrogaman berbasis Wiring (sintaks + pustaka)
menyerupai C++ dengan beberapa penyederhanaan dan modifikasi.Untuk
perangkat lunak IDE yang dibangun berbasis Proccessing[4].
Arduino ditemukan dan dikembangkan pertama kali di Ivrea, italia oleh
Massimo Banzi dan David Cuertilles.Ide terciptanya Arduino didasari dari
mahalnya komponen perangkat keras elektronik yang tersedia. Hal ini menjadi
penghambat utama para mahasiswa dan pelajar dalam bereksplorasi. Selain harga
yang murah, kemudahan dan fleksibilitas penggunaan menjadi pertimbangan oleh
pengguna-pengguna Arduino masa kini. Pengguna tidak lagi terkendala waktu
untuk mendalami elektronika dan mikrokontroler. Pengguna juga tidak akan
disulitkan dalam merancang suatu sistem eletktronika karena banyak komunitas
yang menyediakan tutorial proyek berbasis Arduino secara gratis di dunia maya.
Munculnya Arduino menjadikannya sebagai tren teknologi yang
revolusioner. Arduino terbuka untuk semua orang yang ingin mengembangkan
suatu sistem interaktif berbasis mikrokontroler, baik untuk kalangan mahasiswa,
pelajar, profesional bahkan pemula sekalipun. Pengguna dapat memiliki Arduino
sesuai kebutuhannnya karena Arduino dibuat dalam beberapa jenis diantaranya
yaitu Arduino Diecimila, Duemilanove, UNO, Lenardo, Mega, Nano, Due, Yun
5.3 Arduino Mega 2560
Arduino Mega 2560 adalah tipe jenis Arduino yang cukup populer
digunakan. Selain memiliki pin masukan dan keluaran yang banyak, Arduino jenis
ini memiliki kapasitas memori yang lebih besar dibandingkan dengan beberapa
jenis Arduino lainnya.Untuk ukuran dimensi perangkatnya Arduino Mega 2560
termasuk jenis Arduino dengan ukuran board yang besar. Gambar 2.1
menunjukan bentuk fisik Arduino Mega 2560. Adapun spesifikasi singkat
mengenai Arduino Mega 2560 adalah sebagai berikut[5] :
Mikrokontroler : ATmega2560
Tegangan Operasional : 5V
Tegangan Masukan (direkomendasi) : 7-12V
Tegangan Masukan (batas) : 6-20V
Pin Digital I/O : 54 ( 14 pin untuk keluaran PWM)
Analog Input Pins : 16
Arus DC per I/O Pin : 40 mA
Arus DC for 3.3V Pin : 50 mA
Memori Flash :256 KB(8 KB digunakan untuk bootloader)
SRAM : 8 KB
EEPROM : 4 KB
Clock Speed : 16 MHz
5.3.1 Mikrokontroler
Mikrokontroler yang digunakan pada Arduino Mega 2560 ini adalah
Mikrokontroler ATMega 2560. Mikrokontroler inimenjadi komponen utama dari
sistem minimum Arduino Mega 2560. Setiap pin mikrokontroler ATMega 2560
dipetakan sesuai dengan kebutuhan standar Arduino pada umumnya.
Pemetaan pin (pin mapping) ATMega 2560 dapat dilihat pada gambar 2.2.
5.3.2 Memori Program
Arduino Mega 2560 memiliki 250 Kbyte On-chip In-System
Reprogrammable Flash Memory sebagai tempat menyimpan program. Memori
flash ini dibagi kedalam dua bagian, yaitu bagian program bootloader dan
aplikasi. Bootloader adalah program kecil yang dieksekusi saat setelah pertama
kali sistem dinyalakan. Bootloader ini bekerja sebagai perantara antara memori
program dengan software compiler Arduino. Bootloader akan menerimafile hasil
kompilasi yang telah diupload ke Arduino dan akan menyimpannya ke memori
program kemudian Arduino akan langsung mengeksekusi program tersebut. Peta
memori program dapat dilihat pada gambar 2.3.
5.3.3 Memori Data
Memori data pada Arduino Mega2560 terbagi atas SRAM dan
EEPROM. SRAM bersifat volatileatau dengan kata lain tidak memiliki
kemampuan untuk menyimpan data secara konsisten setelah catu daya dimatikan
sedangkan EEPROM bersifat nonvolatile. SRAM yang dimiliki Arduino Mega
2560 berukuran 8KB dan EEPROM yang dimiliki Arduino Mega 2560 berukuran
4KB. Ukuran EEPROM yang dimiliki Arduino jenis ini adalah ukuran EEPROM
yang paling besar diantara beberapa jenis Arduino lainnya sehingga EEPROM
yang dimiliki Arduino jenis ini dapat dimanfaatkan untuk kebutuhan sistem
dengan memori data yang besar.
5.3.4 Pin Input/Output
Arduino Mega 2560 memiliki 54 pin digital yang dapat digunakan
sebagai masukan atau keluaran menggunakan fungsi pinMode(), dan menentukan
proses penulisan atau pembacaan data I/O menggunakan fungsi digitalWrite() dan
digitalRead(). Setiap pin beroperasi pada tegangan 5 volt, mampu menerima atau
menghasilkan arus maksimum sebesar 40 mA dan memiliki 20 - 50 Kohm resistor
pull-up internal (diputus secara default).
Pin digital ini selain berfungsi sebagai masukan dan keluaran digital
namun juga dapat berfungsisebagai pin dengan fungsi khusus seperti untuk
komunikasi UART (pin 0 sebagai RX dan pin 1 sebagai TX), komunikasi SPI,
komunikasi I2C, external interrupt dan PWM. Untuk memanfaatkan pin digital Arduino sebagai pin dengan fungsi khusus, maka register yang terkait dengan
fungsi khusus tersebut harus dikonfigurasi terlebih dahulu. Konfigurasi
register-register tersebut telah disediakan di pustaka(library) Arduino. Selain fitur pin
digital, Arduino Mega 2560 juga memiliki 16 pin analog yaitu pin A0 sampai A15
dan setiap pin menyediakan resolusi sebesar 10 bit.
5.3.5 Catu Daya
Arduino dapat diberikan catu daya melalui koneksi USB atau catu daya
tegangan yang dapat disuplai ke Arduino sebesar 6 – 20 Volt. Namun tegangan
yang direkomendasikan yaitu dari 7 – 12 Volt.
5.3.6 Komunikasi Serial
Komunikasi serial merupakan metode pengiriman data berurut bit demi
bit melalui sebuah saluran transmisi[8].Komunikasi serialmemiliki kelebihan
diantaranya adalah transimisi data yang dapat dilakukan hanya dengan melalui
sebuah saluran sehingga mengurangi costyang dikeluarkan untuk kebutuhan
saluran transmisi[9]. Karena hanya membutuhkan satu saluran, maka cara
komunikasi ini selalu digunakan untuk komunikasi jarak jauh. Walaupun jarak
dekat, komunikasi ini juga sering digunakan dalam komunikasi jarak dekat yang
tidak membutuhkan kecepatan tinggi[10]. Namun saat ini teknologi yang
digunakan pada perkembangan komunikasi serial semakin canggih sehingga
masalah kecepatan transmisi sudah cukup teratasi.
Komunikasi serial dapat dilakukan dengan dua cara yaitu sinkron atau
asinkron. Dikatakan sinkron ketika sisi pengirim dan sisi penerima menggunakan
clock bersama. Dikatakan asinkron ketika sisi pengirim dan sisi penerima
menggunakan clock masing-masing (tersendiri) dan dengan frekuensi clock yang
hampir sama[10]. Arduino menyediakan kedua jenis komunikasi serial tersebut
baik sinkron ataupun asinkron. Jenis komunikasi serial asinkron yang disediakan
oleh Arduino adalahUART (TTL logic)sedangkanjenis komunikasi serial sinkron
salah satunya adalah SPI.
UART (Universal Asynchronous Receiver/Transmitter) merupakan
komunikasi serial ini setiap pengiriman 1 byte data akan diawali dengan
pengiriman bit pertama berupa start bit yang berlogika 0 (low) dan diakhiri
dengan stop bit yang berlogika 1 (high). Sehingga setiap pengiriman 1 byte data
setidaknya dibutuhkan dibutuhkan 10bit data untuk satu kali pengiriman.Selain itu
untuk penambahan fungsi pengecekan eror dengan menggunakan bit paritas
(parity bit) dapat dilakukan dengan menyisipkan bit tersebut pada akhir frame
sebelum stop bit. Format data UART dapat dilihat pada gambar 2.7.
Gambar 2.4 Format Data UART[7]
UART memiliki beberapa fitur yang digunakan dalam melakukan
komunikasi diantaranya seperti: receive/transmit buffer, shift register,clock
generator, parity generator, parity checker[7]. Sebelum melakukan pengiriman
atau penerimaan data clock generator akan bekerja dengan membangkitkan clock
lokal milik pengirim/penerima. Setiap data yang akan dikirim akan dimuati ke
transmit buffer kemudian ditransfer ke shift register PISO untuk dikirim ke
penerima. Sama seperti pada proses pengiriman data, data yang diterima akan
Pengaturan format data, pengaturan baudrate serta beberapa pengaturan fitur-fitur
perangkat UART lainnya diatur pada register-register khusus UART.
Pada Arduino Mega 2560 terdapat pin TX dan RX yang digunakan
sebagai saluran transmit dan receive bagi perangkat komunikasi serial UART.
Pada Arduino, inisialisasi komunikasi serialUART dilakukan dengan
memanfaatkan fungsi Serial.begin(n) dengann adalah nilai baudrate. Inisialisasi
ini melakukan penentuan baudrate, penentuan format datadan memampukan
perangkat UART sebagai receiver atau transmitter. Selanjutnya dengan
menggunakan fungsi Serial.print(), Arduino dapat mengirimkan serangkaian
karakter-karakter dengan tipe data char(char array/string) ke komputer. Data
yang diterima atau dikirim oleh Arduino dapat dimonitor menggunakan serial
terminal yang telah disediakan di IDE Arduino.
Salah satu jenis komunikasi serial sinkron yang dimiliki oleh Arduino
adalah SPI (Serial Peripheral Interface). Komunikasi antara dua perangkat yang
menggunakan SPI berlandaskan hubungan master (induk) dan slave (budak)[10].
Master dapat berupa mikrokontroler sedangkan slave (budak) dapat berupa
mikrokontroler atau perangkat selain mikrokontroler. Pin yang diperlukan dalam
komunikasi SPI umumnya menggunakan empat pin yaitu pin MOSI(Master Out
Serial In) atau dalam istilah lain SDO(Serial Data Out), pin MISO(Master Out
Serial In) atau dalam istilah lain SDO(Serial Data Out), pin SCK (Serial Clock),
SS (Slave Select). Perangkat yang dikonfigurasi sebagai master selain bertindak
sebagai sumber clock bersama melalui pin SCK. juga bertindak sebagai pemilih
perangkat slave melalui pin SS. Konfigurasi fungsi SPI dapat dilihat pada gambar
Master
Slave
Gambar 2.5 Konfigurasi Pin SPI
Saat inisialisasi SPI akan master akan mendisable pin SS sebagai
kondisi default, menentukan bit order MSB atau LSB yang terlebih dahulu untuk
dikirim, menentukan kecepatan clock, menentukan kapan slave membaca bit data
di tepi naik(rising edge) atau tepi jatuh(falling edge) dari pulsa clockdan sekaligus
menentukan kapan clock dianggap menganggur apakah pada saat keadaan tinggi
atau rendah. Langkah inisialisasi tersebut berada pada fungsi SPI.begin().
Dalam proses pengiriman data, master memilih perangkat slave yang
akan diajak berkomunikasi dengan mengkatifkan pin SS berlogika low dilanjutkan
pengiriman data melalui pin MOSI dan pengaktifan clock melalui pin SCK.
Proses ini dilakukan dengan memanfaatkan fungsi SPI.transfer() untuk memilih
perangkat slave. Sama seperti perangkat komunikasi serial yang lain, SPI
memiliki shift register yang berfungsi mengkonversi data paralel ke serial pada
sisi pengirim maupun sebaliknya pada sisi penerima.
Pada komunikasi antara Arduino dengan komputer, digunakan chip
converter on board.Chip ATMega8U2 ini mengantarai komunikasi antara
ATMega2560(main processor) dengan komputer.
5.4 Radio Frequency Identification (RFID)
RFID merupakan suatu teknologi yang menggunakan gelombang radio
dengan frekuensi tertentu untuk mengenali suatu benda. Komponen RFID terdiri
dari dua komponen utama yaitu tag dan reader. RFID tagatau yangjugadikenal
dengan transpondertersusun atas sebuah mikroprosesor, memori dan antena.
Setiap komponen penyusun RFID tag memiliki fungsi tersendiri seperti
mikroprosesor sebagai pengolah data, memori berguna tempat penyimpanan
data,antena berguna memungkinkan mikroprosesor dapat menerima atau
mengirim data dari atau ke RFID reader secara nirkabel pada jangkauan yang
lebih jauh[11]. baik RFID tag ataupun RFID reader masing-masing harus
memiliki saluran frekuensi yang sama juga harus dalam standar protokol yang
sama pula sehingga keduanya dapat saling bertukar informasi.
Sedangkan RFID reader tersusun atas control unit dan RF interface.
Control unit umumnya berisi mikrokontroler, serial interface dan memori. Pada
prakteknya RFID reader mengirimkan sinyal analog ke RFID tag. sehingga
mengaktifkan (wake up) sirkuit RFID tag. Selanjutnya RFID reader akan
mengirim permintaan informasi ke RFID tag. Hal tersebut direspon oleh RFID tag
dengan mengirim sinyal balik (backscatter) yang berisi informasi yang diminta
oleh RFID reader[11]. Informasi balasan berupa gelombang analog tersebut akan
tersebut kemudian akanditeruskan ke middleware (komputer, mikrokontroler).
Komponen dasar sistem RFID dapat dilihat pada gambar 2.7.
Gambar 2.6Sistem RFID[11]
5.5 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
yang mendefinisikan bahwa ukuran kartu yang digunakan adalah ID-1
(85.60x53.98 mm). Ukuran kartu dengan standar ISO 7810 terlihat pada
Gambar 2.7Standard Ukuran Identification Card[12]
Kartu cerdas dibedakan menurut cara transmisi datanya menjadi dua
yaitu kontak (contact) dan nirkontak (contactless). Kartu cerdas kontak memiliki
area konduktor yang harus kontak ke reader ketika ingin melakukan komunikasi.
Sedangkan nirkontak, kartu dapat melakukan komunikasi dengan reader tanpa
harus melakukan kontak langsung dengan jarak tertentu.
5.6 Biometrik Sidik Jari
Biometrik sidik jari merupakan teknologi biometrik dengan karakteristik
fisik yang diukur adalah sidik jari. Biometrik jenis ini memiliki keunikan yang
baik. Selain itu sidik jari bersifat permanen dan seumur dengan hidup seseorang
sehingga dapat dipergunakan dalam waktu yang lama. Di sisilain sidik jari
memiliki kelemahan seperti, jika jari mengalami kecelakaan, lembab, serta
kondisi buruk lainnya maka akan menyebabkan karakteristik fisik sidik jari
berubah bentuk. Sidik jari dapat diklasifikasikan berdasarkan bentuk guratan
sidikjari. Pola guratan pada sidik jari dapat berbentuk pola bukit (ridge) atau
PERANCANGAN SISTEM
6.1 Gambaran Umum Sistem
Pada tugas akhir ini akan dirancang sebuah prototipe sistem verifikasi
kartu cerdas nirkontak berbasis Arduino Mega 2560. Secara umum, sistem terbagi
dalam dua tahap yaitu tahap registrasi dan verifikasi. Sistem ini berfungsi untuk
memverifikasi status keanggotaan seseorang pada suatu lembaga atau organisasi
tertentu. Verifikasi nantinya dilakukan dengan menggunakan perangkat kartu
cerdas nirkontak (contactless smart card). Kartu tersebut akan diberikan kepada
anggota organisasi setelah proses registrasi selesai dilakukan.
Saat proses registrasi,calon anggota akan diminta untuk memenuhi data
identitas pribadi. Setelahcalon anggota menyelesaikan proses registrasi maka
calon anggota diberikan kartu cerdas nirkontak (RFID tag) sebagai kartu identitas
anggota. Selanjutnya, diperlukan data sidik jari anggota untuk dimasukan ke
dalam kartu tersebut. Sidik jari nantinya dijadikan sebagai objek identitas
kepemilikan kartu pada sistem ini. Langkah ini dilakukan untuk antisipasi kartu
yang berpindah tangan. Baik informasi data pribadi, ID kartu dan sidik jari
disimpan akan disimpan di database pada komputer.
Saat melakukan verifikasi, anggota akan mentap kartu yang dimilikinya
ke perangkat RFID reader. Selanjutnya ID yang ada pada kartu akan dibaca oleh
perangkat reader tersebut. ID tersebut akan dikirim ke komputer untuk
dicocokkan (matching) dengan ID yang telah disimpan sebelumnya padadatabase.
tersebut telah terdaftar sebagai anggota yang sah. Jika ID tidak cocok artinya
verifikasi gagal dan pemilik kartu tidak terdaftar (bukan anggota organisasi).
6.1.1 Perangkat Keras
Berdasarkan gambaran umum sistem yang telah dijelaskan sebelumnya
perangkat-perangkat yang digunakan diantaranya RFID tag, RFID reader, finger
print scanner, Arduino dan komputer.RFIDtag digunakan sebagai perangkat
menyimpan ID anggota kemudian RFID reader digunakan sebagai pembaca
RFID tag tersebut. Finger print scanner berfungsi sebagai perangkat yang
mengcapture sidik jari pada tahap registrasi sebagai informasi tambahan anggota.
Selanjutnya, Arduino berperan sebagai host atau pengendali finger print
scannerdan RFID reader, hasil dari pembacaan RFID reader nantinya akan
dikirim ke komputer untuk dicocokkan dengan ID yang sebelumnya sudah
terdaftar dalam database. Hasil pencocokan akan ditampilkan pada layar monitor
komputer. Diagram blok untuk gambaran umum sistem dapat dilihat pada gambar
3.1
Proses pembacaan RFID tag untuk mendapatkan informasi ID adalah
mengacu pada standar protokol RFID ISO 14443-3 (Initializasion and
anticollision). Sedangkan tulis baca memori kartu hanya menggunakan standar
protokol Mifare proprietary saja tanpa menggunakan ISO 14443-4 (Transmission
protocol). Hal tersebut dikarenakan jenis kartu Mifare yang digunakan adalah
jenis Mifare Ultralight namun jika jenis Mifare yang digunakan lebih canggih
seperti Mifare Plus, Mifare DesFire atau seri diatasnya maka standar protokol ISO
1444-4 juga harus digunakan saat melakukan tulis baca kartu.
6.1.2 Perangkat Lunak
Perangkat lunak diperlukan untuk mengantarai perangkat keras dengan
user. Perangkat lunak yang digunakan pada sistem ini bekerja pada dua sisi yaitu
perangkat lunak yang bekerja pada sisi komputer dan perangkat lunak yang
bekerja pada sisi mikrokontroler. Perangkat lunak pada sisi komputer akan
menerima serta memberikan sinyal informasi ke perangkat lunak yang bekerja
pada sisi mikrokontroler dan begitu pula sebaliknya.
Aktivitas yang dilakukan oleh perangkat lunak pada sisi mikrokontroler
diawali dengan proses inisialisasi perangkat Arduino Mega 2560, RFID reader
dan finger print scanner. Kemudian Arduino akan menunggu sinyal untuk
melakukan suatu aksi tertentu. Sinyal yang diberikan oleh komputer ke Arduino
berupa karakter alfanumerik tertentu yang dikirim melalui saluran serial
port.Karakter tersebut akan diterjemahkan oleh perangkat lunak pada sisi
mikrokontroler sebagai suatu perintah tertentu. Perintah tersebut dapat berupa
mewakili beberapa perintah tersebut nantinya digunakan pada saat tahap registrasi
maupun verifikasi.
6.2 Spesifikasi Sistem
RFID menggunakan frekuensi 13.56 MHz (HF). Protokol RFID yang
digunakan mengacu kepada standard ISO 14443. Komponen RFID yang
digunakan terdiri atas dua perangkat utama yaitu RFID reader dan tag (card).
Catu daya yang didapatkan oleh perangkat modul RFID reader bersumber dari pin
3.3V Arduino. Sedangkan Arduino yang berfungsi sebagai host mendapat catu
daya dari komputer yang terhubung melalui kabel USB. Komunikasi antara host
dengan modul RFID reader dilakukan melalui jalur komunikasi serial jenis SPI.
Komunikasi antara host dengan komputer PC menggunakan komunikasi
serial jenis UART. Jenis ID pada RFID tag yang digunakan adalah jenis Double
Size UID (7 byte hexa). Diantara 7 byte data tersebut 2 byte bersifat unik.
Fungsi tambahan yang ditambahkan dalam sistem ini ialah fungsi finger
print capturing menggunakan modul sensor finger print atau finger print scanner.
Modul sensor finger print yang digunakan adalah jenis optikal. Fungsi finger
print capturing ini diperlukan untuk memasukkan objek besaran fisik seseorang
berupa citra sidik jari ke RFID tag. Hal ini bertujuan agar RFID tag tersebut
memiliki objek identitas permanen dari pemilik asli RFID tag tersebut.
Daftar spesifikasi sistem yang dirancang adalah sebagai berikut :
Frekuensi kerja RFID : 13.56 MHz
Standar dan protokol RFID : ISO/IEC 14443A
Jarak baca : Up to 6 cm
Kecepatan baca : 6 ms
Serial number : UID (Unique Identifier)
Serial number size : Double size UID (7 byte length)
Jenis sensor sidik jari : Optikal
Jalur komunikasi PC ke Arduino : USB
6.3 Perancangan Perangkat Keras
Perancangan perangkat keras dilakukan dengan mengintegrasikan
beberapa modul perangkat keras. Beberapa modul perangkat keras yang
digunakan diantaranya adalah Arduino sebagai host, RFID reader, finger print
scanner dan komputer. Host akan disandingkan dengan RFID reader sehingga
menjadi sebuah komponen RFID reader yang utuh. Protokol RFID pada sistem
ini mengacu kepada standar ISO 14443. Standar tersebut dipilih karena
merupakan standar yang disediakan oleh badan standarisasi ISO untuk proximity
card dengan jarak baca sekitar 0 – 10cm[13]. Standar tersebut juga memberi
ketetapan frekuensi RFID yang digunakan untuk standar proximity card adalah
13.56 MHz (HF). ISO 14443 ini terbagi menjadi dua tipe yaitu type A dan type B.
ISO 14443 type A dimaksudkan untuk melayani fungsi-fungsi teknologi yang
umum sedangkan ISO 14443 type B lebih dimaksudkan untuk aplikasi
perbankan[14]. Selanjutnya standar type Ajuga digunakan untuk RFIDtag
produksi NXP Mifare sedangkan type B digunakan yang RFIDtag yang bukan
Menurut penggunaannya RFID reader yang umum dikenal adalah jenis
fixed/portable RFID reader dan jenis contactlessreader IC. RFID reader yang
digunakan saat ini adalah menggunakan jenis contactless reader IC. Berbeda dari
jenis fixed RFID reader, RFID reader jenis ini akan membutuhkan host untuk
membuatnya menjadi sebuah RFID reader yang utuh. Contactlessreader IC yang
digunakan harus mampu berkomunikasi dengan RFID tag produksi MIFARE
NXP dengan standar ISO 14443 A.
Untuk dapat saling berkomunikasi, RFID tag yang digunakan harus
berada pada frekuensi dan standar yang sama dengan RFID readernya. Bentuk
fisik RFID tag yang digunakan adalah sebuah kartu. Dipilihnya RFID tag dengan
bentuk kartu dikarenakan kartu ini akan dijadikan sebagai kartu identitas
keanggotaan organisasi. Kartu RFID tag atau yang lebih dikenal dengan kartu
cerdas nirkontak (contactless smart card) juga dilengkapi dengan serial ID yang
unik. Serial ID tersebut nantinya akan digunakan sebagai objek verifikasi
keanggotaan organisasi.
Selain komponen RFID reader dan RFID tag diperlukan juga perangkat
finger print scanner. Perangkat ini digunakan untuk mengcapture sebagian citra
sidik jari untuk dimasukkan ke dalam kartu. Proses tersebut diperlukan untuk
antisipasi kartu yang berpindah tangan dari pemilik aslinya. Sehingga sidik jari
dapat dijadikan besaran fisik yang menetap permanen di dalam kartu sebagai
objek verifikasi tambahan. Pustaka finger print scanner yang disediakan oleh
Arduino adalah dari produsen Adafruit dan Sparkfun. Ditinjau dari spesifikasi
perangkatnya,finger print scanner dengan pustaka dari produsen Adafruit lebih
digunakan oleh RFID reader dan finger print scanner adalah Arduino jenis Mega
2560. Arduino Mega 2560 digunakan karena memilikikapasitas memori yang
lebih besar daripada beberapa jenis Arduino lainnya. Kapasitas memori yang
besar ini dapat digunakan untuk membantu kebutuhan memori sistem.
Informasi ID dan citra sidik jari yang diterima oleh Arduino Mega 2560
akan ditransfer ke komputer untuk disimpan dalam database dan digunakan
seperlunya. Perangkat yang bekerja pada sisi anggota adalah Arduino dengan
RFID reader dan finger print scanner sedangkan perangkat yang digunakan pada
sisi administrator adalah komputer.
6.3.1 Penentuan Komponen
Penentuan komponen yang digunakan pada sistem ini disesuaikan
dengan kebutuhan-kebutuhan yang telah dijelaskan pada bagian perancangan
perangkat keras. Komponen-komponen tersebut diantaranya adalah Arduino
Mega 2560, komputer, RFID reader, RFID tag dan finger print scanner. Setelah
dilakukan penentuan komponen yang tepat, diharapkan sistem yang dirancang
dapat berjalan dengan baik.
Komponen RFID reader yang ditentukan pada perancangan perangkat
keras ini adalah modul RFID reader MF522-AN. MF522-AN adalah modul RFID
reader yang diproduksi dengan bahan dasar contactlessreader IC MFRC522.
MFRC522 ini adalah sebuah contactlessreader IC yang produksi NXP yang
mendukung untuk pembacaan kartu Mifare dengan standard 14443 A. Selain
contactless reader IC ini terdapat seri MFRC5xx yang lain. Beberapa jenis seri
berkomunikasi dengan ISO 14443 B sedangkan yang dibutuhkan hanya dengan
kompatibilitas ISO 14443 A saja. MFRC522 mendukung untuk pembacaan
seluruh varian kartu Mifare seperti Mifare mini, Mifare ultralight, Mifare
ultralight C, Mifare Plus, Mifare DESFire, Mifare Clasic. Sebagai tambahan,
hingga saat ini pustaka Arduino yang disediakan untuk pembacaan kartu Mifare
hanya pustaka untuk modul RFID reader dengan bahan contactlessreader IC
MFRC522 saja. Gambar fisik dari modul MF522-AN dapat dilihat pada gambar
3.2
Gambar 3.2MF522-AN
Komponen kartu RFID tag yang digunakan pada sistem ini adalah jenis
Mifare Ultralight. Penentuan komponen ini dikarenakan kartu ini memiliki
kemudahan dalam memahami sistem keamanannya. Kartu jenis ini juga memiliki
jenis serial ID yang unik. Kartu ini memiliki kapasitas memori yang tidak besar
sehingga untuk membantu kapasitas memori sistem digunakan memori tambahan
Gambar 3.3Mifare Ultralight
Finger print scanner yang digunakan adalah jenis ZFM-20. Perangkat
tersebut pada dasarnya memiliki spesifikasi perangkat keras yang tidak jauh
berbeda dari finger print scanner dengan pustaka Arduino lainnya. Namun yang
menjadi pertimbangan adalah rangkaian command packet yang dimiliki perangkat
ini lebih efektif daripada command packet yang dimiliki perangkat lainnya.
Gambar perangkat ZFM-20 dapat dilihat pada gambar 3.4.
Arduino Mega 2560 mendapatkan catu daya dari jalur USB komputer.
Tegangan tersebut akan diregulasi oleh regulator on board Arduino sehingga
tegangan keluarannya mendekati 5V. Tegangan ini akan disuplai ke ZFM-20
melalui pin 5V. Sedangkan MF522-AN mendapat catu daya dari pin 3.3V board
Arduino. Sedangkan konsumsi arus yang digunakan oleh Arduino Mega 2560
adalah 200mA. Untuk MF522-AN arus yang dikonsumsi adalah sebesar 26mA
dan arus yang dikonsumsi oleh ZFM-20 adalah 100mA. Sehingga total konsumsi
arus yang digunakan adalah sebesar 326mA.
6.3.2 Komunikasi dan Konfigurasi Pin
Pada sistem yang dirancang digunakan Arduino Mega 2560
sebagaipengendali RFID reader dan finger print scanner. Catu daya untuk kedua
perangkat tersebut diambil dari pin 3.3V dan pin 5V Arduino Mega 2560.
Sedangkan Arduino Mega 2560 sendiri mendapat catu daya dari jalur USB
komputer. Gambar komunikasi dan konfigurasi pin perangkat keras yang
Gambar 3.5Komunikasi dan Konfigurasi Pin Sistem
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.
Komunikasi antara Arduino dengan komputer menggunakan komunikasi
serial asinkron (UART). Pin 0 digunakan sebagai pin RX dan pin 1 sebagai TX.
Pin ini terhubunng ke mikrokontroler ATMEGA 8U2. Mikrokontroler ini telah
diprogram oleh pabrikan sebagai pengantara komunikasi antara ATMEGA 2560
sebaliknya. Diagram blok yang menggambarkan hubungan Arduino Mega
2560dengan komputer dapat dilihat pada gambar 3.6.
Gambar 3.6Komunikasi Arduino Mega 2560 dengan PC
6.4 Perancangan Perangkat Lunak
Perangkat lunak dirancang menggunakan bahasa pemrograman C++
yang diupload ke Arduino. Program tersebut akan digunakan Arduino Mega 2560
untuk mengatur modul RFID reader dan finger print scanner. Sedangkan
perangkat lunak yang berfungsi untuk interface(pengantara)user ke sistem
dibangun menggunakan Matlab.
Arduino menggunakan IDE Arduino untuk melakukan kompilasi
danuploading program. Saat menggunakan IDE Arduino ini diperlukan beberapa
pengaturan agar proses uploading program dapat berlangsung dengan baik dan
benar. Beberapa hal yang harus diatur adalah board(jenis Arduino yang
digunakan) dan port(nomor port serial yang digunakan). Program yang telah
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
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
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
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
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
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
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
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
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
IMPLEMENTASI DAN PENGUJIAN
7.1 Implementasi
Perangkat yang digunakan pada tahap implementasi adalah Arduino
Mega2560, MF522-AN, ZFM-20 dan komputer. Arduino Mega 2560 berperan
sebagai host dari ZFM-20 dan MF522-AN. Sedangkan komputer digunakan
sebagai tempat pengolahan data RFID tag (kartu), data sidik jari sekaligus tempat
penampil informasi verifikasi juga digunakan untuk percobaan perbandingan citra
sidik jari. Implementasi perangkat keras dapat dilihat pada gambar 4.1.
Gambar 4.1Implementasi Perangkat Keras
PC Arduino MF5222-AN
Mifare Ultralight
Tahap-tahap implementasi yang dilakukan adalah sebagai berikut :
1. Menentukan perangkat keras yang dibutuhkan seperti: ArduinoMega2560,
kabel USB, PCB, MF522-AN, ZFM-20 dan PC
2. Membangun konstruksi perangkat keras dari bahan yang telah ditentukan.
3. Menginstal aplikasi yang dibutuhkan seperti Matlab dan IDE Arduino
Sketch.
4. Menulis program dalam bahasa pemrograman Matlab dan C++ Arduino.
7.2 Pengujian
Pengujian dilakukan untuk mengetahui performansi dari sistem yang
dirancang dan untuk meneliti sistem dengan berbagai percobaan sehingga dapat
ditemukan informasi baru yang bermanfaat untuk penelitianselanjutnya. Pengujian
dilakukan dengan menguji setiap tahapan proses yang dilakukan dalam sistem.
7.2.1 Pengujian Pembacaan UID oleh IDE Arduino
Pengujian pembacaan UID dilakukan dengan mengupload program ke
Arduino kemudian akan memerintahkan MF522-AN untuk membaca UID
melalui. Keberhasilan pembacaan UID kartu dapat dilihat pada gambar 4.2. Pada
pengujian inidisediakan sepuluh buah kartu. Setiap kartu mewakiliindividu
anggota. Hasil pembacaan dengan sepuluh kartu Mifare Ultralight dapat dilihat
7.2.2 Pengujian Pembacaan UID oleh Matlab
Pengujian ini dilakukan untuk memastikan UID yang telah diterima
Arduino dapat sampai ke komputer dengan baik. UID tersebut dibaca oleh
Tabel 4.1Hasil Pengujian Pembacaan UID menggunakan Arduino
Kart
komputer secara serial melalui Matlab menggunakan fungsi serial(), fopen(),
fscanf() dan menampilkannya di command window. Keberhasilan pembacaan data
serial oleh Matlab dapat dilihat pada gambar 4.3 dan untuk hasil pengujiannya
dapat dilihat pada tabel 4.2.
Gambar 4.3Keberhasilan Pembacaan UID menggunakan Matlab
Tabel 4.2Hasil Pengujian Pembacaan UID menggunakan Matlab
7.2.3 Pengujian Baca dan Tulis Memori Kartu
Pengujian ini dilakukan untuk memastikan penulisan dan pembacaan
memori kartu berhasil dilakukan. Percobaan ini dilakukan dengan memanfaatkan
pustaka MFRC522.h. Disini Arduino akan membaca memori kartu kemudian
menulis memori kartu dengan nilai ‘AA’ yang dimulai dari page4 hingga 15.
Selanjutnya Arduino akan membaca kembali isi memori kartu untuk memastikan
penulisan yang telah dilakukan berhasil. Hasil pengujian tulis baca kartu dapat
dilihat pada gambar 4.4.
7.2.4 Pengujian Pembacaan Sidik Jari menggunakan Arduino
Citra sidik jari yang ditangkap oleh ZFM-20 ini adalah berukuran
baris kali kolom yaitu 288x256 pixel (73728 byte) namun perlu diketahui citra
tersebut akan diencode terlebih dahulu oleh modul sensor finger print ZFM-20
sebelum dikirim ke komputer melalui arduino. Encoding dilakukan dengan
menggabungkan 4bit MSB setiap byte yang berdekatan menjadi satu byte.
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 kita terima nantinya adalah hasil encoding sehingga yang terbaca adalah
FF,E1,E8,… .
Pada pengujian ini, ZFM-20 akan mengirim data ke Arduino dalam
bentuk paket. Paket yang dikirim adalah data packet dan end of data
packetdengan masing-masing paket berukuran 139 byte. Jika diuraikan 139 byte
packet tersebut berisi2byte header, 4 byte address, 1 byte package identifier, 2
byte length, 128byte data sidik jari dan 2byte checksum. Data packet akan dikirim
sebanyak 287 kali kemudian diikuti 1 kali end data packetpada kiriman terakhir
sehingga total data yang diterima Arduino adalah 288 x 139byte.
Perlu diketahui citra sidik jari akan dibaca secara serialdan diuji dengan
baudrate default ZFM-20 yaitu 57600bps. Dalam kasus pembacaan citra sidik jari
melalui Arduino ini akan diketahui seperti kekonsistenan data, kevalidan data
serta perbandingan data antara ukuran citra sidik jari yang diacu sesuai datasheet
7.2.5 Pengujian Pembacaan Sidik Jari menggunakan Matlab
Pengujian ini dilakukan dengan langkah yang sama dengan pengujian
sebelumnya. Kecepatan baudrate yang digunakan adalah 57600 bps (default
baudrate modul ZFM-20). Pada pembacaan citra sidik jari melalui Matlab ini
modul ZFM-20 ini tidak terhubung dengan Arduino, namun ZFM-20
dihubungkan langsung ke socket USB komputer melalui perangkat serial to USB
converter.
Pada pengujian ini, ZFM-20 akan mengirim data ke Arduino dalam
bentuk paket. Paket yang dikirim adalah jenis data packet dan end of data packet
masing-masing paket berukuran 139 byte. Jika diuraikan 139 byte packet tersebut
berisi 2byte header, 4 byte address, 1 byte package identifier, 2 byte length,
128byte 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.
Dari pengujian ini akan diketahui : kekonsistenan data, kevalidan data
serta perbandingan data antara ukuran citra sidik jari yang diacu sesuai datasheet
dengan ukuran data sidik jari yang dibaca langsung dengan Matlab.
7.2.6 Pengujian Perbandingan Pembacaan Sidik Jari Antara Arduino dengan Matlab
Pada pengujian sebelumnya telah dilakukan pengujian pembacaan citra
sidik jari melalui Arduino dan Matlab secara terpisah. Langkah-langkah pengujian
yang dilakukan pada pengujian ini sama seperti langkah pada pengujian