Anda di halaman 1dari 15

Nama : I Wayan Dharma Satriawan

NIM : 1004505038
Kelompok : 11

MODUL 2
PEMROGRAMAN MODULAR

2.1 Tujuan
• Memahami dasar-dasar pemrograman Pascal.
• Memahami konsep variabel lokal dan variabel global dalam
pemrograman.
• Memahami konsep fungsi dan prosedur dalam pemrograman modular.
• Memahami konsep passing by value dan passing by reference dalam
pemrograman dengan fungsi maupun prosedur.
• Memahami pengaplikasian pemrograman modular pada Bahasa
Pascal.
2.2 Tugas Pendahuluan
1. Jelaskan tentang konsep variabel lokal dan variabel global serta
perbedaannya.
2. Jelaskan tentang konsep fungsi dan prosedur, perbedaan keduanya, serta
aplikasinya dalam pemrograman dengan Bahasa Pascal.
3. Jelaskan tentang konsep passing by value dan passing by reference,
perbedaannya, serta aplikasinya dalam pemrograman dengan Bahasa
Pascal.
4. Buatlah flowchart dan pseudocode (notasi algoritma )dari program pada
soal di bawah ini, lalu lakukan trace terhadap flowchart yang anda buat
sehingga yakin bahwa flowchart tersebut sudah benar

2.3 Jawaban
2.3.1 Pengertian variabel lokal dan variabel global:
Variabel Global adalah variabel yang dikenal di seluruh badan
program dan di definisikan di dalam program utama.

Variabel Lokal adalah variabel yang hanya dikenal di badan


program yang mendefinisikannya, di definisikan di prosedure atau
fungsi.

Contoh :
Program <Nama Program>
Var A : Tipe variabel {Variabel Global}

Procedure / Fungsi
Var C : Tipe Variabel {Variabel Lokal}

Dari contoh diatas A adalah variabel global karena A didefinisikan di


program utama sehingga bisa dikenal oleh seluruh badan program.
Sedahg variabel C adalah variabel lokal dan hanya dikenal di tempat
didefinisikannya.
2.3.2 Prosedur dan Fungsi
Prosedur atau Fungsi adalah suatu modul program yang terpisah dari
program utama, diletakan dalam blok tersendiri yang berfungsi sebagai
bagian dari program. Setiap prosedur diawali dengan kata cadangan
(reserver word) Procedure, sedangkan Fungsi diawali dengan kata
cadangan Function.
Struktur umum prosedur adalah sebagai berikut :

Procedure Nama_Prosedur (param_formal1:tipe_param1,


param_formal2:tipe_param2,…);
{Jika prosedur tidak memiliki parameter, tanda kurung tidak disertakan}
var
{bagian deklarasi prosedur, sifatnya lokal}
begin
statement-1;
statement-2;
…………
statement-n;
end;

Contoh penggunaan:

Program PersegiPanjang; {judul Program Utama}


