KU1072 Subprogram Pascal Flowchart 200915 PDF

Anda mungkin juga menyukai

Anda di halaman 1dari 84

Subprogram

(dalam Bahasa Pascal + Flowchart)


Tim Penyusun Materi PTI-B

KU1072/Pengenalan Teknologi Informasi B


Tahap Tahun Pertama Bersama
Institut Teknologi Bandung

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

KU1072/Pengenalan Teknologi Informasi B

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

KU1072/Pengenalan Teknologi Informasi B

Contoh-1 (3) Procedure CetakHello


procedure CetakHello (input str : string)
{ Mencetak str ke layar }
KAMUS LOKAL
ALGORITMA
CetakHello (str)

output (Hello , str)

return

28/09/2015

KU1072/Pengenalan Teknologi Informasi B

Contoh-1 (4) - Pascal


Program CetakNama; { Mencetak nama ke layar }
{ KAMUS }
var
str1, str2 : string;
procedure CetakHello (str : string);
{ Mencetak str ke layar }
begin
writeln ('Hello ', str);
end;
{ ALGORITMA/PROGRAM UTAMA }
begin
str1 = 'Maya';
CetakHello (str1);
CetakHello ('Joko');
readln(str2);
CetakHello (str2);
end.
28/09/2015

KU1072/Pengenalan Teknologi Informasi B

Mulai

str := Maya

CetakHello(str)

CetakHello(Joko)

input(str2)

CetakHello(str2)

Selesai
6

Mulai

Contoh-2 (1)

r1 := 10

Program Coba; { Test function }


{ KAMUS }
const
PI = 3.14;
var
L, r, fx, x : real;
{ ALGORITMA }
begin
r1 := 10;
L := PI * r1 * r1;
writeln(L);
x := 10;
fx := x * x;
writeln(fx);

L := PI * r1 * r1

output(str2)
X := 10

Fx := x * X

output(fx)

end.
28/09/2015

KU1072/Pengenalan Teknologi Informasi B

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

Contoh-2 (3) Function FxKuadrat


function FxKuadrat (a : integer) integer
{ Mencetak str ke layar }
KAMUS
ALGORITMA
FxKuadrat(a)

return (a * a)

28/09/2015

KU1072/Pengenalan Teknologi Informasi B

Kode yang berulang


Semakin besar program, semakin banyak bagian kode
yang berulang
Sangat tidak efisien jika bagian kode yang sama/serupa
diketik berulang-ulang (bahkan kalau pun di-copy-paste)
Di samping itu, dalam banyak persoalan, ada berbagai
rumus/formula yang berulang-ulang dipakai dalam satu
program
Bagaimana jika ada cara supaya bagian kode tersebut
tidak perlu diketik berulang-ulang, tapi tetap dapat
digunakan berkali-kali dalam program yang sama
28/09/2015

KU1072/Pengenalan Teknologi Informasi B

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

KU1072/Pengenalan Teknologi Informasi B

11

Flowchart Symbol (Umum)


Pemanggilan subprogram dalam
algoritma program utama
Mulai

Flowchart terpisah untuk


pendefinisian dan realisasi
subprogram
Procedure/Function
[(list-parameter-formal)]

...
Procedure/Function call
[(list-parameter-aktual)]

...

...

return [(return-value)]

Selesai
28/09/2015

KU1072/Pengenalan Teknologi Informasi B

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

KU1072/Pengenalan Teknologi Informasi B

13

PROSEDUR

28/09/2015

KU1072/Pengenalan Teknologi Informasi B

14

Flowchart untuk Prosedur


Pemanggilan prosedur dalam
algoritma program utama

Flowchart terpisah untuk


pendefinisian dan realisasi
prosedur

Mulai
Procedure
[(list-parameter-formal)]

...
Procedure call
[(list-parameter-aktual)]

...

...

return

28/09/2015

Selesai

KU1072/Pengenalan Teknologi Informasi B

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

KU1072/Pengenalan Teknologi Informasi B

16

Tahapan Memanfaatkan Prosedur


