1. Pengertian. Fungsi adalah suatu bagian dari program yang dirancang untuk melaksanakan tugas tertentu dan letaknya dipisahkan dari program yang menggunakannya. Elemen utama dari program bahasa C berupa fungsi-fungsi, dalam hal ini program dari bahasa C dibentuk dari kumpulan fungsi pustaka (standar) dan fungsi yang dibuat sendiri oleh pemrogram. Fungsi banyak digunakan pada program C dengan tujuan : 1. Program menjadi terstruktur, sehingga mudah dipahami dan mudah
dikembangkan. Dengan memisahkan langkah-langkah detail ke satu ataulebih fungsifungsi, maka fungsi utama (main()) menjadi lebih pendek, jelas dan mudah dimengerti. 2. dapat mengurangi pengulangan (duplikasi) kode. Langkah-langkahprogram yang sama dan dipakai berulang-ulang di program dapat dituliskansekali saja secara terpisah dalam bentuk fungsi-fungsi. Selanjutnya bagianprogram yang membutuhkan langkahlangkah ini tidak perlu selalumenuliskannya, tetapi cukup memanggil fungsi-fungsi tersebut
strupr() Digunakan untuk mengubah setiap huruf dari suatu string menjadi huruf capital. Bentuk umum : strupr(string);
strlwr() Digunakan untuk mengubah setiap huruf dari suatu string menjadi huruf kecil semua. Bentuk umum : strlwr(string);
Hasil dari fungsi ini bertipe integer dengan nilai : (a) Negative, jika string pertama kurang dari string kedua. (b) Nol, jika string pertama sama dengan string kedua (c) Positif, jika string pertama lebih besar dari string kedua. Bentuk umum : strcmp(string1, string2); Contoh Program:
2. Fungsii Operasi Karakter (tersimpan dalam header ctype.h) islower() Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter
merupakan huruf kecil. Bentuk umum : islower(char); isupper() Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter merupakan huruf kapital. Bentuk umum : isupper(char); isdigit() Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter merupakan sebuah digit. Bentuk umum : isdigit(char); tolower() Fungsi akan mengubah huruf capital menjadi huruf kecil. Bentuk umum : tolower(char); toupper() Fungsi akan mengubah huruf kecil menjadi huruf kapital. Bentuk umum : toupper(char);
Contoh program :
Fungsi Operasi Matematik (tersimpan dalam header math.h dan stdlib.h) 1. sqrt() Digunakan sqrt(bilangan); 2. pow() Digunakan untuk menghitung pemangkatan suatu bilangan. Bentuk umum : pow(bilangan, pangkat); Contoh program : untuk menghitung akar dari sebuah bilangan. Bentuk umum :
sin(), cos(), tan() Masing-masing digunakan untuk menghitung nilai sinus, cosinus dan tangens dari suatu sudut. Bentuk umum :sin(sudut); cos(sudut); tan(sudut); contoh
Hasil
atof() Digunakan untuk mengkonversi nilai string menjadi bilangan bertipe double. Bentuk umum : atof(char x);
atoi() Digunakan untuk mengkonversi nilai string menjadi bilangan bertipe integer. Bentuk umum : atoi(char x);
Contoh program :
Hasil program
Contoh program :
Hasilnya :
Parameter Fungsi Dalam bahasa C terdapat 2 macam parameter fungsi yaitu ; 1. Parameter formal yaitu variabel yang terdapat pada daftar parameter yang berada di dalam definisi fungsi. 2. Parameter aktual adalah variabel yang digunakan pada pemanggilan satu fungsi. Terdapat dua cara untuk melewatkan parameter ke dalam fungsi, yaitu : 1. Pemanggilan dengan nilai (Call by value) Call by value akan menyalin nilai dari parameter aktual ke parameter formal. Nilai yang dikirimkan ke fungsi adalah nilai dari datanya, bukan alamat memori letak dari datanya. Fungsi yang menerima kiriman nilai akan menyimpannya di alamat terpisah dari aslinya yang digunakan oleh bagian program yang memanggil fungsi. Perubahan nilai di fungsi (parameter formal) tidak akan merubah nilai asli di bagian program yang memanggilnya. Pengiriman parameter secara nilai adalah pengiriman searah, yaitu dari bagian program yang memanggil fungsi ke fungsi yang dipanggil. Pengiriman suatu nilai dapat dilakukan untuk suatuungkapan untuk sebuah variabel, elemen array atau konstanta saja. Contoh program : tidak hanya
Hasil Program:
2. Pemanggilan Secara Referensi (Call by Ref erence) Pemanggilan secara Referensi merupakan upaya untuk melewatkan alamat dari suatu variabel ke dalam fungsi. Yang dikirimkan ke fungsi adalah alamat letak dari nilai datanya, bukan nilai datanya. Fungsi yang menerima kiriman alamat ini akan menggunakan alamat yang sama untuk mendapatkan nilai datanya. Perubahan nilai di fungsi akan merubah nilai asli di bagian program yang memanggil fungsi. Pengiriman parameter secara referensi adalah pengiriman dua arah, yaitu dari fungsi pemanggil ke fungsi yang dipanggil dan juga sebaliknya. Pengiriman secara acuan tidak dapat dilakukan untuk suatu ungkapan.
Variabel lokal adalah variabel yang dideklarasikan di dalam fungsi dan hanya dikenal oleh fungsi yang bersangkutan. Variabel lokal biasa juga disebut sebagai variabel otomatis.
Contoh program 2. Variabel global /eksternal Variabel eksternal adalah variabel yang dideklarasikan di luar fungsi yang bersifat global yang berarti dapat digunakan bersama sama tanpa harus dideklarasikan berulang ulang. Pendeklarasian variabel eksternal diletakkan di luar fungsi main () 3. Variabel statis Variabel statis dapat berupa variabel lokal ataupun variabel eksternal. Variabel statis ini bersifat : Jika variabel bersifat lokal maka hanya dikenal oleh fungsi tempat variabel tersebut dideklarasikan. Jika variabel statis bersifat eksternal maka variabel dapat dipergunakan oleh semua fungsi yang terletak pada file yang sama di tempat variabel statis dideklarasikan. Jika tidak ada inisialisasi maka secara otomatis akan diberikan nilai awal nol.
4. Variabel Register Variabel Register adalah variabel yang nilainya disimpan dalam resister dan bukan dalam memori RAM. Sifat-sifat variabel register : a. Hanya dapat diterapkan pada variabel lokal yang bertipe int dan char. b. Digunakan untuk mengendalikan proses perulangan (looping).
c. Proses perulangan akan lebih cepat karena variabel register memiliki kecepatan yang lebih tinggi dibandingkan variabel biasa. d. Dideklarasikan dengan menambahkan kata register. 5. Fungsi Rekursif Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri. Dengan adanya rekursi, dimungkinkan untuk memanggil fungsi dari dalam fungsi itu sendiri. Proses rekursi biasanya digunakan pada beberapa kasus dikarenakan penerapannya akan lebihmudah
dibanding ketika hanya menggunakan bentuk perulangan biasa. Namun, penggunaan rekursi juga memiliki beberapa masalah seperti efisiensi memori dan kecepatan kerja ketika sebuah proses rekursi dijalankan akan menjadi lebih lambat. Permasalahan
yang lebih sering terjadi adalah proses rekursi yang tidak kunjung berhenti, hingga mengakibatkan komputer hang.