Arduino Indonesia. Gambar tema oleh Storman. Diberdayakan oleh Blogger.

Supported by Electronics 3 in 1

1. Jasa pencetakan PCB single layer dengan harga paling murah.

(Metode Pembuatan dengan Transfer Toner)
>PCB design sendiri (siap cetak) : Rp.150,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

(Metode Sablon Full Masking dan Silk Screen minimal pemesanan 100 Pcs)
>PCB design sendiri (siap cetak) : Rp.200,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

2. Jasa perancangan, perakitan, dan pembuatan trainer pembelajaran elektronika untuk SMK dan Mahasiswa.

3. Jasa perancangan, perakitan, dan pembuatan berbagai macam kontroller, sensor, aktuator, dan tranduser.
>Design Rangkaian / Sistem Elektronika
>Design Rangkaian / Sistem Instrumentasi
>Design Rangkaian / Sistem Kendali
>Kerjasama Riset (data atau peralatan)
>Kerjasama Produksi Produk-Produk KIT Elektronika
>Produksi Instrumentasi Elektronika

4. Jasa Pembuatan Proyek, Tugas Akhir, Tugas Laboratorium, PKM, Karya Ilmiah, SKRIPSI, dll

Like My Facebook

Popular Posts

Minggu, 05 Juli 2026

Cara Menggunakan Keypad 4x4 dengan Arduino Uno

Keypad Arduino merupakan salah satu perangkat input yang sangat populer dalam berbagai proyek elektronika dan Internet of Things (IoT). Modul ini memungkinkan pengguna memasukkan angka, huruf, maupun simbol sebagai perintah yang kemudian diproses oleh mikrokontroler. Karena harganya terjangkau, mudah digunakan, dan memiliki banyak fungsi, keypad sering menjadi pilihan utama dalam pembuatan sistem keamanan maupun perangkat kontrol berbasis Arduino.

 

Dalam kehidupan sehari-hari, keypad dapat ditemukan pada berbagai perangkat elektronik, seperti ATM, kunci pintu digital, mesin absensi, kalkulator, brankas elektronik, hingga mesin penjual otomatis (vending machine). Pada perangkat tersebut, keypad berfungsi sebagai media interaksi antara pengguna dengan sistem. Setiap tombol yang ditekan akan menghasilkan sinyal yang dapat dikenali oleh mikrokontroler untuk menjalankan perintah tertentu.

 

Pada tutorial ini, Anda akan mempelajari cara menggunakan keypad 3x4 maupun keypad 4x4 dengan Arduino Uno. Selain memahami cara kerja keypad, Anda juga akan belajar bagaimana Arduino membaca tombol yang ditekan, mengenal susunan pin keypad, serta memahami alasan mengapa keypad dirancang dalam bentuk matriks. Pengetahuan dasar ini akan menjadi bekal sebelum membuat berbagai proyek yang lebih kompleks, seperti kunci pintu digital, sistem password, hingga smart home

Tujuan Tutorial

Pada tutorial ini Anda akan mempelajari cara menghubungkan keypad 4x4 ke Arduino Uno, membaca karakter yang ditekan pada keypad, memahami cara kerja sistem pemindaian (scanning) keypad, menggunakan library Keypad untuk mempermudah pemrograman, dan membuat sistem input password sederhana menggunakan keypad.

Perangkat Keras yang Dibutuhkan

- Arduino Uno R3

- Kabel USB

- Keypad 3x4 atau Keypad 4x4

- Kabel Jumper  

Komponen di atas sudah cukup untuk melakukan seluruh percobaan pada tutorial ini.

 

Baca juga: Arduino Mengontrol Motor Servo Menggunakan Sensor Gerak PIR HC-SR501 

Mengenal Keypad Arduino

Keypad merupakan sekumpulan tombol yang disusun dalam bentuk baris (row) dan kolom (column) sehingga membentuk sebuah matriks. Setiap tombol memiliki posisi tertentu berdasarkan perpotongan antara satu baris dan satu kolom. Ketika sebuah tombol ditekan, hubungan listrik antara baris dan kolom yang bersesuaian akan terhubung. Arduino kemudian mendeteksi hubungan tersebut dan mengetahui tombol mana yang sedang ditekan. Dibandingkan menggunakan banyak tombol push button secara terpisah, keypad jauh lebih praktis karena mampu menyediakan banyak tombol dengan jumlah pin yang relatif sedikit. Hal inilah yang membuat keypad banyak digunakan pada proyek-proyek Arduino yang memerlukan banyak pilihan input.