1. Mendefinisikan dan merealisasikan
prosedur
2. Memanggil prosedur dalam program
utama

28/09/2015

KU1072/Pengenalan Teknologi Informasi B

17

PROSEDUR
1. Mendefinisikan dan
Merealisasikan Prosedur

28/09/2015

KU1072/Pengenalan Teknologi Informasi B

18

Prosedur

Initial state
(I.S.)

28/09/2015

Langkah-langkah algoritmik
dalam prosedur:
Mengubah initial state menjadi
final state

KU1072/Pengenalan Teknologi Informasi B

Final State
(F.S.)

19

Parameter input

Parameter output

p1
Langkah-langkah algoritmik
dalam prosedur:
p2

p3

Prosedur

Nilai p1, p2, p3, dan p6


dimanfaatkan dalam proses di
prosedur untuk mendapatkan
nilai p4, p5, dan p6.
p6 mungkin mengalami
perubahan nilai.

p4

p5

p6
p6
Parameter
input/output
28/09/2015

KU1072/Pengenalan Teknologi Informasi B

20

Definisi & Realisasi Prosedur (1)


Memberikan nama prosedur
Mendeklarasikan parameter formal (jika ada)
Jenis parameter: parameter input, input/output, output
Deklarasi setiap parameter: nama parameter dan type-nya

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)

Membuat realisasi dari prosedur


Langkah-langkah algoritmik prosedur: deretan instruksi pemberian
harga, input, output, analisis kasus, pengulangan, pemanggilan
fungsi dan prosedur lain
28/09/2015

KU1072/Pengenalan Teknologi Informasi B

21

Definisi & Realisasi Prosedur (2) Memberikan nama


Flowchart
procedure NamaProsedur ([list-parameter-formal])
{ Spesifikasi: }
{ I.S.: .... }
{ F.S.: .... }

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

KU1072/Pengenalan Teknologi Informasi B

22

Definisi & Realisasi Prosedur (3) Pascal


procedure NamaProsedur ([list-parameter-formal]);
{ Spesifikasi: }
List parameter
Memberikan
nama
{ I.S.: .... }
formal (jika ada)
{ F.S.: .... }
{ KAMUS LOKAL }
{ List variabel yang dipakai hanya dalam prosedur }
{ ALGORITMA }
begin
{ langkah-langkah algoritmik dalam prosedur }
Realisasi Prosedur:
Langkah-langkah
algoritmik

end;

28/09/2015

KU1072/Pengenalan Teknologi Informasi B

23

Contoh Kasus (1)


Diasumsikan dibutuhkan prosedur untuk menghitung
tegangan listrik (V) dengan masukan besarnya arus (I)
dan hambatan (R)
Definisi prosedur:
Nama : HitungTegangan
Parameter input :
I : integer merepresentasikan besarnya arus listrik
R : integer merepresentasikan besarnya hambatan

Parameter output:
V : integer merepresentasikan besarnya tegangan

Spesifikasi: Menghitung V dengan rumus V = I * R


I.S. : I dan R terdefinisi
F.S.: V terdefinisi melalui perhitungan V = I * R
28/09/2015

KU1072/Pengenalan Teknologi Informasi B

24

Contoh Kasus (2) - Flowchart


procedure HitungTegangan (I : integer; R : integer;
var V : integer)
{ Spesifikasi: }
{ I.S.: I dan R terdefinisi }
{ F.S.: V terdefinisi melalui perhitungan V = I * R }

Parameter
input
Parameter
output

KAMUS LOKAL
ALGORITMA

HitungTegangan (I,R,V)

V := I * R

return
28/09/2015

KU1072/Pengenalan Teknologi Informasi B

25

Contoh Kasus (3) - Pascal


procedure
procedure HitungTegangan
HitungTegangan (I
(I :: integer;
integer; RR :: integer;
integer;
var
var VV :: integer)
integer);
{{ Spesifikasi:
Spesifikasi: }}
{{ I.S.:
I.S.: II dan
dan RR terdefinisi
terdefinisi }}
{{ F.S.:
F.S.: VV terdefinisi
terdefinisi melalui
melalui perhitungan
perhitungan VV == II ** RR }}
KAMUS
LOKAL
{ KAMUS
LOKAL }
ALGORITMA
{ ALGORITMA }
begin

