5 prosedur dan fungsi

Post on 20-Jul-2015

105 Views

Category:

Education

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

PROSEDUR DAN FUNGSI

Jurusan Teknik Elektro Universitas Atmajaya

Makassar

� Procedure dan Function bertujuanuntuk membagi-bagi sebuah programmenjadi beberapa sub program,sehingga program menjadi lebihsehingga program menjadi lebihsederhana dan efisien.

� Sub Program bertujuan untukmengurangi penulisan kode programsecara berulang kali.

2

Procedure Nama_Prosedur (parameter input: tipe; var parameter output:tipe);

Function Nama_Fungsi(parameter input: tipe; var parameter output:tipe):Tipe Fungsi

Parameter adalah nama Variabel yang dideklarasikan padabagian header prosedur/Fungsi.

1. Parameter aktual (argumen) adalah parameter yang disertakan pada waktu pemanggilan procedure/Fungsi.

2. Parameter formal adalah parameter yang dideklarasikan di dalam bagian header prosedur/Fungsi itu sendiri.

3

Aturan yang harus diperhatikan antaraparameter aktual dan parameter formal:

1. Jumlah parameter aktual pada pemang-gilan prosedur harus sama dengan jumlahgilan prosedur harus sama dengan jumlahparameter formal pada header prosedur/Fungsinya.

2. Tiap parameter aktual harus bertipe samadengan tipe parameter formal yangbersesuaian

4

� Variabel Global � Adalah variabel yang yang dapat dikenali oleh

semua sub program dan program utama.

� Dideklarasikan di awal program .� Dideklarasikan di awal program .

� Variabel Lokal

� Adalah variabel yang hanya dapat dikenali

oleh sub program yang mendeklarasikannya.

� Dideklarasikan di dalam sub program

5

� Dapat menggunakan parameter inputdan output.

� Menerima input data pada saatdipanggil lewat parameter inputdipanggil lewat parameter input(passing by value).

� Mengembalikan nilai lewat variabelacuan (passing by reference).

� Dapat mengirim satu nilai atau lebih.

6

{Prosedur}

Procedure Nama_prosedur (parameter_input:tipe; Var parameter_output:tipe);

Var …… {Deklarasi Variabel Lokal}

Begin

<pernyataan dalam prosedur>;

End;

7

1. Prosedur Tanpa Parameter2. Prosedur Dengan Parameter Input3. Prosedur Dengan Parameter Output3. Prosedur Dengan Parameter Output4. Prosedur Dengan Parameter Input

dan Output.

Perhatikan perbedaannya pada contohperhitungan Luas Segitiga yang akandibahas untuk tiap jenis prosedur.

8

� Prosedur Tanpa Parameter tidak mengguna-kan parameter input dan output

� Semua proses dilakukan di dalam prosedur.

� Bentuk :

Procedure Nama_Prosedur;

Contoh : Procedure LuasSegitiga;

� Program tidak efisien bila digunakan sebagaiprogram.

9

10

� Bentuk :

Procedure Nama_prosedur(parameter_input: Tipe);

Contoh :

Procedure LuasSegitiga( alas,tinggi: Real);Procedure LuasSegitiga( alas,tinggi: Real);

� Alas dan tinggi adalah Variabel Input untuk menerima datapada saat dipanggil.

LuasSegitiga(a,t);

� Variabel a dan t adalah parameter aktual yang mengirim datake Prosedur.

� Variabel alas, tinggi, a , dan t harus bertipe sama danbersesuaian.

11

12

� Bentuk :

Procedure Nama_prosedur( Var parameter_output:tipe)

� Parameter output harus didahului oleh kata Var.� Parameter output harus didahului oleh kata Var.

Contoh :

Procedure LuasSegitiga( Var Luas: Real);

� Prosedur mengirim output ke program pemanggil.

13

14

� Bentuk :

Procedure Nama_prosedur(parameter_input: tipe; Var parameter_output:tipe)

� Prosedur menerima data input dan mengirim hasil � Prosedur menerima data input dan mengirim hasil output ke program utama.

Contoh :

Procedure LuasSegitiga( alas,tinggi: Real; Var Luas:Real);

� Sangat efisien untuk digunakan sbg sub program

15

16

� Sebuah Fungsi memiliki tipe data.� Dapat menggunakan parameter input