Jenis-jenis Keypad

Secara umum terdapat dua jenis keypad yang paling banyak digunakan pada proyek Arduino, yaitu keypad 3x4 dan keypad 4x4.

1. Keypad 3x4

Keypad 3x4 memiliki 12 tombol yang terdiri dari angka 1 sampai 9, angka 0, tombol *, dan tombol #. Jenis keypad ini paling sering digunakan pada proyek sederhana seperti password pintu otomatis, alarm keamanan, mesin absensi, dan kalkulator sederhana. Karena hanya memiliki 12 tombol, keypad 3x4 sangat mudah diprogram dan cocok bagi pemula.

2. Keypad 4x4

Keypad 4x4 memiliki 16 tombol. Selain tombol angka dan simbol, keypad ini juga dilengkapi empat tombol tambahan yaitu A, B, C, dan D. Tombol tambahan tersebut biasanya digunakan sebagai tombol menu, navigasi, atau fungsi khusus sesuai kebutuhan proyek. Keypad 4x4 banyak digunakan pada aplikasi yang memerlukan lebih banyak pilihan input dibandingkan keypad 3x4.

Pinout Keypad

Meskipun memiliki banyak tombol, keypad sebenarnya hanya memiliki beberapa pin.

1. Keypad 3x4

Keypad 3x4 memiliki 7 pin, yang terdiri atas:

- 4 pin Row (R1–R4)

3 pin Column (C1–C3)

Total seluruhnya adalah 7 pin.

2. Keypad 4x4

Keypad 4x4 memiliki 8 pin, yaitu:

- 4 pin Row (R1–R4)

- 4 pin Column (C1–C4)  

Dengan demikian, hanya diperlukan 8 pin Arduino untuk membaca 16 tombol sekaligus.

Cara Kerja Keypad

Banyak orang mengira setiap tombol pada keypad memiliki jalur kabel tersendiri. Padahal kenyataannya tidak demikian. Keypad bekerja menggunakan metode matrix scanning atau pemindaian matriks. Pada metode ini, Arduino tidak membaca semua tombol secara bersamaan, melainkan memeriksa setiap baris dan kolom secara bergantian dengan kecepatan yang sangat tinggi. Proses tersebut berlangsung dalam hitungan milidetik sehingga pengguna tidak akan merasakan adanya jeda saat menekan tombol. Secara sederhana, proses kerjanya sebagai berikut:

1. Arduino mengatur seluruh pin baris pada kondisi HIGH.

2. Arduino kemudian mengubah salah satu pin baris menjadi LOW.

3. Setelah itu Arduino membaca seluruh pin kolom.

4. Apabila salah satu pin kolom ikut berubah menjadi LOW, berarti tombol pada perpotongan baris dan kolom tersebut sedang ditekan.

5. Arduino menyimpan karakter tombol tersebut.

6. Selanjutnya proses yang sama diulangi untuk baris berikutnya.

Proses ini terus dilakukan berulang-ulang selama Arduino aktif.

Karena proses scanning berlangsung sangat cepat, pengguna akan merasa bahwa tombol langsung terbaca begitu ditekan.

Mengapa Keypad Disusun dalam Bentuk Matriks?

Mungkin Anda bertanya-tanya, mengapa keypad tidak dibuat seperti kumpulan push button biasa? Jawabannya adalah untuk menghemat penggunaan pin Arduino. Sebagai contoh, sebuah keypad 4x4 memiliki 16 tombol. Jika setiap tombol dihubungkan secara langsung ke Arduino, maka dibutuhkan 16 pin input dan 1 pin GND. Artinya, hampir seluruh pin Arduino Uno akan habis hanya untuk membaca keypad. Sebaliknya, dengan sistem matriks hanya diperlukan 4 pin baris dan 4 pin kolom. Totalnya hanya 8 pin. Artinya, penggunaan pin dapat dihemat hingga 50% tanpa mengurangi jumlah tombol yang tersedia. Selain lebih hemat pin, metode matriks juga membuat desain rangkaian menjadi lebih sederhana, rapi, dan mudah dikembangkan pada proyek yang lebih besar.