HitungTegangan (I,R,V)

V := I * R;
end;

V := I * R

return
28/09/2015

KU1072/Pengenalan Teknologi Informasi B

26

PROSEDUR
2. Memanggil Prosedur dalam
Algoritma Program Utama

28/09/2015

KU1072/Pengenalan Teknologi Informasi B

27

Flowchart untuk Prosedur


Pemanggilan prosedur dalam
algoritma program utama

Flowchart terpisah untuk


pendefinisian dan realisasi
prosedur

Mulai
Procedure
[(list-parameter-formal)]

...
Procedure call
[(list-parameter-aktual)]

...

...

return

28/09/2015

Selesai

KU1072/Pengenalan Teknologi Informasi B

28

Pemanggilan (Call) Prosedur


Menuliskan nama prosedur sebagai salah satu
instruksi dalam algoritma program utama
Variabel/harga yang dituliskan pada parameter
prosedur dalam pemanggilan prosedur di program
utama parameter aktual

AP/KU1071

29

Contoh Kasus (1) Pemanggilan Prosedur


Alur program utama:
Membaca nilai besarnya arus dan hambatan dari keyboard
Menghitung tegangan listrik dan menyimpan nilainya
dalam variabel tegangan memanfaatkan prosedur
HitungTegangan
Menampilkan tegangan ke layar

28/09/2015

KU1072/Pengenalan Teknologi Informasi B

30

Contoh Kasus (2) Pemanggilan Prosedur


(Flowchart)
Program HitungTeganganListrik
{ Menghitung tegangan listrik
berdasarkan masukan arus listrik
dan hambatan }

Mulai

input (arus)
input (hambatan)

KAMUS
arus, hambatan : integer
tegangan : integer
ALGORITMA
{ lihat flowchart }

HitungTegangan
(arus, hambatan, tegangan)

output (tegangan)

Selesai
28/09/2015

KU1072/Pengenalan Teknologi Informasi B

31

Contoh Kasus (3) Pemanggilan


Prosedur (Pascal)
Program HitungTeganganListrik;
{ Menghitung tegangan listrik berdasarkan masukan arus listrik
dan hambatan }
{ KAMUS }
var
arus, hambatan : integer;
tegangan : integer;
... { definisi & realisasi prosedur akan ditulis di sini }
{ ALGORITMA }
begin
readln(arus); readln(hambatan);
HitungTegangan(arus, hambatan, tegangan);
writeln(tegangan);
end.
28/09/2015

KU1072/Pengenalan Teknologi Informasi B

32

Asosiasi Parameter Formal


Paramater Aktual (1)
Setiap parameter aktual harus berasosiasi dengan
tepat satu parameter formal
Parameter aktual berasosiasi dengan paramater formal
yang posisi/urutannya sama
Type parameter aktual = type parameter formal yang
berasosiasi dengannya

28/09/2015

KU1072/Pengenalan Teknologi Informasi B

33

Asosiasi Parameter Formal


Paramater Aktual (2)
Parameter aktual
pada pemanggilan
prosedur

Parameter formal
pada pendefinisian
prosedur
type: integer
I

arus
hambatan
tegangan

28/09/2015

type: integer
type: integer

KU1072/Pengenalan Teknologi Informasi B

R
V

34

PROSEDUR
Program Lengkap

28/09/2015

KU1072/Pengenalan Teknologi Informasi B

35

Program Lengkap (Flowchart)


Program JudulProgram
{ Spesifikasi Program }

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

KU1072/Pengenalan Teknologi Informasi B

36

Kode Program Lengkap (Pascal)


Program JudulProgram;
{ Spesifikasi Program }
{ KAMUS }

DEKLARASI & REALISASI PROSEDUR

{ PROGRAM UTAMA }
begin
PEMANGGILAN PROSEDUR
end.
28/09/2015

