bab 10 fungsi

Upload: aminzaman

Post on 07-Jul-2018

231 views

Category:

Documents


0 download

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