// Sertakan library untuk Servo
#include <Servo.h>

// Deklarasikan objek Servo dan variabel
Servo myservo;
int pos = 90;
int pos2 = 180;

// Deklarasikan konstanta untuk pin-pin
const byte servoPin = 9;
const byte buttonPinA = 10;
const byte buttonPinB = 7;

// Deklarasikan konstanta untuk sudut minimum dan maksimum
const byte servoMinAngle = 0;
const byte servoMaxAngle = 180;

// Fungsi setup untuk dijalankan sekali pada awal program
void setup() {
  // Hubungkan objek servo ke pin yang ditentukan
  myservo.attach(servoPin);

  // Tentukan pin-pin tombol sebagai input dengan resistor pull-up
  pinMode(buttonPinA, INPUT_PULLUP);
  pinMode(buttonPinB, INPUT_PULLUP);
}

// Fungsi loop untuk dijalankan terus-menerus
void loop() {
  // Baca keadaan tombol
  bool buttonStateA = digitalRead(buttonPinA);
  bool buttonStateB = digitalRead(buttonPinB);

  // Jika tombol A ditekan, tambahkan nilai pos
  if (buttonStateA == 0) {
    pos++;
  }
  // Jika tombol B ditekan, kurangi nilai pos
  else if (buttonStateB == 0) {
    pos2--;
  }

  // Batasi nilai pos ke servoMinAngle dan servoMaxAngle
  pos = constrain(pos, servoMinAngle, servoMaxAngle);

  // Tetapkan posisi servo
  myservo.write(pos);

  // Tunggu selama 15 milidetik
  delay(15);
}