PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LAPORAN TUGAS AKHIR
SISTEM KEAMANAN PORTAL PERUMAHAN BERBASIS RFID
Disusun Oleh: Eleonora Anggi Ardaninggar 125114023
PROGRAM STUDI TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2016
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
FINAL PROJECT REPORT
HOUSING PORTAL SECURITY SYSTEM BASED ON RFID
By: Eleonora Anggi Ardaninggar 125114023
DEPARTMENT OF ELECTRICAL ENGINEERING FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2016
ii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP
“ Segala sesuatu yang kamu kehendaki supaya orang perbuat kepadamu, perbuatlah demikian juga kepada mereka.” – Matius 7:12.
“Lakukan segala sesuatu dari hati, karena ketulusan akan selalu berbuah baik.”
Karya ini kupersembahkan untuk..... Tuhan Yesus Kristus, Tuhan dan Penyelamatku Bunda Maria, Ibuku yang baik hati Mama dan Papa tercinta, untuk doa, waktu, dan dukungannya yang selalu diberikan Almamaterku Universitas Sanata Dharma, yang sudah memberikan banyak pengalaman dan kesempatan untuk mengembangkan potensi diri
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
INTISARI Penelitian ini mengembangkan teknologi RFID untuk security system yakni membuat sistem keamanan suatu perumahan yang minim kesalahan dan juga lebih ketat dari sekedar pengamanan yang dilakukan oleh satpam. Dengan memanfaatkan teknologi RFID ditambah dengan sistem penyimpanan database, diharapkan penelitian ini akan menghasilkan suatu alat prototype berupa portal otomatis yang di pasang pada maket perumahan dan diuji dengan menggunakan mobil RC untuk mewakili mobil aslinya. Prototype sistem keamanan portal perumahan berbasis RFID di buat dengan menggunakan 4 buah RFID reader yakni masing-masing 2 buah RFID ID-12 dan 2 buah RFID SL018, menggunakan 2 buah motor servo untuk menggerakkan palang portal serta menggunakan 2 buah rangkaian sensor photodiode untuk mendeteksi ada atau tidaknya mobil yang melewati portal dengan menggunakan kepekaan cahaya sensor. Berdasarkan pengujian, penelitian ini menghasilkan prototype alat sistem keamanan portal perumahan berbasis RFID walaupun sistem tidak stabil, menggunakan 2 jenis RFID berdasarkan jarak bacanya yakni RFID ID-12 dan RFID SL018 dimana jarak baca RFID ID-12 hanya ±3cm tegak lurus dari antena, dan jarak baca RFID SL018 ±1cm dari antena. Kerja motor servo berdasarkan pengujian pulsa yang diberikan dan sudut yang dihasilkan adalah berbanding terbalik, sensor photodioda yang digunakan juga memberikan hasil deteksi yang baik, dan sistem database yang dibuat sudah menyediakan fasilitas menyimpan, menambah, mengubah dan menghapus data yang dimasukkan oleh petugas. Kata Kunci: Sistem Keamanan Portal, RFID, Database, Sensor Photodioda, Servo.
viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRACT This research develop RFID technology to make a housing portal security system that errorless and more secure than safekeeping by the security guard. With harness RFID technology added with database system, expected that this research will bear a housing portal prototype and tested with remote control car to represent real car. Prototype of housing portal security system based on RFID made with 4 RFID readers which is consist two types of readers each 2 RFID ID-12 and 2 RFID SL018, use 2 servo motors to move the portal and also use 2 photodiode sensors to detect the car with light sensors. Based on testing, this research develop the prototype of housing portal security system based on RFID although unstable, use two kind of RFID reader posit their length ability to detect the tag that are RFID ID-12 and RFID SL018 whre the length detection of RFID ID-12 only ±3 cm and length detection of RFID SL018 about ±1cm from the anntena. Servo works opposite with the pulse that give and the degree that resulted, the photodiode sensor results a good length of detection, and the database system that made have a feature to add, save, change, and delete data that inputed by the user. Keywords: Portal Security System, RFID, Database, Photodiode Sensor, Servo.
ix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
KATA PENGANTAR Puji syukur saya haturkan kepada Tuhan Yesus Kristus dan Bunda Maria yang telah melimpahkan berkat-Nya. Sehingga saya dapat menyelesaikan Laporan Tugas Akhir ini. Pada kesempatan ini saya ingin mengucapkan terima kasih kepada pihak – pihak yang telah membantu saya dalam menyelesaikan skripsi ini, baik dalam hal bimbingan, perhatian, kasih sayang, semangat, kritik, dan saran yang telah diberikan. Ucapan terima kasih ini saya sampaikan antara lain kepada : 1. Bapak Sudi Mungkasi, S.Si., M. Math. Sc., Ph.D., selaku Dekan Fakultas Sains dan Teknologi Universitas Sanata Dharma Yogyakarta. 2. Bapak Petrus Setyo Prabowo, S.T., M.T., selaku Ketua Jurusan Teknik Elektro Universitas Sanata Dharma. 3. Bapak Ir. Tjendro, M.Kom, selaku Dosen Pembimbing Akademik Teknik Elektro angkatan 2012 dan Pembimbing Tugas Akhir. Terima kasih untuk semua bimbingan yang telah diberikan dengan kesabaran sehingga saya dapat menyelesaikan Tugas Akhir ini. 4. Mama, Papa, Edgar, terima kasih atas waktu, dukungan, kasih sayang dan semangat yang tiada henti sehingga saya dapat menyelesaikan Tugas Akhir ini. 5. Kak Paulus Alexander Eldwin Pradana (Kak Alex), kakak angkatan tahun 2011 yang telah membantu, mengoreksi program dan juga memberi masukan kepada saya selama mengerjakan Tugas Akhir ini. 6. Bapak Subroto, Bapak Mardi, dan Bapak Suryono laboran-laboran laboratorium Teknik Elektro yang selalu membantu untuk melancarkan saya dan teman-teman 2012 dalam pengerjaan Tugas Akhir. 7. Teman-teman penghuni ruang TA dan Teknik Elektro angkatan 2012 yang selalu mendukung, mendengarkan curahan hati, menemani, menghibur, dan membantu saya dalam mengerjakan Tugas Akhir. 8. Teman-teman ex-kepanitiaan (Tia, Cik Novi, Ocka, Happy, Mbah, Vian, Yosua,
Monic, dkk.) dan teman-teman lain yang sering menemani dan membantu saya mengerjakan skripsi di perpustakaan, kos, dan tempat nongkrong. Terkhusus Vian
x
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR ISI HALAMAN JUDUL ...................................................................................................... i HALAMAN PERSETUJUAN ...................................................................................... iii HALAMAN PENGESAHAN ....................................................................................... iv PERNYATAAN KEASLIAN KARYA ........................................................................ v HALAMAN PERSEMBAHAN DAN MOTTO HIDUP ............................................ vi HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI KARYA .................. vii INTISARI ....................................................................................................................... viii ABSTRACT ................................................................................................................... ix KATA PENGANTAR ................................................................................................... x DAFTAR ISI .................................................................................................................. xii DAFTAR TABEL .......................................................................................................... xiii DAFTAR GAMBAR ..................................................................................................... xiv
BAB I PENDAHULUAN 1.1. Latar Belakang ...................................................................................................... 1 1.2. Tujuan dan Manfaat Penelitian ............................................................................. 2 1.3. Batasan Masalah .................................................................................................... 2 1.4. Metode Penelitian .................................................................................................. 3
BAB II LANDASAN TEORI 2.1. RFID (Radio Frequency Identification ................................................................ 5 2.1.1. Tag RFID ..................................................................................................... 6 2.1.2. Jenis Tag RFID ............................................................................................ 6 2.1.3. Tipe Memori Tag ......................................................................................... 8 2.1.4. Reader RFID ................................................................................................ 9 2.2. RFID ID-20 .......................................................................................................... 9 2.3. RFID SL018 ......................................................................................................... 10 2.4. MySQL ................................................................................................................ 11 2.5. Microsoft Visual Basic 6.0 .................................................................................. 11 2.6. Mikrokontroler AVR ATMega32 ........................................................................ 12 xii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2.6.1. Arsitekstur AVT ATMega32 ....................................................................... 13 2.6.2. Konfigurasi Pin ATMega32 ......................................................................... 13 2.6.3. Organisasi Memori ....................................................................................... 14 2.6.3.1. Memori Program .................................................................................. 14 2.6.3.2. Memori Data ......................................................................................... 15 2.6.4. Timer/Counter .............................................................................................. 15 2.6.4.1. Timer/Counter0 .................................................................................... 15 2.6.4.2. Mode Operasi ....................................................................................... 16 2.6.5. Komunikasi Serial USART ..................................................................... 18 2.7. Sensor Photodiode ............................................................................................. 22 2.8. LED Infrared ..................................................................................................... 23 2.9. Motor Servo ....................................................................................................... 24
BAB III RANCANGAN PENELITIAN 3.1. Model Sistem ..................................................................................................... 26 3.2. Spesifikasi Prototype Perangkat Keras ............................................................. 27 3.3. Perancangan Perangkat keras ............................................................................ 28 3.3.1. Perancangan Modul RFID Reader ID-20 dan SL018 .................................. 29 3.3.2. Motor Servo ................................................................................................. 30 3.3.3. Sensor Photodiode ........................................................................................ 30 3.4. Peracangan Perangkat Lunak ............................................................................ 31 3.4.1. Perancangan Pengidentifikasian Tag RFID ................................................. 31 3.4.2. Perancangan Database .................................................................................. 32 3.4.3. Perancangan Mikrokontroler ........................................................................ 34 3.4.4. Perancangan User Interface Menggunakan Visual Basic 6.0 ...................... 35
BAB IV HASIL DAN PEMBAHASAN 4.1. Hasil Perancangan dan Sistem Kerja Keseluruhan Sistem ............................... 38 4.2. Hasil Perancangan Perangkat Keras .................................................................. 39 4.2.1. Pengaturan Sudut Motor Servo .................................................................... 40 4.2.2. Pengaturan Jarak Kerja Sensor Photodioda ................................................. 42 4.3. Hasil Perancangan Perangkat Lunak ................................................................. 44 4.3.1. Hasil Pemrograman Mikrokontroler ............................................................ 44 xiii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4.3.1.1. Pembacaan Tag RFID .......................................................................... 45 4.3.1.2. Pengendalian Motor Servo ................................................................... 48 4.3.1.3. Komunikasi Serial Dua Arah Mikrokontroler dan Komputer .............. 49 4.3.1.4. Subrutin Program Utama ...................................................................... 49 4.3.2. Hasil Perancangan Aplikasi di Komputer .................................................... 51 4.3.2.1. Perancangan Sistem Database .............................................................. 51 4.3.2.2. Halaman Login Aplikasi ...................................................................... 53 4.3.2.3. Halaman Perekaman Aktivitas Keluar dan Masuk Kendaraan ............ 55 4.3.2.4. Halaman Pendaftaran ........................................................................... 57 4.3.2.5. Halaman Yang Menampilkan Data Pemilik, Tamu dan Satpam .......... 58 4.3.2.6. Pencetakan Laporan dari Aplikasi ........................................................ 62 4.3.2.7. Konektivitas Aplikasi Dengan Database .............................................. 63
BAB V KESIMPULAN DAN SARAN 5.1. Kesimpulan ........................................................................................................ 66 5.2. Saran .................................................................................................................. 66
Daftar Pustaka ............................................................................................................... 67 Lampiran ………………………………………………………………………… L1 - L49
xiv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR TABEL Tabel 2.1. Karakteristik RFID ID-20 .............................................................................. 10 Tabel 2.2. Penentuan Ukuran Karakter ........................................................................... 21 Tabel 3.1. Perhitungan Nilai OCR ................................................................................... 30 Tabel 4.1. Perhitungan Error Lebar Pulsa Motor Servo Standar .................................... 40 Tabel 4.2. Hasil Pengujian Motor Servo Dengan Pulsa ................................................... 41 Tabel 4.3. Hasil Pengujian Sensor Photodioda 1 ............................................................ 43 Tabel 4.4. Tabel Hasil Pengujian Sensor Photodioda 2 .................................................. 43 Tabel 4.5. Hasil Pengujian Jarak Deteksi RFID Reader ID-12 ....................................... 46
xv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR GAMBAR Gambar 2.1. Komponen sistem RFID ............................................................................. 5 Gambar 2.2. Tag RFID .................................................................................................... 6 Gambar 2.3. Komponen Tag Pasif .................................................................................. 7 Gambar 2.4. Komponen Tag Semi Pasif ......................................................................... 8 Gambar 2.5. Komponen Tag Aktif .................................................................................. 8 Gambar 2.6. RFID ID-20 ................................................................................................. 10 Gambar 2.7. RFID SL018 ............................................................................................... 10 Gambar 2.8 Konfigurasi Pin Mikrokontroler ATMega32 ............................................... 13 Gambar 2.9. Peta Memori Flash Mikrokontroler ATMega32 ........................................ 15 Gambar 2.10. Peta Memori Data Mikrokontroler ATMega32 ........................................ 15 Gambar 2.11. Mode Phase Correct PWM ...................................................................... 17 Gambar 2.12. Mode Fast PWM ...................................................................................... 17 Gambar 2.13. Register UDR ........................................................................................... 18 Gambar 2.14. Register UCSRA ....................................................................................... 19 Gambar 2.20. Register UCSRB ....................................................................................... 20 Gambar 2.21. Register UCSRC ....................................................................................... 21 Gambar 2.22. Simbol Sensor Photodiode ....................................................................... 22 Gambar 2.23. Rangkaian Sensor Photodiode .................................................................. 23 Gambar 2.24. Bentuk Fisik Motor Servo ........................................................................ 24 Gambar 3.1. Diagram Blok Perancangan Sistem Keamanan Portal Perumahan ............. 26 Gambar 3.2. Dimensi Prototype Mobil ........................................................................... 27 Gambar 3.3. Perancangan Portal Tampak Atas ............................................................... 27 Gambar 3.4. Perancangan Portal Tampak Depan ............................................................ 28 Gambar 3.5. Rangkaian Lengkap Sistem Keamanan Portal Perumahan ......................... 28 Gambar 3.6. Diagram Rangkaian Modul RFID Reader .................................................. 29 Gambar 3.7. Perancangan 4 buah RFID reader dengan mikrokontroler ......................... 29 Gambar 3.8. Lebar Pulsa Motor Servo ............................................................................ 30 Gambar 3.9. Rangakaian Sensor Photodiode .................................................................. 31 Gambar 3.10. Perancangan Perangkat Lunak Identifikasi RFID .................................... 32 Gambar 3.11. Perancangan Perangkat Lunak DatabaseI ................................................ 34 Gambar 3.12. Perancangan Perangkat Lunak Mikrokontroler ........................................ 35 xvi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gambar 3.13. Halaman Login Untuk Mengakses Halaman Aktivitas ............................ 36 Gambar 3.14. Tampilan Halaman Aktivitas .................................................................... 36 Gambar 3.15. Diagram Alir Halaman Login ................................................................... 36 Gambar 3.16. Perancangan Perangkat Lunak Visual Basic 6.0 ...................................... 37 Gambar 3.17. Halaman Pendaftaran Tamu Komplek Perumahan.......................................37 Gambar 4.1. Prototype Pos Satpam ....................................................................................38 Gambar 4.2. Prototype Kotak Palang/Portal ......................................................................38 Gambar 4.3. Mobil Mendekati RFID Reader ......................................................................39 Gambar 4.4. Tag RFID Terdeteksi .....................................................................................39 Gambar 4.5. Portal Terbuka Sesaat Tag RFID Terdeteksi ..................................................39 Gambar 4.6. Sudut 20° .......................................................................................................40 Gambar 4.7. Sudut 40° .......................................................................................................40 Gambar 4.8. Sudut 60° .......................................................................................................40 Gambar 4.9. Grafik Linearitas Sudut Terhadap Pulsa ........................................................41 Gambar 4.10. Rangkaian Sensor Photodioda .....................................................................42 Gambar 4.11. Pengujian Sensor .........................................................................................42 Gambar 4.12. Kondisi Awal Sensor ...................................................................................42 Gambar 4.13. Kondisi Sensor Saat Diberi Penghalang ......................................................44 Gambar 4.14. Listing Program Pembacaan Tag untuk RFID Reader ID-12 ......................45 Gambar 4.15. Hasil Pembacaan Tag untuk RFID Reader ID-12 .......................................46 Gambar 4.16. Listing Program Pembacaan Tag Untuk RFID Reader SL018 ....................47 Gambar 4.17. Hasil Pembacaan Tag Untuk RFID Reader SL018 .....................................47 Gambar 4.18. Listing Program Pengendali Motor Servo ...................................................48 Gambar 4.19. Listing Program Komunikasi Serial Komputer-Mikro ................................ 49 Gambar 4.20. Listing Program Utama ................................................................................50 Gambar 4.21. Listing Program Membuat Suatu Database..................................................52 Gambar 4.22. Query Untuk Membuat Sebuah Tabel .........................................................52 Gambar 4.23. Hasil Perancangan Tabel Dalam Database .................................................52 Gambar 4.24. ER-Diagram Perancangan Database ...........................................................53 Gambar 4.25. Listing Program Halaman Login .................................................................54 Gambar 4.26. Hasil Pengujian Halaman Login ..................................................................54 Gambar 4.27. Listing Program Komunikasi Serial Pada Aplikasi .....................................55 Gambar 4.28. Listing Program Memperbaharui Data Aktivitas Keluar-Masuk Kendaraan56 xvii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gambar 4.29. Hasil Tampilan Halaman Aktivitas Keluar Dan Masuk Kendaraan ............56 Gambar 4.30. Listing Program Penyimpanan Data Tamu Ke Tabel Tamu ........................57 Gambar 4.31. Halaman Pendaftaran Tamu ........................................................................58 Gambar 4.32. Hasil Pengamatan Halaman Pendaftaran Tamu ..........................................58 Gambar 4.33. Listing Program Menampilkan Untuk Data Pemilik Atau Satpam ..............59 Gambar 4.34. Hasil Pengamatan Halaman Tampilan Data Satpam ...................................59 Gambar 4.35. Query Menambahkan Data Pemilik Atau Satpam Ke Dalam Database .....60 Gambar 4.36. Menambahkan Data Pemilik Atau Satpam Ke Dalam Database ................60 Gambar 4.37. Hasil Penambahan Data Pemilik Atau Satpam Ke Dalam Sistem Database60 Gambar 4.38. Query Untuk Mengubah Data Pemilik Atau Satpam Di Dalam Database .61 Gambar 4.39. Data Satpam Dari Database Yang Akan Di Ubah Dan Diperbaharui .........61 Gambar 4.40. Query Untuk Menghapus Data Dari Tabel Pemilik Atau Tabel Satpam .....62 Gambar 4.41. Hasil Penghapusan Data Dari Tabel Pemilik Atau Tabel Satpam ...............62 Gambar 4.42. Percobaan Akses Menggunakan Data Tag RFID Yang Tidak Tersimpan ...62 Gambar 4.43. Pembuatan Layout Laporan .........................................................................63 Gambar 4.44. Query Untuk Memanggil Tabel Aktivitas Dan Pemilik .............................. 63 Gambar 4.45. Listing Program Laporan Halaman Aktivitas ..............................................63 Gambar 4.46. Hasil Laporan Halaman Aktivitas ............................................................... 64 Gambar 4.47. Listing Program Koneksi Database Dan Aplikasi .......................................64 Gambar 4.48. Hasil Koneksi Antara Database Dan Aplikasi .............................................65
xviii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB I PENDAHULUAN 1.1.
LATAR BELAKANG Pada zaman modern ini, peningkatan kegiatan ekonomi-sosial terjadi sangat
signifikan [1]. Hal ini dipicu karena berkembangnya aktivitas di pasar modal dunia, sehingga berdampak pada meningkatnya kegiatan ekonomi-sosial di dunia termasuk di Indonesia. Sejalan dengan peningkatan ekonomi-sosial, teknologi juga terus berkembang mengimbangi kebutuhan pasar yang semakin meningkat dan beragam. Teknologi yang ada saat ini tidak lagi terbatas tetapi sudah mencakup hampir seluruh aspek kehidupan [2]. Dengan peningkatan ini juga berdampak pada peningkatan taraf hidup masyarakat dan salah satunya berdampak pada kebutuhan akan rumah tinggal yang aman, nyaman, bersih. Teknologi menjadi salah satu komponen penting dalam sebuah kompleks perumahan dimana sistem keamanan dengan bantuan teknologi jauh lebih efektif dan efisien dibanding dengan cara pengamanan tradisional dengan ronda keliling, meskipun kenyataannya beberapa kompleks perumahan yang menerapkan dua metode pengamanan ini baik secara tradisional ataupun modern yang berbasis teknologi. Melihat hal itu banyak developer property berlomba-lomba membangun kompleks perumahan dengan mengunggulkan sistem keamanannya dan sesuai dengan target pasarnya. Berdasarkan permasalahan tersebut, penulis berusaha mengembangkan penelitian mengenai sistem keamanan dengan teknologi sebagai tonggak utamanya. Banyak penelitian yang telah menggunakan teknologi RFID (Radio Frequency Indentification) dalam sistem pengamanan seperti sistem pengamanan parkir di gedung-gedung perkantoran maupun di pusat perbelanjaan sebagai kriteria utamanya. Teknologi RFID sendiri merupakan pengembangan dari tekonologi nirkabel yang lebih praktis ketimbang dengan teknologi sebelumnya seperti tag card ataupun barcode yang membutuhkan waktu serta tag reader yang sesuai agar dapat mengenali sebuah obyek, yang kadang tidak terbaca dengan baik apabila tidak pas peletakkannya dan juga memakan waktu yang sedikit lebih lama. Selain itu, yang membedakan penelitian ini dengan penelitian-penelitian mengenai sistem RFID yang sudah pernah ada yaitu dengan adanya penambahan sistem database dan data record yang akan memaksimalkan fungsi sistem RFID dalam sistem keamanan portal 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 2
perumahan yang akan dibuat. Hal ini akan menciptakan sistem keamanan dengan tingkat secure lebih tinggi dibandingkan dengan sistem keamanan berbasis RFID lainnya, karena memungkinkan adanya perekaman data pengakses dan juga aktivitas keluar masuk kendaraan dalam kompleks perumahan untuk meminimalisir hal-hal yang tidak diinginkan terjadi. Pada penelitian ini, teknologi RFID digunakan sebagai sistem keamanan portal kompleks perumahan di mana setiap tag RFID yang telah didata, diletakkan di bagian dalam mobil warga yang tinggal di kompleks perumahan tersebut. Tag RFID yang digunakan dapat dibaca dengan segala kondisi dan jarak tertentu untuk alasan keamanan, tidak tergantung oleh toleransi horisontal maupun vertikal seperti yang terdapat pada teknologi barcode. Selain itu, juga pembandingan data yang diterima dengan data yang ada di database lebih akurat.
1.2.
TUJUAN DAN MANFAAT Tujuan dari penelitian ini adalah menciptakan suatu prototype alat sistem keamanan
kompleks perumahan dengan menggunakan RFID (Radio Frequency Identification). Manfaat penelitian ini adalah dapat memberi pengetahuan baru dari perkembangan teknologi pada sistem keamanan pada masyarakat dan juga memberikan solusi teknologi terbarukan pada sistem keamanan terutama sistem keamanan kompleks perumahan bagi para developer property.
1.3.
BATASAN MASALAH Untuk menghindari terlalu kompleksnya masalah yang muncul, oleh karena itu
dibuat batasan-batasan masalah untuk membatasi topik tugas akhir ini, yaitu: 1. Menggunakan Tag RFID yang bersifat read/write. 2. Modul RFID Reader ID-20 dan RFID SL018 digunakan untuk membaca tag RFID. 3. Mikrokontroler 8 bit sebagai kontrol. 4. Sensor photodiode digunakan untuk mendeteksi apakah mobil telah melewati portal atau belum. 5. Motor servo digunakan untuk menggerakkan palang portal, yaitu membuka dan menutup. 6. Menggunakan 2 buah Tag RFID yang mewakili data pemilik rumah dan tamu. 7. Menggunakan 2 buah portal yang berfungsi sebagai pintu masuk dan pintu keluar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 3
kompleks perumahan.
1.4.
METODOLOGI PENELITIAN
Agar dapat mencapai tujuan yang diinginkan metode-metode yang digunakan dalam penyusunan tugas akhir ini adalah: 1. Studi Literatur Membaca buku, makalah, artikel, serta jurnal-jurnal untuk memperoleh pengertian, tinjauan pustaka, referensi dan dasar-dasar teori yang berkaitan dengan permasalahan yang akan dibahas pada penelitian ini. 2. Pengamatan. Mencari data tambahan serta melihat secara langsung pengaplikasian topik yang dibahas agar dapat membuat sebuah perbandingan dan menerapkan beberapa prinsip kerja yang hampir sama, serta mencari referensi dari video. 3. Perancangan Perangkat Keras dan Perangkat Lunak Merancang gambaran umum mengenai perangkat keras dan perangkat lunak prototype alat yang akan dibuat dengan mempertimbangkan faktor-faktor permasalahan dan kebutuhan yang telah ditentukan, juga untuk mencari spesifikasi terbaik dari perangkat keras prototype alat yang akan dibuat. 4. Pengujian Sistem Gabungan Melakukan pengujian sistem secara keseluruhan baik perangkat keras maupun perangkat lunaknya sebagai satu prototype alat sistem kemanan kompleks perumahan. Menjalankan aplikasi perangkat lunak masing-masing bagian dan komunikasi antar bagian, kemudian menjalankan sistem perangkat keras dengan perintah dari perangkat lunak dan sensor. Menguji setiap sub-sistem yang ada dalam model perencanaan sistem keamanan portal perumahan berbasis RFID. 5. Proses Pengambilan Data. Pengambilan data dilakukan setelah semua bagian dalam prototype alat bekerja sesuai dengan tujuan penelitian yang dimaksud. Data diambil dari tegangan masukan dan keluaran serta pengondisian sinyal data yang diperoleh dari komunikasi dua arah pada mikrokontroler yang ada dalam setiap sub-sistem. Mengambil data berupa jarak pembacaan tag RFID sebagai data yang mewakili pengujian seluruh sistem. 6. Analisis dan Kesimpulan. Dilakukan pembahasan mengenai sistem perangkat lunak dan juga perangkat keras yang dibuat, membahas perhitungan serta membandingkan data yang didapat dari
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 4
hitungan teoritis dengan data yang di dapatkan saat keseluruhan sistem perangkat keras dan perangkat lunak dijalankan. Analisa dan pengambilan kesimpulan diambil berdasarkan persentase error yang muncul pada sistem secara keseluruhan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB II LANDASAN TEORI 2.1. RFID (Radio Frequency Identificaton) RFID adalah kepanjangan dari radio frequency identification, yang merupakan pengembangan
teknologi
komunikasi
wireless
yang
digunakan
secara
unik
mengidentifikasi benda atau orang yang di tag [3]. RFID menggunakan teknologi yang memanfaatkan frekuensi radio untuk identifikasi otomatis terhadap suatu obyek [4]. RFID digunakan untuk mempermudah pekerjaan manusia yang awalnya harus mengidentifikasi obyek satu per satu secara manual menjadi otomatis dan terprogram. Hal ini juga dapat mengurangi human error akibat pencatatan identitas obyek secara manual [5]. Dengan teknologi RFID ini, identitas obyek akan dicatat dengan mudah dan cepat. Terdapat tiga komponen utama pada sistem RFID (gambar 2.1), yaitu: a. Tag (Transponder), yang terdiri dari chip semikonduktor, sebuah antena, dan untuk beberapa jenis memiliki baterai. b. Reader (Interogator), yang terdiri dari antena, modul elektronik RF, dan modul kontrol elektronik. c. Controller, yang biasanya diambil dari PC atau workstation running database dan sofware kontrol.
Gambar 2.1. Komponen sistem RFID [3] Secara ringkas, mekanisme kerja yang terjadi dalam sebuah sistem RFID adalah bahwa sebuah reader frekuensi radio melakukan scanning terhadap data yang tersimpan dalam tag, kemudian mengirimkan informasi tersebut ke sebuah controller. Tag dan reader mengkomunikasikan informasi satu dengan yang lainnya melalui gelombang radio. Ketika obyek tag memasuki area pembacaan reader (interogator), reader akan memberi sinyal pada tag agar mengirim informasi data yang dibawanya. Setelah 5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6 reader mendapatkan informasi data dari tag, maka informasi tersebut akan di lanjutkan ke kontroler dengan jaringan interface standar seperti ethernet, LAN, dan atau internet. Kontroler akan menggunakan informasi data yang diterima untuk berbagai macam tujuan.
2.1.1. Tag RFID Fungsi utama tag RFID adalah untuk menyimpan data dan juga untuk mentransmittkan ke reader (interogator). Secara umum, chip elektronik memuat memori untuk menyimpan banyak data yang akan dibaca dan kadang untuk menulis data, dalam penambahan sirkuit yang penting. Sebuah tag terdiri atas chip (microchip) dan sebuah antena (Gambar 2.2). Chip tersebut menyimpan nomor seri yang unik atau informasi lainnya. Antena yang terpasang pada chip mengirimkan informasi dari chip ke reader. Biasanya rentang pembacaan diindikasikan dengan besarnya antena. Antena yang lebih besar mengindikasikan rentang pembacaan yang lebih jauh. Tag tersebut terpasang atau tertanam dalam obyek yang akan diidentifikasi. Tag dapat dibaca dengan reader bergerak maupun stasioner menggunakan gelombang radio [4]. Tag RFID sangat bervariasi dalam hal bentuk dan ukuran. Sebagian tag mudah ditandai, misalnya tag anti pencurian yang terbuat dari plastik keras yang dipasang pada barang-barang di toko. Tag untuk tracking hewan yang ditanam di bawah kulit berukuran tidak lebih besar dari bagian lancip dari ujung pensil. Bahkan ada tag yang lebih kecil lagi yang telah dikembangkan untuk ditanam di dalam serat kertas uang.
Gambar 2.2. Tag RFID
2.1.2. Jenis Tag RFID Tag dapat diklasifikasikan menjadi 3 jenis, yaitu tag pasif, tag aktif, dan tag semi aktif (disebut juga semi pasif) [6]. Pengelempokan ini berdasarkan pada ada tidaknya catu daya pada tag dan kemampuannya untuk menginisiasi komunikasi dengan reader.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7 1. Tag Pasif Tag versi paling sederhana adalah tag pasif, yaitu tag yang tidak memiliki catu daya sendiri serta tidak dapat menginisiasi komunikasi dengan reader. Sebagai gantinya, tag merespon emisi frekuensi radio dan menurunkan dayanya dari gelombang energi yang dipancarkan oleh reader. Sebuah tag pasif minimal mengandung sebuah indentifier unik dari sebuah item yang dipasangi tag tersebut. Data tambahan dimungkinkan untuk ditambahkan pada tag, tergantung kepada kapasitas penyimpanannya. Contoh aplikasi tag pasif adalah pada pass transit, pass masuk gedung, dan barang-barang konsumsi [8]. Komponen tag pasif ditunjukkan pada Gambar 2.3.
Gambar 2.3. Komponen Tag Pasif [6] 2. Tag Semi Pasif Tag semi pasif adalah versi tag yang memiliki catu daya sendiri (baterai) tetapi tidak dapat menginisiasi komunikasi dengan reader [8]. Dalam hal ini, baterai digunakan oleh tag sebagai catu daya untuk melakukan fungsi yang lain seperti pemantauan keadaan lingkungan dan mencatu bagian elektronik internal tag, serta untuk memfasilitasi penyimpanan informasi. Tag versi ini tidak secara aktif memancarkan sinyal ke reader. Tag semi pasif tag disebut juga battery-assisted tag [9]. Pada komunikasi antara tag dan reader dengan tag ini, reader selalu mengkomunikasikan terlebih dahulu, baru kemudian diikuti oleh tag. Tag ini dapat dihubungkan dengan sensor untuk menyimpan informasi untuk peralatan keamanan. Gambar 2.4. menunjukkan komponen tag semi pasif.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
Gambar 2.4. Komponen Tag Semi Pasif [9] 3. Tag Aktif Tag aktif adalah tag yang selain memiliki antena dan chip, juga memiliki catu daya dan pemancar serta mengirimkan sinyal kontinyu [8]. Tag versi ini biasanya memiliki kemampuan baca tulis, dalam hal ini data tag dapat ditulis ulang dan dimodifikasi. Tag aktif dapat menginisiasi komunikasi dan dapat berkomunikasi pada jarak yang lebih jauh, tergantung pada daya baterainya. Pada komunikasi antara tag dan reader dengan tag ini, tag selalu memulai terlebih dahulu, baru kemudian diikuti oleh reader. Gambar 2.5. menunjukkan komponen tag aktif.
Gambar 2.5. Komponen Tag Aktif [6]
2.1.3. Tipe Memori Tag Seperti yang telah disebutkan di atas, sebuah chip pada sebuah tag berfungsi untuk menyimpan nomor seri yang unik atau informasi lainnya. Ketentuan penyimpanan dan pengisiannya tergantung pada tipe memorinya. Klasifikasi tipe memori tag adalah ReadOnly (RO), Write Once-Read Many (WORM), dan Read-Write (RW). 1. Read Only (RO) Sebuah tag RO hanya dapat diprogram atau diisi sekali dalam penggunaanya [9].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9 Data diisikan oleh pabrikan pada saat proses produksi. Setelah itu, data sama sekali tidak dapat dituliskan kembali pada tag. Tag tipe ini memiliki kapasitas memori minimum (biasanya kurang dari 64 bit) dan mengandung data yang terprogram permanen sehingga tidak dapat diubah [10]. 2. Write Once, Read Many (WORM) Sebuah tag dengan tipe memori WORM dapat diprogram atau satu sekali. Berbeda dengan tipe RO, pengisian tidak dilakukan oleh pabrikan tetapi dilakukan sendiri oleh pengguna [9]. 3. Read Write (RW) Pada tag dengan tipe memori RW, data dapat dimutakhirkan jika diperlukan [10]. Sebagai konsekuensinya kapasitas memorinya lebih besar dan harganya lebih mahal dibandingkan tag RO. Tag dengan tipe memori RW menawarkan keuntungan yang luar biasa karena data yang telah terisi dapat ditulis ulang dan diubah oleh pengguna [9].
2.1.4. Reader RFID Untuk berfungsinya sistem RFID, diperlukan sebuah reader atau alat scanning yang dapat membaca tag dengan benar dan mengkomunikasikan hasilnya ke suatu controller[10]. Reader disebut juga interogator, yaitu perangkat yang dapat membaca data pada tag dan mengisi data pada tag. Jadi reader juga berfungsi sebagai writer [9]. Dalam kasus tag pasif, reader berfungsi juga sebagai catu daya untuk mengaktifkan tag. Reader merupakan jembatan antara tag dengan controller [11]. Reader memiliki beberapa komponen utama, yaitu transmitter, receiver, microprocessor, memory, input/output channels, communication interface, dan power [7].
2.2. RFID ID-20 Salah satu jenis RFID reader high frequency. ID-20 merupakan reader yang khusus mendeteksi RFID tag frekuensi 125kHz. Berdasarkan acuan yang ada RFID tag yang kompatibel dengan ID-20 diantaranya EM4001. Dengan membaca sekitar ± 16 cm [12]. Bentuk fisik ID-20 yang sering dijumpai diperlihatkan pada gambar 2.6. ID-20 tidak memiliki kemampuan untuk baca-tulis (Read-Write) pada sebuah tag, hanya dapat membaca data saja (Read only). Spesifikasi lengkap Modul RFID reader ID-20 dapat dilihat pada Tabel 2.1 berikut.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10 Tabel 2.1. Karakteristik RFID ID-20 Parameter Baca Dimensi Frekuensi Format Kartu Encoding Manchaster Jenis Catudaya Arus Output I/O Jangkauan Catudaya
RFID ID-20 Sampai ±16 cm 26mm x 25mm x 7mm 125kHz GK4001/EM4001 atau yang compatible 64-bit, modulus 64 5 VDC pada 30mA +4.6V – 5.4V
Gambar 2.6. RFID ID-20
2.3. RFID SL018 Salah satu jenis RFID adalah jenis Mifare. RFID (reader dan tag) ini bekerja pada frekuensi tinggi (high frequency) yakni 13,56 MHz. Gambar 2.7. menunjukkan modul RFID SL018.
Gambar 2.7. RFID SL018 Berdasarkan pada datasheet RFID SL018, RFID ini dapat membaca tag berjenis Mifare 1k, Mifare 4k, Mifare Ultra Light dan NFC NATG203 [5]. Untuk menggunakan modul ini, digunakan komunikasi I2C (Inter Integrated Circuit). Sumber tegangan yang dibutuhkan modul ini berkisar antara 4,5 V hingga 7 V. RFID ini dapat membaca tag yang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11 berjarak hingga 60 mm. Dilengkapi pula pin TagSta sebagai indikator ada tidaknya tag disekitarnya.
2.4. MySQL MySQL (My Structured Query Language) adalah sebuah program pembuat dang pengelola data yang sering disebut dengan DBMS (Database Management System) [5]. MySQL menyediakan fasilitas-fasilitas untuk mengatur dan mengelola database, serta menyediakan bahasa pemrograman SQL (Structured Query Language, biasa dibaca sebagai “sekuel”) untuk mengolah database client-server. MySQL mulai memperkenalkan penggunaan Stored Procedure dan Trigger, sehingga menjadikan MySQL sebagai penyedia layanan pemrograman client-server secara penuh. Adapun kelebihan-keleihan MySQL adalah sebagai berikut [13]: a. MySQL sebagai Database Management System (DBMS). b. MySQL sebagai Relational Database Management System (RDBMS). c. MySQL bersifat open source atau gratis. d. MySQL merupakan database server dan merupakan database client. Mampu menyimpan data berkapasitas sangat besar. e.
MySQL memiliki kecepatan dalam pembuatan tabel maupun peng-upadate-an tabel.
ODBC adalah singkatan dari Open Database Connectivity. ODBC merupakan standar yang dikembangkan Microsoft untuk melakukan koneksi database melalui driverdriver yang independen terhadap suatu produk. Konektor ODBC adalah program dan driver yang bisa mengalikan suatu program (termasuk program database server, misalnya MySQL) dengan ODBC [14]. MySQL menyediakan berbagai macam konektor ODBC dalam berbagai platform (sistem operasi) dan versi program.
2.5. Microsoft Visual Basic 6.0 Visual Basic 6.0 merupakan aplikasi pemrograman visual yang dibuat oleh Microsoft. Visual Basic 6.0 berjalan dalam sistem operasi Windows dan tergabung dalam suite aplikasi Microsoft Visual Studio 6.0. Visual Basic 6.0 (atau yang disingkat dengan VB 6.0) adalah perangkat unak untuk menyusun program aplikasi yang bekerja dalam sistem operasi Windows [15]. Visual Basic 6.0 menggunakan pendekatan GUI (General User Interface) dalam
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12 proses penggunaannya, sehingga proses pembuatan program menjadi lebih mudah dan nyaman. Visual Basic 6.0 menggunakan bahasa pemrograman even drive, program yang menunggu sampai adanya respon dari pemakai yang berupa kejadian tertentu. Dengan kecanggihan yang ditawarkan Visual Basic 6.0 user dimanjakan dengan mudahnya menyusun program dengan tampilan grafis yang menawan [16]. Dalam pembuatan program Visual Basic 6.0 digunakan dua tipe kode, yaitu form untuk meletakkan control, fungsi dan variabel. Selain itu ada juga module untuk meletakkan prosedur/fungsi dan variabel [17]. Kode merupakan milik dari obyek yang disisipkan kode. Obyek atau control lainnya tidak dapat menggunakan kode yang bukan menjadi miliknya. Jika sebuah blok kode akan digunakan bersama, maka kode tersebut diletakkan di luar control. Blok kode disebut dengan prosedur atau fungsi. Prosedur atau fungsi diletakkan pada suatu obyek lain yang disebut dengan modul, dan pada form. Prosedur/fungsi diletakkan pada modul dapat digunakan oleh seluruh program, sedangkan prosedur/fungsi yang diletakkan pada form hanya dapat digunakan oleh form yang mengandung prosedur/fungsi tersebut. Terdapat tiga edisi Visual Basic 6.0 yang dikeluarkan oleh Microsoft yakni Standard Edition, Professional Edition, dan Enterprise Edition. Pada penelitian ini digunakan Visual Basic 6.0 Enterprise Edition untuk membuat aplikasi yang bersifat server based. Program program aplikasi standar dapat berjalan dengan baik jika menggunakan versi ini. Ada beberapa fasilitas tambahannya yaitu: a. Aplikasi Performance Explorer. b. Pendukung Microsoft Transaction Server 2.0. c. Visual Component Manager. d. SQL (Structured Query Language) Debugging. e. Visual Database Tool.
2.6. Mikrokontroler AVR ATMega32 ATMEGA32 termasuk dalam mikrokontroler unit (MCU) 8 – bit keluarga AVR (Alf and Vegard’s Risc Processor) ATMega yang memiliki daya guna tinggi dan penggunaan daya yang rendah [18]. ATMega32 dirancang berdasarkan arsitektur RISC (Reduced Instruction Set Computing), dimana semua instruksi dikemas dalam kode 16 – bit (16 – bits word) dan sebagian besar instruksi dieksekusi dalam 1 (satu) siklus. Hampir semua instruksi dieksekusi dalam satu siklus clock dan mempunyai 32 register general-purpose,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13 timer/counter fleksibel dengan mode compare, interupsi internal dan eksternal, serial UART, programmable Watchdog Timer, dan power saving mode. AVR juga mempunyai ADC, PWM internal dan In-System Programmable Flash on-chip yang mengijinkan memori program untuk diprogram ulang [18].
2.6.1. Arsitektur AVR ATMega32 Mikrokontroler AVR ATMega32 memiliki arsitektur sebagai berikut: a. Saluran IO sebanyak 32 buah, yaitu Port A, Port B, Port C, dan Port D. b. ADC 10 bit sebanyak 8 channel. c. Tiga buah timer/counter yaitu Timer 0, Timer 1, dan Timer 2 d. Watchdog Timer dengan osilator internal. e. SRAM sebanyak 512 byte. f. Memori Flash sebesar 32 kb. g. Sumber Interupsi internal dan eksternal. h. Port SPI (Serial Pheriperal Interface). i. EEPROM on board sebanyak 512 byte. j. Komparator analog. k. Port USART (Universal Shynchronous Ashynchronous Receiver Transmitter).
2.6.2. Konfigurasi Pin ATMega32 Konfigurasi Pin Mikrokontroler ATMega32 dengan kemasan 40 pin DIP (dual inline package) dapat dilihat pada gambar 2.8. Untuk memaksimalkan performa dan paralelisme, AVR menggunakan arsitektur Harvard (dengan memori dan bus terpisah untuk program dan data). Ketika sebuah instruksi sedang dikerjakan maka instruksi berikutnya diambil dari memori program.
Gambar 2.8 Konfigurasi Pin Mikrokontroler ATMega32
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14 Mikrokontroler ATMega32 memiliki konfigurasi pin sebagai berikut: a. VCC (power supply). b. GND (ground). c. Port A (PA7..PA0) Port A berfungsi sebagai input analog pada ADC (Analog Digital Converter). Port A juga berfungsi sebagai suatu Port I/O 8-bit dua arah. d. Port B (PB7..PB0) Port B adalah suatu Port I/O 8-bit dua arah dengan resistor internal pull-up (yang dipilih untuk beberapa bit). e. Port C (PC7..PC0) Port C adalah suatu Port I/O 8-bit dua arah dengan resistor internal pull-up (yang dipilih untuk beberapa bit). f. Port D (PD7..PD0) Port D adalah suatu Port I/O 8-bit dua arah dengan resistor internal pull-up (yang dipilih untuk beberapa bit). g. RESET (Reset input). h. XTAL1 (Input Oscillator). i. XTAL2 (Output Oscillator). j. AVCC adalah pin penyedia tegangan untuk Port A dan ADC. k. AREF adalah pin referensi analog untuk ADC, Port A berfungsi sebagai input analog pada A/D converter (ADC) dan port I/O 8-bit dua arah. Port B, Port C, dan Port D adalah suatu port I/O 8-bit dua arah dengan resistor pull-up (yang dipilih untuk beberapa bit). Pada rangkaian reset, waktu pengosogan kapasitor dapat dihitng dengan persamaan 2.1 [19].
T=RxC
(2.1)
2.6.3. Organisasi Memori Arsitektur AVR memiliki dua ruang memori utama, yaitu ruang memori program dan ruang memori data. ATMega32 juga memiliki fitur EEPROM memori untuk penyimpanan data [18].
2.6.3.1. Memori Program Mikrokontroler ATMega32 memiliki memori flash sebesar 32Kbytes yang bisa diprogram berulang-ulang (reprogrammable). Demi keamanan program, memori flash dibagi menjadi 2 (dua) bagian, yaitu bagian boot program dan bagian application program. Memori flash terletak pada alamat $0000 - $3FFF. Peta memori flash ditunjukkan oleh gambar 2.9.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
Gambar 2.9. Peta Memori Flash Mikrokontroler ATMega32
2.6.3.2. Memori Data Mikrokontroler ATMega32 memiliki SRAM internal sebesar 2Kbytes. Organisasi memori data SRAM pada mikrokontroler ATMega32 dapat dilihat pada peta memori data seperti yang ditunjukkan oleh gambar 2.10 di bawah ini.
Gambar 2.10. Peta Memori Data Mikrokontroler ATMega32
2.6.4. Timer/Counter ATMega32 memiliki tiga modul timer yang terdiri dari dua buah timer/counter 8 bit dan satu buah timer/counter 16 bit. Ketiga modul ini dapat diatur dalam mode yang berbeda-beda secara individu dan tidak saling mempengaruhi satu sama lain. Selain itu semua timer/counter juga dapat difungsikan sebagai pencacahan waktu seperti pada jam digital maupun untuk menghasilkan sinyal PWM (Pulse Width Modulation) yakni sinyal kotak dengan frekuensi dan duty cycle yang nilainya bisa diatur [19].
2.6.4.1. Timer/Counter0 Pada penelitian ini akan digunakan timer/counter0 untuk mengatur pulsa-pulsa
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16 PWM untuk menggerakkan motor servo. Timer/counter0 merupakan timer/counter 8 bit dengan fitur sebagai berikut: a. Timer/counter 1 kanal. b. Auto reloads yaitu timer akan dinolkan kembali saat match compare. c. Dapat menghasilkan pulsa PWM (Pulse Width Modulation) dengan glitch free. d. Frequency generator. e. External Event Counter. f. Prescalar 10 bit untuk timer. g. Membangkitkan interupsi saat timer overflow dan atau match compare. Perhitungan overflow interrupt sebagai pembangkit PWM ditunjukkan pada persamaan 2.2, 2.3, dan 2.4 berikut ini [19].
(2.2)
(2.3)
(2.4)
Keterangan: f
= frekuensi yang digunakan untuk eksekusi program
T
= periode
N
= prescaller yang digunakan
OCR = nilai cacahan pulsa Pulse = lebar pulsa
2.6.4.2. Mode Operasi Berikut adalah mode operasi 1. Mode normal, timer digunakan untuk menghitung saja, membuat delay, dan menghitung selang waktu [20].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17 2. Mode phase correct PWM (PCP), digunakan untuk menghasilkan sinyal PWM dimana nilai register counter (TCNT0) yang mencacah naik dan turun secara terusmenerus akan selalu dibandingkan dengan register pembanding OCR0 [21]. Hasil pembandingan register TCNT0 dan OCR0 digunakan untuk membangkitkan sinyal PWM yang dikeluarkan pada OCR0 seperti ditunjukkan pada gambar 2.11.
Gambar 2.11. Mode Phase Correct PWM [23] 3. CTC (Clear timer on compare match), register counter (TCNT0) akan mencacah naik kemudian di-reset atau kembali menjadi 0x00 pada saat nilai TCNT0 sama dengan OCR0. Sebelumnya OCR diset dulu, karena timer 0 dan 2 maksimumnya 255, maka range OCR 0-255 [19]. 4. Fast PWM, mode ini hamper sama dengan mode phase correct PWM, hanya perbedaanya adalah register counter TCNT0 mencacah naik saja dan tidak pernah mencacah turun seperti gambar 2.12 berikut ini [19].
Gambar 2.12. Mode Fast PWM
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
2.6.5. Komunikasi Serial USART Komunikasi data adalah perpindahan data antara satu atau lebih piranti, perpindahan tersebut dapat dilaksanakan secara parallel atau seri. Komunikasi seri dapat dibedakan menjadi dua macam yaitu, komunikasi data seri sinkron dan asinkron. Suatu komunikasi dapat dikatakan sinkron jika sisi pengirim dan penerima dipicu (clocked) oleh pemicu (clock) yang sama, satu sumber pemicu, data dikirim beserta pemicu. Sedangkan suatu komunikasi dikatakan asinkron jika sisi pengirim dan penerima dipicu oleh pemicu yang terpisah dengan frekuensi yang hampir sama, data dikirim disertai informasi sinkronisasi. Pada proses inisialisasi ini setiap perangkat yang terhubung harus memiliki baudrate yang sama. Beberapa fasilitas yang disediakan USART AVR adalah sebagai berikut: a) Operasi full duplex (mempunyai register receive dan transmit yang terpisah) b) Mendukung kecepatan multiprosesor c) Mode kecepatan berorde Mbps d) Operasi asinkron atau sinkron e) Operasi master atau slave clock sinkron f) Dapat menghasilkan baud-rate (laju data) dengan resolusi tinggi g) Modus komunikasi kecepatan ganda pada asinkron
Inisialisasi USART Pada mikrokontroler AVR untuk mengaktifkan dan mengeset komunikasi USART dilakukan dengan cara mengaktifkan register-register yang digunakan untuk komunikasi USART. Register-register yang digunakan untuk komunikasi USART antara lain:
USART I/O Data Register (UDR) UDR merupakan dua buah register 8 bit dengan alamat yang sama, yang digunakan sebagai tempat untuk menyimpan data yang akan dikirimkan (TXB) atau tempat data diterima (RXB) sebelum data tersebut dibaca, seperti yang terlihat pada gambar 2.13 berikut ini.
Gambar 2.13. Register UDR
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
USART Control and Status Register A (UCSRA)
Gambar 2.14. Register UCSRA
Penjelasan bit penyusun UCSRA: a) Bit 7 - RXC (USART Receive Complete) Bit ini akan berlogika 1 ketika data yang masuk ke dalam UDR belum terbaca dan akan berlogika 0 ketika sudah dibaca. Flag ini digunakan untuk membangkitkan interupsi RX jika diaktifkan dan akan berlogika 0 secara otomatis bersamaan dengan eksekusi vektor interupsi yang bersangkutan. b) Bit 6 - TXC (USART Transmit Complete) Bit ini akan berlogika 1 ketika data yang dikirim telah keluar. Flag ini akan membangkitkan interupsi TX jika diaktifkan dan akan clear secara otomatis bersamaan dengan eksekusi vektor interupsi yang bersangkutan. c) Bit 5 - UDRE (USART Data Register Empty) Flag ini sebagai indikator isi UDR. Jika bernilai 1 maka UDR dalam keadaaan kosong dan siap menerima data berikutnya, jika flag bernila 0 berarti sebaliknya. d) Bit 4 - FE (Frame Error) Bit ini sebagai indikator ketika data yang diterima error, misalnya ketika stop bit pertama data dibaca berlogika 0 maka bit FE bernilai 1. Bit akan bernilai 0 ktika stop bit yang diterima berlogika 0. e) Bit 3 - DOR (Data OverRun) Bit ini berfungsi untuk mendeteksi jika ada data yang tumpang tindih. Flag akan bernilai 1 ketika terjadi tumpang tindih data. f) Bit 2 - PE (Parity Error) Bit yang menentukan apakah terjadi kesalahan paritas. Bit ini akan berfungsi jika ada kesalahan paritas. Bit ini akan berlogika 1 jika terjadi bit parity error apabla bit paritas digunakan. g) Bit 1 - U2X (Double the USART Transmission Speed) Bit yang berfungsi untuk menggunakan laju data menjadi dua kalinya. Hanya berlaku untuk modus asinkron, untuk mode sinkron bit ini diset 0.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20 h) Bit 0 - MPCM (Multi Processor Communication Mode) Bit untuk mengaktifkan modus multi prosessor, dimana ketika data yang diterima oleh USART tidak mengandung informasi alamat akan diabaikan.
USART Control and Status Register B (UCSRB)
Gambar 2.20. Register UCSRB
Penjelasan bit penyusun UCSRB: a) Bit 7 – RXCIE (RX Complete Interrupt Enable) Bit pengatur aktvasi interupsi penerimaan data serial, akan berlogika 1 jika diaktifkan dan berlogika 0 jika tidak diaktifkan. b) Bit 6 – TXCIE (TX Complete Interrupt Enable) Bit pengatur aktivasi pengiriman data serial, akan berloika 1 jika diaktifkan dan berlogika 0 jika tidak diaktifkan. c) Bit 5 – UDRIE (USART Data Register Empty Interrupt Enable) Bit ini berfungsi untuk mengaktifkan interupsi data register kosong, berlogika 1 jika diaktifkan dan sebaliknya. d) Bit 4 – RXEN (Receiver Enable) Bit ini berfungsi untuk mengaktifkan pin RX saluran USART. Ketika pin diaktifkan maka pin tersebut tidak dapat digunakan untuk fungsi pin I/O karena sudah digunakan sebagai saluran penerima USART. e) Bit 3 – TXEN (Transmitter Enable) Bit ini berfungsi mengaktifkan pin TX saluran USART. Ketika pin diaktifkan maka pin tersebut tidak dapat digunakan untuk fungsi pin I/O karena sudah digunakan sebagai saluran pengirim USART. f) Bit 2 – UCSZ2 (Character Size) Bit ini bersama dengan UCSZ1 dan UCSZ0 dalam register UCSRC digunakan untuk memilih tipe lebar data bit yang digunakan, sperti yang ditunjukkan pada tabel 2.2. berikut ini.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21 Tabel 2.2. Penentuan Ukuran Karakter UCSZ[2..0] 0 1 10 11 100-110 111
Ukuran Karakter dalam bit 5 6 7 8 Tidak dipergunakan 9
g) Bit 1 – RXB8 (Receive Data Bit 8) Bit ini digunakan sebagai bit ke-8 ketika menggunakan format data 9-10 bit, dan bit ini harus dibaca dahulu sebelum membaca UDR. h) Bit 0 – TXB8 (Transmit Data Bit 8) Bit ini dipergunakan sebagai bit ke-8 ketika menggunakan format data 9-10 bit, dan bit ini harus ditulis dahulu sebelum membaca UDR.
USART Control and Status Register C (UCSRC)
Gambar 2.21. Register UCSRC
Penjelasan bit penyusun UCSRC: a) Bit 7 - URSEL (Register Select) Bit ini berfungsi untuk memilih register UCSRC dengan UBBRH, dimana untuk menulis atau membaca register UCSRC maka bit harus berlogika satu. b) Bit 6 - UMSEL (USART Mode Select) Bit pemilih mode komunikasi serial antara sinkron dan asinkron. c) Bit 5..4 – UPM[1..0] (Parity Mode) Bit ini berfungsi untuk memilih mode paritas bit yang akan digunakan. Transmitter USART akan membuat paritas yang akan digunakan secara otomatis. d) Bit 3 – USBS (Stop Bit Select) Bit yang berfungsi untuk memilih jumlah stop bit yang akan digunakan. e) Bit 2..1 – UCSZ[1..0] (Character Size) Merupakan bit pengatur jumlah karakter serial bit yang berfungsi untuk memilih
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22 lebar data yang digunakan dikombinasikan dengan bit UCSZ2 dalam register UCSRB. f) Bit 0 – UCPOL (Clock Polarity) Bit yang berguna hanya untuk modus sinkron. Bit ini berhubungan dengan perubahan data keluaran dan sampel masukan, dan clock sinkron (XCK).
2.7. Sensor Photodiode Photodiode adalah dioda yang bekerja berdasarkan intensitas cahaya, jika photodioda terkena cahaya maka photodiode bekerja seperti dioda pada umumnya, tetapi jika tidak mendapat cahaya maka photodiode akan berperan seperti resistor dengan nilai tahanan yang besar sehingga arus listrik tidak dapat mengalir. Simbol sensor photodiode seperti yang ditunjukkan oleh gambar 2.22 berikut.
Gambar 2.22. Simbol Sensor Photodiode Photodiode merupakan sensor cahaya semikonduktor yang dapat mengubah besaran cahaya menjadi besaran listrik. Photodiode merupakan sebuah dioda dengan sambungan p-n yang dipengaruhi cahaya dalam kerjanya. Cahaya yang dapat dideteksi oleh photodiode ini mulai dari cahaya inframerah, cahaya tampak, ultraungu sampai dengan sinar-X. Karena photodiode terbuat dari semikonduktor p-n junction maka cahaya yang diserap oleh photodiode akan mengakibatkan terjadinya pergeseran foton yang akan menghasilkan pasangan electron-hole dikedua sisi dari sambungan. Ketika elektronelektron yang dihasilkan itu masuk ke pita konduksi maka elektron-elektron itu akan mengalir ke arah positif sumber tegangan sedangkan hole yang dihasilkan mengalir ke arah negatif sumber tegangan sehingga arus akan mengalir di dalam rangkaian. Besarnya pasangan elektron ataupun hole yang dihasilkan tergantung dari besarnya intensitas cahaya
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23 yang diserap oleh photodiode [22]. Photodiode digunakan sebagai penangkap gelombang cahaya yang dipancarkan oleh inframerah. Besarnya tegangan atau arus listrik yang dihasilkan oleh photodiode tergantung besar kecilnya radiasi yang dipancarkan oleh inframerah. Sifat dari Photodiode adalah : 1. Jika terkena cahaya maka resistansinya berkurang 2. Jika tidak terkena cahaya maka resistansinya meningkat Dioda dipasang reverse karena pada saat dioda dipasang reverse, maka arus tidak akan mengalir karena hambatan yg sangat besar sekali. Jadi bias dikatakan ini dioda sebagai kondisi Open Circuit jika dianalogikan seperti saklar. namun pada photodiode, hambatan yang besar tadi bisa menjadi kecil karena pengaruh cahaya yang masuk. Hal seperti ini bisa menyebabkan arus mengalir sehingga kondisi seperti ini bisa dikatakan sebagai Close Circuit jika dianalogikan seperti saklar. Arus yang dapat melewati sensor photodiode adalah sebesar 200µA sampai 800µA, sehingga untuk menentukan nilai hambatan agar arus sensor photodiode tidak terlalu besar adalah sebagai berikut [22]: (2.5) Sehingga nilai hambatan untuk sensor photodiode dapat dihitung dengan persamaan diatas dengan asumsi Vcc = 5 volt. Rangkaian umum sensor photodiode ditunjukkan pada gambar 2.23 berikut.
Led Photodiode
Gambar 2.23. Rangkaian Sensor Photodiode
2.8.
LED Infrared LED Infrared merupakan suatu komponen elektronika yang merupakan sumber
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24 cahaya dengan panjang gelombang 750nm – 100nm dan arus maksimal sebesar 100 mA [23]. Aplikasi LED infrared biasa dijumpai pada modul sensor yang behubungan dengan cahaya seperti photodiode dan photo transistor. LED infrared merupakan sumber cahaya yang paling baik untuk sumber cahaya. Prinsip kerja LED infrared sama dengan LED biasa. Perbedaannya cahaya yang dipancarkn pada LED inrfrared berupa cahaya tak tampak. LED infrared memiliki arus maksimal sebesar 100mA. Kelemahan dari LED infrared adalah daya jelajah yang tidak jauh hanya sekitar 7 – 8 meter dengan sudut radiasi sebesar 45° [24]. Penentuan nilai hambatan untuk LED infrared dengan asumsi Vcc = 5 volt yaitu: (2.6)
2.9.
Motor Servo Motor servo merupakan motor DC yang sudah dilengkapi dengan sistem kontrol
didalamnya. Motor ini terdiri dari sebuah motor, serangkaian gear, potensiometer dan rangkaian kontrol. Potensiometer berfungsi untuk menentukan batas sudut dari putaran servo. Sedangkan sudut dari sumbu motor servo diatur berdasarkan lebar pulsa yang dikirim melalui kaki sinyal dari kabel motor. Pada aplikasinya, motor servo digunakan sebagai control loop tertutup, sehingga dapat menangani perubahan posisi secara tepat dan akurat [25]. Motor servo banyak digunakan sebagai aktuator pada mobile robot atau lengan robot. Bentuk fisik motor servo dapat dilihat pada gambar 2.24.
Gambar 2.24. Bentuk Fisik Motor Servo Motor servo umunya terdiri dari servo continuous dan servo standard. Motor servo continuous dapat berputar sebesar 360 derajat. Sedangkan motor servo tipe standard hanya mampu berputar 180 derajat [26]. Untuk menggerakkan motor servo ke kanan atau ke kiri, tergantung dari nilai delay yang diberikan. Untuk membuat motor servo pada posisi center, berikan pulsa 1.5 ms. Untuk memutar servo 90° ke kanan, berikan pulsa kurang dari atau
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25 sama dengan 2 ms dan pulsa lebih besar dari atau sama dengan 1 ms untuk berputar 90° ke kiri. Sistem pengkabelan motor servo terdiri dari tiga bagian, yaitu Vcc, Gnd, dan Kontrol (PWM). Penggunaan PWM pada motor servo berbeda dengan penggunaan PWM pada motor DC. Paada motor servo, pemberian nilai PWM akan membuat motor servo bergerak pada posisi tertentu lalu berhenti (control posisi) [26].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB III RANCANGAN PENELITIAN 3.1. Model Sistem Secara umum perancangan sistem keamanan portal menggunakan beberapa perangkat keras seperti tag RFID, RFID reader, sensor photodiode, mikrokontroler, motor servo, dan unit PC server. Prinsip kerja dari sistem keamanan portal ini adalah tag RFID yang berjenis mifare card dibaca oleh RFID reader, data diterima oleh mikronkontroler kemudian dikirim ke PC server untuk dicocokkan dengan database di PC server, jika data yang diperoleh sesuai maka PC server akan mengirim perintah ke mikrokontroler untuk menggerakkan motor membuka portal dan kemudian mikro menunggu sinyal dari sensor photodiode apakah mobil sudah melewati portal atau belum, jika mobil sudah melewati portal maka secara otomatis mikro akan meenggerakkan motor menutup portal. Gambar 3.1 menunjukkan diagram blok perancangan sistem keamanan portal perumahan.
Sensor Photodiode
RFID Mifare Card
RFID Reader
Mikrokontroler
PC Server
Motor Gambar 3.1. Diagram Blok Perancangan Sistem Keamanan Portal Perumahan Pada penelitian ini kartu yang digunakan berjumlah 2 buah, yang masing - masing untuk pemilik rumah dan tamu. Prinsip kerja kedua kartu terhadap sistem keamanan portal sama yang membedakan hanya kartu untuk pemilik rumah sebelumnya telah memiliki nomor akses kartu, diletakkan di bagian kaca mobil, dan dengan kartu yang sama dapat mengakses portal berulang-ulang. Sedangkan kartu yang diperuntukkan untuk tamu perumahan sebelumnya harus didata terlebih dahulu oleh satpam kemudian mendapatkan nomor akses, dipegang oleh pengguna kartu dan hanya dapat diakses dua kali saja yakni satu kali masuk dan satu kali keluar. 26
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 27
3.2. Spesifikasi Prototype Perangkat Keras Dalam penelitian ini akan digunakan mobil remote kontrol sebagai prototype mobil yang akan digunakan. Dengan dimensi ukuran lebar mobil 19 cm, panjang 39 cm, dan tinggi 13 cm berdasarkan standar ukuran sesungguhnya mobil remote kontrol yang ada di pasaran. Gambar tampak depan dan tampak samping model mobil remote kontrol yang ditunjukkan pada gambar 3.2. berikut ini.
19 cm 39 cm
13 cm
Gambar 3.2. Dimensi Prototype Mobil Gambar 3.3 dan 3.4 berikut menunjukkan bentuk fisik tampak atas dan depan keseluruhan bidang kerja perancangan sistem keamanan portal dalam penelitian ini. 80 cm 5 cm
50 cm
25 cm
Keluar
15 cm
70 cm 20 cm
Masuk
Gambar 3.3. Perancangan Portal Tampak Atas
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 28
27 cm
25 cm
10 cm
12 cm
Gambar 3.4. Perancangan Portal Tampak Depan
3.3. Perancangan Perangkat Keras Secara umum perancangan rangkaian elektronis keseluruhan sistem seperti pada gambar 3.5 berikut ini, yang menunjukkan komunikasi dari RFID reader ke mikrokontroler dan ke komputer.
Gambar 3.5. Rangkaian Lengkap Sistem Keamanan Portal Perumahan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 29
3.3.1. Perancangan Modul RFID Reader ID-20 dan SL018 Perancangan rangkaian elektronis untuk RFID reader modul ID-20 dan SL018 berdasarkan datasheet seperti pada gambar 3.6.
(a) SL018
(b) ID-20
Gambar 3.6. Diagram Rangkaian Modul RFID Reader Dalam penelitian akan digunakan 2 buah modul RFID reader ID-20 dan 2 buah modul RFID reader SL018 untuk masing-masing portal. Modul ID-20 digunakan untuk pembacaan jarak jauh dan modul SL018 digunakan untuk pembacaan jarak dekat. Komunikasi antar modul RFID reader dengan mikrokontroler menggunakan komunikasi USART. Dengan demikian bentuk perancangan modul RFID reader secara keseluruhan seperti gambar 3.7.
Gambar 3.7. Perancangan 4 buah RFID reader dengan mikrokontroler
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 30
3.3.2. Motor Servo Dalam perancangan sistem parkir otomatis ini buka tutup pintu gerbang akan menggunakan motor servo. Motor servo yang akan digunakan berjumlah dua buah, satu buah untuk gerbang masuk dan satu buah lagi untuk gerbang keluar. Untuk mengaktifkan motor servo diperlukan pulsa PWM yang diatur dari mikrokontroler sebagai output mikro. Untuk mendapatkan lebar pulsa PWM yang diinginkan maka perlu menghitung besar nilai OCR, agar sesuai dengan gambar 3.8 berikut ini:
Gambar 3.8. Lebar Pulsa Motor Servo Berikut tabel 3.1 hasil perhitungan lebar pulsa PWM dengan menggunakan rumus perhitungan pulsa PWM yang ada pada landasan teori: Tabel 3.1. Perhitungan Nilai OCR SUDUT
LEBAR PULSA
NILAI OCR
0o
1 ms
43,20
1,5 ms
64,8
o
90
3.3.3. Sensor Photodiode Sensor photodiode digunakan untuk mendeteksi ada atau tidaknya mobil yang melewati portal. Sensor akan aktif selama sitem nyala, jika sensor mendeteksi mobil yang lewat maka portal akan menutup dan sebaliknya jika sensor tidak mendeteksi mobil lewat maka portal akan tetap membuka sampai sensor mendeteksi mobil yang lewat. Berikut gambar 3.9 sensor photodiode yang digunakan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 31
220
27k
Ke Pin PA0 uc
Led
Photodiode
Gambar 3.9. Rangakaian Sensor Photodiode Berdasarkan datasheet mengenai sensor photodiode, dengan besar arus 200µA dan besar tegangan reverse 5 volt [27], maka besar nilai hambatan yang dapat diimplementasikan adaah sebagai berikut: R2 =
= 25 kΩ
Sedangkan untuk nilai hambatan utnuk LED infrared berdasarkan pada dataheet bahwa tegangan yang mengalir maksimal sebesar 5 volt, besar arus yang mengalir maksimalnya adalah 100 mA [28] dan arus minimum adalah 20 mA, dan besar tegangan forward sebesar 1,2 volt, maka: R1 =
= 190 Ω
Dalam implementasinya digunakan resistor 220 Ω. Sedangkan untuk hambatan yang digunakan sensor photodiode adalah sebesar 27 kΩ.
3.4. Perancangan Perangkat lunak Perancangan perangkat lunak dibagi menjadi 3 bagian yaitu perancangan mikrokontroler, user interface dan sistem database dengan menggunakan 3 jenis software program yakni Code Vision AVR untuk pemrograman mikrokontroler, Visual Basic 6.0 untuk pemrograman user interface dan MySQL untuk pemrograman sistem database.
3.4.1. Perancangan Pengidentifikasian Tag RFID Pada perancangan perangkat lunak proses identifikasi tag RFID dibagi menjadi dua bagian, setiap pintu portal terdiri dari 2 RFID reader, RFID reader yang pertama di peruntukkan bagi “member” atau pemilik rumah yang sudah di data dan disimpan datanya
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 32
pada database di PC server, tag RFID yang digunakan diletakkan pada mobil pemilik dan sifatnya permanen. Sedangkan jenis RFID reader yang kedua diperuntukkan bagi tamu perumahan yang diasumsikan tidak terdaftar dalam database di PC server, tag RFID yang digunakan berupa kartu yang sifatnya non-permanen atau kartu yang hanya dapat dipakai sekali waktu (tapping masuk-tapping keluar) dan pada tapping-an berikutnya kartu tidak memiliki data apapun untuk dibaca oleh reader. Perancangan perangkat lunak RFID secara umum ditunjukkan oleh gambar 3.10 berikut.
Gambar 3.10. Perancangan Perangkat Lunak Identifikasi RFID
3.4.2. Perancangan Database Perancangan database yang akan digunakan adalah untuk menyimpan data-data pemilik kartu akses dan merekam aktivitas keluar masuknya mobil di kompleks perumahan, kemudian dapat membuat laporan sederhana mengenai intensitas aktivitas
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 33
keluar-masuk mobil di kompleks perumahan. Sebagai salah satu persyaratan keamanan yang dapat mengakses sistem ini adalah satpam dan ketua RT kompleks perumahan. Peran mereka adalah sebagai berikut: a. Satpam Satpam akan memakai sistem ini untuk menginputkan, menyimpan, meng-update data para tamu. Satpam juga menggunakan sistem ini hanya untuk memantau aktivitas kunjungan dan keluar-masuk kendaraan di kompleks perumahan. b. Ketua RT Ketua RT mencari, menambahkan, menghapus, dan mencetak semua data yang berhubungan dengan warganya termasuk intensitas kunjungan tamu per rumah hunian. Perancangan Database yang di buat pada sistem ini terdiri dari 5 tabel yaitu: a. Tabel Administrator Tabel ini digunakan untuk menyimpan data login setiap user. b. Tabel Aktivitas Tabel ini digunakan untuk menyimpan data aktivitas keluar-masuk mobil di kompleks perumahan. c. Tabel Pemilik Rumah : Tabel ini digunakan untuk menyimpan data lengkap pemilik rumah hunian di kompleks perumahan. d. Tabel Anggota Keluarga Tabel ini digunakan untuk menyimpan data anggota keluarga yang tinggal bersama pemilik rumah. e. Tabel Tamu Tabel ini digunakan untuk mnyimpan data tamu yang berkunjung. Hal dimaksudkan agar data pemilik, tamu, dan satpam dapat terekam selengkaplengkapnya di dalam database terutama dengan tujuan agar tetap dapat diakses kapan saja. Setiap tabel juga memiliki hubungan one to one atau one to many tergantung pada rancangan data yang akan ditampilkan dalam user interface nantinya. Untuk lebih jelas hubungan normalisasi antar tabel satu dengan yang lain dapat dilihat pada gambar 3.11 berikut:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 34
Gambar 3.11. Perancangan Perangkat Lunak Database
3.4.3. Perancangan Mikrokontroler Perancangan
perangkat
lunak
untuk
mikrokontroler,
secara
sederhana
mikrokontroler mendapat masukan yaitu, data dari pembacaan RFID reader yang jika nilai masukannya tinggi maka portal akan terbuka dan data dari sensor photodiode yang jika nilai masukannya rendah maka portal akan menutup. Perancangan mikrokotroler digunakan untuk mengontrol 2 buah motor secara bergantian untuk membuka dan menutup. Alur diagram pengolahan data gambar 3.12. pada mikrokontroler, sebagai berikut:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 35
Gambar 3.12. Perancangan Perangkat Lunak Mikrokontroler
3.4.4. Perancangan User Interface Menggunakan Visual Basic 6.0 Perancangan perangkat lunak Visual Basic 6.0 menampilkan user interface yang akan dijalankan oleh satpam sebagai user dan satpam kepala sebagai admin. Gambar 3.13 menujukkan halaman login dan gambar 3.14 menunjukkan gambar halaman aktivitas kunjungan dan keluar-masuk kendaraan yang terekam. Diagram alir aktivitas halaman login ditunjukkan pada gambar 3.15.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 36
Gambar 3.13. Halaman Login Untuk Mengakses Halaman Aktivitas
Gambar 3.14. Tampilan Halaman Aktivitas
Gambar 3.15. Diagram Alir Halaman Login Sebelum tamu dapat masuk ke kompleks perumahan terlebih dahulu tamu didata oleh satpam melalui halaman pendaftaran agar mendapatkan ID card untuk mengakses pintu portal masuk dan keluar. Digram alir perekaman data tamu ditunjukkan pada gambar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 37
3.16 dan tampilan halaman pendaftaran identitas tamu ditunjukkan pada halaman 3.17.
Gambar 3.16. Perancangan Perangkat Lunak Visual Basic 6.0
Gambar 3.17. Halaman Pendaftaran Tamu Komplek Perumahan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB IV HASIL DAN PEMBAHASAN Dalam bab ini akan dibahas hasil pengujian dan pengamatan dari sistem keamanan portal berbasis RFID yang telah dibuat. Pengujian dan pengamatan yang dilakukan berupa pembacaan tag RFID, gerak motor servo, jarak deteksi sensor photodioda, komunikasi serial antara komputer dan mikrokontroler, sistem database, koneksi aplikasi visual basic dengan database, serta hasil pengamatan sistem secara keseluruhan pintu portal masuk dan pintu portal keluar.
4.1. Hasil Perancangan dan Sistem Kerja Keseluruhan Sistem Hasil perancangan prototype pos satpam dapat dilihat pada gambar 4.1, perancangan kotak palang atau portal ditunjukkan oleh gambar 4.2, dan simulasi keluarmasuk kendaraan ditunjukkan secara berurutan pada gambar 4.3, 4.4, dan 4.5.
Gambar 4.1. Prototype Pos Satpam
Gambar 4.2. Prototype Kotak Palang/Portal
Mekanisme kerja dari prototype adalah mobil berjalan mendekati portal, RFID reader kemudian mendeteksi tag RFID yang tertempel pada mobil (jika diasumsikan kartu tersebut adalah pemilik rumah dalam kompleks perumahan tersebut) atau RFID reader mendeteksi tag RFID yang ditempelkan didekat reader (diasumsikan kartu tersebut adalah milik tamu), setelah tag RFID terbaca maka kode unik dari tag tersebut akan tertampil secara otomatis pada layar aplikasi komputer yang menunjukkan data pemilik tag serta menampilkan tanggal dan jam tag tersebut mengakses portal. Kemudian komputer akan mengirimkan perintah ke mikrokontroler yang menggerakkan portal terbuka dan tertahan beberapa detik selama sensor photodioda belum mendeteksi mobil melewati portal. 38
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 39
Setelah sensor photodioda mendeteksi mobil yang lewat secara otomatis portal akan menutup setelah mobil lewat. Pembacaan tag RFID menggunakan 2 jenis RFID reader dengan jarak deteksi yang berbeda dimaksudkan untuk membedakan akses tamu dan pemilik rumah, dimana dalam perancangan ini RFID reader yang digunakan untuk mendeteksi tag RFID pemilik rumah diletakkan di bagian atas prototype pos jaga dan RFID reader yang digunakan untuk membaca tag RFID milik tamu diletakkan di sisi kanan dan kiri pos.
Gambar 4.3. Mobil Mendekati RFID Reader
Gambar 4.4. Tag RFID Terdeteksi
Gambar 4.5. Portal Terbuka Sesaat Tag RFID Terdeteksi
4.2. Hasil Perancangan Perangkat Keras Pada sub-bab ini akan dibahas implementasi dari perangkat keras yang telah dibuat. Dilakukan pengujian dan pengamatan terhadap sudut motor servo dan jarak deteksi sensor photodioda yang dilakukan masing-masing 5 kali pengujian sampai sensor mencapai jarak deteksi terjauh untuk setiap rangkaian sensor yang telah dibuat. Pengujian dan pengamatan tidak hanya dilakukan sekali waktu tetapi dilakukan beberapa kali dihari yang berbeda sampai didapatkan data terbaik.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 40
4.2.1. Pengaturan Sudut Motor Servo Pengujian sudut servo diukur dengan menggunakan busur derajat seperti pada gambar 4.6 sampai dengan gambar 4.8 di bawah ini. Pada perancangan motor servo di bab III, untuk dapat menggerakkan motor servo sesuai dengan sudut yang diinginkan dilakukan pengaturan nilai PWM dalam program CodeVision AVR tetapi dalam implementasinya digunakan 3 buah metode untuk dapat menentukan metode manakah yang lebih baik. Hal ini dikarenakan pada saat pembuatan hardware, penulis mengganti jenis mikrontroler yang awalnya AVR ATMega32 menjadi Arduino Mega2560. Ketiga metode tersebut adalah mengatur nilai PWM, mengatur nilau pulsa berdasarkan delay kedua metode ini diuji dengan menggunakan AVR ATMega32 dan menentukan sudut secara langsung pada program diuji pada Arduino Mega 2560. Pengujian pertama yakni dengan menentukan nilai PWM dilakukan dengan memberikan nilai OCR sesuai dengan perhitungan teori pada bab III, pengujian dan pengamatan ini dilakukan 2 kali percobaan untuk sudut 0° dan sudut 90°. Berdasarkan pengamatan motor servo yang dikendalikan menggunakan AVR ATMega32 menghasilkan nilai OCR yang berbeda dengan nilai OCR yang dihitung secara teori terlihat pada tabel 4.1 di bawah ini. Perhitungan nilai error diperoleh dengan membandingkan selisih nilai OCR prakterk dan nilai OCR teori dengan nilai OCR teori, kemudian dikalikan 100%. Tabel 4.1. Perhitungan Error Lebar Pulsa Motor Servo Standar
0°
Nilai OCR Teori 43,2
Nilai OCR Praktek 45
4,17 %
90°
64,8
78
20,37 %
SUDUT
Error
Karena nilai OCR yang didapatkan berbeda-beda setiap kali dilakukan pengujian sudut dan nilainya untuk setiap motor servo juga berbeda kemudian dilakukan metode kedua yakni memberikan nilai pulsa berdasarkan delay untuk mengendalikan sudut motor servo.
Gambar 4.6. Sudut 20°
Gambar 4.7. Sudut 40°
Gambar 4.8. Sudut 60°
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 41
Nilai pulsa yang diberikan diambil dari lebar pulsa total standar servo yakni 2 ms kemudian diubah ke dalam delay microseconds agar memudahkan dalam menentukan nilai yang akan diberikan. Hasil pengujian motor servo dengan menggunakan lebar pulsa ditunjukkan oleh gambar 4.6 sampai dengan 4.8 diatas, pengujian dilakukan setiap kenaikan sudut 10° seperti data yang disajikan pada tabel 4.2 di bawah ini. Tabel 4.2. Hasil Pengujian Motor Servo Dengan Pulsa SUDUT 0° 10° 20° 30° 40° 50° 60°
PULSA 1725 μs 1650 μs 1575 μs 1500 μs 1425 μs 1350 μs 1275 μs
SUDUT 70° 80° 90° 100° 110° 120° 130°
PULSA 1200 μs 1150 μs 1075 μs 1000 μs 900 μs 850 μs 750 μs
SUDUT 140° 150° 160° 170° 180°
PULSA 700 μs 650 μs 550 μs 500 μs 400 μs
Berdasarkan hasil pengamatan ini diketahui bahwa perbandingan antara sudut yang dihasilkan dan lebar pulsa yang diberikan adalah berbanding terbalik, seperti terlihat padda gambar 4.9 bahwa semakin lebar pulsa yang diberikan maka sudut yang terbentuk semakin kecil.
2000
Grafik Linieritas Sudut Terhadap Pulsa
Lebar Pulsa (us)
1500 1000 500 0 0
50
100 Sudut (°)
150
200
Gambar 4.9. Grafik Linearitas Sudut Terhadap Lebar Pulsa Akan tetapi dengan menggunakan metode yang kedua ini sangat berpengaruh pada waktu running keseluruhan program utama saat dijalankan dan tidak jarang saat program dijalankan kembali, gerak servo tidak sesuai dengan hasil pengamatan sebelumnya bahkan servo tidak bergerak sama sekali. Kemudian karena adanya pergantian jenis mikrokontroler
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 42
yang digunakan, maka digunakan metode ketiga yakni dengan menulis angka derajat secara langsung pada program. Dengan metode ketiga ini, hasil gerak sudut motor servo sesuai dengan yang diharapkan dan tidak berubah ubah nilainya untuk setiap device-nya seperti yang terjadi pada metode yang pertama serta tidak mengalami kendala pada saat keseluruhan program dijalankan seperti yang terjadi dengan menggunakan metode kedua, sehingga metode ketiga dianggap paling tepat digunakan dalam penelitian ini.
4.2.2. Pengaturan Jarak Kerja Sensor Photodiode Pengujian sensor photodiode dilakukan dengan melihat jarak terjauh sensor mampu mendeteksi keberadaan benda yang ada di depan sensor, pengamatan dan pengujian dilakukan untuk menguji rangaian sensor yang telah dibuat dengan 2 metode yakni yang pertama dengan menentukan keluaran sensor berupa nyala LED dan yang kedua keluaran dari sensor sebagai masukan pada mikrokontroler atau dengan kata lain sensor diuji pada sistem secara keseluruhan. Gambar 4.10 menunjukkan sensor photodiode yang dibuat, gambar 4.11 diambil saat pengujian dilakukan menggunakan LED sebagai hasil keluarannya. Pengujian dengan metode ini menggunakan nyala LED sebagai indicator sensor bekerja atau tidak, selain itu untuk menentukan jarak deteksi sensor dilakukan pengamatan nyala LED saat bagian depan sensor diberi penghalang sampai jarak beberapa sentimeter sampai LED tidak menyala lagi, hasilnya dapat dilihat pada tabel 4.3 dan 4.4 secara berurutan untuk 2 buah rangkaian sensor yang telah dibuat.
Gambar 4.10. Rangkaian Sensor Photodiode
Gambar 4.11. Pengujian Sensor
Pengujian dilakukan untuk melihat seberapa jauh jarak sensing yang dapat dilakukan oleh setiap sensor didapatkan setiap sensor jarak sensingnya hanya ±3cm di depan sensor photodiode, kemudian mengukur tegangan masukan sensor dan tegangan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 43
keluaran sensor dengan tujuan agar sensor aktif atau mendeteksi pada saat high yang ditunjukkan dengan led menyala saat sensor mendeteksi benda dan akan mati saat tidak ada benda yang didekatkan pada sensor. Tabel 4.3. Tabel Hasil Pengujian Sensor Photodioda 1 Jarak Kondisi LED Vin Vout 0 cm Nyala 5.160 3.513 1 cm Nyala 5.160 3.492 2 cm Nyala 5.160 3.517 3 cm Nyala 5.183 3.514 4 cm Mati 5.202 -0.079 5 cm Mati 5.202 -0.069 Tabel 4.4. Tabel Hasil Pengujian Sensor Photodioda 2 Jarak Kondisi LED Vin Vout 0 cm Nyala 5.159 3.528 1 cm Nyala 5.159 3.523 2 cm Nyala 5.159 3.510 3 cm Nyala 5.198 2.092 4 cm Mati 5.201 -0.055 5 cm Mati 5.201 -0.090 Pengujian dan pengamatan selanjutnya dilakukan saat sensor telah digabungkan dengan keseluruhan rangkaian dalam sistem. Pengamatan dilakukan berkali-kali dengan dua kondisi cahaya yakni di luar dan di dalam ruangan, hal ini dikarenakan oleh sensitivitas sensor yang sangat tinggi sehingga pada saat pengujian sensor di dalam ruangan bisa saja hasilnya berubah di pengujian berikutnya dengan kondisi ruang yang sama. Kondisi awal sensor adalah 0 seperti ditunjukkan pada gambar 4.12 dan kondisi saat ada penghalang yang diletakkan di depan sensor adalah 1 yang menujukkan bahwa rangkaian sensor aktif high karena pada saat ada penghalang nilai keluarannya tinggi seperti ditunjukkan pada gambar 4.13 dibawah ini.
Gambar 4.12. Kondisi Awal Sensor
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 44
Gambar 4.13. Kondisi Sensor Saat Diberi Penghalang Hasil dari pengujian dan pengamatan ini adalah kedua rangkaian sensor dapat bekerja dengan baik saat diletakkan di dalam ruangan maupun di luar ruangan dengan jarak deteksi ±3cm untuk masing-masing rangkaian sensor di dalam ruangan, sementara hasil pengujian di luar ruangan ±10cm untuk rangkaian sensor A dan ±20cm untuk sensor B selain itu saat pengujian di luar ruangan kedua rangkaian sensor aktif low artinya saat ada pnghalang di depan sensor maka keluaran dari sensor adalah 0. Hal ini terjadi karena perbedaan intensitas cahaya yang ada di sekitar sensor saat pengujian dilakukan.
4.3. Hasil Perancangan Perangkat Lunak Pada sub-bab ini secara khusus dibahas mengenai semua subrutin program yang dibuat dengan menggunakan tiga jenis bahasa pemrograman yakni Structured Query Language (SQL) dengan MySQL sebagai aplikasi yang dipilih untuk membuat database, C Language yang digunakan dalam Visual Basic 6.0 untuk membuat aplikasi User Interface dan Arduino IDE untuk bahasa pemrograman mikrokontrolernya, kemudian akan dibagi ke dalam 2 sub lagi yakni hasil dan pembahasan program aplikasi User Interface dan program kontrol pada mikrokontroler.
4.3.1. Hasil Pemrograman Mikrokontroler Pemrograman mikrokontroler dibuat dengan menggunakan 2 jenis aplikasi yakni CodeVision AVR dan Arduino IDE. Hal ini tidak sesuai dengan yang dituliskan pada perancangan bab III, awalnya hanya digunakan satu jenis board mikrokontroler saja yakni mikrokontroler AVR ATMega32 yang dirancang untuk kendali keseluruhan sistem. Namun pada praktiknya mikrokontroler jenis ini tidak dapat digunakan untuk membaca tag RFID baik dengan komunikasi UART maupun I2C dan hanya dapat digunakan untuk kontrol motor servo dan sensor photodiode saja. Oleh karena itu untuk dapat membaca tag
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 45
RFID digunakan board mikrokontroler Arduino Mega2560 sekaligus menjalankan semua program sub-sistem. Pembahasan mengenai listing program pada board mikro Arduino Mega2560 per sub-sistem dan menunjukkan perbandingan hasilnya dengan pemrograman pada board mikro AVR ATMega32, sedangkan listing program mikro AVR ATMega32 dapat dilihat pada halaman lampiran.
4.3.1.1. Pembacaan Tag RFID Pada perancangan di bab III, sebelumnya telah disepakati bahwa sistem ini menggunakan 2 jenis RFID reader yakni RFID ID-12 dan RFID SL018 sehingga akan di bahas mengenai pembacaan tag untuk kedua reader. Hasil pengamatan pembacaan tag RFID ID-12 dan RFID SL018 ditunjukkan pada gambar 4.15 dan 4.17 berurutan, listing programnnya masing-masing seperti yang ditunjukkan gambar 4.14 dan 4.16. Pembacaan tag RFID dengan reader ID-12 menggunakan 2 buah pin komunikasi serial pada Arduino Mega2560 yakni pin 19 sebagai RX1 dan pin 17 sebagai pin RX2, hal ini dikarenakan pada prototype menggunakan 2 buah reader ID-12. Untuk membaca tag RFID pada RFID reader ID-12, kedua pin serial di inisialisasi dengan Serial1.begin(9600) dan Serial2.begin(9600) kemudian pada program utama dengan logika if…elseif… mikro akan membaca bergantian jika salah satu reader mendeteksi tag. Secara bergantian mikro akan mengecek data yang ada pada receive buffer pada pin serial 1 dan serial 2 dengan serial.avaiable(), kemudian jika data sudah tersimpan dalam receive buffer maka mikro akan membaca data yang diterima tersebut dengan Serial.read() dan mengirim data numerik ke komputer dengan Serial.write().
Gambar 4.14. Listing Program Pembacaan Tag untuk RFID Reader ID-12 Pada saat pengujian pengambilan data dilakukan dengan menampilkan hasil pembacaan pada komputer dan juga LCD. Salah satu contoh pembacaan tag ditunjukkan pada gambar 4.15 di bawah ini, tag akan terbaca saat koneksi serial tersedia dan mikro
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 46
akan mulai menghitung data yang terbaca oleh RFID reader kemudian secara otomatis mengirim data tersebut ke komputer, terlihat di layar LCD muncul 12 digit kode unik yang dibaca oleh RFID reader ID-12 dengan menggunakan kartu EM4001, format kartu ini sesuai dengan spesifikasi yang dicantumkan pada landasan teori dan saat diuji dengan menggunakan kartu dengan format mifare RFID reader ID-12 tidak dapat mendeteksi kartu tersebut karena formatnya tidak sesuai dengan spesisfikasi RFID reader.
Gambar 4.15. Hasil Pembacaan Tag untuk RFID Reader ID-12 Pada saat pengujian juga dilakukan pengambilan jarak deteksi RFID reader terhadap tag RFID dan hasilnya tidak sesuai dengan jarak yang tercantum dalam datasheet yakni ±12cm, pada implementasinya berdasarkan pengukuran yang dilakukan dengan menempatkan titik 0 cm tepat pada bagian depan antena sehingga jarak maksimum deteksi reader hanya 3 cm seperti data yang ditunjukkan pada tabel 4.5 di bawah ini. Tabel 4.5. Hasil Pengujian Jarak Deteksi RFID Reader ID-12 Jarak 1 cm 2 cm 3 cm 4 cm 5 cm 6 cm
Reader Respon Terbaca Terbaca Terbaca Tidak Terbaca Tidak Terbaca Tidak Terbaca
Alasan utama penggantian board mikro dari AVR menjadi Arduino adalah tidak terbacanya data tag RFID karena sebelumnya telah dilakukan pengujian dengan board mikro AVR ATMega32 tetapi data tag tidak tertampil sama sekali pada LCD setelah beberapa kali percobaan yang tertapil pada layar LCD hanya karakter yang tidak dapat dikenali dan terus berubah. Kemudian penulis mengganti board mikro yang digunakan dan melakukan pengamatan pada RFID reader SL018 yang memiliki spesifikasi koneksi pararel dengan mikro, keluaran dari reader diletakkan pada pin A5 dan A7 board Arduino Mega2560. Mikro akan membaca masukan rendah saat tag didekatkan pada reader ini kemudian reader akan membaca kode unik data string yang ada pada tag dan secara
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 47
otomatis mengirim data tersebut secara serial ke komputer dan LCD. Akan tetapi pada saat tidak ada tag yang berada dekat reader maka mikro akan mendapat masukan tinggi maka reader akan menunggu sampai ada tag yang didekatkan pada salah satu reader sehingga salah satu pin mikro tersebut mendapat masukan rendah, hal ini sesuai dengan datasheet dimana saat tag terdeteksi reader akan menghasilkan keluaran rendah 0 volt.
Gambar 4.16. Listing Program Pembacaan Tag Untuk RFID Reader SL018 Berdasarkan pengamatan yang dilakukan saat tag terdeteksi mikro akan menerima data berupa len panjang data tag, command code, keadaan, UID berupa tipe data string, dan type. Hasil pengujian dapat dilihat pada gambar 4.17 di bawah ini, data yang diterima berupa data acak hal inni dikarenakan terjadinya coallision pada bus I2C-nya karena hanya mennggunakan 1 alamat data dan clock yakni 0x50 dan untuk memudahkan penelitian pada aplikasi dilakukan inisialisasi data berupa data tag yang sebenarnya. RFID reader jenis ini format kartu yang dapat dideteksi adalah mifare card sedangkan jika diuji dengan EM4001 seperti yang dilakukan pada RFID reader ID-12 kartu tidak akan dapat terbaca karena tidak sesuai dengan spesifikasi pada datasheet, jarak deteksinya pada datasheet hanya sampai 60mm tetapi pada saat pengujian jarak deteksi ±1cm tegak lurus dari antena.
Gambar 4.17. Hasil Pembacaan Tag Untuk RFID Reader SL018
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 48
4.3.1.2. Pengendalian Motor Servo Seperti yang sudah dibahas pada sub-bab sebelumnya bahwa pengendalian motor servo diamati dengan menggunakan dua jenis mikro dan menghasilkan sudut yang sesuai dengan yang diharapkan. Pada sub-bab ini listing program yang akan dibahas adalah listing program dari aplikasi Arduino IDE seperti yang ditunjukkan gambar 4.18 dibawah ini, sedangkan listing program pengendali motor servo dengan aplikasi CodeVision AVR ditulis pada lembar lampiran.
Gambar 4.18. Listing Program Pengendali Motor Servo Pada listing program, terlihat bahwa untuk mengatur sudut gerak servo menggunakan metode yang ketiga yaitu dengan menulis sudut yang diingiinkan secara langsung pada servo.write() yang merupakan fasilitas dari library #include <Servo.h> sehingga memudahkan dalam mengontrol sudut. Kemudian berdasarkan listing program terlihat bahwa untuk mengatur kapan motor servo digerakkan menuju sudut 90° dimana posisi portal pada sudut ini adalah terbuka dan kapan motor servo kembali ke posisi awalnya yakni 0° digunakan interrupt agar palang pintu tidak langsung tertutup sesaat setelah mobil terdeteksi, tetapi menunggu beberapa saat setelah mobil terdeteksi lalu palang tertutup. Sehingga pada saat mikro mendapat perintah „a‟ mikro akan menjalankan interrupt menunggu beberapa saat sampai interrupt selesai dijalankan kemudian menutup portal. Logika ini juga sama dengan logika listing program yang dibuat menggunakan aplikasi CodeVision AVR pada lampiran.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 49
4.3.1.3. Komunikasi Serial Dua Arah Mikrokontroler dan Komputer Pengamatan komunikasi serial antara mikro dan komputer adalah dengan melihat data tag RFID yang tertampil pada layar komputer dan gerak motor servo yang membuka, logika ini dapat dilihat pada listing program yang ditunjukkan oleh gambar 4.19 di bawah ini.
Gambar 4.19. Listing Program Komunikasi Serial Komputer-Mikro Pengujian komunikasi serial dilakukan dengan melihat data tag RFID yang tertampil pada layar komputer dengan perintah Serial.println mikro secara otomatis akan mengirimkan data tersebut ke komputer dan komunikasi satu arah dinyatakan berhasil. Kemudian pengujian komunikasi serial dua arah yakni pengujian apakah mikro menerima data yang dikirim oleh komputer dan mengeksekusi data tersebut. Dengan menggunakan Serial.available() mikro akan terus mengecek apakah ada data yang diterima dalam receive buffer atau tidak, jika ada maka kondisi pada receive buffer tidak sama dengan 0 dan lebih dari nol sehingga dengan menginisialisasi variabel integer buff mikro membaca data tersebut dengan perintah Serial.read() dan kemudian mengeksekusi data tersebut sesuai dengan program yang telah dibuat pada mikro, tetapi jika tidak ada maka kondisi receive buffer akan tetap bernilai 0 dan mikro tidak akan menjalankan perintah membaca data.
4.3.1.4. Subrutin Program Utama Pada bagian ini akan dibahas mengenai subrutin program yang akan dieksekusi berulang-ulang yang terdapat di dalam void loop() seperti pengaturan pembacaan tag RFID agar tidak terjadi coallision saat dijalankan, menggerakkan motor servo membuka dan menutup dengan menggunakan interrupt yang merupakan pengaruh kerja sensor photodiode pada program saat dieksekusi, dan komunikasi serial komputer dengan mikro seperti yang ditunjukkan gambar 4.20 di bawah ini.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 50
Gambar 4.20. Listing Program Utama Setelah semua perancangan perangkat lunak yang terdapat pada mikrokontroler memberikan hasil yang sesuai, selanjutnya program-program tersebut digabungkan menjadi sebuah program utama yang bersifat sekuensial dimana setiap proses yang telah di rancang pada bab III dilakukan secara berurutan. Pada listing program dilakukan permisalan 4 kondisi yang mewakili jumlah RFID reader yang digunakan, masing-masing
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 51
2 buah reader akan dapat menggerakkan sebuah motor yang sama, dan dapat menerima data dari sensor photodioda yang sama. Saat RFID reader 1 membaca tag RFID, data tag tersebut akan dikirim secara serial ke komputer oleh mikro dan komputer secara serial pula akan menngirimkan karakter „a‟ ke mikro. Setelah mikro menerima karakter „a‟ maka motor servo akan bergerak membuka sementara motor servo berada pada posisi membuka sensor photodioda mulai mendeteksi, saat mobil terdeteksi kemudian mikro akan langsung menjalankan program interrupt untuk memberi jeda seluruh badan mobil melewati portal atau untuk mengantisipasi apabila mobil belum berhenti agak lama di pos jaga. Setelah program mikro selesai menjalankan program interrupt kemudian motor servo untuk menutup. Proses ini dilakukan berulangulang dan sama pada setiap reader baik pada pintu portal keluar maupun pintu portal masuk.
4.3.2. Hasil Perancangan Aplikasi di Komputer Pemrograman aplikasi dalam komputer dikhususkan untuk program-program yang dibuat untuk membuat sebuah aplikasi User Interface yang diinginkan, yakni tampilan user yang dilengkapi dengan sistem penyimpanan database. Digunakan 2 jenis aplikasi dalam pemrograman ini yakni, MySQL dan Visual Basic 6.0, berikut akan di bahas lebih lanjut.
4.3.2.1. Perancangan Sistem Database Pada perancangan database di bab III dibuat 5 tabel, tetapi kemudian dalam pembuatan tugas akhir disepakati dibuat 4 buah tabel. Pengurangan tabel ini dimaksudkan agar data yang ditampilkan lebih ringkas dan memudahkan penulis dalam membuat sebuah database sederhana untuk system keamanan portal perumahan ini. Empat tabel tersebut masing-masing: tabel admin yang berisi data-data admin yang akan menjalankan dan mengawasi aplikasisistem keamanan ini, tabel ini terdiri dari 5 kolom (idadmin, nama_admin, ktp_admin, username, dan password), kemudian ada tabel pemilik yang akan menyimpan data-data lengkap pemilik rumah dalam kompleks tersebut, lalu tabel tamu menyimpan data-data lengkap seorang tamu yang akan masuk dan keluar pintu portal, tabel aktivitas ini digunakan untuk merekam aktivitas keluar dan masuk kendaraan yang keluar dan masuk kompleks perumahan tersebut, tabel ini memiliki fungsi yang unik karena memiliki hubungan one to many dengan beberapa tabel lain seperti tabel admin, tabel pemilik, dan tabel tamu dengan menggunakan fungsi foreign key yang digunakan untuk membangun relasi antar tabel.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 52
Untuk membuat sebuah database yang pertama kali dilakukan adalah merancang skema database yang akan digunakan dengan menggunakan query seperti yang ditunjukkan gambar 4.21 berikut ini.
Gambar 4.21. Listing Program Membuat Suatu Database Pada gambar 4.18 listing program CREATE SCHEMA merupakan query yang digunakan untuk membuat database baru yakni „PortalRumah‟. Langkah selanjutnya setelah membuat bagian luarnya kemudian dibuat tabel-tabel dibagian dalamnya untuk mengisi database agar dapat berfungsi baik, seperti ditunjukkan gambar 4.22 di bawah ini.
Gambar 4.22. Query Untuk Membuat Sebuah Tabel Query yang dgunakan untuk membuat suatu tabel yakni CREATE TABLE „Pemilik‟ kemudian menentukan sebuah primary key dari setiap tabel yang dibuat untuk memudahkan panggilan terhadap tabel tersebut, pada gambar 4.22 primary key berada pada kolom idPemilik. Selanjutnya mulai menambahkan kolom-kolom lain sesuai dengan kebutuhan dan menentukan jenis datanya seperti VARCHAR, TINYTEXT, CHAR, INT, dan lain-lain. Untuk membuat tabel tamu, tabel admin, tabel aktivitas, tabel member dilakukan dengan query yang sama. Hasil pembuatan tabel dapat dilihat pada gambar 4.23 di bawah ini.
Gambar 4.23. Hasil Perancangan Tabel Dalam Database
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 53
Gambar 4.24. EER-Diagram Perancangan Database Hasil pembuatan database ditampilkan dengan EER-Diagram seperti pada gambar 4.24 yang menunjukkan hubungan setiap tabel dan data-data apa saja yang akan disimpan dalam sistem database yang di buat.
4.3.2.2. Halaman Login Aplikasi Hasil pengamatan halaman login aplikasi yang dibuat dengan memanggil subrutin program seperti pada gambar 4.25, dimana program akan memanggil tabel admin dari database dan akan mencocokkan username dan password yang dituliskan pada tempat yang sudah disediakan sesuai atau tidak dengan data yang sudah ada pada tabel admin tersebut setelah tombol login di klik jika sesuai maka akan tampil halaman utama dari aplikasi. Apabila salah satu dari kedua kolom (username dan password) yang sudah disediakan ada yang belum terisi secara tomatis aplikasi akan memunculkan peringatan bahwa ada salah satu kolom yang belum diisi dan halaman utama tidak akan tampil dan hanya akan muncul halaman login saja sampai semua kolom terisi. Akan tetapi apabila semua kolom sudah terisi tetapi data yang dituliskan tidak sesuai dengan data yang ada pada tabel admin maka akan muncul message box yang berisi peringatan bahwa data yang dimasukkan salah dan pengguna aplikasi diberi 3 kali kesempatan untuk memasukkan username dan password dengan benar. Jika 3 kali berturut-turut data yang dimasukkan tidak sesuai maka aplikasi tidak akan dapat diakses
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 54
untuk beberapa saat, dan halaman utama tidak akan muncul sampai data username dan password benar dimasukkan oleh pengguna.
Gambar 4.25. Listing Program Halaman Login Berdasarkan hasil pengamatan, gambar 4.26 menunjukkan hasil halaman login yang sukses diakses oleh pengguna yang berstatus sebagai satpam dilihat dari username yang dituliskan. Dalam gambar kolom username diisi dengan „satpam‟ dan password diisi dengan „satpam‟ yang sesuai dengan data yang terdapat pada tabel admin. Pada halaman login juga ditentukan perbedaan hak akses antara satpam dan ketua RT, yakni seorang satpam hanya memiliki hak akses untuk memantau halaman aktivitas, menambah dan menyimpan data tamu, dan melihat data pemilik rumah serta satpam. Sedangkan seorang ketua RT memiliki hak akses penuh untuk memantau halaman aktivitas, melihat, menambah, menyimpan, menghapus, serta mengubah data baik tamu, pemilik rumah, maupun satpam. Untuk penyimpanan dan pencetakan laporan aktivitas keluar – masuk kendaraan dapat dilakukan oleh satpam maupun ketua RT. Perbedaan hak akses kedua admin lebih jelas dapat terlihat pada menu – menu pada halaman utama maupun menu – menu pada setiap halaman yang dibuat dengan melihat tulisan menu yang bercetak tebal jelas dan tulisan menu yang bercetak transparan.
Gambar 4.26. Hasil Pengujian Halaman Login
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 55
4.3.2.3. Halaman Perekaman Aktivitas Keluar dan Masuk Kendaraan Pengamatan halaman perekaman aktivitas keluar dan masuk kendaraan adalah melihat tanggal dan waktu akses portal serta identitas pemilik kartu yang tertampil secara otomatis pada layar komputer. Agar data yang dapat ditampilkan sesuai dengan yang diharapkan maka komunikasi serial antara komputer dan mikro harus dibuat dengan listing program seperti yang ditunjukkan pada gambar 4.27 dimana port 10 merupakan port serial mikro terdeteksi oleh komputer, jika port yang diiinisialisasi bukan port tersebut maka komunikasi serial antara komputer dan mikro tidak akan terjadi. Kemudian secara otomatis komputer akan menampilkan data tag RFID yang terbaca pada Text 3 dengan inbuff sebagai masukan yang diterima dari mikro, dt_a adalah data inbuff yang diterima angka 1 menampilkan data saat port komunikasi terbuka dan angka 12 menampilkan banyak data yang akan ditampilkan pada layar komputer.
Gambar 4.27. Listing Program Komunikasi Serial Pada Aplikasi Kemudian
tampilan
halaman
aktivitas
akan
terus
diperbaharui
dengan
menampilkan semua data yang ada pada tabel aktivitas dari database seperti listing program yang ditunjukkan gambar 4.28 di bawah ini. Dengan menggunakan query SELECT * FROM aktivitas ORDER BY idaktivitas ASC, data berupa nomor, tanggal, waktu, nomor RFID, nama pemilik RFID, alamat yang dikunjungi, dan nomor polisi kendaraan akan tertampil semua pada grid dengan aktivitas sebagai tabel yang dipanggil. Akan tetapi data yang tampil pada tampilan tabel tidak dapat menampilkan ketiga tabel yakni tabel aktivitas, tabel pemilik dan tamu secara bersamaan, hanya dapat memilih salah satu kombinasi tabel saja yang dapat ditampilkan yakni kombinasi tabel aktivitas dan tabel pemilik atau kombinasi tabel aktivitas dan tabel tamu sesuai dengan data yang masuk.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 56
Gambar 4.28. Listing Program Memperbaharui Data Aktivitas Keluar-Masuk Kendaraan Berdasarkan listing program yang telah dibuat hasil halaman aktivitas ditunjukkan pada gambar 4.29 yang menampilkan nama pengguna yang sedang bertugas, data tag RFID yang terbaca dan daftar data aktivitas kendaraan yang mengakses portal keluar dan masuk. Seperti yang telah dikatakan sebelumnya, pada gambar hanya tampil salah satu kombinasi tabel saja yakni tabel aktivitas dan tabel pemilik karena data yang masuk adalah data kartu pemilik rumah, sedangkan data akses tamu tetap tersimpan dalam tabel aktivitas hanya saja data secara spesifik tidak ditampilkan dalam tabel karena bukan kombinasi dari tabel aktivitas dan tabel tamu sehingga yang terlihat oleh user hanya data aksesnya saja berupa tanggal dan waktu sedangkan data lainnya kosong. Pada saat pengujian menggunakan identitas tamu data tidak tertampil di dalam grid dikarenakan oleh kesalahan peletakkan query sehingga program tidak dapat mengerjakan query yang seharusnya dikerjakan.
Gambar 4.29. Hasil Tampilan Halaman Aktivitas Keluar Dan Masuk Kendaraan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 57
Selain itu pada halaman ini juga terdapat beberapa menu tambahan yaitu command button serial, in, send a, dan send b. Fungsi dari masing-masing button adalah yang pertama button serial berfungsi untuk menghidupkan koneksi komunikasi antara laptop dan mikro, dengan menginisialisasi port dan baudrate yang digunakan untuk komunikasi. Kedua, button IN digunakan untuk menerima data yang dikirim dari mikro dan menampilkannya di textbox, pada perancangan di bab III data yang diterima dari mikro ini akan secara otomatis muncul di textbox tetapi saat dilakukan pengujian ternyata data tidak bisa secara otomatis tampil pada textbox sehingga tetap diperlukan bantuan user agar data tertampil pada textbox dengan menggunakan tombol ini. Terakhir, button send a dan button send b yang memiliki fungsi yang sama yakni memberikan perintah ke mikro untuk membuka pintu portal. Akan tetapi kedua button ini hanya dipergunakan saat pintu portal tidak dapat terbuka secara otomatis, letak perbedaannya hanya pada karakter yang dikirim ke mikro yakni send a mengirim karakter „a‟ yang akan memerintahkan mikro untuk membuka pintu portal masuk sedangkan send b mengirim karakter „b‟ ke mikro yang akan memerintahkan mikro untuk membuka pintu portal keluar. Fungsi kedua tombol pada sistem ini hanya sebagai cadangan serta melengkapi kinerja sistem secara keseluruhan.
4.3.2.4. Halaman Pendaftaran Halaman pendaftaran ini dapat diakses oleh satpam dan ketua RT, pengamatan halaman pendaftaran dilakukan untuk melihat data yang didaftarkan tersimpan ke dalam database atau tidak. Listing program pada halaman ini adalah untuk menyimpan data yang sudah dituliskan ke dalam database terkhusus pada tabel tamu seperti yang ditunjukkan gambar 4.30 di bawah ini.
Gambar 4.30. Listing Program Penyimpanan Data Tamu Ke Tabel Tamu Berdasarkan
pengamatan
dengan
menggunakan
query
INSERT
INTO
nama_tabel(kolom1,kolom2,etc) VALUES (nilai1,nilai2,etc), maka Text 9.Text sebagai nilai akan tersimpan pada kolom idtamu pada tabel tamu. Tampilan halaman pendaftaran ditunjukkan pada gambar 4.31 di bawah ini dan hasil pengamatannya ditunjukkan oleh
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 58
gambar 4.32 yang menampilkan tabel tamu pada sistem database yang sudah terisi sesuai dengan data yang dituliskan oleh pengguna aplikasi. Kemudian jika dilihat, terdapat menu hapus dan tambah baru tetapi inti dari pembuatan halaman pendaftaran ini adalah penyimpanan data tamu ke dalam database yang dilakukan oleh admin.
Gambar 4.31. Halaman Pendaftaran Tamu
Gambar 4.32. Hasil Pengamatan Halaman Pendaftaran Tamu
4.3.2.5. Halaman Yang Menampilkan Data Pemilik dan Satpam Halaman tampilan data pemilik dan satpam adalah halaman yang memilki paket komplit penggunaan query pada database karena halaman ini menampilkan semua data yang terdapat dalam masing-masing yakni tabel pemilik dan tabel admin. Terdapat 4 menu utama query yakni menampilkan data dari database, menambahkan data ke dalam database, mengubah data yang udah ada di dalam database, dan menghapus data dari database. Pertama akan dibahas mengenai query yang digunakan untuk menampilkan data yang ada di dalam database seperti ditunjukkan oleh gambar 4.34, data yang akan ditampilkan dipanggil dengan query “SELECT * FROM nama_tabel ORDER BY kolom” dari sistem database yang sudah dibuat. Kemudian dengan menggunakan fasilitas MsFlexGrid data berupa nomor ditampilkan pada baris 1 kolom 0, kode tabel pada baris 1 kolom 1, begitu seterusnya
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 59
hingga kolom data yang ada didalam tabel diatur pada baris yang sama dan kolom berbeda dan akan mulai menampilkan data pada baris selanjutnya, listing programnya seperti ditunjukkan pada gambar 4.33 di bawah ini.
Gambar 4.33. Listing Program Menampilkan Untuk Data Pemilik Atau Satpam Hasil dari listing program diatas, pada grid tampil semua data pemilik rumah yang memiliki kartu RFID. Data yang ditampilkan diambil dari tabel pemilik di database dan menampilkan kode pemilik, nomor kartu, nama lengkap, jenis kelamin, nomor telepon, alamat tinggal dan nomor polisi kendaraannya yang sebelumnya sudah di data dan di simpan dalam sistem database.
Gambar 4.34. Hasil Pengamatan Halaman Tampilan Data Pemilik Rumah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 60
Pengujian selanjutnya adalah menambahkan data ke dalam database dengan menggunakan query INSERT INTO nama_tabel(kolom 1, kolom 2, kolom 3, …) VALUES (nilai 1, nilai 2, nilai 3, …) seperti ditunjukkan pada gambar 4.35 dan data-data baru yang akan disimpan di isikan pada halaman edit residence member ditunjukkan oleh gambar 4.36 serta hasil dari aksi ini dengan melihat perubahan yang terjadi pada sistem database seperti yang ditunjukkan gambar 4.37. Pasangan kolom dan nilai disesuaikan dengan setiap text(n).text yang digunakan untuk menuliskan data yang ingin di simpan, setelah itu secara otomatis akan membuka koneksi database dan mengeksekusi query.
Gambar 4.35. Query Menambahkan Data Pemilik Atau Satpam Ke Dalam Database
Gambar 4.36. Menambahkan Data Pemilik Atau Satpam Ke Dalam Database
Gambar 4.37. Hasil Penambahan Data Pemilik Atau Satpam Ke Dalam Sistem Database
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 61
Kemudian query selanjutnya adalah query yang digunakan untuk mengubah data yang sebelumnya sudah tersimpan di dalam database. Dengan menggunakan UPDATE nama_tabel SET kolom = nilai_yang_diubah WHERE [kondisi] seperti terlihat pada gambar 4.38 di bawah ini, maka nama admin yang tadinya “kirmanto” di dalam database menjadi “sugondo” dengan mengklik tombol „change‟ data pada database akan secara otomatis diperbaharui dan menyimpan data baru yang akan disimpan. Hasil eksekusi dari query ini ditunjukkan oleh gambar 4.39 di bagian yang diberi kotak merah, terlihat perubahan data nama admin dari tabel admin di dalam database.
Gambar 4.38. Query Untuk Mengubah Data Pemilik Atau Satpam Di Dalam Database
Gambar 4.39. Data Satpam Dari Database Yang Akan Di Ubah Dan Diperbaharui Menu yang terakhir adalah menu „delete‟ yang digunakan untuk menghapus data dari database. Query yang digunakan DELETE FROM nama_tabel WHERE [kondisi] seperti ditunjukkan gambar 4.40 di bawah ini dimana fungsi perintah ini adalah menghapus data yang tersimpan di dalam database sesuai dengan primary key data tersebut, kemudian data dalam tabel pemilik atau tabel satpam yang dipilih akan terhapus dari database seperti gambar 4.41. Terlihat pada gambar 4.41 isi database sebelum query delete dieksekusi terdapat 7 buah data dan setelah query delete dieksekusi data ke tujuh yang dihapus sudah tidak muncul lagi di dalam database.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 62
Gambar 4.40. Query Untuk Menghapus Data Dari Tabel Pemilik Atau Tabel Satpam
Gambar 4.41. Hasil Penghapusan Data Dari Tabel Pemilik Atau Tabel Satpam Dengan menghapus data pemegang tag RFID dari database, tag tersebut tidak lagi dapat mengakses pintu portal karena tidak ada data yang terekam dalam database. Akan tetapi, data tag berupa kode unik akan tetap tertampil di dalam textbox pada halaman aktivitas seperti yang ditunjukkan pada gambar 4.42 di bawah ini saat data pemegang tag telah dihapus kemudian dengan tag yang sama dicoba mengakses pintu portal tetapi pintu portal tidak terbuka, karena data tag tidak terekam dalam database.
Gambar 4.42. Percobaan Akses Menggunakan Tag RFID Yang Tidak Tersimpan Datanya
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 63
4.3.2.6. Pencetakan Laporan dari Halaman Aktivitas Pembuatan laporan dari halaman aktivitas dilakukan dengan membuat format laporan seperti yang ditunjukkan pada gambar 4.43 di bawah ini. Format laporan diatur manual dengan menggeser item sesuai dengan keingiinan dan juga berdasarkan kemudahan dalam pembacaan laporan.
Gambar 4.43. Pembuatan Layout Laporan Agar data yang ditampilkan dalam laporan adalah benar data dari halaman aktivitas, maka harus membuka tabel aktivitas dari database terlebih dahulu dengan menggunakan query LEFT JOIN seperti ditunjukkan gambar 4.44 di bawah ini akan memanggil skema database yakni SistemKeamananPortal dan LaporanAktivitas adalah tabel aktivitas yang dipanggil untuk ditampilkan datanya seperti yang ditunjukkan gambar 4.45 di bawah ini.
Gambar 4.44. Query Untuk Memanggil Tabel Aktivitas Dan Pemilik
Gambar 4.45. Listing Program Laporan Halaman Aktivitas
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 64
Hasil pengamatan dari listing program diatas ditunjukkan oleh gambar 4.46 yang menunjukkan laporan dari halaman aktivitas yang menampilkan semua data yang diinginkan dan mudah dibaca oleh orang awam.
Gambar 4.46. Hasil Laporan Halaman Aktivitas
4.3.2.7. Konektivitas Antara Aplikasi Dengan Database Pembuatan aplikasi menggunakan software yang berbeda dengan software yang digunakan untuk membuat database, oleh karena itu agar dapat terhubung pada aplikasi dibuat listing program seperti pada gambar 4.47 dengan menggunakan driver MySQL ODBC 5.1 agar dapat membuka database portal yang menjadi tujuan dari aplikasi dengan membuat koneksi baru pada MySQL ODBC 5.1 dengan server localhost.
Gambar 4.47. Listing Program Koneksi Database Dan Aplikasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 65
Hasil pengamatan konektivitas ini adalah munculnya message box yang menyatakan bahwa koneksi antara database dan aplikasi telah berhasil seperti yang ditunjukkan pada gambar 4.48 di bawah ini.
Gambar 4.48. Hasil Koneksi Antara Database Dan Aplikasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB V KESIMPULAN DAN SARAN 5.1. Kesimpulan Penelitian ini menghasilkan prototype sistem keamanan portal perumahan dengan berbasis RFID dengan fasilitas penyimpanan database. Pengujian, pengamatan serta pengambilan data dilakukan pada sistem secara keseluruhan yang menunjukkan bahwa system dapat bekerja walaupun tidak stabil karena pengaruh dari kepekaan sensor photodiode yang digunakan dan juga dilakukan untuk setiap sub-sistem keamanan portal perumahan berbasis RFID hasilnya sebagai berikut: 1. Pengendalian gerak motor servo menggunakan nilai OCR memberikan hasil yang berbeda-beda untuk setiap merek device yang digunakan, tetapi dapat disiasati dengan memberikan lebar pulsa dengan hubungan antara lebar pulsa yang diberikan dan sudut yang dihasilkan berbanding terbalik. 2. Jarak deteksi sensor photodiode ±5cm dari depan sensor, jarak ini dianggap baik dan sudah sesuai dengan kebutuhan. 3. Jarak deteksi tag untuk RFID reader ID-12 hanya ± 3cm, sedangkan untuk RFID reader SL018 hanya ± 1cm. 4. Sistem database sangat membantu dalam penyimpanan data setiap pemegang kartu. Tetapi prototype sistem keamanan portal perumahan berbasis RFID ini masih memiliki kekurangan yakni dalam hal penampilan data dari mikro ke laptop/pc yang belum otomatis masih memerlukan bantuan user dengan menekan tombol IN pada tampilan user interface dan juga terkadang data tamu yang sudah terdaftar tidak tertampil dalam grid karena masih adanya kesalahan peletakkan query yang digunakan.
5.2. Saran Untuk hasil yang lebih baik untuk penelitian selanjutnya, beberapa saran-saran yang dapat dipertimbangkan oleh pembaca adalah sebagai berikut: a. Penelitian ini dapat ditambah dengan pembatasan akses setiap kartu tag RFID baik milik tamu ataupun warga perumahan untuk meningkatkan keamanan. b. Pengaplikasian jaringan baik internet maupun intranet untuk komunikasi dan distribusi data yang dikirim oleh RFID reader ke komputer. 66
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR PUSTAKA [1]
Tim Penulis Laporan Triwulan, 2014, Analisis Triwulan: Perkembangan Moneter, Perbankan dan Sistem Pembayaran Triwulan IV-2013, Buletin Ekonomi Moneter dn Perbankan, Januari 2014, Bank Indonesia.
[2]
Bowers, Dan M., 1988, Access Control and Personal Identification System, Butterworth Publisher, USA, hlm 1.
[3]
Hunt, V. Daniel, Puglia, Albert., dan Puglia, Mike., 2007, RFID: A Guide To Radio Frequency Identification, New Jersey: John Wiley & Sons, Inc., hal 5-24.
[4]
Wiranto, Robertus Heru, 2010, Pembaca Data Tag Pada Car Immobilizer Dengan RFID, Universitas Sanata Dharma, Yogykarta.
[5]
E.P., Paulus Alexander, 2015, Perekaman Data Akses Kamar Hotel Dengan RFID Berbasis WEB, Universitas Sanata Dharma, Yogyakarta.
[6]
Lahiri, sandip, 2005, RFID Sourebook, Prentice-Hall, Inc., New Jersey.
[7]
Sanghera, Paul, Frank Thomton, Brad Haines, Francesco Kun Mang Fung, John Kleinschmidt, Armand M. Das, Hersh Bhargava, Anita Campbell, 2007, How to Cheat at Developing and Securing RFID, Elsever Inc., Burlington.
[8]
Priambodo, Anthonius Rendi, 2014, Prototipe Sistem Parkir Menggunakan RFID Berbasis Arduino, Universitas Sanata Dharman, Yogyakarta.
[9]
Khairiniskam, H.I., Wibowo, I.D., dan Anwardi, M. I., 2008, Perancangan dan Implementasi Sistem Tiket Busway Menggunakan Teknologi Smart Card, http://library.binus.ac.id/eColls/eThesis/Bab2/2008-2-00453-SK%20Bab%202.pdf, diakses tanggal 17 Okotober 2015.
[10]
Winarsih, Irda dan Mahendra, Reza 2009, Sistem otomatis Menggunakan RFID Berbasis Mikrokontroler AT 8951, http://blog.trisakti.ac.id/jetri/files/2010/06/-16.2Irda-Reza-parkir-otomatis-2136.pdf, diakses tanggal 29 Oktober 2015.
[11]
-----,-----,
Mindwave
Solutions,
http://www.mindwaveglobal.com/solutions-
/enterprise-solutions/rfid-solutions/, diakses tanggal 03 November 2015. 67
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 68
[12]
-----, -----, ID Series Datasheet, https://www.sparkfun.com/datasheets/Sensors/ID12-Datasheet.pdf, diakses tanggal 03 November 2015.
[13]
Wibowo, Oscar P., 2009, Sistem informasi Kepegawaian dan Penggajian Meggunakan Java dan MySQL (Studi Kasus Kodam I/Bukit Barisan), Universitas Sanata Dharma, Yogyakarta.
[14]
SE, Tomy, -----, Membuat Sistem Aplikasi Minimarket (Point of Sale) dengan Visual Basic 6.0 dan MySQL 5, PT. Elex Media Komputindo.
[15]
Frans NewMan, 2002, Aplikasi Internet Dengan Visual Basic 6.0, Elex Media Komputindo, Jakarta.
[16]
Riyana, Eva Marta, 2007, Pengandali Utama Pada Pemodelan Rumah Pintar Berbasis Visual Basic 6.0, Universitas Sanata Dharma, Yogyakarta.
[17]
-----, 2012, Diktat Pemrograman Antarmuka, Universitas Sanata Dharma, Yogyakarta.
[18]
-----, -----, ATMEL 8-bit AVR Mikrokontroler with 32Kbytes In-System Programmable
Flash
ATMega32,
ATMega32L,
www.techniks.com/Files/atmega32datasheet.pdf, diakses tanggal 04 November 2015. [19]
Agus Bejo, 2008, C dan AVR Rahasia Kemudahan Bahasa C dalam Mikrokontroler ATMega8535, 1st ed, GRAHA ILMU, Yogyakarta.
[20]
Fathoni, Oktober 2010, Unjuk Kerja Catu Daya 12 Volt 2A dengan Pass Element Transistor NPN dan PNP, Jurnal Neutrino, Vol.3, No.1.
[21]
-----, -----, -----, Servo Datasheet, http://www.servodatabase.com, diakses tanggal 10 November 2015.
[22]
Boylestad, R. and Nashelsky, L., -----, Electronic Devices and Circuit Theory, seventh edition, Prentice Hall, New Jersey Columbus, Ohio.
[23]
Setiawan, A., 2011, 20 Aplikasi Mikrokotroler ATMega8535 dan ATMega16, Andi, Yogyakarta.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 69
[24]
Frank D. Petruzella, 2001, Elektronika Industri, 2nd ed, ANDI, Yogyakarta.
[25]
Budiharto, W., 2014, Robotika Modern – Teori dan Implementasi, edisi revisi, C.V Andi Offset, Yogyakarta.
[26]
Zairi, Tomy Abu, 2009, Rancang BangunSistem Parkir Otomatis Berbasis Teknologi RFID Reader DL-019 dan Tag Pasif EPC GEN2 Dengan Fitur Sistem Debit Biaya Parkir Via SMS, Univeritas Indonesia, Jakarta.
[27] Everlight, 2004, Technical Datasheet 3mm Silicon PIN Photodiode T-1, www.everlight.com [28] Everlight, 2005, Technical Datasheet 5mm Infrared Led T-1 ¾, www.everlight.com
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LISTING PROGRAM ARDUINO UNO
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Lampiran |1
#include
#include #include <Wire.h> #include <Servo.h> /*Inisialisasi Servo*/ Servo servoa; Servo servob; /*inisialisasi Sensor Photodioda*/ volatile int waktu=0; volatile int waktu2=0; int kontroltimer=0; int kontroltimer2=0; int kontrolservo=0; int kontrolservo2=0; int servturun=0; int turun=0; ISR(TIMER1_OVF_vect) { TCNT1=49911; if(kontroltimer==1){ waktu++; if(waktu==15){ kontrolservo=1; waktu=0; } } if(kontroltimer2==1){ waktu2++; if(waktu2==15){ kontrolservo2=1; waktu2=0; } } } /*inisialisasi RFID SL018*/ #define TAG2 A3//pin A3 #define TAG1 A2//pin A2 /*Inisialisasi Variabel Baca RFID SL018*/ int data[33], panjang, perintah, kondisi, panjang2; char* mifare[] = {"1K", "Pro", "UltraLight", "4K", "ProX", "DesFire"}; int buff = 0; void setup() { // put your setup code here, to run once: Wire.begin();
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Lampiran |2
Serial.begin(9600); Serial1.begin(9600); Serial2.begin(9600); servoa.attach(5); servob.attach(7); servoa.write(0); servob.write(0); cli(); TCCR1A=0; TCCR1B=0; TCNT1=49911; //preload 1Hz TCCR1B|=(1<
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Lampiran |3
kondisi = 0; byte type = 0; while (digitalRead(TAG1) == 0) {} } } if (Serial.available() > 0) { buff = Serial.read(); } switch (buff) { case 'a': servoa.write(90); servturun=1; break; case 'b': servob.write(90); turun=1; break; case 'c': servoa.write(0); break; case 'd': servob.write(0); break; } if(kontrolservo==1){ buff = 'c'; kontrolservo=0; } if(kontrolservo2==1){ buff = 'd'; kontrolservo2=0; } } /*Subrutin baca RFID SL018*/ int bacaID(boolean TAG) { while (digitalRead(TAG) == 0) { Wire.requestFrom(0x50, 11); if (Wire.available()) { panjang = Wire.read(); perintah = Wire.read(); kondisi = Wire.read(); panjang -= 2; panjang2 = panjang - 1; while (--panjang) { data[panjang] = Wire.read();
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Lampiran |4
} byte type = Wire.read(); return 1; } } Wire.endTransmission(); } /*Interrupt 1*/ void aksi(){ if(servturun==1){ kontroltimer=1; } } /*Interrupt 2*/ void jalan(){ if(turun==1){ kontroltimer2=1; } }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LISTING PROGRAM MIKROKONTROLER AVR ATMEGA32
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Lampiran |5
/******************************************************* This program was created by the CodeWizardAVR V3.26 Automatic Program Generator © Copyright 1998-2016 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com Project : Coba lagi baca rfid Version : Date : 6/24/2016 Author : Company : Comments: Chip type : ATmega32 Program type : Application AVR Core Clock frequency: 11.059200 MHz Memory model : Small External RAM size :0 Data Stack size : 512 *******************************************************/ #include #include <stdio.h> #include <delay.h> #define alamat 0xA0 // TWI functions #asm .equ __i2c_port=0x15; PORTC .equ __sda_bit=1; .equ __scl_bit=0; #endasm #include #include // Alphanumeric LCD functions #asm .equ __lcd_port=0x1B; PPORTA #endasm #include // Declare your global variables here unsigned char buff[16]; void main(void) { // Declare your local variables here //unsigned char data[33];
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Lampiran |6
int data[33]; // Input/Output Ports initialization // Port A initialization // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRA=(0<
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Lampiran |7
// OC1B output: Disconnected // Noise Canceler: Off // Input Capture on Falling Edge // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=(0<
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Lampiran |8
// The Analog Comparator's positive input is // connected to the AIN0 pin // The Analog Comparator's negative input is // connected to the AIN1 pin ACSR=(1<
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Lampiran |9
i2c_write(alamat); i2c_write(0); i2c_stop(); i2c_start(); i2c_write(alamat|1); data[16]=i2c_read(0); i2c_stop(); lcd_clear(); lcd_gotoxy(0,0); sprintf(buff,"%d",data); //kalau pakai perintah ini //yang muncul di lcd angka 542 kak lcd_puts(buff); } else { lcd_clear(); lcd_gotoxy(0,1); lcd_putsf("Tidak ada kartu"); } if (PINA.0==1) { jalan(); delay_ms(200); if (PINA.2==1) { for (dataservo1=91;dataservo1>=45;dataservo1--) { delay_ms(60); } delay_ms(400); diam(); } else { jalan(); } } else if (PINA.1==1) { jln(); delay_ms(200); if (PINA.3==1)) { for (dataservo2=91;dataservo2>=45;dataservo2--) { delay_ms(60); } delay_ms(400); dm();
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 10
} else { jln(); } } else { servo1=0; servo2=0; } }
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LISTING PROGRAM VISUAL BASIC 6.0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 11
LISTING PROGRAM HALAMAN LOGIN Option Explicit Dim max As Integer Private Sub Command1_Click() If Text1.Text = "" Then MsgBox "USERNAME MASIH KOSONG!!", vbCritical, vbOKOnly, "ERROR" Text1.SetFocus ElseIf Text2.Text = "" Then MsgBox "PASSWORD MASIH KOSONG!!", vbCritical, vbOKOnly, "ERROR" Else Call BukaDatabase On Error Resume Next sql = "" sql = "SELECT * FROM mydb.admin WHERE username = '" & Text1.Text & "' " _ & " AND password = '" & Text2.Text & "'" Set rs = koneksi.Execute(sql) If Not rs.BOF Then If Text1.Text = "satpam" Then With MDIForm1 .Enabled = True .mnuHome.Enabled = True .mnuActivity.Enabled = True .mnuRegistration.Enabled = True .mnuInformation.Enabled = True .mnuInfoResidenceMemberView.Enabled = True .mnuInfoResidenceMemberEdit.Enabled = False .mnuInfoSecurityGuardView.Enabled = True .mnuInfoSecurityGuardEdit.Enabled = False .mnuInformationLibrary.Enabled = True .mnuLogout.Enabled = True End With Unload Me Else With MDIForm1 .Enabled = True .mnuHome.Enabled = True .mnuActivity.Enabled = True .mnuRegistration.Enabled = True .mnuInformation.Enabled = True .mnuInfoResidenceMemberView.Enabled = True .mnuInfoResidenceMemberEdit.Enabled = True .mnuInfoSecurityGuardView.Enabled = True .mnuInfoSecurityGuardEdit.Enabled = True .mnuInformationLibrary.Enabled = True .mnuLogout.Enabled = True End With Unload Me End If
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 12
userLogin = rs!UserName namaLogin = rs!nama_adm sttsLogin = True Unload Me Else sttsLogin = False If max < 3 Then MsgBox "PASSWORD MASIH SALAH, SILAHKAN ULANGI LAGI!", vbCritical + vbOKOnly, "ERROR" Text2.Text = "" Text2.SetFocus max = max + 1 Else MsgBox "SUDAH 3x LOGIN SALAH, ULANGI BEBERAPA SAAT LAGI!", vbCritical + vbOKOnly, "ERROR" End If End If End If End Sub Private Sub Form_Load() MDIForm1.Show sttsLogin = False End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then SendKeys "{tab}" End If End Sub Private Sub Text2_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then SendKeys "{tab}" End If End Sub
LISTING PROGRAM HALAMAN UTAMA Private Sub mnuActivity_Click() Form5.Show MDIForm1.Enabled = False Unload Me End Sub Private Sub mnuInfoResidenceMemberEdit_Click() Form3.Show
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 13
MDIForm1.Enabled = False Unload Me End Sub Private Sub mnuInfoResidenceMemberView_Click() Form3.Show MDIForm1.Enabled = False Unload Me End Sub Private Sub mnuInformationLibrary_Click() Form6.Show MDIForm1.Enabled = False Unload Me End Sub Private Sub mnuInfoSecurityGuardEdit_Click() Form4.Show MDIForm1.Enabled = False Unload Me End Sub Private Sub mnuInfoSecurityGuardView_Click() Form4.Show MDIForm1.Enabled = False Unload Me End Sub Private Sub mnuRegistration_Click() Form2.Show MDIForm1.Enabled = False Unload Me End Sub
LISTING PROGRAM HALAMAN PENDAFTARAN Private Sub Command1_Click() If Text9.Text = "" Then MsgBox "KODE BELUM TERBENTUK!", vbCritical, "ERROR" Text9.SetFocus ElseIf Text1.Text = "" Then MsgBox "NOMOR IDENTITAS BELUM DIISI!!", vbCritical, "ERROR" Text1.SetFocus ElseIf Text2.Text = "" Then MsgBox "NAMA TAMU BELUM DIISI!!", vbCritical, "ERROR" Text2.SetFocus ElseIf Text3.Text = "" Then MsgBox "NOMOR TELEPON BELUM DIISI!!", vbCritical, "ERROR"
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 14
Text3.SetFocus ElseIf Text5.Text = "" Then MsgBox "PEKERJAAN BELUM DIISI!!", vbCritical, "ERROR" Text5.SetFocus ElseIf Text6.Text = "" Then MsgBox "ALAMAT TINGGAL BELUM DIISI!!", vbCritical, "ERROR" Text6.SetFocus ElseIf Text7.Text = "" Then MsgBox "ALAMAT TUJUAN BELUM DIISI!!", vbCritical, "ERROR" Text7.SetFocus ElseIf Text8.Text = "" Then MsgBox "NOMOR KENDARAAN BELUM DIISI!!", vbCritical, "ERROR" Text8.SetFocus Else Dim kelamin As String If obkelamin(0).Value = True Then kelamin = "Laki - Laki" Else kelamin = "Perempuan" End If strSQL = "INSERT INTO tamu(idtamu, rfid_tamu, nama_tamu, telepon, gender, job, origin, add_visit, nopol)" _ & "VALUES('" & Text9.Text & "', '" & Text1.Text & "','" & Text2.Text & "','" & Text3.Text & "', '" & kelamin & "','" & Text5.Text & "', '" & Text6.Text & "','" & Text7.Text & "', '" & Text8.Text & "')" koneksi.Execute strSQL, , adCmdText MsgBox "SUKSES !! DATA BERHASIL DISIMPAN!", vbInformation, "Information" End If Call formkosong Call kodeotomatis Text1.SetFocus End Sub Private Sub Command2_Click() If kode = "" Then MsgBox "BELUM ADA DATA DIPILIH!", vbCritical, "ERROR" FlexGrid1.SetFocus Else konfirmasi = MsgBox("ARE YOU SURE WANT TO DELETE THIS DATA?", vbYesNo + vbQuestion, "Informastion") If konfirmasi = vbYes Then strSQL = "" strSQL = "DELETE FROM tamu WHERE idtamu='" & kode & "'" koneksi.Execute strSQL, , adCmdText rs.Requery Call gridDataFresh MsgBox "SUCCESS !! YOUR DATA HAS BEEN DELETED!", vbInformation, "SUCCSESS" End If End If
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 15
Call formkosong Call kodeotomatis Call gridDataFresh End Sub Private Sub FlexGrid1_Click() If FlexGrid1.Rows <= 1 Then Exit Sub Else baris = FlexGrid1.Row kode = FlexGrid1.TextMatrix(baris, 1) Call dataPilih End If End Sub Private Sub Form_Load() Call BukaDatabase Call kodeotomatis Call gridDataFresh Text9.Locked = True Command2.Enabled = False End Sub Public Sub kodeotomatis() Set rs = New ADODB.Recordset strSQL = "SELECT idtamu FROM tamu ORDER BY idtamu" rs.Open strSQL, koneksi, adOpenDynamic, adLockBatchOptimistic If Not rs.BOF Then rs.MoveLast baru = rs!idtamu baru = Right(baru, 3) baru = Val(baru + 1) If Len(kodebaru) > 3 Then MsgBox "KODE BARU MELEWATI BATAS, BELUM BISA LEBIH DARI 999", vbCritical, "ERROR" Exit Sub End If baru = "T" & Format(baru, "000") Else baru = "T001" End If Text9.Text = baru End Sub Sub formkosong() Text9.Text = "" Text1.Text = "" Text2.Text = "" Text3.Text = ""
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 16
Text5.Text = "" Text6.Text = "" Text7.Text = "" Text8.Text = "" End Sub Sub dataPilih() Command2.Enabled = True strSQL = "SELECT * FROM tamu WHERE rfid_tamu='" & kode & "'" Set rs = New ADODB.Recordset rs.Open strSQL, koneksi, adOpenDynamic, adLockBatchOptimistic If Not rs.BOF Then Text9.Text = rs!idtamu Text1.Text = rs!rfid_tamu Text2.Text = rs!nama_tamu Text3.Text = rs!telepon Text5.Text = rs!job Text6.Text = rs!origin Text7.Text = rs!add_visit Text8.Text = rs!nopol If rs!gender = "Laki - Laki" Then obkelamin(0).Value = True Else obkelamin(1).Value = True End If Else MsgBox "THERE IS NO DATA SELECTED!!", vbInformation, "Information" End If End Sub Sub gridDataFresh() strSQL = "SELECT * FROM tamu ORDER BY idtamu ASC" Set rs = New ADODB.Recordset rs.Open strSQL, koneksi, adOpenDynamic, adLockBatchOptimistic Call AktifkanFlex Call TampilkanFlexData End Sub Sub AktifkanFlex() With FlexGrid1 .Cols = 7 .Rows = 2 .Col = 0 .Row = 0 .Text = "NO" .CellFontBold = True .ColWidth(0) = 400 .CellAlignment = flexAlignCenterCenter
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 17
.Col = 1 .Row = 0 .Text = "NO. RFID" .CellFontBold = True .ColWidth(1) = 1500 .CellAlignment = flexAlignCenterCenter .Col = 2 .Row = 0 .Text = "FULL NAME" .CellFontBold = True .ColWidth(2) = 3000 .CellAlignment = flexAlignCenterCenter
.Col = 3 .Row = 0 .Text = "PHONE NUMBER" .CellFontBold = True .ColWidth(3) = 2500 .CellAlignment = flexAlignCenterCenter .Col = 4 .Row = 0 .Text = "GENDER" .CellFontBold = True .ColWidth(4) = 1500 .CellAlignment = flexAlignCenterCenter .Col = 5 .Row = 0 .Text = "ADDRESS" .CellFontBold = True .ColWidth(5) = 5000 .CellAlignment = flexAlignCenterCenter .Col = 6 .Row = 0 .Text = "POLICE NUMBER" .CellFontBold = True .ColWidth(6) = 2000 .CellAlignment = flexAlignCenterCenter End With End Sub Sub TampilkanFlexData() Dim no As Integer FlexGrid1.Rows = 2 no = 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 18
If rs.BOF Then MsgBox "THERE IS NO DATA!!", vbInformation, "Information" Exit Sub Else rs.MoveFirst On Error Resume Next Do While Not rs.EOF no = no + 1 FlexGrid1.Rows = no + 1 FlexGrid1.TextMatrix(no, 0) = no FlexGrid1.TextMatrix(no, 1) = rs!rfid_tamu FlexGrid1.TextMatrix(no, 2) = rs!nama_tamu FlexGrid1.TextMatrix(no, 3) = rs!telepon FlexGrid1.TextMatrix(no, 4) = rs!gender FlexGrid1.TextMatrix(no, 5) = rs!origin FlexGrid1.TextMatrix(no, 6) = rs!nopol rs.MoveNext Loop FlexGrid1.Rows = 101 + no End If End Sub Private Sub mnuActivity_Click() Form5.Show Form2.Enabled = False Unload Me End Sub Private Sub mnuHome_Click() MDIForm1.Show Form2.Enabled = False Unload Me End Sub Private Sub mnuInfoResidenceMemberEdit_Click() Form3.Show Form2.Enabled = False Unload Me End Sub Private Sub mnuInfoResidenceMemberView_Click() Form7.Show Form2.Enabled = False Unload Me End Sub Private Sub mnuInformationLibrary_Click() Form6.Show Form2.Enabled = False
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 19
Unload Me End Sub Private Sub mnuInfoSecurityGuardEdit_Click() Form4.Show Form2.Enabled = False Unload Me End Sub Private Sub mnuInfoSecurityGuardView_Click() Form8.Show Form2.Enabled = False Unload Me End Sub Private Sub mnuLogout_Click() Dim p As Integer p = MsgBox("Are you sure want to quit this application?", vbOKCancel, "WARNING") If p = vbOK Then Form1.Show Else Form2.Show End If End Sub Private Sub obkelamin_KeyPress(Index As Integer, KeyAscii As Integer) If KeyAscii = vbKeyReturn Then Text5.SetFocus KeyAscii = 0 End If End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then Text2.SetFocus KeyAscii = 0 End If End Sub
Private Sub Text2_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then Text3.SetFocus KeyAscii = 0 End If End Sub Private Sub Text3_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then obkelamin(0).SetFocus
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 20
KeyAscii = 0 End If End Sub Private Sub Text5_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then Text6.SetFocus KeyAscii = 0 End If End Sub Private Sub Text6_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then Text7.SetFocus KeyAscii = 0 End If End Sub Private Sub Text7_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then Text8.SetFocus KeyAscii = 0 End If End Sub Private Sub Text8_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then Command1.SetFocus KeyAscii = 0 End If End Sub
LISTING PROGRAM HALAMAN INFORMASI AKTIVITAS Private Sub Command1_Click() If MSComm1.PortOpen = False Then MSComm1.CommPort = 10 MSComm1.Settings = "9600,n,8,1" MSComm1.PortOpen = True End If Call terima_data End Sub Sub terima_data() Dim inbuff As String Dim dt_a As String inbuff = MSComm1.Input If inbuff <> "" Then dt_a = Mid$(inbuff, 1, 12)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 21
End If Text3.Text = dt_a End Sub Private Sub Command2_Click() LaporanAktivitas.Show End Sub Private Sub Command3_Click() MSComm1.Output = "y" & Chr$(13) End Sub Private Sub Form_Load() Call BukaDatabase Call gridDataFresh End Sub Private Sub Form_Resize() FlexGrid1.Width = Me.Width - 500 FlexGrid1.Height = Me.Height - 200 Label1.RightToLeft = Me.Width - (Label1.Width + 400) Label1.Top = 0 End Sub Sub gridDataFresh() strSQL = "SELECT * FROM aktivitas ORDER BY idaktivitas ASC" Set rs = New ADODB.Recordset rs.Open strSQL, koneksi, adOpenDynamic, adLockBatchOptimistic Call AktifkanGridData Call TampilkanGrid End Sub Sub AktifkanGridData() With FlexGrid1 .Cols = 8 .Rows = 2 .Col = 0 .Row = 0 .Text = "NO" .CellFontBold = True .ColWidth(0) = 400 .CellAlignment = flexAlignCenterCenter .Col = 1 .Row = 0 .Text = "DATE" .CellFontBold = True .ColWidth(1) = 1500 .CellAlignment = flexAlignCenterCenter
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 22
.Col = 2 .Row = 0 .Text = "TIME" .CellFontBold = True .ColWidth(2) = 1500 .CellAlignment = flexAlignCenterCenter .Col = 3 .Row = 0 .Text = "NO.RFID" .CellFontBold = True .ColWidth(3) = 1500 .CellAlignment = flexAlignCenterCenter .Col = 4 .Row = 0 .Text = "FULL NAME" .CellFontBold = True .ColWidth(4) = 4000 .CellAlignment = flexAlignCenterCenter .Col = 5 .Row = 0 .Text = "GENDER" .CellFontBold = True .ColWidth(5) = 1500 .CellAlignment = flexAlignCenterCenter .Col = 6 .Row = 0 .Text = "ADDRESS" .CellFontBold = True .ColWidth(6) = 6000 .CellAlignment = flexAlignCenterCenter .Col = 7 .Row = 0 .Text = "POLICE NUMBER" .CellFontBold = True .ColWidth(6) = 2500 .CellAlignment = flexAlignCenterCenter End With End Sub Sub panggilPemilik() strSQL = "SELECT * FROM pemilik ORDER BY rfid ASC" Set rs = New ADODB.Recordset rs.Open strSQL, koneksi, adOpenDynamic, adLockBatchOptimistic End Sub
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 23
Sub panggilTamu() strSQL = "SELECT * FROM tamu ORDER BY rfid_tamu ASC" Set rs = New ADODB.Recordset rs.Open strSQL, koneksi, adOpenDynamic, adLockBatchOptimistic End Sub Sub TampilkanGrid() Dim no As Integer FlexGrid1.Rows = 2 no = 0 If rs.BOF Then MsgBox "SORRY CAN'T FIND THE DATA!! PLEASE ADD FIRST!", vbInformation, "Information" Exit Sub Else If Text3.Text = "4B00A97FCB" Then Call panggilPemilik rs.MoveFirst On Error Resume Next Do While Not rs.EOF no = no + 1 FlexGrid1.Rows = no + 1 FlexGrid1.TextMatrix(no, 0) = no FlexGrid1.TextMatrix(no, 1) = rs!idpemilik FlexGrid1.TextMatrix(no, 2) = rs!rfid FlexGrid1.TextMatrix(no, 3) = rs!nama_own FlexGrid1.TextMatrix(no, 4) = rs!gender_own FlexGrid1.TextMatrix(no, 5) = rs!telpon_own FlexGrid1.TextMatrix(no, 6) = rs!alamat FlexGrid1.TextMatrix(no, 7) = rs!plat_own rs.MoveNext Loop FlexGrid1.Rows = 101 + no Else Call panggilTamu rs.MoveFirst On Error Resume Next Do While Not rs.EOF no = no + 1 FlexGrid1.Rows = no + 1 FlexGrid1.TextMatrix(no, 0) = no FlexGrid1.TextMatrix(no, 1) = rs!idtamu FlexGrid1.TextMatrix(no, 2) = rs!rfid_tamu FlexGrid1.TextMatrix(no, 3) = rs!nama_tamu FlexGrid1.TextMatrix(no, 4) = rs!gender FlexGrid1.TextMatrix(no, 5) = rs!telepon FlexGrid1.TextMatrix(no, 6) = rs!add_visit FlexGrid1.TextMatrix(no, 7) = rs!nopol
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 24
rs.MoveNext Loop FlexGrid1.Rows = 101 + no End If End If End Sub Private Sub mnuHome_Click() MDIForm1.Show Form5.Enabled = False Unload Me End Sub Private Sub mnuInfoResidenceMemberEdit_Click() Form3.Show Form5.Enabled = False Unload Me End Sub Private Sub mnuInfoResidenceMemberView_Click() Form7.Show Form5.Enabled = False Unload Me End Sub Private Sub mnuInformationLibrary_Click() Form6.Show Form5.Enabled = False Unload Me End Sub Private Sub mnuInfoSecurityGuardEdit_Click() Form4.Show Form5.Enabled = False Unload Me End Sub Private Sub mnuInfoSecurityGuardView_Click() Form8.Show Form5.Enabled = False Unload Me End Sub Private Sub mnuLogout_Click() Dim p As Integer p = MsgBox("Are you sure want to quit this application?", vbOKCancel, "WARNING") If p = vbOK Then Form1.Show Else Form5.Show End If
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 25
End Sub Private Sub mnuRegistration_Click() Form2.Show Form5.Enabled = False Unload Me End Sub Private Sub FlexGrid1_Click() If FlexGrid1.Rows <= 1 Then Exit Sub Else baris = FlexGrid1.Row kode = FlexGrid1.TextMatrix(baris, 1) End If End Sub
LISTING PROGRAM HALAMAN INFORMASI DATA KEPENDUDUKAN Private Sub Command1_Click() Command1.Enabled = False Command3.Enabled = True Command4.Enabled = True End Sub Sub dataPilihkeForm() 'belum bisa nampilin anggota keluarga strSQL = "SELECT * FROM member WHERE pemilik_idpemilik='" & kode & "'" Set rs = New ADODB.Recordset rs.Open strSQL, koneksi, adOpenDynamic, adLockBatchOptimistic strSQL = "SELECT * FROM pemilik WHERE idpemilik='" & kode & "'" Set rs = New ADODB.Recordset rs.Open strSQL, koneksi, adOpenDynamic, adLockBatchOptimistic If Not rs.BOF Then Text8.Text = rs!idpemilik Text7.Text = rs!rfid Text1.Text = rs!ktp_own Text2.Text = rs!nama_own Text3.Text = rs!telpon_own Text4.Text = rs!alamat Text5.Text = rs!plat_own If rs!gender_own = "Laki - Laki" Then kelamin(0).Value = True Else kelamin(1).Value = True End If Else MsgBox "THERE IS NO DATA SELECTED!", vbInformation, "Information" Call kodeotomatis
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 26
Exit Sub End If End Sub Sub formkosong() Text8.Text = "" Text7.Text = "" Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" Text5.Text = "" Text6.Text = "" End Sub Sub kodeotomatis() Set rs = New ADODB.Recordset strSQL = "SELECT idpemilik FROM pemilik ORDER BY idpemilik" rs.Open strSQL, koneksi, adOpenDynamic, adLockBatchOptimistic If Not rs.BOF Then rs.MoveLast baru = rs!idpemilik baru = Right(baru, 3) baru = Val(baru) + 1 If Len(baru) > 3 Then MsgBox "YOUR CODE INVALID!!", vbCritical, "ERROR" Exit Sub End If baru = "P" & Format(baru, "000") Else baru = "P001" End If Text8.Text = baru End Sub Private Sub Command3_Click() If kode = "" Then MsgBox "PERIKSA KEMBALI DATA!! BELUM ADA DATA YANG DIPILIH!!!", vbCritical, "WARNING" Else konfirm = MsgBox("ARE YOU SURE WANT TO DELETE THE DATA?", vbQuestion + vbYesNo, "INFORMATION") If konfirm = vbYes Then strSQL = "" strSQL = "DELETE FROM pemilik WHERE idpemilik='" & kode & "'" koneksi.Execute strSQL, , adCmdText strSQL = "" strSQL = "DELETE FROM member WHERE pemilik_idpemilik='" & kode & "'"
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 27
koneksi.Execute strSQL, , adCmdText MsgBox "DATA HAS BEEN DELETED!", vbInformation, "SUCCSESS" End If End If Call gridDataFresh End Sub Private Sub Command4_Click() If Text8.Text = "" Then MsgBox "NOMOR PEMILIK MASIH KOSONG!", vbCritical, "WARNING" Text8.SetFocus End If If Text7.Text = "" Then MsgBox "ID PEMILIK MASIH KOSONG!", vbCritical, "WARNING" Text7.SetFocus End If If Text1.Text = "" Then MsgBox "NOMOR KARTU IDENTITAS PEMILIK MASIH KOSONG!", vbCritical, "WARNING" Text1.SetFocus End If If Text2.Text = "" Then MsgBox "NAMA PEMILIK MASIH KOSONG!", vbCritical, "WARNING" Text2.SetFocus End If If Text3.Text = "" Then MsgBox "NOMOR TELEPON PEMILIK MASIH KOSONG!", vbCritical, "WARNING" Text3.SetFocus End If If Text4.Text = "" Then MsgBox "ALAMAT RUMAH PEMILIK MASIH KOSONG!", vbCritical, "WARNING" Text4.SetFocus End If If Text5.Text = "" Then MsgBox "NOMOR KENDARAAN PEMILIK MASIH KOSONG!", vbCritical, "WARNING" Text5.SetFocus End If If Text6.Text = "" Then MsgBox "ANGOOTA KELUARGA PEMILIK MASIH KOSONG!", vbCritical, "WARNING" Text6.SetFocus End If Dim gender As String If kelamin(0).Value = True Then gender = "Laki - Laki" Else gender = "Perempuan" End If Command1.Enabled = True Command2.Enabled = False Command3.Enabled = True Command4.Enabled = False
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 28
Command5.Enabled = True strSQL = "" strSQL = "UPDATE pemilik SET rfid='" & Text7.Text & "', " _ & "ktp_own='" & Text1.Text & "'," _ & "nama_own='" & Text2.Text & "'." _ & "telpon_own='" & Text3.Text & "'," _ & "alamat='" & Text4.Text & "'," _ & "gender_own='" & gender & "'," _ & "plat_own='" & Text5.Text & "'" _ & "WHERE idpemilik='" & Text8.Text & "'" koneksi.Execute strSQL, , adCmdText strSQL = "UPDATE member SET nama_member='" & Text6.Text & "'WHERE pemilik_idpemilik='" & Text8.Text & "'" koneksi.Execute strSQL, , adCmdText MsgBox "SUCCSES!! YOUR DATA HAS BEEN UPDATED!", vbInformation, "SUCCSES" Call gridDataFresh End Sub Private Sub Command5_Click() If Text8.Text = "" Then MsgBox "NOMOR PEMILIK MASIH KOSONG!", vbCritical, "WARNING" Text8.SetFocus End If If Text7.Text = "" Then MsgBox "ID PEMILIK MASIH KOSONG!", vbCritical, "WARNING" Text7.SetFocus End If If Text1.Text = "" Then MsgBox "NOMOR KARTU IDENTITAS PEMILIK MASIH KOSONG!", vbCritical, "WARNING" Text1.SetFocus End If If Text2.Text = "" Then MsgBox "NAMA PEMILIK MASIH KOSONG!", vbCritical, "WARNING" Text2.SetFocus End If If Text3.Text = "" Then MsgBox "NOMOR TELEPON PEMILIK MASIH KOSONG!", vbCritical, "WARNING" Text3.SetFocus End If If Text4.Text = "" Then MsgBox "ALAMAT RUMAH PEMILIK MASIH KOSONG!", vbCritical, "WARNING" Text4.SetFocus End If If Text5.Text = "" Then MsgBox "NOMOR KENDARAAN PEMILIK MASIH KOSONG!", vbCritical, "WARNING" Text5.SetFocus End If If Text6.Text = "" Then MsgBox "ANGOOTA KELUARGA PEMILIK MASIH KOSONG!", vbCritical, "WARNING" Text6.SetFocus
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 29
End If Dim gender As String If kelamin(0).Value = True Then gender = "Laki - Laki" Else gender = "Perempuan" End If Command1.Enabled = True Command2.Enabled = True Command3.Enabled = False Command4.Enabled = False Command5.Enabled = False strSQL = "" strSQL = "INSERT INTO pemilik(idpemilik,rfid,ktp_own,nama_own,telpon_own,alamat,gender_own,plat_own)" _ & "VALUES('" & Text8.Text & "','" & Text7.Text & "','" & Text1.Text & "','" & Text2.Text & "','" & Text3.Text & "','" & Text4.Text & "'," _ & "'" & gender & "','" & Text5.Text & "')" koneksi.Execute strSQL, , adCmdText strSQL = "INSERT INTO member(nama_member,pemilik_idpemilik) VALUES('" & Text6.Text & "','" & Text8.Text & "')" koneksi.Execute strSQL, , adCmdText MsgBox "YOUR DATA HAS BEEN SUCCESSFULY SAVED!", vbInformation, "SUCCSESS" Call formkosong Call kodeotomatis Text7.SetFocus Call gridDataFresh End Sub Private Sub Form_Load() Call BukaDatabase Call kodeotomatis Call gridDataFresh Text8.Locked = True Command3.Enabled = False Command4.Enabled = False Command5.Enabled = True End Sub Sub gridDataFresh() strSQL = "SELECT * FROM member ORDER BY pemilik_idpemilik ASC" Set rs = New ADODB.Recordset rs.Open strSQL, koneksi, adOpenDynamic, adLockBatchOptimistic strSQL = "SELECT * FROM pemilik ORDER BY idpemilik ASC" Set rs = New ADODB.Recordset rs.Open strSQL, koneksi, adOpenDynamic, adLockBatchOptimistic Call AktifkanGridData
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 30
Call TampilkanGrid End Sub Sub AktifkanGridData() With FlexGrid1 .Cols = 8 .Rows = 2 .Col = 0 .Row = 0 .Text = "NO" .CellFontBold = True .ColWidth(0) = 400 .CellAlignment = flexAlignCenterCenter .Col = 1 .Row = 0 .Text = "CODE" .CellFontBold = True .ColWidth(1) = 700 .CellAlignment = flexAlignCenterCenter .Col = 2 .Row = 0 .Text = "NO.RFID" .CellFontBold = True .ColWidth(2) = 1500 .CellAlignment = flexAlignCenterCenter .Col = 3 .Row = 0 .Text = "FULL NAME" .CellFontBold = True .ColWidth(3) = 4000 .CellAlignment = flexAlignCenterCenter .Col = 4 .Row = 0 .Text = "GENDER" .CellFontBold = True .ColWidth(4) = 2000 .CellAlignment = flexAlignCenterCenter .Col = 5 .Row = 0 .Text = "PHONE NUMBER" .CellFontBold = True .ColWidth(5) = 2300 .CellAlignment = flexAlignCenterCenter
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 31
.Col = 6 .Row = 0 .Text = "ADDRESS" .CellFontBold = True .ColWidth(6) = 6000 .CellAlignment = flexAlignCenterCenter .Col = 7 .Row = 0 .Text = "POLICE NUMBER" .CellFontBold = True .ColWidth(6) = 2500 .CellAlignment = flexAlignCenterCenter End With End Sub Sub TampilkanGrid() Dim no As Integer FlexGrid1.Rows = 2 no = 0 If rs.BOF Then MsgBox "SORRY CAN'T FIND THE DATA!! PLEASE ADD FIRST!", vbInformation, "Information" Form3.Show Exit Sub Else rs.MoveFirst On Error Resume Next Do While Not rs.EOF no = no + 1 FlexGrid1.Rows = no + 1 FlexGrid1.TextMatrix(no, 0) = no FlexGrid1.TextMatrix(no, 1) = rs!idpemilik FlexGrid1.TextMatrix(no, 2) = rs!rfid FlexGrid1.TextMatrix(no, 3) = rs!nama_own FlexGrid1.TextMatrix(no, 4) = rs!gender_own FlexGrid1.TextMatrix(no, 5) = rs!telpon_own FlexGrid1.TextMatrix(no, 6) = rs!alamat FlexGrid1.TextMatrix(no, 7) = rs!plat_own rs.MoveNext Loop FlexGrid1.Rows = 101 + no End If End Sub Private Sub kelamin_KeyPress(Index As Integer, KeyAscii As Integer) If KeyAscii = vbKeyReturn Then Text3.SetFocus KeyAscii = 0 End If
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 32
End Sub Private Sub mnuActivity_Click() Form5.Show Form3.Enabled = False Unload Me End Sub Private Sub mnuHome_Click() MDIForm1.Show Form3.Enabled = False Unload Me End Sub Private Sub mnuInfoResidenceMemberView_Click() Form7.Show Form3.Enabled = False Unload Me End Sub Private Sub mnuInformasiLibrary_Click() Form6.Show Form3.Enabled = False Unload Me End Sub Private Sub mnuInfoSecurityGuardEdit_Click() Form4.Show Form3.Enabled = False Unload Me End Sub Private Sub mnuInfoSecurityGuardView_Click() Form8.Show Form3.Enabled = False Unload Me End Sub Private Sub mnuLogout_Click() Dim p As Integer p = MsgBox("Are you sure want to quit this application?", vbOKCancel, "WARNING") If p = vbOK Then Form1.Show Else Form3.Show End If End Sub Private Sub mnuRegistration_Click() Form2.Show
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 33
Form3.Enabled = False Unload Me End Sub Private Sub FlexGrid1_Click() If FlexGrid1.Rows <= 1 Then Exit Sub Else baris = FlexGrid1.Row kode = FlexGrid1.TextMatrix(baris, 1) Call dataPilihkeForm End If End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then Text2.SetFocus KeyAscii = 0 End If End Sub Private Sub Text2_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then kelamin(0).SetFocus KeyAscii = 0 End If End Sub Private Sub Text3_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then Text4.SetFocus KeyAscii = 0 End If End Sub Private Sub Text4_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then Text5.SetFocus KeyAscii = 0 End If End Sub Private Sub Text5_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then Text6.SetFocus KeyAscii = 0 End If End Sub Private Sub Text6_KeyPress(KeyAscii As Integer)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 34
If KeyAscii = vbKeyReturn Then Command5.SetFocus KeyAscii = 0 End If End Sub Private Sub Text7_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then Text1.SetFocus KeyAscii = 0 End If End Sub Private Sub Text8_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then Text7.SetFocus KeyAscii = 0 End If End Sub Private Sub Text9_Change() strSQL = "SELECT * FROM pemilik WHERE nama_own LIKE '%" & Text9.Text & "%' ORDEY BY idpemilik ASC" Set rs = New ADODB.Recordset rs.Open strSQL, koneksi, adOpenDynamic, adLockBatchOptimistic Call TampilkanGrid End Sub
LISTING PROGRAM HALAMAN INFORMASI DATA SATPAM Private Sub Command1_Click() Command1.Enabled = False Command3.Enabled = True Command4.Enabled = True End Sub
Private Sub Command3_Click() If kode = "" Then MsgBox "DATA ON GRID ROWS HASN'T SELECTED", vbCritical, "ERROR" FlexGrid1.SetFocus Else konfirmasi = MsgBox("ARE YOU SURE WANT TO DELETE THIS DATA?", vbYesNo + vbQuestion, "Information") If konfirmasi = vbYes Then strSQL = "" strSQL = "DELETE FROM admin WHERE idadmin='" & kode & "'" koneksi.Execute strSQL, , adCmdText rs.Requery
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 35
Call Form8.gridDataFresh MsgBox "YOUR DATA HAS BEEN SUCCESSFULY DELETED!", vbInformation, "Information" End If End If Call formkosong Call kodeotomatis Call gridDataFresh Command1.Enabled = True Command3.Enabled = False Command4.Enabled = False Command5.Enabled = False End Sub Private Sub Command4_Click() If Text6.Text = "" Then MsgBox "KODE BELUM TERBENTUK!!", vbCritical, "ERROR" Text6.SetFocus ElseIf Text1.Text = "" Then MsgBox "NOMOR KTP PETUGAS BELM TERISI!!", vbCritical, "ERROR" Text1.SetFocus ElseIf Text2.Text = "" Then MsgBox "NAMA PETUGAS BELUM DIISI!!", vbCritical, "ERROR" Text2.SetFocus ElseIf Text3.Text = "" Then MsgBox "USERNAME BELUM DIISI!!", vbCritical, "ERROR" Text3.SetFocus ElseIf Text4.Text = "" Then MsgBox "PASSWORD BELUM TERISI!!", vbCritical, "ERROR" Text4.SetFocus Else strSQL = "UPDATE admin SET idadmin='" & Text6.Text & "', nama_adm='" & Text2.Text & "', ktp='" & Text1.Text & "'," _ & "username='" & Text3.Text & "', password='" & Text4.Text & "'" koneksi.Execute strSQL, , adcmdtexxt MsgBox "YOUR DATA HAS BEEN UPDATED!!", vbInformation, "Information" End If Call formkosong Call kodeotomatis Call gridDataFresh Command1.Enabled = True Command3.Enabled = True Command4.Enabled = False Command5.Enabled = True End Sub Private Sub Command5_Click() If Text6.Text = "" Then MsgBox "KODE BELUM TERBENTUK!!", vbCritical, "ERROR"
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 36
Text6.SetFocus ElseIf Text1.Text = "" Then MsgBox "NOMOR KTP PETUGAS BELM TERISI!!", vbCritical, "ERROR" Text1.SetFocus ElseIf Text2.Text = "" Then MsgBox "NAMA PETUGAS BELUM DIISI!!", vbCritical, "ERROR" Text2.SetFocus ElseIf Text3.Text = "" Then MsgBox "USERNAME BELUM DIISI!!", vbCritical, "ERROR" Text3.SetFocus ElseIf Text4.Text = "" Then MsgBox "PASSWORD BELUM TERISI!!", vbCritical, "ERROR" Text4.SetFocus Else strSQL = "INSERT INTO admin(idadmin, nama_adm, ktp, username, password)" _ & "VALUES('" & Text6.Text & "','" & Text2.Text & "','" & Text1.Text & "'," _ & "'" & Text3.Text & "','" & Text4.Text & "')" koneksi.Execute strSQL, , adCmdText MsgBox "YOUR DATA HAS BEEN UPDATED!!", vbInformation, "Information" Text2.SetFocus End If Call formkosong Call kodeotomatis Call gridDataFresh Command1.Enabled = True Command3.Enabled = False Command4.Enabled = False End Sub Private Sub FlexGrid1_Click() If FlexGrid1.Rows <= 1 Then Call formkosong Call kodeotomatis Exit Sub Else baris = FlexGrid1.Row kode = FlexGrid1.TextMatrix(baris, 1) Call dataPilihkeForm End If End Sub Private Sub Form_Load() Call BukaDatabase Call kodeotomatis Call gridDataFresh Text6.Locked = True Command2.Enabled = True Command3.Enabled = False Command4.Enabled = False
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 37
Command5.Enabled = False End Sub Sub gridDataFresh() strSQL = "SELECT * FROM admin ORDER BY idadmin ASC" Set rs = New ADODB.Recordset rs.Open strSQL, koneksi, adOpenDynamic, adLockBatchOptimistic Call AktifkanFlex Call TampilkanFlexData End Sub Sub AktifkanFlex() With FlexGrid1 .Cols = 5 .Rows = 2 .Col = 0 .Row = 0 .Text = "NO" .CellFontBold = True .ColWidth(0) = 400 .CellAlignment = flexAlignCenterCenter .Col = 1 .Row = 0 .Text = "CODE" .CellFontBold = True .ColWidth(1) = 1000 .CellAlignment = flexAlignCenterCenter .Col = 2 .Row = 0 .Text = "FULL NAME" .CellFontBold = True .ColWidth(2) = 3000 .CellAlignment = flexAlignCenterCenter .Col = 3 .Row = 0 .Text = "NO.IDENTITY CARD" .CellFontBold = True .ColWidth(3) = 2000 .CellAlignment = flexAlignCenterCenter .Col = 4 .Row = 0 .Text = "USERNAME" .CellFontBold = True .ColWidth(4) = 2000 .CellAlignment = flexAlignCenterCenter
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 38
End With End Sub Sub TampilkanFlexData() Dim no As Integer FlexGrid1.Rows = 2 no = 0 If rs.BOF Then MsgBox "THERE IS NO DATA SELECTED!!!", vbInformation, "Information" Exit Sub Else rs.MoveFirst On Error Resume Next Do While Not rs.EOF no = no + 1 FlexGrid1.Rows = no + 1 FlexGrid1.TextMatrix(no, 0) = no FlexGrid1.TextMatrix(no, 1) = rs!idadmin FlexGrid1.TextMatrix(no, 2) = rs!nama_adm FlexGrid1.TextMatrix(no, 3) = rs!ktp FlexGrid1.TextMatrix(no, 4) = rs!UserName rs.MoveNext Loop FlexGrid1.Rows = 101 + no End If End Sub Sub formkosong() Text6.Text = "" Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" End Sub Sub kodeotomatis() Set rs = New ADODB.Recordset strSQL = "SELECT idadmin FROM admin ORDER BY idadmin" rs.Open strSQL, koneksi, adOpenDynamic, adLockBatchOptimistic If Not rs.BOF Then rs.MoveLast baru = rs!idadmin baru = Right(baru, 3) baru = Val(baru + 1) If Len(baru) > 3 Then MsgBox "SORRY WE CAN'T GIVE YOUR ID ADMIN!!", vbCritical, "ERROR" Exit Sub End If baru = "S" & Format(baru, "000")
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 39
Else baru = "S001" End If Text6.Text = baru End Sub Sub dataPilihkeForm() strSQL = "SELECT * FROM admin WHERE idadmin='" & kode & "'" Set rs = New ADODB.Recordset rs.Open strSQL, koneksi, adOpenDynamic, adLockBatchOptimistic If rs.BOF Then MsgBox "THERE IS NO DATA SELECTED!!", vbInformation, "Information" Call formkosong Call kodeotomatis Exit Sub Else Text6.Text = rs!idadmin Text1.Text = rs!ktp Text2.Text = rs!nama_adm Text3.Text = rs!UserName Text4.Text = rs!Password End If End Sub Private Sub mnuActivity_Click() Form5.Show Form4.Enabled = False Unload Me End Sub Private Sub mnuHome_Click() MDIForm1.Show Form4.Enabled = False Unload Me End Sub Private Sub mnuInfoResidenceMemberEdit_Click() Form3.Show Form4.Enabled = False Unload Me End Sub Private Sub mnuInformationLibrary_Click() Form6.Show Form4.Enabled = False Unload Me End Sub Private Sub mnuInfoSecurityGuardView_Click()
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 40
Form8.Show Form4.Enabled = False Unload Me End Sub Private Sub mnuLogout_Click() Dim p As Integer p = MsgBox("Are you sure want to quit this application?", vbOKCancel, "WARNING") If p = vbOK Then Form1.Show Else Form4.Show End If End Sub Private Sub mnuRegistration_Click() Form2.Show Form4.Enabled = False Unload Me End Sub Private Sub mnuResidenceMemberView_Click() Form7.Show Form4.Enabled = False Unload Me End Sub
LISTING PROGRAM MODUL KONEKSI Option Explicit Public koneksi As New ADODB.Connection Public rs, RsAdmin As ADODB.Recordset Public RsAktivitas As ADODB.Recordset Public RsMember As ADODB.Recordset Public RsPemilik As ADODB.Recordset Public RsTamu As ADODB.Recordset Public str, driverKONEKSI As String Public sql, strSQL As String Public userLogin, namaLogin As String Public sttsLogin As Boolean Public Sub BukaDatabase() Set koneksi = New ADODB.Connection koneksi.CursorLocation = adUseClient koneksi.ConnectionString = "" _ & "DRIVER={MySQL ODBC 5.1 Driver};" _ & "SERVER= localhost;" _ & "DATABASE= mysql;" _ & "UID=root;" _
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 41
& "PWD=;" _ & "OPTION=" If koneksi.State = adStateOpen Then koneksi.Close Set koneksi = New ADODB.Connection Set rs = New ADODB.Recordset Else koneksi.Open End If If Err.Number <> 0 Then MsgBox "Koneksi MySQL Gagal, Periksa Modul Koneksi", vbCritical, "ERROR" Exit Sub Else MsgBox "Koneksi Berhasil", vbInformation, "Sukses" End If End Sub
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LISTING PROGRAM DATABASE MySQL
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 42
-- MySQL Script generated by MySQL Workbench -- 04/15/16 15:22:25 -- Model: New Model Version: 1.0 -- MySQL Workbench Forward Engineering SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES'; -- ------------------------------------------------------ Schema PortalRumah -- ------------------------------------------------------ ------------------------------------------------------ Schema PortalRumah -- ----------------------------------------------------CREATE SCHEMA IF NOT EXISTS `PortalRumah` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ; USE `PortalRumah` ; -- ------------------------------------------------------ Table `PortalRumah`.`admin` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `PortalRumah`.`admin` ( `idadmin` CHAR(4) NOT NULL COMMENT '', `nama_adm` VARCHAR(10) NULL COMMENT '', `ktp_adm` VARCHAR(20) NULL COMMENT '', `username` VARCHAR(20) NULL COMMENT '', `password` VARCHAR(10) NULL COMMENT '', PRIMARY KEY (`idadmin`)) ENGINE = MyISAM; -- ------------------------------------------------------ Table `PortalRumah`.`Pemilik` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `PortalRumah`.`Pemilik` ( `idPemilik` CHAR(4) NOT NULL COMMENT '', `ktp_pemilik` VARCHAR(20) NULL COMMENT '', `nama_own` VARCHAR(30) NULL COMMENT '', `gender_own` TINYTEXT NULL COMMENT '', `telpn_own` VARCHAR(12) NULL COMMENT '', `alamat` VARCHAR(15) NULL COMMENT '', `nopol_own` VARCHAR(9) NULL COMMENT '', PRIMARY KEY (`idPemilik`)) ENGINE = MyISAM; -- ------------------------------------------------------ Table `PortalRumah`.`Tamu` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `PortalRumah`.`Tamu` ( `idTamu` CHAR(4) NOT NULL COMMENT '', `ktp_tamu` VARCHAR(20) NULL COMMENT '', `nama_tamu` VARCHAR(30) NULL COMMENT '', `tamu_lahir` VARCHAR(15) NULL COMMENT '', `telpon` VARCHAR(12) NULL COMMENT '', `gender` TINYTEXT NULL COMMENT '',
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 43
`job` VARCHAR(10) NULL COMMENT '', `origin` VARCHAR(20) NULL COMMENT '', `add_visit` VARCHAR(15) NULL COMMENT '', `plat_tamu` VARCHAR(9) NULL COMMENT '', PRIMARY KEY (`idTamu`)) ENGINE = MyISAM; -- ------------------------------------------------------ Table `PortalRumah`.`Aktivitas` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `PortalRumah`.`Aktivitas` ( `idAktivitas` INT NOT NULL COMMENT '', `str_date` DATE NULL COMMENT '', `en_date` DATE NULL COMMENT '', `str_time` TIME NULL COMMENT '', `en_time` TIME NULL COMMENT '', `admin_idadmin` CHAR(4) NULL COMMENT '', `Pemilik_idPemilik` CHAR(4) NULL COMMENT '', `Tamu_idTamu` CHAR(4) NULL COMMENT '', PRIMARY KEY (`idAktivitas`), INDEX `fk_Aktivitas_admin1_idx` (`admin_idadmin` ASC), INDEX `fk_Aktivitas_Pemilik1_idx` (`Pemilik_idPemilik` ASC), INDEX `fk_Aktivitas_Tamu1_idx` (`Tamu_idTamu` ASC), CONSTRAINT `fk_Aktivitas_admin1` FOREIGN KEY (`admin_idadmin`) REFERENCES `PortalRumah`.`admin` (`idadmin`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_Aktivitas_Pemilik1` FOREIGN KEY (`Pemilik_idPemilik`) REFERENCES `PortalRumah`.`Pemilik` (`idPemilik`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_Aktivitas_Tamu1` FOREIGN KEY (`Tamu_idTamu`) REFERENCES `PortalRumah`.`Tamu` (`idTamu`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = MyISAM; -- ------------------------------------------------------ Table `PortalRumah`.`Member` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `PortalRumah`.`Member` ( `idMember` CHAR(4) NOT NULL COMMENT '', `ktp_member` VARCHAR(20) NULL COMMENT '', `nama_memb` VARCHAR(30) NULL COMMENT '', `Pemilik_idPemilik` CHAR(4) NOT NULL COMMENT '', PRIMARY KEY (`idMember`), INDEX `fk_Member_Pemilik1_idx` (`Pemilik_idPemilik` ASC), CONSTRAINT `fk_Member_Pemilik1` FOREIGN KEY (`Pemilik_idPemilik`) REFERENCES `PortalRumah`.`Pemilik` (`idPemilik`) ON DELETE NO ACTION
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L a m p i r a n | 44
ON UPDATE NO ACTION) ENGINE = MyISAM; SET SQL_MODE=@OLD_SQL_MODE; SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; -- ------------------------------------------------------ Data for table `PortalRumah`.`admin` -- ----------------------------------------------------START TRANSACTION; USE `PortalRumah`; INSERT INTO `PortalRumah`.`admin` (`idadmin`, `nama_adm`, `ktp_adm`, `username`, `password`) VALUES ('P001', 'sutarman', '920212710506890001', 'satpam', 'satpam'); INSERT INTO `PortalRumah`.`admin` (`idadmin`, `nama_adm`, `ktp_adm`, `username`, `password`) VALUES ('P002', 'wagio', '920212813006570001', 'ketuart', 'ketuart'); COMMIT;