Merapikan Program dengan Function pada Arduino IDE

Indobot Update

Merapikan Program dengan Function
Cara Merapikan Program dengan Function pada Arduino IDE

Function secara bahasa dapat kita artikan sebagai fungsi. Dalam bahasa pemrograman, function kita artikan sebagai pengelompokkan pernyataan yang akan kita jalankan. Namun dalam program arduino, ada 2 function yang tidak perlu ada pemanggilan untuk menjalankan program yaitu void setup dan void loop.

Function biasanya digunakan untuk program yang sudah sangat kompleks. Hingga tanpa adanya function, program akan sangat sulit dideteksi ketika ada kesalahan atau munculnya program yang berulang-ulang. Hal ini juga akan mempengaruhi besarnya ukuran program yang harus dikirim.

baca juga: Library Arduino Tidak Hanya Sebagai Syarat Sketch

Secara umum penulisan function ada 2 jenis, yaitu tanpa parameter dan dengan parameter.

Merapikan Program dengan Function pada Arduino IDE

Function tanpa Parameter

Adalah function yang tidak membutuhkan nilai. Function ini biasanya hanya digunakan untuk mengelompokkan program yang hanya perlu langsung dijalankan tanpa adanya perhitungan atau penulisan yang berbeda-beda. Penulisan untuk function tanpa parameter adalah sebagai berikut.

 
void namafunction(){
    isiprogram
}

Namafunction adalah nama yang digunakan untuk function yang akan kita gunakan. () diartikan bahwa tidak ada parameter yang perlu dimasukkan. Setelahnya gunakan kurung kurawal {} untuk isi program.

Jika kita ingin memanggil function ini, cukup tuliskan seperti berikut.

Namafunction();

Pemanggilan ini memang terlihat sederhana, namun jika kita sudah memasukkan banyak program pada function tersebut, maka yang terbaca adalah semua program yang tercantum dalam function.

Berikut ini contoh program yang menggunakan function tanpa parameter.

 
//program variasi LED oleh Indobot.co.id
int button1 = 2;
int button2 = 3;

void setup() {
 for(int LED = 0; LED <= 3; LED++){
    pinMode(LED, OUTPUT);
  }
  pinMode(button1, INPUT);
  pinMode(button2, INPUT);
}

void loop() {
  int kondisiB1 = digitalRead(button1);
  int kondisiB2 = digitalRead(button2);
  if (kondisiB1 == HIGH && kondisiB2 == LOW) {
    runningLED();
  }
  else if (kondisiB1 == HIGH && kondisiB2 == HIGH) {
    nyalaberurutan();
    LEDmati();
  }
  else {
  LEDmati();
  }
}

void runningLED (){
  for (int LED = 0; LED <= 3; LED++){
  digitalWrite(LED, HIGH);
  delay(1000);
  digitalWrite(LED, LOW);
  }
}

void nyalaBerurutan(){
   for (int LED = 0; LED <= 3; LED++){
   digitalWrite(LED, HIGH);
   delay(1000);
   }
}

void LEDmati(){
    for (int LED = 0; LED <= 3; LED++){
    digitalWrite(LED, LOW);
    }
}

Di atas menggunakan 3 function tanpa parameter. Function ini hanya dipanggil di saat memenuhi syarat if. Dengan menggunakan function, program jadi lebih mudah terbaca. Jika tanpa adanya function, program akan menjadi seperti ini.

 
int button1 = 2;
int button2 = 3;

void setup() {
 for(int LED = 0; LED <= 3; LED++){
    pinMode(LED, OUTPUT);
  }
  pinMode(button1, INPUT);
  pinMode(button2, INPUT);
}

void loop() {
  int kondisiB1 = digitalRead(button1);
  int kondisiB2 = digitalRead(button2);
  if (kondisiB1 == HIGH && kondisiB2 == LOW) {
//untuk runningLED();
     for (int LED = 0; LED <= 3; LED++){
     digitalWrite(LED, HIGH);
     delay(1000);
     digitalWrite(LED, LOW);
     }
}
  else if (kondisiB1 == HIGH && kondisiB2 == HIGH) {
       //untuk nyalaberurutan();
       for (int LED = 0; LED <= 3; LED++){
       digitalWrite(LED, HIGH);
      delay(1000);
      }
      //untuk LEDmati();
       for (int LED = 0; LED <= 3; LED++){
       digitalWrite(LED, LOW);
      }
  }
  else {
//untuk LEDmati();
    for (int LED = 0; LED <= 3; LED++){
    digitalWrite(LED, LOW);
    }
}
}

