fungsi didalam pemrograman diartikan sebagai suatu program yang dirancang khusus untuk melaksanakan tugas tertentu.
Terdapat dua macam fungsi didalam pemrograman, yaitu:
- Built in function
- User defined function
Built in function / fungsi standard merupakan fungsi bawaan / fungsi yang sudah didefinisikan oleh bahasa pemrograman.
Seperti yang sudah banyak kita pelajari pada materi-materi sebelumnya yaitu fungsi input meliputi scanf();
gets();
getchar();
dll. Lalu ada juga fungsi output seperti printf();
puts();
putchar();
dll
Sedangkan user defined function merupakan fungsi yang didefinisikan / dibuat sendiri oleh user. Pembuatan fungsi ini bersifat bebas susuai kebutuhan dari user.
Tujuan utama dari pembuatan fungsi didalam program yaitu
- Membuat program menjadi lebih terstruktur. Dengan menggunakan fungsi, program yang dibuat akan lebih rinci dan detail. Sehingga, program akan lebih mudah dipahami dan dikembangkan.
- Mengurangi pengulangan (duplikasi) kode. Program yang sama dan dipakai secara berulang-ulang tentunya terlihat tidak efisien dan akan membebani kinerja komputer. Disinilah peran dari fungsi, yang bisa digunakan untuk membuat satu perintah kode dan dapat dipanggil secara berulang ulang.
Dalam menjalankan tugasnya, fungsi memerlukan nilai masukan atau parameter yang nantinya akan diproses didalam tubuh fungsi tersebut.
Nilai masukan atau parameter didalam fungsi biasa disebut sebagai "Bahan baku".
Setelah fungsi selesai dalam menjalankan tugasnya, maka akan menghasilkan nilai keluaran atau return value.
Nilai keluaran atau return value didalam fungsi biasa disebut sebagai "oleh-oleh".
Dalam proses kerjanya, fungsi digambarkan sebagai kotak gelap seperti gambar berikut.
Kotak gelap tersebut menggambarkan bahwa bagian dalam fungsi tersebut bersifat pribadi/rahasia. Tidak ada satupun pernyataan dari luar fungsi yang dapat mengakses bagian dalam dari fungsi tersebut.
Berikut merupakan syntax penulisan fungsi dalam bahasa C.
TipeReturnValue NamaFungsi (parameter1, parameter2, dst.){ // Tubuh fungsi, berisi Blok Kode program } // Contoh int hitung(int a, int b){ int hasil; hasil = a+ b; return hasil; } // Atau bisa juga void sayHello(){ printf("Hello World!"); }
Tipe Retun Value
ini mengikuti tipe dari data yang nantinya akan dijadikan sebagai nilai keluaran atau oleh-oleh. Tipe return value ini merupakan tipe data standar yang ada didalam bahasa C, meliputiint
,float
,char
dst. Namun ada juga fungsi yang tidak memiliki nilai kembalian atau return value, fungsi ini bertipevoid
.Nama fungsi
, didalam nama fungsi ini user bebas memberi nama apapun, tetapi tetap memperhatihan kaidah penulisan identifier didalam pemrograman.Parameter
atau bahan baku, berisi argumen-argumen yang nantinya akan diolah didalam tubuh fungsi. Jika yang kalian jadikan parameter merupakan nama variabel, jangan lupa untuk menyertakan tipe datanya.Tubuh fungsi
ini berada diantara tanda kurung kurawal. Tubuh fungsi ini dapat berisi deklarasi variabel (jika diperlukan) dan juga didalam tubuh fungsi ini seluruh tugas-tugas fungsi dikerjakan. Terdapat statementreturn
, apabila fungsi tersebut mengembalikan sebuah nilai.
Berdasarkan keberadaan return value-nya, fungsi dibagi menjadi dua jenis, yaitu:
- memiliki return value
- tidak memiliki return value
1. Fungsi yang memiliki return value
Fungsi yang memiliki return value/oleh-oleh, biasa diawali dengan jenis tipe datanya. Contoh: int
, char
, float
, long int
, dll.
Berikut merupakan contoh fungsi dengan return value didalam program.
#include <stdio.h>
int banding(int, int); // Prototype fungsi int banding(int a, int b){ if(a> b){ return a; }else{ return b; } int main(){ int a = 3; int b = 2; int hasil; hasil = banding(a, b); // fungsi banding kita panggil, dengan mengirimkan dua argumen yaitu a dan b sebagai bahan baku printf(" %d", hasil); // Kita tampilakan hasilnya ke layar return 0; }
Didalam fungsi banding
diatas, kita buat program untuk memutuskan bilangan mana yang terbesar dari dua bilangan yang dimasukkan.
Pertama, kita buat prototype/deklarasi fungsi terlebih dahulu.
Didalam tubuh fungsi kita buat program..
if a > b return a;
dibaca "Jika nilai a
lebih besar dari b
,maka kembalikan nilai a
".
else return b;
"Jika tidak, maka kembalikan nilai b
"
Didalam fungsi main, kita panggil fungsi banding dengan mengirimkan dua argumennya sebagai parameter fungsi.
Selanjutnya, program akan memproses dua argumen tersebut didalam tubuh fungsi.
Didapatkan hasil nilai a
lebih besar dari b
.
Maka ketika fungsi banding
dipanggil, program akan menampilkan angka 3
atau nilai dari a
.
Hasilnya.
Itu tadi contoh return value bertipe int
, sekarang kita coba membuat return value bertipe char
.
Perhatikan program berikut.
#include <stdio.h>
char banding(int, int); // Prototype fungsi, return value kita ganti dengan char char banding(int a, int b){ // Begitu pula disini if(a> b){ return 'X'; // Nilai kembalian bertipe char }else{ return 'Y'; } int main(){ int a = 3; int b = 2; int hasil; hasil = banding(a, b); printf(" %c", hasil); // Kita tampilakan hasilnya ke layar return 0; }
Program sama seperti sebelumnya, hanya saja nilai kembalian atau oleh-oleh kita ganti dengan karakter.
if a > b return 'X';
dibaca "Jika nilai a
lebih besar dari b
, kembalikan 'X'
.
else return 'Y';
"Jika tidak, maka kembalikan 'Y'
"
Dari program diatas nilai a
lebih besar dari b
.
Maka ketika fungsi banding dipanggil, program akan menampilkan karakter 'X'
.
Hasilnya.
2. Fungsi yang tidak memiliki return value
Fungsi yang tidak memiliki return value ini biasa diawali dengan tipe void
, dan juga tidak memiliki statement return
didalam programnya.
Berikut merupakan contoh fungsi tanpa return value didalam program.
#include <stdio.h>
void kataKata(); // Prototype fungsi, return value bertipe void void kataKata(){ printf("Kunci utama belajar pemrograman adalah praktik dan terus mencoba\n"); printf("Jangan pernah bosan dan tetap semangatt..!!\n\n"); } int main(){ kataKata(); // Kita panggil fungsi kataKata untuk ditampilkan kelayar kataKata(); // Fungsi dapat kita panggil berkali-kali kataKata(); return 0; }
Program didalam fungsi kataKata
diatas, kita hanya ingin menampilkan data string saja.
Maka ketika fungsi kataKata
dipanggil, program akan menampilkan langsung isi yang ada didalamnya
Prototype/Deklarasi Fungsi
Sama halnya ketika kita ingin menggunakan sebuah variabel didalam program, maka kita harus mendeklarasikannya terlebih dahulu.
Hal ini bertujuan untuk memberitahu kompiler bahwa variabel tersebut akan digunakan didalam program.
Hal ini juga berlaku untuk membuat sebuah fungsi, maka diperlukan suatu prototype/ deklarasi fungsi.
Yang bertujuan untuk..
- Memberitahu kompiler mengenai:
- Tipe return value dari fungsi tsb.
- Jumlah parameter yang dimasukkan,
- Tipe dari masing-masing parameter,
- Urutan dari masing-masing parameter.
- Informasi-informasi diatas dipakai untuk memeriksa validitas(keabsahan) parameter disaat pemanggilam fungsi.
- Apabila terjadi kesalahan dalam input parameter, Kompiler akan memberitahu kesalahan tersebut.
Berikut merupakan syntax penulisan prototype fungsi dalam bahasa C.
#include <stdio.h>
TipeReturnValue NamaFungsi (parameter1, parameter2, dst.); // Jangan lupa diakhiri dengan titik koma ;
// Contoh int hitung(int x, int y); // Atau bisa juga seperti ini int hitung(int, int);
Itulah tadi pembahasan mengenai konsep dasar fungsi yang ada didalam bahasa C. Untuk memperdalam pemahaman tentang fungsi dalam pemrograman, kerjakan latihan soal berikut.
- Buatlah sebuah fungsi untuk menghitung nilai bilangan kuadrat (misal nama fungsinya = kuadrat). Fungsi tersebut memiliki sebuah parameter bertipe float, yaitu bilangan yang akan dikuadratkan serta memiliki sebuah return value bertipe float, yaitu hasil kuadratnya
a. Tulislah prototipe fungsi untuk fungsi tersebut.
b. Buat fungsi main() untuk memanggil function kuadrat() tersebut dengan bilangan x yang akan dicari kuadratnya merupakan input dari user.
Post a Comment
Post a Comment