fungsi 2 pdf.pdf

Upload: syaiful-akhmad

Post on 05-Jul-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/16/2019 Fungsi 2 pdf.pdf

    1/18

    Fungsi 2

    DASAR PEMROGRAMAN

  • 8/16/2019 Fungsi 2 pdf.pdf

    2/18

    2

    Cara Melewatkan Parameter 

     Ada 2 cara melewatkan parameter ke dan dari fungsi :

    • Pemanggilan dengan Nilai (Call by value)

    • Pemanggilan dengan Referensi (Call by Reference)

    1. Pemanggilan dengan Nilai

    x

    y

    Parameter formal

    a

    b

    Parameter aktual

    disalin

  • 8/16/2019 Fungsi 2 pdf.pdf

    3/18

    3

    Nilai dari parameter aktual akan disalin ke parameter formalNilai parameter aktual tidak bisa berubah meskipun nilai parameter

    formalnya berubah

    //contoh pemanggilan dengan nilai

    #include

    void tukar(int,int);

     main(){

    int a,b;

    a=88; b=77; printf("Nilai sebelum pemanggilan fungsi\n"); printf("a= %d b= %d\n\n", a,b );

    tukar(a,b);

     printf("Nilai sesudah pemanggilan fungsi\n");

     printf("a= %d b=%d\n\n",a,b);}

    void tukar(int x, int y){

    int z; //variabel sementara

    z=x;

    x=y;y=z; printf("Nilai di akhir fungsi tukar\n"); printf("x= %d y= %d\n\n",x,y);

    }

  • 8/16/2019 Fungsi 2 pdf.pdf

    4/184

    Proses Penukaran nilai

    x   y   z

    88   77   ?

    Mula-mula

    x   y   z

    88   77   88

    Sesudah : z=x

    x   y   z

    77   77   88

    Sesudah : x=y

    x   y   z

    77   88   88

    Sesudah : y=z

  • 8/16/2019 Fungsi 2 pdf.pdf

    5/185

    2. Pemanggilan dengan ReferensiUpaya untuk melewatkan alamat dari suatu variabel ke dalam fungsi

    Untuk mengubah isi suatu variabel di luar fungsi dimana pelaksanaan

    pengubahan dilakukan di dalam fungsi

    t ukar ( i nt *px, i nt *py){

    i nt z;

    z= *px;*px=*py;*py=z;……

    - Modif ikasi pada parameter formal :

    Variabel pointer

    menunjuk ke variabel lain

    - Modifikasi untuk parameter aktual :

    t ukar ( &a, &b) ;

    variabel diawali dengan &

    menyatakan alamat dari a dan alamat

    dari b

  • 8/16/2019 Fungsi 2 pdf.pdf

    6/186

    alamat a

    px

    a

    alamat b

    py

    b

    Variabel pointer px menunjuk ke variabel a dan

    variabel pointer py menunjuk ke variabel b

  • 8/16/2019 Fungsi 2 pdf.pdf

    7/187

    //contoh pemanggilan dengan referensi

    #include void tukar(int *px,int *py);

     main(){

    int a,b;a=88;

     b=77; printf("Nilai sebelum pemanggilan fungsi\n"); printf("a= %d b= %d\n\n", a,b );

    tukar(&a,&b);

     printf("Nilai sesudah pemanggilan fungsi\n"); printf("a= %d b=%d\n\n",a,b);

    }

    void tukar(int *px, int *py){

    int z; //variabel sementara

    z=*px;*px=*py;

    *py=z; printf("Nilai di akhir fungsi tukar\n"); printf("x= %d y= %d\n\n",*px,*py);

    }

  • 8/16/2019 Fungsi 2 pdf.pdf

    8/188

    Jenis-jenis Variabel berdasarkankelas penyimpanan (storage class)

      Jenis-jenis variable pada C

     Variabel lokal

     Variabel eksternal  Variabel statis

     Variabel register    Hanya akan dibahas variabel

    lokal dan variabel eksternal saja.

  • 8/16/2019 Fungsi 2 pdf.pdf

    9/189

    Variabel Lokal   Hanya dikenal didalam fungsi

    tempat variabel tersebutdideklarasikan.

      Setelah fungsi selesai dijalankan,variabel lokal tersebut otomatis

    akan hilang.

      Tidak ada inisialisasi secara

    otomatis (saat variabel diciptakan,

    nilainya tak menentu).

  • 8/16/2019 Fungsi 2 pdf.pdf

    10/1810

    Contoh Variabel Lokalvoid fung_1(void);

     main()

    {int i = 20;

    fung_1();

     printf("nilai i di dalam main() =

    %d\n", i);}

    void fung_1(void)

    {

    int i = 11; printf("nilai i di dalam fung_1() =%d\n", i);

    }

  • 8/16/2019 Fungsi 2 pdf.pdf

    11/1811

    Variabel Eksternal

      Dapat diakses oleh semua fungsi   Kalau tak diberi nilai, secara

    otomatis diinisialisasi dengan nilai

    sama dengan nol.

  • 8/16/2019 Fungsi 2 pdf.pdf

    12/18

    12

    Contoh#1 Variabel Eksternal#include

    int i = 273; /* variabel eksternal */

    void tambah(void);

     main()

    {

     printf("Nilai awal i = %d\n", i);

    i += 7;

     printf("Nilai i kini = %d\n", i);

    tambah();

     printf("Nilai i kini = %d\n", i);

    tambah();

     printf("Nilai i kini = %d\n", i);

    }

    void tambah(void)

    { i++;

    }

  • 8/16/2019 Fungsi 2 pdf.pdf

    13/18

    13

    Contoh#2 Variabel Eksternal#include

    int i = 273; /* variabel eksternal */

    void tambah(void);

     main(){

    extern int i; /* variabel eksternal */

     printf("Nilai awal i = %d\n", i);

    i += 7;

     printf("Nilai i kini = %d\n", i);

    tambah();

     printf("Nilai i kini = %d\n", i);

    tambah();

     printf("Nilai i kini = %d\n", i);}

    void tambah(void)

    {

    int i; /* variabel lokal */i++;

    }

  • 8/16/2019 Fungsi 2 pdf.pdf

    14/18

    14

    Menciptakan Sejumlah Fungsi Pada C semua fungsi bersifat sederajat.

    Suatu fungsi tidak dapat didefinisikan di dalam fungsi yang lain,

    tetapi suatu fungsi boleh memanggil fungsi yang lain,

    dan tak tergantung pada peletakan definisi fungsi pada program

    fungsi_a()   fungsi_b()

    fungsi_c()

  • 8/16/2019 Fungsi 2 pdf.pdf

    15/18

    15

    / / pr ogr am dengan beber apa f ungsi

    #i ncl ude

    voi d f ungsi _1( voi d) ;voi d f ungsi _2( voi d) ;

    mai n( ){

    f ungsi _1( ) ;}

    voi d f ungsi _1( voi d){

    pr i nt f ( "Fungsi 1 di j al ankan\ n" ) ;f ungsi _2( ) ;}

    voi d f ungsi _2( voi d)

    { pr i nt f ( "Fungsi 2 di j al ankan\ n" ) ;}

    Contoh Program dengan beberapa fungsi

  • 8/16/2019 Fungsi 2 pdf.pdf

    16/18

    16

    Rekursi Fungsi dapat dipakai secara rekursi, yaitu dapat memanggil

    dirinya sendiri

    Contoh :xn   If n==1, xn = x

    Else : xn=x*xn-1

    Jika x=2 dan n=3, maka

    23 = 2 * 22 22= 2 * 21 21 = 2

    28   4

  • 8/16/2019 Fungsi 2 pdf.pdf

    17/18

    17

    Contoh Program rekursi/ / r ekur si unt uk mencar i f akt or i al

    #i ncl ude

    i nt f akt or i al ( i nt ) ;

    mai n( ){

    i nt x;

    pr i nt f ( "MENCARI FAKTORI AL DARI X\ n") ;pr i nt f ( "Masukkan ni l ai x : " ) ;scanf ( "%d" , &x) ;pr i nt f ( "Ni l ai f akt or i al dar i x = %d adal ah%d\ n" , x, f akt or i al ( x) ) ;

    }

    i nt f akt or i al ( i nt m){

    i f ( m==1)return(1);

    el se r et ur n( m=m*f akt or i al ( m- 1) ) ;}

  • 8/16/2019 Fungsi 2 pdf.pdf

    18/18

    18

    Tugas1.   Buat program untuk menghitung volume

    dari tabung dan kerucut

    Jari-jari lingkaran dan tinggi tabung /

    kerucut didapat dari keyboard.

    2.   Buat program yang berisi menu pilihan

    untuk operasi penjumlahan, pengurangan

    dan perkalian dari dua buah bilangan bulat

    yang didapat dari keyboard. Jadikan supaya

    program ini dapat memilih berulang-ulang