Program di atas memiliki fungsi yang sama terutama ketika di jalankan, namun jika teman-teman tidak jeli, akan ada program yang terlewat. Selain itu, jika kalian perhatikan pada bagian if else dan else, ada 2 program yang akhirnya harus dijabarkan, sedangkan sebenarnya dapat dijadikan satu program yaitu “LEDmati”

 

Belajar Elektronika, Arduino, dan IoT step by step dengan bantuan tangga belajar? Daftar sekarang dan dapatkan PROMO

 

Function dengan Parameter

Adalah function yang membutuhkan nilai untuk pengoperasiannya. Function ini biasanya digunakan untuk rumus tertentu. Atau memasukkan data yang berubah-ubah untuk satu kelompok program yang sama. Penulisan function dengan parameter adalah sebagai berikut.

 
int namafunction(int parameter1, int parameter2, dst){
    isiprogram
}

Int berfungsi untuk menentukan jenis variabel. Jika teman-teman membutuhkan jenis lain, ganti saja sesuai kebutuhan. Parameter yang digunakan dalam satu function juga boleh lebih dari satu dengan ketentuan dipisakan dengan tanda koma.

Jika kita ingin memanggil function ini, cukup tuliskan seperti berikut.

Namafunction(nilaiparameter1, nilaiparameter2, dst);

Ingat ya, yang dituliskan adalah nilai parameternya. Sebagai contoh, kita coba terapkan pada program berikut.

 
//program variasi LED oleh Indobot.co.id
int LED[] = {2,3,4,5};

void setup() {
//inisialisasi LED pin 2,3,4 dan 5 adalah output
    pinMode(LED[0], OUTPUT);
    pinMode(LED[1], OUTPUT);
    pinMode(LED[2], OUTPUT);
    pinMode(LED[3], OUTPUT);

}

void loop() {
  setLED(1,0,1,0);
  setLED(0,1,0,1);
  setLED(1,1,1,1);
  setLED(0,0,0,0);   
}

int setLED (int nilai1, int nilai2, int nilai3, int nilai4) {
  digitalWrite(LED[0], nilai1);
  digitalWrite(LED[1], nilai2);
  digitalWrite(LED[2], nilai3);
  digitalWrite(LED[3], nilai4); 
  delay(1000);
}

Program di atas berfungsi untuk mengubah nilai nyala dan mati pada 4 LED. Kita hanya perlu mengubahnya menjadi 1 dan 0 untuk mengatur nyala mati dapa 4 LED tersebut. Jika tanpa adanya function, tulisannya akan menjadi seperti ini.

 
//program variasi LED oleh Indobot.co.id
int LED[] = {2,3,4,5};

void setup() {
//inisialisasi LED pin 2,3,4 dan 5 adalah output
    pinMode(LED[0], OUTPUT);
    pinMode(LED[1], OUTPUT);
    pinMode(LED[2], OUTPUT);
    pinMode(LED[3], OUTPUT);

}

void loop() {
  //untuk   setLED(1,0,1,0);
  digitalWrite(LED[0], 1);
  digitalWrite(LED[1], 0);
  digitalWrite(LED[2], 1);
  digitalWrite(LED[3], 0); 
  delay(1000);
  //untuk   setLED(0,1,0,1);
  digitalWrite(LED[0], 0);
  digitalWrite(LED[1], 1);
  digitalWrite(LED[2], 0);
  digitalWrite(LED[3], 1); 
  delay(1000);
  //untuk   setLED(1,1,1,1);
  digitalWrite(LED[0], 1);
  digitalWrite(LED[1], 1);
  digitalWrite(LED[2], 1);
  digitalWrite(LED[3], 1); 
  delay(1000);
  //untuk  setLED(0,0,0,0); 
  digitalWrite(LED[0], 0);
  digitalWrite(LED[1], 0);
  digitalWrite(LED[2], 0);
  digitalWrite(LED[3], 0); 
  delay(1000);
}

baca juga: Kumpulan Variasi LED dan Arduino

Benar-benar terlihat panjang kan? Jadi function memang dapat berfungsi untuk mempersingkat program. Banyak yang menggunakan function ini ketika program sudah mulai kompleks. Ketika teman-teman menemukan ada pemanggilan yang serupa dengan pemanggilan program seperti di atas. Cek saja bagian mana function.

Contoh di atas adalah contoh sederhana dari penggunaan function. Semakin rumit program yang anda gunakan, semakin besar pula kebutuhan function dalam program anda.

Mau belajar elektronika dasar? Arduino? atau Internet of Things? Ikuti kursus online Indobot Academy!

Ingin Tahu Program Kami Lebih Lanjut?

Silahkan isi Formulir Dibawah Ini untuk Diskusi dengan Tim Indobot Academy.

Baca Juga

Bagikan:

Tinggalkan komentar

whatsapp whatsapp