Adam Mukharil Bachtiar
English Class
Informatics Engineering 2011
Algorithms and Programming
Steps of the Day
Let’s Start
Modular
Programming
Procedure
Function
Modular Programming
Backg
round
of
Modular
Pr
ogr
ammin
g
Make a program to solve all problems in your
Thinkin
g
in Modu
lar
Pr
ogr
ammin
g
Breakdown
a big problem
into
several small
problems
. Small Problems can be
Thinking in Modular
Programming
Main Program
Sub Pr
ogr
am
1
Sub Pr
ogr
am
2
Sub Pr
ogr
am
Wha
t
is Modular
Pr
ogr
ammin
g
Bene
fits of Modular
Pr
ogr
ammin
g
•
Eliminate
repetition of same syntax
in program or algorithm.
•
Can find
syntax error
easily.
Types of Looping Structure
•
Pr
ocedur
e
•
Functi
Procedure
Wha
t
is Pr
ocedur
e
Instruction block
that was made specially to
Ex
ample
of Pr
ocedur
e
(Slee
p Pr
ocedur
e)
•
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)
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}
Format of Procedure (Pascal Notation)
procedure NamaProsedur
(Parameter jika ada)
;
{Variabel, konstanta, tipe buatan}
begin
{Badan Prosedur, Berisi instruksi}
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)
Example of Procedure (Pascal)
1 2 3 4 5 6 7 8 9 10 11 12 13 procedure HitungLuasPersegi; var sisi:integer; luas:integer; beginwrite(‘Masukan sisi : ‘);readln(sisi);
luas sisi * sisi;
writeln(‘Luas Persegi = ‘,luas);
write(‘Tekan sembarang tombol untuk keluar...’);
readkey();
Call the Pr
ocedur
e
Format of Calling Procedure (Algorithm)
NamaProsedur
Atau
Format of Calling Procedure (Algorithm)
NamaProsedur;
Atau
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}
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!!!}
T
yp
es of V
ariable
•
Global Variable
Global
V
ariable
Loc
al
V
ariable
Varible that
was known only by its owner
. This
variable was declared inside procedure or
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
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:
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
Wha
t
is P
ar
ame
ter
Variable that allow us to have
more than just
ordinary communication
to procedure or
T
yp
es of P
ar
ame
ter
•
Input Parameter
•
Output Parameter
•
Input/Output Paramete
r
: means parameter by value
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}
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
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}
Example of Input Parameter (Algorithm)
1 2 3 4 5 6 7 8 9 10 11 12Procedure 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)
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)
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; beginluas := sisi * sisi;
keliling := 4 * sisi;
Example of Input Parameter (Pascal)
15 16 17 18 19 20 21 22 23 24writeln(‘Keliling persegi : ‘,keliling);
end;
begin
write(‘Masukan sisi persegi= ‘);readln(sisi);
persegi(sisi);
writeln();
write(‘Tekan sembarang tombol untuk menutup...’);
readkey();
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}
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}
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}
Example of Output Parameter (Algorithm)
1 2 3 4 5 6 7 8 9 10 11 12Procedure 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
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)
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;
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();
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}
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}
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}
Example of Input/Output Parameter (Algorithm)
1 2 3 4 5 6 7 8 9 10 11Procedure 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}
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)
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}
Example of Input/Output Parameter (Pascal)
13 14 15 16 17 18 19 20 21 22 beginwrite(‘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();
Function
Wha
t
is F
unction
Instruction block
that was made specially to
do
specific job
and
return a value
. Such as:
Diff
er
ence Be
tw
een
Pr
ocedur
e
and
Functio
n
Procedure
was not made to return a value
(only
do specific job) but function
was made to return
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}
Format of Procedure (Pascal Notation)
function NamaFungsi (Parameter jika ada):tipefungsi;
{Variabel, konstanta, tipe buatan}
begin
{Badan Fungsi, Berisi instruksi}
Example of Function (Algorithm)
1 2 3 4 5 6 7 8 9Function LuasPersegi(Input sisi:integer) integer
{I.S: Menerima input berupa sisi}
{F.S: Menampilkan luas dan keliling persegi}
Kamus:
Algoritma:
return sisi * sisi
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)
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; beginLuasPersegi := sisi * sisi;
end;
begin
write(‘Masukan sisi persegi= ‘);readln(sisi);
Example of Function (Pascal)
15
16
17
18
19
write(‘Luas persegi : ‘,luas);
writeln();
write(‘Tekan sembarang tombol untuk menutup...’);
readkey();
Contact Person:
Adam Mukharil Bachtiar Informatics Engineering UNIKOM Jalan Dipati Ukur Nomor. 112-114 Bandung 40132 Email: [email protected]
Blog: http://adfbipotter.wordpress.com