NIM : 203030503079
KELAS :A
FAKULTAS TEKNIK
2020
BAB I
1. Tujuan
1.1 Dapat memahami konsep prosedur dan fungsi.
1.2 Mampu membuat prosedur dan fungsi baik dengan parameter maupun
tanpa parameter.
1.3 Mampu membedakan kapan menggunakan prosedur maupun fungsi.
2. Landasan Teori
2.1 Pengertian
Prosedur dan fungsi adalah sebuah program terpisah ( sub program diluar
program utama) dalam blok tersendiri yang berfungsi untuk
menyelesaikan masalah khusus.
A. PROCEDURE
Procedure yaitu sub program yang digunakan untuk melakukan
proses tertentu dan tidak mengembalikan nilai, bisa disimpan dalam
database sebagai object skema, sehingga suatu procedure bisa
digunakan berulangkali tanpa harus melakukan parsing dan compile
ulang.
B. FUNCTION
Function yaitu Sebuah kumpulan Statement yang akan
mengembalikan sebuah nilai balik pada pemanggilnya. Nilai yang
dihasilkan Function harus ditampung kedalam sebuah variabel.
2.2 Perbedaan Procedure dan Function
Program Procedure_Sederhana ;
uses crt;
PROCEDURE MENU;
begin
writeln('Pilihan Menu');
writeln(' 1: Statemen Percabangan');
writeln(' 2: Statemen Perulangan');
writeln(' 3: Statemen Array');
end;
Begin
writeln('Sebelum prosedur');
MENU;
writeln('Sesudah prosedur');
readln;
end.
Tugas!
1. Buatlah Kalkulator pengurangan,penjumlahan menggunakan Procedure
tanpa parameter.
2. Buatlah Kalkulator perkalian dan pembagian menggunakan Procedure
dengan parameter.
3. Buatlah procedure untuk menghitung volume balok dan volume kubus.
4. Buatlah Kalkulator (penjumlahan, pengurangan, perkalian, pembagian)
menggunakan function.
5. Buatlah program menghitung keliling dan luas segitiga sama kaki.
6. Buatlah program menghitung keliling dan luas lingkaran.
PEMBAHASAN :
1. Langkah 1
Langkah 1 adalah pembuatan kalkulator penjumlahan dan pengurangan
dengan menggunakan Algoritma Procedure tanpa parameter, ditambah
dengan percabangan Case of. Berikut contoh struktur algoritmanya pada
Tabel 2.1.
ALGORITMA
DEKLARASI
x,y,z:real;
p:char;
DESKRIPSI
Read (x);
Read (y);
Read (z);
Write(‘Hasil’);
BAHASA PASCAL
Program Modu5_1;
uses crt;
var
x,y,z:real;
p:char;
procedure hasil;
begin
clrscr;
writeln('Kalkulator');
writeln('__________');
write(' Bilangan 1 = ');readln(x);
write(' Operator = ');readln(p);
write(' Bilangan 2 = ');readln(y);
case p of
'+':z:=x+y;
'-':z:=x-z;
end;
writeln('Hasil = ',z:4:2);
end;
begin
hasil;
readln;
end.
a. Judul Program
Program Modu5_1;
b. UsesCrt
uses crt;
c. Variabel
var
x,y,z:real;
p:char;
e. Badan Program
begin
clrscr;
writeln('Kalkulator');
writeln('__________');
write(' Bilangan 1 = ');readln(x);
write(' Operator = ');readln(p);
write(' Bilangan 2 = ');readln(y);
case p of
'+':z:=x+y;
'-':z:=x-z;
end;
writeln('Hasil = ',z:4:2);
end;
begin
hasil;
readln;
end.
Pada bagian output ini, diminta memasukkan 2 angka dan 1 operator (+/-).
2. Langkah 2
Langkah 2 ini adalah program Kalkulator perkalian dan pembagian
menggunakan Algoritma Procedure dengan Parameter. Berikut struktur
algooritma program Modu5_2 pada Tabel 2.2.
ALGORITMA
DEKLARASI
x,y:real;
p:real;
DESKRIPSI
Read(x);
Read(y);
Write(‘Hasil Perkalian’);
Write(‘Hasil Pembagian’);
BAHASA PASCAL
Program Modu5_2;
uses crt;
var
x,y:real;
p:real;
procedure Perkalian(x,y,kali:real);
begin
kali:=x*y;
writeln('Hasil Perkalian' ,x:4:2, 'x' ,y:4:2, '=' ,kali:4:2);
end;
procedure Pembagian(x,y,bagi:real);
begin
bagi:=x/y;
writeln('Hasil Pembagian' ,x:4:2, '/' ,y:4:2, '=' ,bagi:4:2);
end;
begin
clrscr;
writeln('Kalkulator Kali dan Bagi');
writeln('========================');
write('Masukkan Angka 1 = ');readln(x);
write('Masukkan Angka 2 = ');readln(y);
writeln('-------------------------');
Perkalian(x,y,p);
Pembagian(x,y,p);
readln;
end.
a. Judul Program
Program Modu5_2;
b. UsesCrt
uses crt;
c. Variabel
var
x,y:real;
p:real;
Menggunakan Variabel Real agar pada outputnya dapat memasukkan
angka berbentuk desimal.
d. Procedure
procedure Perkalian(x,y,kali:real);
procedure Pembagian(x,y,bagi:real);
e. Badan Program
begin
kali:=x*y;
writeln('Hasil Perkalian' ,x:4:2, 'x' ,y:4:2, '=' ,kali:4:2);
end;
begin
bagi:=x/y;
writeln('Hasil Pembagian' ,x:4:2, '/' ,y:4:2, '=' ,bagi:4:2);
end;
begin
clrscr;
writeln('Kalkulator Kali dan Bagi');
writeln('========================');
write('Masukkan Angka 1 = ');readln(x);
write('Masukkan Angka 2 = ');readln(y);
writeln('-------------------------');
Perkalian(x,y,p);
Pembagian(x,y,p);
readln;
end.
Berikut hasil input dan Output dalam Aplikasi Free Pascal pada Gambar
2.5, Gambar 2.6, dan Gambar 2.7.
ALGORITMA
DEKLARASI
A,B,C:integer;
O:char;
DESKRIPSI
Read (s);
Read (p);
Read (l);
Read (t);
Read (menu);
Read (ulang);
Write(‘Volume Kubus’);
Write(‘Volume Balok’);
BAHASA PASCAL
Program Modul5_3;
uses crt;
var
menu : integer;
ulang: char;
p,l,t,v,s,j:real;
procedure volume_kubus;
begin
repeat
clrscr;
writeln ('Menghitung Volume kubus ');
write ('Masukan Nilai sisi :');readln (s);
writeln ('Rumus : s*s*s');
j:=s*s*s;
writeln ('Volume kubus adalah :',j:0:0);
write (' ulang lagi[y/n]?'); readln (ulang);
until upcase (ulang) <>'Y';
end;
procedure volume_balok;
begin
repeat
clrscr;
writeln ('Menghitung Volume Balok ');
write ('Masukan Nilai Panjang :');readln (p);
write ('Masukan Nilai Tinggi :');readln(l);
write ('Masukan Nilai Lebar :');readln(t);
writeln ('Rumus : p*l*t');
v:=p*l*t;
writeln ('Volume Balok adalah :',v:0:0);
write (' ulang lagi[y/n]?'); readln (ulang);
until upcase (ulang) <>'Y';
end;
procedure menu_utama;
begin
clrscr;
textcolor(lightgreen);
writeln ('Menu Utama');
writeln ('1. Volume Kubus');
writeln ('2. Volume Balok');
writeln ('Angka Terserah = Keluar');
writeln;
write ('Pilih Menu :');readln(menu);
case menu of
1:begin
volume_kubus;
menu_utama;
end;
2:begin
volume_balok;
menu_utama;
end;
end;
end;
begin
clrscr;
menu_utama;
end.
end.
a. Judul Program
Program Modul5_3;
b. UsesCrt
uses crt;
c. Variabel
Var
menu : integer;
ulang: char;
p,l,t,v,s,j:real;
Menggunakan Variabel Real agar pada outputnya dapat memasukkan
angka berbentuk desimal. Integer untuk menunjukkan menu pada
percabangan. Dan char untuk memasukkan pengulangan.
d. Procedure
procedure volume_kubus;
procedure volume_balok;
procedure menu_utama;
Diatas adalah Procedurenya yang menggunakan parameter x,y,kali,bagi.
e. Badan Program
begin
repeat
clrscr;
writeln ('Menghitung Volume kubus ');
write ('Masukan Nilai sisi :');readln (s);
writeln ('Rumus : s*s*s');
j:=s*s*s;
writeln ('Volume kubus adalah :',j:0:0);
write (' ulang lagi[y/n]?'); readln (ulang);
until upcase (ulang) <>'Y';
end;
begin
repeat
clrscr;
writeln ('Menghitung Volume Balok ');
write ('Masukan Nilai Panjang :');readln (p);
write ('Masukan Nilai Tinggi :');readln(l);
write ('Masukan Nilai Lebar :');readln(t);
writeln ('Rumus : p*l*t');
v:=p*l*t;
writeln ('Volume Balok adalah :',v:0:0);
write (' ulang lagi[y/n]?'); readln (ulang);
until upcase (ulang) <>'Y';
end;
begin
clrscr;
textcolor(lightgreen);
writeln ('Menu Utama');
writeln ('1. Volume Kubus');
writeln ('2. Volume Balok');
writeln ('Angka Terserah = Keluar');
writeln;
write ('Pilih Menu :');readln(menu);
case menu of
1:begin
volume_kubus;
menu_utama;
end;
2:begin
volume_balok;
menu_utama;
end;
end;
end;
begin
clrscr;
menu_utama;
end.
end.
Berikut Input dan Output program dalam Aplikasi Free Pascal pada
gambar dibawah ini :
ALGORITMA
DEKLARASI
a,b:integer;
pilih:char;
xx:char;
DESKRIPSI
Read (a);
Read (b);
Write(Hasil Penjumlahan);
Write(Hasil Perkalian);
Write(Hasil Perkalian);
Write(Hasil Pembagian);
BAHASA PASCAL
Program Modul5_4;
uses crt;
var
a,b:integer;
pilih:char;
function tambah(a,b:integer):integer;
begin
tambah:=a+b;
end;
function kurang(a,b:integer):integer;
begin
kurang:=a-b;
end;
function kali(a,b:integer):integer;
begin
kali:=a*b;
end;
function bagi(a,b:integer):real;
begin
bagi:=a/b
end;
function tutup:integer;
begin
clrscr;
end;
function menu:char;
var
xx:char;
begin
clrscr;
textcolor(lightblue);
writeln;
Writeln('<<< Kalkulator >>>');
writeln(' =============== ');
writeln;
Writeln(' Pilihan : ');
writeln;
writeln(' 1. Masukan Angka');
writeln(' 2. Penjumlahan');
writeln(' 3. Pengurangan');
writeln(' 4. Perkalian');
writeln(' 5. Pembagian');
writeln(' 6. Keluar' );
writeln;
writeln(' Note : Pilih Menu Satu Untuk Lanjut ke Menu Lainnya ');
writeln;
write(' Silahkan Pilih Salah Satu [1..6] : ');
xx:=readkey;
menu:=xx;
end;
begin
repeat
pilih:=menu;
case pilih of
'1':begin
clrscr;
writeln;
writeln(' -==::Masukan Angka::==- ');
write(' Masukkan Angka 1 : ');readln(a);
write(' Masukkan Angka 2 : ');readln(b);
end;
'2':begin
clrscr;
writeln;
writeln(' -==::Penjumlahan::==- ');
writeln;
writeln(' Angka 1 : ',a);
writeln(' Angka 2 : ',b);
writeln;
writeln(' Hasil ',a, ' + ',b,' = ',tambah(a,b));
readkey;
end;
'3':begin
clrscr;
writeln;
writeln(' -==::Pengurangan::==- ');
writeln;
writeln(' Angka 1 : ',a);
writeln(' Angka 2 : ',b);
writeln;
writeln(' Hasil ',a, ' - ',b,' = ',kurang(a,b));
readkey;
end;
'4':begin
clrscr;
writeln;
writeln (' -==::Perkalian::==- ');
writeln;
writeln(' Angka 1 : ',a);
writeln(' Angka 2 : ',b);
writeln;
writeln(' Hasil ',a, ' x ',b,' = ',kali(a,b));
readkey;
end;
'5':begin
clrscr;
writeln;
writeln (' -==::Pembagian::==- ');
writeln;
writeln(' Angka 1 : ',a);
writeln(' Angka 2 : ',b);
writeln;
writeln(' Hasil ',a, ' : ',b,' = ',bagi(a,b):2:2);
readkey;
end;
'6':tutup;
else
begin
clrscr;
writeln;
writeln('Terima Kasih');
readkey;
end;
end;
until pilih='6';
end.
Berikut penjelasan struktur pascalnya :
a. Judul Program
Program Modul5_4;
b. UsesCrt
uses crt;
c. Variabel
Var
a,b:integer;
pilih:char;
xx:char;
Menggunakan Variabel Integer karena masukkan di bagian output nanti
berbentuk angka. Variabel Char sebagai pemilihan menu dan
percabangan menu.
d. Function
function tambah(a,b:integer):integer;
function kurang(a,b:integer):integer;
function kali(a,b:integer):integer;
function bagi(a,b:integer):real;
function tutup:integer;
function menu:char;
Diatas adalah Function yang menggunakan parameter dan tanpa
parameter.
e. Badan Program
begin
tambah:=a+b;
end;
begin
kurang:=a-b;
end;
begin
kali:=a*b;
end;
begin
bagi:=a/b
end;
begin
clrscr;
end;
var
xx:char;
begin
clrscr;
textcolor(lightblue);
writeln;
Writeln('<<< Kalkulator >>>');
writeln(' =============== ');
writeln;
Writeln(' Pilihan : ');
writeln;
writeln(' 1. Masukan Angka');
writeln(' 2. Penjumlahan');
writeln(' 3. Pengurangan');
writeln(' 4. Perkalian');
writeln(' 5. Pembagian');
writeln(' 6. Keluar' );
writeln;
writeln(' Note : Pilih Menu Satu Untuk Lanjut ke Menu Lainnya ');
writeln;
write(' Silahkan Pilih Salah Satu [1..6] : ');
xx:=readkey;
menu:=xx;
end;
begin
repeat
pilih:=menu;
case pilih of
'1':begin
clrscr;
writeln;
writeln(' -==::Masukan Angka::==- ');
write(' Masukkan Angka 1 : ');readln(a);
write(' Masukkan Angka 2 : ');readln(b);
end;
'2':begin
clrscr;
writeln;
writeln(' -==::Penjumlahan::==- ');
writeln;
writeln(' Angka 1 : ',a);
writeln(' Angka 2 : ',b);
writeln;
writeln(' Hasil ',a, ' + ',b,' = ',tambah(a,b));
readkey;
end;
'3':begin
clrscr;
writeln;
writeln(' -==::Pengurangan::==- ');
writeln;
writeln(' Angka 1 : ',a);
writeln(' Angka 2 : ',b);
writeln;
writeln(' Hasil ',a, ' - ',b,' = ',kurang(a,b));
readkey;
end;
'4':begin
clrscr;
writeln;
writeln (' -==::Perkalian::==- ');
writeln;
writeln(' Angka 1 : ',a);
writeln(' Angka 2 : ',b);
writeln;
writeln(' Hasil ',a, ' x ',b,' = ',kali(a,b));
readkey;
end;
'5':begin
clrscr;
writeln;
writeln (' -==::Pembagian::==- ');
writeln;
writeln(' Angka 1 : ',a);
writeln(' Angka 2 : ',b);
writeln;
writeln(' Hasil ',a, ' : ',b,' = ',bagi(a,b):2:2);
readkey;
end;
'6':tutup;
else
begin
clrscr;
writeln;
writeln('Terima Kasih');
readkey;
end;
end;
until pilih='6';
end.
ALGORITMA
DEKLARASI
a,t:integer;
sm:real;
DESKRIPSI
Read (a);
Read (t);
Write(‘Keliling :’);
Write(‘Luas :’);
BAHASA PASCAL
Program Modul5_5;
uses crt;
var
a,t:integer;
sm:real;
function Luas(a,t:integer):real;
begin
Luas:=(a*t)/2;
end;
function Keliling(a,t:integer; sm:real):real;
begin
sm:=SQRT(SQR(a/2)+SQR(t));
Keliling:=a+sm+sm;
end;
begin
clrscr;
textcolor(lightred);
writeln('Luas dan Keliling Segitiga Sama Kaki');
writeln('====================================');
write('Masukkan Alas: '); readln(a);
write('Masukkan Tinggi: '); readln(t);
writeln;
writeln('Keliling: ',Keliling(a,t,sm):0:2);
writeln;
writeln('Luas: ',Luas(a,t):0:2);
readln;
end.
a. Judul Program
Program Modu5_5;
b. UsesCrt
uses crt;
c. Variabel
var
a,t:integer;
sm:real;
Menggunakan Variabel Integer untuk masukkan alas dan tinggi segitiga,
dan Variabel Real untuk menghitung rumus sm.
d. Function
function Luas(a,t:integer):real;
e. Badan Program
begin
Luas:=(a*t)/2;
end;
begin
sm:=SQRT(SQR(a/2)+SQR(t));
Keliling:=a+sm+sm;
end;
begin
clrscr;
textcolor(lightred);
writeln('Luas dan Keliling Segitiga Sama Kaki');
writeln('====================================');
write('Masukkan Alas: '); readln(a);
write('Masukkan Tinggi: '); readln(t);
writeln;
writeln('Keliling: ',Keliling(a,t,sm):0:2);
writeln;
writeln('Luas: ',Luas(a,t):0:2);
readln;
end.
Berikut adalah Input dan Outputnya dalam Aplikasi Free Pascal pada gambar
di bawah ini :
ALGORITMA
DEKLARASI
r:integer;
DESKRIPSI
Read (r);
Write(‘Keliling :’);
Write(‘Luas :’);
BAHASA PASCAL
Program Modul5_6;
uses crt;
var r:integer;
const pi=3.14;
f. Judul Program
Program Modu5_6;
g. UsesCrt
uses crt;
h. Variabel
var
r:integer;
Menggunakan Variabel Integer untuk masukkan jari-jari lingkaran.
i. Function
function Luas(jari_jari:integer; phi:real):real;
function Keliling(jari_jari:integer; phi:real):real;
begin
Keliling:=2*phi*jari_jari;
end;
begin
clrscr;
textcolor(lightred);
writeln('Luas dan Keliling Lingkaran');
writeln('===========================');
write('Masukkan Jari-Jari: '); readln(r);
writeln;
writeln('Keliling: ',Keliling(r,pi):0:2);
writeln;
writeln('Luas: ',Luas(r,pi):0:2);
readln;
end.
KESIMPULAN
Prosedur dan fungsi adalah sebuah program terpisah ( sub program diluar
program utama) dalam blok tersendiri yang berfungsi untuk menyelesaikan
masalah khusus.
Input :
Output :
Tampilan Pogram Modul5_2
Input :
Output :
Tampilan Program Modul5_3
Input :
Output :
Tampilan Program Modul5_4
Input :
Output :
Tampilan Program Modul5_5
Input :
Output :
Tampilan Program Modul5_6
Input :
Output :