• Tidak ada hasil yang ditemukan

Hasil dan Pembahasan Perancangan Halaman Login

BAB IV : HASIL DAN PEMBAHASAN

4.3 Hasil Perancangan dan Pembahasan Perangkat Lunak

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

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

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

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

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.

Untuk mempermudah penelitian, identitas RFID Card diberikan penamaan seperti Tabel 4.1. Pada mikrokontroler, terdapat subrutin untuk memberikan nama pada setiap identitas RFID Card seperti pada Gambar 4.22.

Gambar 4.22. Subrutin penggantian nama identitas RFID Card

Hasil dari pembacaan identitas RFID Card beserta penamaannya, kemudian dilihat pada Serial Monitor Arduino seperti pada Gambar 4.23.

Gambar 4.23. Hasil pembacaan identitas RFID Card

4.3.6 Hasil dan Pembahasan Perancangan Perangkat Lunak Modul

RTC DS1307

Pengujian yang dilakukan terhadap modul RTC DS1307 adalah pengujian untuk penulisan waktu ke RTC dan pembacaan waktu dari RTC. Pengujian ini diawali dengan penulisan waktu ke RTC. Penulisan waktu ini dilakukan menggunakan subrutin seperti Gambar 4.24.

Identitas RFID Card

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.

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.

4.3.7 Hasil dan Pembahasan Perancangan Program Utama

Setelah semua perancangan perangkat lunak telah memberikan hasil yang sesuai dengan perancangan, selanjutnya adalah menggabungkan semuanya ke dalam program utama. Program utama ini bersifat sekuensial, artinya setiap proses yang telah dirancang pada Bab III (mulai dari pembacaan identitas RFID Card hingga pengiriman data ke web) dilakukan secara berurutan. Untuk mendapatkan hasil perancangan persyaratan akses kamar, dilakukan pengujian terhadap perancangan persyaratan akses kamar dengan perlakuan sebagai berikut.

Tabel 4.2. Daftar Penyewa Kamar Hotel

Nama Kamar yang

disewa Tanggal Check In Tanggal Check Out Jam Check In Jam Check Out

Anna 1 23 Juli 2015 24 Juli 2015 13.00 12.00

Doni 2 24 Juli 2015 25 Juli 2015 13.00 12.00

Ryan 3 23 Juli 2015 24 Juli 2014 13.00 12.00

Jessy 1 24 Juli 2015 25 Juli 2015 13.00 12.00

Tiap penyewa akan mendapat RFID Card yang sesuai dengan kamar yang disewa, misalnya kamar yang disewa adalah Kamar 1 maka penyewa kamar 1 akan mendapatkan RFID Card Penyewa 1 dan seterusnya.

Penyewa yang telah melakukan check out maka akan dilakukan pembaharuan data pada mikrokontroler dengan mengirimkan data penyewa selanjutnya ke mikrokontroler. Misalnya, dalam tabel 4.2, jika Anna telah melakukan check out, maka server akan mengirimkan data baru dari Jessy. Data baru yang dikirimkan adalah kamar yang disewa, tanggal dan jam check in, dan tanggal dan jam check out.

Gambar 4.28 merupakan subrutin syarat akses kamar. Subrutin inilah yang mengatur boleh tidaknya pengaksesan kamar berdasarkan identitas RFID Card. Diawali dengan pengecekan kosong tidaknya kamar yang diakses. Jika kosong, kemudian dilakukan pengecekan lagi sesuai dengan yang telah dirancang pada Bab III. Jika tidak memiliki hak akses (misal pada Kamar 1), maka diberikan tulisan “Mencoba Memasuki Kamar 1” serta tidak adanya pergantian LED pada kamar. Namun, jika memiliki hak akses,

diberikan tulisan “Memasuki Kamar 1”, ada pergantian LED pada kamar (LED Merah sebelumnya mati menjadi menyala dan LED Hijau sebelumnya menyala menjadi mati) dan adanya penyimpanan data id_pengguna (dari subrutin penggantian nama) ke EEPROM menggunakan library EEPROM untuk mengindikasikan bahwa kamar tersebut telah dimasuki dengan id_pengguna yang bersangkutan.

Tabel 4.3. Hasil perancangan persyaratan akses kamar

Tanggal Jam Kamar Penyewa 1 Penyewa 2 Penyewa 3 OB Resepsionis

