FUNGSI
Suatu
program merupakan kumpulan dari pernyataan - pernyataan. Kadangkala pernyataan
- pernyataan tersebut diperlukan berulang - ulang pada beberapa tempat di
program yang sama. Pengulangan pernyataan - pernyataan tersebut membuat program
menjadi tidak efisien. dengan pembuatan suatu fungsi, maka pengulangan
pernyataan - pernyataan tsb tidak perlu terjadi, karena kita dapat
memanggil
kembali fungsi tsb.
Suatu
fungsi dapat dibuat di dalam program yang sama ( fungsi internal) maupun di
file lain ( fungsi eksternal ).
Dari
dalam program yang sama, digunakan tanda '=' untuk memberikan nilai ke suatu
variabel. Kalimat utk memberikan nilai ke sebuah variabel disebut 'kalimat
penilaian' atau assignment. dari luar program, pemberian nilai pada suatu variabel
dilakukan dengan menggunakan fungsi masukan (input function).
Fungsi
dlm bahasa C adalah subprogram. Program yang ditulis dengan C tdd fungsi -
fungsi. Fungsi minimal yang harus tdp dalam suatu program adl main() dan muncul
hanya sekali.
Pengertian
fungsi dalam Turbo C mirip dengan subroutine dalam bahasa BASIC atau fungsi dan
procedur dalam PASCAL
SIFAT - SIFAT
DAN MANFAAT FUNGSI
1.
Menghindari
penulisan program yang berulang
2.
Fungsi
akan membagi program menjadi modul - modul yang lebih kecil (modular design) ,
sehingga jika terjadi kesalahan dalam program akan lebih mudah dilacak.
3.
Setiap
fungsi memiliki tingkatan yang sama dan berdiri sendiri. Dengan demikian fungsi
- fungsi ini dapat dipanggil dari sembarang fungsi yang lain dengan mudah.
Dalam Turbo C tidak diperkenankan sebuah fungsi ada dalam fungsi yang lain
(nested function)
4.
Fungsi
dalam C dapat menghasilkan nilai, data ataupun hasil atau kegiatan lain yang
bukan berupa data maupun nilai. Turbo C tidak membedakan fungsi yang
menghasilkan nilai ( fungsi) dan fungsi yg menghasilkan data (prosedur).
STRUKTUR SEBUAH
FUNGSI SEDERHANA
BU : tipe nama fungsi (parameter)
{
deklarasi variabel lokal
pernyataan - pernyataan
return (ungkapan)
}
Nama
fungsi mempunyai ketentuan yang serupa dengan nama variabel. parameter
diletakkan diantara tanda (), di belakang nama fungsi.Parameter boleh diisi
dengan data atau dibiarkan kosong. Bila diisi dengan data maka data tsb akan
dikirimkan ke fungsi yang bersangkutan untuk diolah. Jika fungsi ybs tidak memerlukan
data dari luar , maka parameter dibiarkan kosong. pernyataan pada fungsi harus
diletakkan diantara tanda {}
Contoh :
main()
{
int x,y;
x=contoh();
printf("x=
%d\n",x);
y=contoh();
printf("y=
%d\n",y);
}
contoh()
{
return(0);
}
OUTPUT :
x=0
y=0
FUNGSI main()
Dalam
C fungsi main() mutlak harus ada, karena dari fungsi inilah program akan dimulai.
Dalam sebuah program yang tdd beberapa fungsi, main() boleh diletakkan dimana
saja, sebaiknya fungsi main() diletakkan paling atas. Dalam mendefinisikan
sebuah fungsi akan dijumpai :
1.
Parameter
fungsi (function identifier)
-
nama fungsi
2.
parameter
formal
-
daftar variabel yg dipakai utk berkomunikasi dg fungsi lain ( yi fungsi pemanggil)
3.
Variabel
local
-
daftar variabel yang hanya dipakai di dalam fungsi
4.
Isi
fungsi
-
tubuh fungsi
Membuat dan
Menggunakan Fungsi sederhana
Membuat sebuah
fungsi yg mencetak karakter asterik sebanyak 65 dlm satu baris
#define NAMA
"UNIVERSITAS GUNADARMA"
#define ALAMAT
"Jl.Margonda Raya"
#define TEMPAT
"Depok"
main()
{
starbar();
printf
("%s\n",NAMA);
printf
("%s\n",ALAMAT);
printf
("%s\n",TEMPAT);
starbar();
}
/* fungsi
starbar() */
#include
<stdio.h>
#define BATAS 65
starbar()
{
int hitung;
for (hitung = 1;
hitung <= BATAS ; hitung++) putchar('*');
putchar('\n');
}
Fungsi
starbar() dipanggil dari fungsi main() tanpa menggunakan argumen. Karena fungsi
starbar() tidak mempunyai parameter. Kita dapat menjadikan starbar() dan main()
berada dalam satu file atau terpisah. Jika berada dalam satu file memudahkan
dalam proses compiling. Jika berada dalam file yang terpisah, fungsi starbar()
dapat digunakan oleh program lain.
FUNGSI SEDERHANA
YANG TIDAK MENGHASILKAN NILAI
Contoh :
main()
{
clrscr();
printf
("\ngambar sebuah kotak yang dibuat dengan sebuah fungsi\n");
kotak();
printf ('\ntekan
sembarang tombol, akan terlihat sebuah kotak lagi\n");
getch();
kotak();
printf
("\ntekan semabarang tombol untuk berhenti);
getch();
}
kotak()
{
int
i,j;
printf
("\n");
for
(i=1;i<=5;++i)
{
for
(j=1;j<=10;++j)
printf("\n");
}
}
Fungsi
kotak() digunakan untuk menampilkan gambar kotak di layar. Argumen dibiarkan
kosong karena fungsi ini tidak memerlukan data dari luar.
FUNGSI
YANG MENGHASILKAN NILAI
Contoh
:
main()
{
float luas_bs;
clrscr();
printf ("Program menghitung
bujursangkar"); luas_bs =
luas(); printf ("\n\nLuas
Bujursangkar = %10.2f",luas_bs); }
luas()
{
float
sisi, luas1; printf ("\nsisi
bujursangkar = "); scanf
("%f",&sisi);
luas1 = sisi * sisi; return(luas);
}
Fungsi luas() diatas menhasilkan
nilai yang disimpan dalam suatu variabel ttt
luas_bs
yang terletak pada fungsi main().
PERNYATAAN
return digunakan untuk mengirimkan hasil / nilai dari suatu
fungsi ke fungsi lain yang memanggilnya. return diikuti oleh
argumen yang berupa nilai yang akan dikirim. Pernyataan
return selalu digunakan oleh fungsi yang menghasilkan nilai.
Contoh
: return(luas1)
Nilai
dari luas1 akan dikirim kembali ke fungsi yang memanggilnya, yaitu fungsi
main() yang ditampung dalam variabel luas_bs
Argumen
dari return boleh juga berupa rumus :
luas1
= sisi*sisi;
return(luas1);
Dapat
disederhanakan lagi menjadi :
return(sisi*sisi);
pernyataan
return ini selalu digunakan oleh fungsi yang menghasilkan nilai
MENGIRIMKAN
DATA KONSTANTA KE SUATU FUNGSI
CONTOH
:
main()
{
float luas_bs;
clrscr();
printf ("Program menghitung
bujursangkar"); luas_bs =
luas(10.0); printf ("\n\nLuas
Bujursangkar = %10.2f",luas_bs); }
luas(sisi)
float sisi;
{
return(sisi*sisi);
}
Tipe variabel sisi perlu
ditentukan dan deklarasinya harus ditulis dibawah nama
fungsi:
luas(sisi)
float sisi;
Deklarasi
variabel argumen harus diletakkan diluar fungsi, seperti :
luas(sisi)
float sisi;
{
pernyataan;
pernyataan;
}
Bila deklarasi suatu variabel
dilakukan didalam fungsi , maka variabel tadi akan diperlakukan
sebagai variabel lokal, sebaliknya bila deklarasi dilakukan diluar fungsi,
namun masih di bawah nama fungsi, maka deklarasi ini akan dianggap sebagai
deklarasi terhadap variabel argumen.
MENGIRIMKAN
DATA VARIABEL KE SUATU FUNGSI
Contoh
:
main()
{
float luas_bs,sisi_bs;
clrscr();
printf ("Program menghitung
bujursangkar"); printf
("\nsisi bujursangkar = ");
scanf ("%f",&sisi);
luas_bs
= luas(sisi_bs); printf ("\n\nLuas
Bujursangkar = %10.2f",luas_bs); }
luas(sisi)
float sisi;
{
return(sisi*sisi);
}
Pernyataan
luas_bs = luas(sisi_bs);
artinya
mengirimkan nilai variabel sisi_bs ke fungsi luas() untuk dioleh dan hasilnya
akan diterima oleh variabel luas_bs yg terdapat dalam fungsi main(). Pada
fungsi luas(), nilai variabel sisi_bs ini akan ditampung dalam variabel sisi.
2
tahap pembuatan sebuah fungsi :
- Membuat prototype fungsi ,
prototype ditulis di luar blok fungsi
- Mendefinisikan fungsi itu
sendiri, yaitu menuliskan kode programnya sehingga jika dipanggil fungsi
akan bekerja seperti yang diinginkan.
ARGUMEN
TERDIRI LEBIH DARI SATU DATA
Contoh
:
main()
{
float
panjang_se,lebar_se,luas_se;
clrscr();
printf ("Program menghitung
luas segiempat"); printf
("\n\tPanjang = "); scanf ("%f",&panjang_se);
printf
("\n\tLebar = "); scanf ("%f",&lebar_se);
luas_se
= luas(panjang_se,lebar_se); printf
("\n\nLuas Segiempat = %10.2f",luas_se); }
luas(panjang,lebar)
float
panjang,lebar;
{
return(panjang*lebar);
}
PROTOTYPE
FUNGSI
Prototype fungsi sebenarnya
merupakan deklarasi fungsi yang dilengkapi dengan nama
beserta tipe variabel argumennya. maksud dari penggunaan prototype 3fungsi
adalah untuk mencegah terjadinya kesalahan tipe data pada waktu mengirimkan
data dari sebuah fungsi ke fungsi lainnya melalui argumen. Prototype
diberikan pada waktu fungsi tsb dideklarasikan maupun pada waktu menuliskan
nama fungsinya sendiri.
Prototype
fungsi menjelaskan 3 hal :
·
Tipe
keluaran fungsi jumlah parameter
·
tipe
dari masing - masing parameter
·
Deklarasi
fungsi dengan prototype
float
luas(float panjang, float lebar) main()
{
..........dst
float
: tipe keluaran fungsi
luas
: nama fungsi
float
panjang dan float lebar : tipe parameter
1dan tipe parameter 2
Fungsi
yang dilengkapi dengan prototype fungsi
float
luas(float panjang, float lebar) {
.........dst
Pada
fungsi tsb tidak lagi diperlukan deklarasi terhadap variabel yg terdapat dalam
argumen, karena deklarasi ini sudah tercakup dalam prototype.
DEKLARASI
FUNGSI
Hasil
suatu fungsi akan dinyatakan dalam bentuk integer. Untuk memperoleh hasil
yang benar , maka fungsi tsb harus dideklarasikan . Hal - hal yang perlu diperhatikan
dalam mendeklarasikan suatu fungsi :
- BU deklarasi suatu fungsi :
tipe
namafungsi();
Contoh :
fungsi luas() akan didkelarasikan sebagai float. float luas();
- Beberapa fungsi yang bertipe sama dapat
dideklarasikan bersama - sama.
Contoh
: fungsi luas() & kell() akan
dideklarasikan sbg float float luas),
kell();
- Deklarasi sebaiknya dilakukan di awal program
di dekat fungsi main()
- Deklarasi fungsi sebaiknya dilakukan diluar ,
sehingga fungsi tadi akan dikenal
oleh
semua fungsi lainnya.
- Tipe dari fungsi harusdicantumkan di depan nama
fungsi pada fungsi yang bersangkutan.
float
luas(panjang,lebar)
float
panjang_lebar;
{
....................dst
VARIABEL
LOKAL
- Fungsi dimana variabel lokal tsb
dideklarasikan. - hanya ada
bilamana fungsi yg mengandung variabel lokal tsb dipanggil. - sifatnya dinamis / otomatis - dideklarasikan di dalam suatu fungsi
Contoh :
void
fungsi1()
main()
{
int
i = 20;
fungsi1();
printf("i
dalam main() = % d",i);
}
void
fungsi1()
{
int
i = 10;
printf("i
dalam fungsi1 = %d",i);
}
OUTPUT
:
i
dalam main() = 20
i
dalam fungsi1() = 10
VARIABEL
GLOBAL
Dideklarasikan
diluar semua fungsi - dikenali oleh
semua fungsi - selalu ada selama
program dijalankan - sifatnya statis
Contoh :
int
i = 273;
void
tambah()
main()
{
printf("Nilai
awal i = % d\n",i);
i=i+7;
printf("Nilai
i kini = % d\n",i);
tambah();
printf("Nilai
awal i = % d\n",i);
tambah();
printf("Nilai
awal i = % d\n",i);
}
void
tambah()
{
i
++;
}
OUTPUT
Nilai
awal i = 273
Nilai
i kini = 280
Nilai
i kini = 281
Nilai
i kini = 282
Fungsi - fungsi yang terletak di
bawah atau setelah deklarasi variabel global akan mengenal
variabel tsb, sedang fungsi - fungsi yang terletak diatasnya tidak. Bila nama
variabel lokal sama dengan nama variabel global maka dalam fungsi yang
bersangkutan nama variabel tadi akan diartikan sebagai variabel lokal.
Dosen Pengampu : Iwan Fitrianto Rahmad
Tidak ada komentar:
Posting Komentar