bab 10 fungsi
Post on 07-Jul-2018
243 Views
Preview:
TRANSCRIPT
-
8/18/2019 Bab 10 Fungsi
1/24
PengaturcaraanKomputerBab 6 : FUNGSI.
-
8/18/2019 Bab 10 Fungsi
2/24
PENGENALANAPA ITU FUNGSI?
Kod berbentuk modul yang melakanakan ker!a yang
k"uu
Cara terbaik untuk membangunkan dan mengekalkanprogram besar adalah membina dari komponen yang lebih
kecil atau modul
Dalam C, modul tersebut dikenali sebagai fungsi
Setiap modul lebih mudah diuruskan daripada pembinaankeseluruhan program.
-
8/18/2019 Bab 10 Fungsi
3/24
• Divide and Conquer: membahagikan kumpulan yang
besar kepada fungsi yang lebih kecil
– embantu menyelesaikan kerumitan
– embantu membina program yang besar – emudahkan proses debug bagi program
• !ungsi terhasil melalui nama dan parameter.
– "iada dua fungsi mempunyai nama yang sama dalam program C.
– "iada dua fungsi mempunyai nama D#$ parameter yang sama %enis dalam program
– &omunikasi antara fungsi dan invoker adalah melalui parameter
dan nilai pulangan
PENGENALAN
-
8/18/2019 Bab 10 Fungsi
4/24
• !ungsi berbentuk bebas:
– 'erbentuk serba lengkap.
– 'oleh dipanggil di mana saha%a koddiletakkan dan dialihkan ke program lain.
• !ungsi membolehkan program diguna
semula dan boleh dibaca.
PENGENALAN
-
8/18/2019 Bab 10 Fungsi
5/24
• &ebaikan !ungsi: – asalah dikenalpasti dalam skop yang lebih kecil
– (embangunan program lebih cepat berbandingstruktur biasa program
– udah dikendalikan• 'entuk !ungsi:)
– P#a$a# %ung# &er&utakaan (Standard libraryfunctions)
• !ungsi *nput+output• !ungsi atematik
– Fung#'%ung# yang d#takr#%kan ( %ung# yangd#)#&ta ole" &engguna untuk tu!uan tertentu*
PENGENALAN
-
8/18/2019 Bab 10 Fungsi
6/24
S#ntak
main ()
{
function_1();function_2();
function_n();
return 0;
}
function_1()
{
statement;
return ();}
function_2()
{
statement;
return();
}
+onto"
void print_menu (void)
{
printf (“This Program Dras ! "ectang#e or !$);
printf (“Triang#e on The %creen&'n$);
printf (“nter 1 to dra a rectang#e&'n$);
printf (“nter 2 to dra a triang#e&$);}
Fun)t#on
Name
Formal
&arameter
Fun)t#on
Ty&e
ST,UKTU, FUNGSI
-
8/18/2019 Bab 10 Fungsi
7/24
• Fung# Protota#&
• Fung# Takr#%an -Function Definition )
• Fung# Pangg#lan (Function Call)
K.NSEP FUNGSI
-
8/18/2019 Bab 10 Fungsi
8/24
+onto"
#include
int maximum(int, int, int);
main()
{
printf("Maximum is: %dn", maximum(!, , ));
$
int maximum(int x, int , int &)
{
int max ' x;
if ( > max)
max ' ;
if (& > max)
max ' &;
return max;
$
Fungsi Prototaip:
fungsi ini membawatiga ints, danmemulangkan satuint.
Fungsi Tafsiran
Pernyataan Return
-
8/18/2019 Bab 10 Fungsi
9/24
Peraturan &rotota#&
-
8/18/2019 Bab 10 Fungsi
10/24
ELE/EN FUNGSI
P,.T.TAIP – Semua fungsi dalam C, perlu diisytiharkan
– (engecualian hanya kepada fungsi main, yang tidakperlu diisytiharkan
– 'entuk fungsi terdiri daripada:)#* 0en# Fung# (Function type)
##* Nama Fung# (Function name)
###* Senara# &arameter senarai fungsi %enis
parameter ditulis sebagai void- atau -. ikafungsi yang mempunyai lebih daripada satuparameter formal, %enis parameter dalam senaraimesti dipisahkan dengan tanda koma
-
8/18/2019 Bab 10 Fungsi
11/24
ELE/EN FUNGSI
P,.T.TAIP• Contoh
• (rotaip /lobal vs (rototaip 0ocal
–/lobal1 (rototaip fungsi diletakkan dalamfungsi definisi luar
– 0ocal1 Diletakkan di dalam fungsi di mana ia
dihasilkan
void print2menu void-3
double squared double number-3
int get2menu2choide void-3
-
8/18/2019 Bab 10 Fungsi
12/24
-
8/18/2019 Bab 10 Fungsi
13/24
-
8/18/2019 Bab 10 Fungsi
14/24
/lobal v. (embolehubah 0ocal• /lobal:
– (embolehubah diisytiharkan diluar mana)mana fungsi
– 'oleh diru%uk olem mana)mana fungsi dalam program*• 0ocal:
– (embolehubah diisytiharkan di dalam program
– 4anya boleh diru%uk di dalam fungsi tersebut saha%a.
• Sekiranya pembolehubah yang sama digunakandalam fungsi local dan global maka namapembolehubah local akan digunapakai.
-
8/18/2019 Bab 10 Fungsi
15/24
* This program demonstrates g#o+a# varia+#es and scope *
,inc#ude -stdio&h.
void a (void);
void + (void);
int / 1; * #o+a# aria+#e *
main () {
printf (34n main5 / e6ua#s7 8d'n35 /);
a();
+();
printf (34n main5 / e6ua#s7 8d'n35 /);
return 0;
}
void a (void) {
int / 100;
printf (34n function (a)5 / e6ua#s7 8d'n35 /);
}
void + (void) {
printf (34n function (+)5 / e6ua#s7 8d'n35 /99);}
If you have a localvariable and a globalvariable with thesame name, the localone is used.
n main, x euals: *
n function (a), x euals: *++
n function (), x euals: *
n main, x euals: -
Contoh
-
8/18/2019 Bab 10 Fungsi
16/24
-
8/18/2019 Bab 10 Fungsi
17/24
Peraturan Fung# Ta%#ran
-
8/18/2019 Bab 10 Fungsi
18/24
Elemen Fung# Ta%#ran
2ua kom&onen Utama:
'aris 7tama (First line)
'adan fungsi (Body of the function)
Bar# utama mengandung# elemen:
i. 'entuk fungsi (Function type)
ii. $ama fungsi (Function name)
iii. senarai pilihan parameter formal yang terdapat di dalamkurungan pe8arisan-
7mumnya, baris pertama boleh ditulis sebagai:
function_type function_name (formal parameters)
-
8/18/2019 Bab 10 Fungsi
19/24
Fung# Protota#& 3* Ta%#ran
• !ungsi prototaip dan fungsi tafsiran mempunyaibentuk data yang sama. $amun,
– (rototaip: anda t#dak &erlu memaukkan nama&arameter1 teta anda met# memaukkan !en# data &arameter*
• Cth: int s6uare (int);
– Ta%#ran: anda met# memasukkan nama dan !en# data bag# et#a& &arameter .
• Cth: int s6uare (int :);
-
8/18/2019 Bab 10 Fungsi
20/24
Peraturan Fung# Pangg#lan
-
8/18/2019 Bab 10 Fungsi
21/24
– emerlukan nama fungsi yang diikuti dengansenarai parameter sebenar atau hu%ah- ataukurungan
– -4 /enun!ukkan &angg#lan %ung# – +onto":'
• print2menu-
• dra82triangle-
– Parameter ebenar mungk#n d#nyatakan ebaga#&emalar1 &embole"uba" tunggal atau ungka&anyang leb#" kom&lek teta met#la" dar#&ada !en# data yang ama dengan &arameter %ormale&adan*
ELE/EN FUNGSI PANGGILAN
-
8/18/2019 Bab 10 Fungsi
22/24
0#ka %ung# mengembal#kan n#la#1 &angg#lan %ung#yang er#ng d#tul# ebaga# kenyataan tugaan*
+onto":
y1polynominal9-3 !ungsi #kses menyebabkan nilai yang
dipulangkan oleh fungsi yang hendak diberikankepada pembolehubah y.
ika fungsi tersebut tidak mengembalikansebarang nilai, panggilan fungsi muncul dengansendirinya
) displaya,b,c-
FUNGSI PANGGILAN
-
8/18/2019 Bab 10 Fungsi
23/24
• !ungsi boleh menggunakan %enis pulangan ;*D %ika anda berniatuntuk mengembalikan sebarang nilai.
• Contoh:
void print_header()
{
printf(3Program um+er 1'n3);
printf(3+:
-
8/18/2019 Bab 10 Fungsi
24/24
int mainvoid-
?
int *C$umber3
printf@(lease &ey *n Aour *C $umber : Bn-3
scanf@d, E*C$umber-3
printf@(lease &ey *n
return F3
G
top related