Search This Blog

Sunday 4 September 2016

Definisi dan Deklarasi fungsi

Sebelum langsung ke inti pembahasan dalam bentuk program, alangkah lebih baiknya jika penulis memperkenalkan terlebih dahulu apa itu fungsi. Yang dimaksud dengan function atau fungsi merupakan sejumlah instruksi yang dikelompokan, berdiri sendiri dan berfungsi untuk menyelesaikan suatu pekerjaan tertentu. Untuk bahasa C sendiri kita sudah jelas sering menggunakan fungsi, yaitu fungsi utama atau fungsi main(). Namun fungsi tersebut kini akan kita pelajari, sehingga tidak hanya menggunakan fungsi main lagi. Dan seberapa penting fungsi itu dalam sebuah program bahasa c, jawabannya ialah sangat penting. Karena pada saat pertama program dijalankan pun yang pertama dicari oleh komputer ialah function, lebih tepatnya main function / fungsi utama. Komputer akan lebih awal menjalankan perintah-perintah didalam fungsi utama tersebut dan bahkan komputerpun akan mengenal fungsi lain karena adanya fungsi utama, selagi tidak dipanggil oleh fungsi utama maka fungsi tambahanpun tidak akan terbaca oleh komputer. Dengan demikian dapat dibilang bahwa fungsi tambahan hanyalah pembantu dari fungsi utama, dimana ia hanya menerima panggilan dari fungsi utama.

Yang pertama akan kita bahas disini ialah cara mendeklarasikan fungsi. Mendeklarasikan fungsi hampir mirip dengan mendeklarasikan variabel, dimana fungsi tersebut hanya diperkenalkan / didaftarkan terlebih dahulu sebelum dapat digunakan. Deklarasi fungsi ini dilakukan jika fungsi tersebut diletakan dibawah fungsi main, dengan demikian sebelum penggunaannya akan diperkenalkan terlebih dahulu. Berikut contoh programnya:

#include<stdio.h>
void printf();
main(){
printf();
}
void printf(){
printf("Goomilar97");
}

Pada contoh program diatas terdapat sebuah deklarasi fungsi, dimana fungsi tersebut diberi nama printf(). Printf tersebut hanyalah nama dari fungsi yang digunakan, atau dengan kata lain penulisan printf pada deklarasi sebelum fungsi main() hanyalah penamaan dari fungsi itu sendiri sebelum akhirnya diproses lebih lanjut, dan sudah jelas dengan demikian nama printf tersebut dapat diganti dengan nama lain sesuai dengan keinginan. Dan setelah pendeklarasian fungsi tersebut, kita melihat dalam fungsi main ada tulisan printf(); dimana tulisan tersebut bertugas untuk memanggil fungsi printf() bukan untuk mencetak sesuatu ke layar. Dan dengan pemanggilan fungsi tersebut maka program akan memproses perintah-perintah yang ada dalam fungsi printf(). Dalam fungsi printf() terdapat perintah untuk mencetak tulisan "Goomilar97" ke layar. Dan dengan demikian kita dapat menyimpulkan bahwa memang fungsi printf() tersebut hanya berjalan ketika ia dipanggil oleh fungsi main().

Selain pendeklarasian fungsi, ada pula pendefinisian fungsi. Dimana dalam pendefinisian fungsi, fungsi tersebut harus memiliki judul terlebih dahulu, minimal dengan adanya nama dan tipe fungsi. Pada tulisan void printf(){ printf("Goomilar97"); } tersebut merupakan pendefinisian fungsi, dimana fungsi diberi nama printf dengan tipe void (tanpa tipe). Dan jika dibandingkan dengan pendeklarasian fungsi sendiri, deklarasi hanya untuk memperkenalkan dan disimpan sebelum fungsi main dengan akhiran tanda titik koma, selagi tidak ada karakter titik koma tersebut maka program akan menganggapnya sebagai definisi fungsi. Ada cara penulisan lain untuk fungsi, dimana tidak perlu menggunakan bantuan dari deklarasi fungsi. Ialah dengan menuliskan fungsi tersebut diatas fungsi main(). Untuk program seperti itu, Anda dapat langsung menuliskan programnya sebagai berikut:

#include<stdio.h>
void printf(){
printf("Goomilar97");
}
main(){
printf();
}
Jika diperhatikan dari kedua program diatas, perbedaan antara contoh program yang pertama dan kedua hanyalah dalam posisinya saja, jika pada program yang pertama fungsu main() ditulis terlebih dahulu sebelum fungsi tambahan, sedangkan pada program yang kedua fungsi tambahan terlebih dahulu ditulis sebelum fungsi main(). Dan itulah yang membuat program pertama membutuhkan deklarasi fungsi, ialah karena ia berada dibawah fungsi main yang dalam aturannya harus diperkenalkan terlebih dahulu melalui proses deklarasi fungsi. Maka dengan demikian jika memang Anda tidak ingin repot-repot mendeklarasikan fungsi, jangan tempatkan fungsi itu dibawah fungsi main, tempatkanlah langsung sebelum fungsi main tersebut (langsung didefinisikan), karena jika Anda tetap menuliskan fungsi tersebut dibawah fungsi main() tanpa adanya deklarasi fungsi terlebih dahulu, maka semua itu hanya akan menyebabkan error pada program.

Kelebihan untuk penggunaan fungsi sendiri sangat banyak, antara lain untuk membantu dalam menjalakan program, dimana pada saat program memiliki banyak tugas didalamnya, selagi tugas tersebut mengandung pilihan (tidak dijalankan semuanya), maka Anda dapat membaginya kedalam beberapa fungsi yang berbeda. Walau memang proses seperti itu dapat dijalankan dalam sebuah fungsi utama (misal), namun akan lebih nyaman dan membantu mempermudah dalam membuat program dengan jumlah yang banyak. Dengan demikian pada saat Anda akan memperbaiki sebuah perintah dalam banyak perintah disampingnya, maka Anda tinggal mencari fungsunya saja, dan dari situ Anda tidak terlalu sulit dalam mencari perintah yang harus diperbaiki tersebut. Namun karena dalam pemrograman C ini yang diutamakan algoritmanya, maka semua tetap kembali kepada pribadi masing-masing. Jika memang Anda membutuhkan bantuan dari fungsi, maka Anda dapat menggunakannya, namun jika Anda lebih suka merakit algoritma sendiri yang menyetarai tugas dari fungsi tersebut, maka silahkan saja, yang terpenting dalam pembuatan program sendiri kan kepuasan dari pengguna dan mudah untuk digunakannya. Buat apa program ada terlihat menarik jika saat digunakan hanya akan menantang algoritma dari user program tersebut.

Untuk function sendiri penulis merasa bahwa fungsi itu banyak kesamaannya dengan sebuah variabel, dimana mereka hanya akan dipanggil pada saat dibutuhkan, selain itu penamaannya pun sesuai dengan keinginan kita, termasuk dalam menentukan tipenya. Dengan kata lain, jika penulis dapat katakan bahwa fungsi utama merupakan pemerintah, maka fungsi tambahan hanyalah menjadi yang diperintah, namun perbedaannya dengan variabel, dalam fungsi ini dapat terkandung banyak perintah yang disisipkan. Dengan demikian ia tidak hanya dapat diperintah tapi juga dapat memerintah. Jika diibaratkan seperti sebuah pasukan perang, pada saat komandan memerintah kapten untuk melakukan bertugaskan sesuatu, maka si kapten tersebut akan memerintahkan anak buahnya untuk melakukan yang diperintah sang komandan. Begitupun dengan fungsi tambahan, ia akan menerima panggilan/perintah dari fungsi utama dan akhirnya iapun akan memerintahkannya kembali pada apa yang ada didalam fungsi tersebut. Pada saat fungsi utama berkata "sekarang merupakan tugas kamu", maka ia akan dengan segera memproses semua perintah yang terkandung didalamnya. Demikian alur dari program dengan adanya fungsi tambahan.

Dan untuk fungsi sendiri, untuk sedikit mengingatkan bahwa jika memang ingin membuat sebuah fungsi sendiri, jangan lupa untuk tetap menggunakan fungsi main, karena yang namanya tambahan tidak akan berjalan jika tidak ada yang utamanya. Maka main function tetap digunakan. Selain itu, untuk perbedaan antara deklarasi dengan definisi (hanya sebagai penegasan) ialah dapat dilihat dari posisi fungsi itu sendiri, jika fungsi diletakan dibawah fungsi utama, maka deklarasi perlu dilakukan, namun jika fungsi tersebut berada sebelum fungsi utama, maka hanya diperlukan definisi. Namun untuk definisi sendiri, memang setiap fungsi mengandung definisi, bukan berarti semua fungsi mengandung deklarasi. Jadi perbedaannya dapat disimpulkan demikian. Dengan demikian jangan sampai tertukar antara deklarasi dengan definisi. Untuk mengingatnya agar mudah, ingatlah dalam mendeklarasikan sebuah variabel, deklarasi variabel dilakukan di awal sebagai pengenal pada program serta tidak disisipkan tugas apapun, semaksimalnya hanya disisipkan nilai awal (inisialisasi) pada deklarasi tersebut. Begitupun dengan fungsi, deklarasi tidak mengandung perintah, hanya perkenalan, jika disisipkan perintah maka akan menjadi definisi.

No comments:

Post a Comment