Wonderwall

Just another Binusian blog site

Bab 6, Subprograms

December14

Fungsi dalam Bahasa C adalah subprogram. Subprogram adalah sekumpulan perintah operasi program yang dapat menerima argument input dan dapat memberikan hasil output yang dapat berupa nilau ataupun sebuah hasil operasi. Hasil akhir fungsi akan berupa sebuah nilai balik (return). Nama fungsi yang didefinisikan sendiri oleh programmer tidak boleh sama dengan nama build-in function pada compiler C.

Suatu program itu merupakan kumpulan dari pernyataan-pernyataan. Ada program yang membutuhkan pernyataan yang berulang-ulang. Pengulangan pernyataan-pernyataan tersebut akan membuat program menjadi tidak efisien. Dengan fungsi, maka pengulangan tersebut tidak perlu terjadi lagi, karena kita hanya perlu memanggil kembali fungsi tersebut.

Sifat-sifat Fungsi

Berikut adalah sifat-sifat fungsi dalam Bahasa C:

  • Masing-masing fungsi mempunyai nama, aturan penamaan fungsi sama seperti penamaan variable.
  • Nama fungsi diikuti sepasang tanda kurung untuk membedakan fungsi dengan variable. Didalam tanda kurung dapat diisi argument-argumen fungsi tersebut. Kalau tidak perlu argumen tidak perlu diisi apa-apa.
  • Bagian tubuh dari fungsi harus memiliki tanda kurung kurawal ( { ) dan diakhiri tanda kurung kurawal ( } ). Bagian tubuh dari fungsi berisi deklarasi variabel dan pernyataan.

Manfaat Fungsi

Berikut adalah manfaat-manfaat fungsi dalam Bahasa C:

  • Menghindari penulisan program yang berulang
  • Membagi program menjadi modul-modul yang lebih kecil, jadi kesalahan dalam program akan lebih mudah untuk dilacak.
  • Fungsi dalam C ini dapat menghasilkan nilai, data ataupun hasil atau kegiatan lain yang bukan berupa data maupun nilai.

Struktur Fungsi dalam Bahasa C

Deklarasi fungsi secara umum:

  • Tipe_data_fungsi  Nama_fungsi  (parameter_fungsi)
    {
    statement;
    }

FUNGSI main() dalam C itu mutlak harus ada, karena dari fungsi inilah program akan dimulai. Dalam sebuah program yang terdapat beberapa fungsi, main() boleh diletakkan dimana saja, tapi sebaiknya fungsi main() diletakkan dipaling atas.

Dalam mendefinisikan sebuah fungsi, pasti akan dijumpai dengan:

  1. Parameter fungsi
  2. Parameter formal dan aktual
  3. Variabel lokal dan global
  4. Isi fungsi

Parameter fungsi adalah sarana komunikasi antar fungsi. Antar fungsi itu sendiri berarti fungsi dengan fungsi lain termasuk antara fungsi dengan fungsi utama. Ada dua jenis parameter dalam hubungannya dengan penggunaan fungsi dalam program, yaitu:

  1. Parameter Formal: parameter yang diberi nilai. Parameter formal merupakan parameter yang terdapat pada prototype fungsi atau deklarasi fungsi.1
  2. Parameter Aktual: parameter yang memberi nilai. Parameter actual merupakan parameter dalam daftar pemanggilan fungsi

1

Pemanggilan Secara Nilai (Call by Value)

Call by Value, merupakan nilai dari parameter actual yang dimasukkan kedalam parameter formal. Dengan cara ini, nilai parameter actual tidak akan berubah walaupun nilai dari parameter formal berubah.

Contoh Call by Value:

  • #include <stdio.h>
    #include <conio.h>
  • tambah (int c, int d); //prototype fungsi tambah
  • main()
    {
    int a, b;
    a = 2;
    b = 5;
  •             printf(“Nilai sebelum pemanggilan fungsi \n”);
    printf(“a = %d , b = %d \n\n”, a, b);
    tambah(a, b);  //parameter actual
    printf(“Nilai setelah pemangilan fungsi \n”);
    printf(“a = %d , b = %d \n\n”, a, b);
  • getchar();
    }
  • tambah(int c, int d)  //parameter formal
    {
    c = c + 4;
    d = d + 6;
  •             printf(“Nilai fungsi  tambah \n”);
    printf(“c = %d , d = %d \n\n”), c, d);
    }

