PROSEDUR
Setiap program yg besar perlu dipecah menjadi subprogram, tiap-tiap subprogram disebut modul.
Keuntungan modularisasi program :
- Menghindari penulisan teks program yg sama secara berulang.
- kemudahan menulis dan menemukan kesalahan (debug) program
Definisi Prosedur (pemrograman)
Prosedur adalah modul program yang mengerjakan tugas/aktivitas yang spesifik dan menghasilkan suatu efek netto. (di bahasa pemrograman lain dikenal dengan nama subroutine).
Efek netto diketahui dengan membandingkan keadaan awal dan akhir pelaksanaan sebuah prosedur.
Pada setiap prosedur harus didefinisikan keadaan awal(K. Awal) sebelum rangkaian instruksi di dalam prosedur dilaksanakan dan keadaan akhir(K. Akhir) yang diharapkan setelah rangkaian instruksi dilaksanakan.
Parameter :
Parameter Aktual : Parameter yang disertakan pada waktu pemanggilan.
Parameter Formal : Parameter yang dideklarasikan di dalam bagian header prosedur itu sendiri.
Ketika prosedur dipanggil, parameter aktual menggantikan parameter formal.
Tiap2 parameter aktual berpasangan dengan parameter formal yg bersesuaian.
3 jenis parameter formal yg disertakan di dalam prosedur :
1. Parameter masukkan (input parameter) / parameter nilai (parameter by value):
Parameter yg nilainya berlaku sebagai masukan untuk prosedur.
2. Parameter keluaran (output parameter)
Parameter yg menampung keluaran yg dihasilkan oleh prosedur.
3. Parameter masukkan / keluaran (I/O parameter) / parameter acuan (parameter by reference)
Parameter yg berfungsi sebagai masukkan sekaligus keluaran bagi prosedur tsb.
Translasi dari Notasi Algoritmik Prosedur ke dalam notasi bahasa PASCAL :
Pendefinisian prosedur ditulis bersatu di dalam program utama, kecuali jika direalisasikan sebagai unit. Prosedur diletakkan di bawah kata var.
Contoh translasi :
- Prosedur tanpa parameter
ALGORITMIK
Prosedur
Procedure HITUNG_RATA_RATA
{ menghitung_rata_rata N buah bilangan bulat yang di baca dari papan kunci. }
{ K. awal : sembarang }
{ K. akhir : rata-rata seluruh bilangan dicetak ke piranti keluaran. }
DEKLARASI
X : integer { data bilangan bulat yang dibaca dari papan kunci }
N : integer { banyaknya data bilangan bulat, N positif }
K : integer { pencacah banyak bilangan }
Jumlah : integer { jumlah saluran bilangan }
U : real { nilai rata-rata seluruh bilangan }
DESKRIPSI
read (N)
Jumlah ← 0 { inisialisasi }
k←1 { inisialisasi pencacah }
while k ≤ N do
read (x)
jumlah←jumlah+x
k←k+1
endwhile
{ k > N }
u←jumlah/N
write ( 'Nilai rata-rata = ', u)
Program Utama:
Algoritma RATA_RATA_BIL_BULAT
{ program utama untuk menghitung rata-rata N buah bialngan bulat. }
DEKLARASI
Procedure HITUNG_RATA_RATA
{ menghitung_rata_rata N buah bilangan bulat yang di baca dari papan kunci. }
DESKRIPSI
Write ('Menghitung rata-rata N buah bilangan bulat')
HITUNG_RATA_RATA
Write ('Sukses!')
PASCAL
program RATA_RATA_BIL_BULAT;
uses wincrt;
procedure HITUNG_RATA_RATA;
var
X : integer;
N : integer;
K : integer;
Jumlah : integer;
U : real;
begin
write ('Berapa banyak data ? '); readln(N);
Jumlah := 0;
K := 1;
while k <= N do
begin
write ('x : ? '); readln (x);
jumlah := jumlah + x ;
k := k + 1 ;
end; {while}
u := jumlah/N;
writeln ( 'Nilai rata-rata = ', u);
end;
(* DESKRIPSI PROGRAM UTAMA *)
begin
writeln ('Menghitung rata-rata N buah bilangan bulat');
HITUNG_RATA_RATA;
writeln (' Sukses ! ');
end.
- Prosedur dengan parameter masukan/keluaran
ALGORITMIK
Prosedur :
Procedure TUKAR (input/output X, Y : integer)
{ Mempertukarkan nilai X dan Y }
{ K.Awal : Nilai X dan Y sudah terdefinisi }
{ K.Akhir : X berisi nilai Y yang lama, Y berisi nilai X yang lama}
DEKLARASI
Temp : integer
{ peubah Bantu }
DESKRIPSI
Tempßx { Simpan nilai X ke dalam temp }
Xß y { isikan nilai Y ke dalam x }
Yß temp { isikan nilai temp ke dalam y }
Program Utama :
Algoritma TUKAR_A_B
{ Program utama untuk menukarkan nilai a dan B. Nilai A dan B dibaca dari piranti masukkan. }
DEKLARASI
A, B : integer
Procedure TUKAR (input/output X, Y : integer)
{ Mempertukarkan nilai X dan Y.}
DESKRIPSI
read (A,B)
Write(A,B) { cetak nilai A dan B sebelum pertukaran }
TUKAR(A,B) { cetak nilai A dan B dengan memanggil prosedur TUKAR}
Write(A, B) { cetak nilai A dan B setelah pertukaran }
PASCAL
PROGRAM TUKAR_AB;
Var
A, B : integer;
Procedure TUKAR (var X, Y : integer);
var
Temp : integer; { peubah Bantu }
begin
Temp := X ; { Simpan nilai X ke dalam temp }
X := Y; { isikan nilai Y ke dalam x }
Y := Temp; { isikan nilai temp ke dalam y }
end;
begin
write('A:? '); readln(A);
write('B:? '); readln(B);
write('A:? ',A);
write('B:? ',B);
TUKAR (A,B);
write('A= ',A);
write('B= ',B);
end.
TUGAS :
Upah karyawan sebuah perusahaan dihitung harian berdasarkan jumlah jam kerja.
Upah tiap jam adalah Rp. 5.000,00.
Untuk menentukan upah tersebut, buatlah prosedur dalam bahasa Pascal yang menerima jumlah jam kerja dan mengirimkan upah harian yang diterima karyawan.
☻Mulailah berfikir untuk keberhasilan !!! ☻
Tidak ada komentar:
Posting Komentar