// Deklarasi pin untuk sensor gerak, relay, dan LED
const int pirSensorPin = 2;  // Pin sensor gerak
const int relayPin = 3;      // Pin relay
const int ledPin = 13;       // Pin LED built-in Arduino

// Variable untuk menyimpan status deteksi gerakan
bool gerakanTerdeteksi = false;

void setup() {
  // Inisialisasi pin sebagai input atau output
  pinMode(pirSensorPin, INPUT);
  pinMode(relayPin, OUTPUT);
  pinMode(ledPin, OUTPUT);

  // Matikan relay dan LED awalnya
  digitalWrite(relayPin, LOW);
  digitalWrite(ledPin, LOW);

  // Buka Serial Monitor
  Serial.begin(9600);
}

void loop() {
  // Baca status sensor gerak
  int statusGerak = digitalRead(pirSensorPin);

  // Jika terdeteksi gerakan
  if (statusGerak == HIGH) {
    // Hidupkan relay dan LED jika belum hidup
    if (!gerakanTerdeteksi) {
      Serial.println("Gerakan terdeteksi!");
      digitalWrite(relayPin, HIGH);
      digitalWrite(ledPin, HIGH);
      gerakanTerdeteksi = true;
    }
  } else {
    // Matikan relay dan LED jika tidak ada gerakan
    if (gerakanTerdeteksi) {
      Serial.println("Tidak ada gerakan.");
      digitalWrite(relayPin, LOW);
      digitalWrite(ledPin, LOW);
      gerakanTerdeteksi = false;
    }
  }
}