Kamis, 20 Desember 2018

program quadrued berdiri

 #include <Servo.h>
int LEDhijau = A3, LEDmerah = A2, LEDcampur = A4;
Servo servoku13;
Servo servoku2;
Servo servoku3;
Servo servoku4;
Servo servoku5;
Servo servoku6;
Servo servoku7;
Servo servoku8;
Servo servoku9;
Servo servoku10;
Servo servoku11;
Servo servoku12;

void setup() {
 pinMode(LEDmerah, OUTPUT); //Set LEDmerah sebagai output
 pinMode(LEDhijau, OUTPUT); //Set LEDhijau sebagai output
  pinMode(LEDcampur, OUTPUT); //Set LEDhijau sebagai output


 
  servoku13.attach(13); 
servoku2.attach(2); 
servoku3.attach(3);
servoku4.attach(4); 
servoku5.attach(5); 
servoku6.attach(6); 
servoku7.attach(7);
servoku8.attach(8); 
servoku9.attach(9); 
servoku10.attach(10);
servoku11.attach(11); 
servoku12.attach(12);


}

void loop() {


 
  servoku4.write(130); //atas
servoku5.write(40);
servoku6.write(115);

 servoku13.write(70); //atas
servoku2.write(35);
servoku3.write(70);

servoku7.write(130); //tengah //kaki belakang
servoku8.write(150);
servoku9.write(93);

servoku10.write(120); //tengah //kaki belakang
servoku11.write(40);
servoku12.write(60);

////=====kaki tegak belakang====////



 servoku13.write(70); //atas
servoku2.write(70);
servoku3.write(105);


servoku4.write(130); //atas
servoku5.write(15);
servoku6.write(90);


servoku7.write(160); //tengah //kaki belakang
servoku8.write(150);
servoku9.write(95);

servoku10.write(80); //tengah //kaki belakang
servoku11.write(20);
servoku12.write(45);
 
 
///=================////tegak belok kiri///===
servoku4.write(130); //atas
servoku5.write(20);
servoku6.write(90);

 servoku13.write(70); //atas
servoku2.write(50);
servoku3.write(95);

servoku7.write(130); //tengah //kaki belakang
servoku8.write(150);
servoku9.write(93);

servoku10.write(120); //tengah //kaki belakang
servoku11.write(40);
servoku12.write(60);

}

pemrograman robt quadruped ciptaan tatang xman putra recpeck 619


(belok kiri)

#include <Servo.h>
int LEDhijau = A3, LEDmerah = A2, LEDcampur = A4;
Servo servoku13;
Servo servoku2;
Servo servoku3;
Servo servoku4;
Servo servoku5;
Servo servoku6;
Servo servoku7;
Servo servoku8;
Servo servoku9;
Servo servoku10;
Servo servoku11;
Servo servoku12;

void setup() {
 pinMode(LEDmerah, OUTPUT); //Set LEDmerah sebagai output
 pinMode(LEDhijau, OUTPUT); //Set LEDhijau sebagai output
  pinMode(LEDcampur, OUTPUT); //Set LEDhijau sebagai output


 
  servoku13.attach(13); 
servoku2.attach(2); 
servoku3.attach(3);
servoku4.attach(4); 
servoku5.attach(5); 
servoku6.attach(6); 
servoku7.attach(7);
servoku8.attach(8); 
servoku9.attach(9); 
servoku10.attach(10);
servoku11.attach(11); 
servoku12.attach(12);


}

void loop() {
  servoku13.write(90); //bawah
 delay(100);
servoku2.write(30);
servoku8.write(140);
 delay(50);
servoku13.write(30); //atas
servoku7.write(140); //tengah //kaki belakang
delay(100);

servoku5.write(50);
servoku2.write(50);
 delay(50);
servoku4.write(100); //atas
servoku13.write(60); //tengah
 delay(100);

 servoku11.write(20);
delay(50);
servoku10.write(60); //atas //kaki belakang
 delay(100);
servoku5.write(30);
 delay(50);
servoku4.write(120); //tengah
 servoku13.write(90); //bawah
 servoku7.write(160);
 delay(100);



servoku8.write(170);
delay(50);
servoku7.write(100); //atas //kaki belakang
delay(100);
servoku8.write(140);
servoku11.write(40);
delay(50);
servoku7.write(140); //tengah //kaki belakang
servoku10.write(100); //tengah //kaki belakang
servoku4.write(150); //bawah
delay(100);



servoku6.write(110);
 servoku3.write(95);
 servoku9.write(93);
 servoku12.write(50);

}


{belok kanan}


#include <Servo.h>
int LEDhijau = A3, LEDmerah = A2, LEDcampur = A4;
Servo servoku13;
Servo servoku2;
Servo servoku3;
Servo servoku4;
Servo servoku5;
Servo servoku6;
Servo servoku7;
Servo servoku8;
Servo servoku9;
Servo servoku10;
Servo servoku11;
Servo servoku12;

void setup() {
 pinMode(LEDmerah, OUTPUT); //Set LEDmerah sebagai output
 pinMode(LEDhijau, OUTPUT); //Set LEDhijau sebagai output
  pinMode(LEDcampur, OUTPUT); //Set LEDhijau sebagai output


 
  servoku13.attach(13); 
servoku2.attach(2); 
servoku3.attach(3);
servoku4.attach(4); 
servoku5.attach(5); 
servoku6.attach(6); 
servoku7.attach(7);
servoku8.attach(8); 
servoku9.attach(9); 
servoku10.attach(10);
servoku11.attach(11); 
servoku12.attach(12);


}

void loop() {

servoku4.write(90); //bawah
delay(200);
servoku5.write(40);
servoku11.write(40);
 delay(50);
servoku4.write(150); //atas
servoku10.write(100); //tengah //kaki belakang
servoku7.write(100); //bawah //kaki belakang
delay(200);

servoku5.write(20);
servoku2.write(30);
 delay(50);
servoku13.write(110); //atas
servoku4.write(120); //tengah
servoku10.write(60); //bawah
 delay(200);


servoku8.write(170);
servoku2.write(50);
delay(50);
servoku7.write(177); //atas //kaki belakang
servoku13.write(90); //tengah
servoku4.write(130); //bawah
delay(200);


servoku11.write(20);
servoku8.write(150);
delay(50);
servoku10.write(120); //atas //kaki belakang
servoku7.write(150); //tengah //kaki belakang
servoku13.write(50); //bawah
 delay(200);



servoku6.write(85);
 servoku3.write(95);
 servoku9.write(93);
 servoku12.write(60);

}



{maju}

#include <Servo.h>
int LEDhijau = A3, LEDmerah = A2, LEDcampur = A4;
Servo servoku13;
Servo servoku2;
Servo servoku3;
Servo servoku4;
Servo servoku5;
Servo servoku6;
Servo servoku7;
Servo servoku8;
Servo servoku9;
Servo servoku10;
Servo servoku11;
Servo servoku12;

void setup() {
 pinMode(LEDmerah, OUTPUT); //Set LEDmerah sebagai output
 pinMode(LEDhijau, OUTPUT); //Set LEDhijau sebagai output
  pinMode(LEDcampur, OUTPUT); //Set LEDhijau sebagai output


 
  servoku13.attach(13); 
servoku2.attach(2); 
servoku3.attach(3);
servoku4.attach(4); 
servoku5.attach(5); 
servoku6.attach(6); 
servoku7.attach(7);
servoku8.attach(8); 
servoku9.attach(9); 
servoku10.attach(10);
servoku11.attach(11); 
servoku12.attach(12);


}

