Selasa, 30 September 2014

Fungsi VS Prosedur

  Pada dasarnya bahasa C++ tidak mengenal istilah prosedur, C++ hanya mengenal fungsi, prosedur dalam C++ dianggap sebagai fungsi yang tidak mengembalikan nilai, sehingga dalam pendeklarasian prosedur cukup dituliskan dengan kata kunci void dan diikuti dengan nama prosedur
 
 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.

Fungsi dan procedure merupakan sejumlah baris pernyataan/ instruksi yang dikemas di dalam suatu nama (identifier).

Perbedaan antara Fungsi dan Procedure :
Procedure berisikan proses tertentu yang tidak akan   mengembalikan nilai ke modul utama. Fungsi mengembalikan nilai ke modul utama yang   memanggilnya. 
Keuntungan pembuatan fungsi dan Procedure :
Menghindari penulisan kode program yang sama berulang kali.
Kemudahan menulis dan menemukan kesalaham (debug) program. 
 
Fungsi dan prosedur dibuat untuk memecah-mecah program yang banyak dan rumit menjadi sub program. Fungsi dan prosedur dapat digunakan berkali-kali saat fungsi atau prosedur tersebut dibutuhkan dalam program utama (main).
Berikut beberapa perbedaan antara fungsi dan prosedur.
  1. Fungsi memiliki tipe data dan akan mengembalikan sebuah nilai dimana nilai tersebut memiliki tipe data yang sama dengan fungsi itu sendiri sedangkan prosedur tidak mengembalikan nilai dan hanya mengeksekusi perintah yang akan dipanggil di program utama.
  2. Karena Fungsi memiliki nilai maka nama fungsi tersebut dapat dieksekusi seperti variabel-variabel lain, dapat di print dan dapat juga nilainya ditampung di variabel baru. Sedangkan prosedur hanya dapat menyalin tugas yang telah dilakukan ke program utama.
  3. Dalam Fungsi tidak dapat dilakukan perintah baca/tulis sedangkan prosedur memungkinkan untuk perintah baca/tulis
Fungsi dan prosedur Untuk masalah fungsi dan prosedur ini akan saya coba jelaskan dalam implementasi di bahasa C. Maklum, saya baru mendalami bahasa pemrograman ini. :D
//Contoh 1
//Fungsi luas segitiga
int luasSegitiga(int alas, int tinggi){
int luas;
luas=(x*y)/2;
return luas;
}
//Contoh 2
//Prosedur luas segitiga
void luasSegitiga2 (int alas, int tinggi, int *luas){
*luas=(alas*tinggi)/2;
}
//Program utama
int main(){
int a, b, c;
a=4; b=5;
/*Fungsi segitiga*/
printf(“Luas segitiga= %d”, luasSegitiga(a,b));
/*prosedur segitiga2*/
luasSegitiga2(a,b,&c);
printf(“\nLuas segitiga= %d”, c);
getch();
return 0;

}
Output adalah seperti berikut:
Luas segitiga= 10
Luas segitiga=10
 
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.

Tidak ada komentar: