KEMBAR78
Algorithm and Programming (Procedure and Function) | PDF
Adam Mukharil Bachtiar
English Class
Informatics Engineering 2011
Algorithms and Programming
Procedure and Function
Steps of the Day
Let’s Start
Modular
Programming Procedure Function
Modular Programming
Definition and Types of Modular Programming
BackgroundofModular
Programming
Make a program to solve all problems in your
calculus book! WHAT WILL YOU DO?
ThinkinginModular
Programming
Breakdown a big problem into several small
problems. Small Problems can be
reconstructed to solve the big problem.
ThinkinginModular
Programming
MainProgram
Sub Program 1
Sub Program 2
Sub Program 3
WhatisModularProgramming
Programming technique that break main
program into several sub program.
BenefitsofModular
Programming
• Eliminate repetition of same syntax
in program or algorithm.
• Can find syntax error easily.
• Easy to make big program.
TypesofLoopingStructure
• Procedure
• Function
Procedure
Definition and Structures of Procedure
WhatisProcedure
Instruction block that was made specially to
do specific job.
ExampleofProcedure
(SleepProcedure) • Brush your teeth
• Go to bed
• Pray
• Cover your body with bedcover
• Count the sheep (if you are insomnia)
• Start to dream
• Wake up (if you are not death)
• Pray again
Format of Procedure (Algorithm Notation)
Procedure NamaProsedur (Parameter jika ada)
{I.S.: Keadaan awal sebelum prosedur dijalankan}
{F.S.: Keadaan akhir sesudah prosedur dijalankan}
Kamus:
{Variabel, konstanta, tipe buatan lokal}
Algoritma:
{Badan Prosedur, Berisi instruksi}
EndProcedure
Format of Procedure (Pascal Notation)
procedure NamaProsedur (Parameter jika ada);
{Variabel, konstanta, tipe buatan}
begin
{Badan Prosedur, Berisi instruksi}
end;
Example of Procedure (Algorithm)
1
2
3
4
5
6
7
8
9
10
11
12
13
Procedure HitungLuasPersegi
{I.S: Diinputkan sisi oleh pengguna}
{F.S: Menampilkan hasil perhitungan luas persegi di layar}
Kamus:
sisi:integer
luas:integer
Algoritma:
input(sisi)
luas  sisi * sisi
output(‘Luas Persegi = ‘,luas)
EndProcedure
Example of Procedure (Pascal)
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure HitungLuasPersegi;
var
sisi:integer;
luas:integer;
begin
write(‘Masukan sisi : ‘);readln(sisi);
luas  sisi * sisi;
writeln(‘Luas Persegi = ‘,luas);
write(‘Tekan sembarang tombol untuk keluar...’);
readkey();
end;
CalltheProcedure
Procedure was useless until you call it in main
algorithm, main program, or the other modul.
Format of Calling Procedure (Algorithm)
NamaProsedur
Atau
NamaProsedur(parameter jika ada)
Format of Calling Procedure (Algorithm)
NamaProsedur;
Atau
NamaProsedur(parameter jika ada);
Example of Calling Procedure (Algorithm)
1
2
3
4
5
6
7
8
9
10
11
12
Algoritma PanggilHitungLuasPersegi
{I.S: Diinputkan sebuah bilangan oleh pengguna}
{F.S: Memanggil prosedur sebanyak bilangan}
Kamus:
i,bil:integer {kamus global}
procedure HitungLuasPersegi {Cukup Headernya saja}
Algoritma:
input(bil)
for i  1 to bil do
HitungLuasPersegi {memanggil prosedur}
endfor
Example of Calling Procedure (Pascal)
1
2
3
4
5
6
7
8
9
10
11
12
13
program PanggilHitungLuasPersegi;
uses crt;
var
bil:integer;
{Prosedur HitungLuasPersegi kamu diletakkan di sini}
begin
write(‘Masukan bilangan = ‘);readln(bil);
for i  1 to bil do
HitungLuasPersegi; {memanggil prosedur}
{Baris penutup jangan sampai lupa!!!}
end.
TypesofVariable
• Global Variable
• Local Variable
GlobalVariable
Varible that was known by entire program or
algorithm. This variable was declared in main
program or main algorithm.
LocalVariable
Varible that was known only by its owner. This
variable was declared inside procedure or
function.
Local Variable (Algorithm Notation)
Procedure NamaProsedur (Parameter jika ada)
{I.S.: Keadaan awal sebelum prosedur dijalankan}
{F.S.: Keadaan akhir sesudah prosedur dijalankan}
Kamus:
{Identifier lokal diletakkan di sini}
Algoritma:
{Badan Prosedur, Berisi instruksi}
EndProcedure
FORMAL PARAMETER
Global Variable (Algorithm Notation)
Algoritma judul_algoritma
{I.S.: diisi keadaan yang terjadi di awal algoritma}
{F.S.: diisi keadaan yang terjadi di akhir algoritma}
Kamus/Deklarasi:
{Identifier global diletakkan di sini}
Algoritma/Deskripsi:
{diisi dengan input, proses, dan output}
Local and Global Variable (Pascal Notation)
program nama_program;
var
{identifier global di sini}
procedure nama_prosedur (parameter jika ada);
var
{identifier lokal di sini}
begin
end;
begin
end.
OrdinaryCommunicationBetween
ProcedureandMainAlgorithm
WhatisParameter
Variable that allow us to have more than just
ordinary communication to procedure or
function.
TypesofParameter
• Input Parameter
• Output Parameter
• Input/Output Parameter
: means parameter by value
: means parameter by reference
CommunicationUsingInput
Parameter
Input Parameter (Algorithm Notation)
Procedure NamaProsedur (Input NamaVariabel:TipeData)
{I.S.: Keadaan awal sebelum prosedur dijalankan}
{F.S.: Keadaan akhir sesudah prosedur dijalankan}
Kamus:
{Identifier lokal diletakkan di sini}
Algoritma:
{Badan Prosedur, Berisi instruksi}
EndProcedure
Calling Input Parameter (Algorithm Notation)
Algoritma NamaProsedur
{I.S.: Keadaan awal sebelum algoritma dijalankan}
{F.S.: Keadaan akhir sesudah algoritma dijalankan}
Kamus:
{Identifier global diletakkan di sini}
Procedure NamaProsedur (Input NamaVariabel:TipeData)
Algoritma:
NamaProsedur(NamaVariabel) {pemanggilan prosedur}
EndProcedure
ACTUAL PARAMETER
Input Parameter (Pascal Notation)
program nama_program;
var
{identifier global di sini}
procedure nama_prosedur (variabel:tipedata);
var
{identifier lokal di sini}
begin
end;
Begin
nama_prosedur(variabel);{pemanggilan prosedur}
end.
Example of Input Parameter (Algorithm)
1
2
3
4
5
6
7
8
9
10
11
12
Procedure Persegi(Input sisi:integer)
{I.S: Menerima input berupa sisi}
{F.S: Menampilkan luas dan keliling persegi}
Kamus:
luas,keliling:integer
Algoritma:
luas  sisi * sisi
keliling  4 * sisi
output(luas,keliling)
EndProcedure
Example of Calling Input Parameter (Algorithm)
1
2
3
4
5
6
7
8
9
10
11
Algoritma PanggilHitungLuasPersegi
{I.S: Diinputkan sisi oleh pengguna}
{F.S: Memanggil prosedur persegi}
Kamus:
sisi:integer
procedure Persegi(Input sisi:integer)
Algoritma:
input(sisi)
Persegi(sisi)
Example of Input Parameter (Pascal)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
program HitungPersegi;
uses crt;
var
sisi:integer;
procedure persegi(sisi:integer);
var
luas,keliling:integer;
begin
luas := sisi * sisi;
keliling := 4 * sisi;
writeln(‘Luas Persegi : ‘,luas); {bersambung}
Example of Input Parameter (Pascal)
15
16
17
18
19
20
21
22
23
24
writeln(‘Keliling persegi : ‘,keliling);
end;
begin
write(‘Masukan sisi persegi= ‘);readln(sisi);
persegi(sisi);
writeln();
write(‘Tekan sembarang tombol untuk menutup...’);
readkey();
end.
CommunicationUsingOutput
Parameter
Output Parameter (Algorithm Notation)
Procedure NamaProsedur (Output NamaVariabel:TipeData)
{I.S.: Keadaan awal sebelum prosedur dijalankan}
{F.S.: Keadaan akhir sesudah prosedur dijalankan}
Kamus:
{Identifier lokal diletakkan di sini}
Algoritma:
{Badan Prosedur, Berisi instruksi}
EndProcedure
Calling Output Parameter (Algorithm Notation)
Algoritma NamaProsedur
{I.S.: Keadaan awal sebelum algoritma dijalankan}
{F.S.: Keadaan akhir sesudah algoritma dijalankan}
Kamus:
{Identifier global diletakkan di sini}
Procedure NamaProsedur (Output NamaVariabel:TipeData)
Algoritma:
NamaProsedur(NamaVariabel) {pemanggilan prosedur}
EndProcedure
Output Parameter (Pascal Notation)
program nama_program;
var
{identifier global di sini}
procedure nama_prosedur (var variabel:tipedata);
var
{identifier lokal di sini}
begin
end;
Begin
nama_prosedur(variabel);{pemanggilan prosedur}
end.
Example of Output Parameter (Algorithm)
1
2
3
4
5
6
7
8
9
10
11
12
Procedure Persegi(Output luas,keliling:integer)
{I.S: Meminta input sisi dari pengguna}
{F.S: Mengirimkan nilai luas dan keliling persegi}
Kamus:
sisi:integer
Algoritma:
input(sisi)
luas  sisi * sisi
keliling  4 * sisi
EndProcedure
Example of Calling Output Parameter (Algorithm)
1
2
3
4
5
6
7
8
9
10
11
Algoritma PanggilHitungLuasPersegi
{I.S: Memanggil prosedur persegi}
{F.S: Menampilkan nilai dari prosedur persegi}
Kamus:
luas,keliling:integer
Procedure Persegi(Output luas,keliling:integer)
Algoritma:
Persegi(luas,keliling)
output(luas,keliling)
Example of Output Parameter (Pascal)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
program HitungPersegi;
uses crt;
var
luas,keliling:integer;
procedure persegi(var luas,keliling:integer);
var
sisi:integer;
begin
write(‘Masukan sisi persegi= ‘);readln(sisi);
luas := sisi * sisi;
keliling := 4 * sisi; {bersambung}
Example of Output Parameter (Pascal)
15
16
17
18
19
20
21
22
23
24
end;
begin
persegi(luas,keliling);
writeln(‘Keliling persegi : ‘,keliling);
writeln(‘Luas Persegi : ‘,luas);
writeln();
write(‘Tekan sembarang tombol untuk menutup...’);
readkey();
end.
CommunicationUsing
Input/OutputParameter
Input/Output Parameter (Algorithm Notation)
Procedure NamaProsedur (I/O NamaVariabel:TipeData)
{I.S.: Keadaan awal sebelum prosedur dijalankan}
{F.S.: Keadaan akhir sesudah prosedur dijalankan}
Kamus:
{Identifier lokal diletakkan di sini}
Algoritma:
{Badan Prosedur, Berisi instruksi}
EndProcedure
Calling Input/Output Parameter (Algorithm Notation)
Algoritma NamaProsedur
{I.S.: Keadaan awal sebelum algoritma dijalankan}
{F.S.: Keadaan akhir sesudah algoritma dijalankan}
Kamus:
{Identifier global diletakkan di sini}
Procedure NamaProsedur (I/O NamaVariabel:TipeData)
Algoritma:
NamaProsedur(NamaVariabel) {pemanggilan prosedur}
EndProcedure
Input/Ouput Parameter (Pascal Notation)
program nama_program;
var
{identifier global di sini}
procedure nama_prosedur (var variabel:tipedata);
var
{identifier lokal di sini}
begin
end;
Begin
nama_prosedur(variabel);{pemanggilan prosedur}
end.
Example of Input/Output Parameter (Algorithm)
1
2
3
4
5
6
7
8
9
10
11
Procedure Persegi(I/O sisi:integer,Output luas,keliling:integer)
{I.S: Menerima input sisi}
{F.S: Mengirimkan nilai sisi, luas, dan keliling persegi}
Kamus:
Algoritma:
luas  sisi * sisi
keliling  4 * sisi
sisi  sisi + 1; {lihat apa yang terjadi}
EndProcedure
Example of Calling Output Parameter (Algorithm)
1
2
3
4
5
6
7
8
9
10
11
12
Algoritma PanggilHitungLuasPersegi
{I.S: Memanggil prosedur persegi}
{F.S: Menampilkan nilai dari prosedur persegi}
Kamus:
sisi,luas,keliling:integer
Procedure Persegi(I/O sisi:integer,Output luas,keliling:integer)
Algoritma:
input(sisi)
Persegi(sisi,luas,keliling)
output(sisi,luas,keliling) {Berapa nilai sisinya?}
Example of Input/Output Parameter (Pascal)
1
2
3
4
5
6
7
8
9
10
11
12
program HitungPersegi;
uses crt;
var
luas,keliling:integer;
procedure persegi(sisi:integer;var luas,keliling:integer);
begin
luas := sisi * sisi;
keliling := 4 * sisi;
sisi := sisi + 1; {Lihat apa yang terjadi}
end;
Example of Input/Output Parameter (Pascal)
13
14
15
16
17
18
19
20
21
22
begin
write(‘Masukan sisi persegi= ‘);readln(sisi);
persegi(sisi,luas,keliling);
writeln(‘Keliling persegi : ‘,keliling);
writeln(‘Luas Persegi : ‘,luas);
writeln(‘Sisi persegi : ‘,sisi);
writeln();
write(‘Tekan sembarang tombol untuk menutup...’);
readkey();
end.
Function
Definition and Structures of Function
WhatisFunction
Instruction block that was made specially to
do specific job and return a value. Such as:
F(x)= 2x+4  it will return 6 for x=1.
DifferenceBetweenProcedure
andFunction
Procedure was not made to return a value (only
do specific job) but function was made to return
a value (More specific than procedure).
Format of Function (Algorithm Notation)
FUnction NamaFungsi (Parameter jika ada)  tipefungsi
{I.S.: Keadaan awal sebelum fungsi dijalankan}
{F.S.: Keadaan akhir sesudah fungsi dijalankan}
Kamus:
{Variabel, konstanta, tipe buatan lokal}
Algoritma:
{Badan fungsi, Berisi instruksi}
return VALUE {tipenya sama dengan tipe fungsi}
EndFunction
Format of Procedure (Pascal Notation)
function NamaFungsi (Parameter jika ada):tipefungsi;
{Variabel, konstanta, tipe buatan}
begin
{Badan Fungsi, Berisi instruksi}
NamaFungsi := VALUE; (tipenya sama dengan tipe fungsi}
end;
Example of Function (Algorithm)
1
2
3
4
5
6
7
8
9
Function LuasPersegi(Input sisi:integer)  integer
{I.S: Menerima input berupa sisi}
{F.S: Menampilkan luas dan keliling persegi}
Kamus:
Algoritma:
return sisi * sisi
EndFunction
Example of Function (Algorithm)
1
2
3
4
5
6
7
8
9
10
11
12
Algoritma PanggilLuasPersegi
{I.S: Diinputkan sisi oleh pengguna}
{F.S: Menampilkan nilai fungsi luas persegi}
Kamus:
sisi,luas:integer
Function LuasPersegi(Input sisi:integer)  integer
Algoritma:
input(sisi)
luas  LuasPersegi(sisi)
output(luas)
Example of Function (Pascal)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
program HitungPersegi;
uses crt;
var
sisi,luas:integer;
function LuasPersegi(sisi:integer):integer;
begin
LuasPersegi := sisi * sisi;
end;
begin
write(‘Masukan sisi persegi= ‘);readln(sisi);
luas := LuasPersegi(sisi); {Pemanggilan Function}
Example of Function (Pascal)
15
16
17
18
19
write(‘Luas persegi : ‘,luas);
writeln();
write(‘Tekan sembarang tombol untuk menutup...’);
readkey();
end.
Contact Person:
Adam Mukharil Bachtiar
Informatics Engineering UNIKOM
Jalan Dipati Ukur Nomor. 112-114 Bandung 40132
Email: adfbipotter@gmail.com
Blog: http://adfbipotter.wordpress.com
Copyright © Adam Mukharil Bachtiar 2011

