Algoritma dan Struktur Data

Post on 17-Jan-2016

79 views 0 download

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

Computer Science, University of Brawijaya

Putra Pandu Adikara, S.Kom

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 .

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

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

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;

Memanggil Prosedur

Contoh pemanggilan procedure

beginHello();

end.

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;

Memanggil fungsi

Contoh pemanggilan fungsi

varnilai: real;

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

end.

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

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]);

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);

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;

Fungsi dgn Value parameter

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

{proses}result := [nilai_balik];

end;

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;

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]);

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 = ??

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 = ??

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;

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;

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.

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;