Rancang Bangun Sistem Absensi yang Terintegrasi Dengan Website Melalui Teknologi General Packet Radio Service

(1)

LAMPIRAN A

Sintaks Program Sistem Absensi

#include "SIM900.h" #include <SoftwareSerial.h> #include "inetGSM.h" #include <SPI.h> #include <SD.h> #include <Wire.h> #include <EEPROM.h> #include <MFRC522.h> #include "RTClib.h" #include "sms.h" SMSGSM sms;

#if defined(ARDUINO_ARCH_SAMD) // for Zero, output on USB Serial console #define Serial SerialUSB

#endif

#define RST_PIN A11 #define SS_PIN 53

MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance RTC_DS1307 rtc;

File myFile; InetGSM inet;

class PubnubPublisher { protected:

InetGSM inet; char msg[50];


(2)

int numdata; char inSerial[50]; boolean started; char publishKey[43]; char subscribeKey[43]; char channelName[20]; public:

PubnubPublisher(char* publishKey, char* subscribeKey, char* channelName) { started=false; strcpy(this->publishKey, publishKey); strcpy(this->subscribeKey, subscribeKey); strcpy(this->channelName, channelName); }

void setup() {

Serial.begin(9600); Serial.println("Pubnub Publisher."); if (gsm.begin(4800)){ Serial.println("\nstatus=READY"); started=true; } else Serial.println("\nstatus=IDLE"); if(started){

if (inet.attachGPRS("internet.wind", "", "")) Serial.println("status=ATTACHED"); else Serial.println("status=ERROR"); delay(1000);

gsm.SimpleWriteln("AT+CIFSR");//Read IP address. delay(5000);

gsm.WhileSimpleRead();//Read until serial buffer is empty.


(3)

} };

void publish(char* message) { char publishUri[109+50+1];

sprintf(publishUri, "/publish/%s/%s/0/%s/0/%s", publishKey, subscribeKey, channelName, message);

numdata=inet.httpGET("pubsub.pubnub.com", 80, publishUri, msg, 50); Serial.println("\nNumber of data received:"); //Print the results. Serial.println(numdata);

//Serial.println("\nData received:"); //Serial.println(msg);

}; };

PubnubPublisher* pubnubPublisher = new PubnubPublisher("pub-c-9f184179-4324-4315-9376-6a6cef5e95ff", "sub-c-4481b53c-0fab-11e6-996b-0619f8945a4f", "absen");

const int chipSelectSD = 36; int cards, user_id,i; int detect = 0, stat = 0;

boolean started=false;

char* nims[]={"120402001", "120402002", "120402003",

"120402004", "120402005","120402006","120402007","120402008", "120402009","120402010","120402011","120402012","120402013", "120402014","120402015","120402016","120402017","120402018", "120402019","120402020","120402021","120402022","120402023", "120402024","120402025"};

int smsStatus[] = {0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0,0, 0, 0, 0, 0,};

void Name(int user) { switch(user){

case 1:


(4)

Serial.println(F("Antan Wisuga")); myFile.println("\tAntan Wisuga"); smsStatus[0]=1;i=0; publikasi();break; case 2: Serial.println(F("Bambang Dian")); myFile.println("\tBambang Dian"); smsStatus[1]=1;i=1; publikasi(); break; case 3: Serial.println(F("Coko Fahriansyah")); myFile.println("\tCoko Fahriansyah"); smsStatus[2]=1;i=2; publikasi();break; case 4: Serial.println(F("Dodi Purmadani")); myFile.println("\tDodi Purmadani"); smsStatus[3]=1;i=3; publikasi();break; case 5: Serial.println(F("Ezzy Silmi")); myFile.println("\tEzzy Silmi"); smsStatus[4]=1;i=4;publikasi();break; case 6: Serial.println(F("Fadhlan Ariska")); myFile.println("\tFadhlan Ariska"); smsStatus[5]=1;i=5; publikasi();break; case 7: Serial.println(F("Gading Aziddin")); myFile.println("\tGading Aziddin"); smsStatus[6]=1;i=6;publikasi();break; case 8: Serial.println(F("Habib Zakaria")); myFile.println("\tHabib Zakaria");


(5)

smsStatus[7]=1;i=7; publikasi();break; case 9: Serial.println(F("Ifan Paklan")); myFile.println("\tIfan Paklan"); smsStatus[8]=1;i=8; publikasi();break; case 10: Serial.println(F("Junaidy Siregar")); myFile.println("\tJunaidy Siregar"); smsStatus[9]=1;i=9;publikasi();break; case 11: Serial.println(F("Kennedy Ginting")); myFile.println("\tKennedy Ginting"); smsStatus[10]=1;i=10; publikasi();break; case 12: Serial.println(F("Lisa Umar")); myFile.println("\tLisa Umar"); smsStatus[11]=1;i=11; publikasi();break; case 13: Serial.println(F("Mahatir Muhammad")); myFile.println("\tMahatir Muhammad"); smsStatus[12]=1;i=12; publikasi();break; case 14: Serial.println(F("Nur Iqbal")); myFile.println("\tNur Iqbal"); smsStatus[13]=1;i=13; publikasi();break; case 15: Serial.println(F("Oyen Ginting")); myFile.println("\tOyen Ginting");

smsStatus[14]=1; i=14; publikasi();break; case 16:


(6)

Serial.println(F("Piliang Arif")); myFile.println("\tPiliang Arif"); smsStatus[15]=1;i=15; publikasi();break; case 17: Serial.println(F("Quaresma")); myFile.println("\tQuaresma"); smsStatus[16]=1;i=16; publikasi();break; case 18: Serial.println(F("Royansyah Ginting")); myFile.println("\tRoyansyah Ginting"); smsStatus[17]=1;i=17; publikasi();break; case 19: Serial.println(F("Sudarmin Pasaribu")); myFile.println("\tSudarmin Pasaribu"); smsStatus[18]=1;i=18; publikasi();break; case 20: Serial.println(F("Taufik Ginting")); myFile.println("\tTaufik Ginting"); smsStatus[19]=1;i=19; publikasi();break; case 21: Serial.println(F("Umar Tarigan")); myFile.println("\tUmar Tarigan"); smsStatus[20]=1;i=20; publikasi();break; case 22: Serial.println(F("Vania Sitepu")); myFile.println("\tVania Sitepu"); smsStatus[21]=1;i=21; publikasi();break; case 23: Serial.println(F("Wahyu Nugraha")); myFile.println("\tWahyu Nugraha");


(7)

smsStatus[22]=1;i=22; publikasi();break; case 24: Serial.println(F("Xenia Peranginangin")); myFile.println("\tXenia Peranginangin"); smsStatus[23]=1;i=23; publikasi();break; case 25: Serial.println(F("Yudha Al-Hakim")); myFile.println("\tYudha Al-Hakim"); smsStatus[24]=1; i=24;publikasi();break; } }

void setup() {a

pubnubPublisher->setup(); SPI.begin(); // Init SPI bus

Wire.begin(); // Init I2C communication rtc.begin(); // Init RTC Module

mfrc522.PCD_Init(); // Init MFRC522 RFID Serial.begin(9600); //

if (! rtc.isrunning()) {

Serial.println(F("RTC NOT Run!")); }

if (!SD.begin(chipSelectSD)) { Serial.println(F("Card Failed!")); return;

}

if (gsm.begin(4800)) {

Serial.println(F("\nstatus=READY")); gsm.forceON();

started=true;

} else Serial.println(F("\nstatus=IDLE"));


(8)

if(started) {

if (inet.attachGPRS("", "", ""))

Serial.println(F("status=ATTACHED")); else Serial.println(F("status=ERROR")); delay(1000);

gsm.SimpleWriteln("AT+CIFSR");/** Read IP address. */ delay(5000);

}

Serial.println(F("NON-ACTIVE !")); };

