Algoritma dan Struktur Data
Embed Size (px)
description
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;
