Perancangan Sistem Verifikasi Keanggotaan Dengan Kartu Cerdas Nirkontak Berbasis Arduino Mega 2560

(1)

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

REZA AL KAUTSAR LUBIS

090402101


(2)

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,

NIP. 195405311986011002 Ir. SURYA TARMIZI KASIM, M.Si.


(3)

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 :


(4)

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 menyampaikan ucapan terima kasih kepada :


(5)

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 teman-teman angkatan 2009 lainnya.


(6)

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


(7)

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


(8)

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


(9)

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


(10)

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


(11)

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


(12)

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 tersebut diperlukan sistem yang bertugas untuk melindungi hak-hak anggota


(13)

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, verifikasi dilakukan dengan cara mentap kartu ke reader kemudian sistem akan


(14)

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 mendapatkan gelar sarjana teknik elektro.


(15)

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 pemrograman Arduino untuk dapat mengolah data dari RFID reader


(16)

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 yang dilakukan pada prototipe ini.


(17)

BAB V : KESIMPULAN DAN SARAN

Bab ini merupakan bab terakhir yang memuat rangkuman sebagai kesimpulan penulis dan saran yang dianggap penting agar dapat dikembangkan lebih lanjut.


(18)

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 tentunya dengan mengacu kepada peraturan serta prosedur yang telah ditetapkan.


(19)

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 dan berbagai jenis Arduino lainnya.


(20)

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


(21)

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.


(22)

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


(23)

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 dari luar non-USB seperti melalui Adaptor AC to DCdan baterai. Jangkauan


(24)

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 perangkat komunikasi serial yang bekerja dengan metode asinkron.Pada


(25)

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 dimuatishift register PISO kemudian data tersebut dimuati ke receive buffer.


(26)

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 dibawah pada gambar 2.6.


(27)

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 ATMega8U2 yang telah diprogram oleh pabrikan Arduino sebagai serial to USB


(28)

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 diterima oleh RFID reader dan diubah menjadi informasi digital. Informasi


(29)

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


(30)

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 lembah (valley).


(31)

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. Jika ID cocok (match) artinya verifikasi berhasil dilakukan dan pemilik kartu


(32)

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


(33)

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 instruksi untuk membaca/menulis kartu atau membaca sidik jari. Sinyal yang


(34)

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 Catu daya : +5V melalui USB


(35)

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 dari produksi NXP[15].


(36)

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 mudah penggunaannya dan lebih efektif commandpacket nya. Host yang


(37)

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 MFRC5xx lainnya memiliki kompatibilitas yang terlalu luas yaitu mampu


(38)

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 dari host. Gambar Mifare Ultralight dapat dilihat pada gambar 3.3.


(39)

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.


(40)

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 dirancang dapat dilihat pada gambar 3.5.


(41)

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 dengan komputer.ATMEGA 8U2 ini akan mengkonversi data USB ke serial atau


(42)

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 dikompilasi dan telah diupload akan dieksekusi. Data serial yang dibaca oleh


(43)

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


(44)

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.


(45)

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


(46)

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


(47)

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.


(48)

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


(49)

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.


(50)

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


(51)

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


(52)

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.


(53)

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


(54)

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 pada tabel 4.1.


(55)

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 Ke

UID

Hasil Pembacaan

Kartu

Percobaan ke Rata-rata

Jarak (cm) 1 2 3

6 7 8 9

Waktu (µs)

Waktu (µs)

Waktu (µs)

Waktu (µs)

1 04 FC EB D1 D9 02 80 V x X x 1408 1472 1464 1448

2 04 E9 39 D1 D9 02 80 V x X x 1464 1460 1412 1445

3 04 FB 5F D1 D9 02 80 V x X x 1460 1464 1464 1462

4 04 EB 42 D1 D9 02 80 V x X x 1472 1460 1464 1465

5 04 F3 8F D1 D9 02 80 V x X x 1468 1468 1460 1465

6 04 EA 47 D1 D9 02 80 V x X x 1464 1464 1464 1464

7 04 FB 5A D1 D9 02 80 V x X x 1464 1468 1464 1465

8 04 ED 67 D1 D9 02 80 V x X x 1464 1464 1464 1464