Keunggulan Menggunakan Keypad

Penggunaan keypad Arduino memiliki berbagai kelebihan dibandingkan menggunakan banyak push button secara terpisah. Beberapa keunggulannya antara lain:

- Menghemat jumlah pin Arduino.

- Mudah diprogram menggunakan library Keypad.

- Menyediakan banyak tombol dalam ukuran yang ringkas.

- Cocok untuk berbagai proyek keamanan dan otomasi

- Dapat digunakan sebagai media input angka, huruf, maupun simbol.

- Kompatibel dengan hampir semua board Arduino.

Cara Memprogram Keypad Arduino 3x4 dan 4x4

Setelah memahami cara kerja keypad Arduino, langkah berikutnya adalah mempelajari cara membaca tombol yang ditekan menggunakan program Arduino. Untungnya, kita tidak perlu membuat algoritma pemindaian (scanning) secara manual karena sudah tersedia library Keypad yang dapat menangani seluruh proses tersebut secara otomatis. Dengan menggunakan library ini, Arduino hanya perlu memanggil beberapa fungsi sederhana untuk mengetahui tombol mana yang sedang ditekan. Cara ini membuat program menjadi lebih singkat, mudah dipahami, dan cocok digunakan baik oleh pemula maupun pengguna yang sudah berpengalaman.

1. Menginstal Library Keypad

Sebelum menjalankan program, pastikan library Keypad sudah terpasang pada Arduino IDE. Ikuti langkah-langkah berikut:

1. Buka Arduino IDE.

2. Klik ikon Library Manager pada bagian kiri.

3. Pada kolom pencarian, ketik Keypad.

4. Pilih library Keypad karya Mark Stanley dan Alexander Brevig.

 

5. Klik tombol Install dan tunggu hingga proses instalasi selesai. 

Setelah library berhasil dipasang, Arduino siap digunakan untuk membaca input dari keypad.

2. Program Arduino untuk Keypad 3x4

Berikut adalah contoh program sederhana untuk membaca tombol yang ditekan pada keypad 3x4.

 

#include <Keypad.h>


const int ROW_NUM = 4;     // jumlah baris

const int COLUMN_NUM = 3;  // jumlah kolom


char keys[ROW_NUM][COLUMN_NUM] = {

  {'1','2','3'},

  {'4','5','6'},

  {'7','8','9'},

  {'*','0','#'}

};


byte pin_rows[ROW_NUM] = {9, 8, 7, 6};      // pin baris keypad

byte pin_column[COLUMN_NUM] = {5, 4, 3};    // pin kolom keypad


Keypad keypad = Keypad(makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM);


void setup() {

  Serial.begin(9600);

}


void loop() {

  char key = keypad.getKey();


  if (key) {

    Serial.println(key);

  }

}

 

3. Penjelasan Program Keypad 3x4

Program diawali dengan memanggil library Keypad.

 

#include <Keypad.h>


Library ini bertugas melakukan proses scanning tombol sehingga kita tidak perlu membuat algoritma pemindaian sendiri. Selanjutnya ditentukan jumlah baris dan kolom keypad.

 

const int ROW_NUM = 4;

const int COLUMN_NUM = 3;


Karena keypad yang digunakan bertipe 3x4, maka terdapat 4 baris dan 3 kolom. Berikutnya dibuat array yang berisi seluruh karakter pada keypad.

 

char keys[ROW_NUM][COLUMN_NUM]


Isi array tersebut sesuai dengan susunan tombol pada keypad fisik.

 

{

 {'1','2','3'},

 {'4','5','6'},

 {'7','8','9'},

 {'*','0','#'}

}


Setelah itu ditentukan pin Arduino yang terhubung ke baris dan kolom keypad.

 

byte pin_rows[ROW_NUM] = {9,8,7,6};


byte pin_column[COLUMN_NUM] = {5,4,3};