dan output.� Dapat mengembalikan satu nilai atau

lebih.lebih.� Jika mengembalikan satu nilai, maka

nama fungsi dapat digunakan sebagaivariabel outputnya.

� Jika mengembalikan lebih dari satu nilai,maka harus menggunakan parameteroutput.

17

Function NamaFungsi(parameter input:tipe ; var parameter output:tipe) : Tipe Fungsi;

Var ……. {Variabel Lokal};Var ……. {Variabel Lokal};

Begin

pernyataan;

End;

18

� Fungsi Tanpa Parameter� Fungsi Dengan Parameter Input� Fungsi Dengan Parameter Input dan � Fungsi Dengan Parameter Input dan

Output

� Contoh Kasus:

Buatlah Program untuk menghitung Luasdan Keliling dari sebuah Persegi Panjang.

19

� Fungsi Tanpa parameter adalah fungsi yangtidak menerima dan mengirim nilai/data padasaat dipanggil.

� Semua variabel dideklarasikan secara lokaldalam fungsi.dalam fungsi.

� Semua proses input dan output dilakukandalam fungsi.

� Dipanggil tanpa menggunakan parameter.� Tipe dari fungsi adalah bebas karena tidak

mengembalikan data.� Tidak efisien untuk digunakan dalam

program.

20

21

� Proses Input dilakukan dalam Program Utama/sub program pemanggil.

� Proses Output dilakukan di dalam fungsi itu sendiri.

� Tipe Fungsi sesuai dengan tipe data output.� Fungsi menggunakan parameter input untuk menerima

input data pada saat dipanggil.� Fungsi menggunakan parameter input untuk menerima

input data pada saat dipanggil.

� Nama fungsi dapat digunakan sebagai variabel output.

Misalnya :

Function Luas(p,l : real):real;Maka pernyataan outputnya adalah :

Write(‘ Luas = ‘, Luas(p,q):6:2);

22

23

� Proses input dilakukan dalam sub programyang memanggil fungsi.

� Setiap proses harus dikerjakan dalam fungsi� Setiap proses harus dikerjakan dalam fungsimasing-masing. Misalnya : luas dihitungoleh fungsi luas dan Keliling dihitung olehfungsi Keliling.

� Umumnya digunakan sbg Sub Program

24

25

26

� Bentuk dari program terstruktur jelas nampakdalam program yang cukup besar, mis ProgramMatriks karena ada proses yang sama yang selaluberulang kali digunakan.

� Terstruktur karena prosedur atau fungsi tampak� Terstruktur karena prosedur atau fungsi tampakberurutan susunannya dari atas ke bawah dalambentuk sub program yang lebih sederhana.

� Dalam prosedur dan fungsi, array harusdideklarasikan sebagai sebuah tipe data karenaparameter formal pada header prosedur danfungsi tidak mengenal deklarasi array dengancara yang biasa digunakan.

27

Cara biasa : Var A : array [1..10,1..10] of integer;

Harus diubah menjadi tipe data sbb :

type matrix = array [1..10,1..10] of integer;

Matrix adalah nama tipe dariarray[1..10,1..10] of integer, sehinggadeklarasi variabel A menjadi :

Var A : matrix

28

Prosedur dalam program :

1. Prosedur input : digunakan untuk melakukanproses input data matriks A dan B

2. Prosedur Jumlah : Untuk menghitungmatriks C = A + B dan D = B - A.

3. Prosedur Cetak : Untuk mencetak matrik A,B, C dan D

4. Program utama

29

Procedure input(x,y : integer; var m : matrix);var i,j : integer;

{Input Data Matrix}BeginBeginfor i:=1 to x do

for j:=1 to y dobegin

write('M[',i,',',j,'] : ');readln(m[i,j]);end; writeln;

end;

30

Procedure Jumlah(x,y:integer; a,b :matrix;var c,d :matrix);

var i,j : integer;Begin

for i:=1 to x dofor i:=1 to x doBegin

for j:=1 to y doBegin

c[i,j] := a[i,j] + b[i,j]; {C = A + B}d[i,j] := a[i,j] - b[i,j]; {D = A – B}

End;End;

End;

31

Procedure Cetak(x,y : integer; m : matrix);var i,j:integer;

BeginWriteln;Writeln;for i:=1 to x do

beginfor j:=1 to y do