9 04 F1 C5 D1 D9 02 80 V x X x 1468 1468 1460 1465

10 04 F8 48 D1 D9 02 80 V x X x 1460 1468 1460 1462


(56)

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

Kart ke

UID

Hasil Pembacaan

Kartu

Percobaan ke Rata-rata

Jarak (cm) 1 2 3

6 7 8 9

Waktu (µs)

Waktu (µs)

Waktu (µs)

Waktu (µs)

1 04 FC EB D1 D9 02 80 v x X x 5952 5887 6215 6018

2 04 E9 39 D1 D9 02 80 v x X x 6083 5710 5845 5897

3 04 FB 5F D1 D9 02 80 v x X x 5607 6069 5756 5810

4 04 EB 42 D1 D9 02 80 v x X x 5724 5947 5719 5796

5 04 F3 8F D1 D9 02 80 v x X x 5232 5607 6036 5625

6 04 EA 47 D1 D9 02 80 v x X x 6787 4506 5705 5666

7 04 FB 5A D1 D9 02 80 v x X x 5933 6045 6106 6028

8 04 ED 67 D1 D9 02 80 v x X x 5822 5710 6717 6083

9 04 F1 C5 D1 D9 02 80 v x X x 5915 6493 5896 6101


(57)

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.


(58)

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 dengan ukuran data sidik jari yang dibaca dengan Arduino.


(59)

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 sebelumnya namun di ujicoba dengan beberapa tingkat kecepatan baudrate yang


(60)

7.3 Analisis Hasil Pengujian

Pengujian pertama yang dilakukan adalah menguji waktu pembacaan UID dari kartu oleh sistem. Dari pengujian pembacaan UID melalui Arduino, RFID readerberhasil membaca kartupada jarak 6cm dengan waktupembacaan 1ms(14448~1465 µs). Selanjutnya pengujian pembacaan UID oleh Arduino yang diteruskanke komputer melalui serial port dengan bantuan Matlab. Dari pengujian tersebut ditemukan RFID reader berhasil membaca kartu pada jarak 6cm dengan keseluruhan waktu pembacaarn 6ms (5666~6101 µs). Kemudian pengujian yang dilakukan adalah pengujian pada proses baca tulis memori padakartu menggunakan RFID reader.Ditemukan bahwa memori kartu berhasil untuk ditulis dan dibaca.

Pengujian yang kedua dilakukan adalah menguji pembacaan sidik jari melaluifinger print scanneroleh sistem. Dari hasil pengujian pembacaan sidik jari menggunakan Arduino diketahui bahwa banyaknya data yang dibaca dari finger print scanner oleh Arduino tidak konsisten. Selanjutnya juga diketahui bahwa data packet hanya ditemukan 1 kali dan tidak ditemukan end ofdata packet. Berbeda dengan teori yang seharusnya data packet ditemukan sebanyak 287 kali dan end data packetsebanyak 1 kali. Dari pengujian juga diketahui perbandingan ukuran citra yang diacu sesuai datasheet sebesar 288x256 pixel (73728 byte) dengan ukuran citra hasil pembacaan yang telah didecode sebesar 1x256 (256 byte) pixel adalah 1 : 0.00347222 atau data yang terbaca terbaca hanyalah 0.0035% dari ukuran citra yang diinginkan.


(61)

Pengujian selanjutnya adalah pembacaan sidik jari menggunakan Matlab tanpa prantara Arduino artinya finger print scanner langsung terhubung ke komputer melalui perangkat serial to USB converter.Dari pengujian tersebut diketahui bahwa banyaknya pembacaan data serial dari Matlab lebih konsisten. Selanjutnya juga diketahui bahwa start data packetyang ditemukan sebanyak 287 paket dan disertai 1 end data packet. Dari pengujian juga diketahui perbandingan antara ukuran citra yang diacu sesuai datasheetsebesar 288x256 pixel (73728 byte) dengan ukuran citra hasil pembacaan yang telah didecode sebesar 288x256 pixel (73728 byte) adalah sebesar 1 : 1. Sehingga dapat ditentukan citra sidik jari yang dibaca langsung melalui Matlab lebih valid. Hal tersebutdikarenakandata packet dan end of data packetberhasil ditemukan seluruhnya kemudian citra yang diinginkandengan citra hasil pembacaan berukuran keduanya berukuran sama 288x256.

