Anda di halaman 1dari 5

PERTEMUAN 6 : Merubah dari Fungsi ke Prosedur*

*Kita bahas latihan minggu lalu*

*Program Hitung RATA dng menggunakan Fungsi adalah sebagai berikut*


Program HITUNG_RATA;
uses crt; {Contoh Penggunaan Function dan array}
var i,k, n, Maksimum, Minimum : integer;
Jumlah : longint; RATA : real;
A : array[0..100] of integer;
Lanjut:char;

function Total (B:array of integer; X:integer):longint;


var i : integer; temp : longint;
begin
temp := 0;
for i := 1 to X do temp := temp + B[i];
Total := temp;
end; {end of function}

begin { Program Utama}


clrscr;
lanjut:='y';
while lanjut = 'y'
do begin
write('Jumlah Bilangan ? ');readln(n);
For i:=1 to n do begin
write('Masukkan bilangannya ',i,': '); readln(A[i]);
end; {end of for}
write('Elemen array-nya adalah : ');
for i := 1 to n do write(A[i]:4);
writeln;
Jumlah := Total(A,n);
writeln('Jumlah akhir = ',Jumlah);
RATA := Jumlah/n;
writeln('Rata-rata = ',RATA:5:1);
write('Mau lanjut (y/t)?'); readln(lanjut);
end;
writeln(' --Press Enter to Continue--'); readln;
end.

*Modifikasi program function hitung rata2 sebelumnya menjadi program hitung rata2 dengan
menggunakan PROCEDURE (bukan FUNCTION) yang memiliki *parameter pass by value
dan parameter pass by reference* dengan output spt diatas dan menggunakan array 1
dimensi.*
*Perhatikan cara merubah dari fungsi ke prosedur :*
a. Tambahkan di parameter formal : var <nama variabel>:tipe data. Contoh di atas adalah
*Procedure Total(B:array of integer;X:integer; var temp:longint);*
*Perhatikan tipe data di var sama dengan tipe data di function*
b. Tambahkan parameter aktual di pemanggil (main program) untuk menampung
perubahan nilai. Contoh disini adalah jumlah . Bila menggunakan fungsi, di main
program statementnya sbb : *Jumlah:=Total(A,n)* , maka bila menggunakan
prosedur, statement di main program menjadi *Total(A,n,jumlah)*.

Berikut hasil perubahan dari program yang menggunakan fungsi ke program yang
menggunakan prosedur.
Program HITUNG_RATA_proc;
{program hitung_rata dng menggunakan prosedur}
uses crt;
var i,k, n, Maksimum, Minimum : integer;
Jumlah : longint; RATA : real;
A : array[0..100] of integer;
Lanjut:char;

Procedure Total (B:array of integer; X:integer; var temp:longint);


var k : integer;
begin
temp := 0;
for k := 1 to X do temp := temp + B[k];
end; {end of prosedur}

begin { Program Utama}


clrscr;
lanjut:='y';
while lanjut = 'y'
do begin
write('Jumlah Bilangan ? ');readln(n);
For i:=1 to n do begin
write('Masukkan bilangannya ',i,': '); readln(A[i]);
end; {end of for}
write('Elemen array-nya adalah : ');
for i := 1 to n do write(A[i]:4);
writeln;
Total(A,n,jumlah);
writeln('Jumlah akhir = ',Jumlah);
RATA := Jumlah/n;
writeln('Rata-rata = ',RATA:5:1);
write('Mau lanjut (y/t)?'); readln(lanjut);
end;
writeln(' --Press Enter to Continue--'); readln;
end.

*Kita lanjut lagi latihan modifikasi program, merubah dari fungsi ke prosedur*

*Berikut program mencari maks dari 2 angka dng menggunakan function.*

program maksimum;
{mencari maks dari 2 angka dng function dan dng peubah}
uses crt;
var a,b,hasil:integer;

function maks(x,y:Integer):Integer ;
var temp:integer;
begin
if x<y then temp:=y else temp :=x;
maks:=temp;
end;

begin
clrscr;
write('a : ');ReadLn(a);
Write('b : ');ReadLn(b);
hasil:=maks(a,b);
WriteLn('nilai maks : ',hasil);
writeln('Press enter to continue');
readln;
end.

*Coba run, silahkan outputnya di posting diwag ini*

*Latihan1 : Modifikasi Program diatas (mencari maks dari 2 bilangan) dengan output seperti
berikut tetapi menggunakan prosedur yang memiliki parameter pass by value dan pass
by reference (keduanya harus ada)*

Bila sudah selesai,silahkan *source programnya dan outputnya* di posting di wag ini

*Kita lanjut ke latihan 2*


*Berikut adalah program menentukan genap ganjil dng menggunakan function*

Program GenapGanjil;
uses crt;
Var
X : integer;
flag:boolean;

Function Genap(n : integer) : boolean;


var temp:boolean;
Begin
if (n mod 2) = 0 then temp:=true else temp:=false;
genap:=temp;
end;

Begin
clrscr;
writeln(‘Program menentukan Ganjil/Genap dengan menggunakan function’);
write('maukkan bilangan : ');Readln(x);
Flag:=genap(x);
if flag
then writeln('Genap')
else writeln('Ganjil');
writeln('Press enter to continue');
readln;
end.

*Latihan2 : Modifikasi Program(menentukan ganjilgenap) diatas dengan output seperti berikut


tetapi menggunakan prosedur yang memiliki parameter pass by value dan pass by
reference (keduanya harus ada)*

*Bila sudah selesai,silahkan source programnya dan outputnya di posting di wag ini*

Anda mungkin juga menyukai