Pastikan urutan pin sesuai dengan kabel yang digunakan pada rangkaian. Selanjutnya dibuat objek keypad.

 

Keypad keypad = Keypad(...);


Objek inilah yang nantinya digunakan untuk membaca setiap tombol yang ditekan. Pada fungsi setup(), komunikasi serial diaktifkan.

 

Serial.begin(9600);


Kemudian di dalam loop(), Arduino membaca apakah ada tombol yang sedang ditekan.

 

char key = keypad.getKey();


Apabila terdapat tombol yang ditekan, if(key) Arduino akan langsung menampilkan karakter tombol tersebut pada Serial Monitor.

 

Serial.println(key);


Dengan demikian, setiap tombol yang ditekan akan langsung muncul pada layar komputer.

4. Program Arduino untuk Keypad 4x4

Selain keypad 3x4, library yang sama juga dapat digunakan untuk keypad 4x4. Berikut contoh programnya.

 

#include <Keypad.h>


const int ROW_NUM = 4;     // jumlah baris

const int COLUMN_NUM = 4;  // jumlah kolom


char keys[ROW_NUM][COLUMN_NUM] = {

  {'1','2','3','A'},

  {'4','5','6','B'},

  {'7','8','9','C'},

  {'*','0','#','D'}

};


byte pin_rows[ROW_NUM] = {9, 8, 7, 6};

byte pin_column[COLUMN_NUM] = {5, 4, 3, 2};


Keypad keypad = Keypad(makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM);


void setup() {

  Serial.begin(9600);

}


void loop() {

  char key = keypad.getKey();


  if (key) {

    Serial.println(key);

  }

}

 

5. Penjelasan Program Keypad 4x4

Struktur program untuk keypad 4x4 hampir sama dengan keypad 3x4. Perbedaannya hanya terdapat pada jumlah kolom dan karakter tombol yang digunakan. Jumlah kolom diubah menjadi:

 

const int COLUMN_NUM = 4;


Kemudian array karakter juga ditambahkan empat tombol baru.

 

{'1','2','3','A'}

{'4','5','6','B'}

{'7','8','9','C'}

{'*','0','#','D'}


Selain itu, karena terdapat satu kolom tambahan, maka Arduino memerlukan satu pin lagi.

 

byte pin_column[COLUMN_NUM] = {5,4,3,2};


Seluruh proses pembacaan tombol tetap menggunakan fungsi yang sama.

 

char key = keypad.getKey();


Artinya, library Keypad mampu menangani berbagai jenis keypad tanpa perlu mengubah logika program secara signifikan.

6. Cara Kerja Program

Setelah program diunggah ke Arduino, board akan terus melakukan pemindaian terhadap seluruh tombol keypad. Ketika pengguna menekan salah satu tombol, library Keypad akan langsung mengenali posisi tombol tersebut berdasarkan kombinasi baris dan kolom. Karakter yang sesuai kemudian dikembalikan melalui fungsi:

 

keypad.getKey();


Selanjutnya Arduino menampilkan karakter tersebut ke Serial Monitor menggunakan:

 

Serial.println(key);


Karena proses scanning berlangsung sangat cepat, karakter akan langsung muncul sesaat setelah tombol ditekan.

7. Langkah-langkah Menjalankan Program

Ikuti langkah berikut untuk mencoba program di atas.

- Hubungkan Arduino Uno ke komputer menggunakan kabel USB.

- Buka Arduino IDE.

- Pilih Board Arduino Uno dan Port yang sesuai.

- Pastikan library Keypad telah terinstal.

- Salin salah satu program di atas sesuai jenis keypad yang digunakan.

- Klik tombol Verify untuk memastikan tidak ada kesalahan pada program.

 

- Klik Upload dan tunggu hingga proses selesai.

 

- Setelah upload berhasil, buka Serial Monitor.

- Tekan beberapa tombol pada keypad.

- Perhatikan karakter yang muncul pada Serial Monitor. 

8. Hasil Pengujian

Jika seluruh rangkaian telah terhubung dengan benar, setiap tombol yang ditekan akan langsung ditampilkan pada Serial Monitor. Sebagai contoh:

- Menekan tombol 1 akan menampilkan angka 1.

- Menekan tombol 5 akan menampilkan angka 5.

- Menekan tombol # akan menampilkan simbol #.

- Pada keypad 4x4, tombol A, B, C, dan D juga akan ditampilkan sesuai tombol yang ditekan. 

 


Dengan pengujian sederhana ini, Anda telah berhasil membuat Arduino membaca seluruh tombol pada keypad.

Membuat Sistem Password Menggunakan Keypad Arduino

Salah satu penerapan keypad Arduino yang paling populer adalah sebagai media untuk memasukkan password atau PIN keamanan. Konsep ini banyak digunakan pada berbagai perangkat elektronik, seperti kunci pintu digital, brankas elektronik, mesin absensi, hingga sistem kontrol akses.

 

Pada bagian ini, Anda akan mempelajari bagaimana Arduino menyimpan karakter yang ditekan pada keypad, kemudian membandingkannya dengan password yang telah ditentukan. Jika password sesuai, Arduino akan menganggap proses autentikasi berhasil. Sebaliknya, jika password tidak sesuai, Arduino akan memberikan informasi bahwa password yang dimasukkan salah.

 

Meskipun contoh berikut masih menampilkan hasil melalui Serial Monitor, konsep yang digunakan sama seperti pada sistem keamanan sesungguhnya. Nantinya Anda dapat mengembangkannya untuk mengendalikan relay, motor servo, LCD, buzzer, atau berbagai perangkat lainnya.

Cara Kerja Sistem Password

Sistem password pada tutorial ini menggunakan dua tombol khusus, yaitu:

- Tombol "*" digunakan untuk menghapus seluruh input password yang telah dimasukkan.

Tombol "#" digunakan untuk mengakhiri proses input sekaligus memeriksa apakah password yang dimasukkan benar atau salah.

Sedangkan tombol angka 0 hingga 9 akan disimpan sebagai bagian dari password. Secara sederhana, proses kerjanya adalah sebagai berikut:

1. Pengguna menekan tombol angka pada keypad.

2. Arduino menyimpan setiap angka ke dalam sebuah variabel bertipe String.

3. Jika tombol "*" ditekan, seluruh isi password akan dihapus.

4. Jika tombol "#" ditekan, Arduino akan membandingkan password yang dimasukkan dengan password yang telah ditentukan.

5. Jika keduanya sama, Arduino menampilkan pesan bahwa password benar.

6. Jika berbeda, Arduino menampilkan pesan bahwa password salah.

7. Setelah proses selesai, Arduino menghapus kembali data password agar siap menerima input berikutnya.

Dengan mekanisme tersebut, pengguna dapat mencoba memasukkan password berkali-kali tanpa perlu me-restart Arduino.

Kode Program Arduino Sistem Password

Berikut adalah contoh program lengkap untuk membuat sistem password menggunakan keypad 3x4.


#include <Keypad.h>


const int ROW_NUM = 4;

const int COLUMN_NUM = 3;


char keys[ROW_NUM][COLUMN_NUM] = {

  {'1','2','3'},

  {'4','5','6'},

  {'7','8','9'},

  {'*','0','#'}

};


byte pin_rows[ROW_NUM] = {9, 8, 7, 6};

byte pin_column[COLUMN_NUM] = {5, 4, 3};


Keypad keypad = Keypad(makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM);


const String password = "1234";   // Password yang benar

String input_password;


void setup() {

  Serial.begin(9600);

  input_password.reserve(32);

}


void loop() {


  char key = keypad.getKey();


  if (key) {


    Serial.println(key);


    if (key == '*') {


      input_password = "";


    }

    else if (key == '#') {


      if (password == input_password) {


        Serial.println("password is correct");


        // Tambahkan kode Anda di sini


      } else {


        Serial.println("password is incorrect, try again");


      }


      input_password = "";


    }

    else {


      input_password += key;


    }


  }


}


Penjelasan Program

Program diawali dengan memanggil library Keypad.

 

#include <Keypad.h>


Library ini bertugas membaca tombol yang ditekan pada keypad.