void loop() {
 


servoku8.write(170);
delay(50);
servoku7.write(100); //atas //kaki belakang
delay(200);
servoku8.write(140);
delay(50);


servoku2.write(15);
 delay(50);
servoku13.write(30); //atas
 delay(200);
servoku2.write(35);
 delay(70);
servoku13.write(60); //tengah


 servoku7.write(120); //tengah //kaki belakang
servoku10.write(50); //bawah //kaki belakang
servoku4.write(70); //bawah
delay(200);

/////////////============kaki kanan======///////

servoku11.write(20);
delay(50);
servoku10.write(120); //atas //kaki belakang
 delay(200);
servoku11.write(40);
delay(50);



servoku5.write(60);
 delay(50);
servoku4.write(130); //atas
delay(200);
servoku5.write(40);
 delay(70);
servoku4.write(100); //tengah
servoku7.write(150); //bawah //kaki belakang
servoku13.write(100); //bawah
servoku10.write(100); //tengah
delay(200);



servoku3.write(70);
servoku9.write(90);
servoku6.write(115);
servoku12.write(60);



}

{mundur}

 #include <Servo.h>
int LEDhijau = A3, LEDmerah = A2, LEDcampur = A4;
Servo servoku13;
Servo servoku2;
Servo servoku3;
Servo servoku4;
Servo servoku5;
Servo servoku6;
Servo servoku7;
Servo servoku8;
Servo servoku9;
Servo servoku10;
Servo servoku11;
Servo servoku12;

void setup() {
 pinMode(LEDmerah, OUTPUT); //Set LEDmerah sebagai output
 pinMode(LEDhijau, OUTPUT); //Set LEDhijau sebagai output
  pinMode(LEDcampur, OUTPUT); //Set LEDhijau sebagai output


 
  servoku13.attach(13); 
servoku2.attach(2); 
servoku3.attach(3);
servoku4.attach(4); 
servoku5.attach(5); 
servoku6.attach(6); 
servoku7.attach(7);
servoku8.attach(8); 
servoku9.attach(9); 
servoku10.attach(10);
servoku11.attach(11); 
servoku12.attach(12);


}

void loop() {


servoku2.write(50);
 delay(50);
servoku13.write(130); //atas
 delay(200);
servoku2.write(70);
 delay(50);


servoku8.write(170);
delay(50);
servoku7.write(170); //atas //kaki belakang
delay(200);
servoku8.write(150);
delay(70);

servoku7.write(150); //tengah //kaki belakang
servoku13.write(80); //tengah
servoku10.write(110); //bawah //kaki belakang
servoku4.write(130); //bawah
delay(200);



//////////================//////////



servoku5.write(35);
 delay(50);
servoku4.write(80); //atas
delay(200);
servoku5.write(15);
 delay(50);

servoku11.write(0);
delay(50);
servoku10.write(70); //atas //kaki belakang
 delay(200);
servoku11.write(20);
delay(70);

servoku4.write(110); //tengah
servoku10.write(90); //tengah //kaki belakang
 servoku13.write(50); //bawah
 servoku7.write(130); //bawah //kaki belakang
 delay(200);

servoku7.write(130);
servoku6.write(80);
 servoku3.write(105);
servoku12.write(50);

}











Rabu, 12 Desember 2018

program kontrol motor dc dan motor servo dengan android

#include <Servo.h>
Servo myservo1, myservo2, myservo3;
String readdata;

void setup() {
Serial.begin(9600);
myservo1.attach(7);
myservo2.attach(8);
myservo3.attach(9);
pinMode(4, OUTPUT);
pinMode(2, OUTPUT);
pinMode(5, OUTPUT);
pinMode(3, OUTPUT);

}
//-----------------------------------------------------------------------//
void loop() {
while (Serial.available()){ 
delay(10);
  char c = Serial.read();
readdata += c;
  }
if (readdata.length() > 0) {
Serial.println(readdata);

if(readdata == "maju")
  {
digitalWrite(4, HIGH);
digitalWrite (2, HIGH);
digitalWrite(5,LOW);
digitalWrite(3,LOW);
delay(100);

  }
  else if(readdata == "mundur")
  {
digitalWrite(4, LOW);
digitalWrite(2, LOW);
digitalWrite(5, HIGH);
digitalWrite(3,HIGH);
delay(100);
  }

else if (readdata == "kanan")
  {

digitalWrite (4, LOW);
digitalWrite (2, HIGH);
digitalWrite (5, HIGH);
digitalWrite (3, LOW);
delay (100);
  }

else if ( readdata == "kiri")
 {

digitalWrite (4,HIGH);
digitalWrite (2,LOW);
digitalWrite (5,LOW);
digitalWrite (3,HIGH);
delay (100);
 }

else if (readdata == "stop")
 {
digitalWrite (4, LOW);
digitalWrite (2, LOW);
digitalWrite (5, LOW);
digitalWrite (3, LOW);
delay (100);
 }

 ///////////+++++++batas lengan+++++///////////

else if(readdata == "rebah") //posisi kedua
  {
 myservo1.write(120); ///rebah
  myservo2.write(100);
   myservo3.write(20);
{
  delay(1500);
}
 myservo1.write(120); //buka
  myservo2.write(125);
     myservo3.write(30);
{
  delay(1500);
}
  }

else if (readdata == "jepit") //posisi ke 3
  {
  myservo1.write(120); ///jepit
  myservo2.write(125);
     myservo3.write(70);
{
  delay(1500);
}
     myservo1.write(100); //posisi angkat belakang
  myservo2.write(180);
     myservo3.write(70);
{
  delay(1500);
}
     myservo1.write(20); //posisi buang
  myservo2.write(180);
     myservo3.write(70);
{
  delay(1500);
}

  }
else if ( readdata == "buka") //posisi 4
 {
myservo1.write(20); //posisi buka
  myservo2.write(180);
     myservo3.write(30);

 {
  delay(1500);
  }
 }

else if (readdata == "otomatis") //posisi 5
 {
myservo1.write(0); //posisi awal
  myservo2.write(0);
   myservo3.write(70);
{
  delay(1500);
}
myservo1.write(50); //posisi awal 2
  myservo2.write(0);
   myservo3.write(70);
{
  delay(1500);
}
   myservo1.write(120); ///rebah
  myservo2.write(100);
   myservo3.write(20);
{
  delay(1500);
}
 myservo1.write(120); //buka
  myservo2.write(125);
     myservo3.write(30);
{
  delay(1500);
}
      myservo1.write(120); ///jepit
  myservo2.write(125);
     myservo3.write(70);
{
  delay(1500);
}
     myservo1.write(100); //posisi angkat belakang
  myservo2.write(180);
     myservo3.write(70);
{
  delay(1500);
}
     myservo1.write(20); //posisi buang
  myservo2.write(180);
     myservo3.write(70);
{
  delay(1500);
}
  myservo1.write(20); //posisi buka
  myservo2.write(180);
     myservo3.write(30);

 {
  delay(1500);
  }
 }


 else if ( readdata == "1") //posisi 4
 {
myservo1.write(140); ///rebah
  myservo2.write(140);
   myservo3.write(20);
  }

readdata="";}} //Reset the variable

Rabu, 14 November 2018

sensor pendeteksi banjir


#define trigPin 7
#define echoPin 6
#define ledaman 8
#define led1 9
#define led2 10
#define led3 11





void setup() {
 Serial.begin (505200);
 pinMode(trigPin, OUTPUT);
 pinMode(echoPin, INPUT);

 pinMode(ledaman, OUTPUT);
 pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);

}

void loop() {
 long duration, distance;
 digitalWrite(trigPin, LOW);
 delayMicroseconds(2);
 digitalWrite(trigPin, HIGH);
 delayMicroseconds(10);
 digitalWrite(trigPin, LOW);
 duration = pulseIn(echoPin, HIGH);
 distance = (duration/2) / 29.1;

if(distance>=16) {
  digitalWrite(ledaman, HIGH);
  digitalWrite(led1, LOW);
  digitalWrite(led2, LOW);
  digitalWrite(led3, LOW);
}
else {
   digitalWrite(ledaman, LOW);
}
if(distance <= 15) {
 digitalWrite(led1, HIGH);
  digitalWrite(led2, LOW);
  digitalWrite(led3, LOW);
}

if(distance < 10) {
   digitalWrite(led2, HIGH);
  digitalWrite(led1, LOW);
  digitalWrite(led3, LOW);
}

if(distance < 5) {
  digitalWrite(led3, HIGH);
  digitalWrite(led2, LOW);
  digitalWrite(led1, LOW);
}

delay(500);
}





