TUGAS KE 2 ALGORITMA DAN PEMROGRAMAN
TUGAS 2 ALGORITMA DAN PEMROGRAMAN
Listing Program TUGAS 1
#include <EEPROM.h> // Memanggil Library EEPROM
#include <SPI.h> // Memanggil Library SPI
#include <MFRC522.h> // Memanggil Library
MFRC522
#include <LiquidCrystal.h>
LiquidCrystallcd(7, 6, 5, 4, 3, 2); //Inisialisasi pin
lcdpadaarduino
boolean match = false;
booleanprogramMode = false;
byte storedCard[4];
byte readCard[4];
byte masterCard[4] = {0x30,0x08,0xda,0x0e}; // UID
kartu yang diijinkanmasuk : EC9FE97
byte masterCard1[4] = {0x0D,0x13,0xed,0x6c}; // UID
kartu yang diijinkanmasuk : EC9FE97
int motor1 = A0; Inisialisasi
pin motor dcpadaarduino
int motor2 = A1;
#define SS_PIN 10 Inisialisasi
pin SS dan RST mfrc522padaarduino
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);
void setup() {
Serial.begin(9600);
SPI.begin();
mfrc522.PCD_Init();
lcd.begin(16,2);
pinMode (motor1, OUTPUT);
pinMode (motor2, OUTPUT); //tampilanawal output padalcd
lcd.setCursor(0,0);lcd.print(" SelamatDatang
");
lcd.setCursor(0,1);lcd.print(" Di TPS
");
delay(5000);
lcd.clear();
lcd.setCursor(0,0);lcd.print("Total :");
lcd.setCursor(8,0);lcd.print(" KOSONG ");
}
void loop ()
{
intsuccessRead;
do
{
successRead = getID();
}
while
(!successRead);
if
(isMaster(readCard)) // Jikakartu yang di didekatkankepembacaadalah MasterCard
(EC9FE97) Makaakanmuncul :
{
count++;
Serial.println("Anda di izinkan untuk masuk!");
Serial.println("");
Serial.println("===================================================");
Serial.println("");
lcd.setCursor(0,0);
lcd.print(" SelamatDatang ");
lcd.setCursor(0,1);
lcd.print("PemilihKe:");
lcd.setCursor(12,1);
lcd.print(count);
lcd.setCursor(14,1);
lcd.print(" ");
Serial.println(count);
digitalWrite (motor1, HIGH);
digitalWrite (motor2, LOW);
delay(500);
digitalWrite (motor1, LOW);
digitalWrite (motor2, LOW);
delay(500);
digitalWrite (motor1, LOW);
digitalWrite (motor2, HIGH);
delay(500);
digitalWrite (motor1, LOW);
digitalWrite (motor2, LOW);
}
else //
Jikakartu yang didekatkankepembaca BUKAN MasterCard (EC9FE97) Makaakanmuncul :
{
Serial.println("Anda DILARANG MASUK !!");
Serial.println("");
Serial.println("===================================================");
Serial.println("");
lcd.setCursor(0,0);
lcd.print("
MAAF ");
lcd.setCursor(0,1);
lcd.print("ANDA DILARANG!!!");
delay(1000);
lcd.clear();
}
lcd.setCursor(0,0);
lcd.print(" SelamatDatang ");
lcd.setCursor(0,1);
lcd.print("total:");
lcd.setCursor(6,1);
lcd.print(count);
lcd.setCursor(8,1);
lcd.print(" ");
Serial.println(count);
}
intgetID()
{
if ( !
mfrc522.PICC_IsNewCardPresent())
{
return 0;
}
if ( !
mfrc522.PICC_ReadCardSerial())
{
return 0;
}
Serial.print("NOMOR ID ANDA ADALAH : ");
for (byte i =
0; i< mfrc522.uid.size; i++) {
readCard[i] = mfrc522.uid.uidByte[i];
Serial.print(readCard[i], HEX);
}
Serial.println("");
Serial.println("");
mfrc522.PICC_HaltA();
return 1;
}
void readID( int number ) {
int start = (number * 4 ) - 3;
for ( inti =
0; i< 4; i++ ) {
storedCard[i] = EEPROM.read(start+i);
}
}
booleancheckTwo( byte a[], byte b[] ) {
if ( a[0] !=
NULL )
match =
true;
for ( int k =
0; k < 4; k++ ) {
if ( a[k] !=
b[k] )
match =
false;
}
if ( match ) {
return true;
}
else {
return
false;
}
}
booleanisMaster( byte test[] ) {
if ( checkTwo(
test, masterCard1 ) )
return true;
if (
checkTwo( test, masterCard ) )
return true;
else
return
false;
|
NO
|
LISTING PROGRAM
|
PENJELASAN
|
|
1.
|
#include <EEPROM.h>
|
Memanggil Library EEPROM pada arduino
|
|
2.
|
#include <SPI.h>
|
Memanggil Library SPI pada arduino
|
|
3.
|
#include <MFRC522.h>
|
Memanggil Library MFRC522 pada arduino
|
|
4.
|
#include <LiquidCrystal.h>
|
Memanggil Library LCD pada arduino
|
|
5.
|
LiquidCrystallcd(7, 6, 5, 4, 3, 2);
|
Maksud dari listing ini adalah, mengatur letak
dimana port yang akan kita gunakan nanti, yaitu di port(7,6,5,4,3,2);
|
|
6.
|
boolean match = false;
|
Merupakan penjelasan bahwa nilai variable Boolean
match bernilai false/tidak aktif
|
|
7.
|
booleanprogramMode = false;
|
Merupakan penjelasan bahwa nilai variable
booleanprogrammatchnya=false atau tidak aktif
|
|
8.
|
byte storedCard[4];
byte readCard[4];
|
Merupakan penjelasan bahwa kartu penyimpaan dan
pembaca kartunya dalam bentuk byte dan memiliki 4 kartu
|
|
9.
|
bytemasterCard[4]={0x30,0x08,0xda,0x0e};
|
Merupakan penjabaran dari kartu yang akan di dapat
di tag ataupun diizinkan nanti yang barcode EC9FE97
|
|
10.
|
bytemasterCard1[4]={0x0D,0x13,0xed,0x6c};
|
Merupakan penjabaran dari kartu yang tidak dapat di tag ataupun diizinkan nanti yang
barcode EC9FE97
|
|
11.
|
int count = 0;
int motor1 = A0;
int motor2 = A1;
|
Penjabaran tentang nilai integer pada arduino = 0
dan tempat penempatan pin pada arduino motor ada di pin A0 & A1.
|
|
12.
|
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);
|
Memanggil library SS dan RST pada pin 10 dan 9 serta
menempatkan Inisialisasi pin SS dan RST mfrc522 pada arduino.
|
|
13.
|
void setup() {
Serial.begin(9600);
|
membuka serial port, mensetting kecepatan data
ke9600bps
|
|
14.
|
SPI.begin();
|
Memulai untuk menjalankan kodingan SPI sesuai dengan
pemanggilan library awal.
|
|
15.
|
mfrc522.PCD_Init();
|
Merupakan penginialisasian mfrc522 pada PCD di arduino.
|
|
16.
|
lcd.begin(16,2);
|
Merupakan pemrograman yang menjelaskan bahwa lcd
yang kita pakai 16 * 2.
|
|
17.
|
pinMode (motor1, OUTPUT);
pinMode (motor2, OUTPUT);
|
Mengatur pinnya sebagai output dari input yang telah
kita koding yaitu outputnya berupa motor1 dan motor2.
|
|
18
|
lcd.setCursor(0,0);lcd.print(" SelamatDatang
");
lcd.setCursor(0,1);lcd.print(" Di TPS ");
delay(5000);
|
Merupakan pengaturan pada baris ke 0 dan kolom ke 0
dengan tulisan “selamat datang”.
pengaturan pada baris ke 0 dan kolom ke 1 dengan
tulisan “ DiTPS”.
Setelah ituh dia akan mendelay selama 5 detik
|
|
19.
|
lcd.clear();
lcd.setCursor(0,0);lcd.print("Total :");
lcd.setCursor(8,0);lcd.print(" KOSONG ");
}
|
Menghapus LCD setelah dia melakukan pengaturan LCD.
Lalu mengatur lagi pada baris ke 0 kolok ke 0 dengan tulisan”total” dan Lalu
mengatur lagi pada baris ke 8 kolok ke 0 dengan tulisan”kosong”
|
|
20.
|
void loop ()
{
intsuccessRead;
do
{
successRead = getID();
}
|
Menjelaskan bahwa variable successread itu bersifat
integer. Lalu variable tersebut melakukan perulangan. Yang merupakan jika
variable successRead dia akan mendapatkan ID dari listing yang pertama
dikoding tadi.
|
|
21.
|
while
(!successRead);
if
(isMaster(readCard))
count++;
Serial.println("Anda di izinkan untuk masuk!");
Serial.println("");
Serial.println("===========================");
Serial.println("");
|
Jika kartu
yang di didekatkan kepembaca
adalah
MasterCard (EC9FE97) Maka akan
muncul
tulisan pada tampilan serial monitor di arduino “Anda di izinkan untuk masuk”
|
|
22.
|
lcd.setCursor(0,0);
lcd.print(" SelamatDatang ");
lcd.setCursor(0,1);
lcd.print("PemilihKe:");
lcd.setCursor(12,1);
lcd.print(count);
lcd.setCursor(14,1);
lcd.print(" ");
Serial.println(count);
|
Lalu program akan mengatur lagi tampilan output LCD
pada baris dan kolom 0 dengan tulisan “selamatdatang”. Dan kembali mengatur
lagi tampilan output LCD pada baris 0 dan kolom 1 dengan tulisan “Pemilih
ke”.
Dan pada kolom 12 baris ke 1 dia akan otomatis
menghitung jumlah seterusnya sesuai dengan perulangan diawal tadi. Dan pada
kolom 1baris ke 1 dia akan menampilkan otomatis pada monitor diarduino sesuai
dengan urutan selanjutnya.
|
|
23.
|
digitalWrite (motor1, HIGH);
digitalWrite (motor2, LOW);
delay(500);
digitalWrite (motor1, LOW);
digitalWrite (motor2, LOW);
delay(500);
digitalWrite (motor1, LOW);
digitalWrite (motor2, HIGH);
delay(500);
digitalWrite (motor1, LOW);
digitalWrite (motor2, LOW);
|
Lalu motor1 akan bergerak. Setelah delay yang telah
diatur waktunya, maka motor keduanya akan mati sesuai dengan kondisi.
Kemudian motor2 akan bergerak lagi. Setelah delay keduakalinya dia akan mati.
|
|
24.
|
else
{
Serial.println("Anda DILARANG MASUK !!");
Serial.println("");
Serial.println("====================");
|
Jika Jikakartu yang didekatkan kepembaca BUKANMasterCard(EC9FE97) Maka
akan
muncul :
“Anda DILARANG MASUK”
|
|
25.
|
Serial.println("");
lcd.setCursor(0,0);
lcd.print("
MAAF ");
lcd.setCursor(0,1);
lcd.print("ANDA DILARANG!!!");
delay(1000);
lcd.clear();
|
Lalu program akan mengatur lagi tampilan output LCD
pada baris dan kolom 0 dengan tulisan “MAAF”. Dan kembali mengatur lagi
tampilan output LCD pada baris 0 dan kolom 1 dengan tulisan “ANDA DILARANG”.
Dan pada kolom 12 baris ke 1 dia akan otomatis
menghitung jumlah seterusnya sesuai dengan perulangan diawal tadi. Dan pada
kolom 1baris ke 1 dia akan menampilkan otomatis pada monitor diarduino sesuai
dengan urutan selanjutnya.
|
|
26.
|
}
lcd.setCursor(0,0);
lcd.print(" SelamatDatang ");
lcd.setCursor(0,1);
lcd.print("total:");
lcd.setCursor(6,1);
lcd.print(count);
lcd.setCursor(8,1);
lcd.print(" ");
Serial.println(count);
}
|
Setela,h ituh LCD akan mengulang kembali tampilan
nya pada baris dan kolom 0 dengan tulisan selamat datang, dan pada baris 0
kolom 1 akan ada tulisan “total” pada LCD, dan pada kolom 6 baris ke 1 dia akan
mneghitung ulang kembali. Lalu pada kolom 8 baris ke 1 serial monitor pada arduino akan otomatis menghitung
urutan selanjutnya.
|
|
27.
|
intgetID()
{
if ( !
mfrc522.PICC_IsNewCardPresent())
{
return 0;
}
if ( !
mfrc522.PICC_ReadCardSerial())
{
return 0;
}
|
Untuk mengautentifikasikan kartu RFID.
|
|
28.
|
|
|
SEKIAN DARI SAYA. TUGAS INI MURNI SAYA YANG MEMBUATNYA SENDIRI DAN ADA HAK CIPTANYA AGAR TIDAK MENGCOPAS MAKASIH.
tugas algoritma dan pemrograman kasus teknik elektro
SISTEM MONITORING PEMILU DENGAN RFID
BERBASIS MIKROKONTROLER ARDUINO
UNO
A.
flowchart

Penjelasan algoritma
daripada flowchart sistem
monitoring pemilu dengan RFID berbasis mikrokontroler arduino uno:
1.) untuk memulai suatu program alur,
diawali dengan “start”. yaitu dimana memulai suatu alat dengan memberikan tegangan seperti batrei, power
supply, dan kabel jak.
2.) Setelah itu memberikan daya yaitu
dimana dalam memulai suatu alat dengan memberikan tegangan seperti batrei, power
supply, dan kabel jak.
3.) Jika tidak ada daya maka dia akan
otomatis selesai, atau mengakhiri alur tersebut.
4.) jika sudah selesai, lalu inialisasi
dimana mikrokontroller mengaktifkan seluruh port yang telah digunakan
5.) setelah selesai, masukkan kartu tag RFID
pasif untuk mengaktifkan input dari program diagram alur ini.
6.) Kalau sudah selesai, tag RFID akan
dibaca oleh tag RFID reader. Untuk segera
melakukan proses.
7.) Ketika telah dibaca maka, Tag RFID
yang telah diinput akan terbaca dan mengaktifkan proses-prosesnya yaitu, jika telah terdata maka pemilih bisa melakukan proses pemilihan dan pnghalang akan
terbuka, serta muncul tulisan "selamat memilih"
8.) jika tag RFID tidak terbaca, maka pemilih tidak
bisa melakukan pemilihan dan penghalang akan tertutup serta keluar tulisan "maaf
anda tidak terdaftar".
9.) Jika dia tidak terdaftar maka alur program akan
langsung ke alur masukkan kartu, dan kembali melakukan tag RFID kembali.
Nama : Christian manasye
Kelas : 3IB05C
Npm : 12414384
Sumber :
http://library.gunadarma.ac.id/repository/search/?_cari=1&jenis=pi&nama=&fakultas_id=1&subjek=&judul=SISTEM+MONITORING+PEMILU+DENGAN+RFID+BERBASIS+MIKROKONTROLER+ARDUINO+UNO&npm=29113309&no_induk=&pembimbing=&cari=++Pencarian+Data++