void loop() {

DateTime now = rtc.now(); if(stat==1)

{

EEPROM.write(300, 30); baca();

user_id = EEPROM.read(300); if(user_id==26) {

myFile = SD.open("test.txt", FILE_WRITE); if (myFile) {

myFile.print(now.hour(), DEC); myFile.print(':'); myFile.print(now.minute(), DEC); myFile.print(':'); myFile.print(now.second(), DEC); myFile.println("\tNon-Active"); Serial.println(F("Non-ACTIVE !")); myFile.close(); } else{


(9)

Serial.print(F("Error File"));// if the file didn't open, print an error: }

CekSMS(); stat = 0; } if(user_id!=30){ cetakID(); } } else{ EEPROM.write(300, 30); baca();

user_id = EEPROM.read(300); if(user_id==26){

if (stat==0){

myFile = SD.open("test.txt", FILE_WRITE); if (myFile){ myFile.print(now.hour(), DEC);myFile.print(':'); myFile.print(now.minute(), DEC);myFile.print(':'); myFile.print(now.second(), DEC); myFile.println("\tActive"); myFile.close(); Serial.println(F("ACTIVE !")); Serial.println(F("Tag Your Card")); }

else{

Serial.print(F("Error File"));// if the file didn't open, print an error: }

stat=1; } }


(10)

}

delay(500); };

void cetakID(){

DateTime now = rtc.now(); if(user_id==0){

Serial.println(F("Unknown UID")); }

else{

myFile = SD.open("test.txt", FILE_WRITE); if (myFile) { myFile.print(now.hour(), DEC);myFile.print(':'); myFile.print(now.minute(), DEC);myFile.print(':'); myFile.print(now.second(), DEC); Serial.println(F("Thank You")); Name(user_id); myFile.close(); } else {

Serial.print(F("Error File")); // if the file didn't open, print an error: }

delay(500); }

}

void baca(){

if ( ! mfrc522.PICC_IsNewCardPresent()) {return;} if ( ! mfrc522.PICC_ReadCardSerial()) {return;} mfrc522.PICC_DumpToSerial(&(mfrc522.uid)); }


(11)

void CekSMS(){ char pesan[100];

for (int i = 0; i < 25; i++){ if (smsStatus[i]==0){

sprintf(pesan, "Anak anda dengan nim %s, hari ini tidak hadir", nims[i]); if (sms.SendSMS("+628979213454", pesan))

Serial.println("\nSMS sent OK"); delay(2000);

} } }

void publikasi(){ char message[30];

sprintf(message, "{\"text\":\"%d hadir\"}", nims[i]); pubnubPublisher->publish(message);

delay(5000); }


(12)

LAMPIRAN B

Tabel Hasil Pengujian 30 byte

Echo Reply

Time Out 1 detik Time Out 5 detik Time Out 10 detik

Delay TTL Delay TTL Delay TTL

1 600 255 16 55 15 55

2 600 255 10 55 9 55

3 600 255 8 55 7 55

4 7 55 8 55 8 55

5 7 55 8 55 7 55

6 7 55 8 55 7 55

7 8 55 8 55 8 55

8 8 55 8 55 7 55

9 7 55 8 55 7 55

10 8 55 8 55 8 55

Tabel Hasil Pengujian 150 byte

Echo Reply

Time Out 1 detik Time Out 5 detik Time Out 10 detik

Delay TTL Delay TTL Delay TTL

1 600 255 15 55 15 255

2 600 255 15 55 10 255

3 600 255 8 55 8 255

4 8 55 8 55 8 55

5 8 55 8 55 8 55

6 8 55 8 55 8 55

7 8 55 8 55 8 55

8 8 55 8 55 8 55

9 8 55 8 55 8 55

10 8 55 8 55 8 55


(13)

Tabel Hasil Pengujian 300 byte

Echo Reply Timeout 1 detik Timeout 5 detik Timeout 10 detik

Delay TTL Delay TTL Delay TTL

1 600 255 15 55 15 55

2 600 255 14 55 14 55

3 600 255 9 55 9 55

4 9 55 9 55 9 55

5 9 55 9 55 9 55

6 9 55 9 55 9 55

7 9 55 9 55 9 55

8 9 55 9 55 9 55

9 9 55 9 55 9 55

10 9 55 9 55 9 55

Tabel Hasil Pengujian 450 byte

Echo Reply Time Out 1 detik Time Out 5 detik Time Out 10 detik

Delay TTL Delay TTL Delay TTL

1 600 255 16 55 16 55

2 600 255 14 55 14 55

3 600 255 9 55 9 55

4 600 255 9 55 9 55

5 600 255 9 55 9 55

6 600 255 9 55 9 55


(14)

7 9 55 9 55 9 55

8 600 255 9 55 9 55

9 9 55 9 55 9 55

10 9 55 9 55 9 55

Tabel Hasil Pengujian 600 byte

Echo Reply

Time Out 1 detik Time Out 5 detik Time Out 10 detik

Delay TTL Delay TTL Delay TTL

1 600 255 18 55 17 55

2 600 255 15 55 16 55

3 600 255 15 55 15 55

4 600 255 15 55 15 55

5 600 255 15 55 15 55

6 600 255 15 55 15 55

7 600 255 15 55 15 55

8 600 255 15 55 15 55

9 600 255 15 55 15 55

10 600 255 15 55 15 55

Tabel Hasil Pengujian 750 byte

Echo Reply

Timeout 1 detik Timeout 5 detik Timeout 10 detik

Delay TTL Delay TTL Delay TTL

1 600 255 18 55 18 55

2 600 255 15 55 15 55


(15)

3 600 255 15 55 15 55

4 600 255 15 55 15 55

5 600 255 15 55 15 55

6 600 255 15 55 15 55

7 600 255 15 55 15 55

8 600 255 15 55 15 55

9 600 255 15 55 15 55

10 600 255 15 55 15 55


(16)

LAMPIRAN C

Gambar Pengujian 30 byte dengan Timeout 1 detik

Gambar Pengujian 30 byte dengan Timeout 5 detik


(17)

Gambar Pengujian 30 byte dengan Timeout 10 detik


(18)

Gambar Pengujian 150 byte dengan Timeout 1 detik


(19)

Gambar Pengujian 150 byte dengan Timeout 5 detik


(20)

Gambar Pengujian 150 byte dengan Timeout 10 detik


(21)

Gambar Pengujian 300 byte dengan Timeout 1 detik


(22)

Gambar Pengujian 300 byte dengan Timeout 5 detik


(23)

Gambar Pengujian 300 byte dengan Timeout 10 detik


(24)

Gambar Pengujian 450 byte dengan Timeout 1 detik


(25)

Gambar Pengujian 450 byte dengan Timeout 5 detik


(26)

Gambar Pengujian 450 byte dengan Timeout 10 detik


(27)

Gambar Pengujian 600 byte dengan Timeout 1 detik


(28)

Gambar Pengujian 600 byte dengan Timeout 5 detik


(29)

Gambar Pengujian 600 byte dengan Timeout 10 detik


(30)

Gambar Pengujian 750 byte dengan Timeout 1 detik


(31)

Gambar Pengujian 750 byte dengan Timeout 5 detik


(32)

Gambar Pengujian 750 byte dengan Timeout 10 detik


(33)

(34)

LAMPIRAN D

Gambar Penerimaan Data di Website


(35)

(36)

(37)

(38)

LAMPIRAN E Penentuan Nilai BER


(39)

Penentuan Kuat Sinyal

Penentuan timeout


(40)

DAFTAR PUSTAKA

[1]Direktorat Tenaga Kependidikan Direktorat Jenderal Peningkatan Mutu Pendidik dan Tenaga Kependidikan Departemen Pendidikan Nasional. 2008. Administrasi dan Pengelolaan Sekolah: Administrasi Kesiswaan. Jakarta : Direktorat Pendidikan.

[2] Cai, Jian & David Goodman. Oktober1997. General Packet Radio Service in GSM. IEEE Communications Magazine vol.163, no.6804, pp. 122-131 [3] Finkenzeller, Klaus. 2010. RFID Handbook: Fundamentals and Applications in

Contactless Smart Cards, Radio Frequency Identification and Near-Field Communication. Wiltshire : John Wiley and Sons Inc.

[4]Lubis, Reza Al Kautsar. 2015. Perancangan Sistem Verifikasi Keanggotaan Dengan Kartu Cerdas Nirkontak Berbasis Arduino Mega 2560. Skripsi. Universitas Sumatera Utara.

[5]Artanto, Dian. 2012. Interaksi Arduino dan LabVIEW. Jakarta : PT. Elex Media Komputindo.

[6] Kadir, Abdul. 2012. Panduan Praktis Mempelajari Aplikasi Mikrokontroler dan Pemrogramannya menggunakan Arduino. Yogyakarta : Penerbit Andi [7] Karris, Steven T. 2004. Network – Design and Managements. California :

Orchard Publications.


(41)

BAB III

METODOLOGI PENELITIAN

3.1Umum

Pada Bab 3 ini dilakukan perancangan sistem absensi yang terintergrasi dengan website melalui teknologi GPRS sesuai dengan tahap-tahap sebagai berikut :

a. Membuat model sistem absensi

Pada tahap ini dilakukan pembuatan model sistem absensi sehingga didapatkan gambaran kebutuhan sistem absensi yang akan diimplementasikan, baik secara perangkat keras maupun secara perangkat lunak.

b. Kebutuhan sistem rancangan

Pada tahap ini dilakukan pemilihan perangkat yang sesuai dengan kebutuhan sistem absensi yang dirancang.

c. Perancangan perangkat keras

Pada tahap dilakukan dilakukan pengintegrasian perangkat-perangkat keras sesuai dengan protokol dari masing-masing perangkat. Perancangan perangkat ini terpusat pada Arduino sebagai kontroler.

d. Perancangan perangkat lunak

Pada tahap ini dilakukan pembuatan program terhadap perangkat keras yang dirancang


(42)

3.2Gambaran Sistem Rancangan

Pada Tugas Akhir ini dirancang sebuah prototipe sistem absensi yang terintegrasi dengan website melalui teknologi GPRS. Pada sistem absensi ini terdapat 26 buah kartu yang terdiri dari 25 buah kartu peserta didik dan 1 buah kartu pengajar yang bertugas untuk menngaktifkan dan menonaktifkan perangkat absensi. Namun, 26 buah kartu itu juga harus didaftarkan terlebih dahulu ke dalam sistem karena setiap kartu tag RFID mempunyai UID (Unique Identification) yang berbeda-beda. Gambar 3.1 menunjukkan gambaran umum sistem absensi.


(43)

Gambar 3.1 Model Sistem Rancangan

Pada saat dihidupkan, perangkat menunggu masukan yang berasal dari RFID reader. Ketika sebuah tagRFIDdidekatkan ke RFID reader, maka Arduino akan membaca UID dari tagRFID melalui RFID reader. UID tersebut akan dicocokkan dengan data UID yang telah dimasukkan ke dalam EEPROM pada Arduino. Jika absensi belum diaktifkan, maka Arduino akan memeriksa apakah UID tersebut adalah UID yang berfungsi untuk mengaktifkan absensi. Jika tidak benar, maka akan diulang pada proses pemeriksaan kondisi RFID reader. Jika benar, maka sistem absensi akan diaktifkan dan data akan dimasukan ke dalam SD card. Namun, jika absensi telah diaktifkan, maka Arduino akan memeriksa apakah UID tersebut cocok dengan UID pada EEPROM. Jika tidak benar, maka akan diulang pada proses pemeriksaan kondisi RFID reader. Jika benar, Arduino akan memeriksa apakah UID tersebut merupakan UID yang akan menonaktifkan absensi. Jika tidak benar, Arduino akan mengirimkan data UID sesuai dengan identitas pada ROM dan akan diulang proses pemeriksaan kondisi RFID reader. Jika benar, maka absensi akan dinonaktifkan dan data akan masuk ke dalam SD card. Lalu, Arduino akan mengirimkan SMS ke nomor yang telah dimasukkan ke dalam ROM jika ada peserta yang tidak hadir.

3.3Kebutuhan Sistem Absensi

Pada subbab 3.2 dijelaskan bahwa sistem absensi membutuhkan perangkat keras yang terdiri dari Arduino, modul GPRS, modul SD card, modul RTC, dan modul


(44)

RFID. Maka, dibutuhkan pemilihan tipe perangkat yang sesuai dengan kebutuhan sistem absensi.

3.3.1 Arduino Mega 2560

Arduino Mega 2560 adalah tipe jenis Arduino yang cukup populardigunakan. Selain memiliki pin masukan dan keluaran yang banyak, Arduino jenisini memiliki kapasitas memori yang lebih besar dibandingkan dengan beberapajenis Arduino lainnya.Untuk ukuran dimensi perangkatnya Arduino Mega 2560termasuk jenis Arduino dengan ukuran board yang besar. Gambar 2.3menunjukan bentuk fisik Arduino Mega 2560. Gambar 3.2 menunjukkan tampilan fisik dari Arduino Mega 2560 Adapun spesifikasi singkatmengenai Arduino Mega 2560 adalah sebagai berikut:

a. Mikrokontroler : ATmega2560

b. Tegangan Operasional : 5V

c. Tegangan Masukan (direkomendasi) : 7-12V d. Tegangan Masukan (batas) : 6-20V

e. Pin Digital I/O : 54 (14 pin untuk keluaran

PWM)

f. Analog Input Pins : 16

g. Arus DC per I/O Pin : 40 mA h. Arus DC for 3.3V Pin : 50 mA

i. Memori Flash :256 KB(8 KB untukbootloader)

j. SRAM :8 KB


(45)

k. EEPROM : 4 KB

l. Clock Speed : 16 MHz

Gambar 3.2 Arduino Mega 2560

Dengan sistem yang cukup kompleks yang terdiri dari modul SD card, modul GSM/GPRS, modul RTC, dan modul RFID, maka dibutuhkan Arduino yang memiliki memori pemrograman yang cukup besar. Pemilihan Arduino Mega 2560 didasarkan pada besarnya memori yang dimiliki oleh Arduino Mega 2560. Selain itu, Arduino Mega 2560 memiliki kemiripan dengan Arduino UNO yang memiliki dukungan pustaka yang lebih banyak dibandingkan jenis Arduino lainnya, namun Arduino UNO memiliki jumlah memori yang lebih kecil.

3.3.1.1Mikrokontroler

Mikrokontroler yang digunakan pada Arduino Mega 2560 ini adalah Mikrokontroler ATMega 2560. Mikrokontroler inimenjadi komponen utama dari sistem minimum Arduino Mega 2560. Setiap pin mikrokontroler ATMega 2560


(46)

dipetakan sesuai dengan kebutuhan standar Arduino pada umumnya.Pemetaan pin (pin mapping) ATMega 2560 dapat dilihat pada Gambar 3.3.

Gambar 3.3 Konfigurasi Pin ATMega 2560

3.3.1.2Memori Program

Arduino Mega 2560 memiliki 250 Kbyte On-chip In-System Reprogrammable Flash Memory sebagai tempat menyimpan program. Memori flash ini dibagi kedalam dua bagian, yaitu bagian program bootloader dan aplikasi. Bootloader


(47)

adalah program kecil yang dieksekusi saat setelah pertama kali sistem dinyalakan. Bootloader ini bekerja sebagai perantara antara memori program dengan software compiler Arduino. Bootloader akan menerimafile hasil kompilasi yang telah di-upload ke Arduino dan akan menyimpannya ke memori program kemudian Arduino akan langsung mengeksekusi program tersebut. Peta memori program dapat dilihat pada Gambar 3.4.

Gambar 3.4 Peta Memori Program

3.3.1.3Memori Data

Memori data pada Arduino Mega2560 terbagi atas SRAM dan EEPROM. SRAM bersifat volatileatau dengan kata lain tidak memiliki kemampuan untuk menyimpan data secara konsisten setelah catu daya dimatikan sedangkan EEPROM bersifat nonvolatile. SRAM yang dimiliki Arduino Mega 2560 berukuran 8KB dan EEPROM yang dimiliki Arduino Mega 2560 berukuran4KB. Ukuran EEPROM yang dimiliki Arduino jenis ini adalah ukuran EEPROM yang paling besar diantara beberapa jenis Arduino lainnya sehingga EEPROM yang dimiliki Arduino jenis ini dapat dimanfaatkan untuk kebutuhan sistem dengan memori data yang besar.


(48)

3.3.1.4Memori Input/Output

Arduino Mega 2560 memiliki 54 pin digital yang dapat digunakan sebagai masukan atau keluaran menggunakan fungsi pinMode() dan menentukan proses penulisan atau pembacaan data I/O menggunakan fungsi digitalWrite() dan digitalRead(). Setiap pin beroperasi pada tegangan 5 volt, mampu menerima atau menghasilkan arus maksimum sebesar 40 mA dan memiliki 20 - 50 Kohm resistor pull-up internal (diputus secara default).

Pin digital ini selain berfungsi sebagai masukan dan keluaran digital namun juga dapat berfungsisebagai pin dengan fungsi khusus seperti untuk komunikasi UART (pin 0 sebagai RX dan pin 1 sebagai TX), komunikasi SPI, komunikasi I2C, external interrupt, dan PWM. Untuk memanfaatkan pin digital Arduino sebagai pin dengan fungsi khusus, maka register yang terkait dengan fungsi khusus tersebut harus dikonfigurasi terlebih dahulu. Konfigurasi register-register tersebut telah disediakan di pustakaArduino. Selain fitur pin digital, Arduino Mega 2560 juga memiliki 16 pin analog yaitu pin A0 sampai A15 dan setiap pin menyediakan resolusi sebesar 10 bit.

3.3.1.5Catu Daya

Arduino dapat diberikan catu daya melalui koneksi USB atau catu daya dari luar non-USB seperti melalui Adaptordan baterai. Jangkauan tegangan yang dapat disuplai ke Arduino sebesar 6 – 20 Volt. Namun tegangan yang direkomendasikan yaitu dari 7 – 12 Volt. Pada perancangan ini, perangkat menggunakan koneksi USB sebagai catu daya.


(49)

3.3.2 Modul SD Card

Modul SD Card adalah modul pembaca/penulis (Reader/Writer) SDCard yang dapat disambungkan dengan Arduino atau rangkaian elektronika berbasis mikrokontroler. Modul ini memiliki protokol komunikasi data SPI. Modul ini dapat bekerja dengan tegangan kerja 5V dan 3.3V.Gambar 3.5 menunjukkan tampilan modul SD card.

. Gambar 3.5Modul SD Card

Pemilihan modul SD card ini dikarenakan memiliki kompatibilitas dengan SD card dengan tipe apapun dengan memori hingga 8 Gigabyte. Dengan besarnya memori tersebut, maka lebih dari cukup untuk menyimpan data dalam bentuk teks yang menyimpan log data absensi dalam perangkat keras. Selain itu, kompatibilitas dengan Arduino melalui protokol SPI juga menjadi pertimbangan dalam pemilihan modul ini.

3.3.3 Modul RFID MFRC522

MF522-AN adalah modul RFIDreader yang diproduksi dengan bahan dasar contactlessreader IC MFRC522.MFRC522 ini adalah sebuah contactlessreader IC yang produksi NXP yangmendukung untuk pembacaan kartu Mifare dengan standard 14443 A. Selaincontactlessreader IC ini terdapat seri MFRC5xx yang


(50)

lain. Beberapa jenis seriMFRC5xx lainnya memiliki kompatibilitas yang terlalu luas yaitu mampu berkomunikasi dengan ISO 14443 B. MFRC522 mendukung untuk pembacaanseluruh varian kartu Mifare seperti Mifare mini, Mifare ultralight, Mifare ultralight C, Mifare Plus, Mifare DESFire, Mifare Clasic. Sebagai tambahan, hingga saat ini pustaka Arduino yang disediakan untuk pembacaan kartu Mifare hanya pustaka untuk modul RFID reader dengan bahan contactless reader IC MFRC522 saja. Gambar fisik dari modul MFRC522 dapat dilihat pada Gambar 3.6.

Gambar 3.6Modul MFRC522

Deskripsi :

a. Chipset : MFRC522 Contactless Reader/Writer IC

b. Arus :13-26mA / DC 3.3V

c. Arus Puncak : 30mA d. Frekuensi Kerja : 13.56MHz

e. Kartu yang Didukung : S50, S70, UltraLight, Pro, Desfire

f. Dimensi : 40mm x 60mm

g. Laju Transfer Data : Max. 10Mbit / s


(51)

h. Jarak pembacaan kartu : < 50mm

i. Suhu operasional : -20°C s.d. +80°C j. Kelembaban Relatif : 5% -95%

k. Protokol akses : SPI (Serial Peripheral Interface)

Komponen kartu RFID tag yang digunakan pada sistem ini adalah jenisMifare Ultralight. Penentuan komponen ini dikarenakan kartu ini memilikikemudahan dalam memahami sistem keamanannya. Kartu jenis ini juga memilikijenis serial ID yang unik. Kartu ini memiliki kapasitas memori yang tidak besarsehingga untuk membantu kapasitas memori sistem digunakan memori tambahandari Arduino Mega 2560. Gambar 3.7 menunjukkan gambaran fisik dari kartu Mifare Ultralight.

Gambar 3.7Mifare Ultralight

3.3.4 Modul RTC DS-1307

Modul RTC ini menggunakan IC DS-1307dari Dallas Semiconductor/Maxim Integrated yang merupakan komponen elektronika yang presisi dalam menghitung waktu. Dengan baterai Lithium Rechargeable LIR2032 yang akan menjaga modul


(52)

tetap bekerja pada saat catu daya tidak tersambung, modul ini dapat berfungsi sebagai penjejak waktu (time tracking device) yang dapat bertahan hingga bertahun-tahun.

Modul ini juga dilengkapi dengan EEPROM tambahan sebesar 4 Kilobytemenggunakan IC Atmel AT24C32, berguna untuk menyimpan data secara permanen. Gambar 3.8 menunjukkan tampilan dari modul RTC DS-1307.

Gambar 3.8Modul RTC DS-1307

Pemilihan modul RTC dengan tipe ini didasarkan dengan kemampuannya yang cukup handal. Selain itu, kemudahan dalam koneksi dengan Arduino melalui protokol i2c juga menjadi alasan dipilihnya modul RTC DS-1307. Pustaka yang banyak memudahkan pemrograman modul RTC ini.

3.3.5 Modul GSM/GPRS SIM900

Modul ini mendukung komunikasi dual band pada frekuensi 900 / 1800 MHz (GSM900 dan GSM1800) sehingga fleksibel untuk digunakan bersama kartu SIM dari berbagai operator telepon seluler di Indonesia. Operator GSM


(53)

yang beroperasi di frekuensi dual band 900 MHz dan 1800 MHz sekaligus. Gambar 3.9 menunjukkan tampilan modul GPRS SIM900.

Gambar 3.9 Modul GPRSSim900 Spesifikasi SIM900:

a. GPRS multi-slot class 10/8, kecepatan transmisi hingga 85.6 kbps (downlink)

b. GPRS mobile station class B c. Class 4 (2 W @ 900 MHz) d. Class 1 (1 W @ 1800MHz) e. SMS (Short Messaging Service)

f. MMS (Multimedia Messaging Service) g. Pengendalian lewat perintah AT Command

h. Rentang catu daya antara 7 Volt hingga 12 Volt DC

i. Konsumsi arus sebesar 1 mA pada mode tidur (sleep mode) j. Rentang suhu operasional: -40 °C hingga +85 °C


(54)

k. Tingkat tegangan TTL, didukung dengan 3.3V and 5V

Pemilihan SIM900 didasarkan pada fiturnya yang sesuai dengan kebutuhan sistem absensi dan kemudahan dalam koneksi dengan Arduino Mega 2560 selaku kontroler dalam sistem absensi yang dirancang. Selain itu, penggunaan AT commanddan dukungan pustaka yang luasyang juga memudahkan dalam pemrograman perangkat.

3.4Perancangan Perangkat Keras

Pada perancangan ini, sistem absensi menggunakan perangkat keras berupa Arduino Mega 2560, modul RTC (Real Time Clock), modul SD (Secure Digital)card, Modul GPRS dengan tipe SIM900, dan modul RFID (Radio Frequency Identification) dengan tipe MFRC522. Gambar 3.10 menunjukkan rangkaian skematik sistem absensi secara keseluruhan.


(55)

Gambar 3.10 Rangkaian Skematik Sistem Absensi Berikut penjelasan rangkaian pada Gambar 3.10 :

1. Arduino Mega 2560 bertugas sebagai pusat kontrol sistem yang akan mengolah data input dan output. Arduino Mega 2560 mendapat catuan komputer melalui kabel USB (Universal Serial Bus).

2. SD cardberkomunikasi dengan Arduino Mega 2560 dengan protokol SPI (Serial Peripheral Interface). Protokol ini menggunakan empat buah pin untuk mengatur pengiriman data yaitu MOSI (Master Input Slave Output), MISO (Master Output Slave Intput), SCK (Serial Clock), dan SDA (Serial Data). Protokol SPI pada Arduino diletakkan pada kaki digital 50, 51, 52, dan 53. Namun, untuk pin SDA dapat disambungkan ke semua pin Input/Output digital pada Arduino Mega 2560. Pada SD card, pin SDA diubah menjadi pin


(56)

CS (Chip Select). Pada perancangan ini, pin CS terhubung dengan kaki digital 36 pada Arduino Mega 2560.

3. Modul RTC berkomunikasi dengan Arduino Mega 2560 dengan protokol I2C (Inter-Intergrated Circuit). Protokol ini menggunakan dua buah pin, yaitu SCK dan SDA. Pada Arduino Mega 2560, protokol ini terletak pada kaki digital 20 dan 21.

4. Seperti halnya SD card, modul RFID dengan tipe MFRC522 juga menggunakan protokol SPI untuk berkomunikasi dengan Arduino Mega 2560. Pin SDA pada Modul RFID terhubung dengan kaki digital 53 pada Arduino Mega 2560.

5. Modul GPRS dengan tipe SIM900 berkomunikasi secara serial dengan Arduino Mega 2560. Pin-pin yang terdapat protokol ini adalah pin Rx dan Tx yang terhubung dengan pin digital 18 dan 19 pada Arduino Mega 2560.

3.5Perancangan Perangkat Lunak

Pada perancangan perangkat lunak sistem absensi ini terdiri dari dua bagian yaitu perancangan program Arduino dan websiteyang akan digunakan.

3.5.1 Perancangan Program Arduino

Dalam merancang perangkat lunak sistem absensi ini, hal pertama yang dilakukan adalah menulis data UID kartu ke dalam EEPROM yang terdapat pada Arduino Mega 2560, dimana besar EEPROM pada Arduino Mega 2560 adalah sebesar 4Kbyte. Dalam proses menulis data ke dalam EEPROM, hal yang perlu dilakukan adalah menunjuk memori EEPROM yang akan ditulis. EEPROM pada


(57)

Arduino diibaratkan sebagai blok-blok data yang mempunyai besar data setiap blok adalah 1 byte atau 8 bit. Gambar 3.11 menunjukkan diagram alir penulisan data ke EEPROM pada Arduino Mega 2560.

Gambar 3.11 Diagram Alir Penulisan EEPROM

Data UID di dalam EEPROM tersebut dijadikan perbandingan terhadap tag RFID yang dibaca oleh reader RFID. Data perbandingan tersebut diolah oleh


(58)

Arduino Mega 2560 sebagai kontroler. Gambar 3.12 menunjukkan diagram alir sistem absensi dengan menggunakan Arduino Mega 2560.


(59)

Gambar 3.12 Diagram Alir Sistem Absensi


(60)

Pada perancangan program Arduino ini digunakan bahasa pemrograman yang memiliki kompatibitas sesuai dengan Arduino yang digunakan yaitu bahasa C++. Arduino Mega 2560 menggunakan bahasa pemrograman C++ dalam pengaplikasian fitur-fitur yang ada di dalamnya. Perangkat lunak yang digunakan adalah Arduino IDE (Integrated Development Environment). Gambar 3.13 menunjukkan tampilan Arduino IDE.

Gambar 3.13 Arduino IDE Berikut ini adalah tombol-tombol toolbar serta fungsinya:

Verify

mengecek error pada kode program. Upload

meng-compile dan meng-upload program ke Arduino.


(61)

New

membuat sketch baru. Open

menampilkan sebuah menu dari seluruh sketch yang berada di dalam sketchbook.

Save

menyimpan sketch. Serial Monitor

membuka serial monitor.

Dalam lingkungan arduino digunakan sebuah konsep yang disebut sketchbook, yaitu tempat standar untuk menyimpan program (sketch). Sketch yang ada pada sketchbook dapat dibuka dari menu File > Sketchbook atau dari tombol open pada toolbar. Ketika pertama kali menjalankan ArduinoIDE, sebuah direktori akan dibuat secara otomatis untuk tempat penyimpana sketchbook. Kita dapat melihat atau mengganti lokasi dari direktori tersebut dari menu File > Preferences.

Serial monitor menampilkan data serial yang sedang dikirim dari Arduino. Untuk mengirim data ke Arduino, masukkan teks, dan klik tombol send atau tekan enter pada keyboard.

Sebelum meng-upload program, kita perlu mensetting jenis Arduino dan port serial yang sedang kita gunakan melalui menu Tools > Board dan Tools > Serial Port. Pemilihan Arduino berguna untuk mengatur parameter (contohnya: kecepatan mikrokontroler dan baud rate) yang digunakan ketika compile dan meng-upload sketch.


(62)

Setelah memilih Arduino dan port serial yang tepat, tekan tombol upload pada toolbar atau pilih menu File > Upload. Arduino akan me-reset secara otomatis dan proses upload akan dimulai. Pada kebanyakan jenis Arduino, LED RX dan TX akan berkedip ketika program sedang di-upload. ArduinoIDE akan menampilkan pesan ketika proses upload telah selesai, atau menampilkan pesan error.

Ketika sedang meng-upload program, Arduino bootloader sedang digunakan, Arduinobootloader adalah sebuah program kecil yang telah ditanamkan pada mikrokontroler yang berada pada Arduino. Bootloader ini mengijinkan kita meng-upload program tanpa menggunakan perangkat keras tambahan.

3.5.2 Website

Website yang digunakan dalam sistem absensi ini merupakan website yang disediakan oleh sebuah perusahaan yang mendukung IoT (Internet of Things). Websitehanya digunakan untuk menampilkan data yang dikirim oleh Arduino Mega 2560 melalui sim900 dengan teknologi GPRS.

Websiteyang digunakan dalam sistem absensi ini adal

Website ini memiliki dukungan terhadap IoT sehingga dapat digunakan sebagai penampil data. Gambar 3.14 menunjukkan penampil data di dalam website pubnub.


(63)

Gambar 3.14 Penampil Data di Pubnub


(64)

BAB IV

PENGUJIAN DAN ANALISA DATA

4.1Umum

Pada Bab 4 ini akan dilakukan implementasi sistem berdasarkan perancangan pada Bab 3, maka dilakukan pembuatan sistem absensi yang terintergrasi dengan website melalui teknologi GPRS. Selain itu, dilakukan juga pengujian-pengujian terhadap sistem absensi. Setelah itu, dilakukan analisa terhadap masing-masing pengujian. Data-data hasil analisa secara keseluruhan terdapat pada lampiran B, C, dan D. Adapun pengujian yang dilakukan terdiri dari :

1. Pengujian koneksi masing-masing perangkat dengan menghubungkannya ke Arduino.

2. Pengujian pengiriman SMS

3. Pengujian pencocokan lokasi pengambilan data 4. Pengujian koneksi GPRS

5. Pengujian koneksi ke website

6. Pengujian pengiriman data ke website

7. Pengujian sistem absensi yang terintergrasi dengan website melalui teknologi GPRS secara keseluruhan


(65)

4.2Implementasi

Pada tahap implementasi, perangkat yang digunakan adalah Arduino Mega 2560, Modul SD card, modul RFID, modul RTC, dan SIM900. Perangkat-perangkat ini merupakan perangkat keras pada sistem absensi. Gambar 4.1 menunjukkan perangkat-perangkat yang digunakan.

Gambar 4.1 Perangkat-Perangkat Keras Sistem Absensi

Perangkat-perangkat keras yang ditunjukkan pada Gambar 4.1 memiliki protokol masing-masing dalam berkomunikasi dengan perangkat lain. Untuk memudahkan penggabungan semua perangkat menjadi satu kesatuan, maka dibuat sebuah shieldyang memiliki kompatibilitas dengan Arduino Mega 2560. Shielddirancang sesuai dengan rangkaian yang ditunjukkan pada Gambar 3.10. Gambar 4.2 menunjukkan shield Arduino Mega 2560 yang telah selesai dibuat.


(66)

Gambar 4.2ShieldArduino Mega 2560

Sistem absensi yang dirancang memanfaatkan komputer sebagai catu daya dan penampil kondisi sistem absensi. Komputer berkomunikasi dengan sistem absensi melalui protokol serial dengan sebuah kabel USB (Universal Serial Bus). Di dalam komputer terdapat serial monitor yang akan menampilkan data kondisi Arduino. Gambar 4.3 menunjukkan implementasi keseluruhan sistem yang telah dibuat.


(67)

Gambar 4.3 Implementasi Perangkat Absensi

4.3Pengujian dan Analisis Koneksi Arduino dengan RTC

Pengujian koneksi RTC menggunakan Arduino Mega 2560, shield Arduino Mega 2560, Modul RTC DS1307, dan software Arduino IDE yang mempunyai serial monitor. Gambar 4.4 menunjukkan perangkat-perangkat yang digunakan dalam pengujian.


(68)

Gambar 4.4 Perangkat Pengujian Modul RTC

Perangkat-perangkat pengujian RTC dijadikan satu kesatuan dan dihubungkan ke komputer melalui kabel USB untuk menampilkan kondisi pengujian modul RTC pada serial monitor. Gambar 4.5 menunjukkan proses pengujian modul RTC.

Gambar 4.5 Pengujian Modul RTC


(69)

Pengujian koneksi Arduino dengan RTC dilakukan dengan meng-upload program yang telah ada di pustaka RTClib.h. Program ini bermaksud untuk membaca dan menampilkan data waktu yang ada di modul RTC DS-1307 di serial monitor. Gambar 4.6 menunjukkan hasil pengujian koneksi RTC dengan Arduino.

Gambar 4.6 Hasil Pengujian Koneksi RTC dengan Arduino

Pada Gambar 4.6 menunjukkan serialmonitor menampilkan data waktu dengan format hari/bulan/tahun dan jam:menit:detik. Pada Gambar 4.6 juga terlihat waktu yang terdapat pada komputer yang menunjukkan pukul 03.43. Perbandingan waktu menunjukkan tidak ada selisih yang signifikan antara waktu pada RTC dengan waktu yang ditampilkan oleh komputer.


(70)

4.4Pengujian dan Analisis Koneksi Arduino dengan RFID

Pengujian koneksi RFID menggunakan Arduino Mega 2560, shield Arduino Mega 2560, Modul RFID,tag RFID berbentuk kartu dan software Arduino IDE yang mempunyai serial monitor. Gambar 4.7 menunjukkan perangkat-perangkat yang digunakan dalam pengujian.

Gambar 4.7 Perangkat Pengujian Modul RFID

Pengujian dilakukan dengan mendekatkan tag RFID, dimana perangkat-perangkat pengujian modul RFID sebelumnya telah dijadikan satu kesatuan dan dihubungkan ke komputer melalui kabel USB untuk menampilkan kondisi pengujian modul RTC pada serial monitor. ke reader RFID. Gambar 4.8 menunjukkan proses pengujian modul RFID.


(71)

Gambar 4.8 Proses Pengujian Modul RFID

Program yang digunakan dalam pengujian ini memanfaatkan pustaka dari MFRC522.h. Program bertujuan untuk membaca data yang ada pada RFID yang berupa data UID, sector block, dan PICC type. Gambar 4.9 menunjukkan pembacaan UID pada serial monitor.

Gambar 4.9 Hasil Pengujian Koneksi RFID dengan Arduino


(72)

Pada Gambar 4.9 ditunjukkan nilai UID, PICC type, dan sector block data dari sebuah tag RFID yang ditampilkan pada sebuah serial monitor, dimana UID yang ditampilkan adalah FE 0C 84 B3. Untuk mendapatkan semua data sebuah tagRFID, maka tagtersebut harus didekatkan pada jarak yang mampu dijangkau oleh readerRFID yaitu maksimal 5 cm.

4.5Pengujian dan Analisis Koneksi Arduino dengan Modul SD Card

Pengujian koneksi modul SD card menggunakan Arduino Mega 2560, shield Arduino Mega 2560, Modul SD card, SD card, dan software Arduino IDE yang mempunyai serial monitor. Gambar 4.10 menunjukkan perangkat-perangkat yang digunakan dalam pengujian.

Gambar 4.10 Perangkat Pengujian Modul SD Card


(73)

Perangkat-perangkat pengujian modul SD card dijadikan satu kesatuan dan dihubungkan ke komputer melalui kabel USB untuk menampilkan kondisi pengujian modul SD card pada serial monitor. Gambar 4.11 menunjukkan proses pengujian modul SD card.

Gambar 4.11 Proses Pengujian Modul SD Card

Pengujian koneksi Arduino dengan SD Card dilakukan dengan maksud untuk membaca jenis SD card yang digunakan. Selain itu, pengujian juga bertujuan untuk membaca file-file yang terdapat di dalam SD card. Program yang digunakan memanfaatkan pustaka SD.h. Gambar 4.12 menunjukkan hasil pengujian koneksi modul SD card.


(74)

Gambar 4.12 Hasil Pengujian Koneksi Modul SD Card dengan Arduino Gambar 4.12 menunjukkan data dari sebuah SD card yang ditampilkan pada sebuah serial monitor. Tipe dari SD cardyang digunakan yaitu SDHC (Secure Digital High Capacity), dimana besar memori dari SD card tersebut adalah 3484 MB. Di dalam SD card tersebut terdapat sebuah file dengan nama TEST.TXT.

4.6Pengujian dan Analisis Pembacaan Data SD card

Pengujian dilakukan dengan memanfaatkan masukan dari RFID yang akan diproses oleh Arduino. Data olahan akan dimasukkan ke dalam file berekstensi .txt di dalam SD card. Gambar 4.13 menunjukkan hasil pengujian peng-input-an data ke SD card.


(75)

Gambar 4.13 Hasil Pengujian Penulisan Data SD card

Pada Gambar 4.13 terlihat beberapa masukan yang didapatkan dari RFID. Masukan yang berupa UID diolah oleh Arduino menjadi data nama siswa. Data siswa tersebut akan ditulis ke dalam filedi dalam SD card. Data siswa tersebut berupa nama yaitu Lisa Umar, Mahatir Muhammad, Oyen Ginting, dan Nur Iqbal. Gambar 4.14 menunjukkan fileteks hasil pengujian.

Gambar 4.14 Hasil Pengujian FileTeks di dalam SD Card


(76)

Pada Gambar 4.14 menunjukkan nama-nama siswa beserta waktu saat memasukkan data melalui RFID. Data pada Gambar 4.14 menunjukkan kesamaan dengan data pada Gambar 4.13, dimana data-data nama pada Gambar 4.14 adalah Lisa Umar, Mahatir Muhammad, Oyen Ginting, dan Nur Iqbal.

4.7Pengujian dan Analisis Koneksi Arduino dengan SIM900

Pengujian koneksi modul SIM900 menggunakan Arduino Mega 2560, shield Arduino Mega 2560, Modul SIM900, kartu SIM yang mendukung GSM/GPRS dan software Arduino IDE yang mempunyai serial monitor. Gambar 4.15 menunjukkan perangkat-perangkat yang digunakan dalam pengujian.

Gambar 4.15 Perangkat Pengujian Koneksi SIM900

Perangkat-perangkat pengujian modul SIM900 dijadikan satu kesatuan dan dihubungkan ke komputer melalui kabel USB untuk menampilkan kondisi pengujian modul SIM900. Gambar 4.16 menunjukkan proses pengujian SIM900.


(77)

Gambar 4.16 Proses Pengujian Koneksi SIM900

Pengujian koneksi Arduino dengan SIM900 dilakukan dengan memberikan input kepada SIM900 melalui komunikasi secara serial. SIM900 bekerja berdasarkan AT command yang di-input-kan oleh user ke Arduino. SIM900 hanya mengenali AT command sesuai dengan datasheet. Gambar 4.17 menunjukkan hasil pengujian koneksi SIM900.

Gambar 4.17 Hasil Pengujian Koneksi SIM900 dengan Arduino


(78)

Pada Gambar 4.17 terlihat status koneksi antara SIM900 dengan Arduino Mega 2560 yang menunjukkan kondisi “ready”. Kondisi ini menunjukkan adanya komunikasi antara dua perangkat keras.

4.8Pengujian dan Analisis Pengiriman SMS

Pengujian pengiriman SMS dilakukan dengan sebuah program yang akan mengirimkan teks bertuliskan “Anak Anda tidak hadir” melalui protokol GSM, dimana nomor kartu SIM yang digunakan adalah 089664983460 dan nomor tujuan pengiriman adalah 08979213454. Gambar 4.18 menunjukkan kondisi pengujian pengiriman SMS pada serial monitor.

Gambar 4.18 Kondisi Pengujian Pengiriman SMS


(79)

Gambar 4.18 menunjukkan kondisi dari Arduino yang memerintahkan SIM900 untuk mengirimkan SMS. Jika SMS berhasil dikirimkan, maka penerima akan menerima teks bertuliskan “Anak Anda tidak Hadir”. Gambar 4.19 menunjukkan hasil pengiriman SMS pada penerima.

Gambar 4.19 Hasil Pengujian Pengiriman SMS pada Sisi Penerima

4.9Pengujian dan Analisis Lokasi Pengambilan Data

Pengujian dilakukan di Laboratorium Sistem Pengaturan dan Komputer di lantai 3 Gedung Departemen Teknik Elektro. Sebagai pembanding, dilakukan pengecekan lokasi dengan memanfaatkan fitur dari SIM900 yang dapat mendeteksi lokasi berdasarkan nilai latitude dan longitude. Gambar 4.20 menunjukkan hasil pengujian lokasi pada serial monitor.


(80)

Gambar 4.20 Hasil Pengujian Pengecekan Lokasi

Pada gambar 4.20 menunjukkan adanya kode lokasi, longitude, latitude, tanggal dan pukul. Kode lokasi menunjukkan nilai 0 yang berarti lokasi sukses dideteksi. Nilai longitude dan latitude pada gambar 4.20 adalah 98,654677 dan 3,561759. Nilai tanggal yang ditunjukkam adalah 29/05/2016, sedangkan nilai jam yaitu 11:29:10 GMT. Sebagai pembanding dilakukan pengecekan lokasi dengan menggunakan Google Map dengan memasukkan nilai longitude dan latitude. Gambar 4.21 menunjukkan lokasi pengambilan data pada Google Map.


(81)

Gambar 4.21 Lokasi pada Google Map

Pada gambar 4.21 menunjukkan lokasi pada google map yaitu d sekitar gedung Departemen Teknik Elektro di Jalan Politeknik Kampus USU. Nilai longitudedan latitude yang hanya menunjukkan derajatdikonversi menjadi 3°33'42.3"LU dan 98°39'16.8"BT.

4.10 Pengujian dan Analisis Koneksi GPRS

Pengujian koneksi GPRS dilakukan dengan meng-input-kan program ke dalam Arduino Mega 2560 yang akan melakukan request data dari sebuah website. Selama request dilakukan, data requestadalah sebanyak 50 byte.Pada pengujian ini website

yang dituju adala

koneksi GPRS.


(82)

Gambar 4.22 Hasil Pengujian Koneksi GPRS

Gambar 4.22 menunjukkan data yang diterima oleh Arduino yaitu 49 byte dari 50 byte data. Requestterhadap data HTTP juga berhasil dilakukan yang terlihat dari data kode website yang diterima oleh Arduino. Gambar 4.21 menunjukkan grafik pengujian koneksi GPRS.

Gambar 4.23 Grafik Pengujian Koneksi GPRS

1 2 3 4 5 6 7 8 9 10

Data diterima 49 49 18 49 19 49 49 18 24 19

Data Request 50 50 50 50 50 50 50 50 50 50

49 49 18 49 19 49 49 18 24 19

50 50 50 50 50 50 50 50 50 50

0 10 20 30 40 50 60 D a ta (B y te ) Urutan Pengujian


(83)

Gambar 4.23 menunjukkan sebanyak 10 percobaan requestdata dilakukan. Dari 10 kali percobaan request data sebanyak 50 byte, terdapat 4 kali Arduino menerima data sebanyak 49 byte, yaitu pada pengujian 1, 2, 4, 6, dan 7. Pada pengujian 3 dan 8 Arduino menerima data sebanyak 18 byte. Pada pengujian 5 dan 10, Arduino menerima data sebanyak 19 byte. Sedangkan pada pengujian 9, data yang diterima oleh Arduino adalah 24 byte.

4.11 Pengujian dan Analisis Koneksi ke Website

Pengujian koneksi ke website dilakukan dengan memasukkan data ke dalam sebuah website melalui protokol GPRS. Data yang dikirimkan merupakan data karakter dengan ukuran 30 byte. Data tersebut akan dikirimkan terus menerus dengan menggunakan sebuah increment sebagai pembeda antara tiap-tiap data. Data tersebut dikirimkan ke sebuah website yang mendukung IoT. Dalam percobaan ini, website

yang dituju adala

oleh website.


(84)

Gambar 4.24 Hasil Pengujian Koneksi ke Pubnub

Gambar 4.24 menunjukkan 3 buah data yang diterima yang berupa teks bertuliskan “”teks” : “hello NIM : 12-X“”, dimana X merupakan nilai integer yang ditambah tiap perulangan pengiriman data ke website.

Pada pengujian ini, Arduino Mega 2560 harus melakukan konfigurasi terhadap SIM900 sebelum mengirimkan data ke website melalui prorokol FTP (File Transfer Protocol). Maka diperlukan waktu tunggu untuk mempersiapkan pengiriman data. Tabel 4.1 menunjukkan hasil pengiriman data berdasarkan delay pada Arduino.

Tabel 4.1 Keberhasilan Pengiriman Data Berdasarkan Delay pada Arduino

Increement Delay 1

detik Delay 2 Detik Delay 3 Detik Delay 4 Detik Delay 5 Detik 0 Berhasil Berhasil Berhasil Berhasil Berhasil

1 Gagal Gagal Gagal Gagal Berhasil

2 Gagal Berhasil Berhasil Berhasil Berhasil

3 Berhasil Gagal Gagal Gagal Berhasil

4 Gagal Berhasil Berhasil Berhasil Berhasil

5 Gagal Gagal Gagal Gagal Berhasil

6 Berhasil Berhasil Berhasil Berhasil Berhasil


(85)

Pada Tabel 4.1 menunjukkan bahwa delay yang diperlukan Arduino untuk mengirimkan data yang berturut-turut ke sebuah website adalah 5 detik. Pada pengaturan delay 1 detik, kegagalan pengiriman data akan terjadi setelah sebuah data yang dikirimkan berhasil sampai ke website. Kegagalan pengiriman data terjadi sebanyak dua kali. Pada pengaturan delay 2 detik, 3 detik, dan 3 detik terjadi sebuah kegagalan pengiriman data setelah sebuah data berhasil sampai ke website.

4.12 Pengujian dan Analisis Pengiriman Data ke Website

Pengujian dilakukan dengan melakukan PING terhadap websiteyang dituju melalui IP addressdari website tersebut. Websiteyang dituju adala dengan IP addressyaitu 199.27.79.143. Ada tiga buah kondisi saat melakukan pengujian, yaitu mengatur nilai timeout sebesar 1 detik, 5 detik, dan 10 detik. Pada masing-masing kondisi, data yang digunakan sebanyak 30 byte, 150 byte, 300 byte, 450 byte, 600 byte, dan 750 byte. Pada masing-masing kondisi akan diminta replysebanyak 10 kali. Data yang akan diukur adalah delay, TTL, jumlah timeout, kuat sinyal, dan BER (Bit Error Ratio). Jumlah timeout dapat diketahui dari nilai delay dan TTL. Jika nilai delay adalah 600 dan nilai TTL adalah 255, maka timeout telah terjadi. Data yang diukur dapat dilihat nilainya pada lampiran B dan lampiran C. Sedangkan untuk menentukan kuat sinyal dan BER dapat dilihat pada lampiran E.

Pada percobaan yang pertama, data yang digunakan sebanyak 30 byte dengan timeoutsebesar 1 detik, 5 detik, dan 10 detik. Data 30 byte merupakan penyamaan besar data yang sama dengan satu orang siswa. Kuat sinyal pada percobaan pertama adalah sebesar -46,28 dBm. Sedangkan BER yaitu lebih kecil dari 0,2%. Gambar


(86)

4.25 menunjukkan grafik hasil pengujian.

Gambar 4.25 Grafik Pengujian Data 30 byte

Pada gambar 4.25 menunjukkan terjadi timeoutsebanyak tiga kali pada kondisi pengaturan timeout 1 detik. Timeoutterjadi pada echo replypertama, kedua, dan ketiga. Pada echo reply selanjutnya, nilai delay stabil pada 7 dan 8 detik, sedangkan TTL menunjukkan nilai 55. Pada kondisi pengaturan nilai timeout 5 detik dan 10 detik, kondisi timeout tidak terpenuhi. Nilai delay dan TTL pada echo reply pertama dan kedua menunjukkan nilai yang tidak stabil, namun echoreply selanjutnya menunjukkan nilai yang stabil.

Pada percobaan yang kedua, data yang digunakan sebanyak 150 byte dengan timeoutsebesar 1 detik, 5 detik, dan 10 detik. Data 150 byte merupakan penyamaan besar data yang sama dengan 5 orang siswa. Kuat sinyal pada percobaan kedua

600 600 600

7 7 7 8 8 7 8

255 255 255

55 55 55 55 55 55 55

16 10 8 8 8 8 8 8 8 8

55 55 55 55 55 55 55 55 55 55

15 9 7 8 7 7 8 7 7 8

55 55 55 55 55 55 55 55 55 55

0 100 200 300 400 500 600 700

1 2 3 4 5 6 7 8 9 10

D e la y ( s) & T T L Echo Reply

Timeout 1 detik : Timeout 1 detik : Timeout 5 detik : Timeout 5 detik : Timeout 10 detik : Timeout 10 detik :


(87)

adalah sebesar -46,28 dBm. Sedangkan BER yaitu lebih kecil dari 0,2%. Gambar 4.26 menunjukkan grafik hasil pengujian.

Gambar 4.26 Grafik Pengujian Data 150 byte

Pada Gambar 4.26 menunjukkan terjadi timeoutsebanyak tiga kali pada kondisi pengaturan timeout 1 detik. Timeoutterjadi pada echo replypertama, kedua, dan ketiga. Pada echo reply selanjutnya, nilai delay stabil pada angka 8 detik, sedangkan TTL menunjukkan nilai 55. Pada kondisi pengaturan nilai timeout 5 detik dan 10 detik, kondisi timeout tidak terpenuhi. Nilai delay dan TTL pada echo reply pertama dan kedua menunjukkan nilai yang tidak stabil, namun echoreply selanjutnya menunjukkan nilai yang stabil yaitu pada angka 8 detik dan 55.

Pada percobaan yang ketiga, data yang digunakan sebanyak 300 byte dengan timeoutsebesar 1 detik, 5 detik, dan 10 detik. Data 300 byte merupakan penyamaan besar data yang sama dengan 10 orang siswa. Kuat sinyal pada percobaan ketiga

600 600 600

8 8 8 8 8 8 8

255 255 255

55 55 55 55 55 55 55

15 15 8 8 8 8 8 8 8 8

55 55 55 55 55 55 55 55 55 55

15 10 8 8 8 8 8 8 8 8

255 255 255

55 55 55 55 55 55 55

0 100 200 300 400 500 600 700

1 2 3 4 5 6 7 8 9 10

D e la y ( s) T T L Echo Reply

Timeout 1 detik: Timeout 1 detik: Timeout 5 detik: Timeout 5 detik: Timeout 10 detik: Timeout 10 detik:


(88)

adalah sebesar -46,28 dBm. Sedangkan BER yaitu lebih kecil dari 0,2%. Gambar 4.27 menunjukkan grafik hasil pengujian.

Gambar 4.27 Grafik Pengujian Data 300 byte

Pada gambar 4.27 menunjukkan terjadi timeoutsebanyak tiga kali pada kondisi pengaturan timeout 1 detik. Timeoutterjadi pada echo replypertama, kedua, dan ketiga. Pada echo reply selanjutnya, nilai delay stabil pada angka 9 detik, sedangkan TTL menunjukkan nilai 55. Pada kondisi pengaturan nilai timeout 5 detik dan 10 detik, kondisi timeout tidak terpenuhi. Nilai delay dan TTL pada echo reply pertama dan kedua menunjukkan nilai yang tidak stabil, namun echoreply selanjutnya menunjukkan nilai yang stabil, yaitu pada angka 9 detik dan 55.

Pada percobaan yang keempat, data yang digunakan sebanyak 450 byte dengan timeoutsebesar 1 detik, 5 detik, dan 10 detik. Data 450 byte merupakan penyamaan besar data yang sama dengan 15 orang siswa. Kuat sinyal pada percobaan keempat

600 600 600

9 9 9 9 9 9 9

255 255 255

55 55 55 55 55 55 55

15 14 9 9 9 9 9 9 9 9

55 55 55 55 55 55 55 55 55 55

15 14 9 9 9 9 9 9 9 9

55 55 55 55 55 55 55 55 55 55

0 100 200 300 400 500 600 700

1 2 3 4 5 6 7 8 9 10

D e la y ( s) & T T L Echo Reply

Timeout 1 detik: Timeout 1 detik: Timeout 5 detik: Timeout 5 detik: Timeout 10 detik: Timeout 10 detik:


(89)

adalah sebesar -46,28 dBm. Sedangkan BER yaitu lebih kecil dari 0,2%. Gambar 4.28 menunjukkan grafik hasil pengujian.

Gambar 4.28 Grafik Pengujian Data 450 byte

Pada gambar 4.28 menunjukkan terjadi timeoutsebanyak tujuh kali pada kondisi pengaturan timeout 1 detik. Timeout tidakterjadi pada echo replyketujuh, kesembilan, dan kesepuluh. Pada echo reply tersebut, nilai delay stabil pada angka 9 detik, sedangkan TTL menunjukkan nilai 55. Pada kondisi pengaturan nilai timeout 5 detik dan 10 detik, kondisi timeout tidak terpenuhi. Nilai delay dan TTL pada echo reply pertama dan kedua menunjukkan nilai yang tidak stabil, namun echoreply selanjutnya menunjukkan nilai yang stabil yaitu pada angka 9 detik dan 55.

Pada percobaan yang kelima, data yang digunakan sebanyak 600 byte dengan timeoutsebesar 1 detik, 5 detik, dan 10 detik. Data 600 byte merupakan penyamaan besar data yang sama dengan 20 orang siswa. Kuat sinyal pada percobaan kelima

600 600 600 600 600 600

9

600

9 9

255 255 255 255 255 255

55

255

55 55

16 14 9 9 9 9 9 9 9 9

55 55 55 55 55 55 55 55 55 55

16 14 9 9 9 9 9 9 9 9

55 55 55 55 55 55 55 55 55 55

0 100 200 300 400 500 600 700

1 2 3 4 5 6 7 8 9 10

D e la y ( s) & T T l Echo Reply

Timeout 1 detik: Timeout 1 detik: Timeout 5 detik: Timeout 5 detik: Timeout 10 detik: Timeout 10 detik:


(90)

adalah sebesar -46,28 dBm. Sedangkan BER yaitu lebih kecil dari 0,2%. Gambar 4.29 menunjukkan grafik hasil pengujian.

Gambar 4.29 Grafik Pengujian Data 600 byte

Pada gambar 4.29 menuunjukkan terjadinya timeoutpada semua echo replypada kondisi pengaturan timeout 1 detik. Pada kondisi pengaturan nilai timeout 5 detik dan 10 detik, kondisi timeout tidak terpenuhi. Nilai delay dan TTL pada echo reply pertama menunjukkan nilai yang tidak stabil, namun echoreply selanjutnya menunjukkan nilai yang stabil yaitu pada angka 15 detik dan 55.

Pada percobaan yang keenam, data yang digunakan sebanyak 750 byte dengan timeoutsebesar 1 detik, 5 detik, dan 10 detik. Data 750 byte merupakan penyamaan besar data yang sama dengan 25 orang siswa. Kuat sinyal pada percobaan pertama adalah sebesar -46,28 dBm. Sedangkan BER yaitu lebih kecil dari 0,2%. Gambar

600 600 600 600 600 600 600 600 600 600

255 255 255 255 255 255 255 255 255 255

18 15 15 15 15 15 15 15 15 15

55 55 55 55 55 55 55 55 55 55

17 16 15 15 15 15 15 15 15 15

55 55 55 55 55 55 55 55 55 55

0 100 200 300 400 500 600 700

1 2 3 4 5 6 7 8 9 10

D e la y ( s) T T L Echo Reply

Timeout 1 detik: Timeout 1 detik: Timeout 5 detik: Timeout 5 detik: Timeout 10 detik: Timeout 10 detik:


(91)

4.30 menunjukkan grafik hasil pengujian.

Gambar 4.30 Grafik Pengujian Data 750 byte

Pada gambar 4.30 menuunjukkan terjadinya timeoutpada semua echo replypada kondisi pengaturan timeout 1 detik. Pada kondisi pengaturan nilai timeout 5 detik dan 10 detik, kondisi timeout tidak terpenuhi. Nilai delay dan TTL pada echo reply pertama menunjukkan nilai yang tidak stabil, namun echoreply selanjutnya menunjukkan nilai yang stabil yaitu pada angka 15 detik dan 55.

Dari enam buah grafik yang ada, menunjukkan data-data yang linear. Semakin banyak data yang dikirimkan, maka nilai delaybertambah, namun tidak memengaruhi nilai TTL. Hal ini disebabkan karena tujuan pengiriman PING pada IP yang sama dan menggunakan metode yang sama. Selain itu, nilai ketidakstabilan ditunjukkan pada

600 600 600 600 600 600 600 600 600 600

255 255 255 255 255 255 255 255 255 255

18 15 15 15 15 15 15 15 15 15

55 55 55 55 55 55 55 55 55 55

18 15 15 15 15 15 15 15 15 15

55 55 55 55 55 55 55 55 55 55

0 100 200 300 400 500 600 700

1 2 3 4 5 6 7 8 9 10

D e la y ( s) & T T L Echo Reply

Timeout 1 detik : Timeout 1 detik : Timeout 5 detik : Timeout 5 detik : Timeout 10 detik : Timeout 10 detik :


(92)

setiap awal echo reply, biasanya pada echo reply pertama dan kedua. SIM900 sebagai modul GPRS dapat menstabilkan nilai setelah echo reply pertama dan kedua. Pada grafik juga dapat dilihat bahwa timeouthanya tercapai pada pengaturan nilai timeout 1 detik. Untuk nilai pengaturan timeout 5 detik dan 10 detik tidak menunjukkan perbedaan yang signifikan. Hal ini dikarenakan SIM900 sudah mampu mengirim dan mendapat balasan PING dari alamat IP yang dituju selama kurang dari 5 detik.

4.13 Pengujian Sistem Absensi secara Keseluruhan

Pengujian secara keseluruhan dilakukan dengan menggabungkan keseluruhan perangkat dan mengujinya dengan menggunakan program pada lampiran A. Pengujian yang dilakukan meliputi pengaktifan absensi oleh tag RFID khusus yang hanya berfungsi untuk mengaktifkan dan menonaktfikan perangkat absensi. Pengujian yang selanjutnya membaca tagRFID dan memasukkan datanya ke website, dimana banyak tag RFID yang ada adalah 25 buah. Namun, tidak semua tag RFID dibaca. Hal ini dilakukan dengan maksud untuk melakukan pengujian yang selanjutnya yaitu pengiriman SMS. Jika tidak dilakukan pembacaan data oleh RFID reader maka Arduino Mega 2560 akan memerintahkan SIM900 untuk mengirim SMS kepada wali siswa dan memberitahukan bahwa siswa tersebut tidak hadir. Pengujian SMS dilakukan setelah sistem absensi dinonaktifkan. Pengujian yang terakhir adalah pengujian pembacaan log pada SD card dengan melihat file yang ada di dalam SD card.

Pada saat pertama kali dihidupkan Arduino akan melakukan inisialisasi dan konfigurasi terhadap perangkat yang digunakan. Inisialisasi meliputi pengaktifan


(93)

komunikasi serial, komunikasi I2C, dan komunikasi SPI. Konfigurasi yang dilakukan meliputi koneksi terhadap SIM900 dan GPRS. Gambar 4.31 menunjukkan hasil inisialiasi pada serial monitor.

Gambar 4.31 Hasil Inisialisasi Sistem Absensi

Pada gambar 4.31 menunjukkan hasil proses inisialisasi, dimana perangkat absensi telah mengaktifkan GPRS dan mempunyai IP 10.19.85.188. Setelah proses inisialisasi, Arduino akan menunggu nilai masukan dari reader RFID untuk mengaktifkan perangkat absensi. Gambar 4.32 menunjukkan proses pengaktifan perangkat absensi.


(94)

Gambar 4.32 Proses Pengaktifan Absensi

Proses pengaktifan hanya dilakukan dengan mendekatkan tag RFID dengan reader RFID. Pengaktifan absensi hanya dapat dilakukan oleh satu tagRFID saja. Gambar 4.33 menunjukkan hasil pengaktifan pada serial monitor.

Gambar 4.33 Hasil Pengaktifan pada Serial Monitor


(95)

Setelah perangkat diaktifkan, pengujian selanjutnya adalah pembacaan tagRFID yang dimiliki oleh siswa dan mengirimkan data siswa tersebut ke website.Gambar 4.34 menunjukkan proses pembacaan tag RFID.

Gambar 4.34 Proses Pembacaan TagRFID

Kondisi pembacaan tag RFID oleh reader RFID pada serial monitor dapat dilihat pada gambar 4.35.

Gambar 4.35 Pembacaan TagRFID pada Serial Monitor


(96)

Pada gambar 4.35 menunjukkan berhasilnya data dikirimkan ke website. Data yang ditampilkan pada website dapat dilihat pada Lampiran C, dimana diterima sebanyak 23 data NIP siswa. Dua buah data yang tidak hadir yaitu 120402021 dan 120402024. Data dua buah siswa yang tidak ini akan dijadikan patokan dalam pengiriman SMS.

Pengujian selanjutnya yang dilakukan adalah pengujian menonaktifkan perangkat absensi. Proses yang dilakukan serupa dengan proses mengaktifkan perangkat absensi. Tag RFID yang digunakan juga menggunakan tag RFID yang sama dengan tag RFID yang mengaktifkan perangkat absensi. Gambar 4.36 menunjukkan hasil proses penonaktifan perangkat absensi.

Gambar 4.36 ProsesPenonaktifan Perangkat Absensi pada Serial Monitor


(97)

Pengujian yang selanjutnya dilakukan adalah pengujian pengiriman SMS ke dua buah data yang tidak dimasukkan ke dalam website. Gambar 4.37 menunjukkan proses pengiriman SMS pada serial monitor.

Gambar 4.37 ProsesPengiriman SMS pada Serial Monitor

Pada Gambar 4.37 menunjukkan pengiriman dua buah sms bertuliskan “anak anda dengan nim 120402021, hari ini tidak hadir” dan “anak anda dengan nim 120402024, hari ini tidak hadir”. Pengujian ini menggunakan satu buah nomor tujuan yang sama. Gambar 4.38 menunjukkan SMS yang diterima pada nomor tujuan.


(98)

Gambar 4.38 PenerimaanSMS pada Nomor Tujuan

Pengujian yang terakhir dilakukan adalah pembacaan data pada SD card. Data yang terdapat pada SD card seharusnya tidak terdapat data siswa yang memiliki NIP 10204021 dan 120402024. Gambar 4.39 menunjukkan data pada SD card.

Gambar 4.39 Pembacaan Data pada SD Card


(99)

Pada Gambar 4.39 menunjukkan data yang ada pada SD card sesuai dengan data yang diharapkan, dimana tag RFID yang dibaca yang akan dimasukkan datanya ke dalam SD card.


(100)

BAB V PENUTUP

9.1Kesimpulan

Berdasarkan hasil pembahasan pada bab 4, maka dapat dibuat kesimpulan sebagai berikut:

1. Perangkat absensi hasil rancangan membutuhkan waktu yang lama pada proses inisialisasi dan konfigurasi sistem absensi.

2. Diperlukan rentang waktu 5 detik oleh perangkat absensi untuk mengirimkan sebuah data dengan FTP.

3. Secara default, pengiriman data hingga 750 byte mampu dilakukan dengan baik oleh perangkat absensi.

4. Timeout pengiriman data ke website hanya terjadi pada pengaturan nilai timeout 1 detik.

5. Nilai BER pada kuat sinyal -46,28 dBm adalah kurang dari 0,2%.

6. SIM900 mampu mendeteksi lokasi walaupun tidak memiliki fitur GPS dengan tingkat akurasi yang baik.


(1)

DAFTAR ISI

ABSTRAK ... i

KATA PENGANTAR ... ii

DAFTAR ISI ... vi

DAFTAR GAMBAR ... viii

DAFTAR TABEL ... xi

BAB I PENDAHULUAN ... 1

1.1 Latar Belakang Penulisan ... 1

1.2 Rumusan Masalah ... 2

1.3 Tujuan Penulisan ... 2

1.4 Batasan Masalah ... 2

1.5 Metode Penulisan ... 3

1.6 Sistematika Penulisan ... 4

BAB II LANDASAN TEORI ... 6

2.1 Sistem Absensi ... 6

2.2 GPRS ... 7

2.3 RFID ... 8

2.4 Kartu Cerdas ... 9

2.5 Arduino ... 10

2.5.1 Bahasa Pemrograman Arduino ... 12

2.5.1.1Struktur ... 12

2.5.1.2Konstanta ... 13

2.5.1.3 Fungsi Masukan dan Keluaran Digital ... 16

2.6 PING ... 16

BAB III METODOLOGI PENELITIAN ... 18

3.1 Umum ... 18

3.2 Gambaran Sistem Rancangan ... 19

3.3 Kebutuhan Sistem Absensi ... 20

3.3.1 Arduino Mega 2560 ... 21


(2)

3.3.1.2Memori Program ... 23

3.3.1.3Memori Data ... 24

3.3.1.4Memori Input/Output ... 25

3.3.1.5Catu Daya ... 25

3.3.2 Modul SD Card ... 26

3.3.3 Modul RFID MFRC522 ... 26

3.3.4 Modul RTC DS-1307 ... 28

3.3.5 Modul GSM/GPRS SIM900 ... 39

3.4 Perancangan Perangkat Keras ... 32

3.5 Perancangan Perangkat Lunak ... 33

3.5.1 Perancangan Program Arduino ... 33

3.3.5 Website ... 38

BAB IV PENGUJIAN DAN ANALISA DATA ... 40

4.1 Umum ... 40

4.2Implementasi ... 41

4.3 Pengujian dan Analisis Koneksi Arduino dengan RTC ... 43

4.4 Pengujian dan Analisis Koneksi Arduino dengan RFID ... 46

4.5 Pengujian dan Analisis Koneksi Arduino dengan Modul SD Card ... 48

4.6 Pengujian dan Analisis Pembacaan Data SD Card ... 50

4.7 Pengujian dan Analisis Koneksi Arduino dengan SIM900 ... 52

4.8 Pengujian dan Analisis Pengiriman SMS ... 54

4.9 Pengujian dan Analisis Lokasi Pengambilan Data ... 55

4.10 Pengujian dan Analisis Koneksi GPRS ... 57

4.11 Pengujian dan Analisis Koneksi ke Website ... 59

4.12 Pengujian dan Analisis Pengiriman Data ke Website ... 61

4.13 Pengujian Sistem Absensi secara Keseluruhan ... 68

BAB V PENUTUP ... 75

5.1 Kesimpulan ... 75

5.2 Saran ... 76 DAFTAR PUSTAKA


(3)

DAFTAR GAMBAR

Gambar 2.1 Arsitektur GPRS ... 7

Gambar 2.2 Komponen dalam Sistem RFID ... 9

Gambar 2.3 Standar Ukuran Identification Card ... 10

Gambar 2.4 Jenis-Jenis Arduino ... 11

Gambar 2.5 Struktur Umum Pemrograman Arduino ... 12

Gambar 2.6 Analogi Struktur Umum Pemrograman Arduino ... 13

Gambar 2.7 Fungsi Sintaks pinMode ... 15

Gambar 2.8 Fungsi Sintaks digitalWrite ... 15

Gambar 2.9 Fungsi Sintaks digitalRead ... 15

Gambar 2.10 Implementasi Sintaks pada Program Arduino ... 16

Gambar 2.11 PING pada Command Prompt ... 17

Gambar 3.1 Model Sistem Rancangan ... 19

Gambar 3.2 Arduino Mega 2560 ... 22

Gambar 3.3 Konfigurasi Pin ATMega 2560 ... 23

Gambar 3.4 Peta Memori Program ... 24

Gambar 3.5 Modul SD Card ... 26

Gambar 3.6 Modul MFRC522... 27

Gambar 3.7 Mifare Ultralight ... 28

Gambar 3.8 Modul RTC DS-1307 ... 29

Gambar 3.9 Modul GPRSSim900 ... 30

Gambar 3.10 Rangkaian Skematik Sistem Absensi ... 31

Gambar 3.11 Diagram Alir Penulisan EEPROM ... 34

Gambar 3.12 Diagram Alir Sistem Absensi ... 35

Gambar 3.13 Arduino IDE ... 36

Gambar 3.14 Penampil Data di Pubnub ... 39

Gambar 4.1 Perangkat-Perangkat Keras Sistem Absensi ... 41

Gambar 4.2 ShieldArduino Mega 2560 ... 42


(4)

Gambar 4.4 Perangkat Pengujian Modul RTC ... 44

Gambar 4.5 Pengujian Modul RTC ... 44

Gambar 4.6 Hasil Pengujian Koneksi RTC dengan Arduino ... 45

Gambar 4.7 Perangkat Pengujian Modul RFID ... 46

Gambar 4.8 Proses Pengujian Modul RFID ... 47

Gambar 4.9 Hasil Pengujian Koneksi RFID dengan Arduino ... 47

Gambar 4.10 Perangkat Pengujian Modul SD Card ... 48

Gambar 4.11 Proses Pengujian Modul SD Card ... 49

Gambar 4.12 Hasil Pengujian Koneksi Modul SD Card dengan Arduino ... 50

Gambar 4.13 Hasil Pengujian Penulisan Data SD card ... 51

Gambar 4.14 Hasil Pengujian FileTeks di dalam SD Card ... 51

Gambar 4.15 Perangkat Pengujian Koneksi SIM900 ... 52

Gambar 4.16 Proses Pengujian Koneksi SIM900 ... 53

Gambar 4.17 Hasil Pengujian Koneksi SIM900 dengan Arduino... 53

Gambar 4.18 Kondisi Pengujian Pengiriman SMS ... 54

Gambar 4.19 Hasil Pengujian Pengiriman SMS pada Sisi Penerima ... 55

Gambar 4.20 Hasil Pengujian Pengecekan Lokasi ... 56

Gambar 4.21 Lokasi pada Google Map ... 57

Gambar 4.22 Hasil Pengujian Koneksi GPRS... 58

Gambar 4.23 Grafik Pengujian Koneksi GPRS... 58

Gambar 4.24 Hasil Pengujian Koneksi ke Pubnub... 60

Gambar 4.25 Grafik Pengujian Data 30 byte ... 62

Gambar 4.26 Grafik Pengujian Data 150 byte ... 63

Gambar 4.27 Grafik Pengujian Data 300 byte ... 64

Gambar 4.28 Grafik Pengujian Data 450 byte ... 65

Gambar 4.29 Grafik Pengujian Data 600 byte ... 66

Gambar 4.30 Grafik Pengujian Data 750 byte ... 67

Gambar 4.31 Hasil Inisialisasi Sistem Absensi ... 69

Gambar 4.32 Proses Pengaktifan Absensi ... 70

Gambar 4.33 Hasil Pengaktifan pada Serial Monitor... 70


(5)

Gambar 4.35 Pembacaan TagRFID pada Serial Monitor... 71

Gambar 4.36 ProsesPenonaktifan Perangkat Absensi pada Serial Monitor ... 72

Gambar 4.37 ProsesPengiriman SMS pada Serial Monitor ... 73

Gambar 4.38 PenerimaanSMS pada Nomor Tujuan ... 73


(6)

DAFTAR TABEL