Algoritma dan Struktur Data

21
Computer Science, University of Brawijaya Putra Pandu Adikara, S.Kom Algoritma dan Struktur Data SubAlgoritma (Prosedur & Fungsi)

description

Algoritma dan Struktur Data. SubAlgoritma (Prosedur & Fungsi). SubAlgoritma/SubProgram. Masalah: program menjadi besar dan kompleks untuk melakukan pengecekan kesalahan menjadi sangat rumit. Program besar dipecah-pecah menjadi prosedur-prosedur dan fungsi-fungsi . - PowerPoint PPT Presentation

Transcript of Algoritma dan Struktur Data

Page 1: Algoritma dan Struktur Data

Computer Science, University of Brawijaya

Putra Pandu Adikara, S.Kom

Algoritma dan Struktur Data

SubAlgoritma (Prosedur & Fungsi)

Page 2: Algoritma dan Struktur Data

SubAlgoritma/SubProgram

Masalah: program menjadi besar dan kompleks untuk melakukan pengecekan kesalahan menjadi sangat rumit.

Program besar dipecah-pecah menjadi prosedur-prosedur dan fungsi-fungsi .

Memudahkan dalam pengecekan kesalahan dan juga program menjadi lebih mudah dimengerti dan menghindari penulisan kode program yang berulang-ulang.

Page 3: Algoritma dan Struktur Data

SubProgram

Subroutine sinonim dgn "subprogram." Istilah ini ada krn terminologi di Fortan dan bhs assembly.

Function dan Procedure juga sinonim dgn "subprogram“. Predicate fungsi dgn nilai balik boolean (misal sukses atau gagal) Method atau Member function subprogram yg digunakan dlm

object-oriented programming (OOP) yg menggambarkan aksi dari suatu objek

Event handler atau handler, subprogram yg dipanggil saat ada “event”, misal prosedur yg dijalankan ketika ada event mouse click

Page 4: Algoritma dan Struktur Data

Prosedur (Procedure)

Subprogram yang dapat dipanggil di dalam program (atau subprogram lain).

Tidak menghasilkan nilai balik. Deklarasi prosedur:

procedure nama_procedure();begin

{proses}end;

Contoh:

procedure Hello();begin

