Functions pada Struktur Data
Fungsi/function adalah suatu kumpulan instruksi/perintah/program yang dikelompokkan menjadi satu, letaknya terpisah dari program yang menggunakan fungsi tersebut, memiliki nama tertentu yang unik, dan digunakan untuk mengerjakan suatu tujuan tertentu.
Keutungan penggunaan fungsi
- Dapat melakukan pendekatan top down dan divide and conquer:
- Top down: penelusuran program mudah
- Divide and conquer: program besar dapat dipisah menjadi program program kecil.
- Kode program menjadi lebih pendek, mudah dibaca, dan mudah dipahami
- Program dapat dikerjakan oleh beberapa orang sehingga program cepat selesai dengan koordinasi yang mudah.
- Mudah dalam mencari kesalahan kesalahan karena alur logika jelas dan sederhana
- Kesalahan dapat dilokalisasi dalam suatu modul tertentu saja.
- Modifikasi program dapat dilakukan pada suatu modul tertentu saja tanpa mengganggu program keseluruhan
- Fungsi- fungsi menjadikan program mempunyai struktur yang jelas.
- Dengan memisahkan langkah langkah detail ke satu atau lebih fungsi- fungsi, maka fungsi utama (main) akan menjadi lebih pendek, jelas dan mudah dimengerti.
- Fungsi-fungsi digunakan untuk menghindari penulisan program yang sama yang ditulis secara berulang-ulang. Langkah-langkah tersebut dapat dituliskan sekali saja secara terpisah dalam bentuk fungsi. Selanjutnya bagian program yang membutuhkan langkah-langkah ini tidak perlu selalu menuliskannya, tidak cukup memanggil fungsi tersebut.
- Mempermudah dokumentasi.
- Reusability: Suatu fungsi dapat digunakan kembali oleh program atau fungsi lain.
Kategori Fungsi dalam C
Standard Library Function
- Yaitu fungsi-fungsi yang telah disediakan oleh C dalam file-file header atau librarynya. Misalnya: clrscr(), printf(), getch()
- Untuk function ini kita harus mendeklarasikan terlebih dahulu library yang akan digunakan, yaitu dengannmenggunakan preprosesor direktif. Misalnya: #include <conio.h>
Programmer-Defined Function
- Adalah function yang dibuat oleh programmer sendiri.
- Function ini memiliki nama tertentu yang unik dalam program, letaknya terpisah dari program utama, dan bisa dijadikan satu ke dalam suatu library buatan programmer itu sendiri yang kemudian juga di-includekan jika ingin menggunakannya.
Perancangan Fungsi
Dalam membuat fungsi, perlu diperhatikan:
- Data yang diperlukan sebagai inputan
- Informasi apa yang harus diberikan oleh fungsi yang dibuat ke pemanggilnya
- Algoritma apa yang harus digunakan untuk mengolah data menjadi informasi
Stuktur Fungsi
- Deklarasi fungsi diakhiri dengan titik koma
- Deklarasi function (function prototype/declaration), terdiri dari:
- Judul fungsi
- Tipe data yang akan dikembalikan/void
- Tidak ada kode implementasi function tersebut
- Bentuk umum:
- tipe_data|void nama_fungsi([arguman 1, argument 2,....]);
- Tipe_data dapat berupa segala tipe data yang dikenal C ataupun tipe data buatan, namun tipe data dapat juga tidak ada dan digantikan dengan void yang berarti fungsi tersebut tidak mengembalikan nilai apapun
- Nama fungsi adalah nama yang unik
- Argumen dapat ada atau tidak (opsional) yang digunakan untuk menerima argumen/parameter.
- Antar argumen-argumen dipisahkan dengan menggunakan tanda koma.
- Suatu fungsi perlu dideklarasikan sebelum digunakan.
- Untuk alasan dokumentasi program yang baik, sebaiknya semua fungsi yang digunakan dideklarasikan terlebih dahulu
- Deklarasi fungsi ditulis sebelum fungsi tersebut digunakan
- Tubuh Function/Definisi Function (Function Definition), terdiri dari:
- function prototype yang disertai dengan kode implementasi dari function tersebut, yang berisikan statemen/instruksi yang akan melakukan tugas sesuai dengan tujuan dibuatnya fungsi tersebut.