KU1072 Subprogram Pascal Flowchart 200915 PDF
KU1072 Subprogram Pascal Flowchart 200915 PDF
KU1072 Subprogram Pascal Flowchart 200915 PDF
Tujuan
Mahasiswa memahami makna dan kegunaan
subprogram dalam bentuk fungsi dan prosedur
Mahasiswa dapat menggunakan notasi fungsi dan
prosedur dengan benar dan menggunakannya dlam
program
Mahasiswa dapat membuat program dengan
menggunakan fungsi dan prosedur
28/09/2015
Mulai
Contoh-1 (1)
Program CetakNama; { Mencetak nama ke layar }
{ KAMUS }
var
str1, str2 : string;
{ ALGORITMA }
begin
str := Maya
output(str)
output(Joko)
str1 := 'Maya';
writeln ('Hello ', str1);
input(str2)
writeln ('Hello ', 'Joko');
readln(str2);
writeln ('Hello ', str2);
end.
28/09/2015
output(str2)
Selesai
KU1072/Pengenalan Teknologi Informasi B
Mulai
Contoh-1 (2)
Program Nama;
var
str1, str2 : string;
DIGANTI
DENGAN
SUBPROGRAM
(PROSEDUR)
str := Maya
CetakHello(str)
begin
str1 = 'Maya';
writeln ('Hello ', str1);
CetakHello(str1);
writeln ('Hello ', 'Joko');
CetakHello('Joko');
readln(str2);
writeln ('Hello ', str1);
CetakHello(str2);
CetakHello(Joko)
input(str2)
CetakHello(str2)
end.
Selesai
28/09/2015
return
28/09/2015
Mulai
str := Maya
CetakHello(str)
CetakHello(Joko)
input(str2)
CetakHello(str2)
Selesai
6
Mulai
Contoh-2 (1)
r1 := 10
L := PI * r1 * r1
output(str2)
X := 10
Fx := x * X
output(fx)
end.
28/09/2015
Selesai
Mulai
Contoh-2 (2)
r1 := 10
DIGANTI
DENGAN
FUNGSI
Program Coba;
const
PI = 3.14;
L := PI *
FxKuadrat(r1)
var
L, r, fx, x : real;
output(str2)
begin
r1 := 10;
L := PI *FxKuadrat(r1);
r1 * r1;
writeln(L);
x := 10;
fx := FxKuadrat(x);
x * x;
writeln(fx);
X := 10
Fx :=
end.
28/09/2015
FxKuadrat(x)
output(fx)
KU1072/Pengenalan Teknologi Informasi B
Selesai
return (a * a)
28/09/2015
10
Subprogram
A set of instructions designed to perform a
frequently used operation within a program
2 (dua) jenis subprogram:
Fungsi
Prosedur
28/09/2015
11
...
Procedure/Function call
[(list-parameter-aktual)]
...
...
return [(return-value)]
Selesai
28/09/2015
12
Contoh Kasus
Buatlah program yang digunakan untuk membaca
masukan nilai besaran arus listrik (I) dan hambatan
(R) dan menghitung serta menampilkan tegangan
listrik (V)
Akan dibahas:
Solusi menggunakan prosedur
Solusi menggunakan fungsi
28/09/2015
13
PROSEDUR
28/09/2015
14
Mulai
Procedure
[(list-parameter-formal)]
...
Procedure call
[(list-parameter-aktual)]
...
...
return
28/09/2015
Selesai
15
Prosedur
Suatu prosedur:
Terdiri atas sederetan instruksi algoritmik seperti
algoritma program umumnya
Memiliki 0 s.d. n parameter input
Memiliki 0 s.d. m parameter output
Jelas initial state: kondisi awal sebelum prosedur
dijalankan
Jelas final state: kondisi akhir yang dicapai setelah
prosedur selesai dijalankan
28/09/2015
16
28/09/2015
17
PROSEDUR
1. Mendefinisikan dan
Merealisasikan Prosedur
28/09/2015
18
Prosedur
Initial state
(I.S.)
28/09/2015
Langkah-langkah algoritmik
dalam prosedur:
Mengubah initial state menjadi
final state
Final State
(F.S.)
19
Parameter input
Parameter output
p1
Langkah-langkah algoritmik
dalam prosedur:
p2
p3
Prosedur
p4
p5
p6
p6
Parameter
input/output
28/09/2015
20
Menuliskan spesifikasi:
Initial State (I.S.): kondisi awal sebelum prosedur dijalankan
termasuk kondisi parameter input (jika ada)
Final State (F.S.): kondisi akhir yang dicapai setelah prosedur selesai
dijalankan termasuk kondisi parameter output (jika ada)
21
List parameter
formal (jika ada)
KAMUS LOKAL
{ List variabel yang dipakai hanya dalam prosedur }
ALGORITMA
NamaProsedur
[(list-parameter-formal)]
{ langkah-langkah algoritmik
dalam prosedur }
Realisasi Prosedur:
Langkah-langkah
algoritmik
return
28/09/2015
22
end;
28/09/2015
23
Parameter output:
V : integer merepresentasikan besarnya tegangan
24
Parameter
input
Parameter
output
KAMUS LOKAL
ALGORITMA
HitungTegangan (I,R,V)
V := I * R
return
28/09/2015
25
HitungTegangan (I,R,V)
V := I * R;
end;
V := I * R
return
28/09/2015
26
PROSEDUR
2. Memanggil Prosedur dalam
Algoritma Program Utama
28/09/2015
27
Mulai
Procedure
[(list-parameter-formal)]
...
Procedure call
[(list-parameter-aktual)]
...
...
return
28/09/2015
Selesai
28
AP/KU1071
29
28/09/2015
30
Mulai
input (arus)
input (hambatan)
KAMUS
arus, hambatan : integer
tegangan : integer
ALGORITMA
{ lihat flowchart }
HitungTegangan
(arus, hambatan, tegangan)
output (tegangan)
Selesai
28/09/2015
31
32
28/09/2015
33
Parameter formal
pada pendefinisian
prosedur
type: integer
I
arus
hambatan
tegangan
28/09/2015
type: integer
type: integer
R
V
34
PROSEDUR
Program Lengkap
28/09/2015
35
procedure NamaProsedur
(list-parameter-formal)
{ Spesifikasi Prosedur}
KAMUS
{ deklarasi variabel,
konstanta, dll.}
ALGORITMA PROGRAM UTAMA
KAMUS LOKAL
{ deklarasi variabel
lokal prosedur, dll.}
ALGORITMA
...
...
...
28/09/2015
36
{ PROGRAM UTAMA }
begin
PEMANGGILAN PROSEDUR
end.
28/09/2015
37
AP/KU1071
39
Mulai
input(A, B)
output(A, B)
Selesai
28/09/2015
40
Tukar(A,B)
temp := A
ALGORITMA
{ lihat flowchart }
A := B
B := temp
return
28/09/2015
41
{ Kamus Lokal }
var
temp : integer;
A dan B: contoh
parameter
input/output
end.
28/09/2015
42
FUNGSI
28/09/2015
43
...
...
return (return value)
...
28/09/2015
Selesai
44
Fungsi
Suatu fungsi:
Sebuah transformasi akibat pemetaan suatu nilai (dari
domain) ke nilai lain (dalam range) sama seperti di
matematika
Domain dinyatakan dalam type parameter input bisa 0
s.d. N parameter input
Range dinyatakan dalam type nilai output harus ada
Realisasi fungsi memanfaatkan nilai parameter input
untuk mendapatkan nilai sesuai type output
28/09/2015
45
Fungsi
Parameter
input
28/09/2015
Langkah-langkah algoritmik
dalam fungsi:
Mentransformasi nilai parameter
input untuk mendapatkan nilai
output
Nilai Output
46
Fungsi
p1
p2
Langkah-langkah algoritmik
dalam prosedur:
p3
Nilai output
p4
Nilai output: HARUS ADA
28/09/2015
47
28/09/2015
48
FUNGSI
1. Mendefinisikan dan
Merealisasikan Fungsi
28/09/2015
49
50
Return-value harus
bertype sama seperti
type-output
return(return-value)
28/09/2015
51
{ KAMUS LOKAL }
{ List variabel yang dipakai hanya dalam fungsi }
{ ALGORITMA }
begin
Realisasi Fungsi
Return-value harus
bertype sama seperti
type-output
52
53
KAMUS LOKAL
-
Parameter
input
ALGORITMA
FTegangan(I,R)
return (I*R)
28/09/2015
54
Tegangan(I,R)
FTegangan := I * R;
end;
28/09/2015
return (I*R)
55
FUNGSI
2. Memanggil fungsi dalam program
utama sebagai bagian dari ekspresi
dalam instruksi dalam algoritma
28/09/2015
56
...
...
return (return value)
...
28/09/2015
Selesai
57
Pemanggilan Fungsi
Fungsi harus dipanggil dalam algoritma program
utama sebagai bagian dari sebuah ekspresi
var := <fungsi-dipanggil-di-sini>
output(<fungsi-dipanggil-di-sini>)
58
28/09/2015
59
Mulai
input (arus)
input (hambatan)
ALGORITMA
{ lihat flowchart }
FTegangan
(arus, hambatan)
output(tegangan)
28/09/2015
Selesai
60
61
28/09/2015
62
Parameter formal
pada pendefinisian
fungsi
type: integer
I
arus
type: integer
hambatan
28/09/2015
63
FUNGSI
Program Lengkap
28/09/2015
64
...
...
...
28/09/2015
65
{ PROGRAM UTAMA }
begin
PEMANGGILAN FUNGSI
end.
28/09/2015
66
Parameter aktual
67
68
28/09/2015
69
input(R)
L :=
Luas (R)
Selesai
28/09/2015
70
return (PI * R * R
28/09/2015
71
72
LATIHAN SOAL
28/09/2015
73
Soal-1a:
Diketahui
fungsi
CiriBilangan
seperti di
samping:
28/09/2015
function CiriBilangan(bil:integer):integer;
{ Menghasilkan: }
{ 0 : jika bil adalah 0 }
{ 1 : jika bil adalah positif }
{ -1 : jika bil adalah negatif }
{ Kamus Lokal }
var
hasil : integer;
{ Algoritma }
begin
if (bil = 0) then
hasil := 0
else if (bil > 0) then
hasil := 1
else { bil < 0 }
hasil := -1;
CiriBilangan := hasil;
end;
KU1072/Pengenalan Teknologi Informasi B
74
Soal-1b:
Apakah hasil dari potongan program berikut?
X := 0; { X : integer }
writeln (CiriBilangan(X));
Writeln(CiriBilangan(1000));
{ bil, c : integer }
bil := -222;
c := CiriBilangan(bil);
writeln(c);
28/09/2015
-1
75
Spesifikasi :
Fungsi KarakterToInteger :
Domain : x : character ['0'..'9'] )
Range : integer [0..9]
Proses : analisis kasus terhadap x, untuk setiap harga x
diasosiasikan integer yang sesuai.
28/09/2015
76
28/09/2015
77
78
Soal-5
Buatlah sebuah prosedur yang digunakan untuk:
Membaca sejumlah N bilangan integer dari keyboard N
merupakan parameter input untuk prosedur diasumsikan N > 0
Menghasilkan penjumlahan seluruh bilangan yang dimasukkan
menjadi parameter output
28/09/2015
79
28/09/2015
80
81
82
{ PROGRAM UTAMA }
begin
readln(a1, b1, c1);
writeln('Sebelum ditukar');
writeln('a = ', a1, '; b = ', b1, '; c = ', c1);
Tukar(a1,b1);
Tukar(a1,c1);
writeln('Setelah ditukar');
writeln('a = ', a1, '; b = ', b1, '; c = ', c1);
end.
28/09/2015
83
84