Algorithm and Programming (Procedure and Function)

  • 1.
    Adam Mukharil Bachtiar EnglishClass Informatics Engineering 2011 Algorithms and Programming Procedure and Function
  • 2.
    Steps of theDay Let’s Start Modular Programming Procedure Function
  • 3.
    Modular Programming Definition andTypes of Modular Programming
  • 4.
    BackgroundofModular Programming Make a programto solve all problems in your calculus book! WHAT WILL YOU DO?
  • 6.
    ThinkinginModular Programming Breakdown a bigproblem into several small problems. Small Problems can be reconstructed to solve the big problem.
  • 7.
  • 8.
    WhatisModularProgramming Programming technique thatbreak main program into several sub program.
  • 9.
    BenefitsofModular Programming • Eliminate repetitionof same syntax in program or algorithm. • Can find syntax error easily. • Easy to make big program.
  • 10.
  • 11.
  • 12.
    WhatisProcedure Instruction block thatwas made specially to do specific job.
  • 13.
    ExampleofProcedure (SleepProcedure) • Brushyour teeth • Go to bed • Pray • Cover your body with bedcover • Count the sheep (if you are insomnia) • Start to dream • Wake up (if you are not death) • Pray again
  • 14.
    Format of Procedure(Algorithm Notation) Procedure NamaProsedur (Parameter jika ada) {I.S.: Keadaan awal sebelum prosedur dijalankan} {F.S.: Keadaan akhir sesudah prosedur dijalankan} Kamus: {Variabel, konstanta, tipe buatan lokal} Algoritma: {Badan Prosedur, Berisi instruksi} EndProcedure
  • 15.
    Format of Procedure(Pascal Notation) procedure NamaProsedur (Parameter jika ada); {Variabel, konstanta, tipe buatan} begin {Badan Prosedur, Berisi instruksi} end;
  • 17.
    Example of Procedure(Algorithm) 1 2 3 4 5 6 7 8 9 10 11 12 13 Procedure HitungLuasPersegi {I.S: Diinputkan sisi oleh pengguna} {F.S: Menampilkan hasil perhitungan luas persegi di layar} Kamus: sisi:integer luas:integer Algoritma: input(sisi) luas  sisi * sisi output(‘Luas Persegi = ‘,luas) EndProcedure
  • 18.
    Example of Procedure(Pascal) 1 2 3 4 5 6 7 8 9 10 11 12 13 procedure HitungLuasPersegi; var sisi:integer; luas:integer; begin write(‘Masukan sisi : ‘);readln(sisi); luas  sisi * sisi; writeln(‘Luas Persegi = ‘,luas); write(‘Tekan sembarang tombol untuk keluar...’); readkey(); end;
  • 19.
    CalltheProcedure Procedure was uselessuntil you call it in main algorithm, main program, or the other modul.
  • 20.
    Format of CallingProcedure (Algorithm) NamaProsedur Atau NamaProsedur(parameter jika ada)
  • 21.
    Format of CallingProcedure (Algorithm) NamaProsedur; Atau NamaProsedur(parameter jika ada);
  • 23.
    Example of CallingProcedure (Algorithm) 1 2 3 4 5 6 7 8 9 10 11 12 Algoritma PanggilHitungLuasPersegi {I.S: Diinputkan sebuah bilangan oleh pengguna} {F.S: Memanggil prosedur sebanyak bilangan} Kamus: i,bil:integer {kamus global} procedure HitungLuasPersegi {Cukup Headernya saja} Algoritma: input(bil) for i  1 to bil do HitungLuasPersegi {memanggil prosedur} endfor
  • 24.
    Example of CallingProcedure (Pascal) 1 2 3 4 5 6 7 8 9 10 11 12 13 program PanggilHitungLuasPersegi; uses crt; var bil:integer; {Prosedur HitungLuasPersegi kamu diletakkan di sini} begin write(‘Masukan bilangan = ‘);readln(bil); for i  1 to bil do HitungLuasPersegi; {memanggil prosedur} {Baris penutup jangan sampai lupa!!!} end.
  • 25.
  • 26.
    GlobalVariable Varible that wasknown by entire program or algorithm. This variable was declared in main program or main algorithm.
  • 27.
    LocalVariable Varible that wasknown only by its owner. This variable was declared inside procedure or function.
  • 28.
    Local Variable (AlgorithmNotation) Procedure NamaProsedur (Parameter jika ada) {I.S.: Keadaan awal sebelum prosedur dijalankan} {F.S.: Keadaan akhir sesudah prosedur dijalankan} Kamus: {Identifier lokal diletakkan di sini} Algoritma: {Badan Prosedur, Berisi instruksi} EndProcedure FORMAL PARAMETER
  • 29.
    Global Variable (AlgorithmNotation) Algoritma judul_algoritma {I.S.: diisi keadaan yang terjadi di awal algoritma} {F.S.: diisi keadaan yang terjadi di akhir algoritma} Kamus/Deklarasi: {Identifier global diletakkan di sini} Algoritma/Deskripsi: {diisi dengan input, proses, dan output}
  • 30.
    Local and GlobalVariable (Pascal Notation) program nama_program; var {identifier global di sini} procedure nama_prosedur (parameter jika ada); var {identifier lokal di sini} begin end; begin end.
  • 31.
  • 32.
    WhatisParameter Variable that allowus to have more than just ordinary communication to procedure or function.
  • 33.
    TypesofParameter • Input Parameter •Output Parameter • Input/Output Parameter : means parameter by value : means parameter by reference
  • 34.
  • 35.
    Input Parameter (AlgorithmNotation) Procedure NamaProsedur (Input NamaVariabel:TipeData) {I.S.: Keadaan awal sebelum prosedur dijalankan} {F.S.: Keadaan akhir sesudah prosedur dijalankan} Kamus: {Identifier lokal diletakkan di sini} Algoritma: {Badan Prosedur, Berisi instruksi} EndProcedure
  • 36.
    Calling Input Parameter(Algorithm Notation) Algoritma NamaProsedur {I.S.: Keadaan awal sebelum algoritma dijalankan} {F.S.: Keadaan akhir sesudah algoritma dijalankan} Kamus: {Identifier global diletakkan di sini} Procedure NamaProsedur (Input NamaVariabel:TipeData) Algoritma: NamaProsedur(NamaVariabel) {pemanggilan prosedur} EndProcedure ACTUAL PARAMETER
  • 37.
    Input Parameter (PascalNotation) program nama_program; var {identifier global di sini} procedure nama_prosedur (variabel:tipedata); var {identifier lokal di sini} begin end; Begin nama_prosedur(variabel);{pemanggilan prosedur} end.
  • 39.
    Example of InputParameter (Algorithm) 1 2 3 4 5 6 7 8 9 10 11 12 Procedure Persegi(Input sisi:integer) {I.S: Menerima input berupa sisi} {F.S: Menampilkan luas dan keliling persegi} Kamus: luas,keliling:integer Algoritma: luas  sisi * sisi keliling  4 * sisi output(luas,keliling) EndProcedure
  • 40.
    Example of CallingInput Parameter (Algorithm) 1 2 3 4 5 6 7 8 9 10 11 Algoritma PanggilHitungLuasPersegi {I.S: Diinputkan sisi oleh pengguna} {F.S: Memanggil prosedur persegi} Kamus: sisi:integer procedure Persegi(Input sisi:integer) Algoritma: input(sisi) Persegi(sisi)
  • 41.
    Example of InputParameter (Pascal) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 program HitungPersegi; uses crt; var sisi:integer; procedure persegi(sisi:integer); var luas,keliling:integer; begin luas := sisi * sisi; keliling := 4 * sisi; writeln(‘Luas Persegi : ‘,luas); {bersambung}
  • 42.
    Example of InputParameter (Pascal) 15 16 17 18 19 20 21 22 23 24 writeln(‘Keliling persegi : ‘,keliling); end; begin write(‘Masukan sisi persegi= ‘);readln(sisi); persegi(sisi); writeln(); write(‘Tekan sembarang tombol untuk menutup...’); readkey(); end.
  • 43.
  • 44.
    Output Parameter (AlgorithmNotation) Procedure NamaProsedur (Output NamaVariabel:TipeData) {I.S.: Keadaan awal sebelum prosedur dijalankan} {F.S.: Keadaan akhir sesudah prosedur dijalankan} Kamus: {Identifier lokal diletakkan di sini} Algoritma: {Badan Prosedur, Berisi instruksi} EndProcedure
  • 45.
    Calling Output Parameter(Algorithm Notation) Algoritma NamaProsedur {I.S.: Keadaan awal sebelum algoritma dijalankan} {F.S.: Keadaan akhir sesudah algoritma dijalankan} Kamus: {Identifier global diletakkan di sini} Procedure NamaProsedur (Output NamaVariabel:TipeData) Algoritma: NamaProsedur(NamaVariabel) {pemanggilan prosedur} EndProcedure
  • 46.
    Output Parameter (PascalNotation) program nama_program; var {identifier global di sini} procedure nama_prosedur (var variabel:tipedata); var {identifier lokal di sini} begin end; Begin nama_prosedur(variabel);{pemanggilan prosedur} end.
  • 48.
    Example of OutputParameter (Algorithm) 1 2 3 4 5 6 7 8 9 10 11 12 Procedure Persegi(Output luas,keliling:integer) {I.S: Meminta input sisi dari pengguna} {F.S: Mengirimkan nilai luas dan keliling persegi} Kamus: sisi:integer Algoritma: input(sisi) luas  sisi * sisi keliling  4 * sisi EndProcedure
  • 49.
    Example of CallingOutput Parameter (Algorithm) 1 2 3 4 5 6 7 8 9 10 11 Algoritma PanggilHitungLuasPersegi {I.S: Memanggil prosedur persegi} {F.S: Menampilkan nilai dari prosedur persegi} Kamus: luas,keliling:integer Procedure Persegi(Output luas,keliling:integer) Algoritma: Persegi(luas,keliling) output(luas,keliling)
  • 50.
    Example of OutputParameter (Pascal) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 program HitungPersegi; uses crt; var luas,keliling:integer; procedure persegi(var luas,keliling:integer); var sisi:integer; begin write(‘Masukan sisi persegi= ‘);readln(sisi); luas := sisi * sisi; keliling := 4 * sisi; {bersambung}
  • 51.
    Example of OutputParameter (Pascal) 15 16 17 18 19 20 21 22 23 24 end; begin persegi(luas,keliling); writeln(‘Keliling persegi : ‘,keliling); writeln(‘Luas Persegi : ‘,luas); writeln(); write(‘Tekan sembarang tombol untuk menutup...’); readkey(); end.
  • 52.
  • 53.
    Input/Output Parameter (AlgorithmNotation) Procedure NamaProsedur (I/O NamaVariabel:TipeData) {I.S.: Keadaan awal sebelum prosedur dijalankan} {F.S.: Keadaan akhir sesudah prosedur dijalankan} Kamus: {Identifier lokal diletakkan di sini} Algoritma: {Badan Prosedur, Berisi instruksi} EndProcedure
  • 54.
    Calling Input/Output Parameter(Algorithm Notation) Algoritma NamaProsedur {I.S.: Keadaan awal sebelum algoritma dijalankan} {F.S.: Keadaan akhir sesudah algoritma dijalankan} Kamus: {Identifier global diletakkan di sini} Procedure NamaProsedur (I/O NamaVariabel:TipeData) Algoritma: NamaProsedur(NamaVariabel) {pemanggilan prosedur} EndProcedure
  • 55.
    Input/Ouput Parameter (PascalNotation) program nama_program; var {identifier global di sini} procedure nama_prosedur (var variabel:tipedata); var {identifier lokal di sini} begin end; Begin nama_prosedur(variabel);{pemanggilan prosedur} end.
  • 57.
    Example of Input/OutputParameter (Algorithm) 1 2 3 4 5 6 7 8 9 10 11 Procedure Persegi(I/O sisi:integer,Output luas,keliling:integer) {I.S: Menerima input sisi} {F.S: Mengirimkan nilai sisi, luas, dan keliling persegi} Kamus: Algoritma: luas  sisi * sisi keliling  4 * sisi sisi  sisi + 1; {lihat apa yang terjadi} EndProcedure
  • 58.
    Example of CallingOutput Parameter (Algorithm) 1 2 3 4 5 6 7 8 9 10 11 12 Algoritma PanggilHitungLuasPersegi {I.S: Memanggil prosedur persegi} {F.S: Menampilkan nilai dari prosedur persegi} Kamus: sisi,luas,keliling:integer Procedure Persegi(I/O sisi:integer,Output luas,keliling:integer) Algoritma: input(sisi) Persegi(sisi,luas,keliling) output(sisi,luas,keliling) {Berapa nilai sisinya?}
  • 59.
    Example of Input/OutputParameter (Pascal) 1 2 3 4 5 6 7 8 9 10 11 12 program HitungPersegi; uses crt; var luas,keliling:integer; procedure persegi(sisi:integer;var luas,keliling:integer); begin luas := sisi * sisi; keliling := 4 * sisi; sisi := sisi + 1; {Lihat apa yang terjadi} end;
  • 60.
    Example of Input/OutputParameter (Pascal) 13 14 15 16 17 18 19 20 21 22 begin write(‘Masukan sisi persegi= ‘);readln(sisi); persegi(sisi,luas,keliling); writeln(‘Keliling persegi : ‘,keliling); writeln(‘Luas Persegi : ‘,luas); writeln(‘Sisi persegi : ‘,sisi); writeln(); write(‘Tekan sembarang tombol untuk menutup...’); readkey(); end.
  • 61.
  • 62.
    WhatisFunction Instruction block thatwas made specially to do specific job and return a value. Such as: F(x)= 2x+4  it will return 6 for x=1.
  • 63.
    DifferenceBetweenProcedure andFunction Procedure was notmade to return a value (only do specific job) but function was made to return a value (More specific than procedure).
  • 64.
    Format of Function(Algorithm Notation) FUnction NamaFungsi (Parameter jika ada)  tipefungsi {I.S.: Keadaan awal sebelum fungsi dijalankan} {F.S.: Keadaan akhir sesudah fungsi dijalankan} Kamus: {Variabel, konstanta, tipe buatan lokal} Algoritma: {Badan fungsi, Berisi instruksi} return VALUE {tipenya sama dengan tipe fungsi} EndFunction
  • 65.
    Format of Procedure(Pascal Notation) function NamaFungsi (Parameter jika ada):tipefungsi; {Variabel, konstanta, tipe buatan} begin {Badan Fungsi, Berisi instruksi} NamaFungsi := VALUE; (tipenya sama dengan tipe fungsi} end;
  • 67.
    Example of Function(Algorithm) 1 2 3 4 5 6 7 8 9 Function LuasPersegi(Input sisi:integer)  integer {I.S: Menerima input berupa sisi} {F.S: Menampilkan luas dan keliling persegi} Kamus: Algoritma: return sisi * sisi EndFunction
  • 68.
    Example of Function(Algorithm) 1 2 3 4 5 6 7 8 9 10 11 12 Algoritma PanggilLuasPersegi {I.S: Diinputkan sisi oleh pengguna} {F.S: Menampilkan nilai fungsi luas persegi} Kamus: sisi,luas:integer Function LuasPersegi(Input sisi:integer)  integer Algoritma: input(sisi) luas  LuasPersegi(sisi) output(luas)
  • 69.
    Example of Function(Pascal) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 program HitungPersegi; uses crt; var sisi,luas:integer; function LuasPersegi(sisi:integer):integer; begin LuasPersegi := sisi * sisi; end; begin write(‘Masukan sisi persegi= ‘);readln(sisi); luas := LuasPersegi(sisi); {Pemanggilan Function}
  • 70.
    Example of Function(Pascal) 15 16 17 18 19 write(‘Luas persegi : ‘,luas); writeln(); write(‘Tekan sembarang tombol untuk menutup...’); readkey(); end.
  • 71.
    Contact Person: Adam MukharilBachtiar Informatics Engineering UNIKOM Jalan Dipati Ukur Nomor. 112-114 Bandung 40132 Email: adfbipotter@gmail.com Blog: http://adfbipotter.wordpress.com Copyright © Adam Mukharil Bachtiar 2011