You are here: Home > Uncategorized > Subprogram dalam Bahasa C

Subprogram dalam Bahasa C

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.
Tipe_data_fungsi  Nama_fungsi  (parameter_fungsi)
{
statement;
}

 

Struktur Fungsi dalam Bahasa C

Deklarasi fungsi secara umum:

 

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:

float hasil (int a, int b)
{
return (a*b);
}

 

  • Parameter Formal: parameter yang diberi nilai. Parameter formal merupakan parameter yang terdapat pada prototype fungsi atau deklarasi fungsi.
a dan b pada int a, int b merupakan parameter formal

 

 

 

main ()
{
. . . .
z = hasil(x , y);
. . . .
}

 

  • Parameter Aktual: parameter yang memberi nilai. Parameter actual merupakan parameter dalam daftar pemanggilan fungsi.
x dan y merupakan parameter aktual

 

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.

int main()
{
char nama[25];
int usia;
}

 

int main()
{
tipe_data  nama_variabel;
}

 

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

Contoh:

Ingat, setiap variabel HARUS diletakan dibawah tanda kurung kurawal ( { )

Variabel local hanya berfungsi di dalam blok saja. Misalnya kalau dari contoh diatas, maka variabel tersebut hanya berlaku pada blok int main saja.

#include <stdio.h>

char nama[25];
int usia;

int coba()
{
usia = usia + 5
return usia;
}

int main()
{
return 0;
}

 

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

#include <stdio.h>

//<iniialisasi variabel global>

int main()
{
return 0;
}

 


Contoh:

Jadi, variabel global pada contoh tersebut akan berlaku
pada semua fungsi contoh disamping, variabel usia bisa
digunakan dalam fungsi coba dan fungsi main.

 

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

Untuk struktur fungsi tipe return, deklarasinya seperti ini

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.

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

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

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);
}

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

 

Sources

http://www.bahasapemrograman.com/2015/11/fungsi-atau-subprogram-dalam-bahasa-pemrograman-C.html

http://srini.staff.gunadarma.ac.id/Downloads/files/27471/Fungsi+C.pdf

http://www.bahasapemrograman.com/2015/11/parameter-formal-dan-parameter-aktual-dalam-bahasa-pemrograman-C.html

 

 

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • Twitter
  • RSS

Leave a Reply