#define led 3 //Fungsi define merupakan fungsi untuk mendeklarasikan atau mendefinisikan suatu varibel
#define PinEcho 4
#define PinTrig 5
long duration, distance; //long merupakan fungsi untuk mendeskripsikan durasi dan jarak
#include <Servo.h> //include digunakan untuk memasukkan file yang memungkinkan kamu untuk mengakses fitur tambahan

Servo myservo;

float read_srf(int pintriger, int pinecho) {
  long durasi;
  float jarak;
  durasi = pulseIn(pinecho, HIGH);
  digitalWrite(pintriger, LOW);
  delayMicroseconds(2);
  digitalWrite(pintriger, HIGH);
  delayMicroseconds(6);
  digitalWrite(pintriger, LOW);
  delayMicroseconds(2);

  jarak = durasi / 58;
  return jarak;
}

void setup() {
  pinMode(PinTrig, OUTPUT);
  pinMode(PinEcho, INPUT);
  pinMode(led, OUTPUT);
  myservo.attach(7);
}

void loop() {
  digitalWrite(PinTrig, LOW);
  delayMicroseconds(4);
  digitalWrite(PinTrig, HIGH);
  delayMicroseconds(4);
  digitalWrite(PinTrig, LOW);
  delayMicroseconds(4);
 
  duration = pulseIn(PinEcho, HIGH);
  distance = (duration/2)/29;
  int jarak = read_srf(PinTrig, PinEcho);
  if(distance<=50){
    digitalWrite(led, HIGH);
    myservo.write(90);
  }else{
    digitalWrite(led, LOW);
    myservo.write(0);
  }
}