buka pintu dengan kartu acces

//Viral Science
//RFID
#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h>

#define SS_PIN 10
#define RST_PIN 9
#define LED_G 4 //define green LED pin
#define LED_R 5 //define red LED
#define BUZZER 2 //buzzer pin
MFRC522 mfrc522(SS_PIN, RST_PIN);   // Create MFRC522 instance.
Servo myServo; //define servo name

void setup()
{
  Serial.begin(9600);   // Initiate a serial communication
  SPI.begin();      // Initiate  SPI bus
  mfrc522.PCD_Init();   // Initiate MFRC522
  myServo.attach(3); //servo pin
  myServo.write(0); //servo start position
  pinMode(LED_G, OUTPUT);
  pinMode(LED_R, OUTPUT);
  pinMode(BUZZER, OUTPUT);
  noTone(BUZZER);
  Serial.println("Put your card to the reader...");
  Serial.println();

}
void loop()
{
  // Look for new cards
  if ( ! mfrc522.PICC_IsNewCardPresent())
  {
    return;
  }
  // Select one of the cards
  if ( ! mfrc522.PICC_ReadCardSerial())
  {
    return;
  }
  //Show UID on serial monitor
  Serial.print("UID tag :");
  String content= "";
  byte letter;
  for (byte i = 0; i < mfrc522.uid.size; i++)
  {
     Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
     Serial.print(mfrc522.uid.uidByte[i], HEX);
     content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
     content.concat(String(mfrc522.uid.uidByte[i], HEX));
  }
  Serial.println();
  Serial.print("Message : ");
  content.toUpperCase();
  if (content.substring(1) == "83 23 38 BB") //change here the UID of the card/cards that you want to give access
  {
    Serial.println("Authorized access");
    Serial.println();
    delay(500);
    digitalWrite(LED_G, HIGH);
    tone(BUZZER, 500);
    delay(300);
    noTone(BUZZER);
    myServo.write(180);
    delay(5000);
    myServo.write(0);
    digitalWrite(LED_G, LOW);
  }

 else   {
    Serial.println(" Access denied");
    digitalWrite(LED_R, HIGH);
    tone(BUZZER, 300);
    delay(1000);
    digitalWrite(LED_R, LOW);
    noTone(BUZZER);
  }
}

line follower


Line follower robot adalah sebuah robot yang dapat mengikuti garis secara otomatis. Robot didukung oleh rangkain komponen elektronika yang dilengkapi dengan roda dan digerakan oleh motor. Pengendalian kecepatan sangat bergantung pada batas putaran dan pergesekan antara ban robot dengan lantainya. Robot tersebut dirancang untuk bernavigasi dan bergerak secara otomatis mengikuti sebuah alur garis yang dibuat.
Untuk membaca garis, robot dilengkapi dengan sensor yang diletakkkan diujung depan dari robot tersebut. Line follower robot ini memiliki jenis dan bentuk serta memiliki beberapa sistem penggerak dan pengendali sebagai pengatur kinerja yang beraneka ragam sesuai dengan kreatifitas pembuatnya. 
Bahan yang harus disediakan:
1x Arduino Uno : http://jogjarobotika.com/arduino-uno-r3-compatible-cable-data
2x TCRT5000 : http://jogjarobotika.com/sensor-garis-tcrt5000-infrared-module
1x L298N Driver Motor : http://jogjarobotika.com/l298n-driver-modul
1x Sasis Kit 2WD : http://jogjarobotika.com/2wd-sasis-kit
2xSpacer 3cm :http://jogjarobotika.com/spacer-kuningan-30mm6mm
1x Kabel Jumper Male-Female http://jogjarobotika.com/kabel-jumper-male-female-40pc
Mur baut 3mm, Jack DC Male
Setelah bahan ready maka tahap selanjutnya adalah merakitnya, namun sebelum itu solderlah motor dc, saklar, dan jack dc terlebih dahulu.
Penyolderan Saklar dilakukan dengan cara membagi jumper male-female menjadi dua. bagian female disolder ke bagian 0 (mati) dan bagian male disolder ke bagian - (Hidup). Sedangkan Jack DC disolder dengan cara membuang bagian female dari kabel jumper, perlu dicatat warna dan polaritasnya! Begitupun dengan penyolderan Motor DC..
Sudah?? Lanjut rakit sasis kitnyaa...
Saya rasa perakitan sasis nggk perlu dijelaskan :P
Oke lanjut ke pengkabelan..
Pengkabelan dilakukan dengan menggunakan kabel jumper, untuk power 5V dapat diambil dari L298N driver (Hati-hati jangan sampai salah ke 12V)
Berikut bentuk robot nampak bawah setelah terakit..
Sebelum masuk ke pemrograman alangkah baiknya kita tahu sistem kerja dari sensor dan driver motor yg digunakan.
Sensor Garis TCRT5000
Sensor ini merupakan sensor garis yang mempunyai 4Pin, VCC,GND, Output Analog (A0), Output Digital (DO). Dalam diagram pengkabelan diatas dapat dilihat bahwa kita (berencana) menggunakan DO sebagai input ke Arduino, dimana nantinya kita menggunakan teori Input-Output dalam pemrogramannya. Dimana jika sensor mendeteksi garis hitam maka sensor akan mengirimkan logika High (1). Kalibrasi sensor dilakukan dengan memutar trimpot yang terdapat pada sensor.
L298N Driver
L298N driver merupakan dricer motor yang sanggup mengontrol dua buah motor DC, driver ini membutuhkan sebuah pin logic (LOW/HIGH)  dan sebuah pin PWM untuk menggerakkan motor.  Berikut konfigurasi dari L298N Driver.
Setelah mengerti cara kerja dari sensor dan driver motor maka kita siap untuk masuk ke pemrograman..
#define m1 3
#define m2 5
#define m3 9
#define m4 10
int arrow =0;
void setup() {

pinMode(m1,OUTPUT);
pinMode(m2,OUTPUT);
pinMode(m3,OUTPUT);
pinMode(m4,OUTPUT);
pinMode(12,INPUT);
pinMode(13,INPUT);

}
void loop() {
// pembacaan sensor pada pin 12 dan 13

int lsensor=digitalRead(12);
int rsensor=digitalRead(13);
//logika robot menggunakan prinsip  AND
if((lsensor == LOW)&&(rsensor== HIGH))
{
// maju dengan kecepatan 100
motorOut(100,100,2);
}
if((lsensor== HIGH)&&(rsensor== LOW))
{
//belok kiri
motorOut(0,100,2);
}
if((lsensor==HIGH)&&(rsensor== HIGH))
{
motorOut(0,100,2);

//belok kiri
}
if((lsensor== LOW)&&(rsensor==LOW))
{
//belok kanan
motorOut(100,0,2);
}
}
//Fungsi untuk menggerakkan motor
void motorOut(unsigned char lpwm, unsigned char rpwm, int arrow){
//arrow =1 mundur, 2 maju,
if(arrow==1){
digitalWrite(m3,HIGH);
digitalWrite(m1,LOW);
analogWrite(m4,255-lpwm);
analogWrite(m2,rpwm);
}
else if (arrow==2)
{
digitalWrite(m3,LOW);
digitalWrite(m1,HIGH);
analogWrite(m4,lpwm);
analogWrite(m2,255-rpwm);
}

}


robot pemadam api

#include <Servo.h>
Servo myservo;

int pos = 0;   
boolean fire = false;

/*-------defining Inputs------*/
#define Left_S 9      // left sensor
#define Right_S 10      // right sensor
#define Forward_S 8 //forward sensor

/*-------defining Outputs------*/
#define LM1 2       // left motor
#define LM2 3       // left motor
#define RM1 4       // right motor
#define RM2 5       // right motor
#define pump 6

void setup()
{
  pinMode(Left_S, INPUT);
  pinMode(Right_S, INPUT);
  pinMode(Forward_S, INPUT);
  pinMode(LM1, OUTPUT);
  pinMode(LM2, OUTPUT);
  pinMode(RM1, OUTPUT);
  pinMode(RM2, OUTPUT);
  pinMode(pump, OUTPUT);

  myservo.attach(11);
  myservo.write(90);
}

