// PROGRAM APLIKASI PENAMBAHAN DUA BILANGAN YANG BERBASISIR REMOTE
// PROGRAM PUNYA DWI PUSPITASARI

#include <IRremote.h> // memanggil library IRremote
#include <LiquidCrystal.h> // memanggil library LiquidCrystal

// Melakukan pendeklarasian variabel
int Receiver = 2;
int A = 0;
int B = 0;
int Result;
int nilai;

IRrecv irrecv(Receiver);
decode_results results;
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);

void setup() {
  Serial.begin(9600); // berkomunikasi dengan PC atau komputer
  irrecv.enableIRIn();
}

void loop() {
  if (irrecv.decode()) {
    lcd.clear();
    button();
    if (A == 0) {
      A = nilai;
    } else {
      B = nilai;
    }
    lcd.setCursor(0, 0);
    lcd.print(A);
    lcd.print("+");
    lcd.print(B);
    lcd.print("=");
    lcd.setCursor(5, 1);
    if (A > 0 && B > 0) {
      Result = A + B;
    }
    Serial.print("Hasil A:"); // mencetak pada serial monitor
    Serial.println(A);
    Serial.print("Hasil B:");
    Serial.println(B);
    Serial.print("Hasil :");
    Serial.println(Result);
    lcd.print(Result);
    irrecv.resume();
  }
}

// fungsi untuk inputan remote
void button() {
  int inputan = irrecv.decodedIRData.command;

  if (inputan == 48) {
    nilai = 1;
  }
  if (inputan == 24) {
    nilai = 2;
  }
  if (inputan == 122) {
    nilai = 3;
  }
  if (inputan == 16) {
    nilai = 4;
  }
  if (inputan == 56) {
    nilai = 5;
  }
  if (inputan == 90) {
    nilai = 6;
  }
  if (inputan == 66) {
    nilai = 7;
  }
  if (inputan == 74) {
    nilai = 8;
  }
  if (inputan == 82) {
    nilai = 9;
  }
  if (inputan == 82) {
    nilai = 0;
  }
  if (inputan == 34) {
    Result = 0;
    A = 0;
    B = 0;
    nilai = 0;
  }
}