fungsi dan prosedur

15
Fungsi dan Prosedur Fungsi dan Prosedur mini program (subroutine) mini program (subroutine)

Upload: muhammad-fahmi

Post on 20-Jul-2015

123 views

Category:

Education


0 download

TRANSCRIPT

Fungsi dan ProsedurFungsi dan Prosedur

mini program (subroutine)mini program (subroutine)

Apa mini program ?Apa mini program ?

Program C/C++…..

Deklarasi file header

Program Utamavoid main()

fungsi int faktorial(int n)

prosedur void nama()

mini program(subroutine)

FungsiFungsi

Subroutine yang menghasilkan nilai Subroutine yang menghasilkan nilai tertentutertentu

Biasanya digunakan pada Biasanya digunakan pada perhitungan persamaan matematis, perhitungan persamaan matematis, karakter & stringkarakter & string

Fungsi ada 2:Fungsi ada 2:• Fungsi Pustaka C/C++Fungsi Pustaka C/C++• Fungsi Buatan SendiriFungsi Buatan Sendiri

Fungsi Pustaka C/C++Fungsi Pustaka C/C++

stdio.h stdio.h definisi fungsi I/O definisi fungsi I/O ctype.h ctype.h manipulasi karakter manipulasi karakter String.h String.h manipulasi string manipulasi string Math.h Math.h fungsi-fungsi matematika fungsi-fungsi matematika Stdlib.hStdlib.h konversi angka, alokasi memori konversi angka, alokasi memori Stdarg.h Stdarg.h pustaka fungsi-fungsi variabel pustaka fungsi-fungsi variabel Time.h Time.h fungsi manipulasi waktu fungsi manipulasi waktu Iostream.h Iostream.h fungsi-fungsi I/O fungsi-fungsi I/O

Fungsi Buatan SendiriFungsi Buatan SendiriDeklarasiDeklarasi diletakkan setelah file header diletakkan setelah file headertipe fungsi

float

Nama fungsi

jumlah

(parameter fungsi)

(float x, float y)PenulisanPenulisan setelah akhir program utama setelah akhir program utama

/void main()/void main()float jumlah (float x, float y){ z=x+y; /* statement*/ return(z)}

PemanggilanPemanggilan fungsi dapat digunakan dengan pemanggilan fungsi dapat digunakan dengan pemanggilan nama fungsi beserta parameternya olehnama fungsi beserta parameternya oleh program utama atau fungsi yang lainprogram utama atau fungsi yang lain

jumlah (a,b) menghasilkan a+bjumlah (4.55,7.23) =4.55+7.23 = 11.78

Aliran ProgramAliran ProgramProgram Utamavoid main()

fungsi

{

C= tambah(a,b);

}

{

return(hasil tambah)}

Float tambah(float x, float y)

Contoh Penulisan FungsiContoh Penulisan Fungsi# include <stdio.h># include <stdio.h># include <conio.h># include <conio.h>

float tambah(float x,float y);float tambah(float x,float y);void main()void main(){{

float a,b,c;float a,b,c;clrscr();clrscr();printf(“A = “); scanf(“%f”,&a);printf(“A = “); scanf(“%f”,&a);printf(“B = “); scanf(“%f”,&b);printf(“B = “); scanf(“%f”,&b);c=tambah(a,b);c=tambah(a,b);printf(“Hasil A+B = %.2f”,c);printf(“Hasil A+B = %.2f”,c);getch();getch();

}}

float tambah(float x,float y)float tambah(float x,float y){{

return (x+y);return (x+y);}}

# include <stdio.h># include <stdio.h># include <conio.h># include <conio.h># include <iostream.h># include <iostream.h>float tambah(float x,float y);float tambah(float x,float y);void main()void main(){{

float a,b,c;float a,b,c;clrscr();clrscr();cout<<“A = “<<endln; cin>>a;cout<<“A = “<<endln; cin>>a;cout<<“B = “; cin>>b;cout<<“B = “; cin>>b;c=tambah(a,b);c=tambah(a,b);cout<<“Hasil A+B = ”;cout<<c;cout<<“Hasil A+B = ”;cout<<c;getch();getch();

}}

float tambah(float x,float y)float tambah(float x,float y){{

return (x+y);return (x+y);}}

Fungsi dipanggil fungsiFungsi dipanggil fungsi

faktorial & permutasifaktorial & permutasi

faktorial = 4!faktorial = 4! = 4x3x2x1= 4x3x2x1 = 24= 24 aaPermutasi =Permutasi = bb = 4!/3!= 4!/3! = 4= 4

