Pengantar pemrograman modular
“Untuk mencapai suatu tujuan besar, maka tujuan tersebut harus dibagi bagi menjadi tujuan kecil sampai tujuan kecil itu merupakan tujuan yang dapat dicapai berdasarkan kondisi dan potensi yang dimiliki saat ini.”
(Al-khuwarizmi)
Program sebaiknya dipecah menjadi beberapa upa-program (sub-program). Upa-program yang baik adalah yang independen dari program utama sehingga perancangannya tanpa konteks dimana ia digunakan.
Keuntungan Pemrograman Modular
ada 2 keuntungan :
Ada dua bentuk upa-program :
PROSEDUR
Pendefinisian prosedur artinya menulis nama prosedur, mendeklarasikan nama nama konstanta , peubah dan tipe(jika ada)
Parameter adalah nama nama peubah yang dideklarasikan pada bagian header prosedur.
Nama Global dan Nama Lokal
Nama nama bisa terdiri dari : konstanta, peubah, tipe dll.
Nama nama “lokal” hanya berlaku didalam prosedur yang melingkupinya saja.
Nama nama “global” dapat digunakan dibagian manapun di dalam program , baik di program utama maupun di prosedur yang dipanggil.
PARAMETER
Aturan yang harus diperhatikan antara parameter aktual dan parameter formal:
Berdasarkan maksud penggunaannya terdapat 3 jenis parameter formal yang disertakan di dalam prosedur:
Program Segitiga_Rasid; <– Prosedur tanpa parameter
uses wincrt;
var i, N : integer;
procedure HitungLuasSegitiga;
var alas : real ;
tinggi : real ;
luas : real ;
begin
write(‘Panjang alas : ‘); readln(alas);
write(‘Tinggi segitiga : ‘); readln(tinggi);
luas := (alas*tinggi) / 2 ;
writeln(‘Luas segitiga = ‘, luas:0:2);
end;
begin
write(‘Banyaknya segitiga : ‘); readln(N);
for i:=1 to N do
HitungLuasSegitiga; end.
Parameter masukan
Nilai(value) parameter aktual diisikan (assign) ke dalam parameter formal yang bersesuaian.
Contoh Program:
Program Segitiga_Rasid;
uses wincrt;
var i, N : integer;
a, t : real;
procedure HitungLuasSegitiga(alas, tinggi : real);
var luas : real ;
begin
luas := (alas*tinggi) / 2 ;
writeln(‘Luas segitiga = ‘, luas:0:2);
end;
begin
write(‘Banyaknya segitiga : ‘); readln(N);
for i:=1 to N do
begin
write(‘Panjang alas : ‘); readln(a);
write(‘Tinggi segitiga : ‘); readln(t);
HitungLuasSegitiga(a, t);
end;
end.
Parameter keluaran
nilai keluaran dari prosedur ditampung di dalam parameter keluaran.
Contoh Program:
Program Segitiga_Rasid;
uses wincrt;
var i, N : integer;
a, t : real;
L : real;
procedure HitungLuasSegitiga(alas, tinggi : real; var luas : real);
begin
luas := (alas*tinggi) / 2 ;
end;
begin
write(‘Banyaknya segitiga : ‘); readln(N);
for i:=1 to N do
begin
write(‘Panjang alas : ‘); readln(a);
write(‘Tinggi segitiga : ‘); readln(t);
HitungLuasSegitiga(a, t, L);
writeln(‘Luas segitiga = ‘, L:0:2);
end;
end.
Parameter masukan/keluaran
Contoh Program:
Program selisih_rasid ;
uses wincrt;
var X, Y, Z : integer;
procedure Tukar(var A, B : integer);
var temp : integer;
begin
temp := A ;
A := B ;
B := temp ;
end;
begin
write(‘Masukan Nilai X : ‘); readln(X);
write(‘Masukan Nilai Y : ‘); readln(Y);
if X < Y then
Tukar(X,Y) ;
Z := X – Y ;
write(‘Jadi selisihnya adalah ‘,Z);
end.
Contoh Kasus
program ratarata_rasid ;
uses wincrt;
var N : integer ;
ratarata : real ;
procedure HitungRatarata(N : integer; var u : real);
var x : real ;
i : integer ;
jumlah : real ;
begin
jumlah := 0 ;
for i := 1 to N do
begin
write (‘Masukan nilai : ‘); readln(x);
jumlah := jumlah + x ;
end;
u := jumlah / N;
end;
begin
write (‘Jumlah peserta ujian : ‘); readln(N);
HitungRatarata(N, ratarata);
writeln(‘Nilai rata ratanya : ‘, ratarata:0:2);
if ratarata < 50 then
writeln(‘Nilai rata rata TIDAK bagus’)
else
writeln(‘Nilai rata rata BAGUS’);
end.
Daftar Pustaka:
Munir, Rinaldi. 2007. Algoritma dan pemrograman dalam Bahasa Pascal dan C, Penerbit informatika. Bandung.