Anda di halaman 1dari 145

PLAGIAT

PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

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

vi
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

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

viii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

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

ix
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

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.

x
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

DAFTAR ISI

HALAMAN JUDUL ............................................................................................................. i


HALAMAN PERSETUJUAN ........................................................................................... iii
HALAMAN PENGESAHAN ............................................................................................ iv
PERNYATAAN KEASLIAN KARYA .............................................................................. v
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP ................................................. vi
HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI
KARYA 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

xii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

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

xiii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

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

xiv
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

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

xv
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

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

xvi
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

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

xvii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

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

xviii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

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.

1
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

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.

4
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
Tag detect signal
1 TagSta Output 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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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 3, 5, 6, 9, 10, dan 11 Digunakan untuk menghasilkan PWM
Modulation)
SPI (Serial
10 (SS), 11 (MOSI), 12 Digunakan sebagai komunikasi SPI
Peripheral Interface)
(MISO), 13 (SCK)
LED 13 Terdapat lampu LED built-in yang
terkoneksi langsung dengan pin digital 13
TWI (Two Wire A4 (SDA) dan A5 (SCL) Digunakan untuk komunikasi I2C
Interface) atau 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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

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

20
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
21

LED LED LED


LED LED LED
Kamar 1 Kamar 2 Kamar 3

RFID 1

RFID 2

RFID 3
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
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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.

SELAMAT Username :

DATANG Password :

Gambar 3.7. Gambar halaman login sebelum mengakses halaman rekaman data akses
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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; Waktu check in penyewa, terdiri atas tanggal, bulan, tahun,
bulan_in; menit_in; jam, dan menit
tahun_in;
tanggal_out; jam_out; Waktu check out penyewa, terdiri atas tanggal, bulan, tahun,
bulan_out; menit_out; jam, dan menit
tahun_out;

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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
LED Merah 2
1
LED Hijau 3
LED Merah 5
2
LED Hijau 6
LED Merah 7
3
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

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

34
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
36

SDA

VCC
SCL

GND
Gambar 4.6. Penampakan hasil perancangan resistor pull-up

ETHERNET SHIELD

ARDUINO UNO
Gambar 4.7. Penampakan Modul Ethernet Shield dan Arduino di bawahnya

Crystal 32,76 kHz Baterai 3V


Pin SCL

Pin SDA

DS1307 GND

VCC
Gambar 4.8. Penampakan RTC
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
40

Gambar 4.14. Program penerimaan data dari server


PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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.

Identitas RFID Card


Hasil penamaan Identitas RFID Card

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.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
Kamar yang Tanggal Tanggal Jam Jam
Nama
disewa Check In Check Out Check In 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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
48

Gambar 4.28. Subrutin syarat akses kamar


PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
49

Tabel 4.3. Hasil perancangan persyaratan akses kamar


Tanggal Jam Kamar Penyewa 1 Penyewa 2 Penyewa 3 OB Resepsionis
1 - - - - v
00.00 –
2 - - - - v
08.00
3 - - - - v
1 - - - v v
08.00 –
2 - - - v v
12.00
3 - - - v v
23 Juli 2015

1 - - - v v
12.00 –
2 - - - v v
13.00
3 - - - v v
1 v - - v v
13.00 –
2 - - - v v
16.00
3 - - v v v
1 v - - - v
16.00 –
2 - - - - v
00.00
3 - - v - v
1 v - - - v
00.00 –
2 - - - - v
08.00
3 - - v - v
1 v - - v v
08.00 –
2 - - - v v
12.00
3 - - v v v
24 Juli 2015

1 - - - v v
12.00 –
2 - - - v v
13.00
3 - - - v v
1 v - - v v
13.00 –
2 - v - v v
16.00
3 - - - v v
1 v - - - v
16.00 –
2 - v - - v
00.00
3 - - - - v
1 v - - - v
00.00 –
2 - v - - v
08.00
3 - - - - v
1 v - - v v
08.00 –
2 - v - v v
12.00
3 - - - v v
25 Juli 2015

1 - - - v v
12.00 –
2 - - - v v
13.00
3 - - - v v
1 - - - v v
13.00 –
2 - - - v v
16.00
3 - - - v v
1 - - - - v
16.00 –
2 - - - - v
00.00
3 - - - - v
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
51