uses crt;
var {deklarasi variabel global}
p,l:byte; {p :panjang, l:lebar}
ls,kel:integer; {ls:luas, kel:keliling}
Procedure Hitung_Luas; {Prosedur untuk menghitung luas}
begin
ls:=p*l;
writeln('Luas :',ls);
end;
Procedure Hitung_Keliling; {Prosedur untuk menghitung
keliling}
begin
kel:=(2*p)+(2*l);
writeln('Keliling :',kel);
end;
{===program utama===}
begin
clrscr;
writeln('Program Untuk Menghitung luas dan keliling
persegipanjang');
writeln;
write('Masukan panjang : ');readln(p);
write('Masukan lebar : ');readln(l);
writeln;
Hitung_Luas; {Memanggil prosedur Hitung_Luas}
Hitung_Keliling; {Memanggil prosedur Hitung_Keliling}
readln;
end.
Cara penulisan fungsi di Turbo Pascal seperti dibawah ini :

Function Nama Fungsi(param_formal:tipe_param,...):tipe_hasil;


var
{bagian deklarasi fungsi, sifatnya lokal}
begin
statement-1;
statement-2;
…………
Statement-n;
Nama_Fungsi:=hasil;
end;
Program PersegiPanjang;
uses crt;
Function Luas(p,l:integer ):integer;
begin
Luas:=p*l;
end;
{===program utama===}
var
pj,lbr:integer;
begin
clrscr;

Contoh penggunaan :

Program PersegiPanjang;
uses crt;
Function Luas(p,l:integer ):integer;
begin
Luas:=p*l;
end;
{===program utama===}
var
pj,lbr:integer;
begin
clrscr;
writeln('Program Untuk Menghitung luas persegipanjang');
writeln;
write('Masukan panjang : ');readln(pj);
write('Masukan lebar : ');readln(lbr);
write('Luasnya = ',Luas(pj,lbr));
readln;
end.
2.3.3 Pass by value dan pass by reference
2.3.3.1 Parameter Nilai (pass by value)
Dalam program di atas, ketika variabel disampaikan ke procedure,
procedure bekerja dengan copy dari variabel asli. Nilai dari variabel asli yang
disampaikan ke procedure tidak diubah. Procedure hanya menggantikan
variabel asli dengan variabel yang ada di procedure , tetapi tidak
menggantikan nilai dari variabel asli. Ketika procedure bekerja dengan copy
dari variabel, maka dikenal dengan parameter nilai (pass by value).
Contoh penggunaan:

Program PersegiPanjang; {judul Program Utama}


uses crt;
Procedure Hitung_Luas(p,l,ls:integer); {Prosedur dengan parameter}
begin
ls:=p*l;
writeln('p = ',p);
writeln('l = ',l);
writeln('ls = ',ls);
end;
{===program utama===}
var
pj,lbr,luas:integer;
begin
clrscr;
writeln('Program Untuk Menghitung luas persegipanjang');
pj:=10;
lbr:=6;
luas:=0;
writeln;
Hitung_Luas(pj,lbr,luas); {Memanggil prosedur Hitung_Luas}
writeln;
writeln('pj = ',pj);
writeln('lbr = ',lbr);
writeln('luas = ',luas);
readln;
end.

2.3.3.2 Parameter Variabel (pass by reference)


Procedure bisa juga dipakai untuk mengubah nilai dari variabel asli
yang dipanggil oleh procedure. Untuk menggambarkannya, kita bisa lihat
pada contoh program modifikasi program sebelumnya. Procedure ini
menerima dua nilai integer dan menggantikan nilai aslinya. Untuk membuat
procedure menggunakan parameter variabel (pass by reference) dengan
menggunakan kata kunci var.
Contoh penggunaan:

Program PersegiPanjang; {judul Program Utama}


uses crt;
Procedure Hitung_Luas(p,l:integer; var ls:integer);{Prosedur dgn parameter}
begin
ls:=p*l;
writeln('p = ',p);
writeln('l = ',l);
writeln('ls = ',ls);
end;
{===program utama===}
var
pj,lbr,luas:integer;
begin
clrscr;
writeln('Program Untuk Menghitung luas persegipanjang');
pj:=10;
lbr:=6;
luas:=0;
writeln;
Hitung_Luas(pj,lbr,luas); {Memanggil prosedur Hitung_Luas}
writeln;
writeln('pj = ',pj);
writeln('lbr = ',lbr);
writeln('luas = ',luas);
readln;
end.

2.4. Flowchart dan Pseudocode


1. Function Lpersegi(p,l : integer) : integer;

mulai

Lpersegi = s*s

selesai
2. Function LPersegiPan(p,l : integer) : integer;

mulai

Lpersegipan = p*l

selesai

3. Function LSegitiga1(a,t : integer) : real;

mulai

Lsegitiga1 = a*t/2

selesai

4. Function LSegitiga2(a,b,c : integer) : real;

mulai

S = (a+b+c)/2
Lsegitiga2 = sqrt(s*(s-a)*s(-b)*(s-c)

selesai
5. Function Llingkaran(r : integer) : real;

mulai

Llingkaran =
3.14*r*r

selesai

6. Function Ltrapesium(s1,s2,t : integer) : real;


mulai

Ltrapesium =
(s1+s2)*t/2

selesai

7. Function LJajarGen(a,t : integer) : integer;

mulai

Ljajargen = a*t

selesai
8. Function LBelahK(d1,d2 :integer) : real;

mulai

Lbelahk =
d1*d2/2

selesai

9. Function Llayang(d1,d2 : integer): real;

mulai

Llayang =
0.5*d1*d2

selesai
1. Function persegi : integer;
Start

Input s

Hitung Lpersegi (s)

Write(‘luas =
‘,lpersegi );

Kll := 4*s

END

2. Function PersegiPan : integer;


Start

Input p
Input l

Hitung
Lpersegipan (p,l)

Write(‘luas =
‘,lpersegipan );

Kll := (2*p)+(2*l)

END
3. Function Segitiga : real;
Start

Input pil

Input a Hitung Write(‘Luas =


Pil = 1
Input t Lsegitiga 1(a,t) ‘,lsegitiga1)

Input a
Hitung Write(‘Luas =
Pil = 2 Input b
Lsegitiga2(a,b,c) ‘,lsegitiga 2)
Input c

Write(‘input salah’ ) C = sqrt (a) + sqrt(t)

Kll := a+b+c

END

4. Function lingkaran : real;


Start

Input r

Hitung Llingkaran (r)

Write(‘luas =
‘,llingkaran );

Kll := 3.14*2*r

END
5. Function trapesium : real;
Start

Input s1
Input s2
Input t

Hitung
Ltrapesium (s1,s2,t)

Write(‘luas =
‘,ltrapesium )

s1 > s2

Max = s1 Max = s2
Min = s2 Min = s1

bantu = (max - min)/2;


miring = sqrt(sqr(bantu) + sqr(t));

Kll := (2*miring)+s1+s2

END
6. Function JajarGen : integer;
Start

Input a
Input t

Hitung Ljajargen (a,t)

Write(‘luas = ‘,Ljajargen );
Input ab
Input ad

Kll := (2*ab)+(2*ad)

END

7. Function BelahK : real;


Start

Input d1
Input d2

Hitung
Lbelahk (d1,d2)

Write(‘luas = ‘,Lbelahk );
Input ad
Input ab

Kll := (2*ab)+(2*ad)

END
8. Function Layang : real;
Start

Input d1
Input d2

Hitung
Llayang (d1,d2)

Write(‘luas = ‘,llayang)
Input ab
Input bc

Kll := (2*ab)+(2*bc)

END
Program utama
Start

Input Grade

pil = 1 persegi

pil = 2 Persegipan

pil = 3 segitiga

pil = 4 lingkaran

pil = 5 trapesium

A B
A B

pil = 6 Jajar gen

pil = 7 belahk

pil = 8 layang

Write input
salah

End

Anda mungkin juga menyukai