KU1072/Pengenalan Teknologi Informasi B

37

Contoh Kasus (Pascal) Kode Lengkap


Program HitungTeganganListrik;
{ Menghitung tegangan listrik berdasarkan masukan arus listrik dan
hambatan }
{ KAMUS }
var
arus, hambatan : integer;
Parameter formal
tegangan : integer;
procedure HitungTegangan (I : integer; R : integer;
var V : integer);
{ I.S.: I dan R terdefinisi }
{ F.S.: V terdefinisi melalui perhitungan V = I * R }
{ ALGORITMA }
begin
V := I * R;
end;
{ ALGORITMA PROGRAM UTAMA }
begin
Parameter aktual
readln(arus); readln(hambatan);
HitungTegangan(arus, hambatan, tegangan);
writeln(tegangan);
KU1072/Pengenalan Teknologi Informasi B
38
end.28/09/2015

Contoh 2: Menukar 2 Bilangan


Dibaca 2 nilai integer dari keyboard, misalnya A dan B
Tukar nilai A dan B
Tuliskan nilai A dan B yang baru ke layar
Buatlah prosedur untuk menukar nilai 2 integer

AP/KU1071

39

Contoh-2: Flowchart Program Utama


Program Tukar2Bilangan
{ Menerima masukan 2 integer dan
menukar keduanya }
KAMUS
A, B : integer

Mulai

input(A, B)

ALGORITMA PROGRAM UTAMA


{ lihat flowchart }
Tukar(A,B)

output(A, B)

Selesai
28/09/2015

KU1072/Pengenalan Teknologi Informasi B

40

Contoh-2: Flowchart Prosedur Tukar


procedure Tukar (var A, B : integer)
{ I.S.: A, B terdefinisi }
{ F.S.: Nilai A, B ditukar }
KAMUS LOKAL
temp : integer

Tukar(A,B)

temp := A

ALGORITMA
{ lihat flowchart }
A := B

B := temp

return
28/09/2015

KU1072/Pengenalan Teknologi Informasi B

41

Contoh-2: Program Lengkap Pascal


Program Tukar2Bilangan;
Tukar(var A, B : integer);
{ Menerima masukan 2 integer procedure
dan
{ I.S.: A, B terdefinisi
menukar keduanya }
F.S.: nilai A dan B ditukar }
{ KAMUS }
var
A, B : integer;

{ Kamus Lokal }
var
temp : integer;

{ procedure Tukar dituliskan di sini }


{ Algoritma }
{ ALGORITMA PROGRAM UTAMA } begin
temp := A;
begin
A := b;
readln(A); readln(B);
B := temp;
Tukar(A,B);
writeln(A); writeln(B); end;

A dan B: contoh
parameter
input/output

end.
28/09/2015

KU1072/Pengenalan Teknologi Informasi B

42

FUNGSI

28/09/2015

KU1072/Pengenalan Teknologi Informasi B

43

Flowchart untuk Prosedur


Pemanggilan fungsi dalam
algoritma program utama
Mulai

...

Flowchart terpisah untuk


pendefinisian dan realisasi
fungsi
Function
[(list-parameter-formal)]

Ekspresi memanfaatkan function


Function
[(list-parameter-aktual)]

...
return (return value)

...
28/09/2015

Selesai

KU1072/Pengenalan Teknologi Informasi B

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

KU1072/Pengenalan Teknologi Informasi B

45

Fungsi

Parameter
input

28/09/2015

Langkah-langkah algoritmik
dalam fungsi:
Mentransformasi nilai parameter
input untuk mendapatkan nilai
output

KU1072/Pengenalan Teknologi Informasi B

Nilai Output

46

Parameter input: boleh


tidak ada

Fungsi

p1

p2

Langkah-langkah algoritmik
dalam prosedur:

p3

Mentransformasi nilai p1, p2,


p3, p4 untuk menghasilkan
nilai output

Nilai output

p4
Nilai output: HARUS ADA
28/09/2015

KU1072/Pengenalan Teknologi Informasi B

47

Tahapan Memanfaatkan Fungsi