long int faktorial(int n){ if(n==0) return(1); else { printf("%i",n); if (n>1) printf(" * "); else printf("\n"); return(n * faktorial(n - 1)); }}

long int permutasi(int x, int y){ return(faktorial(x)/faktorial(y));}

Parameter FungsiParameter Fungsi#include <stdio.h>#include <conio.h>

float tambah(float x, float y);

void main(){ float a,b,c; clrscr(); printf("A = "); scanf("%f", &a); printf("B = "); scanf("%f", &b); c= tambah(a,b); printf("A + B = %.2f", c); getch();}float tambah(float x, float y) { return (x+y); }

FORMAL parameter dalam definisi fungsi

AKTUAL parameter dalam pemanggilan fungsi

Melewatkan ParameterMelewatkan Parameter

Call by Value Call by Value pemanggilan secara nilai pemanggilan secara nilai• Menyalin nilai parameter aktual ke formalMenyalin nilai parameter aktual ke formal• Tidak merubah nilai asli (parameter aktual)Tidak merubah nilai asli (parameter aktual)

Call by reference Call by reference pemanggilan secara pemanggilan secara referensireferensi• Melewatkan alamat dari variabel ke dalam Melewatkan alamat dari variabel ke dalam

fungsifungsi• Merubah nilai asli variabelMerubah nilai asli variabel

Call by ValueCall by Value#include <stdio.h>#include <conio.h>

void tukar(int x, int y);

void main(){int a,b;clrscr();a = 15;b = 10;printf("a = %i b = %i\n\n", a, b); tukar(a,b); printf("a = %i b = %i\n\n", a, b); getch();}void tukar(int x, int y) {int z; z = x;x = y;y = z;printf("Nilai di akhir fungsi tukar()\n");printf("x = %i y = %i\n\n", x, y);}

a=15, b=10

a=10, b=15

Call by ReferenceCall by Reference#include <stdio.h>#include <conio.h>

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

void main(){int a,b;clrscr();a = 15;b = 10;printf("a = %i b = %i\n\n", a, b); tukar(&a,&b); printf("a = %i b = %i\n\n", a, b); getch();}void tukar(int *px, int *py){int z;

/* variabel sementara */z = *px;*px = *py;*py = z;printf("Nilai di akhir fungsi tukar()\n");printf("px = %i py = %i\n\n", *px, *py);}

a=15, b=10

a=10, b=15

VariabelVariabel LokalLokal

• Variabel di deklarasikan dalam fungsiVariabel di deklarasikan dalam fungsi• Nilai variabel jika tidak diberikan akan bernilai randomNilai variabel jika tidak diberikan akan bernilai random• Hanya dikenal di dalam fungsi tersebutHanya dikenal di dalam fungsi tersebut

GlobalGlobal• Variabel di deklarasikan dalam program utama, setelah includeVariabel di deklarasikan dalam program utama, setelah include• Nilai variabel jika tidak diberikan akan bernilai nolNilai variabel jika tidak diberikan akan bernilai nol• Dikenal di dalam setiap fungsi maupun prosedur (void)Dikenal di dalam setiap fungsi maupun prosedur (void)

StatisStatis• Bernilai tetap (konstanta)Bernilai tetap (konstanta)• Dapat berupa variabel global maupun lokalDapat berupa variabel global maupun lokal

RegisterRegister• Variabel yang nilainya disimpan dalam register, bukan RAMVariabel yang nilainya disimpan dalam register, bukan RAM• Digunakan mengendalikan proses perulanganDigunakan mengendalikan proses perulangan• Hanya digunakan variabel tipe int dan charHanya digunakan variabel tipe int dan char• Deklarasi dengan menambah kata “register”Deklarasi dengan menambah kata “register”

Fungsi RekursifFungsi Rekursif

Fungsi yang Fungsi yang memanggil memanggil

dirinya dirinya sendirisendiri

#include <stdio.h>#include <conio.h>

long int faktorial(int N); void main(){ int N; clrscr(); printf("Berapa faktorial ? "); scanf("%i", &N); printf("Faktorial dari %i = %ld\n", N, faktorial(N)); getch();}

long int faktorial(int N) {if(N==0) return(1);else { printf("%i",N); if (N>1) printf(" * "); else printf("\n"); return(N * faktorial(N - 1)); }}

Prosedure Prosedure

Subroutine yang tidak menghasilkan Subroutine yang tidak menghasilkan nilai tertentunilai tertentu

Biasanya digunakan pada Biasanya digunakan pada kelengkapan penampilan programkelengkapan penampilan program