Pengujian selanjutnya adalah membandingkan pembacaan sidik jari darimelalui Arduino terhadappembacaan sidik jari langsung menggunakan Matlab. Dari pengujian tersebut semakin diketahui bahwadata packet dan ukuran data sidik jari yang dibaca melalui Arduino tidak konsisten meskipun kecepatan baudrate telah divariasikan, dari pengujian tersebut juga ditemukan bahwa semakin rendah kecepatan baudrate semakin banyak ukuran data yang dapat dibaca oleh Arduino. Untuk pembacaan data sidik jari langsung melalui Matlabdiketahui bahwa data packet dan ukuran data sidik jaridapat dibaca dengan format dan ukuran data yang sesuai dengan dataseheet.


(62)

KESIMPULAN DAN SARAN

8.1 Kesimpulan

Pada pembahasan dan analisa dari bab-bab sebelumnya maka dapat diambil 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. Keseluruhan waktu pembacaan UID kartu oleh komputer adalah 6ms (5666~6101 µs). Waktu 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 daripada menggunakan perantara Arduino.

5. Kecepatan baudrate mempengaruhi banyaknya data yang dapat dibaca oleh Arduino. Kecepatan yang paling optimal, diperoleh pada kecepatan 9600 bps dengan data yang dibacamencapai 9851 byte.


(63)

8.2 Saran

Untuk meningkatkan kinerja dari prototipe yang dirancang sebaiknya diarahkan pada hal-hal berikut :

1. Pada pengembangannya penggunaan sistem operasi dan perangkat lunak yang berbasis open sourcedapat meminimalkan biaya.

2. Untuk menambah jumlah anggota organisasi yang dapat diverifikasi dengan sistem ini maka sistem dapat diperluas dengan menambahkan memori eksternal.

3. Untuk 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.


(64)

DAFTAR PUSTAKA

[1] M. Vatsa, R. Singh, P.Gupta and A.K.Kaushik. [Online]. Available:

http://encyclopedia.jrank.org/articles/pages/6556/Biometric-Technologies.html. [Diakses Januari 2015].

[2] D. Maltoni, D. Maio, A. K. Jain and S. Prabkahar, Handbook of Fingerprint Recognition, 2 ed., Springer Press.

[3] "Scribd," [Online]. Available:

https://www.scribd.com/doc/175442473/CIRI-UNSUR-DAN-TEORI-ORGANISASI-pdf. [Diakses Januari 2015].

[4] B. Benedictus, "mobgenic," [Online]. Available:

http://www.mobgenic.com/2013/03/14/apakah-itu-arduino-bagaimana-arduino-merevolusi-tren-melalui-konsep-open-source/. [Diakses 2014].

[5] [Online]. Available: http://www.mantech.co.za/datasheets/products/A000047.pdf.

[Diakses 2014].

[6] Arduino, "Arduino," [Online]. Available: http://arduino.cc/en/Hacking/PinMapping2560. [Diakses 2014].

[7] Atmel. [Online]. Available: http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Components/General%20IC/254

9S.pdf. [Diakses 2014].

[8] Wikipedia, "Wikipedia," 1 Januari 2015. [Online]. Available: http://en.wikipedia.org/wiki/Serial_communication. [Diakses 2015]. [9] B. A. Forouzan, Data Communications and Networking, 2 ed., Singapore:

McGraw-Hill, 2001.

[10] P. Tarigan, Sistem Tertanam (Embedded System), Yogyakarta: Graha Ilmu, 2010.

[11] P. Sweney II, RFID for Dummies, Indiana: Willey Publishing, 2005.

[12] Wikipedia, "Wikipedia," 24 November 2014. [Online]. Available: http://en.wikipedia.org/wiki/ISO/IEC_7810. [Diakses 2014].

[13] Finkenzeller and Klaus, RFID Handbook Fundamentals And Applications In Contactless Smart Cards, Radio Frequency Identification And Near-Field Communication, Jhon Willey & Son, 2010.


(65)

[14] Gorefray, "Gorefray Card Service Co.,Ltd," [Online]. Available: http://www.gorferay.com/nxp-semiconductors/.

