Fungsi digunakan supaya koding lebih termanagable, readable dan digunakan pada task yang dilakukan berulang-ulang. Sebagai contoh kita melakukan wudhu sebelum shalat lima kali sehari mulai dari subuh, zuhur, asar, magrib dan isya yaitu pada jam 5, 12, 16, 18 dan jam 20 berturut-turut. Kegiatan yang dilakukan untuk wudhu adalah sebagai berikut:
– Ganti baju
– baca doa sebelum wudhu
– berwudhu
– baca doa setelah wudhu
– pergi ke masjid
Program untuk kegiatan di atas adalah:
if (jam==5){ gantiBaju; bacaDoaSebelumWudhu; wudhu; bacaDoaSetelahWudhu; pergiKeMasjid; shalatSubuh; } if (jam==12){ gantiBaju; bacaDoaSebelumWudhu; wudhu; bacaDoaSetelahWudhu; pergiKeMasjid; shalatZuhur; } if (jam==16){ gantiBaju; bacaDoaSebelumWudhu; wudhu; bacaDoaSetelahWudhu; pergiKeMasjid; shalatAsar; } if (jam==18){ gantiBaju; bacaDoaSebelumWudhu; wudhu; bacaDoaSetelahWudhu; pergiKeMasjid; shalatMagrib; } if (jam==20){ gantiBaju; bacaDoaSebelumWudhu; wudhu; bacaDoaSetelahWudhu; pergiKeMasjid; shalatIsya; }
Perhatikan bahwa kegiatan di atas dilakukan berulang, tanpa menggunakan fungsi sintaksnya panjang, jika kita buat fungsi bernama berwudu() yang didefinisikan sebagai berikut:
berwudhu(){ gantiBaju; bacaDoaSebelumWudhu; wudhu; bacaDoaSetelahWudhu; pergiKeMasjid; }
Cukup dengan memanggil fungsi Shalat() untuk tiap kondisi if di atas, maka sintaksnya menjadi lebih ringkas seperti di bawah ini:
if (jam==5){ //jika jam 5 maka dijalankan fungsi atau statemen di tubuh if ini berwudhu();//memanggil fungsi berwudhu() shalatSubuh; } if (jam==12){ //jika jam 12 maka dijalankan fungsi atau statemen di tubuh if ini berwudhu();//memanggil fungsi berwudhu() shalatZuhur; } if (jam==16){ //jika jam 16 maka dijalankan fungsi atau statemen di tubuh if ini berwudhu();//memanggil fungsi berwudhu() shalatAsar; } if (jam==18){ //jika jam 12 maka dijalankan fungsi atau statemen di tubuh if ini berwudhu();//memanggil fungsi berwudhu() shalatMagrib; } if (jam==20){ //jika jam 12 maka dijalankan fungsi atau statemen di tubuh if ini berwudhu();//memanggil fungsi berwudhu() shalatIsya; }
Perhatikan bahwa fungsi dapat mempersingkat koding yang panjang.
Fungsi di dalam C memiliki tiga aspek yaitu definisi fungsi, memanggil (call) serta deklarasi fungsi. Definisi fungsi terdiri dari semua statemen yang akan dieksekusi, call fungsi untuk memanggil fungsi sedangkan deklarasi berfungsi untuk menginformasikan compiler tentang nama, parameter dan tipe data dari nilai kembali. Sintaks untuk tiap aspek fungsi adalah sebagai berikut:
Tabel 5.1. Sintaks aspek fungsi
Mendefinisikan dan mendeklarasi fungsi harus dilakukan sebelum memanggilnya. Di IDE Arduino, mendefinisikan fungsi di dalamnya juga termasuk mendeklarasikannya. Perhatikan contoh berikut:
//mendefinisikan fungsi void NamaSaya () //deklarasi fungsi { Serial.println(“Pauzan“);//menulis kata Pauzan di serial monitor, println menunjukkan setelah Pauzan ditulis, penulisan berikutnya ada di baris di bawahnya }
Saat kita mendefinisikan fungsi NamaSaya(), fungsi tersebut juga dideklarasikan. Jadi dalam IDE Arduino, kita akan selalu menggunakan istilah definisi fungsi (deklarasi fungsi ada di dalamnya). Dari sintaks di atas, nilai kembali adalah void, nama fungsi adalah NamaSaya, sedangkan argumennya tidak ada (kalau tidak ada, boleh ditulis void). void menunjukkan bahwa fungsi tidak memiliki nilai kembali, dengan kata lain fungsi NamaSaya() tidak bisa dimasukkan di dalam suatu perhitungan matematik. Memanggil sebuah fungsi Untuk menggunakan fungsi yang dibuat di atas, maka fungsi tersebut harus dipanggil. Perhatikan program berikut:
void setup() { Serial.begin(9600); //komunikasi serial dengan komputer NamaSaya(); //memanggil fungsi Serial.printIn(“Teknik Komputer”);//menuliskan “Teknik Komputer” di bawah fungsi NamaSaya() NamaSaya();//memanggil fungsi nama saya } void loop() { } //mendefinisikan fungsi bernama NamaSaya() void NamaSaya() //deklarasi fungsi { Serial.printIn(“Pauzan“); }
Perhatikan hasilnya pada serial monitor di bawah ini:
Gambar 5.1. Penggunaan fungsi di IDE Arduino
Pada sketch atau program di atas, fungsi NamaSaya() didefinisikan pada bagian paling bawah dan dipanggil dua kali pada blok fungsi setup(). Perhatikan bahwa jika fungsi dipanggil, cukup menambahkan semikolon di akhir fungsi, seperti NamaSaya() menjadi NamaSaya();.
PREVIOUS: Loop Do While
NEXT: Argumen Fungsi