Pendahuluan
Di era teknologi digital saat ini, pemahaman dasar tentang sistem embedded dan mikrokontroler menjadi keterampilan yang sangat penting, terutama bagi pelajar SMK, mahasiswa, dan penghobi elektronika. Salah satu proyek dasar namun sangat edukatif adalah pembuatan kalkulator digital berbasis Arduino.
Kalkulator merupakan perangkat yang sering digunakan dalam kehidupan sehari-hari. Dengan membuat kalkulator sendiri menggunakan Arduino, kita dapat mempelajari konsep input digital (keypad), pemrosesan data logika, serta output tampilan menggunakan LCD. Proyek ini juga melatih logika pemrograman dan pengelolaan data input secara berurutan.
Pada proyek ini, dibuat sebuah kalkulator sederhana yang mampu melakukan operasi penjumlahan dan pengurangan. Input dilakukan menggunakan keypad 4×4, sedangkan hasil perhitungan ditampilkan pada LCD 16×2 mode paralel. Proyek ini sangat cocok sebagai media pembelajaran dasar mikrokontroler dan sistem kendali sederhana.
Komponen yang Digunakan
Arduino Uno sebagai mikrokontroler utama sistem.
LCD 16×2 (mode paralel) sebagai media tampilan angka dan hasil perhitungan.
Keypad matriks 4×4 sebagai input angka dan operator.
Kabel jumper secukupnya untuk pengkabelan.
Breadboard sebagai media perakitan rangkaian.
Skema Rangkaian
Secara umum, rangkaian terdiri dari dua bagian utama:
- LCD 16×2 dihubungkan ke Arduino menggunakan mode paralel (RS, E, D4–D7).
- Keypad 4×4 dihubungkan ke pin digital dan analog Arduino untuk membaca input tombol.
Arduino bertugas membaca input dari keypad, memproses operasi matematika, dan menampilkan hasil ke LCD.
Koneksi Rangkaian
Koneksi LCD 16×2 ke Arduino

| Pin LCD | Pin Arduino |
|---|---|
| RS | 8 |
| E | 9 |
| D4 | 10 |
| D5 | 11 |
| D6 | 12 |
| D7 | 13 |
| VCC | 5V |
| GND | GND |
Koneksi Keypad 4×4 ke Arduino
| Pin Keypad | Pin Arduino |
|---|---|
| R1 | 5 |
| R2 | 4 |
| R3 | 3 |
| R4 | 2 |
| C1 | A3 |
| C2 | A2 |
| C3 | A1 |
| C4 | A0 |
Library yang Digunakan
Sebelum melakukan pemrograman, pastikan library berikut sudah terpasang di Arduino IDE:
🔗 LiquidCrystal
https://www.arduino.cc/reference/en/libraries/liquidcrystal/
🔗 Keypad
https://playground.arduino.cc/Code/Keypad/
Kode Program Lengkap
#include <LiquidCrystal.h>
#include <Keypad.h>
// Inisialisasi objek LCD dan Keypad
LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
const int ROW_NUM = 4;
const int COLUMN_NUM = 4;
char keys[ROW_NUM][COLUMN_NUM] = {
{'1','2','3','C'},
{'4','5','6','+'},
{'7','8','9','-'},
{' ','0',' ','='}
};
byte pin_rows[ROW_NUM] = {5, 4, 3, 2};
byte pin_column[COLUMN_NUM] = {A3, A2, A1, A0};
Keypad keypad = Keypad(makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM);
// Variabel kalkulator
String operand1 = "";
String operand2 = "";
char oper = ' ';
bool newCalculation = true;
void setup() {
lcd.begin(16, 2);
lcd.print("Kalkulator");
delay(1000);
lcd.clear();
}
void loop() {
char key = keypad.getKey();
if (key != NO_KEY) {
handleCalculator(key);
}
}
void clearCalculator() {
operand1 = "";
operand2 = "";
oper = ' ';
lcd.clear();
lcd.print("Cleared");
delay(500);
lcd.clear();
}
void setOperator(char op) {
if (newCalculation) {
lcd.clear();
newCalculation = false;
}
if (operand1 != "") {
oper = op;
lcd.print(op);
}
}
void appendOperand(char digit) {
if (newCalculation) {
lcd.clear();
newCalculation = false;
}
if (oper == ' ') {
operand1 += digit;
} else {
operand2 += digit;
}
lcd.print(digit);
}
void performCalculation() {
if (operand1 != "" && operand2 != "" && oper != ' ') {
int num1 = operand1.toInt();
int num2 = operand2.toInt();
int result = 0;
if (oper == '+') result = num1 + num2;
else if (oper == '-') result = num1 - num2;
lcd.clear();
lcd.print("= ");
lcd.setCursor(2, 0);
lcd.print(result);
newCalculation = true;
operand1 = String(result);
operand2 = "";
oper = ' ';
}
}
void handleCalculator(char key) {
if (key == 'C') {
clearCalculator();
} else if (key == '=') {
performCalculation();
} else if (key == '+' || key == '-') {
setOperator(key);
} else {
appendOperand(key);
}
}
Penjelasan Singkat Program
Program bekerja dengan membaca tombol dari keypad 4×4. Angka pertama disimpan sebagai operand1, kemudian operator (+ atau -) disimpan, dan angka kedua sebagai operand2. Saat tombol = ditekan, Arduino melakukan perhitungan dan menampilkan hasil pada LCD 16×2.
Tombol C digunakan untuk menghapus data dan mengulang perhitungan dari awal. Sistem ini dirancang sederhana agar mudah dipahami dan dikembangkan lebih lanjut.
Kesimpulan
Kalkulator Arduino berbasis keypad dan LCD ini merupakan proyek dasar yang sangat efektif untuk memahami input-output mikrokontroler, pemrograman logika, dan antarmuka manusia-mesin (HMI). Proyek ini cocok untuk pembelajaran di SMK, praktikum kuliah, maupun latihan mandiri.
Pengembangan lanjutan dapat dilakukan dengan menambahkan operasi perkalian dan pembagian, penggunaan LCD I2C, atau bahkan integrasi dengan touchscreen.
Ayo Belajari Otomasi Industri Bersama MANFAHBOT, Kami menyediakan layanan:
- Pelatihan Otomasi & PLC
- Pengembangan Sistem Simulasi
- Jasa Rancang Bangun Sistem Otomatisasi
- Pembuatan sistem kontrol berbasis robotik
- Pendampingan proyek akhir atau PKL SMK/D4/S1
🌐 manfahbot.cc
📧 info@manfahbot.cc
📞 WhatsApp: +62 859-5646-3532



