- Nama : Program Operasi Bangun Ruang dengan Rekursif
- Bahasa : Pascal
- Software : Free Pascal IDE
- Deskripsi : Program ini terbagi menjadi 3 submenu, yaitu kubus, balok, dan tabung. Masing-masing submenu mempunyai isi yang hampir sama dan menggunakan rekursif. Pada submenu kubus, user diminta menginputkan sisi untuk mendapatkan hasil berupa volume dan luas permukaan. Sama dengan submenu kubus, pada submenu balok perbedaannya hanyalah pada bagian input sedangkan outputnya sama yaitu volume dan luas permukaan, input pada submenu balok adalah panjang, lebar, dan tinggi. Pada submenu tabung perbedaannya lebih banyak, pada submenu ini digunakan phi yang bernilai 22/7 dan inputannya pun berbeda yaitu jari-jari dan tinggi, sedangkan untuk outputnya adalah volume, luas permukaan, dan luas selimut.
- Screenshot :
Gambar 2. Penginputan pada menu 1 (kubus)Gambar 3. Hasil akhir pada menu 1 (kubus)Gambar 7.Hasil akhir pada menu 3 (tabung)
- Source Code :
program bangun_ruang;
uses crt;
var pil:char;
procedure v_kubus(a,b:real;var
hasil:real)
begin
if b>1 then v_kubus(a,b-1,hasil);
hasil:=hasil*a;
end;
procedure l_kubus(a,b:real;var
hasil:real);
begin
if b>1 then l_kubus(a,b-1,hasil);
hasil:=hasil+(a*a);
end;
procedure v_balok(a,b,c:real;var
hasil:real);
begin
if c>1 then v_balok(a,b,c-1,hasil);
hasil:=hasil+(a*b);
end;
procedure l_balok(a,b,c,d:real;var
hasil:real)
begin
if d>1 then l_balok(a,b,c,d-1,hasil);
hasil:=hasil+(a*b)+(a*c)+(b*c);
end;
procedure v_tabung(a,b,c:real;var
hasil:real);
begin
if c>1 then v_tabung(a,b,c-1,hasil);
hasil:=hasil+(a*b*b);
end;
procedure lp_tabung(a,b,c,d:real;var
hasil:real);
begin
if d>1 then lp_tabung(a,b,c,d-1,hasil);
hasil:=hasil+(a*b*(b+c));
end;
procedure ls_tabung(a,b,c,d:real;var
hasil:real);
begin
if d>1 then ls_tabung(a,b,c,d-1,hasil);
hasil:=hasil+(a*b*c);
end;
procedure menu1;
var s,v,l :real;
begin
v:=1;l:=0;
clrscr;
writeln('>> Volume dan Luas Permukaan Kubus <<');
gotoxy(13,2); writeln('
._________.');
gotoxy(13,3); writeln(' / |
/|');
gotoxy(13,4); writeln('/________./ |');
gotoxy(13,5); writeln('| | |
|');
gotoxy(13,6); writeln('| | |
|');
gotoxy(13,7); writeln('|
|_____|__|');
gotoxy(13,8); writeln('| /
| / ');
gotoxy(13,9); writeln('|/_______|/
');
writeln;
write ('Input sisi = ');readln(s);
v_kubus(s,3,v);
l_kubus(s,6,l);
writeln;
writeln('Volume =
',v:0:2);
writeln('Luas permukaan =
',l:0:2);
readkey;
end;
procedure menu2;
var p,lb,t,v,l :real;
begin
v:=0;l:=0;
clrscr;
writeln('>> Volume dan Luas Permukaan Balok <<');
gotoxy(8,2); writeln('
.__________________.');
gotoxy(8,3); writeln(' / | /|');
gotoxy(8,4); writeln('/_________________./ |');
gotoxy(8,5); writeln('| | |
|');
gotoxy(8,6); writeln('| | | |');
gotoxy(8,7); writeln('|
|______________|__|');
gotoxy(8,8); writeln('| /
| / ');
gotoxy(8,9); writeln('|/________________|/ ');
writeln;
write ('Input panjang = ');readln(p);
write ('Input lebar = ');readln(lb);
write ('Input tinggi = ');readln(t);
v_balok(p,lb,t,v);
l_balok(p,lb,t,2,l);
writeln;
writeln('Volume =
',v:0:2);
writeln('Luas permukaan = ',l:0:2);
readkey;
end;
procedure menu3;
var r,t,phi,v,lp,ls:real;
begin
phi:=22/7;v:=0;lp:=0;ls:=0;
clrscr;
writeln('>> Volume, Luas Permukaan dan Luas Selimut Tabung
<<');
gotoxy(22,2); writeln('
____ ');
gotoxy(22,3); writeln('./
\.');
gotoxy(22,4); writeln('|\____/|');
gotoxy(22,5); writeln('|
|');
gotoxy(22,6); writeln('|
|');
gotoxy(22,7); writeln('| .... |');
gotoxy(22,8); writeln('|/
\|');
gotoxy(22,9); writeln(' \____/ ');
writeln;
write ('Input jari-jari =
');readln(r);
write ('Input tinggi = ');readln(t);
v_tabung(phi,r,t,v);
lp_tabung(phi,r,t,2,lp);
ls_tabung(phi,r,t,2,ls);
writeln;
writeln('Volume =
',v:0:2);
writeln('Luas permukaan =
',lp:0:2);
writeln('Luas selimut =
',ls:0:2);
readkey;
end;
begin
repeat
clrscr;
writeln('>> Menu <<');
writeln;
writeln('[1] Kubus');
writeln('[2] Balok');
writeln('[3] Tabung');
writeln('[0] Keluar');
writeln;
write ('Pilihan :
');pil:=readkey;
case pil of
'1':menu1;
'2':menu2;
'3':menu3;
end;
until
pil='0';
end.
|
programnya keren gan ada gambarnya
BalasHapus