Gambar 4.30. Subrutin pengiriman data ke web

Gambar 4.31. Isi file ambil.php


PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

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.

56
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

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

57
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

LAMPIRAN
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
L1

LAMPIRAN 1
LISTING PROGRAM ARDUINO
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
L14

LAMPIRAN 2
LISTING PROGRAM
HALAMAN LOGIN
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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">&nbsp;</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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
L19

LAMPIRAN 3
LISTING PROGRAM
HALAMAN PENDAFTARAN
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
L29

LAMPIRAN 4
LISTING PROGRAM
HALAMAN PENAMPIL
PEREKAMAN DATA AKSES
KAMAR HOTEL
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
L33

LAMPIRAN 5
LISTING PROGRAM
HALAMAN CHECK OUT
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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>&nbsp;</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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
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
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
L37

LAMPIRAN 6
HASIL PENGAMBILAN DATA
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
L38

Hasil Pengambilan Data

Error
muncul
di sini
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
L39

Hasil Pengambilan Data (lanjutan)

Error
muncul
di sini
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
L40

Hasil Pengambilan Data (lanjutan)


PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
L41

LAMPIRAN 7
RFID SL018 DATASHEET
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI L42

RFID MODULE

Mifare Reader / Writer

SL018

User Manual

Version 2.0
Nov 2012
StrongLink
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI L43

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

http://www.stronglink-rfid.com 2
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI L44

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

http://www.stronglink-rfid.com 3
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI L45

2. PINNING INFORMATION

PIN SYMBOL TYPE DESCRIPTION


Tag detect signal
1 TagSta Output 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

http://www.stronglink-rfid.com 4
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI L46

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.

http://www.stronglink-rfid.com 5
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI L47

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

http://www.stronglink-rfid.com 6
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI L48

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.

http://www.stronglink-rfid.com 7
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI L49

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

http://www.stronglink-rfid.com 8
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI L50

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.

http://www.stronglink-rfid.com 9
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI L51

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.

http://www.stronglink-rfid.com 10
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI L52

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

http://www.stronglink-rfid.com 11
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI L53

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.

http://www.stronglink-rfid.com 12
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI L54

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.

http://www.stronglink-rfid.com 13
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI L55

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”

http://www.stronglink-rfid.com 14
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
L56

LAMPIRAN 8
RTC DS1307 DATASHEET
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI L57

DS1307
64 x 8 Serial Real-Time Clock
www.maxim-ic.com
FEATURES PIN ASSIGNMENT
§ Real-time clock (RTC) counts seconds, l 8 VCC
X1
minutes, hours, date of the month, month, day X2 2 7 SQW/OUT
of the week, and year with leap-year VBAT 3 6 SCL
compensation valid up to 2100 GND 4 5 SDA
§ 56-byte, battery-backed, nonvolatile (NV) DS1307 8-Pin DIP (300-mil)
RAM for data storage
§ Two-wire serial interface X1 l 8 VCC
§ Programmable squarewave output signal X2 2 7 SQW/OUT
§ Automatic power-fail detect and switch VBAT 3 6 SCL
circuitry GND 4 5 SDA
§ Consumes less than 500nA in battery backup DS1307 8-Pin SOIC (150-mil)
mode with oscillator running
§ Optional industrial temperature range:
-40°C to +85°C PIN DESCRIPTION
§ Available in 8-pin DIP or SOIC VCC - Primary Power Supply
§ Underwriters Laboratory (UL) recognized X1, X2 - 32.768kHz Crystal Connection
VBAT - +3V Battery Input
GND - Ground
ORDERING INFORMATION SDA - Serial Data
DS1307 8-Pin DIP (300-mil) SCL - Serial Clock
DS1307Z 8-Pin SOIC (150-mil) SQW/OUT - Square Wave/Output Driver
DS1307N 8-Pin DIP (Industrial)
DS1307ZN 8-Pin SOIC (Industrial)

