#define pinTrig 3  //mendefinisikan pin 3 arduino sebagai trigger pin sensor ultrasonic
#define pinEcho 2  //mendefinisikan pin 2 arduino sebagai pinEcho sensor ultrasonic
#define pinBuz 13  //mendefinisikan pin 13 Arduino sebagai pin Output Buzzer

long waktu, jarak;    // variabel durasi dan jarak sensor ultrasonic

void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);            // setting kecepatan pengiriman serial monitor
pinMode (pinBuz, OUTPUT);      // setting pinBuz sebagai Output
pinMode (pinTrig, OUTPUT);     // setting pinTrig sebagai output
pinMode (pinEcho, INPUT);      // setting pinEcho sebagai Input
}

void loop() {
  // put your main code here, to run repeatedly:
digitalWrite(pinTrig, LOW);
delayMicroseconds(2);
digitalWrite(pinTrig, HIGH);    // aktifkan sensor ultrasonic
delayMicroseconds(10);          // selama 10 microseconds
digitalWrite(pinTrig, LOW);     // matikan sensor ultrasonic

waktu = pulseIn (pinEcho, HIGH);     // baca rentan waktu
jarak = waktu / 58.2;                //mengubah durasi menjadi jarak (cm)

if (jarak < 250 && jarak >= 200) {   // jika jarak antara
  tone (pinBuz, 100);                // mengeluarkan nada dengan frekuensi 100Hz dari pin buzzer
  delay (200);                       // berbunyi selama 200 milidetik
  noTone (pinBuz);                   // menghentikan nada buzzer
}

if (jarak < 200 && jarak >= 150) {
  tone (pinBuz, 200);
  delay (150);
  noTone (pinBuz);
}

if (jarak < 150 && jarak >= 100) {
  tone (pinBuz, 300);
  delay (100);
  noTone (pinBuz);
  delay (100);
}

if (jarak < 100 && jarak >= 0) {
  tone (pinBuz, 400);
  delay (70);
  noTone (pinBuz);
  delay (70);
}

else {
  noTone (pinBuz);
}
}