void put_off_fire()
{
    delay (500);

    digitalWrite(LM1, HIGH);
    digitalWrite(LM2, HIGH);
    digitalWrite(RM1, HIGH);
    digitalWrite(RM2, HIGH);
   
   digitalWrite(pump, HIGH); delay(500);
   
    for (pos = 50; pos <= 130; pos += 1) {
    myservo.write(pos);
    delay(10); 
  }
  for (pos = 130; pos >= 50; pos -= 1) {
    myservo.write(pos);
    delay(10);
  }
 
  digitalWrite(pump,LOW);
  myservo.write(90);
 
  fire=false;
}

void loop()
{
   myservo.write(90); //Sweep_Servo(); 

    if (digitalRead(Left_S) ==1 && digitalRead(Right_S)==1 && digitalRead(Forward_S) ==1) //If Fire not detected all sensors are zero
    {
    //Do not move the robot
    digitalWrite(LM1, HIGH);
    digitalWrite(LM2, HIGH);
    digitalWrite(RM1, HIGH);
    digitalWrite(RM2, HIGH);
    }
   
    else if (digitalRead(Forward_S) ==0) //If Fire is straight ahead
    {
    //Move the robot forward
    digitalWrite(LM1, HIGH);
    digitalWrite(LM2, LOW);
    digitalWrite(RM1, HIGH);
    digitalWrite(RM2, LOW);
    fire = true;
    }
   
    else if (digitalRead(Left_S) ==0) //If Fire is to the left
    {
    //Move the robot left
    digitalWrite(LM1, HIGH);
    digitalWrite(LM2, LOW);
    digitalWrite(RM1, HIGH);
    digitalWrite(RM2, HIGH);
    }
   
    else if (digitalRead(Right_S) ==0) //If Fire is to the right
    {
    //Move the robot right
    digitalWrite(LM1, HIGH);
    digitalWrite(LM2, HIGH);
    digitalWrite(RM1, HIGH);
    digitalWrite(RM2, LOW);
    }
   
delay(300); //Slow down the speed of robot

     while (fire == true)
     {
      put_off_fire();
     }
}

sensor data android

#define trigPin 7
#define echoPin 6
int led1 =2;
int led2 =3;
int jarakMAX = 250;
int jarakMin = 2;
long microSecond, jarakCm;
int ledTime =450;
void setup() {
 Serial.begin (9600); //Kecepatan komunikasi serial
 pinMode(trigPin, OUTPUT); //Set pin Trigger sebagai output
 pinMode(echoPin, INPUT); //Set pin Echo sebagai input

}

void loop() {
 digitalWrite(trigPin, LOW);
 delayMicroseconds(2);
 digitalWrite(trigPin, HIGH);
 delayMicroseconds(10);
 digitalWrite(trigPin, LOW);
 microSecond = pulseIn(echoPin, HIGH);
 jarakCm = microSecond / 58.3;

 if (jarakCm >= jarakMAX)

{
  Serial.println("....>250cm");
 
}
else if (jarakCm < 5)
{
   Serial.println("<5 cm");
   }
 
else if (jarakCm < 10)
{
   Serial.println("<10 cm");
}
else if (jarakCm <= jarakMin)
{
   Serial.println("....<2cm");
}
else {
  Serial.print(jarakCm);
   Serial.println("cm");
}
delay(100);
}










robot pemungut sampah otomatis

#include <SoftwareSerial.h>
#include <Servo.h>
#include <NewPing.h> //Library untuk Sensor Ultrasonic
#define trigPin A0 //Set Trigger HCSR04 di Pin digital 12
#define echoPin A1 //Set Echo HCSR04 di Pin digital 13
#define MAX_DISTANCE 500 //Set jarak maksimal
NewPing sonar(trigPin, echoPin, MAX_DISTANCE);
SoftwareSerial BT(0, 1); // RX dan TX
Servo myservo1, myservo2, myservo3, myservo4, myservo5, myservo6;
int bluetoothTx = 0;
int bluetoothRx = 1;
SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);
///////============/////////////
const int pinRelay = 7;
String dataDikirim;
String readdata;
char val;

void setup() {
  myservo1.attach(8);
  myservo2.attach(9);
  myservo3.attach(10);
  myservo4.attach(11);
  myservo5.attach(12);
  myservo6.attach(6);
  bluetooth.begin(9400);

  ////////////===========//////////
   BT.begin(9600);
Serial.begin(9600);
pinMode(pinRelay, OUTPUT);
 digitalWrite(pinRelay, HIGH); //tombol otomats dan manual
pinMode(4, OUTPUT); // connect to input 1 of l293d
pinMode(2, OUTPUT); // connect to input 4 of l293d
pinMode(5, OUTPUT); // connect to input 3 of l293d
pinMode(3, OUTPUT); // connect to input 2 of l293d
 pinMode(2,OUTPUT);
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
   pinMode(5,OUTPUT);
    pinMode(trigPin, OUTPUT); //Set pin Trigger sebagai output
 pinMode(echoPin, INPUT); //Set pin Echo sebagai input

}
//-----------------------------------------------------------------------//
void loop() {

long duration, jarak,posisi=0,i;
 digitalWrite(trigPin, LOW);
 delayMicroseconds(2);
 digitalWrite(trigPin, HIGH);
 delayMicroseconds(10);
 digitalWrite(trigPin, LOW);
 duration = pulseIn(echoPin, HIGH);
 jarak = (duration/2) / 29.1;
  Serial.print(jarak);
  Serial.println("cm");
 

if(jarak<=30) // belok kanan

 {



}

 else{
 }
delay(100); //Delay

//Sensor 
while (BT.available())
 {
 delay(10);
 char c = BT.read();
 dataDikirim += c;
 }
 if (dataDikirim.length() > 0)
 {
 Serial.println(dataDikirim);

 if (dataDikirim == "A1")      //otomatis
 {
 digitalWrite(pinRelay, LOW);
 }
 else if (dataDikirim == "A")      //manual
 {
 digitalWrite(pinRelay, HIGH);
 }
 dataDikirim = "";


//khusus relay
 
if( Serial.available() >0 ) {
    val = Serial.read();
    Serial.println(val);
}
  if( val == '1' ) {
    digitalWrite(2,HIGH); }
  else if( val == '2' ) {
    digitalWrite(3,HIGH); }
  else if( val == '3' ) {
    digitalWrite(4,HIGH); }
  else if( val == '4' ) {
    digitalWrite(5,HIGH); }
  else if( val == '5' ) {

 }
  else if( val == 'A' ) {
    digitalWrite(2,LOW); }
  else if( val == 'B' ) {
    digitalWrite(3,LOW); }
  else if( val == 'C' ) {
    digitalWrite(4,LOW); }
      else if( val == 'D' ) {
    digitalWrite(5,LOW); }
///control led

 if(bluetooth.available()>= 2 )
  {
    unsigned int servopos = bluetooth.read();
    unsigned int servopos1 = bluetooth.read();
    unsigned int realservo = (servopos1 *256) + servopos;
    Serial.println(realservo);
   
    if (realservo >= 1000 && realservo <1180){
    int servo1 = realservo;
    servo1 = map(servo1, 1000,1180,0,180);
    myservo1.write(servo1);
    Serial.println("servo 1 ON");
    delay(10);

    }
   
    if (realservo >=2000 && realservo <2180){
      int servo2 = realservo;
      servo2 = map(servo2,2000,2180,0,180);
      myservo2.write(servo2);
      Serial.println("servo 2 On");
      delay(10);
     
    }
   
    if (realservo >=3000 && realservo < 3180){
      int servo3 = realservo;
      servo3 = map(servo3, 3000, 3180,0,180);
      myservo3.write(servo3);
      Serial.println("servo 3 On");
      delay(10);
    }
    if (realservo >=4000 && realservo < 4180){
      int servo4 = realservo;
      servo4 = map(servo4, 4000, 4180,0,180);
      myservo4.write(servo4);
      Serial.println("servo 4 On");
      delay(10);
    }
   
    if (realservo >=5000 && realservo < 5180){
      int servo5 = realservo;
      servo5 = map(servo5, 5000, 5180,0,180);
      myservo5.write(servo5);
      Serial.println("servo 5 On");
      delay(10);
    }
   
    if (realservo >=6000 && realservo < 6180){
      int servo6 = realservo;
      servo6 = map(servo6, 6000, 6180,0,180);
      myservo6.write(servo6);
      Serial.println("servo 6 On");
      delay(10);
    }


// control servo
 
while (Serial.available()){  //Check if there is an available byte to read
delay(10); //Delay added to make thing stable
  char c = Serial.read(); //Conduct a serial read
readdata += c; //build the string- "forward", "reverse", "left" and "right"
  }
if (readdata.length() > 0) {
Serial.println(readdata); // print data to serial monitor
// if data received as forward move robot forward
if(readdata == "maju")
  {
digitalWrite(4, HIGH);
digitalWrite (2, HIGH);
digitalWrite(5,LOW);
digitalWrite(3,LOW);
delay(100);
  }
  // if data received as reverse move robot reverse

else if(readdata == "mundur")
  {
digitalWrite(4, LOW);
digitalWrite(2, LOW);
digitalWrite(5, HIGH);
digitalWrite(3,HIGH);
delay(100);
  }
// if data received as right turn robot to right direction.
else if (readdata == "kanan")
  {
digitalWrite (4,HIGH);
digitalWrite (2,LOW);
digitalWrite (5,LOW);
digitalWrite (3,LOW);
delay (100);

  }
// if data received as left turn robot to left direction
else if ( readdata == "kiri")
 {
digitalWrite (4, LOW);
digitalWrite (2, HIGH);
digitalWrite (5, LOW);
digitalWrite (3, LOW);
delay (100);
 }
 // if data received as stop, halt the robot

else if (readdata == "stop")
 {
digitalWrite (4, LOW);
digitalWrite (2, LOW);
digitalWrite (5, LOW);
digitalWrite (3, LOW);
delay (100);
 }

}
  }

readdata="";}} //Reset the variable