write(M[i,j],' ');writeln;

end;writeln;

End;

32

var x,y : integer;a,b,c,d: matrix;

Beginclrscr;

{Input Ukuran/Ordo Matrix A

Jumlah(x,y,a,b,c,d);

Writeln; writeln('Matriks A');cetak(x,y,a); {Cetak Matriks A}

writeln; writeln('Matriks B');cetak(x,y,b); {Cetak Matriks B}{Input Ukuran/Ordo Matrix A

dan B}writeln('Tentukan Ordo/Ukuran

Matrix ');

write('Jumlah Baris : '); readln(x);

write('Jumlah Kolom : '); readln(y);

input(x,y,a);input(x,y,b);

cetak(x,y,b); {Cetak Matriks B}

writeln; writeln('Matriks C');cetak(x,y,c); {Cetak Matriks C}

writeln; writeln('Matriks D');cetak(x,y,d); {Cetak Matriks D}

readkey;End.

33

Aturan Perkalian Matriks adalah :� Jumlah Kolom Matrik A = Jumlah Baris

Matriks B.

Program Perkalian Matrik A x B = C :Program Perkalian Matrik A x B = C :� Satu prosedur input data. Untuk melakukan

proses input data matriks A dan B� Satu prosedur untuk melakukan proses

perkalian. � Satu prosedur cetak. Untuk mencetak matrik

A, B, dan C.� Satu bagian program utama

34

uses crt;type matrix = array [1..10,1..10] of integer;

Procedure input(x,y : integer; var m : matrix);var i,j : integer;

Begin{Input Data Matrix}for i:=1 to x do

for j:=1 to y dobegin

write('M[',i,',',j,'] : ');readln(m[i,j]);end; writeln;

end;

35

Procedure Kali(x,y,z: integer; a,b : matrix;var c : matrix);

var i,j,k : integer;

Begin{Proses Perkalian: Axy x Byz = Cxz}{Proses Perkalian: Axy x Byz = Cxz}for i:=1 to x do

for j:=1 to z doBegin

C[i,j]:=0;for k:=1 to y do

c[i,j] := c[i,j] + a[i,k]*b[k,j];End;

End;

36

Procedure Cetak(x,y : integer; a : matrix);var i,j:integer;

BeginWriteln;Writeln;for i:=1 to x do

beginfor j:=1 to y do

write(A[i,j],' ');writeln;

end;writeln;

End;

37

var x,y,z : integer;a,b,c : matrix;

Beginclrscr;

{Input Ukuran/Ordo Matrix A dan B}

writeln;writeln('Matriks A');cetak(x,y,a); {Cetak Matriks A}

writeln;writeln('Matriks B');cetak(y,z,b); {Cetak Matriks B}

B}writeln('Ukuran Matrix Axy');

write('Jumlah Baris : '); readln(x);write('Jumlah Kolom : '); readln(y);write('Jumlah Baris : ',y); writeln;write('Jumlah Kolom : ');readln(z);

input(x,y,a);input(y,z,b);kali(x,y,z,a,b,c);clrscr;

writeln;writeln('Matriks C'); cetak(x,z,c); {Cetak Matriks C}

readkey;End.

38

Pada prinsipnya, Fungsi sama dengan Prosedur.Perbedaannya hanya pada tipe fungsi. Misalnya padapenjumlahan dan pengurangan Matriks bila dikonversike fungsi maka hanya kata Procedure diganti menjadiFunction ditambah nama Tipenya.

Procedure input(x,y : integer; var m : matrix);� Procedure input(x,y : integer; var m : matrix);� Procedure Jumlah(x,y: integer; a,b : matrix;var c,d :

matrix);

Menjadi :

� Function input(x,y : integer; var m : matrix):integer;� Function Jumlah(x,y: integer; a,b : matrix;var c,d :

matrix):integer;

39

1. Buatlah Program Untuk menghitung

Luas, Volume, dan Keliling sebuah

Balok. Buat 4 buah prosedur : Input,

Luas, Volume, dan Keliling.Luas, Volume, dan Keliling.

2. Diketahui 2 buah Matris A (pxq) dan B (mxn).

Buatlah Program untuk menghitung AxB,

A Transpose dan A Transpose x B

dengan prosedur atau fungsi.

40

Bersambung….Bersambung….Fungsi Rekursi

41

top related