Anda di halaman 1dari 30

Sub Program

Materi Pertemuan 10
Tim Dosen

Materi
1.
2.
3.
4.
5.
6.

Konsep Dasar
Prosedur
Fungsi
Jangkauan Identifier
Parameter
Latihan
2

1. Konsep Dasar

Pemrograman Modular

Program dibagi kedalam Modul-Modul


Modul dalam bahasa Pascal di-implementasikan
dengan Prosedur dan fungsi
Prosedur/Fungsi dibentuk dengan mengelompokkan
sejumlah perintah untuk menyelesaikan tugas
tertentu.
Modul diperlukan jika kelompok perintah tersebut
kerap kali digunakan di tempat lain dalam program
Modul sering disebut juga dengan Sub-Program
4

Keuntungan Penggunaan Sub Program (1)

Program yang besar dan rumit dapat dipecahpecah menjadi kecil-kecil sehingga menjadi
lebih sederhana,
Dapat dikerjakan lebih dari satu orang dengan
koordinasi yang lebih mudah,
Lebih mudah mencari kesalahan,

Keuntungan Penggunaan Sub Program (2)

Dapat dimodifikasi tanpa mengganggu


program secara keseluruhan,
Untuk hal yang sering dilakukan cukup ditulis
satu kali dan saat diperlukan cukup dipanggil,
Mempermudah dokumentasi.

Ciri-ciri Modul yang baik:

Fan-in tinggi, semakin sering digunakan


semakin tinggi nilai fan-in
Fan-out rendah, semakin sedikit tugas yang
dilakukan semakin rendah nilai fan-out
Self-contained, sub program dapat memenuhi
kebutuhannya sendiri

2. Prosedur

Penggunaan

Deklarasi
Procedure Nama_Prosedur [(parameter)];
[Deklarasi variabel ;]
Begin

statemen-statemen;

End;

Digunakan terutama untuk hal-hal spesifik


atau yang sering dilakukan
Tidak mengembalikan nilai
9

Contoh Prosedur
Program Judul;
Procedure Bintang;
Begin
write(*);
End;
Var i : integer;
Begin
for i:=1 to 9 do bintang;
writeln;
bintang;
write( Judul );
bintang;
writeln;
bintang;
End.

Seperti apakah output


program ini?

10

Program mencari rata-rata

Jika menggunakan prosedur, main program


untuk mencari rata-rata akan terlihat seperti:
BEGIN
ReadScores;
GetAverage;
DisplayResults;
END.
11

Contoh 2
PROGRAM Procedures1(OUTPUT);
PROCEDURE DrawLine;
CONST Dash = '-'; LineLength = 20;
VAR Counter :INTEGER;
BEGIN
FOR Counter := 1 TO LineLength DO
WRITE(Dash);
WRITELN
END;
BEGIN
WRITELN;
DrawLine;
WRITELN('** THIS IS A TEST **');
Drawline
END.
12

Passing Values to Procedures


PROCEDURE DrawLine(panjang:integer);

{---Main Program---}
Drawline(20);

13

Latihan

Buat program menggunakan prosedur untuk


memilih menu perhitungan luas segitiga,
lingkaran dan persegi.

14

3. Fungsi

15

Penggunaan

Deklarasi
Function Nama_fungsi [(parameter)]: Tipe_fungsi;
[Deklarasi variabel ;]
Begin

statemen-statemen;
[Nama_fungsi:=nilai_fungsi]
End;

Digunakan terutama untuk hal-hal spesifik


atau yang sering dilakukan
Dapat mengembalikan nilai
16

Contoh Fungsi
Program Judul;
Function Luas_Lingkaran(r:real):real;
Begin
Luas_lingkaran:=3.14*r*r;
End;
Var luas: real;
Begin
luas:=luas_lingkaran(10);
write( Luas= ,luas:0:2);
End.

Seperti apakah output


program ini?

17

4. Jangkauan Identifier

18

Lingkup Identifier

Lingkup identifier meliputi bagian-bagian


program dimana sebuah identifier masih bisa
diakses.
Lingkup identifier meliputi :

Lokal
Global

19

Lokal Identifier

Identifier yang dideklarasikan di dalam


fungsi/prosedur, termasuk parameter.
Lingkupnya terbatas pada fungsi/prosedur
tempat dideklarasikan.

20

Global Identifier

Identifier yang dideklarasikan di luar


fungsi/prosedur.
Ruang lingkupnya meliputi seluruh program setelah
dideklarasikan.
Disarankan tidak banyak menggunakan identifier
global karena:

Jika program semakin besar, kecenderungan error


semakin besar .
Sulit melacak bila terjadi kesalahan.
setiap fungsi dapat mengubah nilai variabel tersebut
sehingga sulit terjaga nilainya.
21

Contoh Jangkauan
Program Jangkauan;
Var x,y: integer;
Function fungsi1(x:real):real;
Var y: real;
Begin

End;
procedure pro;
var x,y,z:integer;
begin

end;
Var a,b:integer;
Begin

End.

Seperti apakah jangkauan


tiap-tiap variabel?

22

5. Parameter

23

Jenis Parameter

Formal

Parameter dimana fungsi/prosedur dideklarasikan

Aktual

Parameter dimana fungsi/prosedur digunakan

24

Transfer Parameter

By-Value

Yang dikirim ke modul lain atau ke program


utama adalah nilai datanya.

By Location / by reference

Yang ditransfer ke modul lain atau program


utama adalah alamat memorinya.

25

Contoh Transfer Parameter 1


Program Tranfer1;
Procedure tukar(x,y:real);
Var z: integer;
Begin
z:=x; x:=y; y:=z;
End;

Seperti apakah output-nya?


Apakah nilai a dan b tertukar?

Var a,b:integer;
Begin
a:=2; b:=9;
tukar(a,b);
writeln( a= ,a, b:= ,b);
End.

26

Contoh Transfer Parameter 2


Program Tranfer1;
Procedure tukar(var x,y:real);
Var z: integer;
Begin
z:=x; x:=y; y:=z;
End;

Bagaimana dengan yang ini?


Apakah nilai a dan b tertukar?

Var a,b:integer;
Begin
a:=2; b:=9;
tukar(a,b);
writeln( a= ,a, b:= ,b);
End.

27

6. Latihan

28

Latihan
1.

2.

3.

Buatlah program yang menginput n buah


nilai integer dengan menggunakan array,
dimana n diinput oleh user saat program
berjalan.
Hitung rata-rata dan standar deviasi data
diatas dengan modul tersendiri.
Cari nilai terkecil dan terbesar data diatas
dengan modul
29

Terima Kasih

30

Anda mungkin juga menyukai