Kamis, 01 November 2018

program arduino

pogram mobile yg ad aplikasi nya


#include <SoftwareSerial.h>
SoftwareSerial mySerial(12, 13); // RX, TX
#define m1 3
#define m2 5
#define m3 9
#define m4 10
int data=0,kec=0;
boolean maju=true;
//array kecepatan
int fast[11]={0,80,100,120,140,160,180,200,220,240,255};
void setup()
{
pinMode(m1,OUTPUT);
pinMode(m2,OUTPUT);
pinMode(m3,OUTPUT);
pinMode(m4,OUTPUT);
// for HC-05 use 38400 when poerwing with KEY/STATE set to HIGH on power on
mySerial.begin(9600);
}
void motorOut(unsigned char lpwm, unsigned char rpwm, boolean arrow){
//arrow=false=maju; arrow=true=mundur;
if(arrow==false){
digitalWrite(m3,HIGH);
digitalWrite(m1,LOW);
analogWrite(m4,255-lpwm);
analogWrite(m2,rpwm);
}
else{
digitalWrite(m3,LOW);
digitalWrite(m1,HIGH);
analogWrite(m4,lpwm);
analogWrite(m2,255-rpwm);
}
}

void loop(){
if(mySerial.available()>0){
data=mySerial.read();
//penyimpan data kecepatan
if (data =='0') { kec=0;}
else if (data =='1') { kec=1;}
else if (data =='2') { kec=2;}
else if (data =='3') { kec=3;}
else if (data =='4') { kec=4;}
else if (data =='5') { kec=5;}
else if (data =='6') { kec=6;}
else if (data =='7') { kec=7;}
else if (data =='8') { kec=8;}
else if (data =='9') { kec=9;}
else if (data =='q') {kec=10;}


//S= Stop
if (data == 'S')
{ motorOut(0,0,false); }
//F=Maju
if (data=='F')
{ motorOut(fast[kec],fast[kec],true); }
//I=Maju sambil belok kanan
if (data=='I')
{ motorOut(fast[kec],((fast[kec])/2),true);}
//G=Maju sambil belok kiri
if (data=='G')
{ motorOut(((fast[kec])/2),fast[kec],true); }
//R=Belok kanan
if(data=='R')
{ motorOut(fast[kec],0,true); }
//L=Belok kiri
if(data=='L')
{ motorOut(0,fast[kec],true); }
//B=Mundur
if(data=='B')
{ motorOut(fast[kec],fast[kec],false); }
//H=Mundur kiri
if (data=='H')
{ motorOut(((fast[kec])/2),fast[kec],false); }
//Mundur kanan
if (data=='J')
{ motorOut(fast[kec],((fast[kec])/2),false); }
}
}



program mobile arduino tanpa bluettoooth


#include <Servo.h>  // Includes servo library.
// defines pins numbers
const int trigPin = 9;
const int echoPin = 8;
const int lm1=7;
const int lm2=6;
const int rm1=5;
const int rm2=4;
const int servoPin=10;

Servo myservo;

// defines variables
long duration;
int distance;
int distance_f;
int distance_r;
int distance_l;
int maxLowDistance=70;

void setup() {
pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin, INPUT); // Sets the echoPin as an Input

pinMode(lm1,OUTPUT);
pinMode(lm2,OUTPUT);
pinMode(rm1,OUTPUT);
pinMode(rm2,OUTPUT);

myservo.attach(servoPin);
myservo.write(90);

Serial.begin(9600); // Starts the serial communication
}
void loop() {
   distance_f=ping();
   if(distance_f > maxLowDistance){
     front();
     delay(400);
   }else{
      Break();
      get_Distance();
      if(distance_r > maxLowDistance){
        right();
        delay(400);
        front();
      }else if(distance_l > maxLowDistance){
        left();
        delay(400);
        front();
      }else{
        back();
        delay(400);
        Break();
      }
   
   }
}
void displayDistance(){
     Serial.print("Right Distance : ");
     Serial.print(distance_r);
     Serial.println("");
     Serial.print("Front Distance : ");
     Serial.print(distance_f);
     Serial.println("");
     Serial.print("Left Distance : ");
     Serial.print(distance_l);
     Serial.println("");
 
}
void front(){
Serial.println("Forward Move");
digitalWrite(lm2,HIGH);
digitalWrite(rm2,HIGH);
digitalWrite(lm1,LOW);
digitalWrite(rm1,LOW);

}
void back(){
    Serial.println("Back Move");
    digitalWrite(lm1,HIGH);
    digitalWrite(rm1,HIGH);
    digitalWrite(lm2,LOW);
    digitalWrite(rm2,LOW);
}
void left(){
  digitalWrite(rm2,HIGH);
  digitalWrite(rm1,LOW);
  digitalWrite(lm1,HIGH);
  digitalWrite(lm2,LOW);
}
void right(){
  digitalWrite(lm2,HIGH);
  digitalWrite(lm1,LOW);
  digitalWrite(rm1,HIGH);
  digitalWrite(rm2,LOW);
}
void Break(){
  digitalWrite(lm2,LOW);
  digitalWrite(lm1,LOW);
  digitalWrite(rm1,LOW);
  digitalWrite(rm2,LOW);
}

void get_Distance(){
  myservo.write(0);
  delay(500);
  int temp_r1=ping();
  myservo.write(45);
  delay(500);
  int temp_r2=ping();
  if(temp_r1<temp_r2){
    distance_r=temp_r1;
  }else{
    distance_r=temp_r2;
  }
  myservo.write(90);
  delay(500);
  distance_f=ping();
 
  myservo.write(135);
  delay(500);
  int temp_l1=ping();
  myservo.write(180);
  delay(500);
  int temp_l2=ping();
  if(temp_l1<temp_l2){
    distance_l=temp_l1;
  }else{
    distance_l=temp_l2;
  }
  myservo.write(90);
 
}

int ping(){
  // Clears the trigPin
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  // Sets the trigPin on HIGH state for 10 micro seconds
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  // Reads the echoPin, returns the sound wave travel time in microseconds
  duration = pulseIn(echoPin, HIGH);
  // Calculating the distance
  distance= duration*0.034/2;
  // Prints the distance on the Serial Monitor
  return distance;
}         



