Fungsi/prosedur adalah suatu
bagian dari program yang digunakan untuk menjalankan suatu tugas tertentu dan
letaknya terpisah dari bagian program yang menggunakannya. Suatu
fungsi/prosedur dipanggil/digunakan dengan tujuan khusus, yaitu untuk
mengerjakan suatu tugas tertentu, dimana tugas-tugas tersebut dapat berupa
tugas input (menyimpan hasil ke dalam suatu array atau file) dan/atau output
(menampilkan hasil di layar monitor) ataupun melakukan penyeleksian dan perhitungan.
Suatu Fungsi/prosedur dapat memberikan suatu hasil balik ke program yang
memanggilnya atau tidak meberikan hasil balik sama sekali. Hasil balik ini
biasanya berupa suatu nilai yang dibutuhkan oleh bagian program yang
memanggilnya.
Perbedaan
utama fungsi dan prosedur
Fungsi
hanya akan mengembalikan sebuah nilai ke bagian yang memanggilnya
atau dengan kata lain sebuah fungsi
hanya mengerjakan satu tugas saja,
sedangkan
prosedur akan mengembalikan satu atau lebih nilai atau bahkan
tidak mengembalikan nilai sama
sekali ke bagian yang memanggilnya, atau
dengan kata lain sebuah prosedur
dapat mengerjakan lebih dari satu tugas
Kelebihan
program yang menggunakan fungsi tambahan selain fungsi utamanya diantaranya
1. Program menjadi lebih mudah
dimengerti
Hal ini disebabkan karena proses
penyelesaian untuk suatu masalah dipecah menjadi beberapa sub masalah/
pemecahan masalah tersebut ke dalam bentuk fungsi yang lebih sederhana akan
membuat program menjadi lebih mudah dimengerti dibandingkan jika
semuanya dilakukan dalam fungsi utama saja.
2. Pengaruh antar bagian menjadi
lebih kecil (Program menjadi lebih independen)
Karena suatu sub masalah
diselesaikan dalam fungsi/prosedur yang terpisah maka (seharusnya) hal tersebut
tidak akan mempengaruhi perintah yang ada pada fungsi/prosedur yang lain. Tidak
seperti jika dikerjakan dalam fungsi utama atau bagian utama, sebuah perintah
tertentu pada suatu baris program memungkinkan akan memberi pengaruh yang tidak
dikehendaki ke perintah pada baris program yang lain. Dalam pembuatan sebuah
fungsi/prosedur yang baik, perintah-perintah yang ada dalam suatu
fungsi/prosedur seharusnya tidak mempengaruhi perintah-perintah yang ada di
fungsi/prosedur yang lain (independen)
3. Dapat dipakai kembali
Fungsi/prosedur yang pernah dibuat
dapat dipakai kembali di program yang lain untuk menyelesaikan masalah yang
berbeda, sehingga pada pembuatan program berikutnya akan menjadi semakin mudah
karena kita sudah mempunyai beberapa fungsi/prosedur tambahan yang dapat
dimanfaatkan (contohnya Library header dalam bahasa C/C++). Hal ini akan
membantu seorang programmer untuk menyelesaiakan suatu program dengan waktu
yang lebih singkat.
4. Lebih efisien dan ukuran program
menjadi lebih kecil
Dengan adanya fungsi/prosedur
penulisan kumpulan baris program yang sama di tempat yang berbeda dapat
dikurangi atau dapat ditulis satu kali saja dalam fungsi/prosedur, jika bagian
program membutuhkan perintah tersebut tinggal memanggil fungsi/prosedur
tersebut. Sehingga program yang dibuat menjadi lebih efisien dan ukurannyapun
menjadi lebih kecil
5. Lebih konsisten
Penulisan kumpulan baris program
yang sama secara berulang-ulang ditempat yang berbeda akan mengakibatkan
program menjadi tidak konsisten, karena jika terdapat kesalahan dalam kumpulan
baris program tersebut maka programmer harus mengingat kembali posisi kumpulan
baris program tersebut. Sebaliknya jika kumpulan baris program yang sama dibuat
dalam bentuk fungsi/prosedur maka jika ada kesalahan perintah, programmer
tinggal memperbaikinya pada fungsi/prosedur tersebut
1.Function /
Fungsi.
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. Dalam bahasa pemrograman lain fungsi dapat disebut sebagai subrutin (basic, VB) atau procedure (pascal, Delphi)
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. Dalam bahasa pemrograman lain fungsi dapat disebut sebagai subrutin (basic, VB) atau procedure (pascal, Delphi)
Keuntungan Fungsi
1. Dapat melakukan pendekatan top-down dan divide-and-conquer:
2. Top-down: penelusuran program mudah
3. Divide-and-conquer: program besar dapat dipisah menjadi program-program kecil.
4. Kode program menjadi lebih pendek, mudah dibaca, dan mudah dipahami
5. Program dapat dikerjakan oleh beberapa orang sehingga program cepat selesai dengan koordinasi yang mudah.
6. Mudah dalam mencari kesalahan-kesalahan karena alur logika jelas dan sederhana Kesalahan dapat dilokalisasi dalam suatu modul tertentu saja.
7. Modifikasi program dapat dilakukan pada suatu modul tertentu saja tanpa mengganggu program keseluruhan
8. Fungsi – fungsi menjadikan program mempunyai struktur yang jelas.
9. Dengan memisahkan langkah – langkah detail ke satu atau lebih fungsi – fungsi, maka fungsi utama (main) akan menjadi lebih pendek, jelas dan mudah dimengerti.
10. 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.
11. Mempermudah dokumentasi.
12. Reusability: Suatu fungsi dapat digunakan kembali oleh program atau fungsi lain
1. Dapat melakukan pendekatan top-down dan divide-and-conquer:
2. Top-down: penelusuran program mudah
3. Divide-and-conquer: program besar dapat dipisah menjadi program-program kecil.
4. Kode program menjadi lebih pendek, mudah dibaca, dan mudah dipahami
5. Program dapat dikerjakan oleh beberapa orang sehingga program cepat selesai dengan koordinasi yang mudah.
6. Mudah dalam mencari kesalahan-kesalahan karena alur logika jelas dan sederhana Kesalahan dapat dilokalisasi dalam suatu modul tertentu saja.
7. Modifikasi program dapat dilakukan pada suatu modul tertentu saja tanpa mengganggu program keseluruhan
8. Fungsi – fungsi menjadikan program mempunyai struktur yang jelas.
9. Dengan memisahkan langkah – langkah detail ke satu atau lebih fungsi – fungsi, maka fungsi utama (main) akan menjadi lebih pendek, jelas dan mudah dimengerti.
10. 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.
11. Mempermudah dokumentasi.
12. Reusability: Suatu fungsi dapat digunakan kembali oleh program atau fungsi lain
Sifat-sifat fungsi
1. Nilai fan-in tinggi, artinya semakin sering suatu modul dipanggil oleh pengguna semakin tinggi nilai fan-in
2. Nilai Fan-out rendah, artinya semakin spesifik fungsi suatu modul akan semakin rendah nilai fan-out
3. Memiliki Self-contained tinggi: artinya kemampuan untuk memenuhi kebutuhannnya sendiri
1. Nilai fan-in tinggi, artinya semakin sering suatu modul dipanggil oleh pengguna semakin tinggi nilai fan-in
2. Nilai Fan-out rendah, artinya semakin spesifik fungsi suatu modul akan semakin rendah nilai fan-out
3. Memiliki Self-contained tinggi: artinya kemampuan untuk memenuhi kebutuhannnya sendiri
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 dengan menggunakan preprosesor direktif. Misalnya: #include
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-include-kan jika ingin menggunakannya.
Perancangan Fungsi
Dalam membuat fungsi, perlu diperhatikan:
1. Data yang diperlukan sebagai inputan
2. Informasi apa yang harus diberikan oleh fungsi yang dibuat ke pemanggilnya
3. Algoritma apa yang harus digunakan untuk mengolah data menjadi informasi
Dalam membuat fungsi, perlu diperhatikan:
1. Data yang diperlukan sebagai inputan
2. Informasi apa yang harus diberikan oleh fungsi yang dibuat ke pemanggilnya
3. Algoritma apa yang harus digunakan untuk mengolah data menjadi informasi
Contoh fungsi
Contoh 1
#include<stdio.h>
Int HITUNG(int A, int B);
Void main()
{
int
A,B,T;
A=5; B=2; T=0;
T
= HITUNG (A,B);
Printf(“\n
%d”,T);
}
Int HITUNG(int A, int B)
{ int
T;
A=A*2;
B=B*2;
T=A+B;
return(T);
}
Contoh 2
#include<stdio.h>
Void main()
{
printf(“Jakarta”);
}
Program ini tidak menggunakan
function lain selain main function.
Struktur Fungsi
Deklarasi function (function prototype/ declaration)Terdiri dari:
1. Judul fungsi
2. Tipe data yang akan dikembalikan/void
3. Tidak ada kode implementasi function tersebut Bentuk umum: tipe_data|void nama_fungsi([arguman 1, argument 2,....]);
Deklarasi function (function prototype/ declaration)Terdiri dari:
1. Judul fungsi
2. Tipe data yang akan dikembalikan/void
3. Tidak ada kode implementasi function tersebut Bentuk umum: tipe_data|void nama_fungsi([arguman 1, argument 2,....]);
Deklarasi
fungsi
-Deklarasi fungsi diakhiri dengan
titik koma .
-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
Jenis fungsi dalam C
Fungsi
Void
Fungsi yang void sering disebut juga prosedur . Disebut void karena fungsi tersebut tidak mengembalikan suatu nilai keluaran yang didapat dari hasil proses fungsi tersebut.
Ciri:
1. Tidak adanya keyword return.
2. tidak adanya tipe data di dalam deklarasi fungsi.
3. menggunakan keyword void.
4. Tidak dapat langsung ditampilkan hasilnya
5. Tidak memiliki nilai kembalian fungsi
Fungsi yang void sering disebut juga prosedur . Disebut void karena fungsi tersebut tidak mengembalikan suatu nilai keluaran yang didapat dari hasil proses fungsi tersebut.
Ciri:
1. Tidak adanya keyword return.
2. tidak adanya tipe data di dalam deklarasi fungsi.
3. menggunakan keyword void.
4. Tidak dapat langsung ditampilkan hasilnya
5. Tidak memiliki nilai kembalian fungsi
Contoh void :
void tampilkan_jmlh(int a,int b)
{
int jmlh;
jmlh=a+b;
printf(“%d”,jmlh);
}
Fungsi non-void
Fungsi non-void disebut juga function. Disebut non-void karena mengembalikan nilai kembalian yang berasal dari keluaran hasil proses function tersebut .
Ciri:
1. ada keyword return
2. ada tipe data yang mengawali fungsi
3. tidak ada keyword void
4. Memiliki nilai kembalian . Dapat dianalogikan sebagai suatu variabel yang memiliki tipe data tertentu sehingga dapat langsung ditampilkan hasilnya.
Fungsi non-void disebut juga function. Disebut non-void karena mengembalikan nilai kembalian yang berasal dari keluaran hasil proses function tersebut .
Ciri:
1. ada keyword return
2. ada tipe data yang mengawali fungsi
3. tidak ada keyword void
4. Memiliki nilai kembalian . Dapat dianalogikan sebagai suatu variabel yang memiliki tipe data tertentu sehingga dapat langsung ditampilkan hasilnya.
Contoh non void
int jumlah(int a, int b)
{
int jmlh;
jmlh=a+b;
return jmlh;
}
Keyword
void
Keyword void juga digunakan jika suatu function tidak mengandung suatu parameter apapun
Keyword void juga digunakan jika suatu function tidak mengandung suatu parameter apapun
The
main Function
. function main() dibutuhkan agar program C dapat dieksekusi!
. Tanpa function main, program C dapat dicompile tapi tidak dapat dieksekusi (harus
dengan flag parameter -c, jika di UNIX) . Pada saat program C dijalankan, makacompiler C pertama kali akan mencari function main() dan melaksanakan instruksi-instruksi yang ada di sana.
. function main() dibutuhkan agar program C dapat dieksekusi!
. Tanpa function main, program C dapat dicompile tapi tidak dapat dieksekusi (harus
dengan flag parameter -c, jika di UNIX) . Pada saat program C dijalankan, makacompiler C pertama kali akan mencari function main() dan melaksanakan instruksi-instruksi yang ada di sana.
Function main, sering dideklarasikan
dalam 2 bentuk:
int main()
Berarti di dalam function main tersebut harus terdapat keyword return di bagian akhir fungsi dan mengembalikan nilai bertipe data int. Mengapa hasil return harus bertipe int juga? karena tipe datayang mendahului fungsi main() diatas dideklarasikan int. Tujuan nilai kembalian berupa integer adalahuntuk mengetahui status eksekusi program. jika “terminated successfully” (EXIT_SUCCESS) maka, akan dikembalikan status 0, sedangkan jika “terminated unsuccessfully” (EXIT_FAILURE) akan dikembalikan nilai status tidak 0, biasanya bernilai 1. Biasanya dipakai di lingkungan UNIX void main(). Berarti berupa function yang void sehingga tidak mengembalikan nilai status program sehingga nilai status program tidak bisa diketahui. Biasanya dipakai pada program C di lingkungan Windows Bentuk pemanggilan fungsi di C. Pada dasarnya fungsi dapat memanggil fungsi lain, bahkan fungsi dapat memanggil dirinya sendiri (rekursif)
Berarti di dalam function main tersebut harus terdapat keyword return di bagian akhir fungsi dan mengembalikan nilai bertipe data int. Mengapa hasil return harus bertipe int juga? karena tipe datayang mendahului fungsi main() diatas dideklarasikan int. Tujuan nilai kembalian berupa integer adalahuntuk mengetahui status eksekusi program. jika “terminated successfully” (EXIT_SUCCESS) maka, akan dikembalikan status 0, sedangkan jika “terminated unsuccessfully” (EXIT_FAILURE) akan dikembalikan nilai status tidak 0, biasanya bernilai 1. Biasanya dipakai di lingkungan UNIX void main(). Berarti berupa function yang void sehingga tidak mengembalikan nilai status program sehingga nilai status program tidak bisa diketahui. Biasanya dipakai pada program C di lingkungan Windows Bentuk pemanggilan fungsi di C. Pada dasarnya fungsi dapat memanggil fungsi lain, bahkan fungsi dapat memanggil dirinya sendiri (rekursif)
void main()
Berarti berupa function yang void
sehingga tidak mengembalikan nilai status program , sehingga nilai status
program tidak bisa diketahui . Bisanya dipakai pada program C di lingkungan
windows.
2. Prosedur
Prosedur sedikit berbeda dengan
fungsi, yaitu apabila pada fungsi dapat mengembalikan nilai return, pada
prosedur ini nilai tidak dikembalikan. Nilai hanya akan diproses dan kembali
pada keadaan awal saat keluar dari prosedur.
Prosedur dalam penulisannya memiliki
struktur, di antaranya :
·
judul
(berisi nama prosedur dan deklarasi parameter jika ada)
·
deklarasi
·
deskripsi
(badan prosedur)
Untuk dapat menggunakan prosedur
tersebut perlu adanya pemanggilan prosedur sama seperti pemanggilan fungsi.
Untuk lebih jelasnya kita lihat potongan program berikut :
void
hitungluaslingkaran()
{
float phi;
float r;
luas=phi*r*r;
printf("luas lingkaran : %0.2f\n",luas);
}
Pada prosedur di atas kita mencari
luas lingkaran dengan menggunakan rumus phi*r*r dengan deklarasi lokal berupa
phi dan r.
Makasih :)
ReplyDelete
ReplyDeleteArtikelnya bagus kak, sy jga punya artikel perbedaan fungsi dan prosedur dalam C++, semoga bisa saling melengkapi
.
Perbedaan Fungsi dan Prosedur dalam C++
ReplyDeleteArtikelnya bagus kak, sy jga punya artikel perbedaan fungsi dan prosedur dalam C++, semoga bisa saling melengkapi
.
Perbedaan Fungsi dan Prosedur dalam C++