1. Mendefinisikan dan merealisasikan
fungsi
2. Memanggil fungsi dalam program
utama sebagai bagian dari ekspresi
dalam instruksi dalam algoritma

28/09/2015

KU1072/Pengenalan Teknologi Informasi B

48

FUNGSI
1. Mendefinisikan dan
Merealisasikan Fungsi

28/09/2015

KU1072/Pengenalan Teknologi Informasi B

49

Definisi & Realisasi Fungsi (1)


Memberikan nama fungsi
Mendeklarasikan parameter formal input (jika ada)
Deklarasi setiap parameter: nama parameter dan type-nya

Mendeklarasikan type nilai output (harus ada)


Menuliskan spesifikasi:
Menghasilkan nilai output seperti apa berdasarkan nilai parameter
input

Membuat realisasi dari fungsi


Langkah-langkah algoritmik fungsi: deretan instruksi pemberian
harga, analisis kasus, pengulangan, pemanggilan fungsi dan
prosedur lain yang dibutuhkan untuk mentransformasi input
menjadi nilai output
Harus mengembalikan (return) suatu nilai (value) yang bertype
sama seperti type nilai output
28/09/2015

KU1072/Pengenalan Teknologi Informasi B

50

Definisi & Realisasi Fungsi (2) Memberikan nama


Flowchart
function NamaFungsi ([list-parameter-input]) type-output
{ Menghasilkan ... }
List parameter input
Type nilai output
formal (jika ada)
KAMUS LOKAL
{ List variabel yang dipakai hanya dalam fungsi }
ALGORITMA
NamaFungsi
[(list-parameter-formal)]
Realisasi Fungsi
{ langkah-langkah transformasi input
menjadi nilai output }

Return-value harus
bertype sama seperti
type-output

return(return-value)
28/09/2015

KU1072/Pengenalan Teknologi Informasi B

51

Definisi & Realisasi Fungsi (3) Memberikan nama


Pascal
function NamaFungsi ([list-parameter-formal]) : type-output;
{ Menghasilkan ... }
List parameter input
formal (jika ada)

Type nilai output

{ KAMUS LOKAL }
{ List variabel yang dipakai hanya dalam fungsi }
{ ALGORITMA }
begin

Realisasi Fungsi

{ langkah-langkah transformasi input menjadi output}


NamaFungsi := return-value;
end;
28/09/2015

Return-value harus
bertype sama seperti
type-output

Cara return di Pascal


KU1072/Pengenalan Teknologi Informasi B

52

Contoh Kasus (1)


Diasumsikan dibutuhkan fungsi untuk menghitung
tegangan listrik dengan input besarnya arus (I) dan
hambatan (R)
Definisi fungsi:
Nama : FTegangan
Parameter input :
I : integer merepresentasikan besarnya arus listrik
R : integer merepresentasikan besarnya hambatan

Type output: integer


Spesifikasi: Menghasilkan nilai tegangan berdasarkan nilai I
dan R, yaitu I * R
28/09/2015

KU1072/Pengenalan Teknologi Informasi B

53

Contoh Kasus (2) - Flowchart


function FTegangan (I : integer; R : integer) integer
{ Menghasilkan tegangan dari perkalian I dan R }
Type-output

KAMUS LOKAL
-

Parameter
input

ALGORITMA
FTegangan(I,R)

return (I*R)

28/09/2015

KU1072/Pengenalan Teknologi Informasi B

54

Contoh Kasus (3) - Pascal


function
function Tegangan
FTegangan(I(I: :integer;
integer;R R: :integer)
integer): integer
integer
{{ Menghasilkan
Menghasilkan tegangan
tegangan dari
dari perkalian
perkalian II dan
dan RR }}
KAMUS
LOKAL
{ KAMUS
LOKAL }
ALGORITMA
{ ALGORITMA }
begin

Tegangan(I,R)

FTegangan := I * R;
end;

28/09/2015

return (I*R)

KU1072/Pengenalan Teknologi Informasi B

55