program L293d

int motor1Pin1 = 2;
int motor1Pin2 = 3;
int enable1Pin = 4;
int motor2Pin1 = 5;
int motor2Pin2 = 6;
int enable2Pin = 7;
int state;
int flag=0;
int stateStop=0;
void setup() {
    // Set Motor DC sebagai output:
    pinMode(motor1Pin1, OUTPUT);
    pinMode(motor1Pin2, OUTPUT);
    pinMode(enable1Pin, OUTPUT);
    pinMode(motor2Pin1, OUTPUT);
    pinMode(motor2Pin2, OUTPUT);
    pinMode(enable2Pin, OUTPUT);
    // Set Enable pada 2 buah Motor DC
    digitalWrite(enable1Pin, HIGH);
    digitalWrite(enable2Pin, HIGH);
    // inisialisasi komunikasi serial
    Serial.begin(9600);
}

void loop() {
    // Jika data diterima, maka dimasukkan ke variabel state
    if(Serial.available() > 0){   
      state = Serial.read(); 
      flag=0;
    } 
    // Jika state = F, maka Motor DC bergerak maju
    if (state == 'F') {
        digitalWrite(motor1Pin1, HIGH);
        digitalWrite(motor1Pin2, LOW);
        digitalWrite(motor2Pin1, LOW);
        digitalWrite(motor2Pin2, HIGH);
        if(flag == 0){
          Serial.println("MAJU TAK GENTAR!");
          flag=1;
        }
    }
   
    // Jika state = L, maka Motor DC berbelok ke kiri
    else if (state == 'L') {
        digitalWrite(motor1Pin1, HIGH);
        digitalWrite(motor1Pin2, LOW);
        digitalWrite(motor2Pin1, HIGH);
        digitalWrite(motor2Pin2, LOW);
        if(flag == 0){
          Serial.println("BELOK KIRI GAN!");
          flag=1;
        }
        delay(1500);
        state=3;
        stateStop=1;
    }
    // Jika state = S, maka Motor DC akan berhenti
    else if (state == 'S' || stateStop == 1) {
        digitalWrite(motor1Pin1, LOW);
        digitalWrite(motor1Pin2, LOW);
        digitalWrite(motor2Pin1, LOW);
        digitalWrite(motor2Pin2, LOW);
        if(flag == 0){
          Serial.println("BERHENTI DULU");
          flag=1;
        }
        stateStop=0;
    }
    // Jika state = R, maka Motor DC berbelok ke kanan
    else if (state == 'R') {
        digitalWrite(motor1Pin1, LOW);
        digitalWrite(motor1Pin2, HIGH);
        digitalWrite(motor2Pin1, LOW);
        digitalWrite(motor2Pin2, HIGH);
        if(flag == 0){
          Serial.println("BELOK KANAN GAN!");
          flag=1;
        }
        delay(1500);
        state=3;
        stateStop=1;
    }
    // Jika state = B, maka Motor DC bergerak mundur
    else if (state == 'B') {
        digitalWrite(motor1Pin1, LOW);
        digitalWrite(motor1Pin2, HIGH);
        digitalWrite(motor2Pin1, HIGH);
        digitalWrite(motor2Pin2, LOW);
        if(flag == 0){
          Serial.println("MUNDUR BUKAN BERARTI KEKALAHAN");
          flag=1;
        }
    }
}





servo bluettoth enam channel

#include <SoftwareSerial.h>

#include <Servo.h>
Servo myservo1, myservo2, myservo3, myservo4, myservo5, myservo6;

int bluetoothTx = 7;
int bluetoothRx = 8;

SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);

void setup()
{
  myservo1.attach(9);
  myservo2.attach(10);
  myservo3.attach(11);
  myservo4.attach(3);
  myservo5.attach(5);
  myservo6.attach(6);
  //Setup usb serial connection to computer
  Serial.begin(9600);

  //Setup Bluetooth serial connection to android
  bluetooth.begin(9600);
}

void loop()
{
  //Read from bluetooth and write to usb serial
  if(bluetooth.available()>= 2 )
  {
    unsigned int servopos = bluetooth.read();
    unsigned int servopos1 = bluetooth.read();
    unsigned int realservo = (servopos1 *256) + servopos;
    Serial.println(realservo);
   
    if (realservo >= 1000 && realservo <1180){
    int servo1 = realservo;
    servo1 = map(servo1, 1000,1180,0,180);
    myservo1.write(servo1);
    Serial.println("servo 1 ON");
    delay(10);

    }
   
    if (realservo >=2000 && realservo <2180){
      int servo2 = realservo;
      servo2 = map(servo2,2000,2180,0,180);
      myservo2.write(servo2);
      Serial.println("servo 2 On");
      delay(10);
     
    }
   
    if (realservo >=3000 && realservo < 3180){
      int servo3 = realservo;
      servo3 = map(servo3, 3000, 3180,0,180);
      myservo3.write(servo3);
      Serial.println("servo 3 On");
      delay(10);
    }
    if (realservo >=4000 && realservo < 4180){
      int servo4 = realservo;
      servo4 = map(servo4, 4000, 4180,0,180);
      myservo4.write(servo4);
      Serial.println("servo 4 On");
      delay(10);
    }
   
    if (realservo >=5000 && realservo < 5180){
      int servo5 = realservo;
      servo5 = map(servo5, 5000, 5180,0,180);
      myservo5.write(servo5);
      Serial.println("servo 5 On");
      delay(10);
    }
   
    if (realservo >=6000 && realservo < 6180){
      int servo6 = realservo;
      servo6 = map(servo6, 6000, 6180,0,180);
      myservo6.write(servo6);
      Serial.println("servo 6 On");
      delay(10);
    }

  }


}


progam control relay bluetooth



#include <SoftwareSerial.h>
SoftwareSerial BT(0, 1); // RX dan TX
const int pinLampu = 7;
String dataDikirim;

void setup()
{
 Serial.begin(9600);
 BT.begin(9600);
 pinMode(pinLampu, OUTPUT);
 digitalWrite(pinLampu, HIGH);
}

void loop()
{
 while (BT.available())
 {
 delay(10);
 char c = BT.read();
 dataDikirim += c;
 }
 if (dataDikirim.length() > 0)
 {
 Serial.println(dataDikirim);

 if (dataDikirim == "A1")
 {
 digitalWrite(pinLampu, LOW);
 }
 else if (dataDikirim == "A")
 {
 digitalWrite(pinLampu, HIGH);
 }
 dataDikirim = "";
 }
}





control bluetooth led 4 channel



char val;
void setup() {
  pinMode(2,OUTPUT);
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(5,OUTPUT);
   pinMode(6,OUTPUT);
  Serial.begin(9600);
}

void loop() {
if( Serial.available() >0 ) {
    val = Serial.read();
    Serial.println(val);
}
  if( val == 'F' ) {
    digitalWrite(2,HIGH); }
  else if( val == 'A1' ) {
    digitalWrite(3,HIGH); }
  else if( val == 'A2' ) {
    digitalWrite(4,HIGH); }
  else if( val == 'A3' ) {
    digitalWrite(5,HIGH); }
  else if( val == 'A4' ) {
     digitalWrite(6,HIGH); }
  else if( val == 'A5' ) {
    digitalWrite(2,HIGH);
    digitalWrite(3,HIGH);
    digitalWrite(4,HIGH);
    digitalWrite(5,HIGH);
    digitalWrite(6,HIGH);
 }
  else if( val == 'a' ) {
    digitalWrite(2,LOW); }
  else if( val == 'b' ) {
    digitalWrite(3,LOW); }
  else if( val == 'c' ) {
    digitalWrite(4,LOW); }
  else if( val == 'd' ) {
    digitalWrite(5,LOW); }
  else if( val == 'e' ) {
     digitalWrite(6,LOW); }
  else if( val == 'f' ) {
    digitalWrite(2,LOW);
    digitalWrite(3,LOW);
    digitalWrite(4,LOW);
    digitalWrite(5,LOW);
    digitalWrite(6,LOW);
  }
}

