Prosedur dan Fungsi dalam Bahasa C



 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 (pascalDelphi)
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


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
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
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 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

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.
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
         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, 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)
  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.

Comments


  1. Artikelnya bagus kak, sy jga punya artikel perbedaan fungsi dan prosedur dalam C++, semoga bisa saling melengkapi
    .
    Perbedaan Fungsi dan Prosedur dalam C++

    ReplyDelete

  2. Artikelnya bagus kak, sy jga punya artikel perbedaan fungsi dan prosedur dalam C++, semoga bisa saling melengkapi
    .
    Perbedaan Fungsi dan Prosedur dalam C++

    ReplyDelete

Post a Comment