APLIKASI FUNGSI DALAM C

View previous topic View next topic Go down

APLIKASI FUNGSI DALAM C

Post  Abdul Kadir on Sat Aug 06, 2011 5:13 am

APLIKASI FUNGSI (FUNCTION) DALAM C
• Fungsi terbina dari satu siri pernyataan arahan atau perintah yang akan melaksanakan arahan atau perintah yang diminta oleh aturcara utama (main).
• Pembinaan fungsi amat mudah iaitu dengan membahagikan aturcara utama kepada dua atau lebih bahagian mengikut keperluan. Bahagian ini akan bertindak sebagai fungsi bagi bahagian tersebut apabila ianya diberi nama, mengikut pilihan pengaturcara
• Terdapat beberapa tujuan penggunaan fungsi:
o Dapat meringkaskan penulisan suatu aturcara yang besar kerana aturcara ditulis dalam skop aturcara yang lebih kecil
o Memudahkan penulisan aturcara
o Memudahkan pengaturcara mengesan kesilapan
o Memudahkan pengaturcara membuat perubahan ke atas aturcara
o Menjimatkan masa penyuntingan aturcara

FUNCTION PROTOTYPE, DEFINITION DAN CALL FUNCTION
• Apabila sesuatu fungsi dibuat, maka ianya perlu dipanggil oleh aturcara utama
o Proses panggil fungsi ini dikenali juga sebagai Call Function @ Function Called
o Jika pengaturcara menggunakan pendekatan ATAS-BAWAH, maka fungsi tersebut perlu diistiharkan lebih awal seperti berikut:
#include<stdio.h> // preprocessor @ header files
int fungsi(); //function prototype @ function declaration
main()
{
fungsi(); //call function
}

fungsi() //function definition
{

}
o Proses mengistiharkan adanya penggunaan fungsi ini dikenali sebagai function prototype
o Selepas itu diikuti dengan Aturcara Utama dimana aturcara utama pula akan memanggil fungsi tersebut
o Dalam pendekatan ATAS-BAWAH ini, fungsi terletak di bahagian bawah selepas aturcara utama, seperti contoh di atas. Proses meletakkan kedudukan fungsi selepas distiharkan dikenali sebagai Function Definition (Takrifan fungsi)
o Jika pengaturcara menggunakan pendekatan BAWAH-ATAS, maka fungsi tersebut tidak perlu diistihar lebih awal. Bermakna tidak wujud fungsi prototaip pada pendekatan ini. Ini kerana dalam pendekatan ini, kedudukan fungsi terletak di bahagian atas selepas preprocessor @ header files. Dengan kata lain, function definition mengambil alih peranan function prototype
#include<stdio.h> // preprocessor @ header files
fungsi() //function definition
{

}

main()
{
fungsi(); //call function
}

• Carta alir bagi proses pemanggilan fungsi seperti berikut:
(TIDAK DAPAT DIPAPARKAN.SILA RUJUK NOTA ASAL)



FUNGSI RECURSION DAN RETURN VALUE
• Fungsi boleh memulangkan nilai kepada sipemanggilnya. Proses ini dikenali sebagai Return Value
• Fungsi boleh tidak memulangkan nilai kepada sipemanggilnya dan memaparkan hasil melalui fungsi tersebut. Teliti contoh berikut:
Fungsi()
{
int sum;
:
:
return sum;
}

• Fungsi juga boleh memanggil dirinya sendiri. Proses ini dikenali sebagai Fungsi Rekursi @ Recursion Function . Teliti contoh berikut:
Fungsi(int sum)
{
if(sum<=9);
return(1);
else
return (sum * Fungsi (int sum – 1));
}

FORMAL PARAMETERS AND ACTUAL PARAMETERS
• Istilah di atas dikenali juga sebagai argumen-argumen
• Formal parameters merujuk kepada nilai atau alamat yang dihantar melalui fungsi manakala actual parameters merujuk kepada nilai atau alamat yang diterima oleh fungsi. Teliti aturcara berikut:
#include<stdio.h> // preprocessor @ header files
fungsi(int a) //actual parameter
{

}

main()
{
fungsi(a); //formal parameter
}

• Terdapat dua cara penghantaran nilai atau alamat melalui fungsi iaitu:
o Pass by value (hantar argumen @ nilai sebenar)
o Pass by reference (hantar alamat @ tatasusunan nilai berkenaan)
• Pass by value biasanya digunakan dalam fungsi aturcara biasa manakala pass by reference biasanya digunakan dalam aturcara yang rumit seperti aturcara yang menggunakan tatasusunan array atau pointer. Teliti perbezaan bagi kedua-dua kaedah tersebut melalui aturcara berikut:
Aturcara pass by value
main()
{
int a=2;
printf(" a = %d, before calling function", a);
modify(a);
printf("a = %d, after calling function",a);
}
modify(int a)
{
a* =3;
printf("a = %d, after being modified",a);
return;

outputnya
a = 2, before calling function
a = 6, after being modifed
a = 2, after calling function

Aturcara pass by refference
main()
{
int a[3];
printf(" before calling function\n");
for(int i=0; i<=2; i++)
{
a[i] = i +1;
printf ("a[%d] = %d\n", i,a[i]);
}
modify(a);
printf(" after calling function\n");
for(int i=0; i<=2; i++)
{
a[i] = i +1;
printf ("a[%d] = %d\n", i,a[i]);
}

}
modify(int a)
{
printf(" after being modify\n");
for(int i=0; i<=2; i++)
{
a[i] = -9;
printf ("a[%d] = %d\n", i,a[i]);
}
return;

outputnya
before calling function
a [0]= 1
a [1]= 2
a [2]= 3
after being modifed
a [0]= -9
a [1]= -9
a [2]= -9

after calling function
a [0]= -9
a [1]= -9
a [2]= -9

Abdul Kadir

Posts : 7
Join date : 30/09/2009

View user profile

Back to top Go down

View previous topic View next topic Back to top


 
Permissions in this forum:
You cannot reply to topics in this forum