Control led dengan suara

#include <SoftwareSerial.h>
SoftwareSerial BT(0,1);
String perintah;




void setup() {
  BT.begin(9600);
 pinMode(2,OUTPUT);
 pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
   pinMode(5,OUTPUT);
   Serial.begin(9600);
 
 
}

void loop() {
while (BT.available()){
  delay(10);
  char c =BT.read();
  perintah +=c;
 
}
if(perintah.length()>0){
  Serial.println(perintah);
}


if(perintah=="hidupkan lampu "){
  digitalWrite(2,HIGH);}
  else if (perintah=="LED kamar mati"){
     digitalWrite(2,LOW);}

   
     else if (perintah=="lampu dapur hidup"){
      digitalWrite(3,HIGH);}
       else if (perintah=="led dapur mati"){
      digitalWrite(3,LOW);}


 else if (perintah=="hidupkan kipas angin"){
      digitalWrite(4,HIGH);}
       else if (perintah=="matikan kipas angin"){
      digitalWrite(4,LOW);}

      else if (perintah=="hidupkan komputer"){
      digitalWrite(5,HIGH);}
       else if (perintah=="matikan komputer"){
      digitalWrite(5,LOW);}

 else if (perintah=="hidupkan semua"){
   digitalWrite(2,HIGH);
      digitalWrite(3,HIGH);
      digitalWrite(4,HIGH);
      digitalWrite(5,HIGH);
 }
       else if (perintah=="matikan semua"){
   digitalWrite(2,HIGH);
      digitalWrite(3,HIGH);
      digitalWrite(4,HIGH);
      digitalWrite(5,HIGH);
       }
 }











     
 
 


Selasa, 23 Oktober 2018

STRUKTUR DATA PROGRAM INPUT DATABSE MAHASISWA MENGGUNAKAN APLIKASI DEV C++ 5.1.1


MAKALAH
STRUKTUR DATA
PROGRAM INPUT DATABSE MAHASISWA MENGGUNAKAN

APLIKASI DEV C++ 5.1.1
 






Disusun 0leh:
Ambok tatang (1560100207)
Suci rahmadiany (1660100148)
Doli juliadi (1660100174)


Dosen Pengampuh: Eka Sahputra, S.kom, M.kom



FAKULTAS TEKNIK
PROGRAM STUDI INFORMATIKA
UNIVERSITAS MUHAMMADIYAH BENGKULU
2018-2019












KATA PENGANTAR
Puji serta syukur kehadirat Allah SWT,  karena dengan rahmat dan hidayah-Nyalah kami dapat menyelesaikan makalah ini tepat pada waktunya.  Shalawat beriring salam selalu kita panjatkan kepada Rasullullah SAW,  karena kegigihan beliau dan ridho-Nyalah kita dapat merasakan kenikmatan dunia seperti sekarang ini.
Adapun  tujuan  dari penulisan  makalah  ini  adalah untuk  memenuhi tugas yang diberikan olah  Bapak  Eka Sahputra S.kom,M.kom. selaku dosen pembimbing. makalah  ini juga bertujuan untuk menambah pengetahuan dan wawasan bagi pembaca sekalian.
Kami sekelompok  mengucapkan  terima kasih kepada Bapak Eka Sahputra S.kom,M.kom selaku dosen pembimbing mata kuliah Struktur data.
Kami sekelompok  menyadari bahwasanya makalah ini masih jauh dari kesempurnaan, oleh karena itu  kritik dan saran penulis harapkan dari pembaca sekalian demi terciptanya kesempurnaan dalam  penyusunan  makalah  ini. Semoga makalah ini bermanfaat bagi yang membacanya.Terimakasih.














Bengkulu, 23 Oktober 2018
Penyusun


…………………
DAFTAR ISI
KATA PENGANTAR................................................................................................... ..i
DAFTAR ISI ................................................................................................................... ii
BAB 1 PENDAHULUAN................................................................................................ 1
1.1.Latar belakang........................................................................................................... 1
1.2.Rumusan masalah...................................................................................................... 1
1.3.Tujuan....................................................................................................................... 1
BAB II............................................................................................................................. 2
2.1.Dasar teori................................................................................................................. 2
a.Algoritma.......................................................................................................... 2
b.StrukturData...................................................................................................... 2
BAB III PEMROGRAMAN DAN HASIL........................................................................ 3
3.1Pemrograman  procedural........................................................................................... 3
3.2Prosedur...................................................................................................................... 3
3.3Array /larik................................................................................................................. 3
3.4Gambaran  umum  program........................................................................................ 4
3.5Flowchat program....................................................................................................... 4
3.6Source Code............................................................................................................... 5
PENUTUP........................................................................................................................ 8
KESIMPULAN................................................................................................................ 8
SARAN............................................................................................................................ 8
DAFTAR PUSTAKA....................................................................................................... 9















BAB I
PENDAHULUAN

1.1 Latar belakang
Perkembangan teknologi saat ini sangat berkembang dengan pesat. Setiap jam, menit, detik selalu berkembang dan terus berkembang. Hal ini dapat kita lihat di kehidupan kita sehari-hari dimana kita tidak bisa lepas dari namanya handphone, komputer, pc tablet, iphone dan lain-lain.
Dengan kemajuan jaman maka saat ini pendataan mahasiswa dengan menggunakan penulisan manual dapat membuang banyak waktu, tenaga, dan juga biaya yang dikeluarkan.Dengan menggunakan teknologi saat ini maka kita dapat menggunakan komputer sebagai alat atau media untuk menginput dan menyimpan data-data mahasiswa.Sehingga dapat menghemat waktu, tenaga, dan juga biaya yang dikeluarkan.
Dengan menggunakan bahasa pemrograman pascal kita dapat melakukan pendataan mahasiswa secara komputerisasi. Sehingga dapat membantu para staff dalam melakukan pendataan mahasiswa.Pascal sendiri Pascal sebagai salah satu bahasa tingkat tinggi (high-level language) untuk dapat dapat dikenali oleh computer harus diterjemahkan menjadi bahasa mesin. Untuk itu dikembangkan sebuah program penerjemah yang disebut dengan kompilator (compiler).
1.2 Rumusan masalah
Berdasarkan latar belakang yang telah dipaparkan di atas, maka penulis telah menentukan beberapa rumusan masalah dalam pembuatan program perhitungan nilai akhir dan data mahasiswa.yaitu:
1. Gambaran umum program;
2. Flow Chart program;
3. Koding program;
4. Lay out program.

1.3 Tujuan
Sejalan dengan rumusan masalah di atas, makalah ini disusun dengan tujuan untuk mengetahui dan mendeskripsikan:
1. Pembaca  dapat mengerti fungsi prosedur pada pascal;
2. dapat / bisa menjalankan program aplikasi database mahsiswa;
3. Implementasi sebuah program.


BAB II
PEMBAHASAAN
2.1 Dasar Teori
A. Algoritma       
Ditinjau dari asal-usul katanya, kata Algoritma sendiri mempunyai sejarah yang aneh. Orang hanya menemukan kata algorism yang berarti proses menghitung dengan angka arab. Anda dikatakan algorist jika Anda menghitung menggunakan angka arab. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-huwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction).Dari judul buku itu kita juga memperoleh akar kata “Aljabar” (Algebra).Perubahan kata dari algorism menjadi algorithm muncul karena kata algorism sering dikelirukan denganarithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa, maka lambat laun kata algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma.“Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis”.
 Kata logis merupakan kata kunci dalam algoritma.Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar.Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu.Pertimbangan dalampemilihan algoritma adalah, pertama, algoritma haruslah benar. Artinya algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran yang salah,
B. Struktur Data
            Dalam istilah ilmu komputer, sebuah Struktur adalah cara penyimpanan, penyusunan dan pengaturan data di dalam media penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien. Dalam teknik pemrograman, struktur data berarti tata letak data yang berisi kolom-kolom data, baik itu kolom yang tampak oleh pengguna (user) atau pun kolom yang hanya digunakan untuk keperluan pemrograman yang tidak tampak oleh pengguna.Setiap baris dari kumpulan kolom-kolom tersebut dinamakan catatan (record).Lebar kolom untuk data dapat berubah dan bervariasi.Ada kolom yang lebarnya berubah secara dinamis sesuai masukan dari pengguna, dan juga ada kolom yang lebarnya tetap.Dengan sifatnya ini, sebuah struktur data dapat diterapkan untuk pengolahan database (misalnya untuk keperluan data keuangan) atau untuk pengolah kata (word processor) yang kolomnya berubah secara dinamis.Contoh struktur data dapat dilihat pada berkas-berkas lembar-sebar (spreadsheet), pangkal-data (database), pengolahan kata, citra yang dipampat (dikompres), juga pemampatan berkas dengan teknik tertentu yang memanfaatkan struktur data.
BAB III
PEMROGRAMAN DAN HASIL
3.1 Pemrograman Prosedural
Pada pemrograman dikenal beberapa paradigma yang dipakai dalam memecahkan suatu masalah. Penggunaan suatu paradigm ditujukan sebagai cara pemrogram dalam memandang setiap entitas dalam dunia nyata dan relasi antara entitas tersebut, sehingga memudahkannya dalam menerjemahkannya menjadi suatuprogram. Di sisi lain, penggunaan suatu paradigma akan membatasi/mempersempit cara pandang pemrogram. Dalam tulisan ini akan digunakan pemrograman dengan paradigma prosedural.
Pemrograman prosedural didasari oleh konsep mesin Von Neumann yang disebut stored program concept. Suatu program terdiri atas dua bagian yaitu algoritma dan struktur data. Bagaimana cara kerja dari suatu program ditentukan oleh sekumpulan perintah yang akan dilaksanakan secara sekuensial oleh suatu pemroses tunggal. Inilah yang disebut algoritma. Dalam proses pelaksanaan sampai mengeluarkan suatu hasil, program membutuhkan data yang akan diolahnya. Data tersebut akan disimpan dalam memory komputer. Dalam program data tersebut akan distrukturisasikan sehingga akan memudahkan dalam pengolahannya. Inilah yang disebut struktur data. Paradigma prosedural membatasi cara penyusunan algoritma dan strukturisasi data sehingga dekat dengan konsep mesin Von Neumann. Meskipun pemrograman ini sangat tidak manusiawi, namun sangat efisien karena kedekatannya dengan mesin.
3.2Prosedur
Adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai subprogram (program bagian).  Diawali dengan kata PROCEDURE  didalam bagian deklarasi prosedur .  Prosedur banyak digunakan pada program  yang terstruktur karena  merupakan penerapan konsep program modular, yaitu memecah-mecah program yang rumit menjadi program-program  bagian yang lebih sederhana dalam bentukm prosedur-prosedur . Untuk hal-hal yang sering dilakukan berulang-ulang,  cukup dituliskan sekali saja dalam prosedur dan dapat dipanggil atau dipergunakan sewaktu-waktu bila diperlukan.
3.3 Array / Larik
Adalah tipe terstruktur yang terdiri dari sejumlah komponen komponen yang mempunyai tipe data yang sama. Array dapat bertipe sederhana byte, word, integer, real, boolean, char, string dan tipe scalar atau subrange. Suatu array mempunyai jumlah komponen yang banyaknya tetap dan ditunjukkan oleh suatu indeks yang disebut index type (tipe indeks) Setiap komponene dalam array dapat diakses dengan menunjukkan nilai indeksnya atau disebut juga dengan istilah subscrip.



3.4  Gambaran umum program
Program Database  mahasiswa ini dibuat untuk memudahkan dalam pendataan , dimana seorang guru atau dosen dengan mudah dan cepat memasukan atau mencari data mahasiswa, Program ini dibuat dengan menggunakan bahasa pemrograman Pascal dan ditulis dengan aplikasi Dev C++ For Window dengan lay out program yang sederhana sehingga user dapat dengan mudah mengoperasikannya.










 Gambar 1. Pemrograman dev C++

3.5  Flowchat Program
Diagram alur (flowchart) merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta instruksinya. Bagan ini dinyatakan dengan simbol. Dengan emikian setiap simbol menggambarkan proses tertentu sedangkan hubungan antar proses digambarkan dengan garis penghubung. Simbol-simbol diagram alur.
Flowchat program database mahasiswa :

3.6 Source code
Pada Pembuatan Program database mhs ini ketentuan yang saya buat adalah seperti ini :
           Nama :             ...........
           Alamat             :..........
           Tempat Lahir   :.........
           Tanggal Lahir  :..........
           NPM                :.........
           Jurusan            :..........
           Jenis Kelamin  :.......... 
            Atau Tidak seperti ini juga tidak apa kalian tinggal ganti saja sesuai apa yang kalian inginkan ketentuan diatas hanya contoh saja untuk source codenya bisa dilihat dibwah ini :

 #include<iostream>
#include<stdio.h>
#include<conio.h>
using namespace std;
int main()
{
    char nm[20];
    char alm[100];
    char tmplhr[30];
    char tgllhr[30];
    char npm[40];
    char jrs[30];
    char jk[40];
    {
    cout<<"\tPROGRAM DATA DIRI "<<endl;
    cout<<"*****************************"<<endl;
    cout <<" Nama\t\t : ";
    cin.getline(nm, sizeof(nm));
    cout <<" Alamat\t\t : ";
    cin.getline(alm, sizeof(alm));
     cout <<" Tempat Lahir\t : ";
    cin.getline(tmplhr, sizeof(tmplhr));
    cout <<" Tanggal Lahir\t : ";
    cin.getline(tgllhr, sizeof(tgllhr));
    cout <<" NPM\t\t : ";
    cin.getline(npm, sizeof(npm));
    cout <<" Jurusan\t : ";
    cin.getline(jrs, sizeof(jrs));
    cout <<" Jenis Kelamin\t : ";
    cin.getline(jk, sizeof(jk));
    cout<<endl;
    cout<<"***************************************"<<endl;
    cout<<" Data Pribadi Saya"<< endl;
    cout <<" Nama Anda\t\t : "<< nm << endl;
    cout <<" Alamat Anda\t\t : "<< alm << endl;
    cout <<" Tempat Lahir Anda\t : "<< tmplhr << endl;
    cout <<" Tanggal Lahir Anda\t : "<< tgllhr << endl;
    cout <<" NPM Anda\t\t : "<< npm << endl;
    cout <<" Jurusan\t\t : "<< jrs << endl;
    cout <<" Jenis Kelmin Anda\t : "<< jk << endl;
    cout <<" By<Budiman_Blog>"<<endl;
    }
    getch();
}
            Setelah itu kita compile program tersebut jika sudah dicompile maka tinggal kita Run programnya maka akan seperti ini :















Gambar 2. Hasil akhir pemrograman devC++




PENUTUP

4.1KESIMPULAN
Program hitung nilai akhir dan database mahasiswa ini dibuat untuk memudahkan dalam pekerjaan dimana seorang user dengan mudah dan cepat dalam menghitung nilai akhir dan menginputkan data mahasiswa.Program ini dibuat dengan menggunakan bahasa pemrograman Pascal. Diagram alur (flowchart) merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta instruksinya. Koding program adalah perintah program dengan struktur pemrograman bahasa Pascal dan Lay out program adalah hasil akhir dari pemrograman yang akan diimplementasikan.

4.2SARAN
sesuai dengan pepatah “tiada gading yang tak retak” dengan demikian kami kelompok 3 menyadari sepenuhnya bahwa makalah ini masih sangat jauh dari kesempurnaan, hal ini dikarenakan keterbatasan wawasan maupun sumber-sumber data yang dimiliki penulis, dengan demikian kritik dan saran dari berbagai pihak sangat dinanti guna penyempurnaan malah ini.
















DAFTAR PUSTAKA
Bryon Goffried, 1986. Programming with PASCAL, Schaum Series, New York.  
http://www.wikipedia.com
http://www.nusinau.com