TUGAS AKHIR
PEREKAMAN DATA AKSES KAMAR HOTEL
DENGAN RFID BERBASIS WEB
Diajukan untuk memenuhi salah satu syarat
memperoleh gelar Sarjana Teknik pada
Program Studi Teknik Elektro
disusun oleh :
PAULUS ALEXANDER ELDWIN PRADANA
NIM : 115114006
PROGRAM STUDI TEKNIK ELEKTRO
JURUSAN TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2015
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
FINAL PROJECT
DATA RECORDING OF HOTEL ROOM ACCESS
USING RFID BASED ON WEB
In partial fulfilment of the requirements
for the degree of Sarjana Teknik
Electrical Engineering Study Program
PAULUS ALEXANDER ELDWIN PRADANA
NIM : 115114006
ELECTRICAL ENGINEERING STUDY PROGRAM
ELECTRICAL ENGINEERING DEPARTMENT
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2015
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vi
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP
MOTTO
BE DIFFERENT, COZ IT’S UNIQUE!!
Karya ini kupersembahkan untuk.......
Tuhan Yesus Kristus, Pembimbing dan Penyemangatku,
Keluarga tercinta,
Teman-teman seperjuangan TE 2011,
Dan semua pihak yang telah terlibat dalam proses penelitian ini
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
viii
INTISARI
Seiring berjalannya zaman, kemudahan dan kepraktisan karena kecanggihan
teknologi sistem otomasi semakin dirasakan. Salah satu contoh pengendalian secara
otomatis adalah menggunakan Radio Frequency Identification atau yang lebih dikenal
dengan RFID. Hotel sebagai salah satu tempat yang penuh dengan kamar hotel perlu
dimonitor sehingga setiap orang yang memasuki kamar dapat diketahui. Dengan
penggabungan keduanya, dibentuk suatu sistem untuk merekam data orang-orang yang
mengakses kamar hotel ke web.
Prinsip kerja dari sistem ini adalah sebagai berikut. Terdapat model kamar hotel
sebanyak 3 buah yang telah terpasang RFID reader di setiap kamarnya dan 5 buah RFID
card yakni Penyewa 1, 2, dan 3, Resepsionis, dan Office Boy (OB). Setiap penyewa hanya
dapat memasuki kamar yang sesuai selama waktu check in hingga check out-nya.
Resepsionis dapat memasuki setiap kamar sepanjang hari bila ada orang yang ingin
menyewa. OB dapat memasuki setiap kamar pada jam tertentu saja. Namun, ketika ada
orang yang telah mengakses kamar maka tidak ada orang yang dapat mengakses kamar
tersebut. Setiap pengaksesan kamar, maka data yang didapat pada RFID card akan dikirim
ke web.
Hasil akhir dari penelitian ini adalah dapat dihasilkannya perekaman data akses
kamar hotel dengan RFID berbasis web dengan adanya fasilitas halaman pendaftaran
(untuk mengatur waktu check in dan check out), dan halaman check out (untuk
memperbaharui data di mikrokontroler). Persentase keberhasilan yang didapat pada
penelitian ini sebesar 97,14%.
Kata kunci : perekaman data akses kamar hotel, RFID, perekaman dengan web, kamar
hotel dengan RFID
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ix
ABSTRACT
As time passed, easiness of sophistication technology of automated system,
recently can be perceived. An example of automatic control is Radio Frequency
Identification or commonly called RFID. Hotel, as a place with full of hotel rooms, needs
to be monitored, so everyone that accesses the hotel room would be easily identified. By
the combination of both, formed a system to record datas of everyone that accesses hotel
room to web.
This system’s principle will be explained in here. There is a model of 3 hotel
rooms that are installed RFID reader for each room and there are 5 RFID cards that will be
used for Guest 1, 2, and 3, Receptionist, and Office Boy (OB). Each of guest can only
access their suited room all day during their check in and check out time. Receptionist can
access every room all day when there is guest(s) to rent hotel room. OB can access every
room in certain time. But, if there is someone who has accessed the room, then nobody will
be able to access the same room. Each time the room is accessed, the RFID card’s identity
will be sent to web.
The last result of this research is the system is able to record data of hotel room
access to web by the additional facility of registration page (to set check in and check out
time), dan check out page (to regenerate data in microcontroller). Percentage of
achievement in this research is out of 97,14%.
Keywords : data recording of hotel room access, recording to web, hotel room with RFID
installed
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
x
KATA PENGANTAR
Puji dan syukur kepada Tuhan Yang Maha Esa yang telah memberikan kenikmatan
berupa kesehatan jasmani dan rohani sehingga penulis dapat menyelesaikan tugas akhir
dengan lancar dari awal hingga diakhiri dengan munculnya laporan akhir dengan judul
“PEREKAMAN DATA AKSES KAMAR HOTEL BERBASIS WEB”.
Dalam pembuatan laporan akhir dari awal hingga akhir tentunya ada bantuan dari
beberapa pihak sehingga laporan akhir yang disusun oleh penulis sesuai dengan ketentuan
yang ada. Dengan adanya bantuan dari beberapa pihak, penulis dapat menyelesaikan
laporan akhir tersebut dan hendak mengucapkan terima kasih kepada beberapa pihak
diantaranya adalah sebagai berikut :
1. Tuhan Yang Maha Esa yang telah memberikan kenikmatan berupa kesehatan
jasmani dan rohani.
2. Kedua orang tua dan saudara penulis yang telah mendukung dan memberikan doa
restu.
3. Bapak Petrus Setyo Prabowo, S.T., M.T., sebagai Ka. Prodi Teknik Elektro
Universitas Sanata Dharma Yogyakarta
4. Bapak Ir. Tjendro, M.Kom., sebagai Dosen Pembimbing Tugas Akhir yang dengan
penuh pengertian dan kesabaran telah meluangkan waktu untuk memberikan
bimbingan, masukan, dan motivasi dalam penulisan laporan akhir ini.
5. Ibu Ir. Theresia Prima Ari Setiyani, M.T., dan Ibu B. Wuri Harini, S.T., M.T.,
sebagai dosen penguji yang telah memberikan bimbingan dan masukan dalam
merevisi laporan akhir ini.
6. Teman-teman Teknik Elektro angkatan 2011 yang telah banyak membantu baik
lahir maupun batin.
7. Semua pihak yang telah memberikan bantuan dalam penyusunan laporan akhir ini.
Dalam penyusunan laporan akhir ini tentunya terdapat kekurangan dan kelemahan
serta jauh dari kata sempuna. Karena kesempurnaan hanya milik Tuhan semata. Oleh
Karena itu penulis menerima masukan berupa kritik dan saran dengan harapan menjadikan
penulis lebih baik lagi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xii
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 ILMIAH UNTUK KEPENTINGAN AKADEMIS ......................................... vii
INTISARI .......................................................................................................................... viii
ABSTRACT .......................................................................................................................... ix
KATA PENGANTAR ......................................................................................................... x
DAFTAR ISI ...................................................................................................................... xii
DAFTAR GAMBAR ......................................................................................................... xv
DAFTAR TABEL ........................................................................................................... xviii
BAB I : PENDAHULUAN
1.1 Latar Belakang ............................................................................................................. 1
1.2 Tujuan dan Manfaat ..................................................................................................... 2
1.3 Batasan Masalah........................................................................................................... 2
1.4 Metodologi Penelitian .................................................................................................. 3
BAB II : DASAR TEORI
2.1 Radio Frequency Identification (RFID) ....................................................................... 4
2.1.1 RFID Tag ............................................................................................................ 4
2.1.2 RFID Reader ....................................................................................................... 5
2.2 RFID SL018 ................................................................................................................. 5
2.3 Mifare 4K 4-byte UID .................................................................................................. 8
2.4 Arduino UNO ............................................................................................................... 9
2.4.1 Komunikasi I2C ................................................................................................ 10
2.4.2 Resistor Pull-Up ............................................................................................... 11
2.4.3 Komunikasi SPI (Serial Peripheral Interface) ................................................. 12
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiii
2.5 RTC (Real Time Clock) .............................................................................................. 13
2.6 Software XAMPP ....................................................................................................... 15
2.6.1 Apache Web Server........................................................................................... 16
2.6.2 MySQL Database.............................................................................................. 16
2.6.3 Pemrograman PHP............................................................................................ 17
2.7 Modul Ethernet Shield ............................................................................................... 17
2.7.1 MAC Address ................................................................................................... 18
BAB III : RANCANGAN PENELITIAN
3.1 Model Sistem ............................................................................................................. 20
3.2 Identifikasi Kebutuhan Perangkat .............................................................................. 21
3.3 Perancangan Perangkat Keras .................................................................................... 21
3.3.1 Perancangan Resistor Pull-Up .......................................................................... 21
3.3.2 Perancangan RFID SL018 ................................................................................ 22
3.3.3 Perancangan Modul Ethernet ........................................................................... 22
3.3.4 Perancangan RTC DS1307 ............................................................................... 23
3.4 Perancangan Perangkat Lunak ................................................................................... 24
3.4.1 Perancangan Halaman Login ............................................................................ 24
3.4.2 Perancangan Pendaftaran Penyewa Kamar Hotel ............................................. 25
3.4.3 Diagram Alir Program Utama .......................................................................... 27
3.4.4 Pembacaan Identitas RFID Card oleh RFID SL018 ........................................ 28
3.4.5 Perancangan Perangkat Lunak Modul RTC DS1307 ....................................... 29
3.4.6 Persyaratan Akses Kamar ................................................................................. 29
3.4.7 Pengiriman Data ke Web Melalui Ethernet ...................................................... 32
3.4.8 Perancangan Tampilan Web ............................................................................. 33
BAB IV : HASIL DAN PEMBAHASAN
4.1 Hasil Implementasi Alat ............................................................................................. 34
4.2 Hasil Perancangan Perangkat Keras........................................................................... 35
4.3 Hasil Perancangan dan Pembahasan Perangkat Lunak .............................................. 37
4.3.1 Pengaturan IP Address pada Laptop Server...................................................... 37
4.3.2 Pengaturan IP Address pada Modul Ethernet Shield ........................................ 37
4.3.3 Hasil dan Pembahasan Perancangan Halaman Login ....................................... 38
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiv
4.3.4 Hasil dan Pembahasan Perancangan Halaman Pendaftaran Penyewa
Kamar Hotel...................................................................................................... 39
4.3.5 Hasil dan Pembahasan Pembacaan Identitas RFID Card oleh RFID SL018 ... 42
4.3.6 Hasil dan Pembahasan Perancangan Perangkat Lunak Modul RTC DS1307 .. 44
4.3.7 Hasil dan Pembahasan Perancangan Program Utama ...................................... 47
BAB V : KESIMPULAN DAN SARAN
5.1 Kesimpulan ................................................................................................................ 56
5.2 Saran ........................................................................................................................... 56
DAFTAR PUSTAKA ........................................................................................................ 57
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xv
DAFTAR GAMBAR
Gambar 2.1 Penampakan RFID SL018 ............................................................................. 6
Gambar 2.2 Diagram Operasi Penulisan RFID SL018 ...................................................... 7
Gambar 2.3 Diagram Operasi Pembacaan RFID SL018 ................................................... 7
Gambar 2.4 RFID Card Mifare 4K 4-byte UID ................................................................ 8
Gambar 2.5 Board Arduino UNO...................................................................................... 9
Gambar 2.6 Komunikasi I2C ........................................................................................... 10
Gambar 2.7 RTC DS1307 ................................................................................................ 13
Gambar 2.8 Konfigurasi bit pada register DS1307.......................................................... 14
Gambar 2.9 Diagram write mode DS1307....................................................................... 15
Gambar 2.10 Diagram read mode DS1307 ....................................................................... 15
Gambar 2.11 XAMPP Control Panel ................................................................................ 16
Gambar 2.12 Modul Ethernet Shield ................................................................................. 18
Gambar 2.13 Contoh MAC Address .................................................................................. 18
Gambar 3.1 Diagram blok sistem perekaman data akses kamar hotel ............................ 20
Gambar 3.2 Bentuk fisik tampak depan ........................................................................... 21
Gambar 3.3 Rancangan resistor pull-up .......................................................................... 22
Gambar 3.4 Perancangan 3 buah RFID dengan mikrokontroler ..................................... 23
Gambar 3.5 Perancangan Modul Ethernet dan Mikrokontroler ...................................... 23
Gambar 3.6 Perancangan RTC DS1307 .......................................................................... 24
Gambar 3.7 Gambar halaman login seblum mengakses halaman rekaman data akses ... 24
Gambar 3.8 Diagram alir halaman login ......................................................................... 25
Gambar 3.9 Tampilan tabel hasil pendaftaran kamar hotel pada web yang diharapkan . 25
Gambar 3.10 Diagram alir halaman pendaftaran ............................................................... 26
Gambar 3.11 Diagram alir program utama ........................................................................ 27
Gambar 3.12 Diagram alir pembacaan identitas RFID Card oleh RFID SL018 ............... 28
Gambar 3.13 (a) Diagram alir pengaturan waktu RTC ..................................................... 30
(b) Diagram alir pembacaan waktu modul RTC DS1307 ............................ 30
Gambar 3.14 Diagram alir syarat akses kamar .................................................................. 31
Gambar 3.15 Diagram alir pengiriman ke web .................................................................. 33
Gambar 3.16 Tampilan tabel hasil pada web yang diharapkan ......................................... 33
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvi
Gambar 4.1 Hasil implementasi alat Perekaman Data Akses Kamar Hotel dengan
RFID Berbasis Web...................................................................................... 34
Gambar 4.2 Tampilan halaman login .............................................................................. 34
Gambar 4.3 Tampilan halaman pendaftaran .................................................................... 35
Gambar 4.4 Tampilan halaman web perekaman data akses kamar hotel ........................ 35
Gambar 4.5 Penampakan RFID pada (a) kamar 1 (b) kamar 2 (c) kamar 3 .................... 35
Gambar 4.6 Penampakan hasil perancangan resistor pull-up .......................................... 36
Gambar 4.7 Penampakan Modul Ethernet Shield dan Arduino di bawahnya ................. 36
Gambar 4.8 Penampakan RTC ........................................................................................ 36
Gambar 4.9 IP Address laptop server diatur seperti gambar ........................................... 37
Gambar 4.10 Pengaturan IP Address beserta MAC Address untuk Modul
Ethernet Shield ............................................................................................. 38
Gambar 4.11 Koneksi antara server dan Modul Ethernet Shield telah berhasil ................ 38
Gambar 4.12 Pesan yang tertampil saat username atau password tidak benar ................. 39
Gambar 4.13 Pesan yang tertampil saat username atau password bukan resepsionis ....... 39
Gambar 4.14 Program penerimaan data dari server .......................................................... 40
Gambar 4.15 Subrutin penyimpanan data ke ke EEPROM ............................................... 41
Gambar 4.16 (a) EEPROM saat belum terisi ..................................................................... 41
(b) EEPROM setelah terisi data ................................................................... 41
Gambar 4.17 Pesan yang ditampilkan mikrokontroler melalui Modul Ethernet Shield
bahwa data telah diterima ............................................................................ 41
Gambar 4.18 Pengujian dilakukan dengan mendekatkan RFID Card ke RFID SL018 .... 42
Gambar 4.19 Program pada mikrokontroler untuk berkomunikasi dengan RFID SL018 . 42
Gambar 4.20 Subrutin Pembacaan Data RFID Card ......................................................... 43
Gambar 4.21 Inisialisasi identitas RFID Card................................................................... 43
Gambar 4.22 Subrutin penggantian nama identitas RFID Card ........................................ 44
Gambar 4.23 Hasil pembacaan identitas RFID Card ........................................................ 44
Gambar 4.24 Subrutin penulisan dan pengaturan waktu pada RTC .................................. 45
Gambar 4.25 Subrutin pembacaan waktu RTC ................................................................. 45
Gambar 4.26 Isi fungsi tambah_nol ................................................................................... 46
Gambar 4.27 Hasil pembacaan RTC DS1307 ................................................................... 46
Gambar 4.28 Subrutin syarat akses kamar ......................................................................... 48
Gambar 4.29 Halaman Check Out ..................................................................................... 50
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvii
Gambar 4.30 Subrutin pengiriman data ke web ................................................................. 51
Gambar 4.31 Isi file ambil.php .......................................................................................... 51
Gambar 4.32 Indikator LED Penyewa 3 tidak dapat memasuki Kamar 3 ......................... 52
Gambar 4.33 Tampilan web Penyewa 3 tidak dapat memasuki Kamar 3 ......................... 52
Gambar 4.34 Indikator LED Resepsionis memasuki Kamar 3 .......................................... 52
Gambar 4.35 Tampilan web Resepsionis memasuki Kamar 3 .......................................... 53
Gambar 4.36 Tampilan web OB tidak dapat memasuki Kamar 3 ..................................... 53
Gambar 4.37 Indikator LED OB tidak dapat memasuki Kamar 3..................................... 53
Gambar 4.38 Halaman web phpMyAdmin untuk melihat data-data yang telah
dikirimkan dari mikrokontroler ke server .................................................... 54
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xviii
DAFTAR TABEL
Tabel 2.1 Konfigurasi Pin RFID SL018 ............................................................................. 6
Tabel 2.2 Command Code .................................................................................................. 8
Tabel 2.3 Daftar status sebagai feedback RFID SL018 kepada host .................................. 8
Tabel 2.4 Fungsi khusus pada pin Arduino ...................................................................... 10
Tabel 2.5 Sebagian electrical characteristic dari ATMega328 ........................................ 12
Tabel 3.1 Format data yang dihasilkan pada halaman web pendaftaran untuk
kemudian diproses pada mikrokontroler .......................................................... 26
Tabel 3.2 Persyaratan akses kamar ................................................................................... 29
Tabel 3.3 Koneksi LED pada pin Arduino ....................................................................... 32
Tabel 4.1 Identitas pada RFID Card dan penamaannya ................................................... 43
Tabel 4.2 Daftar Penyewa Kamar Hotel ........................................................................... 47
Tabel 4.3 Hasil perancangan persyaratan akses kamar..................................................... 49
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
BAB I
PENDAHULUAN
1.1. Latar Belakang
Seiring berjalannya zaman, kemudahan dan kepraktisan karena kecanggihan
teknologi semakin dirasakan. Kecanggihan teknologi yang ada membuat hampir segala
sesuatunya dikendalikan secara otomatis. Lampu otomatis, pembuat kopi otomatis, bahkan
pintu yang dapat dibuka secara otomatis. Sistem otomasi membuat kemudahan bagi
manusia untuk mengendalikan sesuatu yang biasanya dilakukan dengan tangan menjadi
sesuatu yang tidak perlu dilakukan dengan tangan. Dalam bidang elektronika, sistem
otomasi biasanya memanfaatkan penggunaan sensor, elektromagnetik, dan sebagainya.
Salah satu contoh penggunaan elektromagnetik adalah Radio Frequency
Identification atau yang lebih dikenal dengan RFID. RFID menggunakan medan magnet
atau elektromagnet sebagai media pertukaran data antara RFID Tag (piranti yang
membawa data) dengan RFID Reader (pembaca data) [1]. RFID biasanya diaplikasikan
untuk presensi pada beberapa kantor.
Hotel merupakan salah satu tempat yang penuh dengan “ruang pribadi”
(selanjutnya disebut kamar hotel). Tiap kamar hotel dapat dimasuki oleh penyewa kamar,
resepsionis, dan Office Boy (selanjutnya disebut OB). Namun, ketiganya hanya dapat
memasuki kamar hotel pada jam tertentu saja. Setiap kali ada yang mengakses kamar
tersebut, data akan direkam ke web. Hal ini bertujuan untuk mengetahui orang yang
memasuki kamar tersebut.
Pada penelitian terdahulu telah ada yang membuat penelitian menggunakan modul
RFID [2]. Modul RFID yang digunakan adalah modul RFID ID-20. RFID ID-20
menggunakan komunikasi USART sebagai jalur pengiriman data dari maupun ke
mikrokontroler. Mengingat mikrokontroler yang akan digunakan pada penelitian ini hanya
memiliki 1 jalur USART dan dibutuhkan 3 buah modul RFID, maka penggunaan modul
RFID ID-20 tidak efisien karena dikhawatirkan akan terjadi tabrakan data pada proses
komunikasi antara mikrokontroler dengan modul RFID. Karena itu, akan digunakan modul
RFID yang menggunakan komunikasi I2C agar proses komunikasi antara mikrokontroler
dengan modul RFID lebih efisien.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
Selain itu, terdapat artikel dalam suatu situs web [3] dan penelitian terdahulu [4]
mengenai pengiriman data dari mikrokontroler ke web melalui internet menggunakan
modul ethernet. Pada kedua referensi ini, penampilan data pada web masih menggunakan
bahasa pemrograman HTML. Hal ini tentunya dapat membuat halaman web tidak dinamis.
Dengan demikian, akan ditambahkan penggunaan bahasa pemrograman PHP sehingga
halaman web lebih dinamis.
Berdasarkan referensi-referensi tersebut diputuskan untuk menggabungkan
penggunaan RFID untuk mendeteksi identitas pengguna kamar hotel dan penggunaan
modul ethernet untuk merekam identitas pengguna tersebut melalui web.
1.2. Tujuan dan Manfaat
Tujuan dari penelitian ini adalah menghasilkan perekaman data akses kamar hotel
dengan RFID berbasis web.
Penelitian ini memberikan beberapa manfaat, yaitu:
a. Mengembangkan penggunaan RFID untuk memonitor pengguna kamar hotel
b. Dapat dikembangkan dan diterapkan lebih lanjut pada bisnis hotel
1.3. Batasan Masalah
Batasan masalah penelitian ini adalah:
a. Kamar hotel yang akan dikelola sebanyak 3 buah berupa model dengan
indikator LED. Indikator LED digunakan hanya untuk memberi informasi
bahwa pengguna telah memasuki kamar.
b. RFID Card yang digunakan sebanyak 5 buah. Tiga buah RFID Card
menandakan penyewa kamar hotel, 1 buah RFID Card untuk resepsionis, dan 1
buah RFID Card untuk OB. RFID Card yang digunakan berjenis Mifare 4K
yang memiliki UID 4 byte.
c. RFID Reader dan RFID Card yang digunakan merupakan jenis Mifare.
d. Kondisi kamar akan dimonitor melalui web menggunakan mikrokontroler.
e. Pengaturan jam digunakan RTC DS1307.
f. Indikator LED, komunikasi dengan RTC dan RFID Reader dikendalikan
menggunakan mikrokontroler.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
1.4. Metodologi Penelitian
Dalam membuat tugas akhir ini, digunakan metode penelitian sebagai berikut:
a. Studi pustaka
Melalui studi pustaka, akan dikumpulkan dan mempelajari referensi yang
dibutuhkan mengenai RFID dan komponen pembantu sehingga dapat
membantu dalam mengerjakan tugas akhir ini.
b. Perancangan sistem
Perancangan sistem meliputi konsep alat, masukan, dan keluaran yang
diperoleh.
c. Perancangan perangkat keras dan perangkat lunak
Pada penelitian ini akan dirancang perangkat keras yang akan digunakan untuk
mendukung penelitian ini. Selain itu, akan dirancang perangkat lunak yang
akan digunakan, meliputi: perintah untuk membaca data dari RFID Reader,
mengirimkan data yang diterima ke komputer, dan perintah untuk membuka
pintu.
d. Pembuatan perangkat keras dan perangkat lunak
Tahap berikutnya yaitu menggabungkan perangkat keras dan perangkat lunak
agar sistem keseluruhan dapat dilihat prosesnya.
e. Uji coba dan pengambilan data
Tahap ini, akan dilakukan pengujian dan pengambilan data dari sistem
keseluruhan. Pengujian meliputi kesesuaian masukan dengan keluaran yang
diharapkan. Data – data yang diperoleh akan menunjukkan tingkat keberhasilan
perancangan.
f. Analisis data
Data yang diperoleh akan dianalisis untuk melihat besarnya kesalahan yang
timbul pada sistem keseluruhan. Hasil analisis ini akan membantu dalam
mengambil kesimpulan terhadap penelitian yang dilakukan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
BAB II
DASAR TEORI
2.1. Radio Frequency Identification (RFID)
RFID adalah proses identifikasi sesuatu dengan menggunakan sinyal frekuensi
radio [5]. RFID digunakan untuk mempermudah pekerjaan manusia yang awalnya harus
mengidentifikasi objek satu per satu secara manual menjadi otomatis dan terprogram. Hal
ini juga dapat mengurangi human error akibat pencatatan identitas objek secara manual.
Dengan teknologi RFID ini, identitas objek akan dicatat dengan mudah dan cepat.
Dalam sistem RFID, terdapat 3 buah komponen utama : transponder atau tag,
reader atau pembaca tag (yang sudah dilengkapi antena), dan host [6]. Sesuatu yang akan
diidentifikasi tersebut harus memiliki identitas berupa tag yang nantinya akan dibaca oleh
reader.
Saat ini, sudah banyak beredar macam-macam tag dan modul pembaca RFID. Tag
yang sering dijumpai bisa dalam bentuk kartu, maupun dalam bentuk gantungan kunci.
Jenis tag pun beragam, misalnya EM4001, Mifare, dan lain-lain. Karena ada beragam
jenis, tentunya modul pembaca RFID juga harus menyesuaikan dengan jenis tag-nya.
RFID (tag beserta reader-nya) memiliki frekuensi kerja yang berbeda-beda untuk
tiap jenisnya. RFID menggunakan frekuensi kerja pada low frequency (sekitar 125 kHz),
high frequency (13,56 MHz), dan ultra-high frequency (850-930 MHz). RFID yang bekerja
pada low frequency biasanya digunakan untuk metode pembayaran bukan untuk
identifikasi objek. RFID yang bekerja pada high frequency lebih banyak digunakan dan
biasanya digunakan untuk mengidentifikasi objek seperti teknologi NFC (Near Field
Communication) yang banyak terpasang pada smartphone untuk bertukar informasi. RFID
yang bekerja pada ultra-high frequency biasanya digunakan untuk identifikasi kendaraan
[6].
2.1.1. RFID Tag
Tag RFID adalah piranti yang terdiri atas rangkaian elektronika (berupa chip) dan
antena yang terintegrasi di dalam rangkaian tersebut [6]. Rangkaian elektronik dari tag
RFID umumnya memiliki memori sehingga tag ini mempunyai kemampuan untuk
menyimpan data. Data inilah yang nantinya akan dibaca oleh RFID reader.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
Memori pada RFID tag sangat beragam tergantung jenisnya. Kapasitas memori
yang tersedia berkisar antara 16 byte hingga 8kilobyte [1]. Memori (chip) pada RFID tag
dapat dibedakan menjadi 2 yaitu read/write dan read only. Read/write diartikan bahwa
RFID tersebut memiliki data yang dapat dibaca dan ditulis berulang-ulang dengan
menimpa informasi bawaan pabrik sedangkan read only diartikan bahwa RFID tag tersebut
memiliki data yang telah diprogram pada saat tag ini dibuat di pabrik dan setelah itu
datanya tidak bisa diubah-ubah [7].
Macam-macam sistem RFID tergantung pada tipe tag yang digunakan. Tipe tag
yang dimaksud adalah tag aktif, tag pasif, dan tag semi-pasif [6].
1. Tag aktif memiliki sumber daya sendiri untuk berkomunikasi dengan RFID
reader. Sumber daya digunakan untuk menjalankan serangkaian microchip dan
membantu mengirimkan sinyal ke RFID reader.
2. Tag pasif tidak membutuhkan sumber daya sendiri. Tag pasif mendapat sumber
daya dari medan elektromagnetik yang terbuat dari sinyal RFID reader
kemudian memberikan respon ke RFID reader berupa informasi yang ada pada
tag pasif.
3. Tag semi-pasif menggunakan sumber daya sendiri untuk menjalankan
rangkaian internalnya namun berkomunikasi dengan sumber daya berupa
gelombang radio yang dihasilkan RFID reader.
2.1.2. RFID Reader
Pembaca RFID atau RFID Reader adalah alat yang digunakan untuk
mengidentifikasi suatu objek yang telah dipasang tag. Untuk membaca tag tersebut, sebuah
RFID reader harus diaktifkan dan dikendalikan oleh perintah dari host. Setelah RFID
reader mendapat perintah dari host, RFID reader akan mulai membaca informasi yang ada
pada tag menggunakan frekuensi radio. Setelah RFID reader telah mendapatkan informasi
dari tag, maka informasi tersebut akan dikirim kepada host untuk kemudian diproses lebih
lanjut untuk keperluan tertentu.
2.2. RFID SL018
Salah satu jenis RFID adalah jenis Mifare. RFID (reader dan tag) ini bekerja pada
frekuensi tinggi (high frequency) yakni 13,56 MHz. Dalam penelitian ini, digunakan modul
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
RFID reader dari stronglink dengan seri SL018. Gambar 2.1 merupakan penampakan
RFID SL018.
Gambar 2.1. Penampakan RFID SL018 [8]
Merujuk pada datasheet RFID SL018, RFID ini dapat membaca tag berjenis
Mifare 1k, Mifare 4k, Mifare UltraLight dan NFC NATG203. 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
berjarak hingga 60 mm. Dilengkapi pula pin TagSta sebagai indikator ada tidaknya tag
disekitarnya.
Pada RFID SL018 terdapat 5 buah pin yang dapat diakses. Konfigurasi pin-pin
tersebut dapat dilihat pada Tabel 2.1.
Tabel 2.1. Konfigurasi Pin RFID SL018 [8]
PIN SYMBOL TYPE DESCRIPTION
1 TagSta Output
Tag detect signal
low level indicating tag in
high level indicating tag out
2 SDA Input/Output Serial Data Line
3 SCL Input Serial Clock Line
4 VCC PWR Power Supply
5 GND PWR Ground
RFID SL018 memiliki 7 bit sebagai alamat dan 1 bit pemilihan operasi. 7 bit yang
dimaksud adalah 1010000, sedangkan 1 bit pemilihan operasi (sebagai bit ke-8) adalah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
pemilihan operasi RFID untuk menulis atau membaca. Jika RFID SL018 dijadikan sebagai
pembaca (reader), maka bit pemilihan operasi harus diberikan kondisi high. Jika dijadikan
sebagai penulis (writer), maka bit pemilihan operasi harus diberikan kondisi low.
Jika host akan menuliskan data ataupun perintah ke RFID SL018, maka piranti
host harus mengirimkan perintah yang berisi alamat slave (write), len, command code, dan
data (jika diperlukan). Jika host ingin membaca data ataupun respon (sebagai akibat dari
perintah yang ditulis host) dari RFID SL018, maka piranti host harus mengirimkan
perintah yang berisi alamat slave (read) kemudian menerima semua informasi mulai dari
len hingga data. Gambar 2.2 dan 2.3 merupakan diagram operasi write dan read pada
RFID SL018.
Gambar 2.2. Diagram Operasi Penulisan RFID SL018 [8]
Gambar 2.3. Diagram Operasi Pembacaan RFID SL018 [8]
Len mengindikasikan jumlah byte dari command code hingga akhir data.
Command code adalah kode perintah agar RFID SL018 dapat beroperasi sebagaimana
seharusnya. Daftar command code dapat dilihat pada Tabel 2.2. Status merupakan suatu
balasan dari RFID kepada host sebagai jawaban atas perintah yang diberikan. Tabel 2.3
merupakan daftar status yang akan diberikan oleh RFID SL018 kepada host. Data
merupakan informasi tambahan yang diberikan host ke RFID SL018 (dalam write mode)
ataupun informasi tambahan yang diberikan RFID SL018 ke host (dalam read mode).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
Tabel 2.2. Command Code [8]
Command Description
0x01 Select Mifare card
0x02 Login to a sector
0x03 Read a data block
0x04 Write a data block
0x05 Read a value block
0x06 Initialize a value block
0x07 Write master key (key A)
0x08 Increment value
0x09 Decrement value
0x0A Copy value
0x10 Read a data page (Ultralight & NTAG203)
0x11 Write a data page (Ultralight & NTAG203)
0x40 Control the red led
0xF0 Get firmware version
0xFF Reset
Tabel 2.3. Daftar status sebagai feedback RFID SL018 kepada host [8]
Status Description
0x00 Operation succeed
0x01 No tag
0x02 Login succeed
0x03 Login fail
0x04 Read fail
0x05 Write fail
0x06 Unable to read after write
0x0A Collision occur
0x0C Load key fail
0x0D Not authenticate
0x0E Not a value block
2.3. Mifare 4K 4-byte UID
Dalam penelitian ini, digunakan RFID Card berjenis Mifare 4K yang memiliki
UID (Unique ID) 4 byte menyesuaikan jenis tag yang dapat dibaca modul RFID SL018.
RFID Card berjenis tag pasif yang bekerja pada frekuensi 13,56 MHz ini memiliki
EEPROM sebesar 4 KiloByte [9]. Berikut ini adalah penampakannya.
Gambar 2.4. RFID Card Mifare 4K 4-byte UID
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
2.4. Arduino UNO
Arduino merupakan board mikrokontroler yang berbasis platform komputasi fisik
bersifat open-source dan dibantu oleh software pemrograman yang mendukung. Arduino
dapat digunakan untuk membuat objek interaktif seperti mengambil input dari bermacam-
macam saklar ataupun sensor, dan mengendalikan cahaya (lampu), motor, dan keluaran
fisik lainnya [10]. Salah satu produk board Arduino adalah Arduino UNO.
Arduino UNO merupakan salah satu produk Arduino yang berbasis
mikrokontroler Atmega328. Arduino UNO memiliki 14 buah input/output digital (6 di
antaranya bisa digunakan sebagai keluaran Pulse Width Modulation atau PWM), 6 buah
input analog, sebuah osilator keramik 16 MHz, sebuah koneksi USB, sebuah power jack,
sebuah ICSP header, dan sebuah tombol reset [11]. Berikut ini adalah penampakan
Arduino UNO.
Gambar 2.5. Board Arduino UNO [11]
Arduino UNO berbasis pada mikrokontroler Atmega328, memiliki tegangan kerja
5V, dan bisa diberikan sumber tegangan eksternal melalui power jack dengan rentang 7V
hingga 12V. Arus DC maksimum pada pin I/O sebesar 40 mA dan 50 mA untuk pin 3,3V.
Memori flash yang tersedia sebesar 32KB (karena berbasis Atmega328), memori SRAM
sebesar 2KB, dan EEPROM sebesar 1KB. Kecepatan clock maksimalnya adalah 16 MHz
[11].
Arduino UNO bisa diberikan sumber tegangan melalui koneksi USB atau
menggunakan sumber tegangan eksternal. Sumber tegangan dipilih secara otomatis.
Sumber tegangan eksternal dapat diambil dari adapter AC ke DC ataupun baterai. Jika
menggunakan adapter, diameternya harus 2,1 mm dengan sambungan positif di tengah
kemudian dihubungkan ke power jack. Jika digunakan baterai, dapat dihubungkan ke pin
Vin dan Gnd pada konektor POWER [11].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
Berikut ini disajikan tabel fungsi khusus pada beberapa pin arduino.
Tabel 2.4. Fungsi khusus pada pin Arduino [11]
Fungsi Khusus Pin Keterangan
Serial 0 (RX) dan 1 (TX) Digunakan untuk menerima (RX) dan
mengirimkan (TX) data TTL secara serial
Interupsi Eksternal 2 dan 3 Dikonfigurasikan untuk menerima interupsi
eksternal untuk kondisi low ataupun
perubahan suatu nilai
PWM (Pulse Width
Modulation)
3, 5, 6, 9, 10, dan 11 Digunakan untuk menghasilkan PWM
SPI (Serial
Peripheral Interface)
10 (SS), 11 (MOSI), 12
(MISO), 13 (SCK)
Digunakan sebagai komunikasi SPI
LED 13 Terdapat lampu LED built-in yang
terkoneksi langsung dengan pin digital 13
TWI (Two Wire
Interface) atau I2C
A4 (SDA) dan A5 (SCL) Digunakan untuk komunikasi I2C
Analog Input A0, A1, A2, A3, A4, A5 Digunakan sebagai pengubah data analog
menjadi data digital
2.4.1. Komunikasi I2C
I2C (Inter Integrated Circuit) adalah standar komunikasi serial 2 arah
menggunakan 2 saluran yang didisain khusus untuk mengirimkan dan/atau menerima data.
Saluran tersebut kemudian disebut sebagai jalur bus [12]. Komunikasi I2C terdiri atas 2 bi-
directional jalur bus, jalur yang satu berfungsi sebagai jalur clock (SCL), dan jalur yang
lain berfungsi sebagai jalur data (SDA). Komunikasi I2C dapat digunakan hingga 128
piranti berbeda untuk dioperasikan pada jalur bus tersebut. Kebutuhan hardware eksternal
yang dibutuhkan adalah resistor pull-up pada setiap jalur (SCL maupun SDA) [13].
Gambar 2.6. Komunikasi I2C [13]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
Pada komunikasi I2C, terdapat piranti yang disebut Master dan Slave. Master
adalah piranti yang memulai komunikasi I2C dan mengirimkan perintah ke Slave. Slave
adalah piranti yang menerima perintah dari Master dan menjawab perintah yang diberikan
Master. Master maupun Slave dapat beroperasi sebagai pengirim maupun penerima.
Sebagai pengirim artinya piranti mengirimkan perintah maupun data tertentu kepada
piranti penerima. Sebagai penerima artinya piranti menerima perintah maupun data tertentu
kepada piranti pengirim.
Proses Komunikasi I2C adalah sebagai berikut [13].
1. Diawali dengan pengiriman sinyal START oleh master. Sinyal START
merupakan transisi keadaan dari keadaan high menjadi low pada SDA saat
SCL dalam kondisi high.
2. Pengiriman paket alamat yang berjumlah 9 bit, 7 bit pertama merupakan alamat
slave, 1 bit berikutnya merupakan bit pengendali baca atau tulis (Read/Write
control), dan bit terakhir merupakan bit acknowledge yang dikirim oleh slave.
Namun pada Arduino, pengalamatan slave menggunakan 7 bit. Jika Arduino
ingin berkomunikasi dengan piranti yang memiliki pengalamatan 8 bit, maka
pada program Arduino alamat slave tersebut digeser 1 bit ke kanan [14].
3. Pengiriman paket data yang berjumlah 9 bit yang terdiri atas 1 byte data dan
sebuah bit acknowledge. Acknowledge (ACK) adalah sinyal low yang
dikirimkan slave untuk mengakhiri data ke-n telah dikirimkan. Not
Acknowledge (NACK) adalah sinyal high yang dikirim oleh slave untuk
memberitahukan master bahwa data terakhir sudah dikirimkan (tidak ada
pengiriman data lagi oleh slave).
4. Diakhiri dengan pengiriman sinyal STOP oleh master. Sinyal STOP
merupakan transisi keadaan dari keadaan low menjadi high pada SDA saat
SCL dalam kondisi high.
2.4.2. Resistor Pull-Up
Resistor pull-up digunakan dalam komunikasi I2C. Hal ini bertujuan untuk
memberikan keadaan yang pasti pada pin input mengenai kondisi high ataupun kondisi low
dan tentunya menggunakan arus yang rendah[15]. Kebutuhan akan resistor pull-up harus
disesuaikan dengan arus yang masuk ke pin input agar tidak merusaknya. Nilai resistor
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
pull-up tidak boleh menghasilkan arus yang melebihi arus maksimum yang boleh diterima
pin input.
Arduino menggunakan ATMega328. Berdasarkan datasheet, ATMega328
memiliki rentang resistor pull-up 20 kΩ sampai 50 kΩ. Berikut penampakannya.
Tabel 2.5. Sebagian electrical characterstic dari ATMega328 [13]
2.4.3. Komunikasi SPI (Serial Peripheral Interface)
Komunikasi Serial Peripheral Interface atau yang lebih dikenal dengan SPI,
sangat umum digunakan untuk mengirimkan data antara mikrokontroler dan beberapa
piranti tertentu seperti register geser, sensor, maupun kartu SD. SPI menggunakan jalur
data dan clock secara terpisah dan juga jalur piranti selektor untuk memilih piranti yang
akan digunakan untuk berkomunikasi [16].
Komunikasi SPI bersifat synchronous (komunikasi sinkron). Clock memberikan
sinyal yang berosilasi yang memberitahu penerima untuk mengambil bit pada jalur data.
Clock ini bisa berupa pinggiran positif (rendah ke tinggi) ataupun pinggiran negatif (tinggi
ke rendah). Saat penerima mendeteksi pinggiran tersebut, penerima secara otomatis akan
membaca bit selanjutnya pada jalur data [16].
Komunikasi SPI menggunakan setidaknya 5 buah pin sebagai berikut [17].
1. MOSI (Master Out Slave In) 4. SS (Slave Select)
2. MISO (Master In Slave Out) 5. GND (Ground)
3. SCK (Serial Clock)
Data master dikeluarkan melalui pin MOSI master dan diterima oleh pin MOSI
slave. Data slave dikeluarkan melalui pin MISO slave dan diterima oleh pin MISO master.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
Pin SCK master mengeluarkan clock sinkron yang diterima slave melalui pin SCK
miliknya. SS digunakan untuk mengaktifkan slave yang bersangkutan [17].
2.5. RTC (Real Time Clock)
RTC (Real Time Clock) merupakan IC (integrated circuit) yang memiliki peran
sebagai jam elektronik. RTC memiliki memori untuk menyimpan waktu berupa detik,
menit, jam, hari, tanggal, bulan, dan tahun pada registernya. Salah satu contoh RTC adalah
DS1307.
Merujuk pada datasheet, RTC DS1307 dapat dioperasikan melalui komunikasi
I2C melalui mikrokontroler. Saat dioperasikan atau dibaca DS1307 akan mengirimkan data
berupa sandi BCD (Binary-Coded Decimal). Sandi BCD sendiri merupakan pengkodean
bilangan desimal ke dalam kelompok angka biner.
RTC DS1307 memiliki 8 buah pin, memori 56 byte, dan juga pendeteksi
kesalahan sumber daya. Pendeteksi kesalahan sumber daya yang dimaksud adalah saat
adanya kesalahan pada sumber tegangan (VCC) ke DS1307, DS1307 akan men-switch
sumber tegangan baginya ke tegangan baterai secara otomatis. Berikut ini adalah
penampakan RTC DS1307.
Gambar 2.7. RTC DS1307 [18]
Merujuk pada datasheet RTC DS1307, konfigurasi pin-pin tersebut adalah
sebagai berikut.
VCC - Sumber Tegangan Utama
X1, X2 - 32.768kHz Crystal
VBAT - +3V Input Tegangan Baterai
GND - Ground
SDA - Serial Data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
SCL - Serial Clock
SQW/OUT - Square Wave/Output
RTC DS1307 sangat berguna untuk menjaga waktu agar terus berjalan walaupun
supply tegangan (VCC) tidak terhubung. Saat tegangan pada VCC berada di bawah
tegangan baterai (VBAT), maka DS1307 akan men-switch ke tegangan baterai. Jika
tegangan VCC sudah berada di atas tegangan baterai (VBAT + 0,2 V), maka DS1307 akan
mengubah sumber tegangan baginya dari tegangan baterai ke VCC.
Register DS1307 berlokasi pada alamat 00H sampai 07H. Register tersebut secara
urut mulai dari 00H adalah detik, menit, jam, hari, tanggal, bulan, tahun, dan pengendali
operasi SQW. Untuk mengatur detik, menit, jam, hari, tanggal, bulan, dan tahun, dapat
diatur bit-bit pada masing-masing register.
Gambar 2.8. Konfigurasi bit pada register DS1307 [18]
Untuk mengoperasikan RTC DS1307, digunakan komunikasi I2C dengan mode
reguler (100 kHz). Alamat slave DS1307 mengandung 7 bit alamat yaitu 1101000
Mikrokontroler sebagai master mengirimkan alamat slave + write bit, alamat register yang
akan ditulis, kemudian mengirimkan sejumlah byte data. Untuk membaca waktu dari
DS1307, mikrokontroler mengirimkan alamat slave + write bit, register pointer (register
pertama yang akan dibaca), kemudian membaca data yang dikirimkan dari DS1307.
Berikut ini adalah diagram write mode dan read mode pada RTC DS1307.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
Gambar 2.9. Diagram write mode DS1307 [18]
Gambar 2.10. Diagram read mode DS1307 [18]
2.6. Software XAMPP
XAMPP adalah program aplikasi pengembang yang berguna untuk
pengembangan website berbasis PHP dan MySQL. Perangkat lunak komputer ini memiliki
kelebihan untuk bisa berperan sebagai server web Apache untuk simulasi pengembangan
website. Tool pengembangan web ini mendukung teknologi web populer seperti PHP dan
MySQL. Melalui program ini, programmer web dapat menguji aplikasi web yang
dikembangkan dan mempresentasikannya ke pihak lain secara langsung dari komputer,
tanpa perlu terkoneksi ke internet. XAMPP juga dilengkapi fitur manajemen database
PHPMyAdmin seperti pada server hosting sungguhan, sehingga pengembang web dapat
mengembangkan web berbasis database dengan mudah [19].
Fungsi XAMPP adalah sebagai server yang berdiri sendiri (localhost), yang terdiri
atas program Apache HTTP Server, MySQL database, dan penerjemah bahasa yang ditulis
dengan bahasa pemrograman PHP dan Perl. Nama XAMPP merupakan singkatan dari X
(empat sistem operasi apapun: Windows, Linux, Mac OS, Solaris), Apache, MySQL, PHP
dan Perl. Program ini tersedia bebas, mudah digunakan, dan dapat melayani tampilan
halaman web yang dinamis [19].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
Gambar 2.11. XAMPP Control Panel
2.6.1. Apache Web Server
Web server merupakan server internet yang mampu melayani koneksi transfer
data dalam protocol HTTP. Web server telah dirancang untuk dapat melayani beragam
jenis data, dari text sampai grafis. Kemampuan ini telah menyebabkan berbagai institusi
seperti universitas maupun perusahaan dapat menerima kehadirannya dan juga sekaligus
menggunakannya sebagai sarana di Internet [20].
Salah satu perangkat lunak web server yang biasa digunakan adalah Apache Web
Server. Apache ini bersifat open source yang berarti gratis dan bisa diedit oleh
penggunanya. Tugas utama Apache adalah menghasilkan halaman web yang benar kepada
client berdasarkan kode PHP yang dituliskan oleh pembuat halaman web. Secara otomatis
Apache akan menjalankan file index.html (halaman utamanya) untuk ditampilkan secara
otomatis pada client. Jika diperlukan juga berdasarkan kode PHP yang dituliskan,maka
dapat saja suatu database diakses terlebih dahulu (misalnya dalam MySQL) untuk
mendukung halaman web yang dihasilkan[19].
2.6.2. MySQL Database
MySQL (My Structured Query Language) adalah sebuah program pembuat dan
pengelola data atau yang sering disebut dengan DBMS (DataBase Management
System)[21]. Dalam konteks bahasa SQL, pada umumnya informasi tersimpan dalam tabel-
tabel yang secara logika merupakan struktur 2 dimensi yang terdiri atas baris-baris data
yang berada dalam sau atau lebih kolom. Baris pada tabel sering disebut sebagai instance
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
dari data, sedangkan kolom sering disebut sebagai attribute atau field. Keseluruhan tabel
itu dihimpun dalam satu kesatuan yang disebut database[22].
2.6.3. Pemrograman PHP
PHP adalah singkatan dari PHP Hypertext Preprocessor [23]. PHP adalah bahasa
server-side scripting yang menyatu dengan HTML (Hypertext Markup Language)untuk
membuat halaman web yang dinamis. Maksud dari server-side scriping adalah sinaks dan
perinah-perintah yang diberikan akan sepenuhnya dijalankan di server eapi disertakan pada
dokumen HTML sebagai pembangun halaman web. Ketika seorang pengguna internet akan
membuka suatu situs yang menggunakan PHP, maka terlebih dahulu server yang
bersangkutan akan memproses semua perintah PHP di server lalu mengirimkan hasilnya
dalam forma HTML ke web browser. Dengan demikian, seorang pengguna internet tidak
dapat melihat kode program yang ditulis dalam php sehingga keamanan dari halaman web
menjadi lebih terjamin [22].
PHP dapat mengirim HTTP header, dapat mengeset cookies, mengatur
authentication, redirect, mampu berkoneksi dengan beberapa basis data (semisal MySQL),
mampu berintegrasi dengan library eksternal [22].
Dalam membuat program PHP, maka yang dibutuhkan adalah perintah awal (start
tag) dan perintah akhir (end tag). Ada beberapa cara penulisan start tag dan end tag:
- <? Skrip PHP di sini ?>
- <?php Skrip PHP di sini ?>
- <% Skrip PHP di sini %>
- <scrpit language=”php”> Skrip di sini </script>
Semua perintah yang diletakkan pada daerah skrip akan dianggap sebagai perinah
PHP. Jika erjadi kesalahan ataupun kata-kata yang tidak sesuai dengan program akan
dianggap salah dan mengakibatkan program yang dibuat menjadi error [21].
2.7. Modul Ethernet Shield
Arduino ethernet shield memungkinkan Arduino untuk terkoneksi ke internet.
Dalam penggunaannya, digunakan Ethernet Library yang merupakan salah satu standard
library Arduino untuk membantu penggunaannya. Tiap port pada ethernet shield ini,
terdapat semacam pin-head yang panjang sehingga dapat menancap dengan baik pada
board Arduino dan tentunya masih dapat digunakan seperti biasa.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
Ethernet shield memiliki koneksi standar RJ-45, micro SD card slot yang dapat
digunakan untuk menyimpan file. Arduino dapat berkomunikasi dengan ethernet maupun
dengan SD card menggunakan SPI. Pin yang digunakan adalah 10, 11, 12, dan 13
(menggunakan Arduino Uno). Antara Arduino dan Ethernet Shield, pin 10 digunakan
untuk berkomunikasi dengan ethernet dan pin 4 digunakan untuk berkomunikasi dengan
SD card [24].
Gambar 2.12. Modul Ethernet Shield [24]
2.7.1. MAC Address
Media Access Control Address (MAC Address) adalah alamat fisik suatu interface
jaringan (seperti ethernet card pada komputer, port pada router, dan lain-lain) yan bersifat
unik dan berfungsi sebagai identitas perangkat tersebut. MAC Address memiliki panjang 6
byte. Format standar MAC Address secara umum terdiri dari 6 kelompok digit yang
masing-masing kelompok berjumlah 2 digit heksadesimal. Masing-masing kelompok digit
dipisahkan tanda (-) atau (:), misalnya 01-23-45-67-89-ab atau 01:23:45:67:89:ab [25].
Gambar 2.13 Contoh MAC Address [26]
MAC Address terdiri dari 12 digit bilangan heksadesimal yang dibagi menjadi 6
segmen (masing-masing 2 digit). Tiga segmen pertama merupakan kode vendor atau
pembuat kartu jaringan tersebut, 3 segmen berikutnya merupakan serial number kartu
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
tersebut. MAC Address merupakan susunan dari 12 digit bilangan heksadesimal, yang
dapat diuraikan menjadi 48 digit bilangan biner. Dari contoh Gambar 2.11, vendor MAC
Address-nya adalah GVC CORPORATION dengan serial number 4C223A [26].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
BAB III
RANCANGAN PENELITIAN
3.1. Model Sistem
Prinsip kerja dari perekaman data akses kamar hotel ini adalah sebagai berikut.
Awalnya, semua ID Card dari penyewa tidak dapat mengakses kamar. ID Card penyewa
dapat digunakan untuk mengakses kamar setelah dilakukan pendaftaran melalui halaman
web bagian pendaftaran. Pada halaman web pendaftaran ini, terdapat waktu check in dan
check out. Setelah waktu check in dan check out diberikan, maka ID Card penyewa telah
dapat digunakan untuk mengakses kamar.
Setelah mendapatkan waktu check in dan check out, maka perekaman data akses
kamar hotel dilakukan dengan mengirimkan data dari ID Card penyewa ke web. Penyewa
yang ingin memasuki kamar hotel harus memiliki RFID Card. Data yang teridentifikasi
dari RFID Card tersebut akan diproses oleh mikrokontroler setelah melalui pembacaan
dari RFID Reader. Data tersebut kemudian akan dikirimkan ke web menggunakan Modul
Ethernet. Pada halaman web akan ditampilkan data yang teridentifikasi dari RFID Card
beserta waktu penggunaan kamar hotel ini.
Berikut ini adalah diagram blok sistem pengelolaan kamar hotel beserta bentuk
fisiknya.
Gambar 3.1. Diagram blok sistem perekaman data akses kamar hotel
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
Gambar 3.2. Bentuk fisik tampak depan
Dalam penelitian ini, akan dibuat model 3 ruangan, yakni Kamar 1, Kamar 2,
Kamar 3 yang masing-masing dipasangi RFID dan terdapat 5 buah RFID Card Penyewa 1,
Penyewa 2, Penyewa 3, Resepsionis, dan OB. Setiap kali ada yang mengakses kamar, data
yang dibaca RFID akan dimonitor melalui internet menggunakan mikrokontroler. LED
akan menyala ataupun mati mengikuti persyaratan akses kamar.
3.2. Identifikasi Kebutuhan Perangkat
Dalam pembuatan sistem pengelolaan kamar hotel ini, digunakan beberapa
perangkat keras sebagai berikut.
1. RFID Card sebagai identitas pengguna.
2. Modul RFID sebagai pembaca data identitas pengguna dari RFID Card.
3. Mikrokontroler sebagai pengolah data dan pengendali utama sistem secara
keseluruhan.
4. Modul Ethernet Shield sebagai alat bantu komunikasi mikrokontroler dengan
web.
5. Modul RTC DS1307 sebagai pemberi informasi waktu kunjung.
3.3. Perancangan Perangkat Keras
3.3.1. Perancangan Resistor Pull-Up
Resistor pull-up digunakan dalam komunikasi I2C. Berdasarkan datasheet,
ATMega328 memiliki rentang resistor pull-up 20 kΩ sampai 50 kΩ, sehingga diambil nilai
resistor pull-up yang masih dalam rentangnya yakni 30kΩ. Dengan demikian, perancangan
Kamar 1
RF
ID 1
LED
Kamar 2
LED
Kamar 3
LED
RF
ID 2
RF
ID 3
LED LED LED
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
resistor pull-up untuk komunikasi I2C antara Arduino dan piranti lain adalah sebagai
berikut.
Gambar 3.3. Perancangan resistor pull-up
3.3.2. Perancangan RFID SL018
Digunakan Modul RFID SL018 sebagai pembaca data dari RFID Card. Gambar
2.1 menunjukan Modul RFID SL018 dan Tabel 2.1 menunjukan konfigurasi pin RFID
SL018. Kedua gambar tersebut merujuk pada datasheet RFID SL018. Pin VCC akan
dihubungkan pada sumber tegangan 5V. Pin GND akan dihubungkan dengan ground. Pin
SDA akan dihubungkan pada pin SDA pada mikrokontroler sebagai komunikasi I2C. Pin
SCL akan dihubungkan dengan pin SCL pada mikrokontroler sebagai komunikasi I2C. Pin
TagSta akan dihubungkan ke port mikrokontroler sebagai pembaca keadaan RFID.
Komunikasi antara RFID SL018 dengan mikrokontroler menggunakan
komunikasi I2C. Dalam komunikasi I2C, dibutuhkan resistor pull-up pada pin SDA dan
SCL. Sistem yang dibuat nantinya akan terdapat 3 buah RFID yang mewakili 3 kamar
hotel. Dengan demikian bentuk perancangan RFID SL018 secara keseluruhan adalah
seperti Gambar 3.4.
3.3.3. Perancangan Modul Ethernet
Modul Ethernet sebagai modul pembantu mikrokontroler untuk mengirimkan data
ke halaman web. Modul Ethernet digunakan untuk membantu mikrokontroler berkerja
sebagai web server. Penggunaan Modul Ethernet menggunakan komunikasi SPI. Pin pada
Modul Ethernet disesuaikan dengan pin MOSI, MISO, SCK, dan SS pada mikrokontroler.
Dikarenakan modul Ethernet yang digunakan berupa shield untuk Arduino, maka pin pada
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
modul Ethernet sama dengan pin pada Arduino. Gambar 3.5 merupakan perancangan
modul ethernet dan mikrokontroler.
Gambar 3.4. Perancangan 3 buah RFID dengan mikrokontroler
Gambar 3.5. Perancangan Modul Ethernet dan Mikrokontroler
3.3.4. Perancangan RTC DS1307
Pengelolaan kamar hotel ini, diatur juga waktu kunjungnya. Untuk itu, digunakan
modul RTC (Real Time Clock) sebagai pengatur waktunya mulai dari detik, menit, jam,
tanggal, bulan, dan tahun. Modul RTC yang digunakan adalah DS1307. Penggunaan RTC
bertujuan agar sistem sedang tidak mendapat sumber listrik (misal karena mati lampu),
waktu tetap berjalan sebagaimana mestinya sehingga tidak perlu melakukan setting waktu
lagi pada sistem.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
Dikarenakan Modul RTC DS1307 menggunakan komunikasi I2C, maka harus ada
resistor pull-up pada jalur SDA maupun jalur SCL. Pin SDA dan SCL akan dihubungkan
dengan pin SDA dan SCL pada mikrokontroler sebagai komunikasi I2C. Gambar 3.6
menunjukan pengabelan pada modul DS1307 merujuk pada datasheet.
Gambar 3.6. Perancangan RTC DS1307
3.4. Perancangan Perangkat Lunak
3.4.1. Perancangan Halaman Login
Halaman web login yang dibuat ini digunakan agar pengguna dapat mengakses
halaman web pendaftaran dan perekaman data akses kamar hotel. Hal ini bertujuan agar
kedua halaman tersebut hanya dapat dilihat oleh beberapa pengguna saja seperti admin,
resepsionis dan manager hotel. Dengan demikian, orang yang tidak memiliki hak akses
tidak dapat mengakses kedua halaman tersebut. Berikut ini adalah tampilan halaman login
nya.
Gambar 3.7. Gambar halaman login sebelum mengakses halaman rekaman data akses
SELAMAT
DATANG
Username :
Password :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
Diagram alir halaman login tersebut adalah sebagai berikut.
Gambar 3.8. Diagram alir halaman login
3.4.2. Perancangan Pendaftaran Penyewa Kamar Hotel
Sebelum diberikan hak akses mengenai waktu check in dan check out, ID Card
penyewa tidak dapat digunakan untuk mengakses kamar. Pengaturan hak akses kamar ini,
diberikan melalui halaman web pendaftaran. Halaman web pendaftaran ini hanya dapat
diakses oleh resepsionis. Berikut ini adalah tampilan halaman web pendaftaran.
Gambar 3.9. Tampilan tabel hasil pendaftaran kamar hotel pada web yang diharapkan
Format data yang dihasilkan pada halaman web pendaftaran setelah memberikan
data masukan adalah sebagai berikut.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
Tabel 3.1. Format data yang dihasilkan pada halaman web pendaftaran untuk kemudian
diproses pada mikrokontroler
alamatfileserver--kamar--tanggal_in--bulan_in--tahun_in--jam_in--menit_in--
tanggal_out--bulan_out--tahun_out--jam_out--menit_out
alamatfileserver dihubungkan ke alamat file PHP pada server yang mengatur
pemrosesan data-data yang dikirm
kamar kamar yang digunakan atau disewa
tanggal_in; jam_in;
bulan_in; menit_in;
tahun_in;
Waktu check in penyewa, terdiri atas tanggal, bulan, tahun,
jam, dan menit
tanggal_out; jam_out;
bulan_out; menit_out;
tahun_out;
Waktu check out penyewa, terdiri atas tanggal, bulan, tahun,
jam, dan menit
Selanjutnya, mikrokontroler akan membaca dan menerima data tersebut
menggunakan HTTP request dengan format sebagai berikut.
GET alamatfileserver
Kemudian, data-data masukan dari halaman web pendaftaran akan diproses pada
mikrokontroler. Pengiriman data dari web ke mikrokontroler ini menggunakan interupsi
komunikasi pada ethernet shield yang nantinya akan mempengaruhi hak akses ID Card
penyewa menjadi dapat digunakan untuk mengakses kamar. Dikarenakan yang memiliki
hak akses untuk halaman hanyalah resepsionis, maka selain resepsionis tidak dapat
mengakses halaman ini dengan cara diberikan notifikasi “Tidak memiliki hak akses”.
Diagram alir untuk pengaturan ini adalah sebagai berikut.
Gambar 3.10. Diagram alir halaman pendaftaran
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
3.4.3. Diagram Alir Program Utama
Gambar 3.11 menunjukan diagram alir program utama. Proses dimulai dengan
pembacaan RFID Card oleh RFID SL018. Data yang diterima oleh RFID SL018 diterima
oleh mikrokontroler. Mikrokontroler akan mengecek identitas dari RFID Card, kamar yang
digunakan beserta waktu kunjung. Pengecekan ini berlaku untuk setiap RFID yang
terpasang. Jika identitas RFID Card, kamar yang digunakan dan waktu kunjung telah
sesuai, maka pengguna diperbolehkan mengakses kamar hotel. Namun, jika tidak sesuai,
maka pengguna tidak dapat mengakses kamar hotel. Data-data dari hasil pengecekan
tersebut akan dikirimkan ke server untuk kemudian ditampilkan pada halaman web.
Pengiriman data ini diproses oleh mikrokontroler yang berkomunikasi dengan Modul
Ethernet.
Gambar 3.11. Diagram alir program utama
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
3.4.4. Pembacaan Identitas RFID Card oleh RFID SL018
Pembacaan data dari RFID SL018 mengacu pada datasheet RFID SL018.
Awalnya, jika terdapat RFID Card yang terdeteksi oleh RFID SL018, maka RFID akan
menghasilkan logika low pada pin TagSta. Jika tidak ada RFID Card yang terdeteksi, maka
akan kembali ke fungsi utama. Logika low ini diterima oleh mikrokontroler untuk
kemudian menuliskan write command berupa alamat slave, len, dan command. Untuk
memastikan mikrokontroler sudah berhasil berkomunikasi dengan RFID SL018, akan ada
pengecekan status komunikasi. Jika status komunikasi tersedia, maka mikrokontroler akan
memberikan read command untuk membaca hasilnya. Dalam pembacaan data ini,
mikrokontroler akan menerima sejumlah byte dalam bentuk bilangan heksadesimal yang
berupa len, command, status, identitas RFID Card, dan tipe RFID Card.
Gambar 3.12. Diagram alir pembacaan identitas RFID Card oleh RFID SL018
Berikut ini adalah format data yang diperlukan untuk membaca data RFID Card
yang diterima dari modul RFID SL018 [8].
a. Mikrokontroler menulis perintah ke modul RFID SL018.
Alamat Slave Len Command
Alamat Slave : 0xA0 (pada Arduino menjadi 0x50)
Len : mengindikasikan jumlah byte dari command
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
Command : perintah yang diberikan ke RFID SL018. Untuk membaca data
dari RFID Card digunakan perintah 0x01
b. Hasil yang dibaca oleh mikrokontroler
Len Command Status UID Type
Len : mengindikasikan jumlah byte yang akan diterima
Command : perintah yang diterima sebelumnya (0x01)
Status : keadaan modul RFID SL018
0x00 : operasi berhasil
0x01 : tag tidak terdeteksi
0x0A: terjadi benturan data
UID : data unik dari RFID Card (berupa bilangan heksadesimal)
Type : tipe kartu yang dideteksi. Karena menggunakan RFID Card
Mifare 4K 4-byte, maka data Type ini bernilai 0x04.
3.4.5. Perancangan Perangkat Lunak Modul RTC DS1307
Data yang dikirimkan oleh Modul RTC DS1307 merupakan bilangan BCD
(Binary Code Decimal). Komunikasi RTC DS1307 menggunakan I2C. Awalnya, RTC
DS1307 harus diatur dulu waktunya hingga sesuai dengan waktu sebenarnya. Pengaturan
waktu dilakukan dengan memberikan alamat slave, lokasi alamat waktu, dan data.
Pengaturan waktu ini hanya dilakukan sekali saja selama baterai yang terhubung dengan
pin VBat belum habis. Pembacaan waktu hanya akan dilakukan saat ada data RFID yang
terdeteksi dan digunakan untuk syarat akses kamar bagi OB. Diagram alirnya dapat dilihat
pada Gambar 3.13 (a) dan (b).
3.4.6. Persyaratan Akses Kamar
Pada penelitian ini, syarat akses hotel dan waktunya adalah sebagai berikut.
Tabel 3.2. Persyaratan akses kamar
Identitas Kamar Yang Boleh Diakses Waktu
Penyewa 1 Kamar 1 Sepanjang hari
Penyewa 2 Kamar 2 Sepanjang hari
Penyewa 3 Kamar 3 Sepanjang hari
Resepsionis Semua kamar Sepanjang hari
Office Boy (OB) Semua kamar 08.00 – 16.00
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
Pada setiap kamar terdapat indikator LED hijau dan LED merah. LED berwarna
hijau diartikan sebagai indikator bahwa kamar tersebut dapat diakses (tidak ada orang di
dalamnya). LED berwarna merah diartikan sebagai indikator bahwa kamar tidak dapat
diakses (ada orang di dalamnya). Indikator LED ini digunakan agar mempermudah dalam
(a) (b)
Gambar 3.13. (a) Diagram alir pengaturan waktu RTC dan (b) Diagram alir pembacaan
waktu modul RTC DS1307
penelitian ini. Resepsionis dan OB dapat mengakses kamar jika kamar itu kosong. OB
diberikan akses ke setiap kamar untuk membersihkan kamar sesuai pada waktu yang
tertera pada tabel 3.2. Resepsionis diberikan akses ke setiap kamar hanya jika seumpama
ada orang yang ingin melihat-lihat kamar sebelum menyewa.
Diagram alir untuk persyaratan akses kamar seperti pada gambar 3.14 dengan
penjelasan sebagai berikut. Sebelumnya, telah didapatkan identitas dari RFID Card oleh
RFID SL018. Awalnya dilakukan pengecekan terlebih dahulu mengenai ada tidaknya
orang pada kamar tersebut. Jika kamar tersebut kosong, dilakukan pengecekan terhadap
identitas yang ingin mengakses kamar tersebut. Jika yang mengakses adalah penyewa
kamar yang sesuai, dilakukan pengecekan terhadap waktu mengaksesnya. Waktu
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
mengakses ini dapat dipengaruhi setelah ada interupsi komunikasi pada ethernet karena
ada pemberian waktu check in dan check out. Jika penyewa mengakses kamar pada waktu
check in dan check out nya, maka penyewa dapat mengakses kamar hotel. Di luar waktu
check in dan check out, akan dibuat keluaran “Mencoba Memasuki Kamar x”.
Gambar 3.14. Diagram alir syarat akses kamar
Jika identitas merupakan resepsionis, maka kamar dapat diakses dengan indikator
LED merah menyala, LED hijau mati serta adanya penyimpanan identitas yang mengisi.
Jika yang mengakses kamar adalah OB, dilakukan pengecekan waktu yang sesuai dengan
tabel 3.2. Jika waktu telah sesuai, maka OB dapat mengakses kamar. Jika waktu tidak
sesuai maka OB tidak dapat mengakses kamar.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
Jika kamar yang akan diakses tidak kosong (ada orang di dalamnya), dilakukan
pengecekan identitas. Jika identitas sama dengan identitas yang mengisi, diartikan bahwa
orang yang ada di dalam akan keluar, LED hijau menyala, LED merah mati. Hal ini juga
menandakan bahwa kamar telah kosong. Jika identitas tidak sama dengan identitas yang
mengisi, diartikan bahwa ada orang lain yang ingin memasuki kamar padahal ada orang di
dalam. Dengan demikian, dibuat keluaran “Mencoba Memasuki Kamar x”.
Tiap LED akan dihubungkan dengan beberapa pin pada Arduino sebagai berikut.
Tabel 3.3. Koneksi LED pada pin Arduino
Kamar LED Pin pada Arduino
1 LED Merah 2
LED Hijau 3
2 LED Merah 5
LED Hijau 6
3 LED Merah 7
LED Hijau 8
3.4.7. Pengiriman Data ke Web Melalui Ethernet
Setelah mikrokontroler telah mendapatkan data berupa identitas dari RFID Card,
maka data tersebut akan ditampilkan pada halaman web. Pengiriman data ini lebih kepada
pengiriman data ke alamat IP tertentu melalui internet. Untuk membantu hal ini,
mikrokontroler dihubungkan dengan Modul Ethernet.
Dalam menggunakan Modul Ethernet ini, mikrokontroler harus mengirimkan kode HTML
agar bisa ditampilkan pada halaman web. Namun, harus ada pengaturan mengenai port,
Media Access Control (MAC), dan alamat IP web yang akan digunakan. Proses pengiriman
data ini akan dilakukan setelah adanya proses pengolahan data pada mikrokontroler
mengenai identitas RFID Card, kamar dan waktu. Kemudian, mikrokontroler akan
dihubungkan ke server melalui port yang digunakan server. Jika sudah terhubung dengan
server, maka mikrokontroler akan mengirimkan data ke web dengan format data seperti
tabel 3.4. Diagram alir pengiriman data ke web dapat dilihat pada gambar 3.15.
Tabel 3.4. Format perngiriman data ke server
POST alamatfileserver--identitas=a--tanggal=waktu--kamar=kamar
POST merupakan salah satu HTTP request untuk mengirimkan data
alamatfileserver dihubungkan ke alamat file PHP pada server yang mengatur
pemrosesan data-data yang dikirm
a Identitas dari RFID Card
waktu waktu yang didapatkan dari hasil pembacaan data pada RTC
kamar kamar yang digunakan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
Gambar 3.15. Diagram alir pengiriman data ke web
3.4.8. Perancangan Tampilan Web
Tampilan web yang akan dibuat, menggunakan pemrograman PHP (PHP
Hypertext Preprocessor) dan MySQL (My Structured Query Language) sebagai
penyimpan dan pengolah data. Data-data yang telah dikirimkan mikrokontroler diproses di
server. Data-data tersebut disimpan pada database server terlebih dahulu. Kemudian, pada
halaman web ditampilkan data-data yang disimpan pada database tersebut. Tampilan yang
akan diperlihatkan berbentuk tabel. Tabel tersebut berisi nomor, identitas, hari dan tanggal,
waktu, dan kamar yang diakses. Tampilan web yang berisi perekaman data akses kamar
hotel ini dapat diakses oleh administrator, resepsionis, dan manager hotel.
Gambar 3.16. Tampilan tabel hasil pada web yang diharapkan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
BAB IV
HASIL DAN PEMBAHASAN
4.1 Hasil Implementasi Alat
Implementasi alat perekaman data akses kamar hotel dengan RFID berbasis web
tersusun atas mikrokontroler Arduino Uno, Modul Ethernet Shield, RTC, 3 buah RFID
SL018, 3 buah LED Hijau, 3 buah LED Merah, dan laptop (sebagai server). Berikut ini
adalah penampakan implementasi alat.
Gambar 4.1. Hasil implementasi alat Perekaman Data Akses Kamar Hotel dengan RFID
Berbasis Web
Pada laptop server terdapat halaman web tentang halaman pendaftaran, penampil
data akses kamar hotel yang direkam, beserta halaman login untuk mengakses kedua
halaman tersebut.
Gambar 4.2. Tampilan halaman login
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
Gambar 4.3. Tampilan halaman pendaftaran
Gambar 4.4. Tampilan halaman web perekaman data akses kamar hotel
4.2 Hasil Perancangan Perangkat Keras
Hasil perancangan perangkat keras ini terdiri atas RFID SL018, resistor pull-up,
Modul Ethernet Shield, dan RTC.
(a) (b) (c)
Gambar 4.5. Penampakan RFID pada (a) kamar 1 (b) kamar 2 dan (c) kamar 3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
Gambar 4.6. Penampakan hasil perancangan resistor pull-up
Gambar 4.7. Penampakan Modul Ethernet Shield dan Arduino di bawahnya
Gambar 4.8. Penampakan RTC
VC
C
GND
SCL
SDA
ARDUINO UNO
ETHERNET SHIELD
Crystal 32,76 kHz Pin SCL Baterai 3V
Pin SDA
DS1307
VCC
GND
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
4.3 Hasil Perancangan dan Pembahasan Perangkat Lunak
4.3.1 Pengaturan IP Address pada Laptop Server
Sebelum dapat berkomunikasi dengan Arduino melalui Modul Ethernet Shield, IP
address laptop server harus diatur terlebih dahulu. Laptop server menggunakan OS
Windows 7, sehingga pengaturannya adalah sebagai berikut.
1. Klik icon pada Taskbar di kanan bawah.
2. Pilih “Open Network and Sharing Center”.
3. Pilih “Change Adapter Setting”.
4. Klik kanan “Local Area Connection” dan pilih “Properties”.
5. Klik pada “Internet Protocol Version 4 (TCP/IPv4)” dan pilih “Properties”.
6. Pada window “Internet Protocol Version 4 (TCP/IPv4) Properties” yang
muncul diatur seperti gambar berikut.
Gambar 4.9. IP Address laptop server diatur seperti gambar
4.3.2 Pengaturan IP Address pada Modul Ethernet Shield
Pengaturan IP address pada Modul Ethernet Shield dilakukan langsung pada
program Arduino. Pengaturannya adalah sebagai berikut.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
Gambar 4.10. Pengaturan IP Address beserta MAC Address untuk Modul Ethernet Shield
Setelah server dan Modul Ethernet Shield diatur IP address-nya, maka
selanjutnya dilakukan pengujian koneksi antar keduanya. Pengujian koneksi dilakukan
dengan command prompt. Keberhasilan koneksi antar keduanya memberikan hasil seperti
berikut pada command prompt.
Gambar 4.11. Koneksi antara server dan Modul Ethernet Shield telah berhasil
Berdasarkan gambar tersebut, koneksi antara server dan Modul Ethernet Shield
dapat bekerja dengan baik sehingga proses komunikasi antar keduanya dapat dilakukan.
4.3.3 Hasil dan Pembahasan Perancangan Halaman Login
Untuk pengujian hasil perancangan setiap halaman web yang dibuat, digunakan
bantuan browser Opera. Hasil perancangan halaman login dapat dilihat pada Gambar 4.2.
Pengujian dilakukan dengan memasukkan username dan password yang sudah dibuat
sebelumnya untuk admin, manager, dan resepsionis. Halaman yang ditampilkan setelah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
memasukkan username admin maupun manager adalah halaman perekaman data akses
kamar hotel seperti Gambar 4.4. Jika username yang digunakan adalah resepsionis, maka
akan ditampilkan halaman pendaftaran seperti Gambar 4.3. Namun, jika yang dimasukkan
bukan ketiganya atau tidak adanya kesesuaian antara username dan password, maka akan
ditampilkan pesan seperti berikut.
Gambar 4.12. Pesan yang tertampil saat username atau password tidak benar
Berdasarkan pengujian yang dilakukan, hasil perancangan halaman login ini telah
sesuai dengan yang diharapkan.
4.3.4 Hasil dan Pembahasan Perancangan Halaman Pendaftaran
Penyewa Kamar Hotel
Hasil perancangan halaman pendaftaran dapat dilihat pada Gambar 4.3. Pengujian
dilakukan dengan mengambil username dan password yang sudah dimasukkan pada
halaman login. Jika username dan password yang dimasukkan bukan resepsionis maka
akan ditampilkan pesan seperti berikut.
Gambar 4.13. Pesan yang tertampil saat username atau password bukan resepsionis
Pada halaman pendaftaran, jika semua data seperti nama, kamar yang digunakan,
waktu check in, dan waktu check out sudah terisi dengan benar, maka data kamar, waktu
check in, dan waktu check out akan dikirim ke mikrokontroler melalui IP address Modul
Ethernet Shield. Data yang dikirimkan memiliki tipe data string. Gambar 4.14 adalah
program pada mikrokontroler untuk menerima data dari server.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
Gambar 4.14. Program penerimaan data dari server
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
Program tersebut akan dilaksanakan bila ada pengiriman data dari server ke
mikrokontroler. Data yang diterima mikrokontroler tersebut kemudian dibagi data untuk
kamar, waktu check in, dan waktu check out. Data-data yang telah dibagi tersebut
kemudian disimpan di EEPROM. Fungsi eeprom_write_string sebagai fungsi untuk
menyimpan data ke EEPROM, berisi seperti Gambar 4.15.
Gambar 4.15. Subrutin penyimpanan data ke EEPROM
Data bertipe string yang akan disimpan pada EEPROM, diubah menjadi bentuk
data heksadesimal terlebih dahulu agar dapat disimpan ke EEPROM mulai dari alamat
EEPROM yang diinginkan. Format data check in dan check out yang disimpan pada
EEPROM memiliki format data “tahun+bulan+tanggal+jam+menit”. Gambar 4.16
merupakan bukti bahwa data-data tersebut telah tersimpan di EEPROM yang ditampilkan
melalui Serial Monitor Arduino.
(a) (b)
Gambar 4.16. (a) EEPROM saat belum terisi data (b) EEPROM setelah terisi data
Hasil akhir dari halaman pendaftaran ini adalah, mikrokontroler memberikan
respon berupa halaman web bertuliskan “Data Telah Berhasil Disimpan” seperti pada
Gambar 4.17. Hal ini mengindikasikan bahwa data dari halaman pendaftaran dari server
telah tersimpan pada mikrokontroler.
Gambar 4.17. Pesan yang ditampilkan dari mikrokontroler melalui Modul Ethernet Shield
bahwa data telah diterima
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
4.3.5 Hasil dan Pembahasan Pembacaan Identitas RFID Card oleh
RFID SL018
Pengujian terhadap pembacaan identitas RFID Card ini dilakukan dengan
mendekatkan RFID Card terhadap RFID SL018. Hasil yang akan dilihat adalah
terdeteksinya RFID Card oleh RFID SL018 dan identitas yang diterima oleh
mikrokontroler.
Gambar 4.18. Pengujian dilakukan dengan mendekatkan RFID Card ke RFID SL018
Hal pertama yang dilakukan mikrokontroler untuk membaca data dari RFID Card
adalah dengan berkomunikasi terlebih dahulu dengan semua RFID SL018. Gambar 4.19
menunjukkan program untuk mikrokontroler berkomunikasi dengan RFID SL018.
Gambar 4.19. Program pada mikrokontroler untuk berkomunikasi dengan RFID SL018
Program tersebut diletakkan di program utama. Mikrokontroler akan menerima
data dari RFID SL018 sebagai hasil dari pembacaan data dari RFID Card setelah salah satu
RFID SL018 memberikan kondisi low pada pin TagSta sebagai respon bahwa RFID SL018
mendeteksi adanya RFID Card. Saat RFID SL018 mendeteksi adanya RFID Card, maka
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
mikrokontroler akan membaca berkomunikasi dengan RFID SL018 untuk membaca data
RFID Card menggunakan subrutin seperti Gambar 4.20.
Gambar 4.20. Subrutin Pembacaan Data RFID Card
Pada subrutin di atas, mikrokontroler membaca data-data yang dikirimkan oleh
RFID SL018. Data-data tersebut adalah len, command code, status, UID, dan type.
Identitas dari RFID Card terdapat pada data UID.
Pada penelitian ini, digunakan 5 buah RFID Card dengan identitas sebagai
berikut.
Tabel 4.1. Identitas pada RFID Card dan penamaannya
Identitas Penamaan
FB9E4BB5 Resepsionis
B2D2E53D OB
3273F33D Penyewa 3
32BBE33D Penyewa 2
723DE53D Penyewa 1
Identitas pada Tabel 4.1 kemudian dimasukkan ke dalam mikrokontroler pada
inisialisasi pengaturan seperti pada Gambar 4.21.
Gambar 4.21. Inisialisasi identitas RFID Card
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
Untuk mempermudah penelitian, identitas RFID Card diberikan penamaan seperti
Tabel 4.1. Pada mikrokontroler, terdapat subrutin untuk memberikan nama pada setiap
identitas RFID Card seperti pada Gambar 4.22.
Gambar 4.22. Subrutin penggantian nama identitas RFID Card
Hasil dari pembacaan identitas RFID Card beserta penamaannya, kemudian
dilihat pada Serial Monitor Arduino seperti pada Gambar 4.23.
Gambar 4.23. Hasil pembacaan identitas RFID Card
4.3.6 Hasil dan Pembahasan Perancangan Perangkat Lunak Modul
RTC DS1307
Pengujian yang dilakukan terhadap modul RTC DS1307 adalah pengujian untuk
penulisan waktu ke RTC dan pembacaan waktu dari RTC. Pengujian ini diawali dengan
penulisan waktu ke RTC. Penulisan waktu ini dilakukan menggunakan subrutin seperti
Gambar 4.24.
Identitas RFID Card
Hasil penamaan Identitas RFID Card
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
Gambar 4.24. Subrutin penulisan dan pengaturan waktu pada RTC
Pembacaan data (waktu) pada RTC, diberikan subrutin pembacaan waktu pada
RTC seperti pada Gambar 4.25.
Gambar 4.25. Subrutin pembacaan waktu RTC
Pada subrutin pembacaan waktu RTC, terdapat fungsi tambah_nol yang berfungsi
sebagai penambahan angka “0” di depan angka yang lebih kecil dari 10. Hal ini bertujuan
untuk mempermudah pemrosesan data selanjutnya pada subrutin syarat akses kamar.
Gambar 4.26 merupakan isi dari fungsi tambah_nol.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
Gambar 4.26. Isi fungsi tambah_nol
Hasil akhir dari perancangan perangkat lunak modul RTC ini adalah dapat
dibacanya data yang ada pada RTC. Pengujian ini dilakukan dengan melihat data tiap detik
melalui Serial Monitor Arduino seperti Gambar 4.27.
Gambar 4.27. Hasil pembacaan RTC DS1307
Berdasarkan Gambar 4.27, terlihat bahwa mikrokontroler telah dapat
berkomunikasi (membaca data) dengan RTC DS1307. Tampilan tersebut merupakan hasil
modifikasi yang telah dibuat dalam program pembacaan RTC DS1307.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
4.3.7 Hasil dan Pembahasan Perancangan Program Utama
Setelah semua perancangan perangkat lunak telah memberikan hasil yang sesuai
dengan perancangan, selanjutnya adalah menggabungkan semuanya ke dalam program
utama. Program utama ini bersifat sekuensial, artinya setiap proses yang telah dirancang
pada Bab III (mulai dari pembacaan identitas RFID Card hingga pengiriman data ke web)
dilakukan secara berurutan. Untuk mendapatkan hasil perancangan persyaratan akses
kamar, dilakukan pengujian terhadap perancangan persyaratan akses kamar dengan
perlakuan sebagai berikut.
Tabel 4.2. Daftar Penyewa Kamar Hotel
Nama Kamar yang
disewa
Tanggal
Check In
Tanggal
Check Out
Jam
Check In
Jam
Check Out
Anna 1 23 Juli 2015 24 Juli 2015 13.00 12.00
Doni 2 24 Juli 2015 25 Juli 2015 13.00 12.00
Ryan 3 23 Juli 2015 24 Juli 2014 13.00 12.00
Jessy 1 24 Juli 2015 25 Juli 2015 13.00 12.00
Tiap penyewa akan mendapat RFID Card yang sesuai dengan kamar yang disewa,
misalnya kamar yang disewa adalah Kamar 1 maka penyewa kamar 1 akan mendapatkan
RFID Card Penyewa 1 dan seterusnya.
Penyewa yang telah melakukan check out maka akan dilakukan pembaharuan data
pada mikrokontroler dengan mengirimkan data penyewa selanjutnya ke mikrokontroler.
Misalnya, dalam tabel 4.2, jika Anna telah melakukan check out, maka server akan
mengirimkan data baru dari Jessy. Data baru yang dikirimkan adalah kamar yang disewa,
tanggal dan jam check in, dan tanggal dan jam check out.
Gambar 4.28 merupakan subrutin syarat akses kamar. Subrutin inilah yang
mengatur boleh tidaknya pengaksesan kamar berdasarkan identitas RFID Card. Diawali
dengan pengecekan kosong tidaknya kamar yang diakses. Jika kosong, kemudian
dilakukan pengecekan lagi sesuai dengan yang telah dirancang pada Bab III. Jika tidak
memiliki hak akses (misal pada Kamar 1), maka diberikan tulisan “Mencoba Memasuki
Kamar 1” serta tidak adanya pergantian LED pada kamar. Namun, jika memiliki hak akses,
diberikan tulisan “Memasuki Kamar 1”, ada pergantian LED pada kamar (LED Merah
sebelumnya mati menjadi menyala dan LED Hijau sebelumnya menyala menjadi mati) dan
adanya penyimpanan data id_pengguna (dari subrutin penggantian nama) ke EEPROM
menggunakan library EEPROM untuk mengindikasikan bahwa kamar tersebut telah
dimasuki dengan id_pengguna yang bersangkutan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
Gambar 4.28. Subrutin syarat akses kamar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
Tabel 4.3. Hasil perancangan persyaratan akses kamar
Tanggal Jam Kamar Penyewa 1 Penyewa 2 Penyewa 3 OB Resepsionis
23 J
uli
2015
00.00 –
08.00
1 - - - - v
2 - - - - v
3 - - - - v
08.00 –
12.00
1 - - - v v
2 - - - v v
3 - - - v v
12.00 –
13.00
1 - - - v v
2 - - - v v
3 - - - v v
13.00 –
16.00
1 v - - v v
2 - - - v v
3 - - v v v
16.00 –
00.00
1 v - - - v
2 - - - - v
3 - - v - v
24 J
uli
2015
00.00 –
08.00
1 v - - - v
2 - - - - v
3 - - v - v
08.00 –
12.00
1 v - - v v
2 - - - v v
3 - - v v v
12.00 –
13.00
1 - - - v v
2 - - - v v
3 - - - v v
13.00 –
16.00
1 v - - v v
2 - v - v v
3 - - - v v
16.00 –
00.00
1 v - - - v
2 - v - - v
3 - - - - v
25 J
uli
2015
00.00 –
08.00
1 v - - - v
2 - v - - v
3 - - - - v
08.00 –
12.00
1 v - - v v
2 - v - v v
3 - - - v v
12.00 –
13.00
1 - - - v v
2 - - - v v
3 - - - v v
13.00 –
16.00
1 - - - v v
2 - - - v v
3 - - - v v
16.00 –
00.00
1 - - - - v
2 - - - - v
3 - - - - v
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
Keterangan:
- : tidak bisa mengakses kamar
v : dapat mengakses kamar
Tabel 4.3 menunjukkan hasil pengujian yang telah dilakukan. Pada tanggal 24 Juli
2015 jam 13.00-16.00 terlihat bahwa penyewa 1 dapat memasuki Kamar 1. Hal ini
diartikan bahwa penyewa sebelumnya (Anna) telah melakukan check out terlebih dahulu
kemudian diganti dengan penyewa selanjutnya (Jessy). Dengan demikian, RFID Card
Penyewa 1 dapat digunakan untuk memasuki Kamar 1.
Untuk membantu dalam melakukan check out, diberikan halaman web untuk
proses check out. Halaman ini berguna untuk menghapus data penyewa yang telah check
out dan memberikan data penyewa yang baru (jika ada) ke mikrokontroler dengan meng-
klik pilihan Check Out pada kolom Status. Halaman check out dan penampil rekaman data
akses akan di reload selama 2 detik, sehingga lebih update. Penampakan dari halaman
check out ini dapat dilihat pada Gambar 4.29.
Gambar 4.29. Halaman Check Out
Pengiriman data-data ke web, diberikan subrutin pengiriman data ke web seperti
pada Gambar 4.30. Diawali dengan melakukan koneksi dari mikrokontroler ke server dan
diikuti dengan data-data seperti pada gambar. Subrutin tersebut memanggil file pada server
yang digunakan untuk menyimpan data ke database yang ada pada web. Pada subrutin
tersebut, file yang dimaksud adalah ambil.php. Isi dari file ini dapat dilihat pada Gambar
4.31.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
Gambar 4.30. Subrutin pengiriman data ke web
Gambar 4.31. Isi file ambil.php
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
Indikator bahwa penyewa (ataupun OB) tidak dapat memasuki kamar dapat dilihat
pada lampu LED yang terpasang pada alat yang ditunjukkan Gambar 4.32. LED hijau tidak
akan mati dan LED merah tidak akan menyala menandakan bahwa penyewa (ataupun OB)
tidak dapat memasuki kamar. Selain itu, terdapat pula perekaman data pengguna yang
mengakses kamar pada halaman web. Misal, Penyewa 3 belum atau tidak dapat memasuki
kamar 3, maka pada halaman web akan ditampilkan “Mencoba Memasuki Kamar 3”
seperti pada Gambar 4.33.
Gambar 4.32. Indikator LED Penyewa 3 tidak dapat memasuki Kamar 3
Gambar 4.33. Tampilan web Penyewa 1 tidak dapat memasuki Kamar 1
Indikator bahwa penyewa, OB, ataupun Resepsionis dapat memasuki kamar dapat
dilihat pada lampu LED yang terpasang pada alat yang ditunjukkan Gambar 4.34. LED
hijau akan mati dan LED merah akan menyala menandakan bahwa penyewa, OB, maupun
Resepsionis dapat memasuki kamar. Selain itu, terdapat pula perekaman data pengguna
yang mengakses kamar pada halaman web. Misal, Resepsionis memasuki kamar 3, maka
pada halaman web akan ditampilkan “Memasuki Kamar 3” seperti pada Gambar 4.35.
Gambar 4.34. Indikator LED Resepsionis memasuki Kamar 3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
Gambar 4.35. Tampilan web Resepsionis memasuki Kamar 3
Pada Bab III, dibuat perancangan bahwa jika terdapat pengguna yang sudah
memasuki kamar tersebut, maka tidak ada yang dapat memasuki kamar tersebut hingga
pengguna yang berada di dalam tersebut keluar dari kamar. Misal, sebelumnya Resepsionis
telah memasuki Kamar 3. Jika OB ingin memasuki kamar tersebut, maka pada halaman
web akan ditampilkan “Mencoba Memasuki Kamar 3” yang ditunjukkan Gambar 4.36 dan
indikator LED tidak mengalami perubahan seperti pada Gambar 4.37.
Gambar 4.36. Tampilan web OB tidak dapat memasuki Kamar 3
Gambar 4.37. Indikator LED OB tidak dapat memasuki Kamar 3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
Data-data perekaman tersebut dapat dilihat pada halaman web dengan alamat
localhost/phpmyadmin. Alamat tersebut berisi database, tempat data-data yang
dikirimkan dari mikrokontroler ke server disimpan. Database untuk menyimpan data-data
tersebut dinamai “rfid”, disimpan dalam tabel “masukan”. Alamat tersebut merupakan
alamat yang diberikan XAMPP sebagai salah satu fasilitasnya. Yang perlu dicatat adalah
halaman web dari alamat tersebut dapat dilihat oleh siapapun yang mengetahui alamat
server. Hal tersebut merupakan kelemahan dari XAMPP itu sendiri. Gambar 4.38
diperlihatkan bentuk halaman web yang dimaksud.
Gambar 4.38. Halaman web phpMyAdmin untuk melihat data-data yang telah dikirimkan
dari mikrokontroler ke server
Berdasarkan hasil dan pembahasan di atas, setiap proses yang ada telah
memberikan hasil yang sesuai dengan rancangan penelitian. Pada bagian program utama,
sistem telah dapat merekam data pengguna yang mengakses kamar dengan batas waktu
yang telah ditentukan secara langsung (untuk OB), batas waktu yang ditentukan
berdasarkan waktu check in dan check out (untuk tiap penyewa kamar), dan tanpa
penentuan batas waktu (untuk Resepsionis).
Pada penelitian ini, terdapat kelemahan dari segi perangkat keras (hardware)
maupun perangkat lunak (software). Kelemahan yang ditemukan pada penelitian ini yakni
sebagai berikut: modul RFID yang digunakan mudah untuk dikomunikasikan dengan
Arduino, namun modul RFID yang digunakan memakan banyak port pada mikrokontroler
karena modul ini tidak memiliki alamat khusus di dalamnya (untuk digunakan dalam
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
jumlah banyak). Untuk penggunaan dalam jumlah lebih dari 1 modul RFID SL018, modul
ini mengandalkan Pin TagSta untuk mengetahui bahwa modul RFID tersebut mendeteksi
RFID Card.
Kelemahan selanjutnya adalah RFID Card tidak dapat dibaca secara bersamaan.
Hal yang dimaksud adalah, misal, RFID Card Penyewa 1 dan Penyewa 3 didekatkan
secara bersamaan masing-masing ke RFID Reader Kamar 1 dan Kamar 3. Hal tersebut
tidak dapat dilakukan karena akan terjadi error saat pembacaan. Error ini muncul karena
adanya tabrakan data saat kedua RFID Reader mengirimkan data ke mikrokontroler.
Kelemahan terakhir yang ditemukan pada penelitian ini adalah terkadang
mikrokontroler tidak memberikan respon apapun ke web saat RFID Reader membaca data
RFID Card. Hal ini terjadi saat diberikan perlakuan pembacaan data oleh RFID Reader
terhadap RFID Card dalam waktu yang cepat. Program pada mikrokontroler merupakan
jenis program sekuensial (berurutan) menyebabkan hal ini dapat terjadi. Saat RFID Card
dibaca oleh RFID Reader, akan ada pemrosesan data pada mikrokontroler. Error dapat
terjadi saat RFID Reader mendeteksi RFID Card lain sewaktu mikrokontroler melakukan
pemrosesan data pada RFID Card sebelumnya. RFID Card yang baru dideteksi akan
mengacaukan proses dalam mikrokontroler dan pembacaan RFID Card tersebut tidak akan
sempurna.
Namun, dibalik kelemahan tersebut, penelitian ini juga memiliki kelebihan.
Kelebihan yang ada pada penelitian ini yaitu, 1 buah Arduino dapat mengontrol 3 buah
RFID SL018 dikarenakan komunikasi I2C yang digunakan RFID SL018 sedangkan pada
penelitian sebelumnya hanya 1 tag dengan 1 mikrokontroler [2]. Bahasa pemrograman
PHP pada setiap halaman web di server dalam penelitian ini sangat mudah untuk dipelajari
dan lebih dinamis dibandingkan bahasa pemrograman untuk halaman web pada penelitian
sebelumnya [3] sehingga dapat membantu untuk penelitian selanjutnya yang masih dalam
satu lingkup dengan penelitian ini.
Berdasarkan data-data yang telah diperoleh (dapat dilihat pada Lampiran 6), dari
70 kali pengambilan data, ditemukan 2 kali error pada saat pengambilan data. Dari error
tersebut, persentase keberhasilan dari penelitian ini sebesar
.
Error yang dimaksud adalah tidak adanya respon dari mikrokontroler untuk membaca
identitas RFID Card, menerima data dari web, mengirim data ke web, membaca data RTC,
dan melaksanakan subrutin syarat akses kamar.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan hasil dari setiap proses pada penelitian ini, dapat diambil kesimpulan
sebagai berikut: telah dihasilkan perekaman data akses kamar hotel dengan RFID berbasis
web dengan adanya fasilitas halaman pendaftaran (untuk mengatur waktu check in dan
check out), dan halaman check out (untuk memperbaharui data di mikrokontroler).
Persentase keberhasilan yang didapat pada penelitian ini sebesar 97,14%.
5.2 Saran
Untuk hasil yang lebih baik untuk penelitian selanjutnya, diberikan saran-saran
yang dapat berguna bagi pembaca sebagai berikut:
a. Penelitian ini dapat diperbanyak dengan menggunakan hub, sehingga nantinya
akan banyak menggunakan modul Ethernet Shield yang berbeda MAC Address
dan IP Address-nya.
b. Halaman pendaftaran dapat dijadikan online ke internet (bukan lagi intranet)
sehingga penyewa dapat menyewa kamar di kemudian hari (menggunakan
sistem self-booking kamar hotel).
c. Dapat diberikan penelitian lebih detail untuk pembacaan RFID Card dalam
waktu cepat serta tidak mengganggu komunikasi dari mikrokontroler ke RFID
Reader.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
DAFTAR PUSTAKA
[1] Finkenzeller, Klaus, 2010, RFID Handbook – Fundamental and Applications in
Contactless Smart Cards, Radio Frequency Identification and Near-Field
Communication, Third Edition, Penerbit : Wiley, United Kingdom
[2] Wiranto, Robertus Heru, 2010, Pembaca Data Tag Pada Car Immobilizer Dengan
RFID, Fakultas Sains dan Teknologi Universitas Sanata Dharma, Yogyakarta
[3] Innovative Electronics, 2012, Pengujian modul W5200 Ethernet Shield dengan
menggunakan Arduino, http://blog.innovativeelectronics.com/2012/09/pengujian-
modul-w5200-ethernet-shield.html, diakses 22 November 2014
[4] Adi, Galih Purwito, 2014, Monitoring Suhu 4 Channel Jarak Jauh Berbasis Arduino
Uno, Fakultas Sains dan Teknologi Universitas Sanata Dharma, Yogyakarta
[5] _____, 2012, Pengertian dan Komponen Radio Frequency Identification (RFID),
http://elektronika-dasar.web.id/artikel-elektronika/pengertian-dan-komponen-radio-
frequency-identification-rfid/, diakses 28 November 2014
[6] Sweeney II, Patrick J., 2005, RFID For Dummies, Wiley Publishing Inc.,
Indianapolis
[7] RFID Centre, _____, RFID Technology,
http://www.rfidc.com/docs/introductiontorfid_technology.htm, diakses 20 Desember
2014
[8] _____, 2012, Mifare Reader/Writer SL018 User Manual, Stronglink
[9] _____, 2011, Datasheet MIFARE Classic 4K, NXP Semiconductors
[10] Arduino, _____, What is Arduino, http://www.arduino.cc/en/Guide/Introduction,
diakses 20 Desember 2014
[11] Arduino, _____, Arduino Uno, http://arduino.cc/en/Main/ArduinoBoardUno, diakses
8 Desember 2014
[12] Sejati, Purnomo, 2011, Mengenal Komunikasi I2C (Inter Integrated Circuit),
http://purnomosejati.wordpress.com/2011/08/25/mengenal-komunikasi-i2cinter-
integrated-circuit/, diakses 16 Desember 2014
[13] _____, 2013, Datasheet Atmel 8-bit Microcontroller with 4/8/16/32Kbytes, Atmel
[14] Arduino, _____, Wire Library, http://arduino.cc/en/Reference/Wire, diakses 16
Desember 2014
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
[15] Mando, _____, Pull-up Resistor, https://learn.sparkfun.com/tutorials/pull-up-
resistors, diakses 19 Desember 2014
[16] Mikegrusin, _____, Serial Peripheral Interface (SPI),
https://learn.sparkfun.com/tutorials/serial-peripheral-interface-spi, diakses 21
Desember 2014
[17] Triatmojo, Ragil, 2014, Cara Kerja Periperal USART,UART,SPI,SCI, DAC,ADC,
http://ragiltriatmojo.blogspot.com/2014/09/cara-kerja-periperal-usartuartspisci.html,
diakses 21 Desember 14
[18] _____, _____, Datasheet DS1307, Dallas Semiconductor
[19] Tester, Soly, 2013, Penjelasan dan Fungsi XAMPP,
http://solylight.blogspot.com/2013/03/penjelasan-dan-fungsi-xampp.html, diaskes 1
Februari 2015
[20] Hastomo, Widi, 2013, Pengertian dan Kelebihan Apache Server,
http://hastomo.net/php/pengertian-dan-kelebihan-apache-server, diakses 1 Februari
2015
[21] Nugroho, Bunafit, 2008, Latihan Membuat Aplikasi Web PHP dan MySQL dengan
Dreamweaver MX (6,7,2004) dan 8, Penerbit : Gava Media, Yogyakarta
[22] Sunarfrihantono, Bimo, 2003, PHP dan MySQL untuk Web, Penerbit : ANDI,
Yogyakarta
[23] Peringinangin, Kasiman, 2006, Aplikasi WEB dengan PHP dan MySQL, Penerbit :
ANDI, Yogyakarta
[24] Arduino, _____, Arduino Ethernet Shield,
http://arduino.cc/en/Main/ArduinoEthernetShield, diakses 29 Desember 2014
[25] Setiawan, Agus, 2012, Pengertian MAC Address,
http://www.transiskom.com/2012/10/pengertian-mac-address.html, diakses 4
Februari 2014
[26] Purdianto Yudi, 2011, MAC Address,
http://yadicucuklauk.blogspot.com/2011/10/mac-address-mac-address-media-
access.html, diakses 14 Februari 2015
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L1
LAMPIRAN 1
LISTING PROGRAM ARDUINO
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L2
/*
PEREKAMAN DATA AKSES KAMAR HOTEL BERBASIS WEB
Paulus Alexander Eldwin Pradana
115114006
*/
/*Inisialisasi Header*/
#include <Wire.h>
#include <SPI.h>
#include <Ethernet.h>
#include <EEPROM.h>
const int EEPROM_MIN_ADDR = 0;
const int EEPROM_MAX_ADDR = 511;
const int BUFSIZE = 17;
char buf[BUFSIZE];
String myString;
char myStringChar[BUFSIZE];
/*Inisialisasi Pin Untuk RFID*/
#define TAG3 17 // pin A3
#define TAG2 16 // pin A2
#define TAG1 15 // pin A1
EthernetClient klien; //ethernet sebagai penerima data dari mikro
/*Inisialisasi variabel utk baca RFID*/
int data[33],panjang,perintah,keadaan,panjang2;
char* mifare[] = "1K", "Pro", "UltraLight", "4K", "ProX", "DesFire" ;
/*Inisialisasi identitas RFID Card*/
int Penyewa1[5]=0x01,0x3D,0xE5,0x3D,0x72;
int Penyewa2[5]=0x01,0x3D,0xE3,0xBB,0x32;
int Penyewa3[5]=0x01,0x3D,0xF3,0x73,0x32;
int OB[5]=0x01,0x3D,0xE5,0xD2,0xB2;
int receptionist[5]=0x01,0xB5,0x4B,0x9E,0xFB;
/*Inisialisasi untuk syarat akses kamar*/
char* yang_masuk;
char* nama[8]="-1","Penyewa+1","Penyewa+2","Penyewa+3","OB","Resepsionis";
int cocok_id_pengguna[8]=-1,1,2,3,4,5;
int id_pengguna;
char* waktu_OB_L="08+0";
char* waktu_OB_H="16+0";
int didalam[8];
int i;
/*Inisialisasi MAC Address Ethernet Shield*/
byte mac[] = 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED ;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L3
/*IP Address untuk Ethernet*/
IPAddress ip( 192,168,1,15 );
/*IP Address untuk server PC*/
IPAddress pusat(192,168,1,10);
EthernetServer server(80);//Ethernet sebagai server
/*Inisialisasi Variebel pembantu*/
char buf2[33],kata[33];
char *pch;
int test=0;
int naik;
int masuk_aja=0;
/*Inisialisasi variabel untuk RTC*/
int detik = 0;
int menit = 0;
int jam = 0;
int hari = 0;
int tanggal = 0;
int bulan = 0;
int tahun = 0;
/*Inisialisasi untuk LED di kamar*/
int LM[5]=-1,2,5,7;
int LH[5]=-1,3,6,8;
/*Inisialisasi waktu check in dan check out*/
int room;
String check_in[10]="-1","0","0","0";
String check_out[10]="-1","0","0","0";
String waktu_rtc;
String jam_rtc;
void setup()
Wire.begin();
Serial.begin(9600);
/*Pengaturan untuk LED di kamar*/
for(i=1;i<=3;i++)
pinMode(LM[i],OUTPUT);
pinMode(LH[i],OUTPUT);
for (i=1;i<=3;i++)
didalam[i]=EEPROM.read(i);
if (didalam[i]==0)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L4
digitalWrite(LM[i],0);
digitalWrite(LH[i],1);
else
digitalWrite(LM[i],1);
digitalWrite(LH[i],0);
for (i=1;i<=3;i++)
eeprom_read_string(i*20, buf, BUFSIZE);
check_in[i]=String(buf);
eeprom_read_string(i*100, buf, BUFSIZE);
check_out[i]=String(buf);
Ethernet.begin(mac, ip);
delay(1000);
server.begin();
tuliswaktu();
ledOn(1);
delay(500);
ledOn(0);
/*Program Utama*/
void loop()
/*Penerimaan Data Dari Server*/
EthernetClient client = server.available();
if(client)
boolean currentLineIsBlank = true;
boolean currentLineIsGet = true;
int tCount = 0;
char tBuf[64];
while (client.connected())
while(client.available())
char c = client.read();
if(currentLineIsGet && tCount < 85)
tBuf[tCount] = c;
tCount++;
if (c == '\n' && currentLineIsBlank)
while(client.available()) Serial.write(client.read());
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L5
pch = strtok(tBuf,"?"); //membagi string menjadi beberapa bagian yg dibatasi oleh
karakter yg ditentukan
while(pch != NULL)
//strncmp membandingkan 2 string sejumlah n karakter
if(strncmp(pch,"r=",2) == 0) //menentukan kamar
room = atoi(pch+2);
if(strncmp(pch,"x=",2) == 0) //menentukan check_in
check_in[room] = String(pch);
check_in[room] = check_in[room].substring(2);
check_in[room].toCharArray(myStringChar, BUFSIZE);
strcpy(buf, myStringChar);
eeprom_write_string(room*20, buf);
if(strncmp(pch,"y=",2) == 0) //menentukan check_out
check_out[room] = String(pch);
check_out[room] = check_out[room].substring(2);
check_out[room].toCharArray(myStringChar, BUFSIZE);
strcpy(buf, myStringChar);
eeprom_write_string(room*100, buf);
pch = strtok(NULL,"& ");
client.print(F("HTTP/1.0 200 OK\r\nContent-Type: text/html\r\n\r\n<html>"));
client.println(F("<head>"));
client.println(F("</head>"));
client.println(F("<body>"));
client.println(F("<center>Data Telah Berhasil Disimpan<br>"));
client.println(F("</body></html>"));
client.stop();
else if (c == '\n')
currentLineIsBlank = true;
currentLineIsGet = false;
else if (c != '\r')
currentLineIsBlank = false;
client.stop();
delay(1);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L6
else
Wire.beginTransmission(0x50);
Wire.write(1);
Wire.write(1);
Wire.endTransmission();
if(digitalRead(TAG3)==0)
readID(TAG3);
ubah_nama();
RTC();
syarat(3);
kirimweb(yang_masuk);
yang_masuk="";
waktu_rtc=0;
jam_rtc=0;
id_pengguna=0;
panjang=0;
perintah=0;
keadaan=0;
data[0]=0;data[1]=0;data[2]=0;data[3]=0;data[4]=0;
byte type=0;
while(digitalRead(TAG3)==0)
if(digitalRead(TAG2)==0)
readID(TAG2);
ubah_nama();
RTC();
syarat(2);
kirimweb(yang_masuk);
yang_masuk="";
waktu_rtc=0;
jam_rtc=0;
id_pengguna=0;
panjang=0;
perintah=0;
keadaan=0;
data[0]=0;data[1]=0;data[2]=0;data[3]=0;data[4]=0;
byte type=0;
while(digitalRead(TAG2)==0)
if(digitalRead(TAG1)==0)
readID(TAG1);
ubah_nama();
RTC();
syarat(1);
kirimweb(yang_masuk);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L7
yang_masuk="";
waktu_rtc=0;
jam_rtc=0;
id_pengguna=0;
panjang=0;
perintah=0;
keadaan=0;
data[0]=0;data[1]=0;data[2]=0;data[3]=0;data[4]=0;
byte type=0;
while(digitalRead(TAG1)==0)
/*Perintah untuk mengatur LED pada RFID*/
void ledOn(boolean on)
// Send LED command
Wire.beginTransmission(0x50);
Wire.write(2);
Wire.write(0x40);
Wire.write(on);
Wire.endTransmission();
/*Subrutin Baca Data RFID Card*/
int readID(boolean TAG)
while(digitalRead(TAG)==0)
Wire.requestFrom(0x50, 11);
if(Wire.available())
panjang = Wire.read();
perintah = Wire.read();
keadaan = Wire.read();
panjang -= 2;
panjang2 = panjang-1;
while(--panjang)
data[panjang] = Wire.read();
byte type = Wire.read();
return 1;
Wire.endTransmission();
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L8
/*Subrutin Penggantian Nama*/
void ubah_nama()
if((data[4]==Penyewa1[4])&&(data[3]==Penyewa1[3])&&(data[2]==Penyewa1[2])&&(da
ta[1]==Penyewa1[1]))
yang_masuk="Penyewa+1";
id_pengguna=1;
else
if((data[4]==Penyewa2[4])&&(data[3]==Penyewa2[3])&&(data[2]==Penyewa2[2])&&(da
ta[1]==Penyewa2[1]))
yang_masuk="Penyewa+2";
id_pengguna=2;
else
if((data[4]==Penyewa3[4])&&(data[3]==Penyewa3[3])&&(data[2]==Penyewa3[2])&&(da
ta[1]==Penyewa3[1]))
yang_masuk="Penyewa+3";
id_pengguna=3;
else
if((data[4]==OB[4])&&(data[3]==OB[3])&&(data[2]==OB[2])&&(data[1]==OB[1]))
yang_masuk="OB";
id_pengguna=4;
else
if((data[4]==receptionist[4])&&(data[3]==receptionist[3])&&(data[2]==receptionist[2])&
&(data[1]==receptionist[1]))
yang_masuk="Resepsionis";
id_pengguna=5;
else
yang_masuk="Tidak Dikenal";
/*Subrutin untuk menulis waktu pada RTC*/
void tulis_rtc(unsigned char alamat, unsigned char isi)
Wire.beginTransmission(0x68);
Wire.write(alamat);
Wire.write(isi);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L9
Wire.endTransmission();
/*Subrutin untuk mengatur waktu pada RTC*/
void tuliswaktu()
tulis_rtc(0x06,0x15); //tahun
tulis_rtc(0x05,0x09); //bulan
tulis_rtc(0x04,0x25); //tanggal
tulis_rtc(0x03,0x06); //hari
tulis_rtc(0x02,0x20); //jam
tulis_rtc(0x01,0x08); //menit
tulis_rtc(0x00,0x00); //detik
/*Subrutin Pembacaaan Waktu RTC*/
void RTC()
Wire.beginTransmission(0x68); //memulai transmisi dengan mengirim reg 0x60
Wire.write(byte(0));
Wire.endTransmission(); //mengakhiri transmisi
Wire.requestFrom(0x68,9); //meminta data dari RTC
detik = (Wire.read());
menit = (Wire.read());
jam = (Wire.read());
hari = (Wire.read());
tanggal = (Wire.read());
bulan = (Wire.read());
tahun = (Wire.read());
Wire.endTransmission();
jam_rtc=tambah_nol(jam,0)+"+"+tambah_nol(menit,0);
waktu_rtc=tambah_nol(tahun,0)+"+"+tambah_nol(bulan,0)+"+"+tambah_nol(tanggal,0)+"
+"+tambah_nol(jam,0)+"+"+tambah_nol(menit,0);
/*Subrutin pengiriman data ke web*/
void kirimweb(String id)
if(klien.connect(pusat,80)==1)
klien.print(F("POST /RFID/ambil.php?"));
klien.print(F("pengguna="));
klien.print(id);
klien.print(F("&&"));
klien.print(F("hari="));
klien.print(hari,HEX);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L10
klien.print(F("&&"));
klien.print(F("tanggal="));
klien.print(tanggal,HEX);
klien.print(F("/"));
klien.print(bulan,HEX);
klien.print(F("/"));
klien.print(tahun,HEX);
klien.print(F("&&"));
klien.print(F("jam="));
klien.print(jam,HEX);
klien.print(F(":"));
klien.print(menit,HEX);
klien.print(F(":"));
klien.print(detik,HEX);
klien.print(F("&&"));
klien.print(F("kamar="));
klien.print(kata);
klien.println(F(" HTTP/1.1"));
klien.print(F("Host: "));
klien.println(pusat);
klien.println(F("Connection: close"));
klien.println();
klien.println();
klien.stop();
delay(100);
delay(500);
/*Subrutin Pengaturan syarat akses kamar*/
void syarat (int ruang)
if (didalam[ruang]==0)
if (id_pengguna==cocok_id_pengguna[ruang])
if ((waktu_rtc>=check_in[ruang])&&(waktu_rtc<check_out[ruang]))
sprintf(kata,"Memasuki+Kamar+%d",ruang);
digitalWrite(LM[ruang],HIGH);
digitalWrite(LH[ruang],LOW);
didalam[ruang]=cocok_id_pengguna[ruang];
EEPROM.write(ruang,didalam[ruang]);
else
sprintf(kata,"Mencoba+Memasuki+Kamar+%d",ruang);
else if (id_pengguna==cocok_id_pengguna[5])
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L11
for(naik=1;naik<=3;naik++)
if(didalam[naik]==cocok_id_pengguna[5])
masuk_aja=1;
if(masuk_aja==1)
sprintf(kata,"Mencoba+Memasuki+Kamar+%d",ruang);masuk_aja=0;
else
sprintf(kata,"Memasuki+Kamar+%d",ruang);
digitalWrite(LM[ruang],HIGH);
digitalWrite(LH[ruang],LOW);
didalam[ruang]=cocok_id_pengguna[5];
EEPROM.write(ruang,didalam[ruang]);
masuk_aja=0;
else if (id_pengguna==cocok_id_pengguna[4])
for(naik=1;naik<=3;naik++)
if(didalam[naik]==cocok_id_pengguna[4])
masuk_aja=1;
if(masuk_aja==1)
sprintf(kata,"Mencoba+Memasuki+Kamar+%d",ruang);masuk_aja=0;
else
if ((jam_rtc>=waktu_OB_L)&&(jam_rtc<waktu_OB_H))
sprintf(kata,"Memasuki+Kamar+%d",ruang);
digitalWrite(LM[ruang],HIGH);
digitalWrite(LH[ruang],LOW);
didalam[ruang]=cocok_id_pengguna[4];
EEPROM.write(ruang,didalam[ruang]);
else
sprintf(kata,"Mencoba+Memasuki+Kamar+%d",ruang);
else
sprintf(kata,"Mencoba+Memasuki+Kamar+%d",ruang);
else if (didalam[ruang]==id_pengguna)
sprintf(kata,"Keluar+dari+Kamar+%d",ruang);
digitalWrite(LM[ruang],LOW);
digitalWrite(LH[ruang],HIGH);
didalam[ruang]=0;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L12
EEPROM.write(ruang,didalam[ruang]);
else
sprintf(kata,"Mencoba+Memasuki+Kamar+%d",ruang);
/*Subrutin untuk menambah digit '0'*/
String tambah_nol(int angka, String hasil)
if (angka<10)
hasil=String("0")+String(angka,HEX);
else
hasil=String(angka,HEX);
return hasil;
/*Subrutin Penyimpanan Data ke EEPROM*/
boolean eeprom_is_addr_ok(int addr)
return ((addr >= EEPROM_MIN_ADDR) && (addr <= EEPROM_MAX_ADDR));
boolean eeprom_write_bytes(int startAddr, const byte* array, int numBytes)
int i;
if (!eeprom_is_addr_ok(startAddr) || !eeprom_is_addr_ok(startAddr + numBytes))
return false;
for (i = 0; i < numBytes; i++)
EEPROM.write(startAddr + i, array[i]);
return true;
boolean eeprom_write_string(int addr, const char* string)
int numBytes; // jumlah byte yang akan ditulis
numBytes = strlen(string) + 1;
return eeprom_write_bytes(addr, (const byte*)string, numBytes);
/*Subrutin Pembacaan Data ke EEPROM*/
boolean eeprom_read_string(int addr, char* buffer, int bufSize)
byte ch; // variabel pembantu membaca byte dari eeprom
int bytesRead; // jumlah byte yang akan dibaca
if (!eeprom_is_addr_ok(addr))
return false;
if (bufSize == 0)
return false;
if (bufSize == 1)
buffer[0] = 0;
return true;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L13
bytesRead = 0;
ch = EEPROM.read(addr + bytesRead);
buffer[bytesRead] = ch;
bytesRead++;
while ( (ch != 0x00) && (bytesRead < bufSize) && ((addr + bytesRead) <=
EEPROM_MAX_ADDR) )
ch = EEPROM.read(addr + bytesRead);
buffer[bytesRead] = ch;
bytesRead++;
if ((ch != 0x00) && (bytesRead >= 1))
buffer[bytesRead - 1] = 0;
return true;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L14
LAMPIRAN 2
LISTING PROGRAM
HALAMAN LOGIN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L15
index.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>LOGIN!!!</title>
<style type="text/css">
<!--
.welcome
font-family: "Comic Sans MS", cursive;
font-size: xx-large;
color: #FFF;
background-image: url(images/background.gif);
background-repeat: no-repeat;
.foot
font-family: "Comic Sans MS", cursive;
font-size: 16px;
color: #000;
.transparan
background:rgba(11,106,203,0.4);
font-family: "Comic Sans MS", cursive;
font-size: 16px;
color: #000;
.transparan2
background:rgba(11,106,203,0.8);
font-family: "Comic Sans MS", cursive;
font-size: 16px;
display: compact;
color: #000;
.judul
font-family: "Bauhaus 93";
font-size: 40px;
color: #000;
display: compact;
font-style: normal;
line-height: normal;
.tabel
background-image: url(images/background.gif);
border-top-color: #000;
border-right-color: #000;
border-bottom-color: #000;
border-left-color: #000;
.user
font-family: "Comic Sans MS", cursive;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L16
font-size: 18px;
color: #000;
body
background-color: #FFF;
background-image: url(images/batan2.gif);
background-repeat: repeat;
-->
</style>
<link rel="shortcut icon" href="images/favicon(1).ico"/>
</head>
<body>
<table width="1044" height="200" border="0" align="center" class="transparan"
style="border: 4px outset #3d85c6; border-radius:15px">
<tr>
<td width="750"><p align="center" class="judul">SELAMAT DATANG</p>
<p align="left" class="foot"> </p></td>
<td width="284">
<form id="form1" name="form1" method="post" action="cek_login.php">
<div align="right">
<table cellspacing="5" cellpadding="5" >
<tr>
<td class="user">Username</td>
<td>:</td>
<td><label>
<input type="text" name="username" id="username" />
</label></td>
</tr>
<tr>
<td class="user">Password</td>
<td>:</td>
<td><label>
<input type="password" name="password" id="password" />
</label></td>
</tr>
<tr align="right">
<td colspan="3"><label>
<input type="submit" name="login" id="login" value="Login" />
</label></td>
</tr>
</table>
</div></form>
</td>
</tr>
</table>
</body>
</html>
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L17
cek_login.php
<?php
// pemanggilan file koneksi
include "koneksi.php";
// pembuatan variabel pada penginputan username dan password
$username = $_POST['username'];
$pass = $_POST['password'];
// cek identitas IP Address
$user_ip = '-';
if (!empty($_SERVER['HTTP_CLIENT_IP']))
$user_ip=$_SERVER['HTTP_CLIENT_IP'];
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
$user_ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
else
$user_ip=$_SERVER['REMOTE_ADDR'];
function getUserIP()
$client = @$_SERVER['HTTP_CLIENT_IP'];
$forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
$remote = $_SERVER['REMOTE_ADDR'];
if(filter_var($client, FILTER_VALIDATE_IP))
$ip = $client;
elseif(filter_var($forward, FILTER_VALIDATE_IP))
$ip = $forward;
else
$ip = $remote;
return $ip;
$user_ip = getUserIP();
// Pengecekan user id dan password dengan yang ada di database
$login=mysql_query("SELECT * FROM hak_akses WHERE username='$username'
AND password='$pass'");
$ketemu = mysql_num_rows($login);
$r=mysql_fetch_array($login);
if(($r[0]==$username)&&($r[1]==$pass))
if($r[2]!=$user_ip&&$r[2]!=0)
echo '<script language="javascript">alert("Anda Sudah Login Di Komputer
Lain!!")</script>';
echo '<script language="javascript">window.location = "index.php"</script>';
else if ($r[2]==0)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L18
mysql_query("UPDATE hak_akses SET user_ip='$user_ip' WHERE
username='$username' AND password='$pass'");
session_start ();
$_SESSION[username] = $r[username];
$_SESSION[password] = $r[password];
$_SESSION[expire] = time() + (30 * 60) ;
$_SESSION[user_ip]= $user_ip;
if(($r[0]=="admin")||($r[0]=="manager"))
header('location:tampil.php');
else if ($r[0]=="resepsionis")
header('location:pendaftaran.php');
else if($r[2]==$user_ip)
session_start ();
$_SESSION[username] = $r[username];
$_SESSION[password] = $r[password];
$_SESSION[last_access] = time();
$_SESSION[leveluser]= $r[level];
$_SESSION[user_ip]= $user_ip;
if(($r[0]=="admin")||($r[0]=="manager"))
header('location:tampil.php');
else if ($r[0]=="resepsionis")
header('location:pendaftaran.php');
else
mysql_query("DELETE FROM pengunjung WHERE identitas='$user_ip'");
echo "<center>LOGIN GAGAL <br>
Username atau Password Anda Tidak benar
Atau Account Anda Sedang Diblokir<br>
";
echo "<a href='index.php'>Ulangi Lagi</a>";
?>
koneksi.php
<?php
$server= "localhost";
$username = "root";
$password = "";
$database = "rfid";
mysql_connect($server,$username,$password) or die ("Koneksi Gagal");
mysql_select_db($database) or die ("Database Tidak Bisa Di Buka " );
?>
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L19
LAMPIRAN 3
LISTING PROGRAM
HALAMAN PENDAFTARAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L20
pendaftaran.php
<?php
date_default_timezone_set('Asia/Jakarta');
$tanggal_server=date("j");
$bulan_server=date("n");
$tahun_server=date("Y");
$jam_server=date("G");
$menit_server=date("i");
session_start();
if (!isset($_SESSION['username']))
echo '<script language="javascript">alert("Anda Belum Login.. Silahkan Login
Dahulu..!!")</script>';
echo '<script language="javascript">window.location = "index.php"</script>';
if (($_SESSION['username']=="admin")||($_SESSION['username']=="manager"))
echo '<script language="javascript">alert("Anda Tidak Memiliki Hak Akses Ke
Sini")</script>';
echo '<script language="javascript">window.location = "tampil.php"</script>';
else
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Reservasi Kamar</title>
<script type="text/javascript">
function tambah_nol (nilai)
if (nilai<10)
nilai="0"+nilai;
return nilai;
function validasi_input(form)
var months = ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus',
'September', 'Oktober', 'November', 'Desember'];
var date = new Date();
var day = tambah_nol(date.getDate());
var month = tambah_nol(date.getMonth()+1);
var yy = tambah_nol(date.getYear());
var year = (yy < 1000) ? yy + 1900 : yy;
var hour = tambah_nol(date.getHours());
var minute = tambah_nol(date.getMinutes());
var waktu_server =year+"+"+month+"+"+day;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L21
var check_in
=tambah_nol(tahun_in.value)+"+"+tambah_nol(bulan_in.value)+"+"+tambah_nol(tanggal
_in.value);
var check_out
=tambah_nol(tahun_out.value)+"+"+tambah_nol(bulan_out.value)+"+"+tambah_nol(tang
gal_out.value);
if (nama.value=="")
alert("Nama Harus Diisi");
nama.focus();
return (false);
else if (kamar.value=="")
alert("Silakan pilih kamar");
kamar.focus();
return (false);
else if (tanggal_in.value=="")
alert("Tanggal Check In Harus Diisi");
tanggal_in.focus();
return (false);
else if (bulan_in.value=="")
alert("Bulan Check In Harus Diisi");
bulan_in.focus();
return (false);
else if (tahun_in.value=="")
alert("Tahun Check In Harus Diisi");
tahun_in.focus();
return (false);
else if (jam_in.value=="")
alert("Jam Check In Harus Diisi");
jam_in.focus();
return (false);
else if (menit_in.value=="")
alert("Menit Check In Harus Diisi");
menit_in.focus();
return (false);
else if (tanggal_out.value=="")
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L22
alert("Tanggal Check Out Harus Diisi");
tanggal_out.focus();
return (false);
else if (bulan_out.value=="")
alert("Bulan Check Out Harus Diisi");
bulan_out.focus();
return (false);
else if (tahun_out.value=="")
alert("Tahun Check Out Harus Diisi");
tahun_out.focus();
return (false);
else if (jam_out.value=="")
alert("Jam Check Out Harus Diisi");
jam_out.focus();
return (false);
else if (menit_out.value=="")
alert("Menit Check Out Harus Diisi");
menit_out.focus();
return (false);
if (check_in<waktu_server)
alert("Waktu Check In Tidak Valid");
tanggal_in.focus();
return (false);
if (check_out<check_in)
alert("Waktu Check Out Tidak Valid");
tanggal_out.focus();
return (false);
return (true);
</script>
</head>
<body>
<form id="form1" name="form1" method="get" onsubmit="return validasi_input(form1)"
action="lihatdata9.php">
<table width="718" border="1" align="center">
<tr>
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L23
<th colspan="3" scope="row">PENDAFTARAN KAMAR HOTEL</th>
</tr>
<tr>
<th width="145" scope="row"><div align="left">NAMA</div></th>
<td width="26"><div align="center">:</div></td>
<td width="525"><div align="left"><label>
<input type="text" name="nama" id="nama" size="75"/>
</label></div></td>
</tr>
<tr>
<th scope="row"><div align="left">KAMAR</div></th>
<td><div align="center">:</div></td>
<td><div align="left"><select name="kamar" id="kamar">
<option value="" selected="selected">--</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</div></td>
</tr>
<tr>
<th scope="row"><div align="left">CHECK IN</div></th>
<td><div align="center">:</div></td>
<td><div align="left">
<select name="tanggal_in" id="tanggal_in">
<option value="">(tgl)</option>
<?php
for($tanggal_in=1;$tanggal_in<=31;$tanggal_in++)
echo "<option value=$tanggal_in>$tanggal_in</option>";
?>
</select>
<select name="bulan_in" id="bulan_in">
<option value="">(bulan)</option>
<option value="1">Januari</option>
<option value="2">Februari</option>
<option value="3">Maret</option>
<option value="4">April</option>
<option value="5">Mei</option>
<option value="6">Juni</option>
<option value="7">Juli</option>
<option value="8">Agustus</option>
<option value="9">September</option>
<option value="10">Oktober</option>
<option value="11">November</option>
<option value="12">Desember</option>
</select>
<select name="tahun_in" id="tahun_in">
<option value="">(tahun)</option>
<?php
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L24
for($tahun_in=2015;$tahun_in<=2020;$tahun_in++)
echo "<option value=$tahun_in>$tahun_in</option>";
?>
</select>
<select name="jam_in" id="jam_in">
<option value="13">13</option>
</select>
:
<select name="menit_in" id="menit_in">
<option value="0">00</option>
</select>
</div></td>
</tr>
<tr>
<th scope="row"><div align="left">CHECK OUT</div></th>
<td><div align="center">:</div></td>
<td><div align="left">
<select name="tanggal_out" id="tanggal_out">
<option value="">(tgl)</option>
<?php
for($tanggal_out=1;$tanggal_out<=31;$tanggal_out++)
echo "<option value=$tanggal_out>$tanggal_out</option>";
?>
</select>
<select name="bulan_out" id="bulan_out">
<option value="">(bulan)</option>
<option value="1">Januari</option>
<option value="2">Februari</option>
<option value="3">Maret</option>
<option value="4">April</option>
<option value="5">Mei</option>
<option value="6">Juni</option>
<option value="7">Juli</option>
<option value="8">Agustus</option>
<option value="9">September</option>
<option value="10">Oktober</option>
<option value="11">November</option>
<option value="12">Desember</option>
</select>
<select name="tahun_out" id="tahun_out">
<option value="">(tahun)</option>
<?php
for($tahun_out=2015;$tahun_out<=2020;$tahun_out++)
echo "<option value=$tahun_out>$tahun_out</option>";
?>
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L25
</select>
<select name="jam_out" id="jam_out">
<option value="12">12</option>
</select>
:
<select name="menit_out" id="menit_out">
<option value="0">00</option>
</select>
</div></td>
</tr>
</table>
<div align="center">
<table width="508" border="0">
<tr>
<th scope="row"><div align="right">
<input type="submit" name="simpan" id="simpan" value="Simpan" />
</div>
</label></th>
</tr>
</table>
</div>
<p><center><a href="logout.php">Logout</a></center></p>
</form>
</body>
</html>
<?php ?>
lihatdata9.php
<?php
// pemanggilan file koneksi
include "koneksi.php";
$i=1;
$baris=1;
$check_in_before=0;
$check_in_now=0;
$check_out_before=0;
$check_out_now=0;
$sebelum_satu=0;
function tambah_nol ($nilai)
if ($nilai<10)
$nilai="0".$nilai;
return $nilai;
//baca waktu server
date_default_timezone_set('Asia/Jakarta');
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L26
$tanggal_server=tambah_nol(date("j"));
$bulan_server=tambah_nol(date("n"));
$tahun_server=tambah_nol(date("Y")-2000);
$jam_server=tambah_nol(date("G"));
$menit_server=tambah_nol(date("i"));
$waktu_server=$tahun_server."-".$bulan_server."-".$tanggal_server."
".$jam_server.":".$menit_server;
//ambil waktu check_in
$nama =$_GET['nama'];
$room =$_GET['kamar'];
$tanggal_in =tambah_nol($_GET['tanggal_in']);
$bulan_in =tambah_nol($_GET['bulan_in']);
$tahun_in =$_GET['tahun_in'];
$tahun_in =tambah_nol($_GET['tahun_in']-2000);
$jam_in =tambah_nol($_GET['jam_in']);
$menit_in =tambah_nol($_GET['menit_in']);
$check_in =$tahun_in."-".$bulan_in."-".$tanggal_in." ".$jam_in.":".$menit_in;
$kirim_check_in=$tahun_in."+".$bulan_in."+".$tanggal_in."+".$jam_in."+".$menit_in;
//ambil waktu check_out
$tanggal_out=tambah_nol($_GET['tanggal_out']);
$bulan_out =tambah_nol($_GET['bulan_out']);
$tahun_out =$_GET['tahun_out'];
$tahun_out =tambah_nol($_GET['tahun_out']-2000);
$jam_out =tambah_nol($_GET['jam_out']);
$menit_out =tambah_nol($_GET['menit_out']);
$check_out =$tahun_out."-".$bulan_out."-".$tanggal_out."
".$jam_out.":".$menit_out;
$kirim_check_out=$tahun_out."+".$bulan_out."+".$tanggal_out."+".$jam_out."+".$menit
_out;
// Pengecekan tersedia tidaknya pemesanan kamar
$lihat=mysql_query("SELECT * FROM daftar2 ORDER BY nomor DESC LIMIT
0,1");
$kolom=mysql_fetch_array($lihat);
$nomor=$kolom[8]+1;
$lihat=mysql_query("SELECT * FROM daftar2 WHERE kamar='$room' ORDER BY
antrian DESC LIMIT 0,1");
$kolom=mysql_fetch_array($lihat);
$antrian_max=$kolom[4];
if ($antrian_max=="")
mysql_query("INSERT INTO daftar2 SET nama='$nama', kamar='$room',
check_in='$check_in', check_out='$check_out', kirim_in='$kirim_check_in',
kirim_out='$kirim_check_out', antrian='1', status='1', nomor='$nomor'");
$url='http://192.168.1.15/?r='.$room.'&&x='.$kirim_check_in.'&&y='.$kirim_check_out;
/*echo '<script language="javascript">alert("Data Telah Disimpan")</script>';
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L27
echo '<script language="javascript">window.location =
"pendaftaran.php"</script>';*/
//echo "$kirim_check_in<br>";
//echo "$kirim_check_out<br>";
//header('Refresh:5 ; location:'.$url);
header('location:'.$url);
else
for($baris=1;$baris<=$antrian_max;$baris++)
$lihat=mysql_query("SELECT * FROM daftar2 WHERE kamar='$room' &&
antrian='$baris'");
$kolom=mysql_fetch_array($lihat);
$check_in_now=$kolom[2];
$check_out_now=$kolom[3];
if (($check_in>$check_out_before)&&($check_in<$check_in_now))
if(($baris==1)&&($kolom[5]==1))
$sebelum_satu=1;
mysql_query("UPDATE daftar2 SET status='' WHERE
kamar='$room' && status='1'");
$benar=1;
$baris=$antrian_max+1;
else if
(($baris==$antrian_max)&&($check_in>$check_out_before)&&($check_in>$
check_out_now))
$benar=1;
else
$benar=0;
//if(($benar==0)&&($baris==$antrian_max)&&($antrian_max>1))
//$benar=1;
$check_in_before=$check_in_now;
$check_out_before=$check_out_now;
if ($sebelum_satu==1)
mysql_query("INSERT INTO daftar2 SET nama='$nama', kamar='$room',
check_in='$check_in', check_out='$check_out', kirim_in='$kirim_check_in',
kirim_out='$kirim_check_out', status='1', nomor='$nomor'");
$ambil=mysql_query("SELECT * FROM daftar2 WHERE kamar='$room' ORDER
BY check_in ASC");
while($cek=mysql_fetch_array($ambil))
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L28
$antri=$cek[2];
mysql_query("UPDATE daftar2 SET antrian='$i' WHERE kamar='$room'
&& check_in='$antri'");
//echo "$baris[2] $baris[4]<br>";
$i++;
$url='http://192.168.1.15/?r='.$room.'&&x='.$kirim_check_in.'&&y='.$kirim_check_out;
//echo "$kirim_check_in<br>";
//echo "$kirim_check_out<br>";
//header('Refresh:5 ; location=$url');
header('location:'.$url);
/*echo '<script language="javascript">alert("Data Telah Disimpan")</script>';
echo '<script language="javascript">window.location =
"pendaftaran.php"</script>'; */
else if ($benar==1)
mysql_query("INSERT INTO daftar2 SET nama='$nama', kamar='$room',
check_in='$check_in', check_out='$check_out', kirim_in='$kirim_check_in',
kirim_out='$kirim_check_out', nomor='$nomor'");
$ambil=mysql_query("SELECT * FROM daftar2 WHERE kamar='$room' ORDER
BY check_in ASC");
while($cek=mysql_fetch_array($ambil))
$antri=$cek[2];
mysql_query("UPDATE daftar2 SET antrian='$i' WHERE kamar='$room'
&& check_in='$antri'");
//echo "$baris[2] $baris[4]<br>";
$i++;
echo '<script language="javascript">alert("Data Telah Disimpan")</script>';
echo '<script language="javascript">window.location = "pendaftaran.php"</script>';
else
echo '<script language="javascript">alert("Kamar '.$room.' sudah
digunakan/dipesan")</script>';
echo '<script language="javascript">window.location = "pendaftaran.php"</script>';
?>
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L29
LAMPIRAN 4
LISTING PROGRAM
HALAMAN PENAMPIL
PEREKAMAN DATA AKSES
KAMAR HOTEL
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L30
ambil.php
<?php
session_start();
include "koneksi.php";
//$link=Conection();
$name=$_GET['pengguna'];
$hari=$_GET['hari'];
$tanggal=$_GET['tanggal'];
$jam=$_GET['jam'];
$kamar=$_GET['kamar'];
$lihat=mysql_query("SELECT * FROM masukan ORDER BY nomor DESC LIMIT
0,1");
$kolom=mysql_fetch_array($lihat);
$nomor=$kolom[5]+1;
$Sql=mysql_query("INSERT INTO masukan SET pengguna='$name', hari='$hari',
tanggal='$tanggal', jam='$jam', kamar='$kamar', nomor='$nomor'");
header("Location: tampil.php");
?>
tampil.php
<html>
<?php
session_start();
if (!isset($_SESSION['username']))
echo '<script language="javascript">alert("Anda Belum Login.. Silahkan Login
Dahulu..!!")</script>';
echo '<script language="javascript">window.location = "index.php"</script>';
else
?>
<head><title>Perekaman Data Akses Kamar Hotel</title>
<style type="text/css">
<!--
.badan
font-family: "Comic Sans MS", cursive;
font-size: 24px;
.logout
font-family: "Comic Sans MS", cursive;
font-size: 12px;
font-style: normal;
line-height: normal;
text-decoration: underline;
-->
</style>
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L31
</head>
<body class="badan">
<center>
<p>PEREKAMAN DATA AKSES KAMAR HOTEL</p>
<p class="logout"><a href="logout.php">logout</a></p>
</center>
<table border=1 align="center" cellpadding=2 cellspacing=2>
<tr>
<th>No</th><th>Identitas</th><th>Hari dan Tanggal</th><th>Waktu</th><th>Kamar
Yang Dimasuki</th>
</tr>
<?php
header ("Refresh:2");
include "koneksi.php";
$no=1;
$ambil="SELECT * FROM masukan ORDER BY tanggal ASC,jam ASC";
$query=mysql_query($ambil);
while($row=mysql_fetch_array($query))
$hari=$row[1];
$kamar=$row[4];
switch($hari)
case 1: $day="Minggu"; break;
case 2: $day="Senin"; break;
case 3: $day="Selasa"; break;
case 4: $day="Rabu"; break;
case 5: $day="Kamis"; break;
case 6: $day="Jumat"; break;
case 7: $day="Sabtu"; break;
echo "<tr><td>$no</td><td>$row[0]</td><td>$day,
$row[2]</td><td>$row[3]</td><td>$row[4]</td></tr>";
$no++;
?>
</table>
</body>
</html>
<?php ?>
logout.php
<?php
session_start();
include "koneksi.php";
$a=$_SESSION['username'];
$b=$_SESSION['password'];
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L32
mysql_query("UPDATE hak_akses SET ip='0' WHERE username='$a' AND
password='$b'");
unset($_SESSION['username']);
unset($_SESSION['password']);
session_destroy();
header("location:index.php");
?>
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L33
LAMPIRAN 5
LISTING PROGRAM
HALAMAN CHECK OUT
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L34
keluar.php
<?php
date_default_timezone_set('Asia/Jakarta');
$tanggal_server=date("j");
$bulan_server=date("n");
$tahun_server=date("Y");
$jam_server=date("G");
$menit_server=date("i");
session_start();
if (!isset($_SESSION['username']))
echo '<script language="javascript">alert("Anda Belum Login.. Silahkan Login
Dahulu..!!")</script>';
echo '<script language="javascript">window.location = "index.php"</script>';
if (($_SESSION['username']=="admin")||($_SESSION['username']=="manager"))
echo '<script language="javascript">alert("Anda Tidak Memiliki Hak Akses Ke
Sini")</script>';
echo '<script language="javascript">window.location = "tampil.php"</script>';
else
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Halaman Check Out</title>
<style type="text/css">
<!--
.judul
font-family: "Comic Sans MS", cursive;
font-size: 36px;
color: #000;
-->
</style>
</head>
<body>
<p class="judul"><center>Halaman Check Out</center></p>
<table width="722" border="1" align="center" >
<tr>
<th width="26" scope="row">No</th>
<td width="179"><strong>Nama</strong></td>
<td width="70"><strong>Kamar</strong></td>
<td width="146"><strong>Check In</strong></td>
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L35
<td width="146"><strong>Check Out</strong></td>
<td width="115"><strong>Status</strong></td>
</tr>
<?php
header ("Refresh:2");
include "koneksi.php";
$no=1;
$ambil="SELECT * FROM daftar2 ORDER BY kamar, antrian ASC";
$query=mysql_query($ambil);
while($row=mysql_fetch_array($query))
echo "";
echo
"<tr><td>$no</td><td>$row[0]</td><td>$row[1]</td><td>$row[2]</td><td>$row[3]</td
>";
if ($row[5]=="1")
echo "<td><center><a
href='proses_keluar.php?kamar=$row[1]&&status=$row[5]'>Check
Out</a></center></td></tr>";
else
echo "<td> </td></tr>";
$no++;
?>
</table>
</body>
</html>
<?php ?>
proses_keluar.php
<?php
include "koneksi.php";
$kamar=$_GET['kamar'];
$status=$_GET['status'];
$i=1;
//echo "$kamar <br>";
//echo "$status <br>";
$lihat=mysql_query("DELETE FROM daftar2 WHERE kamar='$kamar' AND
status='$status'");
$ambil=mysql_query("SELECT * FROM daftar2 WHERE kamar='$kamar'");
$kolom=mysql_num_rows($ambil);
if ($kolom==0)
$kirim_check_in='00+00+00+00+00';
$kirim_check_out='00+00+00+00+00';
$url='http://192.168.1.15/?r='.$kamar.'&&x='.$kirim_check_in.'&&y='.$kirim_check_out;
header('location:'.$url);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L36
else
$ambil=mysql_query("SELECT * FROM daftar2 WHERE kamar='$kamar' ORDER
BY antrian ASC");
while($kolom=mysql_fetch_array($ambil))
$ubah=$kolom[4]-1;
$i++;
//echo "$ubah";
if($ubah==1)
$status=1;
//echo "$status<br>";
$kirim_check_in=$kolom[6];
$kirim_check_out=$kolom[7];
$url='http://192.168.1.15/?r='.$kamar.'&&x='.$kirim_check_in.'&&y='.$kirim_check_out;
mysql_query("UPDATE daftar2 SET antrian='$ubah', status='$status' WHERE
kamar='$kamar' && antrian='$i'");
header('location:'.$url);
else
$status=0;
//echo "$status<br>";
mysql_query("UPDATE daftar2 SET antrian='$ubah' WHERE kamar='$kamar'
&& antrian='$i'");
?>
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L37
LAMPIRAN 6
HASIL PENGAMBILAN DATA
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L38
Hasil Pengambilan Data
Error
muncul
di sini
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L39
Hasil Pengambilan Data (lanjutan)
Error
muncul
di sini
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L40
Hasil Pengambilan Data (lanjutan)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L41
LAMPIRAN 7
RFID SL018 DATASHEET
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
RFID MODULE
Mifare Reader / Writer
SL018
User Manual
Version 2.0 Nov 2012
StrongLink
L42PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
http://www.stronglink-rfid.com 2
CONTENT
1. MAIN FEATURES ....................................................................................................... 3
2. PINNING INFORMATION ........................................................................................ 4
3. DEVICE OPERATION ................................................................................................ 5
3-1. CLOCK AND DATA TRANSITIONS: ..................................................................... 5 3-2. START CONDITION ................................................................................................ 5 3-3. STOP CONDITION ................................................................................................... 5 3-4. ACKNOWLEDGE ..................................................................................................... 5 3-5. BUSY STATE ............................................................................................................ 6 3-6. DEVICE ADDRESSING ........................................................................................... 6 3-7. WRITE OPERATIONS .............................................................................................. 6 3-8. READ OPERATIONS ............................................................................................... 6
4. COMMAND DESCRIPTION ...................................................................................... 7
4-1. FORMAT .................................................................................................................... 7 4-2. COMMAND OVERVIEW ......................................................................................... 8 4-3. COMMAND LIST ..................................................................................................... 9 4-3-1. Select Mifare card .................................................................................................... 9 4-3-2. Login to a sector ....................................................................................................... 9 4-3-3. Read a data block ..................................................................................................... 9 4-3-4. Write a data block .................................................................................................. 10 4-3-5. Read a value block ................................................................................................. 10 4-3-6. Initialize a value block ........................................................................................... 10 4-3-7. Write master key (KeyA) ....................................................................................... 11 4-3-8. Increment value ...................................................................................................... 11 4-3-9. Decrement value ..................................................................................................... 11 4-3-10. Copy value ............................................................................................................ 12 4-3-11. Read a data page (UltraLight) .............................................................................. 12 4-3-12. Write a data Page (UltraLight) ............................................................................. 12 4-3-13. Control Red Led ................................................................................................... 13 4-3-14. Reset ..................................................................................................................... 13 4-3-15. Get firmware version ............................................................................................ 13
L43PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
http://www.stronglink-rfid.com 3
1. MAIN FEATURES
• Tags supported: Mifare 1k, Mifare 4k, Mifare UltraLight and NFC
NATG203
• Auto detecting tag
• Integrated antenna
• 0 to 400 KHz bit-wide I2C bus communication
• 4.5 to 7.0 VDC supply voltage
• Operating distance: Up to 60 mm, depending on tag
• Storage temperature: -40 ºC ~ +85 ºC
• Operating temperature: -20 ºC ~ +70 ºC
• Dimension: 65 × 45 × 7 mm
• The TagSta pin at low level indicates tag in detective range, and high
level indicating tag out
L44PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
http://www.stronglink-rfid.com 4
2. PINNING INFORMATION
PIN SYMBOL TYPE DESCRIPTION
1 TagSta Output Tag detect signal low level indicating tag in high level indicating tag out
2 SDA Input/Output Serial Data Line 3 SLC Input Serial Clock Line 4 VCC PWR Power Supply 5 GND PWR Ground
L45PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
http://www.stronglink-rfid.com 5
3. DEVICE OPERATION 3-1. CLOCK AND DATA TRANSITIONS: The SDA pin is normally pulled high with an external device. Data on the SDA pin may change only during SCL low time periods. Data changes during SCL high periods will indicate a start or stop condition as defined below.
3-2. START CONDITION A high-to-low transition of SDA with SCL high is a start condition which must precede any other command 3-3. STOP CONDITION A low-to-high transition of SDA with SCL high is a stop condition.
3-4. ACKNOWLEDGE All addresses and data words are serially transmitted to and from the SL018 in 8-bit words. The SL018 sends a zero to acknowledge that it is not busy,and has received each word. This happens during the ninth clock cycle.
L46PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
http://www.stronglink-rfid.com 6
3-5. BUSY STATE When the SL018 has received command, then don’t acknowledge IIC bus until ends with the card communication.
3-6. DEVICE ADDRESSING The SL018 devices require an 8-bit device address word following a start condition to enable the chip for a read or write operation. The device address word consists of 7 bits addressing and 1 bit operation select bit. The first 7 bits are the SL018 addressing, is 1010000 The eighth bit of the device address is the read/write operation select bit. A read operation is initiated if this bit is high and a write operation is initiated if this bit is low.
3-7. WRITE OPERATIONS The host device send a command(refer chapter 4) to SL018 via write operation, then SL018 will carry out the order that receive. Finished time according to different order
3-8. READ OPERATIONS The host device passes to read the operation gets the order carries out the result
L47PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
http://www.stronglink-rfid.com 7
4. COMMAND DESCRIPTION 4-1. FORMAT Host Write Command to SL018: Address Len Command Data Address: 1 byte, 0xA0 Len: 1 byte, indicating the bytes number from Command code to the end of Data Command: 1 byte Command code, see Table 3 Data: Variable length depends on the command type Host Read The Result: Address Len Command Status Data Address: 1 byte, 0xA1 Len: 1 byte, indicating the bytes number from Command code to the end of Data Command: 1 byte Command code, see Table 3 Status: 1 byte Command status, see Table 4 Data: Variable length depends on the command type.
L48PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
http://www.stronglink-rfid.com 8
4-2. COMMAND OVERVIEW Table 3 Command Description 0x01 Select Mifare card 0x02 Login to a sector 0x03 Read a data block 0x04 Write a data block 0x05 Read a value block 0x06 Initialize a value block 0x07 Write master key (key A) 0x08 Increment value 0x09 Decrement value 0x0A Copy value 0x10 Read a data page (Ultralight & NTAG203) 0x11 Write a data page (Ultralight & NTAG203) 0x40 Control the red led 0xF0 Get firmware version 0xFF Reset STATUS OVERVIEW Table 4 Status Description 0x00 Operation succeed 0x01 No tag 0x02 Login succeed 0x03 Login fail 0x04 Read fail 0x05 Write fail 0x06 Unable to read after write 0x0A Collision occur 0x0C Load key fail 0x0D Not authenticate 0x0E Not a value block
L49PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
http://www.stronglink-rfid.com 9
4-3. COMMAND LIST
4-3-1. Select Mifare card Host Write: Len 0x01 Host Read: Len 0x01 Status UID Type Status: 0x00: Operation succeed 0x01: No tag 0x0A: Collision occur UID: The uniquely serial number of Mifare card Type: 0x01: Mifare 1k, 4 byte UID 0x02: Mifare 1k, 7 byte UID [1]
0x03: Mifare UltraLight or NATG203[2], 7 byte UID 0x04: Mifare 4k, 4 byte UID 0x05: Mifare 4k, 7 byte UID [1]
0x06: Mifare DesFire, 7 byte UID 0x0A: Other
4-3-2. Login to a sector Host Write: Len 0x02 Sector Type Key Sector: Sector need to login Type: Key type (0xAA: authenticate with KeyA, 0xBB: authenticate with KeyB) Key: Authenticate key, 6 bytes Host Read: Len 0x02 Status Status: 0x02: Login succeed 0x01: No tag 0x03: Login fail 0x0C: Load key fail 4-3-3. Read a data block Host Write: Len 0x03 Block Block: The block number to be read, 1 byte Host Read: Len 0x03 Status Data Status: 0x00: Operation succeed 0x04: Read fail 0x0D: Not authenticate 0x01: No tag Data: Block data returned if operation succeeds, 16 bytes.
L50PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
http://www.stronglink-rfid.com 10
4-3-4. Write a data block Host Write: Len 0x04 Block Data Block: The block number to be written, 1 byte. Data: The data to write, 16 bytes. Host Read: Len 0x04 Status Data Status: 0x00: Operation succeed 0x01: No tag 0x05: Write fail 0x06: Unable to read after write 0x07: Read after write error 0x0D: Not authenticate Data: Block data written if operation succeeds, 16 bytes. 4-3-5. Read a value block Host Write: Len 0x05 Block Block: The block number to be read, 1 byte. Host Read: Len 0x05 Status Value Status: 0x00: Operation succeed 0x01: No tag 0x04: Read fail 0x0D: Not authenticate 0x0E: Not a value block Value: Value returned if the operation succeeds, 4 bytes. 4-3-6. Initialize a value block Host Write: Len 0x06 Block Value Block: The block number to be initialized, 1 byte. Value: The value to be written, 4 bytes. Host Read: Len 0x06 Status Value Status: 0x00: Operation succeed 0x01: No tag 0x05: Write fail 0x06: Unable to read after write 0x07: Read after write error 0x0D: Not authenticate Value: Value written if the operation succeeds, 4 bytes.
L51PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
http://www.stronglink-rfid.com 11
4-3-7. Write master key (KeyA) Host Write: Len 0x07 Sector Key Sector: The sector number to be written, 1 byte. Key: Authentication key, 6 bytes Host Read: Len 0x07 Status Key Status: 0x00: Operation succeed 0x01: No tag 0x05: Write fail 0x0D: Not authenticate Key: Authentication key written if the operation succeeds, 6 bytes. 4-3-8. Increment value Host Write: Len 0x08 Block Value Block: The block number to be increased, 1 byte. Value: The value to be increased by, 4 bytes. Host Read: Len 0x08 Status Value Status: 0x00: Operation succeed 0x01: No tag 0x05: Write fail 0x06: Unable to read after write 0x0D: Not authenticate 0x0E: Not a value block Value: The value after increment if the operation succeeds, 4 bytes 4-3-9. Decrement value Host Write: Len 0x09 Block Value Block: The block number to be decreased, 1 byte Value: The value to be decreased by, 4 bytes Host Read: Len 0x09 Status Value Status: 0x00: Operation succeed 0x01: No tag 0x05: Write fail 0x06: Unable to read after write 0x0D: Not authenticate 0x0E: Not a value block Value: The value after decrement if the operation succeeds, 4 bytes
L52PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
http://www.stronglink-rfid.com 12
4-3-10. Copy value Host Write: Len 0x0A Source Destination Source: The source block copy from, 1 byte Destination: The destination copy to, 1 byte The source and destination must in the same sector Host Read: Len 0x0A Status Value Status: 0x00: Operation succeed 0x01: No tag 0x05: Write fail 0x06: Unable to read after write 0x0D: Not authenticate 0x0E: Not a value block (Source) Value: The value after copy if the operation succeeds, 4 bytes 4-3-11. Read a data page (UltraLight & NTAG203) Host Write: Len 0x10 Page Page: The page number to be read, 1 byte Host Read: Len 0x10 Status Data Status: 0x00: Operation succeed 0x01: No tag 0x04: Read fail Data: Block data returned if operation succeeds, 4 bytes. 4-3-12. Write a data Page (UltraLight & NTAG203) Host Write: Len 0x11 Page Data Page: The page number to be written, 1 byte. Data: The data to write, 4 bytes. Host Read: Len 0x11 Status Data Status: 0x00: Operation succeed 0x01: No tag 0x05: Write fail 0x06: Unable to read after write 0x07: Read after write error Data: page data written if operation succeeds, 4 bytes.
L53PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
http://www.stronglink-rfid.com 13
4-3-13. Control Red Led Host Write: Len 0x40 Code Code: 0 command red led turn off , other red led turn on, 1 byte Host Read: Len 0x40 Status Status: 0x00: Operation succeed 4-3-14. Reset Host Write: Len 0xFF No return 4-3-15. Get firmware version Host Write: Len 0xF0 Host Read: [3] Len 0xF0 Status Data Status: 0x00: Operation succeed Data: firmware version.
L54PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
http://www.stronglink-rfid.com 14
Remark
[1] In order to support 7 byte UID Mifare class, the firmware of SL018 has been updated to Ver2.2 in Mar 2011. And older firmware version (such as Ver1.0, 1.6, 2.0, etc) only supports 4 byte UID. Please refer to NXP Customer Letter UID for detailed information of 4 byte & 7 byte UID of Mifare products.
[2] To support NATG203, the firmware of SL030 has been updated to Ver2.3 in Oct 2012. The older firmware version only supports reading/writing data page address less than 16. [3] One sample of SL018 response Len Command Status Data
(Firmware version) HEX 0B F0 00 53 4C 30 31 38 2D 32 2E 32 ASCII “SL018-2.2”
L55PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L56
LAMPIRAN 8
RTC DS1307 DATASHEET
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1 of 12 100101
FEATURES Real-time clock (RTC) counts seconds,
minutes, hours, date of the month, month, dayof the week, and year with leap-yearcompensation valid up to 2100
56-byte, battery-backed, nonvolatile (NV)RAM for data storage
Two-wire serial interface Programmable squarewave output signal Automatic power-fail detect and switch
circuitry Consumes less than 500nA in battery backup
mode with oscillator running Optional industrial temperature range:
-40°C to +85°C Available in 8-pin DIP or SOIC Underwriters Laboratory (UL) recognized
ORDERING INFORMATIONDS1307 8-Pin DIP (300-mil)DS1307Z 8-Pin SOIC (150-mil)DS1307N 8-Pin DIP (Industrial)DS1307ZN 8-Pin SOIC (Industrial)
PIN ASSIGNMENT
PIN DESCRIPTIONVCC - Primary Power SupplyX1, X2 - 32.768kHz Crystal ConnectionVBAT - +3V Battery InputGND - GroundSDA - Serial DataSCL - Serial ClockSQW/OUT - Square Wave/Output Driver
DESCRIPTIONThe DS1307 Serial Real-Time Clock is a low-power, full binary-coded decimal (BCD) clock/calendarplus 56 bytes of NV SRAM. Address and data are transferred serially via a 2-wire, bi-directional bus.The clock/calendar provides seconds, minutes, hours, day, date, month, and year information. The end ofthe month date is automatically adjusted for months with fewer than 31 days, including corrections forleap year. The clock operates in either the 24-hour or 12-hour format with AM/PM indicator. TheDS1307 has a built-in power sense circuit that detects power failures and automatically switches to thebattery supply.
DS130764 x 8 Serial Real-Time Clock
www.maxim-ic.com
DS1307 8-Pin SOIC (150-mil)
DS1307 8-Pin DIP (300-mil)
X1X2
VBAT
GND
VCC
SQW/OUTSCL
l2
34
87
65 SDA
l
2
34
8
7
65
X1X2
VBAT
GND
VCC
SQW/OUTSCLSDA
L57PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DS1307
2 of 12
OPERATIONThe DS1307 operates as a slave device on the serial bus. Access is obtained by implementing a STARTcondition and providing a device identification code followed by a register address. Subsequent registerscan be accessed sequentially until a STOP condition is executed. When VCC falls below 1.25 x VBAT thedevice terminates an access in progress and resets the device address counter. Inputs to the device willnot be recognized at this time to prevent erroneous data from being written to the device from an out oftolerance system. When VCC falls below VBAT the device switches into a low-current battery backupmode. Upon power-up, the device switches from battery to VCC when VCC is greater than VBAT + 0.2Vand recognizes inputs when VCC is greater than 1.25 x VBAT. The block diagram in Figure 1 shows themain elements of the serial RTC.
DS1307 BLOCK DIAGRAM Figure 1
TYPICAL OPERATING CIRCUIT
L58PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DS1307
3 of 12
SIGNAL DESCRIPTIONSVCC, GND – DC power is provided to the device on these pins. VCC is the +5V input. When 5V isapplied within normal limits, the device is fully accessible and data can be written and read. When a 3Vbattery is connected to the device and VCC is below 1.25 x VBAT, reads and writes are inhibited. However,the timekeeping function continues unaffected by the lower input voltage. As VCC falls below VBAT theRAM and timekeeper are switched over to the external power supply (nominal 3.0V DC) at VBAT.
VBAT – Battery input for any standard 3V lithium cell or other energy source. Battery voltage must beheld between 2.0V and 3.5V for proper operation. The nominal write protect trip point voltage at whichaccess to the RTC and user RAM is denied is set by the internal circuitry as 1.25 x VBAT nominal. Alithium battery with 48mAhr or greater will back up the DS1307 for more than 10 years in the absence ofpower at 25ºC. UL recognized to ensure against reverse charging current when used in conjunction with alithium battery.
See “Conditions of Acceptability” at http://www.maxim-ic.com/TechSupport/QA/ntrl.htm.
SCL (Serial Clock Input) – SCL is used to synchronize data movement on the serial interface.
SDA (Serial Data Input/Output) – SDA is the input/output pin for the 2-wire serial interface. The SDApin is open drain which requires an external pullup resistor.
SQW/OUT (Square Wave/Output Driver) – When enabled, the SQWE bit set to 1, the SQW/OUT pinoutputs one of four square wave frequencies (1Hz, 4kHz, 8kHz, 32kHz). The SQW/OUT pin is opendrain and requires an external pull-up resistor. SQW/OUT will operate with either Vcc or Vbat applied.
X1, X2 – Connections for a standard 32.768kHz quartz crystal. The internal oscillator circuitry isdesigned for operation with a crystal having a specified load capacitance (CL) of 12.5pF.
For more information on crystal selection and crystal layout considerations, please consult ApplicationNote 58, “Crystal Considerations with Dallas Real-Time Clocks.” The DS1307 can also be driven by anexternal 32.768kHz oscillator. In this configuration, the X1 pin is connected to the external oscillatorsignal and the X2 pin is floated.
RECOMMENDED LAYOUT FOR CRYSTAL
L59PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DS1307
4 of 12
CLOCK ACCURACYThe accuracy of the clock is dependent upon the accuracy of the crystal and the accuracy of the matchbetween the capacitive load of the oscillator circuit and the capacitive load for which the crystal wastrimmed. Additional error will be added by crystal frequency drift caused by temperature shifts. Externalcircuit noise coupled into the oscillator circuit may result in the clock running fast. See Application Note58, “Crystal Considerations with Dallas Real-Time Clocks” for detailed information.
Please review Application Note 95, “Interfacing the DS1307 with a 8051-Compatible Microcontroller”for additional information.
RTC AND RAM ADDRESS MAPThe address map for the RTC and RAM registers of the DS1307 is shown in Figure 2. The RTC registersare located in address locations 00h to 07h. The RAM registers are located in address locations 08h to3Fh. During a multi-byte access, when the address pointer reaches 3Fh, the end of RAM space, it wrapsaround to location 00h, the beginning of the clock space.
DS1307 ADDRESS MAP Figure 2
CLOCK AND CALENDARThe time and calendar information is obtained by reading the appropriate register bytes. The RTCregisters are illustrated in Figure 3. The time and calendar are set or initialized by writing the appropriateregister bytes. The contents of the time and calendar registers are in the BCD format. Bit 7 of register 0is the clock halt (CH) bit. When this bit is set to a 1, the oscillator is disabled. When cleared to a 0, theoscillator is enabled.
Please note that the initial power-on state of all registers is not defined. Therefore, it is importantto enable the oscillator (CH bit = 0) during initial configuration.
The DS1307 can be run in either 12-hour or 24-hour mode. Bit 6 of the hours register is defined as the12- or 24-hour mode select bit. When high, the 12-hour mode is selected. In the 12-hour mode, bit 5 isthe AM/PM bit with logic high being PM. In the 24-hour mode, bit 5 is the second 10 hour bit (20-23 hours).
On a 2-wire START, the current time is transferred to a second set of registers. The time information isread from these secondary registers, while the clock may continue to run. This eliminates the need to re-read the registers in case of an update of the main registers during a read.
SECONDS
MINUTES
HOURS
DAY
DATE
MONTH
YEAR
CONTROL
RAM56 x 8
00H
07H08H
3FH
L60PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DS1307
5 of 12
DS1307 TIMEKEEPER REGISTERS Figure 3
CONTROL REGISTERThe DS1307 control register is used to control the operation of the SQW/OUT pin.
BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0OUT 0 0 SQWE 0 0 RS1 RS0
OUT (Output control): This bit controls the output level of the SQW/OUT pin when the square waveoutput is disabled. If SQWE = 0, the logic level on the SQW/OUT pin is 1 if OUT = 1 and is 0 ifOUT = 0.
SQWE (Square Wave Enable): This bit, when set to a logic 1, will enable the oscillator output. Thefrequency of the square wave output depends upon the value of the RS0 and RS1 bits. With the squarewave output set to 1Hz, the clock registers update on the falling edge of the square wave.
RS (Rate Select): These bits control the frequency of the square wave output when the square waveoutput has been enabled. Table 1 lists the square wave frequencies that can be selected with the RS bits.
SQUAREWAVE OUTPUT FREQUENCY Table 1RS1 RS0 SQW OUTPUT FREQUENCY
0 0 1Hz0 1 4.096kHz1 0 8.192kHz1 1 32.768kHz
0
0
0 0 0 0
000
00
00000
L61PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DS1307
6 of 12
2-WIRE SERIAL DATA BUSThe DS1307 supports a bi-directional, 2-wire bus and data transmission protocol. A device that sendsdata onto the bus is defined as a transmitter and a device receiving data as a receiver. The device thatcontrols the message is called a master. The devices that are controlled by the master are referred to asslaves. The bus must be controlled by a master device that generates the serial clock (SCL), controls thebus access, and generates the START and STOP conditions. The DS1307 operates as a slave on the 2-wire bus. A typical bus configuration using this 2-wire protocol is show in Figure 4.
TYPICAL 2-WIRE BUS CONFIGURATION Figure 4
Figures 5, 6, and 7 detail how data is transferred on the 2-wire bus.
Data transfer may be initiated only when the bus is not busy. During data transfer, the data line must remain stable whenever the clock line is HIGH. Changes in
the data line while the clock line is high will be interpreted as control signals.
Accordingly, the following bus conditions have been defined:
Bus not busy: Both data and clock lines remain HIGH.
Start data transfer: A change in the state of the data line, from HIGH to LOW, while the clock is HIGH,defines a START condition.
Stop data transfer: A change in the state of the data line, from LOW to HIGH, while the clock line isHIGH, defines the STOP condition.
Data valid: The state of the data line represents valid data when, after a START condition, the data lineis stable for the duration of the HIGH period of the clock signal. The data on the line must be changedduring the LOW period of the clock signal. There is one clock pulse per bit of data.
Each data transfer is initiated with a START condition and terminated with a STOP condition. Thenumber of data bytes transferred between START and STOP conditions is not limited, and is determinedby the master device. The information is transferred byte-wise and each receiver acknowledges with aninth bit. Within the 2-wire bus specifications a regular mode (100kHz clock rate) and a fast mode(400kHz clock rate) are defined. The DS1307 operates in the regular mode (100kHz) only.
L62PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DS1307
7 of 12
Acknowledge: Each receiving device, when addressed, is obliged to generate an acknowledge after thereception of each byte. The master device must generate an extra clock pulse which is associated withthis acknowledge bit.
A device that acknowledges must pull down the SDA line during the acknowledge clock pulse in such away that the SDA line is stable LOW during the HIGH period of the acknowledge related clock pulse. Ofcourse, setup and hold times must be taken into account. A master must signal an end of data to the slaveby not generating an acknowledge bit on the last byte that has been clocked out of the slave. In this case,the slave must leave the data line HIGH to enable the master to generate the STOP condition.
DATA TRANSFER ON 2-WIRE SERIAL BUS Figure 5
Depending upon the state of the R/ W bit, two types of data transfer are possible:
1. Data transfer from a master transmitter to a slave receiver. The first byte transmitted by themaster is the slave address. Next follows a number of data bytes. The slave returns an acknowledgebit after each received byte. Data is transferred with the most significant bit (MSB) first.
2. Data transfer from a slave transmitter to a master receiver. The first byte (the slave address) istransmitted by the master. The slave then returns an acknowledge bit. This is followed by the slavetransmitting a number of data bytes. The master returns an acknowledge bit after all received bytesother than the last byte. At the end of the last received byte, a “not acknowledge” is returned.
The master device generates all of the serial clock pulses and the START and STOP conditions. Atransfer is ended with a STOP condition or with a repeated START condition. Since a repeated STARTcondition is also the beginning of the next serial transfer, the bus will not be released. Data is transferredwith the most significant bit (MSB) first.
L63PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DS1307
8 of 12
The DS1307 may operate in the following two modes:
1. Slave receiver mode (DS1307 write mode): Serial data and clock are received through SDA andSCL. After each byte is received an acknowledge bit is transmitted. START and STOP conditionsare recognized as the beginning and end of a serial transfer. Address recognition is performed byhardware after reception of the slave address and *direction bit (See Figure 6). The address byte isthe first byte received after the start condition is generated by the master. The address byte containsthe 7 bit DS1307 address, which is 1101000, followed by the *direction bit (R/ W ) which, for a write,is a 0. After receiving and decoding the address byte the device outputs an acknowledge on the SDAline. After the DS1307 acknowledges the slave address + write bit, the master transmits a registeraddress to the DS1307 This will set the register pointer on the DS1307. The master will then begintransmitting each byte of data with the DS1307 acknowledging each byte received. The master willgenerate a stop condition to terminate the data write.
DATA WRITE – SLAVE RECEIVER MODE Figure 6
2. Slave transmitter mode (DS1307 read mode): The first byte is received and handled as in the slavereceiver mode. However, in this mode, the *direction bit will indicate that the transfer direction isreversed. Serial data is transmitted on SDA by the DS1307 while the serial clock is input on SCL.START and STOP conditions are recognized as the beginning and end of a serial transfer (SeeFigure 7). The address byte is the first byte received after the start condition is generated by themaster. The address byte contains the 7-bit DS1307 address, which is 1101000, followed by the*direction bit (R/ W ) which, for a read, is a 1. After receiving and decoding the address byte thedevice inputs an acknowledge on the SDA line. The DS1307 then begins to transmit data startingwith the register address pointed to by the register pointer. If the register pointer is not written tobefore the initiation of a read mode the first address that is read is the last one stored in the registerpointer. The DS1307 must receive a “not acknowledge” to end a read.
DATA READ – SLAVE TRANSMITTER MODE Figure 7
L64PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DS1307
9 of 12
ABSOLUTE MAXIMUM RATINGS*Voltage on Any Pin Relative to Ground -0.5V to +7.0VStorage Temperature -55°C to +125°CSoldering Temperature 260°C for 10 seconds DIP
See JPC/JEDEC Standard J-STD-020A forSurface Mount Devices
* This is a stress rating only and functional operation of the device at these or any other conditions abovethose indicated in the operation sections of this specification is not implied. Exposure to absolutemaximum rating conditions for extended periods of time may affect reliability.
Range Temperature VCCCommercial 0°C to +70°C 4.5V to 5.5V VCC1
Industrial -40°C to +85°C 4.5V to 5.5V VCC1
RECOMMENDED DC OPERATING CONDITIONS(Over the operating range*)
PARAMETER SYMBOL MIN TYP MAX UNITS NOTESSupply Voltage VCC 4.5 5.0 5.5 VLogic 1 VIH 2.2 VCC + 0.3 VLogic 0 VIL -0.5 +0.8 VVBAT Battery Voltage VBAT 2.0 3.5 V
*Unless otherwise specified.
DC ELECTRICAL CHARACTERISTICS(Over the operating range*)
PARAMETER SYMBOL MIN TYP MAX UNITS NOTESInput Leakage (SCL) ILI 1 AI/O Leakage (SDA &SQW/OUT)
ILO 1 A
Logic 0 Output (IOL = 5mA) VOL 0.4 VActive Supply Current ICCA 1.5 mA 7Standby Current ICCS 200 A 1Battery Current (OSC ON);SQW/OUT OFF
IBAT1 300 500 nA 2
Battery Current (OSC ON);SQW/OUT ON (32kHz)
IBAT2 480 800 nA
Power-Fail Voltage VPF 1.216 x VBAT 1.25 x VBAT 1.284 x VBAT V 8*Unless otherwise specified.
L65PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DS1307
10 of 12
AC ELECTRICAL CHARACTERISTICS(Over the operating range*)
PARAMETER SYMBOL MIN TYP MAX UNITS NOTESSCL Clock Frequency fSCL 0 100 kHzBus Free Time Between a STOP andSTART Condition
tBUF 4.7 s
Hold Time (Repeated) START Condition tHD:STA 4.0 s 3LOW Period of SCL Clock tLOW 4.7 sHIGH Period of SCL Clock tHIGH 4.0 sSet-up Time for a Repeated STARTCondition
tSU:STA 4.7 s
Data Hold Time tHD:DAT 0 s 4,5Data Set-up Time tSU:DAT 250 nsRise Time of Both SDA and SCL Signals tR 1000 nsFall Time of Both SDA and SCL Signals tF 300 nsSet-up Time for STOP Condition tSU:STO 4.7 sCapacitive Load for each Bus Line CB 400 pF 6
I/O Capacitance (TA = 25ºC)CI/O 10 pF
Crystal Specified Load Capacitance(TA = 25ºC)
12.5 pF
*Unless otherwise specified.
NOTES:1. ICCS specified with VCC = 5.0V and SDA, SCL = 5.0V.2. VCC = 0V, VBAT = 3V.3. After this period, the first clock pulse is generated.4. A device must internally provide a hold time of at least 300ns for the SDA signal (referred to the
VIHMIN of the SCL signal) in order to bridge the undefined region of the falling edge of SCL.5. The maximum tHD:DAT has only to be met if the device does not stretch the LOW period (tLOW) of the
SCL signal.6. CB – Total capacitance of one bus line in pF.7. ICCA – SCL clocking at max frequency = 100kHz.8. VPF measured at VBAT = 3.0V.
L66PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DS1307
11 of 12
TIMING DIAGRAM Figure 8
DS1307 64 X 8 SERIAL REAL-TIME CLOCK8-PIN DIP MECHANICAL DIMENSIONS
PKG 8-PINDIM MIN MAX
A IN.MM
0.3609.14
0.40010.16
B IN.MM
0.2406.10
0.2606.60
C IN.MM
0.1203.05
0.1403.56
D IN.MM
0.3007.62
0.3258.26
E IN.MM
0.0150.38
0.0401.02
F IN.MM
0.1203.04
0.1403.56
G IN.MM
0.0902.29
0.1102.79
H IN.MM
0.3208.13
0.3709.40
J IN.MM
0.0080.20
0.0120.30
K IN.MM
0.0150.38
0.0210.53
L67PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DS1307
12 of 12
DS1307Z 64 X 8 SERIAL REAL-TIME CLOCK8-PIN SOIC (150-MIL) MECHANICAL DIMENSIONS
PKG 8-PIN(150 MIL)
DIM MIN MAXA IN.MM
0.1884.78
0.1964.98
B IN.MM
0.1503.81
0.1584.01
C IN.MM
0.0481.22
0.0621.57
E IN.MM
0.0040.10
0.0100.25
F IN.MM
0.0531.35
0.0691.75
G IN.MM
0.050 BSC1.27 BSC
H IN.MM
0.2305.84
0.2446.20
J IN.MM
0.0070.18
0.0110.28
K IN.MM
0.0120.30
0.0200.51
L IN.MM
0.0160.41
0.0501.27
phi 0 856-G2008-001
L68PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI