- PERTEMUAN 7 –
SUB PROGRAM
Pengantar
Program yang besar perlu dipecah menjadi program
kecil.
Tiap sub program disebut Modul.
Dirancang oleh programmer atau developer program.
Disebut Teknik Pemrograman Modular.
Beberapa pemrograman menyebut modul dengan
sebutan :
Routine
Prosedur
Fungsi
Terdapat proses utama, yang berfungsi untuk
menggabungkan modul yang ada.
Bagan Cara Kerja Sub Program
Modul Modul 1
Utama
A1 M11
A2 M12
A3
M13
Call Modul 1
M14
A4
A5 Modul 2
Call Modul 2 M21
A6
M22
A7
M23
Call Modul 1
A8 M24
Contoh Prosedur (1)
Procedure Hitung_Luas_Lingkaran
{Menghitung nilai luas lingkaran dari masukan jari-
jari di program utama}
Deklarasi
Luas:Real
Const phi =22/7
Deskripsi
Luas phi*r*r
write(Luas)
Contoh Prosedur (2)
Procedure Hitung_Keliling_Lingkaran
{Menghitung nilai keliling lingkaran dari masukan
jari-jari di program utama}
Deklarasi
Keliling:Real
Const phi =22/7
Deskripsi
Keliling 2*phi*r
write(Keliling)
Contoh Prosedur (3)
Procedure Hitung_Keliling_Luas_Lingkaran
{Menghitung nilai keliling dan Luas lingkaran}
Deklarasi
r:Real
Procedure Hitung_Luas_Lingkaran
Procedure Hitung_Keliling_Lingkaran
Deskripsi
read(r)
Hitung_Luas_Lingkaran
Hitung_Keliling_Lingkaran
LATIHAN SOAL
Tuliskan procedure untuk menentukan nilai terbesar
antara 2 buah variabel bil bulat, A dan B. Nilai terbesar
dicetak ke layar.
Buatlah masing-masing procedur untuk menghitung
luas dan volume balok dari daftar menu sederhana.
dimana L balok = 6 x s x s
V balok = s x s x s
Parameter Masukan
(Input Parameter)
Parameter yang nilainya berlaku sebagai masukan
untuk procedure yang dipanggil.
Biasa disebut parameter nilai (value parameter atau
parameter by value)
Contoh Parameter Masukan
Procedure TentukanMaksimum (Input A,B:Integer)
{Menentukan nilai terbesar dari 2 buah variabel A dan B.
Nilai A dan B dibaca terlebih dahulu}
Deklarasi
Maks :Integer
Deskripsi
If (A>B) then
Maks A
Else
Maks B
Endif
Write(Maks)
Algoritma Utama
{Algoritma utama untuk memanggil TentukanMaksimum}
Deklarasi
X, Y :Integer
Procedure TentukanMaksimum (Input A,B :Integer)
Deskripsi
read(X,Y)
TentukanMaksimum(X,Y)
Parameter Keluaran
(Output Parameter)
Parameter yang menampung keluaran yang dihasilkan
oleh procedure.
Parameter keluaran dideklarasikan di dalam header
prosedur, seperti parameter masukan.
Contoh Parameter Keluaran
Procedure TentukanMaksimum (Input A,B:Integer, Output Maks : integer)
{Menentukan nilai terbesar dari 2 buah variabel A dan B.
Nilai A dan B dibaca terlebih dahulu}
Deklarasi
{tidak ada}
Deskripsi
If (A>B) then
Maks A
Else
Maks B
Endif
Algoritma Utama
{Algoritma utama untuk memanggil TentukanMaksimum}
Deklarasi
X, Y, Z :Integer
Procedure TentukanMaksimum (Input A,B :Integer, Output Hasil:integer)
Deskripsi
read(X,Y)
TentukanMaksimum(X,Y,Z)
write(Z)
Parameter Masukan/Keluaran
Procedure TentukanMaksimum (I/O A,B:integer)
{Menentukan nilai terbesar dari 2 buah variabel A dan B.
Nilai A dan B dibaca terlebih dahulu}
Deklarasi
tukar:integer
Deskripsi
If (A<B) then
tukar A
A B
B tukar
Endif
Algoritma Utama
{Algoritma utama untuk memanggil TentukanMaksimum}
Deklarasi
X, Y, :Integer
Procedure TentukanMaksimum (I/O A,B:integer)
Deskripsi
read(X,Y)
TentukanMaksimum(X,Y)
write(A)
Fungsi
Program yang memberikan/mengembalikan sebuah nilai
(return) dari tipe tertentu.
Dalam nama fungsi terdapat sebuah nilai, seperti halnya
sebuah variabel. Biasanya berupa kata kerja.
Format Pembuatan Fungsi :
Function NamaFungsi(daftar parameter) Tipe Data
{Bagian nama fungsi}
Deklarasi
{Pendeklarasian kamus data}
Deskripsi
{Bagian algoritma Utama}
Return (nilai)
Contoh Fungsi
Function HitungFaktorial(input x : integer) integer
Deklarasi
Hasil:integer
Deskripsi
Hasil 1
{menghitung nilai Hasil}
For i N downto 1 do
hasil=hasil*I
Endfor
Return(hasil)
Algoritma Menghitung nilai e
{Menghitung nilai e}
Deklarasi
A, n ,r temp:integer
Function HitungFaktorial(input x:integer) integer
Deskripsi
read(n)
exp1
for i 1 to n do
expexp+1/HitungFaktorial(i)
Endfor
write(exp)
LATIHAN 7
Tuliskan Fungsi untuk mendeteksi tipe suatu segitiga,
apakah termasuk :
Segitiga siku-siku
Segitiga sama sisi
Segitiga sama kaki
Segitiga sembarang
Jika dimasukkan dari keyboard panjang sisi-sisinya a,b,c
(type real) dan outputnya berupa type segitiga