23 Jul i 2015 00.00 – 08.00 1 - - - - v 2 - - - - v 3 - - - - v 08.00 – 12.00 1 - - - v v 2 - - - v v 3 - - - v v 12.00 – 13.00 1 - - - v v 2 - - - v v 3 - - - v v 13.00 – 16.00 1 v - - v v 2 - - - v v 3 - - v v v 16.00 – 00.00 1 v - - - v 2 - - - - v 3 - - v - v 24 Jul i 2015 00.00 – 08.00 1 v - - - v 2 - - - - v 3 - - v - v 08.00 – 12.00 1 v - - v v 2 - - - v v 3 - - v v v 12.00 – 13.00 1 - - - v v 2 - - - v v 3 - - - v v 13.00 – 16.00 1 v - - v v 2 - v - v v 3 - - - v v 16.00 – 00.00 1 v - - - v 2 - v - - v 3 - - - - v 25 Jul i 2015 00.00 – 08.00 1 v - - - v 2 - v - - v 3 - - - - v 08.00 – 12.00 1 v - - v v 2 - v - v v 3 - - - v v 12.00 – 13.00 1 - - - v v 2 - - - v v 3 - - - v v 13.00 – 16.00 1 - - - v v 2 - - - v v 3 - - - v v 16.00 – 00.00 1 - - - - v 2 - - - - v 3 - - - - v

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.

Gambar 4.30. Subrutin pengiriman data ke web

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

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

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.

56

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan hasil dari setiap proses pada penelitian ini, dapat diambil kesimpulan sebagai berikut: telah dihasilkan perekaman data akses kamar hotel dengan RFID berbasis

web dengan adanya fasilitas halaman pendaftaran (untuk mengatur waktu check in dan

check out), dan halaman check out (untuk memperbaharui data di mikrokontroler). Persentase keberhasilan yang didapat pada penelitian ini sebesar 97,14%.

5.2 Saran

Untuk hasil yang lebih baik untuk penelitian selanjutnya, diberikan saran-saran yang dapat berguna bagi pembaca sebagai berikut:

a. Penelitian ini dapat diperbanyak dengan menggunakan hub, sehingga nantinya akan banyak menggunakan modul Ethernet Shield yang berbeda MAC Address

dan IP Address-nya.

b. Halaman pendaftaran dapat dijadikan online ke internet (bukan lagi intranet) sehingga penyewa dapat menyewa kamar di kemudian hari (menggunakan sistem self-booking kamar hotel).

c. Dapat diberikan penelitian lebih detail untuk pembacaan RFID Card dalam waktu cepat serta tidak mengganggu komunikasi dari mikrokontroler ke RFID

57

DAFTAR PUSTAKA

[1] Finkenzeller, Klaus, 2010, RFID Handbook – Fundamental and Applications in Contactless Smart Cards, Radio Frequency Identification and Near-Field Communication, Third Edition, Penerbit : Wiley, United Kingdom

[2] Wiranto, Robertus Heru, 2010, Pembaca Data Tag Pada Car Immobilizer Dengan RFID, Fakultas Sains dan Teknologi Universitas Sanata Dharma, Yogyakarta

[3] Innovative Electronics, 2012, Pengujian modul W5200 Ethernet Shield dengan menggunakan Arduino, http://blog.innovativeelectronics.com/2012/09/pengujian-modul-w5200-ethernet-shield.html, diakses 22 November 2014

[4] Adi, Galih Purwito, 2014, Monitoring Suhu 4 Channel Jarak Jauh Berbasis Arduino Uno, Fakultas Sains dan Teknologi Universitas Sanata Dharma, Yogyakarta

[5] _____, 2012, Pengertian dan Komponen Radio Frequency Identification (RFID), http://elektronika-dasar.web.id/artikel-elektronika/pengertian-dan-komponen-radio-frequency-identification-rfid/, diakses 28 November 2014

[6] Sweeney II, Patrick J., 2005, RFID For Dummies, Wiley Publishing Inc., Indianapolis

[7] RFID Centre, _____, RFID Technology,

http://www.rfidc.com/docs/introductiontorfid_technology.htm, diakses 20 Desember 2014

[8] _____, 2012, Mifare Reader/Writer SL018 User Manual, Stronglink [9] _____, 2011, Datasheet MIFARE Classic 4K, NXP Semiconductors

[10] Arduino, _____, What is Arduino, http://www.arduino.cc/en/Guide/Introduction, diakses 20 Desember 2014

[11] Arduino, _____, Arduino Uno, http://arduino.cc/en/Main/ArduinoBoardUno, diakses 8 Desember 2014

[12] Sejati, Purnomo, 2011, Mengenal Komunikasi I2C (Inter Integrated Circuit), http://purnomosejati.wordpress.com/2011/08/25/mengenal-komunikasi-i2cinter-integrated-circuit/, diakses 16 Desember 2014

[13] _____, 2013, Datasheet Atmel 8-bit Microcontroller with 4/8/16/32Kbytes, Atmel [14] Arduino, _____, Wire Library, http://arduino.cc/en/Reference/Wire, diakses 16

[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

LAMPIRAN 1

/*

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*/

/*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) {

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());

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);

Dokumen terkait