WriteLn(‘Hello World');end;

Page 5: Algoritma dan Struktur Data

Memanggil Prosedur

Contoh pemanggilan procedure

beginHello();

end.

Page 6: Algoritma dan Struktur Data

Fungsi (Function)

Subprogram yang menghasilkan nilai balik (seperti fungsi matematis)

Deklarasi prosedur:

function nama_function(): [tipedata_nilai_balik];begin

{proses}end;

Contoh

function pi(): double;begin

pi := 3.14;end;

Page 7: Algoritma dan Struktur Data

Memanggil fungsi

Contoh pemanggilan fungsi

varnilai: real;

beginnilai := pi(); WriteLn(nilai);

end.

Page 8: Algoritma dan Struktur Data

Parameter

adalah argumen berupa nilai yg diberikan ke dalam suatu prosedur/fungsi

Prosedur bisa mempunyai parameter: Value parameter (parameter passing by value)

• memasukkan nilai ke dalam parameter• nilai yg dimasukkan hanya bisa berubah di dalam prosedur

Variable parameter (parameter passing by reference)• Memasukkan nilai ke dalam parameter• nilai yg dimasukkan berubah di dalam dan luar prosedur

Page 9: Algoritma dan Struktur Data

Prosedur dgn Value parameter

Deklarasi prosedur: Diawali reserved word procedure kemudian nama

prosedur Deklarasi parameter diapit/didalam "(" dan ")" setelah nama

prosedur

Deklarasi sintaks:

procedure nama_procedure([nama_param]:[tipe_data] [;dst]);

Page 10: Algoritma dan Struktur Data

Contoh Value Parameter pada Prosedur

Contoh deklarasi:procedure WriteValue(text:string; nilai: int);begin

WriteLn(text,'=',nilai);end;

Pemanggilan prosedur dgn value parameter:[nama_proc]([nilai/variable],[dst]);

Misal:

WriteValue('Isi nilai=',i);

Page 11: Algoritma dan Struktur Data

Fungsi dgn Value parameter

Deklarasi fungsi: Diawali reserved word function kemudian nama fungsi Deklarasi parameter diapit "(" dan ")" setelah nama fungsi Antar parameter dipisah tanda titik koma ";"

Deklarasi sintaks: Di Pascalfunction nama_procedure( [nama_param]:[tipe_data] [;dst]): [tipe_data];begin

{proses}[nama_procedure] := [nilai_balik];

end;

Page 12: Algoritma dan Struktur Data

Fungsi dgn Value parameter

Deklarasi sintaks: Di Delphifunction nama_procedure( [nama_param]:[tipe_data] [;dst]): [tipe_data];begin

{proses}result := [nilai_balik];

end;

Page 13: Algoritma dan Struktur Data

Contoh Value Parameter pada Fungsi

Contoh deklarasi:function NilaiInteger(nilai: integer): integer; begin

NilaiInteger:=nilai; //di Delphi result:=nilaiend;

Pemanggilan function dgn value parameter:NilaiInteger(i);

Untuk mengisi nilai balik fungsi ke suatu variable:var a:integer;begina = NilaiInteger(i);end;

Page 14: Algoritma dan Struktur Data

Reference Parameter

Deklarasi prosedur/fungsi: Hampir sama dengan value parameter, tapi sebelum nama

parameter ditambahi keyword var Bila memerlukan output seperti nilai balik lebih dari 2.

Deklarasi sintaks:function nama_procedure(var [nama_param]:[tipe_data] [;dst]): [tipe_data];begin

{proses}end;

Pemanggilan procedure dgn value parameter[nama_proc]([variable],[dst]);

Page 15: Algoritma dan Struktur Data

Contoh Prosedur dgn Ref Parameter

Contoh deklarasi prosedurprocedure WriteValue(text:string; var nilai:integer)begin nilai := 10;WriteLn(text, '=',nilai);

end; Pemanggilan prosedur dgn ref parameter

Misal:

WriteValue('Isi nilai=',i);nilai i = ??

Page 16: Algoritma dan Struktur Data

Contoh Fungsi dgn Ref Parameter

Contoh deklarasi fungsifunction NilaiInteger(var nilai:integer):integer;begin

nilai := nilai*3; NilaiInteger := nilai;

end; Pemanggilan function dgn reference parameter

NilaiInteger(i); //tanpa assignment Untuk mengisi (assign) nilai balik fungsi ke suatu variable

a = NilaiInteger(i);

nilai i = ??

Page 17: Algoritma dan Struktur Data

Prosedur/Fungsi Overloading

Prosedur/Fungsi overloading prosedur/fungsi dengan nama yang sama tetapi dengan tipe data fungsi dan/atau parameter yang berbeda

Diakhir deklarasi prosedur/fungsi ditambahkan identifier overload;

Page 18: Algoritma dan Struktur Data

Contoh Prosedur/Fungsi Overloading

Contoh:

function Convert (nilai:string; kali : integer ): integer; overload;

var nilaiInt,errorCode:integer;begin

Val(nilai,nilaiInt,errorCode); //di Delphi StrToIntConvert := nilaiInt * kali;

end;function Convert (nilai: string):float; overload;var nilaiFloat:real; errorCode:integer;begin

Val(nilai,nilaiFloat,errorCode); //di Delphi StrToFloatConvert := nilaiFloat;

end;

Page 19: Algoritma dan Struktur Data

Prosedur/Fungsi Rekursif

Prosedur/Fungsi rekursif prosedur/fungsi yang memanggil dirinya sendiri terus menerus di dalam badan prosedur/fungsi tsb.

Pemanggilan akan berhenti saat suatu kondisi berhenti (tidak memanggil dirinya) ditentukan.

Page 20: Algoritma dan Struktur Data

Contoh Prosedur/Fungsi Rekursif

Contoh f(n)=n! dimana n! = n *(n – 1)!Misal n = 2, maka:f(2) = 2! = 2 * (2-1)! = 2 * 1! = 2 * f(1)f(1) = 1! = 1 * (1-0)! = 1 * 0! = 1 * f(0)f(0) = 0! = 1

function Factorial(lNum:integer): LongInt;beginif (lNum < 2) then //contoh kondisi berhenti

Factorial := 1else //pemanggilan fungsi diri

Factorial := lNum * Factorial(lNum - 1);end;

Page 21: Algoritma dan Struktur Data