Jadi, walaupun nilai a dan b pada fungsi tambah berubah menjadi 6 dan 11 dan pada fungsi main di panggil lagi nilai a dan b, maka nilai tersebut akan tetap menjadi nilai awalnya, yaitu 2 dan 5. Artinya, nilai variabel fungsi tambah tidak akan mempengaruhi nilai pada variabel fungsi main.

Pemanggilan Secara Referensi (Call by Reference)

Call by reference merupakan pemanggilan alamat dari suatu variabel ke dalam fungsi. Perubahan nilai di fungsi akan merubah nilai asli di bagian program yang memanggil fungsi. Call by reference ini mempergunakan fungsi dari pointer untuk memanggil alamat variabel tersebut.

Contoh Call by Reference:

  • #include <stdio.h>
    #include <conio.h>
  • kurang (int *c, int *d);  //prototype fungsi kurang
  • main()
    {
    int a, b;
  • a = 4;
    b = 7;
  •             printf(“Nilai sebelum pemanggilan fungsi \n”);
    printf(“a = %d , b = %d \n\n”, a, b);
    tambah(&a, &b);  //parameter actual
    printf(“Nilai setelah pemangilan fungsi \n”);
    printf(“a = %d , b = %d \n\n”, a, b);
  • getchar();
    }
  • kurang(int *c, int *d)   //parameter formal
    {
    *c = c* – 2;
    *d = *d – 4;
  •             printf(“Nilai fungsi  kurang \n”);
    printf(“c = %d , d = %d \n\n”), *c, *d);
    }

Berbeda dengan call by value yang tidak mempengaruhi nilai variabel pada fungsi main, Call by Reference mempengaruhi nilai variabel pada fungsi main. Nilai a = 4, b = 7. Fungsi kurang dipanggil, nilai a dan b mengikuti nilai variabel kurang menjadi 2 dan 3.

Variabel lokal merupakan fungsi dimana variabel local tersebut dideklarasikan. Variabel local jua memiliki sifat dinamis / otomatis yang dideklarasikan didalam suatu fungsi.1

Ingat, setiap variabel HARUS diletakan dibawah tanda kurung kurawal ( { )nVariabel local hanya berfungsi di dalam blok saja. Misalnya kalau dari contoh diatas, maka variabel tersebut hanya berlaku pada blok int main saja.

Variabel global merupakan fungsi yang dideklarasikan diluar semua fungsi, dikenali oleh semua fungsi, selalu ada selama program dijalankan dan memiliki sifat statis.

1

Jadi, variabel global pada contoh tersebut akan berlaku pada semua fungsi contoh disamping, variabel usia bisa digunakan dalam fungsi coba dan fungsi main. Untuk struktur fungsi tipe return, deklarasinya seperti ini:

  • <tipe return> NamaFungsi (Argumen1, Argumen2, …….)
    {
    Pernyataan1;
    Pernyataan2;
    }

Tipe return merupakan tipe data yang dipakai ketika suatu fungsi mengembalikan nilai, dapat berupa int, char, float dan tipe data lainnya kecuali tipe data void. Karena, void itu menyatakan bahwa fungsi tersebut tidak mengembalikan nilai.

Argumen atau parameter fungsi merupakan suatu variabel yang digunakan untuk menerima suatu nilai yang dikirimkan ke dalam suatu fungsi oleh fungsi lain. contoh:

  • int  fungsi_Jumlah  (int a,  int b)
    {
    return  a + b;
    }

Perlu diingat, untuk void, void tidak perlu menggunakan keyword return. Walau boleh dipakai, tapi sangat tidak disarankan. Contoh:

  • int  menu;
  • void  menu()
    {
    printf(“Menu  MysticFood”);
    printf(“1.  Mystic  Sunday”);
    printf(“2.  Snow  Chicken  Mist”);
    printf(“3.  Exit  and  choose  other  special  menu\n”);
    printf(“Pilihan  [1..3]   :   “);
    scanf(“%d”,  &menu); fflush (stdin);
    }

 

 

 

Email will not be published

Website example

Your Comment: