Seperti yang diketahui dalam membuat program di Arduino IDE tidak terlepas dari 2 fungsi utama yaitu setup dan loop. Sering terjadi kendala dalam penempatan variabel yaitu variabel tidak bisa menyimpan data sebelumnya. Mungkin bagi yang telah menempih mata kuliah Algoritma dan pemrograman akan mengetahui hal tersebut. Tetapi ada juga yang tidak tahu penyebabnya. Maka dari itu pada kesempatan kali ini saya mencoba menjelaskan bagaimana membuat variabel yang bisa menyimpan data selama program berjalan.
Variabel Global dan Variabel Lokal
Variabel global merupakan variabel yang dapat digunakan atau dipanggil oleh semua fungsi. Variabel global ini juga dapat digunakan jika ada variabel yang digunakan pada beberapa fungsi/prosedur. Hal ini utamanya bertujuan menghemat variabel. utamanya lagi variabel ini menyimpan data sebelumnya ketika sebuah fungsi di panggil ulang.Penulisan variabel Global di Arduino diletakkan di luar fungsi baik setup, loop, ataupun yang lainnya.
int hitungAngka = 0;Pada contoh tersebut hitungAngka merupakan variabel global dan bisa digunakan untuk semua fungsi, begitu juga dengan nilainya bisa diakses dan dirubah oleh setiap fungsi yang ada.
void setup(){
}
void loop(){
}
Syarat :
- Pendeklarasian variabel berada di luar fungsi apa pun.
- Pendeklarasian variabel dilakukan sebelum fungsi dimana dia digunakan.
- Pendeklarasian variabel disarankan sebelum fungsi setup.
- Aturan umum variabel berlaku (seperti nama variabel, pemberian nilai dsb).
void setup(){Pada contoh tersebut hitung merupakan variabel lokal dari fungsi looping, variabel ini hanya dikenal di fungsi looping saja, fungsi setup ataupun fungsi lain yang akan dibuat tidak akan mengenal dan tidak bisa mengakses variabel ini.
}
void loop(){
int hitung = 0;
}
Syarat :
- Pendeklarasian variabel dilakukan di dalam fungsi
- Harus dilakukan inisialisasi (pemberian nilai variabel)
- Berlaku aturan umum dalam pembuatan variabel.
Tipe Data Static
Pada Arduino, tipe data static digunakan dalam membuat variabel yang hanya bisa diakses di dalam fungsi itu saja (seperti variabel lokal). Tetapi tidak seperti variabel lokal data yang dibuat dan disimpan akan hilang ketika fungsi itu dipanggil. tipe data static menyimpan data hasil pemanggilan fungsi sebelumnya. tipe data static hanya bisa dideklarasikan di awal fungsi. contoh:
void setup(){
}
void loop(){
static int hitungAngka;
}
atau
void setup(){
}
void loop(){
static int hitungAngka=0;
}
Contoh Kasus
Dalam kasus pencetakan "angka ke-0, angka ke-1,...,angka ke-n" di Arduino per detiknya angka selalu bertambah 1.
kita bisa menggunakan cara :
1. Menggunakan variabel global
Program :
int hitungAngka=0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
Serial.print("angka ke-");
Serial.println(hitungAngka);
hitungAngka +=1;
delay(1000);
}
Hasil:
2. Menggunakan tipe data static cara 1
Program :
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
static int hitungAngka;
Serial.print("angka ke-");
Serial.println(hitungAngka);
hitungAngka +=1;
delay(1000);
}
Hasil :
3. Menggunakan tipe data static cara 1
Program :
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
static int hitungAngka=0;
Serial.print("angka ke-");
Serial.println(hitungAngka);
hitungAngka +=1;
delay(1000);
}
Hasil :
Referensi :
https://www.arduino.cc/reference/en/language/variables/variable-scope--qualifiers/static/
https://49012032sehatsempurna.wordpress.com/2012/04/06/perbedaan-antara-variabel-global-dan-variabel-lokal/
Artikel yang sangat bermanfaat, jelas dan detail. Terimakasih kak artikelnya dapat menambah wawasan saya dalam Membuat Variabel yang Menyimpan Data di Arduino".
BalasHapusKunjungi Blog saya di
http://aurelliafemilya.blogspot.com/
Dan Kunjungi juga
http://www.atmaluhur.ac.id/