[15] smartcardbasics, "smartcardbasics," CardLogix Productions, [Online]. Available: http://www.smartcardbasics.com/smart-card-types.html. [Diakses 2014].

[16] ISO/IEC, "ISO/IEC," 4 11 2008. [Online]. Available: http://wg8.de/wg8n1496_17n3613_Ballot_FCD14443-3.pdf. [Diakses 2014].

[17] ZhianTec, "ZFM-20 Series Fingerprint Identification Module User Manual," September 2008. [Online]. Available: http://www.adafruit.com/datasheets/ZFM%20user%20manualV15.pdf . [Diakses 2014].


(66)

LAMPIRAN A

LISTING KODE PROGRAM

ARDUINO

#include <Adafruit_Fingerprint.h> #include <SoftwareSerial.h>

#include <EEPROM.h>

#include <SPI.h> //pustaka SPI #include <MFRC522.h> //pustaka MFRC522

/************************************************* KONFIGURASI & INISIALISASI RFID Reader MF522-AN ***************************************************/ #define SS 53

#define RST 42 /*

Konfigurasi pin ARDUINO MEGA 2560 ke MFRC522 BOARD

Reset 42 SS 53 MOSI 51 MISO 50 SCK 52 */

unsigned char uidskrg[7] = {0,0,0,0,0,0,0}; unsigned char uidbru[7] = {0,0,0,0,0,0,0}; int i;

MFRC522 mfrc522(SS, RST);

/************************************************* INISIALISASI EEPROM

**************************************************/ // UID and Image address start from 2

// For address 0 and 1 is used for the saving the last address

//Variable for accessing EEPROM //Address EEPROM start from 0 uint16_t addr = 0;

uint16_t val[] = {0};

uint8_t viDaddr; uint8_t temp[137];

uint8_t valFinger[137]; uint8_t verSign = 0;

uint16_t lastaddr = 0; uint16_t lbyte = 0; uint16_t hbyte = 0;


(1)

% --- Executes during object creation, after setting all properties.

function axes4_CreateFcn(hObject, eventdata, handles)

% hObject handle to axes4 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% handles empty - handles not created until after all CreateFcns called

img = imread('front_page.png'); imshow(img)

% Hint: place code in OpeningFcn to populate axes4 % --- Executes on button press in Verifikasi.

function Verifikasi_Callback(hObject, eventdata, handles)

% hObject handle to Verifikasi (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA) global s;

status = s.Status;

if status(1,4) == 's'

newstatus = char(zeros(1,4));

for i=1:4

newstatus(1,i)= status(1,i);

end

status = newstatus;

end

if (status == 'open') pause(.1);

else

fopen(s); delay(.1);

i = 0; n = 0;

while i <= 4 i = i+1; n = fscanf(s)

pause(.1); n = strtrim(n);

set(handles.txtMSG,'String', n);

if (i==4)

sz = size(n);

if (sz <= 1)

if (n == '~')

break else


(2)

set(handles.txtMSG,'String', 'Serial data error, unplug and plug or reprogram Arduino');

break;

end end else

set(handles.txtMSG,'String', 'Serial data error, unplug and plug or reprogram Arduino');

break;

end end end end while 1

axes(handles.axes4);

gmb = imread('Scan Kartunya.jpg'); imshow(gmb);

set(handles.txtMSG,'String','Please verify'); set(handles.uipanel5,'Visible','off');

set(handles.uipanel3,'Visible','on');

[~,~,UIDx] = xlsread('Daftar_Anggota',1,'A4:G50'); %membaca file database (daftar anggota.xls) dan menyimpannya ke variabel UIDx

fwrite(s,'#'); pause(.1);

while 1

if (s.BytesAvailable == 23)

uid = fscanf(s); % baca UID(melalui serial COM)

pause(.5);

if (isempty(uid)==1)

continue;

end

uid = strtrim(uid); %membuang karakter selain karakter huruf dan angka

sprintf('%s',uid) flushinput(s);

break;

end end

set(handles.txtMSG,'String','Verifying...'); inow = 1;

det=0;

while(inow<=47 && det~=1)

%DATA PRIBADI TERDAFTAR if uid == UIDx{inow,2}

%FIGURE DATA PRIBADI

