5 prosedur dan fungsi

41
PROSEDUR DAN FUNGSI Jurusan Teknik Elektro Universitas Atmajaya Makassar

Upload: simon-patabang

Post on 20-Jul-2015

105 views

Category:

Education


1 download

TRANSCRIPT

Page 1: 5 prosedur dan fungsi

PROSEDUR DAN FUNGSI

Jurusan Teknik Elektro Universitas Atmajaya

Makassar

Page 2: 5 prosedur dan fungsi

� 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

Page 3: 5 prosedur dan fungsi

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

Page 4: 5 prosedur dan fungsi

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

Page 5: 5 prosedur dan fungsi

� 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

Page 6: 5 prosedur dan fungsi

� 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

Page 7: 5 prosedur dan fungsi

{Prosedur}

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

Var …… {Deklarasi Variabel Lokal}

Begin

<pernyataan dalam prosedur>;

End;

7

Page 8: 5 prosedur dan fungsi

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

Page 9: 5 prosedur dan fungsi

� 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

Page 10: 5 prosedur dan fungsi

10

Page 11: 5 prosedur dan fungsi

� 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

Page 12: 5 prosedur dan fungsi

12

Page 13: 5 prosedur dan fungsi

� 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

Page 14: 5 prosedur dan fungsi

14

Page 15: 5 prosedur dan fungsi

� 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

Page 16: 5 prosedur dan fungsi

16

Page 17: 5 prosedur dan fungsi

� 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

Page 18: 5 prosedur dan fungsi

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

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

Begin

pernyataan;

End;

18

Page 19: 5 prosedur dan fungsi

� 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

Page 20: 5 prosedur dan fungsi

� 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

Page 21: 5 prosedur dan fungsi

21

Page 22: 5 prosedur dan fungsi

� 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

Page 23: 5 prosedur dan fungsi

23

Page 24: 5 prosedur dan fungsi

� 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

Page 25: 5 prosedur dan fungsi

25

Page 26: 5 prosedur dan fungsi

26

Page 27: 5 prosedur dan fungsi

� 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

Page 28: 5 prosedur dan fungsi

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

Page 29: 5 prosedur dan fungsi

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

Page 30: 5 prosedur dan fungsi

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

Page 31: 5 prosedur dan fungsi

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

Page 32: 5 prosedur dan fungsi

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

Page 33: 5 prosedur dan fungsi

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

Page 34: 5 prosedur dan fungsi

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

Page 35: 5 prosedur dan fungsi

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

Page 36: 5 prosedur dan fungsi

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

Page 37: 5 prosedur dan fungsi

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

Page 38: 5 prosedur dan fungsi

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

Page 39: 5 prosedur dan fungsi

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

Page 40: 5 prosedur dan fungsi

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

Page 41: 5 prosedur dan fungsi

Bersambung….Bersambung….Fungsi Rekursi

41