DESCRIPTION
The DS1307 Serial Real-Time Clock is a low-power, full binary-coded decimal (BCD) clock/calendar
plus 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 of
the month date is automatically adjusted for months with fewer than 31 days, including corrections for
leap year. The clock operates in either the 24-hour or 12-hour format with AM/PM indicator. The
DS1307 has a built-in power sense circuit that detects power failures and automatically switches to the
battery supply.

1 of 12 100101
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI L58
DS1307

TYPICAL OPERATING CIRCUIT

OPERATION
The DS1307 operates as a slave device on the serial bus. Access is obtained by implementing a START
condition and providing a device identification code followed by a register address. Subsequent registers
can be accessed sequentially until a STOP condition is executed. When VCC falls below 1.25 x VBAT the
device terminates an access in progress and resets the device address counter. Inputs to the device will
not be recognized at this time to prevent erroneous data from being written to the device from an out of
tolerance system. When VCC falls below VBAT the device switches into a low-current battery backup
mode. Upon power-up, the device switches from battery to VCC when VCC is greater than VBAT + 0.2V
and recognizes inputs when VCC is greater than 1.25 x VBAT. The block diagram in Figure 1 shows the
main elements of the serial RTC.

DS1307 BLOCK DIAGRAM Figure 1

2 of 12
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI L59
DS1307
SIGNAL DESCRIPTIONS
VCC, GND – DC power is provided to the device on these pins. VCC is the +5V input. When 5V is
applied within normal limits, the device is fully accessible and data can be written and read. When a 3V
battery 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 the
RAM 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 be
held between 2.0V and 3.5V for proper operation. The nominal write protect trip point voltage at which
access to the RTC and user RAM is denied is set by the internal circuitry as 1.25 x VBAT nominal. A
lithium battery with 48mAhr or greater will back up the DS1307 for more than 10 years in the absence of
power at 25ºC. UL recognized to ensure against reverse charging current when used in conjunction with a
lithium 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 SDA
pin 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 pin
outputs one of four square wave frequencies (1Hz, 4kHz, 8kHz, 32kHz). The SQW/OUT pin is open
drain 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 is
designed 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 Application
Note 58, “Crystal Considerations with Dallas Real-Time Clocks.” The DS1307 can also be driven by an
external 32.768kHz oscillator. In this configuration, the X1 pin is connected to the external oscillator
signal and the X2 pin is floated.

RECOMMENDED LAYOUT FOR CRYSTAL

3 of 12
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI L60
DS1307

CLOCK ACCURACY
The accuracy of the clock is dependent upon the accuracy of the crystal and the accuracy of the match
between the capacitive load of the oscillator circuit and the capacitive load for which the crystal was
trimmed. Additional error will be added by crystal frequency drift caused by temperature shifts. External
circuit noise coupled into the oscillator circuit may result in the clock running fast. See Application Note
58, “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 MAP


The address map for the RTC and RAM registers of the DS1307 is shown in Figure 2. The RTC registers
are located in address locations 00h to 07h. The RAM registers are located in address locations 08h to
3Fh. During a multi-byte access, when the address pointer reaches 3Fh, the end of RAM space, it wraps
around to location 00h, the beginning of the clock space.

DS1307 ADDRESS MAP Figure 2


00H
SECONDS
MINUTES
HOURS
DAY
DATE
MONTH
YEAR
07H CONTROL
08H RAM
56 x 8
3FH

CLOCK AND CALENDAR


The time and calendar information is obtained by reading the appropriate register bytes. The RTC
registers are illustrated in Figure 3. The time and calendar are set or initialized by writing the appropriate
register bytes. The contents of the time and calendar registers are in the BCD format. Bit 7 of register 0
is the clock halt (CH) bit. When this bit is set to a 1, the oscillator is disabled. When cleared to a 0, the
oscillator is enabled.

Please note that the initial power-on state of all registers is not defined. Therefore, it is important
to 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 the
12- or 24-hour mode select bit. When high, the 12-hour mode is selected. In the 12-hour mode, bit 5 is
the 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 is
read 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.

4 of 12
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI L61
DS1307
DS1307 TIMEKEEPER REGISTERS Figure 3

0 0 0 0 0

0 0

0 0 0

0 0 0 0

CONTROL REGISTER
The 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 0


OUT 0 0 SQWE 0 0 RS1 RS0

