Memahami Cara Mendefinisikan dan Menggunakan Variabel Dalam Sketch

Variabel adalah tempat untuk menyimpan sepotong data. Ia memiliki nama, nilai, dan tipe. 

memahami mendefinisikan variabel dalam sketch

Misalnya, pernyataan / deklarasi berikut ini:

int pin = 13;

deklarasi di atas variabelnya namanya pin, nilainya 13, dan tipenya int. Kemudian dalam program, kita dapat merujuk ke variabel ini dengan namanya, di mana nilainya akan dicari dan digunakan. Misalnya, dalam pernyataan ini:

pinMode(pin, OUTPUT);

hal itu berarti nilai pin (13) yang akan diteruskan ke fungsi pinMode(). Dalam hal ini, kita sebenarnya tidak perlu menggunakan variabel, pernyataan di bawah ini juga akan berfungsi sama:

pinMode(13, OUTPUT);

Keuntungan dari variabel dalam hal ini adalah kita hanya perlu menentukan jumlah pin yang sebenarnya satu kali, tetapi kita dapat menggunakannya berkali-kali. Jadi jika nanti kita memutuskan untuk mengubah dari pin 13 ke pin 12, kita hanya perlu mengubah satu titik di kode. Selain itu, kita dapat menggunakan nama deskriptif untuk memperjelas signifikansi variabel (misalnya, program yang mengontrol LED RGB mungkin memiliki variabel yang disebut redPin, greenPin, dan bluePin).

Variabel memiliki keunggulan lain dibandingkan nilai seperti angka. Yang terpenting, Anda dapat mengubah nilai variabel menggunakan tugas (ditunjukkan dengan tanda sama dengan). Sebagai contoh:

pin = 12;

akan mengubah nilai variabel menjadi 12. Perhatikan bahwa kita tidak menentukan tipe variabel: variabel tidak diubah oleh penugasan. Artinya, nama variabel secara permanen dikaitkan dengan tipe; hanya nilainya yang berubah. 

[1] Perhatikan bahwa kita harus mendeklarasikan variabel sebelum kita dapat menetapkan nilai padanya. Jika kita memasukkan pernyataan sebelumnya dalam program tanpa pendeklarasian variabel, kita akan mendapatkan pesan seperti: "kesalahan: pin tidak dideklarasikan dalam lingkup ini".

Saat kita menetapkan satu variabel ke variabel lain, kita membuat salinan nilainya dan menyimpan salinan itu di lokasi di memori yang terkait dengan variabel lain. Jika kita mengubah satu variabel tidak berpengaruh pada yang lain. Contoh :

int pin = 13;
int pin2 = pin;
pin = 12;

dari contoh di atas dapat dijelaskan bahwa nilai variabel pin adalah12, namun pin2 masih tetap 13.

Variabel Global

Sekarang kita mungkin bertanya, apakah arti kata "lingkup" dalam pesan kesalahan di atas? Ini mengacu pada bagian program kita di mana variabel dapat digunakan. Ini ditentukan oleh di mana kita mendeklarasikannya. Misalnya, jika kita ingin dapat menggunakan variabel di mana saja dalam program yang kita tulis, kita dapat mendeklarasikannya di bagian atas kode. Ini disebut variabel global; ini contohnya:

int pin = 13;
void setup()
{
pinMode(pin, OUTPUT);
}
void loop()
{
digitalWrite(pin, HIGH);
}

Seperti yang kita lihat, pin digunakan dalam fungsi setup() dan loop(). Kedua fungsi tersebut mengacu pada variabel yang sama, sehingga mengubahnya salah satu akan mempengaruhi nilai yang dimilikinya di variabel lain, seperti pada:

int pin = 13;
void setup()
{
pin = 12;
pinMode(pin, OUTPUT);
}
void loop()
{
digitalWrite(pin, HIGH);
}

Di sini, fungsi digitalWrite() yang dipanggil dari loop() akan diberikan nilai 12, karena itulah nilai yang ditetapkan ke variabel dalam fungsi setup().

Jika kita hanya perlu menggunakan variabel dalam satu fungsi, kinda dapat mendeklarasikannya di sana, dalam hal ini cakupannya akan terbatas pada fungsi tersebut. Sebagai contoh:

void setup()
{
int pin = 13;
pinMode(pin, OUTPUT);
digitalWrite(pin, HIGH);
}

Dalam hal ini, pin variabel hanya dapat digunakan di dalam fungsi setup(). Jika kita mencoba melakukan sesuatu seperti ini :

void loop()
{
digitalWrite(pin, LOW); // wrong: pin is not in scope here.
}

kita akan mendapatkan pesan yang sama seperti sebelumnya: "kesalahan: 'pin' tidak dideklarasikan dalam cakupan ini". Artinya, meskipun kita telah mendeklarasikan pin di suatu tempat di program kita, kita mencoba menggunakannya di suatu tempat di luar cakupannya maka akan terdapat pesan kesalahan.

Kita mungkin bertanya-tanya, tidakkah kita membuat semua variabel menjadi global? Lagi pula, jika saya tidak tahu di mana saya mungkin memerlukan variabel, mengapa saya harus membatasi cakupannya hanya pada satu fungsi?

Jawabannya adalah dapat mempermudah untuk mengetahui apa yang terjadi padanya. Jika suatu variabel bersifat global, nilainya dapat diubah di mana saja dalam kode, artinya kita perlu memahami keseluruhan program untuk mengetahui apa yang akan terjadi pada variabel tersebut. Misalnya, jika variabel kita memiliki nilai yang tidak kita harapkan, akan lebih mudah untuk mengetahui dari mana nilai itu berasal jika variabel tersebut memiliki cakupan terbatas.

Sumber asli artikel : Arduino Tutorial