Selanjutnya dibuat konfigurasi jumlah baris, kolom, karakter tombol, serta pin Arduino yang digunakan. Bagian ini sama seperti pada contoh sebelumnya.

1. Menentukan Password

Password yang akan digunakan didefinisikan melalui baris berikut.

 

const String password = "1234";


Artinya, password yang dianggap benar adalah 1234.

Jika ingin menggunakan password lain, cukup ubah isi String tersebut.

Contohnya:

 

const String password = "567890";


atau

 

const String password = "2580";

 

2. Menyimpan Password yang Dimasukkan Pengguna

Variabel berikut digunakan untuk menyimpan seluruh tombol angka yang ditekan.

 

String input_password;


Misalnya pengguna menekan tombol 1,2,3, dan 4. Isi variabel akan berubah secara bertahap menjadi:

1

kemudian

12

kemudian

123

hingga akhirnya menjadi

1234

3. Mengalokasikan Memori String

Pada fungsi setup(), terdapat perintah:

 

input_password.reserve(32);


Perintah ini digunakan untuk menyediakan ruang memori sehingga proses penambahan karakter menjadi lebih efisien. Angka 32 menunjukkan jumlah karakter maksimum yang dapat disimpan tanpa harus melakukan alokasi ulang memori.

4. Membaca Tombol Keypad

Arduino membaca tombol menggunakan fungsi:

 

char key = keypad.getKey();


Jika tidak ada tombol yang ditekan, fungsi ini akan mengembalikan nilai kosong. Jika terdapat tombol yang ditekan, Arduino akan masuk ke bagian berikut.

 

if(key)

 

5. Menghapus Password

Saat pengguna menekan tombol "*", Arduino akan menghapus seluruh isi password yang sedang diketik.

 

input_password = "";


Fitur ini sangat berguna apabila pengguna salah memasukkan angka sehingga dapat memulai kembali dari awal.

6. Memeriksa Password

Ketika tombol "#" ditekan, Arduino akan membandingkan password yang dimasukkan dengan password yang telah ditentukan.

 

if(password == input_password)


Jika kedua String sama persis, maka Arduino menjalankan kode berikut.

 

Serial.println("password is correct");


Sebaliknya, jika berbeda, Arduino menampilkan pesan.

 

Serial.println("password is incorrect, try again");


Setelah proses pemeriksaan selesai, isi variabel password kembali dikosongkan.

 

input_password = "";


Dengan demikian pengguna dapat mencoba kembali memasukkan password.

7. Menambahkan Karakter Baru

Jika tombol yang ditekan bukan "*" maupun "#", maka karakter tersebut akan ditambahkan ke variabel password.

 

input_password += key;


Operator += berarti menambahkan karakter baru di bagian belakang String.

Sebagai contoh:

Input awal : 1

Ketika tombol 3 ditekan:

Hasil : 123

Kemudian tombol 4 ditekan:

Hasil : 1234

Cara Menguji Program

Setelah program berhasil diunggah ke Arduino, lakukan langkah berikut.

1. Hubungkan Arduino ke komputer menggunakan kabel USB.

2. Buka Serial Monitor.

3. Atur baud rate menjadi 9600.

4. Tekan tombol 4567#

Arduino akan menampilkan pesan bahwa password salah. Selanjutnya tekan 1234#. Arduino akan menampilkan pesan bahwa password benar. Jika sewaktu-waktu salah mengetik angka, tekan tombol "*". Input password akan langsung dihapus sehingga Anda dapat mengulang dari awal.

Hasil Pengujian

Jika password sesuai, Serial Monitor akan menampilkan pesan seperti berikut.

 

password is correct


Sebaliknya, jika password tidak sesuai, akan muncul pesan.

 

password is incorrect, try again


Hasil tersebut menunjukkan bahwa Arduino berhasil membandingkan password yang dimasukkan pengguna dengan password yang telah disimpan di dalam program.

 


Baca juga: Arduino Mengontrol Buzzer Menggunakan Keypad 4x4

 

 

 

Dalam praktik, hasil dan kendala yang ditemui bisa berbeda tergantung perangkat, konfigurasi, versi library, dan sistem yang digunakan.  

0 on: "Cara Menggunakan Keypad 4x4 dengan Arduino Uno"