FUNGSI
2. Memanggil fungsi dalam program
utama sebagai bagian dari ekspresi
dalam instruksi dalam algoritma

28/09/2015

KU1072/Pengenalan Teknologi Informasi B

56

Flowchart untuk Fungsi


Pemanggilan fungsi dalam
algoritma program utama
Mulai

...

Flowchart terpisah untuk


pendefinisian dan realisasi
fungsi
Function
[(list-parameter-formal)]

Ekspresi memanfaatkan function


Function
[(list-parameter-aktual)]

...
return (return value)

...
28/09/2015

Selesai

KU1072/Pengenalan Teknologi Informasi B

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>)

Variabel/harga yang dituliskan pada parameter input


fungsi dalam pemanggilan fungsi di program utama
parameter aktual
AP/KU1071

58

Contoh Kasus (1) Pemanggilan Fungsi


Alur program utama:
Membaca nilai besarnya arus dan hambatan dari keyboard
Menampung hasil perhitungan nilai tegangan dengan
memanfaatkan fungsi FTegangan dalam variabel tegangan
Menuliskan ke layar nilai tegangan

28/09/2015

KU1072/Pengenalan Teknologi Informasi B

59

Contoh Kasus (2) Pemanggilan Fungsi


(Flowchart)
Program HitungTeganganListrik
{ Menghitung tegangan listrik
berdasarkan masukan arus listrik
dan hambatan }
KAMUS

Mulai

input (arus)
input (hambatan)

arus, hambatan : integer


tegangan : integer
tegangan:=

ALGORITMA
{ lihat flowchart }

FTegangan
(arus, hambatan)

output(tegangan)

28/09/2015

KU1072/Pengenalan Teknologi Informasi B

Selesai

60

Contoh Kasus (3) Pemanggilan


Prosedur (Pascal)
Program HitungTeganganListrik;
{ Menghitung tegangan listrik berdasarkan masukan arus listrik
dan hambatan }
{ KAMUS }
var
arus, hambatan : integer;
tegangan : integer
... { definisi & realisasi fungsi akan ditulis di sini }
{ ALGORITMA }
begin
readln(arus); readln(hambatan);
tegangan := Ftegangan(arus, hambatan);
writeln(tegangan);
end.
28/09/2015

KU1072/Pengenalan Teknologi Informasi B

61

Asosiasi Parameter Formal


Paramater Aktual (1)
Setiap parameter aktual harus berasosiasi dengan
tepat satu parameter formal
Parameter aktual berasosiasi dengan paramater formal
yang posisi/urutannya sama
Type parameter aktual = type parameter formal yang
berasosiasi dengannya
Sama seperti di prosedur

28/09/2015

KU1072/Pengenalan Teknologi Informasi B

62

Asosiasi Parameter Formal


Paramater Aktual (2)
Parameter aktual
pada pemanggilan
fungsi

Parameter formal
pada pendefinisian
fungsi
type: integer
I

arus
type: integer

hambatan

28/09/2015

KU1072/Pengenalan Teknologi Informasi B

63

FUNGSI
Program Lengkap

28/09/2015

KU1072/Pengenalan Teknologi Informasi B

64

Program Lengkap (Flowchart)


Program JudulProgram
{ Spesifikasi Program }
KAMUS
{ deklarasi variabel,
konstanta, dll.}
ALGORITMA PROGRAM UTAMA

...

function NamaFungsi (listparameter-formal) typeoutput


{ Spesifikasi Prosedur}
KAMUS LOKAL
{ deklarasi variabel
lokal fungsi, dll.}
ALGORITMA

...

...
28/09/2015

KU1072/Pengenalan Teknologi Informasi B

65

Kode Program Lengkap (Pascal)


Program JudulProgram;
{ Spesifikasi Program }
{ KAMUS }

DEKLARASI & REALISASI FUNGSI

{ PROGRAM UTAMA }
begin
PEMANGGILAN FUNGSI
end.
28/09/2015

KU1072/Pengenalan Teknologi Informasi B

66

Contoh Kasus (Pascal) Kode Lengkap


