Bentuk Rangkaian
Program:
#include <Adafruit_LiquidCrystal.h>Adafruit_LiquidCrystal lcd(0); // I2C address 0 (sesuai Tinkercad)String input = "";int a, b, hasil;void setup() {Serial.begin(9600);lcd.begin(16, 2);lcd.setBacklight(1);lcd.setCursor(0, 0);lcd.print(" Kalkulator LCD ");lcd.setCursor(0, 1);lcd.print("Masuk di Serial");Serial.println("=== Kalkulator Arduino + LCD ===");Serial.println("Contoh: 12+5 atau 9*3");Serial.println("================================");}void loop() {if (Serial.available() > 0) {input = Serial.readStringUntil('\n');int tambah = input.indexOf('+');int kurang = input.indexOf('-');int kali = input.indexOf('*');int bagi = input.indexOf('/');bool valid = true;if (tambah > 0) {a = input.substring(0, tambah).toFloat();b = input.substring(tambah + 1).toFloat();hasil = a + b;}else if (kurang > 0) {a = input.substring(0, kurang).toFloat();b = input.substring(kurang + 1).toFloat();hasil = a - b;}else if (kali > 0) {a = input.substring(0, kali).toFloat();b = input.substring(kali + 1).toFloat();hasil = a * b;}else if (bagi > 0) {a = input.substring(0, bagi).toFloat();b = input.substring(bagi + 1).toFloat();if (b != 0) {hasil = a / b;} else {Serial.println("Error: bagi 0!");lcd.clear();lcd.setCursor(0, 0);lcd.print("Error: Bagi 0!");valid = false;}}else {Serial.println("Format salah! Gunakan contoh: 12+5");lcd.clear();lcd.setCursor(0, 0);lcd.print("Format Salah!");valid = false;}if (valid) {// tampilkan di SerialSerial.print(input);Serial.print(" = ");Serial.println(hasil);// tampilkan di LCDlcd.clear();lcd.print(input);lcd.print(" = ");lcd.print(hasil);}}}