13. 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
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;
16.
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;
20. Format of Calling Procedure (Algorithm)
NamaProsedur
Atau
NamaProsedur(parameter jika ada)
21. Format of Calling Procedure (Algorithm)
NamaProsedur;
Atau
NamaProsedur(parameter jika ada);
22.
23. 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
24. 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.
28. 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
29. 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}
30. 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.
35. 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
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 (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.
38.
39. 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
40. 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)
41. 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}
42. 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.
44. 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
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 (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.
47.
48. 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
49. 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)
50. 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}
51. 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.
53. 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
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 (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.
56.
57. 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
58. 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?}
59. 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;
60. 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.
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;
66.
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.