Program HitungTeganganListrik;
{ Menghitung tegangan listrik berdasarkan masukan arus listrik dan
hambatan }
{ KAMUS }
var
arus, hambatan : integer;
Parameter formal
tegangan : integer;
function FTegangan (I : integer; R : integer) : integer;
{ Menghasilkan tegangan sebagai perkalian I dan R }
{ ALGORITMA }
begin
V := I * R;
end;
{ ALGORITMA PROGRAM UTAMA }
begin
readln(arus); readln(hambatan);
tegangan := FTegangan(arus, hambatan);
writeln(tegangan);
KU1072/Pengenalan Teknologi Informasi B
end.28/09/2015

Parameter aktual

67

Contoh 2: Menukar 2 Bilangan


Dibaca 2 nilai integer dari keyboard, misalnya A dan B
Tukar nilai A dan B
Tuliskan nilai A dan B yang baru ke layar
Apakah prosedur Tukar bisa dibuat menjadi fungsi?
TIDAK BISA, karena
A dan B harus jadi input sekaligus output di fungsi suatu
parameter hanya bisa menjadi input
Akan ada 2 nilai keluaran fungsi hanya memberikan 1
jenis keluaran [sejauh ini]
AP/KU1071

68

Contoh-3: Luas Lingkaran


Buatlah program yang menerima masukan buah nilai
jari-jari lingkaran (bilangan riil), misalnya R, dan
menuliskan luas lingkaran ke layar
Perhitungan luas lingkaran dibuat menjadi fungsi

28/09/2015

KU1072/Pengenalan Teknologi Informasi B

69

Contoh-3: Flowchart Program Utama


Mulai
Program LuasLingkaran
{ Menerima masukan nilai jarijari dan menuliskan ke layar luas
lingkaran }
KAMUS
const PI : real = 3.14
R : real
L : real

input(R)

L :=

Luas (R)

ALGORITMA PROGRAM UTAMA


{ lihat flowchart }
output(L)

Selesai

28/09/2015

KU1072/Pengenalan Teknologi Informasi B

70

Contoh-3: Flowchart Fungsi Luas


function Luas (R : real) : real;
{ Menghasilkan luas lingkaran
berdasarkan jari-jari R: PI * R * R }
KAMUS LOKAL
ALGORITMA
Luas (R)

