Dalam bahasa pemrograman Arduino suatu nilai disimpan dalam suatu tempat penyimpanan yang disebut variable. nilai yang disimpan pada variable bersifat sementara, sehingga akan hilang ketika program dimatikan. Untuk menyimpan suatu nilai dalam variable, kita perlu menggunakan tipe data. Tipe data adalah suatu fasilitas dalam bahasa pemrograman untuk menklasifikasikan nilai agar kompiler bisa membedakan jenis nilai pada suatu variabeldan mengetahui bagaimana nilai tersebut nantinya akan di olah.
Coba bayangkan kita ingin menyimpan 1 liter minyak, jika minyak disimpan di wadah plastik ukuran 1,5 liter, minyak akan tersimpan dengan baik, tapi jika kita menyimpan minyak di wadah kertas, minyak akan tumpah. Analogi nya minyak disini adalah sebuah nilai yang akan kita simpan, tempat penyimpanannya adalah variable, dan jenis penyimpanannya (plastic atau kertas) adalah tipe data.
Ini adalah penulisan standar untuk memasukan nilai pada variable
int LED = 2;
float phi = 3,14;
Tipe data ditulis sebelum nama variabel dan nilai yang akan disimpan pada variabel ditulis setelah operator asignment “=”. jika kita terjemahkan kedalam tulisan, maka kode diatas berarti kita menyimpan nilai 2 kedalam variable “LED” yang bertipe data Integer (Int) dan 3,14 kedalam variable “phi” yang bertipe data float.
Tipe Data
Seperti yang sudah dijelaskan sebelumnya, ketika kita ingin menyimpan nilai pada variable, kita harus memberitahu compiler jenis data variable tsb. Tipe data dari variabel penting karena untuk menentukan berapa banyak byte memori yg disediakan untuk variabel itu, dan jenis data yang dapat disimpan dalam variabel. Arduino uno memiliki memory penyimpanan data 1 kB, RAM 2kB, dan penyimpanan program 32 kB. Dikarenakan kapasitas penyimpanan arduino terbatas, kita harus bijak menggunakan tipe data, karena jika asal dalam pemilihan tipe data, program yang kita buat malah menghabiskan memory sehingga eksekusi program nya menjadi tidak efektif
Berikut ini beberapa tipe data pada pemrograman arduino;
- Array
int contohArray [5];
int pinSensor[] = {6,7};
int dataUkur[5] = {3,5,4,7,8};
char pesan [6] = “Hello”;
- Bool
Syntax :
bool var = val;
var adalah nama variabelnya
val adalah nilai yang disimpan pada variable (true atau false)
- Boolean
boolean adalah tipe data yang menyimpan salah satu nilai antara true atau false, apa bedanya dengan tipe data bool ?,sama aja, jika bool adalah tipe data standar dari bahasa C++, boolean adalahtipe data non standar yang ada pada arduino.
Syntax :
boolean var = val;
Var adalah nama variabel
Val adalah nilai yang disimpan pada variabel (true atau false)
- byte
- char
Tipe data yang bisa menyimpan 8 bit (1 byte) signed atau unsigned number dengan rentang nilai -128 sampai 127. Meskipun begitu, Tipe data char direkomendasikan untuk menyimpan data karakter/huruf. Karakter disimpan secara default sebagai angka desimal, sehingga kita bisa melakukan operasi matematika pada nilai char. Contoh kita membuat blok program
char variabel1 = ‘A’; // Serial monitor menampilkan karakter A
char variabel2 = ‘A’ + 1; //Serial monitor menampilkan karakter B
kenapa variabel2 menampilkan karakter B ?, itu karena karakter ‘A’ jika dikonversi ke desimal adalah 65, pada blok program, karakter ‘A’ + 1 bernilai 66, nilai 66 dalam desimal sama dengan karakter B dalam char, konversi char ke desimal bisa dilihat pada tabel ASCII. Untuk penulisan sintaxnya, jika hanya menyimpan satu karakter, gunakan simbol single quote (‘A’), jika menyimpan beberapa karakter atau membentuk sebuah kata, gunakan simbol double quote (“ABS”) ditambah fungsi array.
- Unsigned char
Tipe data yang bisa menyimpan 8 bit (1 byte) signed atau unsigned number dengan rentang nilai 0 – 255. Secara kapasitas dan fungsi sama dengan type data byte, biasanya programmer menyimpan nilai unsigned number dibawah 8 bit menggunakan tipe data byte.
- float
Tipe data untuk menyimpan nilai bilangan desimal berkoma. Tipe data ini menyimpan data sebesar 32 bit (4byte) dengan rentang nilai 3,4028235E+38 sampai -3,4028235E+38. Biasanya, selain digunakan untuk menyimpan data hasil dari operasi matematika, tipe data ini bisa digunakan untuk menyimpan data yang resolusinya lebih besar dari data integer. Contoh untuk membuat deteksi jarak menggunakan sensor ultrasonik, nilai input analog akan diubah, dihitung dan disimpan ke dalam tipe data float, karena untuk menampilkan hasil deteksi jarak diperlukan bilangan berkoma agar lebih presisi. Jika melakukan operasi matematika dengan data bertipe float, maka operand nya juga harus bilangan koma, jika tidak, akan dianggap sebagai integer.
- double
Tipe data untuk menyimpan nilai bilangan desimal berkoma. Tipe data ini menyimpan data sebesar 32 bit (4byte) dengan rentang nilai 3,4028235E+38 sampai -3,4028235E+38. Secara fungsi, tipe data double sama dengan float, yang membedakan adalah kepresisiannya, tipe data float jumlah angka di belakang koma nya adalah 7, sedangkan double bisa sampai 15 angka di belakang koma.
- integer
- Unsigned integer
- long
Tipe data untuk menyimpan nilai bilangan bulat. Tipe data ini menyimpan data sebesar 32 bit (4 byte) dengan rentang nilai -2147483648 sampai 2147483648. Tipe data ini biasa digunakan untuk menyimpan data yang nominalnya besar, seperti data waktu menggunakan fungsi milis().
- Unsegned long
- short
- Void
int hitung = 16;
kemudian untuk menghitung akar, kita harus melakukan operasi matematika mengunakan operator sqrt.
sqrt (hitung);
Setelah fungsi tersebut di eksekusi, apa yang terjadi ? fungsi tersebut akan memiliki return value yaitu nilai/angka hasil akar dari nilai variabel, yaitu 4. Nilai 4 adalah return value dari operasi matematika pada syntax sqrt(hitung);
Tipe data void dipakai untuk mendeklarasikan fungsi yang tidak memiliki return value seperti melakukan pengulangan, proses pengesetan nilai ataupun yang lainnya. Itulah sebabnya tipe data void digunakan untuk mendeklarasian fungsi setup() dan fungsi loop().
- word
Saat kita membuat suatu variabel dengan tipe data tertentu, tipe data yang kita gunakan akan mempengaruhi penggunakan memori RAM mikrokontroller, jadi jika project yang ingin kita buat membutuhkan memory management yang efisien, pastikan kita memilih tipe data yang sesuai dan kompatibel dengan nilai yang akan simpan pada variabel.