axes(handles.axes4);

gmb = imread('Verifikasi Berhasil.jpg'); imshow(gmb);

pause(3);


(3)

set(handles.txtVerNama,'String',UIDx{inow,3}); set(handles.txtVerAlmat,'String',UIDx{inow,4}); set(handles.txtVerTTL,'String',UIDx{inow,5}); set(handles.txtVerEmail,'String',UIDx{inow,6}); set(handles.txtVerEmail,'String',UIDx{inow,7});

set(handles.textVerUID,'String',UIDx{inow,2}); set(handles.txtVerIDfin,'String',UIDx{inow,1});

pause(3);

set(handles.uipanel6,'Visible','off'); pause(1);

det=1;

end

inow=inow+1;

end

if(det~=1)

%FIGURE DATA TIDAK TERDAFTAR

axes(handles.axes4);

gmb = imread('Verifikasi Gagal.jpg'); imshow(gmb);

pause(3);

gmb = imread('Scan Kartunya.jpg'); imshow(gmb);

end

flushinput(s); pause(1);

end

% --- Executes during object creation, after setting all properties.

function Verifikasi_CreateFcn(hObject, eventdata, handles)

% hObject handle to Verifikasi (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% --- Executes during object creation, after setting all properties.

function txtVerNama_CreateFcn(hObject, eventdata, handles)

% hObject handle to txtVerNama (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% --- Executes during object creation, after setting all properties.

function textResult_CreateFcn(hObject, eventdata, handles)

% hObject handle to textResult (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB


(4)

% handles empty - handles not created until after all CreateFcns called

% --- Executes during object creation, after setting all properties.

function textVerAlmat_CreateFcn(hObject, eventdata, handles)

% hObject handle to textVerAlmat (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% --- Executes during object creation, after setting all properties.

function textVerTTL_CreateFcn(hObject, eventdata, handles)

% hObject handle to textVerTTL (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% --- Executes during object creation, after setting all properties.

function textVerTelp_CreateFcn(hObject, eventdata, handles)

% hObject handle to textVerTelp (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% --- Executes during object creation, after setting all properties.

function textVerEmail_CreateFcn(hObject, eventdata, handles)

% hObject handle to textVerEmail (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% --- Executes during object creation, after setting all properties.

function textVerUID_CreateFcn(hObject, eventdata, handles)

% hObject handle to textVerUID (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% --- Executes during object creation, after setting all properties.


(5)

function uipanel6_CreateFcn(hObject, eventdata, handles)

% hObject handle to uipanel6 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% --- Executes during object creation, after setting all properties.

function btn_OK_CreateFcn(hObject, eventdata, handles)

% hObject handle to btn_OK (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% --- Executes during object creation, after setting all properties.

function txtFINGER_CreateFcn(hObject, eventdata, handles)

% hObject handle to txtFINGER (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% --- Executes during object creation, after setting all properties.

function figure1_CreateFcn(hObject, eventdata, handles)

% hObject handle to figure1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% --- Executes on button press in pushbutton12.

function pushbutton12_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton12 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA) global s;

status = s.Status;

if status(1,4) == 's'

newstatus = char(zeros(1,4));

for i=1:4

newstatus(1,i)= status(1,i);

end

status = newstatus;

end

if (status =='open') fclose(s);


(6)

else

pause(.1);

end

set(handles.uipanel1,'Visible','off'); set(handles.uipanel3,'Visible','off'); set(handles.uipanel5,'Visible','on');

set(handles.txtMSG,'String', 'Choose Register or Verify...');

% --- Executes during object creation, after setting all properties.

function pushbutton12_CreateFcn(hObject, eventdata, handles)

% hObject handle to pushbutton12 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% --- Executes during object creation, after setting all properties.

function axes5_CreateFcn(hObject, eventdata, handles)

% hObject handle to axes4 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: place code in OpeningFcn to populate axes4

% --- Executes during object creation, after setting all properties.

function txtVerTelp_CreateFcn(hObject, eventdata, handles)

% hObject handle to txtVerTelp (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% --- Executes during object creation, after setting all properties.

function txtVerIDfin_CreateFcn(hObject, eventdata, handles)

% hObject handle to txtVerIDfin (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called