Mengitung bangun datar dengan menggunakan bahasa pemrogramaan pascal dengan mengunakan subprogram (function). Dan ditulisan berikutnya saya akan coba buat dengan menggunakan subprogram (procedure). Dibawah ini sourcecodenya. program menghitung_bangun_datar; uses wincrt; const phi=3.14; var a,b,c,no:integer; x,y:real; lagi:char; ulang:boolean; procedure garis; begin writeln(�============================================�); end; function bujursangkar (var si,kell:integer):integer; begin bujursangkar:=si*si; {luas} kell:=4*si; {keliling} end; function persegipanjang ( var p,l,kell:integer):integer; begin persegipanjang:=p*l; {luas} kell:=2*(p+l); {keliling} end; function lingkaran (var r,kell:real):real; begin lingkaran:=phi*r*r; {luas} kell:=2*phi*r {keliling} end; begin ulang:=true; while ulang=true do begin clrscr; writeln(�>>> pilih menu <<<�); writeln(�1. menghitung luas dan keliling bujur sangkar�); writeln(�2. menghitung luas dan keliling persegi panjang�); writeln(�3. menghitung luas dan keliling lingkaran�); garis; write(�masukan no pilihan program=�); readln(no); case no of 1:begin lagi:=�y'; while lagi=�y� do begin clrscr; writeln(�>>>menghitung luas dan keliling bujur sangkar�); garis; write(�masukan sisi =�); readln(a); writeln; writeln(�luas bujur sangkar?�); writeln(a,�x',a, �=�,bujursangkar(a,b));
writeln(�keliling bujur sangkar?�); writeln(�4x�,a, �=�,b); write(�jika mau menghitung lagi tekan y/n =�); readln(lagi); end; end; 2:begin lagi:=�n'; clrscr; repeat begin clrscr; writeln(�>>>menghitung luas dan keliling persegi panjang�); garis; write(�masukan panjang =�); readln(a); write(�masukan lebar =�); readln(b); writeln; writeln(�luas persegi panjang?�); writeln(a,�x',b,�=',persegipanjang(a,b,c)); writeln(�keliling persegi panjang?�); writeln(�2x(�,a,�+',b,�)',�=',c); end; write(�jika mau menghitung lagi tekan y/n =�); readln(lagi); until lagi=�n'; end; 3:begin lagi:=�y'; while lagi=�y� do begin clrscr; writeln(�>>>menghitung luas dan keliling lingkaran�); garis; write(�masukan jari-jari/r =�); readln(x); writeln; writeln(�luas lingkaran?�); writeln(phi:0:2,�x',x:0:0,�x',x:0:0,�=',lingkaran(x,y):0:2); writeln(�keliling lingkaran?�); writeln(�2x�,phi:0:2,�x',x:0:0,�=',y:0:2); write(�jika mau menghitung lagi tekan y/n =�); readln(lagi); end; end; else writeln(�tidak ada menu�); end; end; end.