OUT (Output control): This bit controls the output level of the SQW/OUT pin when the square wave
output is disabled. If SQWE = 0, the logic level on the SQW/OUT pin is 1 if OUT = 1 and is 0 if
OUT = 0.

SQWE (Square Wave Enable): This bit, when set to a logic 1, will enable the oscillator output. The
frequency of the square wave output depends upon the value of the RS0 and RS1 bits. With the square
wave 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 wave
output has been enabled. Table 1 lists the square wave frequencies that can be selected with the RS bits.

SQUAREWAVE OUTPUT FREQUENCY Table 1


RS1 RS0 SQW OUTPUT FREQUENCY
0 0 1Hz
0 1 4.096kHz
1 0 8.192kHz
1 1 32.768kHz

5 of 12
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI L62
DS1307
2-WIRE SERIAL DATA BUS
The DS1307 supports a bi-directional, 2-wire bus and data transmission protocol. A device that sends
data onto the bus is defined as a transmitter and a device receiving data as a receiver. The device that
controls the message is called a master. The devices that are controlled by the master are referred to as
slaves. The bus must be controlled by a master device that generates the serial clock (SCL), controls the
bus 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 is
HIGH, defines the STOP condition.

Data valid: The state of the data line represents valid data when, after a START condition, the data line
is stable for the duration of the HIGH period of the clock signal. The data on the line must be changed
during 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. The
number of data bytes transferred between START and STOP conditions is not limited, and is determined
by the master device. The information is transferred byte-wise and each receiver acknowledges with a
ninth 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.

6 of 12
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI L63
DS1307
Acknowledge: Each receiving device, when addressed, is obliged to generate an acknowledge after the
reception of each byte. The master device must generate an extra clock pulse which is associated with
this acknowledge bit.

A device that acknowledges must pull down the SDA line during the acknowledge clock pulse in such a
way that the SDA line is stable LOW during the HIGH period of the acknowledge related clock pulse. Of
course, setup and hold times must be taken into account. A master must signal an end of data to the slave
by 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 the
master is the slave address. Next follows a number of data bytes. The slave returns an acknowledge
bit 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) is
transmitted by the master. The slave then returns an acknowledge bit. This is followed by the slave
transmitting a number of data bytes. The master returns an acknowledge bit after all received bytes
other 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. A
transfer is ended with a STOP condition or with a repeated START condition. Since a repeated START
condition is also the beginning of the next serial transfer, the bus will not be released. Data is transferred
with the most significant bit (MSB) first.

7 of 12
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI L64
DS1307
The DS1307 may operate in the following two modes:

1. Slave receiver mode (DS1307 write mode): Serial data and clock are received through SDA and
SCL. After each byte is received an acknowledge bit is transmitted. START and STOP conditions
are recognized as the beginning and end of a serial transfer. Address recognition is performed by
hardware after reception of the slave address and *direction bit (See Figure 6). The address byte is
the first byte received after the start condition is generated by the master. The address byte contains
the 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 SDA
line. After the DS1307 acknowledges the slave address + write bit, the master transmits a register
address to the DS1307 This will set the register pointer on the DS1307. The master will then begin
transmitting each byte of data with the DS1307 acknowledging each byte received. The master will
generate 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 slave
receiver mode. However, in this mode, the *direction bit will indicate that the transfer direction is
reversed. 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 (See
Figure 7). The address byte is the first byte received after the start condition is generated by the
master. 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 the
device inputs an acknowledge on the SDA line. The DS1307 then begins to transmit data starting
with the register address pointed to by the register pointer. If the register pointer is not written to
before the initiation of a read mode the first address that is read is the last one stored in the register
pointer. The DS1307 must receive a “not acknowledge” to end a read.

DATA READ – SLAVE TRANSMITTER MODE Figure 7

8 of 12
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI L65
DS1307
ABSOLUTE MAXIMUM RATINGS*
Voltage on Any Pin Relative to Ground -0.5V to +7.0V
Storage Temperature -55°C to +125°C
Soldering Temperature 260°C for 10 seconds DIP
See JPC/JEDEC Standard J-STD-020A for
Surface Mount Devices

* This is a stress rating only and functional operation of the device at these or any other conditions above
those indicated in the operation sections of this specification is not implied. Exposure to absolute
maximum rating conditions for extended periods of time may affect reliability.