return (PI * R * R

28/09/2015

KU1072/Pengenalan Teknologi Informasi B

71

Contoh-3: Program Lengkap Pascal


Program LuasLingkaran;
{ Menerima masukan nilai jari-jari dan
menuliskan ke layar luas lingkaran }
{ KAMUS }
Const
function Luas (R : real) : real;
PI : real = 3.14;
{ Menghasilkan luas lingkaran
var
berdasarkan jari-jari R: PI * R * R }
R : real;
L : real
{ Kamus Lokal }
{ fungsi Luas dituliskan di sini }
{ Algoritma }
{ ALGORITMA PROGRAM UTAMA } begin
Luas := PI * R * R
begin
end;
readln(R);
L := Tukar(A,B);
writeln(L);
28/09/2015
end.

KU1072/Pengenalan Teknologi Informasi B

72

LATIHAN SOAL

28/09/2015

KU1072/Pengenalan Teknologi Informasi B

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

KU1072/Pengenalan Teknologi Informasi B

-1

75

Soal 2: Fungsi Konversi


Persoalan:
Tuliskanlah fungsi Konversi yang digunakan untuk
mengubah harga karakter angka (nol sampai dengan 9)
menjadi harga numerik sesuai dengan karakter yang
tertulis. Contoh :
'0' 0
'8' 8

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

KU1072/Pengenalan Teknologi Informasi B

76

Soal-3: MAX2 dan MAX3


Tuliskan fungsi MAX2, yang menerima masukan dua
buah bilangan integer dan menghasilkan bilangan
terbesar
Contoh: MAX2(1,2) 2

Tuliskan fungsi MAX3 yang memanfaatkan fungsi


MAX2. Fungsi MAX3 menerima input 3 bilangan
integer dan menghasilkan bilangan terbesar
Contoh: MAX3(10,2,3) 10

28/09/2015

KU1072/Pengenalan Teknologi Informasi B

77

Soal-4: Putar 3 Bilangan


Dengan memanfaatkan prosedur Tukar, buatlah
sebuah program utama yang digunakan untuk
memutar 3 buah bilangan, misalnya A=a, B=b, C=c
sehingga A=c, B=a, C=b
Ketiga bilangan dibaca dari keyboard
Contoh:
A = 3; B = 2; C = 1
ditukar menjadi :
A = 1; B = 3; C = 2
28/09/2015

KU1072/Pengenalan Teknologi Informasi B

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

Definisi dari prosedur tersebut adalah sebagai berikut:


procedure BacaDanJumlahBil (N : integer; var Sum : integer);
{ Membaca N bilangan integer dari keyboard dan menghasilkan
Sum yang merupakan jumlah dari seluruh bilangan yang
dimasukkan }
{ I.S. : N terdefinisi, N > 0 }
{ F.S. : Sum merupakan jumlah N bilangan }

28/09/2015

KU1072/Pengenalan Teknologi Informasi B

79

Alternatif Solusi Soal 2 s.d. 5


Alternatif Solusi baru dalam bentuk notasi Pascal
Untuk notasi flowchart silakan dibuat sendiri

28/09/2015

KU1072/Pengenalan Teknologi Informasi B

80

Alt. Solusi Soal-1 (Pascal)


function KarakterToInteger (x : char) : integer;
{ diberikan x berupa karakter, menghasilkan harga integer yang
sesuai dengan penulisan pada karakter }
{ Algoritma }
begin
case x of
'0' : KarakterToInteger := 0;
'1' : KarakterToInteger := 1;
'2' : KarakterToInteger := 2;
'3' : KarakterToInteger := 3;
'4' : KarakterToInteger := 4;
'5' : KarakterToInteger := 5;
'6' : KarakterToInteger := 6;
'7' : KarakterToInteger := 7;
'8' : KarakterToInteger := 8;
'9' : KarakterToInteger := 9;
end;
end;
28/09/2015

KU1072/Pengenalan Teknologi Informasi B

81

function Max2 (a1, b1 : integer) : integer;


{ diberikan a1 dan b1, menghasilkan a1 jika a1 >= b1,
dan b1 jika b1 > a1 }
{ Algoritma }
begin
if (a1 >= b1) then
begin
Max2 := a1;
end else { a1 < b1 }
begin
Max2 := b1;
end;
end;

Alt. Solusi Soal-3


(Pascal)

function Max3 (a, b, c : integer) : integer;


{ diberikan a, b, dan c, menghasilkan a jika a>=b dan a>=c,
menghasilkan b jika b>=a dan b>=c, menghasilkan c jika c>=a dan
c>=b }
{ Algoritma }
begin
Max3 := Max2(Max2(a,b),c);
end.
28/09/2015

KU1072/Pengenalan Teknologi Informasi B

82

Program Tukar3Bil; { Menerima 3 bilangan dan menukarnya }


{ KAMUS }
var
a1, b1, c1 : integer;
{ DEFINISI DAN REALISASI PROSEDUR }
procedure Tukar(var a, b : integer);
...

Alt. Solusi Soal-4


(Pascal)

{ 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

KU1072/Pengenalan Teknologi Informasi B

83

Alt. Solusi Soal 5 (Pascal)


procedure BacaDanJumlahBil (N : integer; var Sum : integer);
{ Membaca N bilangan integer dari keyboard dan menghasilkan
Sum yang merupakan jumlah dari seluruh bilangan yang
dimasukkan }
{ I.S. : N terdefinisi, N > 0 }
{ F.S. : Sum merupakan jumlah N bilangan }
{ KAMUS LOKAL }
var
x, i : integer;
{ ALGORITMA }
begin
Sum := 0;
for i := 1 to N do
begin
readln(x);
Sum := Sum + x;
end;
end;
28/09/2015

KU1072/Pengenalan Teknologi Informasi B

84

Anda mungkin juga menyukai