#include <WiFi.h>

const int buttonPin = 4;   // Pin tempat tombol terhubung
const int ledPin = 2;      // Pin tempat LED terhubung
int buttonState = 0;        // Variabel untuk menyimpan status tombol sekarang
int lastButtonState = 0;    // Variabel untuk menyimpan status tombol sebelumnya

void setup() {
  Serial.begin(115200);

  pinMode(buttonPin, INPUT);
  pinMode(ledPin, OUTPUT);

  // Koneksi ke WiFi
  connectToWiFi();
}

void loop() {
  // Baca status tombol
  buttonState = digitalRead(buttonPin);

  // Periksa apakah tombol baru saja ditekan atau tidak
  if (buttonState == HIGH && lastButtonState == LOW) {
    Serial.println("Button pressed. Scanning WiFi...");
    scanWiFi();
  }

  // Simpan status tombol untuk periksa di iterasi berikutnya
  lastButtonState = buttonState;
}

void connectToWiFi() {
  Serial.println("Connecting to WiFi");

  // Masukkan nama dan kata sandi WiFi Anda di sini
  const char* ssid = "Wokwi-GUEST";
  const char* password = "";

  // Koneksi WiFi
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }

  Serial.println("Connected to WiFi");
}

void scanWiFi() {
  // Mulai scanning WiFi
  int networkCount = WiFi.scanNetworks();

  if (networkCount == 0) {
    Serial.println("No WiFi networks found");
    digitalWrite(ledPin, LOW);  // Matikan LED jika tidak ada WiFi ditemukan
  } else {
    Serial.println("WiFi networks found:");
    digitalWrite(ledPin, HIGH);  // Nyalakan LED karena WiFi ditemukan

    for (int i = 0; i < networkCount; ++i) {
      Serial.print(WiFi.SSID(i));
      Serial.print(" (");
      Serial.print(WiFi.RSSI(i));
      Serial.println(" dBm)");
    }
  }

  // Tunda sebentar sebelum kembali ke loop utama
  delay(1000);
}