Range Temperature VCC


Commercial 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 NOTES
Supply Voltage VCC 4.5 5.0 5.5 V
Logic 1 VIH 2.2 VCC + 0.3 V
Logic 0 VIL -0.5 +0.8 V
VBAT Battery Voltage VBAT 2.0 3.5 V
*Unless otherwise specified.

DC ELECTRICAL CHARACTERISTICS
(Over the operating range*)
PARAMETER SYMBOL MIN TYP MAX UNITS NOTES
Input Leakage (SCL) ILI 1 mA
I/O Leakage (SDA & ILO 1 mA
SQW/OUT)
Logic 0 Output (IOL = 5mA) VOL 0.4 V
Active Supply Current ICCA 1.5 mA 7
Standby Current ICCS 200 mA 1
Battery Current (OSC ON); IBAT1 300 500 nA 2
SQW/OUT OFF
Battery Current (OSC ON); IBAT2 480 800 nA
SQW/OUT ON (32kHz)
Power-Fail Voltage VPF 1.216 x VBAT 1.25 x VBAT 1.284 x VBAT V 8
*Unless otherwise specified.

9 of 12
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI L66
DS1307
AC ELECTRICAL CHARACTERISTICS
(Over the operating range*)
PARAMETER SYMBOL MIN TYP MAX UNITS NOTES
SCL Clock Frequency fSCL 0 100 kHz
Bus Free Time Between a STOP and tBUF 4.7 ms
START Condition
Hold Time (Repeated) START Condition tHD:STA 4.0 ms 3
LOW Period of SCL Clock tLOW 4.7 ms
HIGH Period of SCL Clock tHIGH 4.0 ms
Set-up Time for a Repeated START tSU:STA 4.7 ms
Condition
Data Hold Time tHD:DAT 0 ms 4,5
Data Set-up Time tSU:DAT 250 ns
Rise Time of Both SDA and SCL Signals tR 1000 ns
Fall Time of Both SDA and SCL Signals tF 300 ns
Set-up Time for STOP Condition tSU:STO 4.7 ms
Capacitive Load for each Bus Line CB 400 pF 6
CI/O 10 pF
I/O Capacitance (TA = 25ºC)
Crystal Specified Load Capacitance 12.5 pF
(TA = 25ºC)
*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.

10 of 12
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI L67
DS1307
TIMING DIAGRAM Figure 8

DS1307 64 X 8 SERIAL REAL-TIME CLOCK


8-PIN DIP MECHANICAL DIMENSIONS
PKG 8-PIN
DIM MIN MAX
A IN. 0.360 0.400
MM 9.14 10.16
B IN. 0.240 0.260
MM 6.10 6.60
C IN. 0.120 0.140
MM 3.05 3.56
D IN. 0.300 0.325
MM 7.62 8.26
E IN. 0.015 0.040
MM 0.38 1.02
F IN. 0.120 0.140
MM 3.04 3.56
G IN. 0.090 0.110
MM 2.29 2.79
H IN. 0.320 0.370
MM 8.13 9.40
J IN. 0.008 0.012
MM 0.20 0.30
K IN. 0.015 0.021
MM 0.38 0.53

11 of 12
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI L68
DS1307
DS1307Z 64 X 8 SERIAL REAL-TIME CLOCK
8-PIN SOIC (150-MIL) MECHANICAL DIMENSIONS
8-PIN
PKG
(150 MIL)
DIM MIN MAX
A IN. 0.188 0.196
MM 4.78 4.98
B IN. 0.150 0.158
MM 3.81 4.01
C IN. 0.048 0.062
MM 1.22 1.57
E IN. 0.004 0.010
MM 0.10 0.25
F IN. 0.053 0.069
MM 1.35 1.75
G IN. 0.050 BSC
MM 1.27 BSC
H IN. 0.230 0.244
MM 5.84 6.20
J IN. 0.007 0.011
MM 0.18 0.28
K IN. 0.012 0.020
MM 0.30 0.51
L IN. 0.016 0.050
MM 0.41 1.27
phi 0° 8°
56-G2008-001

12 of 12

Anda mungkin juga menyukai