2. MATERI PENGGUNAAN FUNGSI
1. Pengertian Fungsi
Fungsi merupakan bagian dari program dalam mengerjakan suatu tugas tertentu
sesuai dengan perintah yang memanggilnya. Fungsi juga merupakan bagian dari dalam
bahasa C, karena dalam bahasa C juga terbentuk kumpulan fungsi-fungsi. Dalam program
bahasa C biasanya terdiri minimal dari satu fungsi main(). Dimana setiap fungsi dalam
program bahasa C diterapkan secara tersetruktur. Keuntungan dalam program penggunaan
fungsi yaitu program mempunyai readabilyty yang tinggi atau memiliki struktur yang jelas
dan juga akan menghindari dari penulisan yang sama pada bagian program. Terdapat dua
bagian fungsi dalam bahasa C, antara lain : fungsi yang sudah tersedia dalam Turbo C atau
fungsi pustaka dan fungsi yang dibuat atau didefinisikan oleh programer.
Fungsi standar C yang mengemban tugas khusus contohnya adalah ;
a. printf() , yaitu untuk menampilkan informasi atau data ke layar.
b. scanf() , yaitu untuk membaca kode tombol yang diinputkan.
Pada umumnya fungsi memerlukan nilai masukan atau parameter yang disebut
sebagai argumen. Nilai masukan ini akan diolah oleh fungsi. Hasil akhir fungsi berupa
sebuah nilai (disebut sebagai return value atau nilai keluaran fungsi). Oleh karena itu
fungsi sering digambarkan sebagai "kotak gelap" seperti ditunjukkan pada gambar di
bawah ini.
Penggambaran sebagai kotak gelap di antaranya menjelaskan bahwa bagian dalam
fungsi bersifat pribadi bagi fungsi. Tak ada suatu pernyataan di luar fungsi yang bisa
mengakses bagian dalam fungsi, selain melalui parameter (atau variabel eksternal yang
FUNGSI
Parameter Keluaran
Fungsi
3. MATERI PENGGUNAAN FUNGSI
akan dibahas belakangan). Misalnya melakukan goto dari pernyataan di luar fungsi ke
pernyataan dalam fungsi adalah tidak diperkenankan.
Bentuk umum dari definisi sebuah fungsi adalah sebagai berikut ;
tipe-keluaran-fungsi nama-fungsi (deklarasi argumen)
{
tubuh fungsi
}
Keterangan :
tipe-keluaran-fungsi, dapat berupa salah satu tipe data C, misalnya char atau int .
Kalau penentu tipe tidak disebutkan maka dianggap bertipe int (secara default).
tubuh fungsi berisi deklarasi variabel (kalau ada) dan statemen-statemen yang akan
melakukan tugas yang akan diberikan kepada fungsi yang bersangkutan. Tubuh
fungsi ini ditulis di dalam tanda kurung kurawal buka dan kurung kurawal tutup.
Sebuah fungsi yang sederhana bisa saja tidak mengandung parameter sama sekali dan
tentu saja untuk keadaan ini deklarasi parameter juga tidak ada. Contoh :
int inisialisasi()
{ return(0);
}
inisialisasi()
{ return(0);
}
Pada fungsi di atas :
tipe keluaran fungsi tidak disebutkan, berarti keluaran fungsi ber tipe int.
4. MATERI PENGGUNAAN FUNGSI
inisialisasi adalah nama fungsi
Tanda () sesudah nama fungsi menyatakan bahwa fungsi tak memiliki parameter.
Tanda { dan } adalah awal dan akhir fungsi
return(0) merupakan sebuah pernyataan dalam tubuh fungsi.
}
2. Fungsi Pustaka Bahasa C
Terdapat beberapa fungsi pustaka dalam bahasa C, antara lain :
a. Fungsi Operasi String ( “string.h”)
1) Strcpy()
Berfungsi untuk menyalin String asal ke Variabel tujuan. Bentuk umum
penulisannya: strcpy(var_tujuan, string_asal);
2) Strlen()
Berfungsi untuk memperoleh jumlah karakter dari string. Bentuk umum
penulisannya: strlen(string);
inisialisasi()
{
return(0);
Nama fungsi
Sepasang tanda kurung, tanpa argumen
Tak ada tanda titik koma
Awal fungsi
Tubuh fungsi
Akhir fungsi
5. MATERI PENGGUNAAN FUNGSI
3) Strcat()
Berfungsi untuk menambahkan string sumber ke bagian akhir dari string tujuan.
Bentuk umum penulisannya : strcat(tujuan, sumber);
4) Strupr()
Berfungsi untuk mengubah dalam setiap huruf dari suatu string untuk menjadi
huruf kapital. Bentuk umum penulisannya : strupr(string);
5) Strlwr()
Berfungsi untuk mengubah pada setiap huruf dari string menjadi huruf kecil
semua. Bentuk umum penulisannya : strlwr(string);
6) Strcmp()
Berfungsi membandingkan dua buah string, dimana hasil fungsi ini bertipe INT
(integer) dengan nilai :
a) Negatif, jika string pertama < dari string kedua
b) Nol, jika string pertama = string kedua
c) Positif, jika string pertama > dari string kedua.
Bentuk umum penulisannya : strcmp(string1, string2);
6. MATERI PENGGUNAAN FUNGSI
b. Fungsi operasi karakter (“ctype.h”)
1) Islower()
Berfungsi untuk menghasilkan bukan nol (nilai benar) jika karakter adalah huruf
kecil. Bentuk umum penulisannya : islower(char);
2) Isupper()
Berfungsi untuk menghasilkan nilai bukan nol (nilai benar) jika karakter adalah
huruf kapital. Bentuk umum penulisannya : isupper(char);
3) Isdigit()
Berfungsi untuk menghasilkan nilai bukan nol (nilai benar)) jika karakter adalah
sebuah digit. Bentuk umum penulisannya : isdigit(char);
4) Tolower()
Berfungsi untuk mengubah huruf kapital menjadi suatu huruf kecil. Bentuk
umum penulisannya: tolowe(char);
5) Toupper()
Berfungsi untuk mengubah suatu huruf kecil menjadi huruf kapital. Bentuk
umum penulisannya : toupper(char);
7. MATERI PENGGUNAAN FUNGSI
c. Fungsi operasi matematik (“math.h” dan stdlib.h”)
1) Sqrt()
Berfungsi untuk menghitung akar suatu bilangan. Bentuk umum penulisannya :
sqrt(bilangan);
2) Pow()
Berfungsi untuk menghitung pemangkatan dari sebuah bilangan. Bentuk umum
penulisannya : pow((bilangan, pangkat);
8. MATERI PENGGUNAAN FUNGSI
3) Sin(), cos(), tan()
Masing-masing tersebut berfungsi untuk menghitung nilai Sin, Cos, dan Tan
dari suatu sudut. Bentuk umum penulisannya :
sin(sudut);
cos(sudut);
tan(sudut);
4) Atof()
Berfungsi untuk mengkonversi nilai string untuk menjadi bilangan bertipe
double. Bentuk umum penulisannya : atof(vhar x);
9. MATERI PENGGUNAAN FUNGSI
5) Atoi()
Berfungsi untuk mengkonversi nilai string untuk menjadi bilangan yang bertipe
integer. Bentuk umum penulisannya : atoi(char x);
6) Div()
Berfungsi untuk menghitung hasil dan sisa pembagian. Bentuk umum
penulisannya : div_t div(int x, int y)
Strukturnya :
Typedef stuct
{ int qout; // hasil pembagian
Int rem //sisa pembagian
} div_t;
10. MATERI PENGGUNAAN FUNGSI
7) Max()
Berfungsi untuk menentukan nilai maximal dari dua buah bilangan. Bentuk
umum penulisannya : max(bilangan1, bilangan2);
8) Min()
Berfungsi untuk menentukan bilangan yang terkecil dari dua buah bilangan.
Bentuk umum penulisannya : min(bilangan1, bilangan2);
3. Membuat Fungsi Sendiri
a. Deklarasi fungsi
Sebelum dipanggil atau digunakan, suatu fungsi harus didefinisikan dan
dideklarasikan terlebih dahulu. Bentuk umum penulisannya (pendeklarasian) fungsi
adalah tipe_fungsi nama_fungsi(parameter_fungsi);
Sedangkan bentuk umum penulisannya dalam pendefinisiannya adalah
tipe_fungsi nama_fungsi(parameter_fungsi) {
statement
statement
-----------
-----------
}
b. Hal-hal yang perlu diperhatikan
1) Kalau tipe fungsi tidak disebutkan, maka dianggap sebagai fungsi dengan nilai
keluaran yang bertipe integer
2) Untuk fungsi yang mempunyai keluaran bertipe bukan INT(integer), maka
diperlukan pendefinisian pada penentu tipe fungsi
3) Fungsi yang tidak memiliki nilai keluaran maka akan dimasukkan ke dalam tipe
void
4) Pernyatan diberikan dalam memberikan nilai akhir fungsi yang berupa pernyataan
return
5) Fungsi dapat menghasilkan nilai balik pada fungsi pemanggilnya.
12. MATERI PENGGUNAAN FUNGSI
c. Parameter formal dan parameter aktual
Parameter formal merupakan variabel yang ada pada dafttar dalam parameter
definisi fungsi, sedangkan parameter aktual merupakan parameter (variabel) yang
dipakai dalam pemanggilan fungsi. Bentuk umum penulisannya :
d. Cara melewatkan parameter
Terdapat dua macam cara untuk melewatkan suatu parameter dalam bahasa C,
antara lain :
1) Call by value (Pemanggilan secara nilai)
Nilai akan menyalin dari parameter aktual ke paramete formal, dimana yang
dikirimkan ke fungsi bukan alamat memori letak dari datanya, melainkan nilai dari
datanya. Fungsi yang digunakan oleh bagian program memanggil fungsi yang
menerima kiriman nilai akan menyimpan dialamat terpisah dari nilai aslinya.
Perubahan parameter di fungsi tidak akan merubah nilai asli dalam program yang
memanggilnya. Pengiriman parameter secara nilai merupakan pengiriman searah,
dimana dari bagian program memanggil fungsi ke fungsi yang telah dipanggil.
Dengan pengiriman suatu nilai dapat dilakukan untuk suatu uangkapan, yang tidak
hanya untuk suabtu variabel, konstanta atau elemen array saja.
main()
{
...
c = jumlah(a, b);
...
}
parameter
aktual
float jumlah(float x, float y)
{
return(x + y);
}
parameter formal
13. MATERI PENGGUNAAN FUNGSI
2) Call by reference (Pemanggilan secara referensi)
Pemanggilan secara referensi adalah upaya untuk melewatkan alamat dari
suatu variabel kedalam fungsi. Dimana yang dikirimkan kefungsi bukan nilai
datanya, melainkan alamat letak dari nilai datanya. Fungsi yang menerima kirima n
digunakan untuk mendapatkan nilai datanya. Perubahan nilai difungsi akan berubah
pada nilai aslinya dibagian program yang telah memanggil fungsi. Pengiriman
parameter secara referensi merupakan pengiriman dua arah, dimana fungsi
pemanggil ke fungsi yang dipanggil dan juga sebaliknya. Pengriman secara acak
tidak dapat dilakukan untuk suatu ungkapan.
14. MATERI PENGGUNAAN FUNGSI
e. Stroge Class (variabel berdasarkan kelas penyimpanan)
1) Variabel lokal
Variabel lokal merupakan variabel yanng dideklarasikan didalam fungsi. Terdapat
beberapa sifat-sifat dalam variabel lokal, antara lain:
a) Ketika fungsi dipanggil secara otomatis akan diciptakan dan akan lenyap ketika
saat proses eksekusi pada fungsi berakhir.
b) Hanya dikenal oleh fungsi yang variabel dideklarasikan
c) Tidak ada inisialisasi secara otomatis atau nilainya random
d) Dideklarasikan dengan menambakan kata “auto”
2) Variabel global
Variabel global merupakan variabel yanng dideklarasikan diluar fungsi. Terdapat
beberapa sifat-sifat dalam variabel global, antara lain:
a) Dapat diakses atau dikenal oleh semua fungsi
b) Secara otomatis berisi nilao nol jika tidak diberi nilai awal
c) Menambahkan kata “extern” untuk dideklarasikan.
15. MATERI PENGGUNAAN FUNGSI
3) Variabel statis
Variabel statis merupakan variabel yang nilainya tetap dan dapat berupa variabel
internal (lokal) dan variabel eksternal (global). Terdapat beberapa sifat-sifat
variabel statis, antara lain :
a) Jika bersifat lokal (internal), maka variabel hanya dikenal oleh fungsi tempat
variabel yang dideklarasikan.
b) Jika bersifat global (eksternal), maka variabel dapat dipergunakan oleh semua
fungsi terletak pada progrma yang sama
c) Nilai variabel statis tidak akan hilang walau eksekusi pada fungsi yang telah
berakhir
d) Inisialisasi perlu dilakukan sekali saja yaitu fungsi dipanggil pada saat pertama
kali
e) Secara otomatis bernilai nol jika tidak diberi nilai awal
f) Menambahkan kata “static” untuk dideklarasikan
16. MATERI PENGGUNAAN FUNGSI
4) Variabel register
Variabel register merupakan variable yang nilainya disimpan buka dalam memori
melainkan disimpan dalam resister. Terdapat beberapa sifat-sifat variabel register,
antara lain :
a) Dapat diterapkan pada variabel lokal dengan tipe int dan char
b) Dapat digunakan untuk mengendalikan looping (proses perulangan)
c) Looping (proses pengulangan) akan lebih cepat karena variabel register
memiliki kecepatan yang lebih tinggi dibandingkan variabel biasa
d) Menambahkan kata”register” untuk dideklarasikan
f. Fungsi rekrusif
Fungsi rekrusif merupakan fungsi yang memanggil dirinya sendiri