Sekarang kita mencoba membuat suatu program untuk menghitung luas permukaan dan volume
bangun ruang, disini kita akan
menggunakan fungsi, percabangan dan
pemanggilan dalam
bahasa pemrograman C++. Pada program
ini kita akan membuat fungsi garis dan percabangan
untuk setiap
penghitungan luas dan volume masing masing bangun ruang.
- Sebelum
kita membuat program, disini kita harus tahu terlebih dahulu rumus luas
permukaan dan volume suatu bangun ruang tersebut. Disini kita menggunakan Preprocessor
directives (#define) untuk mendefinisikan rumus luas permukaan dan
volume suatu bangun puang tersebut. Caranya sama, kita terlebih dahulu buka
Aplikasi C++ yang biasa digunakan. ini adalah contoh dari Preprocessor directives (#define) yang kita buat :
§ /* Mendefinisikan Rumus Kubus*/
§ #define lp_kub 6*s*s //luas
permukaan kubus
§ #define vol_kub s*s*s //volume
kubus
§ /* Mendefinisikan Rumus Balok*/
§ #define lp_blk 2*((p*l)+(p*t)+(l*t)) //luas
permukaan balok
§ #define vol_blk p*l*t //volume
balok
§ /* Mendefinisikan Rumus Bola*/
§ #define lp_bol 4*phi*r*r //luas
permukaan bola
§ #define vol_bol 4/3*phi*r*r*r //volume
bola
§ #define phi 3.14
§ /* Mendefinisikan Rumus Limas Segiempat*/
§ #define lp_lim (luas_alas_lim+(4*luas_sgi3)) //luas permukaan limas segiempat
§ #define vol_lim luas_alas_lim*t/3 //volume
limas segiempat
§ #define luas_alas_lim ps*ps
§ /* Mendefinisikan Rumus Tabung*/
§ #define lp_tab 2*phi*r*(r+t) //luas
permukaan tabung
§ #define vol_tab phi*r*r*t //volume
tabung
§ /* Mendefinisikan Rumus Kerucut*/
§ #define lp_ker phi*r*(r+sms) //luas
permukaan kerucut
§ #define vol_ker phi*r*r*t/3 //volume
kerucut
§ /* Mendefinisikan Rumus Prisma Segitiga*/
§ #define lp_pris ((2*l_als_pris)+(k_als_pris*t)) //luas permukaan Prisma segitiga
§ #define vol_pris l_als_pris*t //volume
prisma segitiga
“Ini contoh tampilannya”
Setelah selesai membuat Preprocessor
directives (#define) untuk mendefinisikan
rumus luas permukaan dan volume
suatu bangun ruang, lalu kita save file tersebut.
Cara penyimpanan file
header yang kita buat ini adalah dengan mengganti tulisan “C++ sourch (*.cpp;*.c)”
yang terdapat pada tampilan di atas dengan “Headers (*.h;*.hpp;*.rh)”
karena kita akan menjadikan program mendefinisikan rumus luas dan volume bangun
ruang diatas sebagai file header yang akan kita gunakan pada program
sebenarnya. Lalu tuliskan nama file tersebut pada kolom “File name”. disini kita buat nama filenya adalah “tugas.h”.
Lalu kita beranjak ke langkah
selanjutnya untuk membuat “Program Hitung Luas Permukaan dan Volume Bangun
Ruang”, yaitu:
- Buka
kembali
Aplikasi C++ yang biasa anda gunakan lalu buat file baru dengan nama
sesuai keinginan anda. Dan simpan file tersebut pada satu
folder yang sama dengan Preprocessor
directive (#define) yang telah dibuat diatas, agar bisa terbaca atau
terdeteksi nantinya.
- Pertama kita buat header yang
akan kita gunakan, disini kita menggunakan 3 buah header yaitu iostream,
conio.h dan tugas.h sehingga penulisannya dalam program adalah sebagai berikut:
- #include <iostream.h> //header yang
memuat fungsi cin(),cout(), dll
- #include <conio.h> //header yang
memuat fungsi getch(), dll
/*disini saatnya kita masukkan
file header yang telah kita buat di atas yaitu “tugas.h” agar rumus-rumus yang kita masukan diatas dapat terbaca
pada program yang kita buat sekarang.*/
/*adapun tanda “ ”
yang kita buat pada file header tugas.h
di atas memiliki cara kerja yang berbeda dengan tanda < > yang tertulis
pada iostream.h dan conio.h di atas. Jika kita menggunakan
tanda “ ” ia akan mencari di dalam file header yang aktif, jika tidak
menemukan lalu mencari kembali menuju tempat file header yang ada, maka dari
itu kita harus menempatkannya atau menyimpan file header yang kita buat pada
suatu folder yang sama dengan program yang akan kita buat sekarang. Sementara
tanda < > ia akan langsung mancari menuju tempat file header yang ada.
Maka itu jika file header tugas.h
diatas kita gunakan tanda < >, maka Preprocessor directives (#define)
yang kita buat diatas tak dapat terbaca oleh program, karena di tempat file
header yang ada tidak menyediakan nama file header tugas.h. Tetapi jika pada conio.h
dan iostream.h kita gunakan tanda “ ” maka
tetap masih bisa terbaca oleh program.
- Pada program ini kita juga menggunakan fungsi garis, yang
sesekali akan dipanggil oleh “Program Hitung Luas Permukaan dan Volume
Bangun Ruang” di bawah ini.
o void
garis();
o {cout<<”---------------------------------------------\n“;}
- Lalu kita buat fungsi utama dan menu penghitungan bangun ruang apa yang
akan kita cari luas dan volumenya. Fungsi
utama adalah fungsi yang akan dijalankan saat program dijalankan sehingga
setiap fungsi yang kita buat diatas tadi harus dipanggil/dimasukan kedalam
fungsi utama ini dapat dapat dijalankan. .
o main()
o {
//deklarasi
variable
o int
p,l,t,r,s,luas_sgi3,sms,ps,l_als_pris,k_als_pris;
o char
pilih,lagi;
//label
untuk perulangan goto
o awal:
o clrscr();
//disini dibuat juga pilihan
untuk bangun ruang yang ingin di hitung.
o cout<<"\t
* SELAMAT DATANG DI PROGRAM HITUNG *\n";
o cout<<"\tLUAS
PERMUKAAN DAN VOLUME BANGUN RUANG\n\n";
o cout<<"
Menu Bangun : "<<endl;
o cout<<"\t
1.Balok"<<endl;
o cout<<"\t
2.Kubus"<<endl;
o cout<<"\t
3.Tabung"<<endl;
o cout<<"\t
4.Bola"<<endl;
o cout<<"\t
5.Kerucut"<<endl;
o cout<<"\t
6.Limas Segiempat"<<endl;
o cout<<"\t
7.Prisma Segitiga"<<endl;
// inputkan pilihan bangun
ruang yang ingin anda hitung.
o cout<<"Pilihan
: ";cin>>pilih;
o cout<<"\n\n";
- Selanjutnya kita buat pilihan untuk masing masing bangun
ruang. Disini
kita menggunakan switch case. Switch - case merupakan
pernyataan yang dirancangkhusus untuk pengmbilan keputusan yang melibatkan
sejumlah atau banyak alternative. Pernyataan switch - case ini memiliki kegunaan yang sama seperti if-else
bertingkat, tetapi penggunaannya untuk memeriksa data yang bertipe
karakter atau integer.
/* jika kita memasukkan
pilihan '1’, maka yang keluar adalah “Menghitung Balok” */
- case'1':
- cout<<" ** Menghitung Balok **
"<<endl;
- garis(); //pemanggilan fungsi garis.
- cout<<"
Masukkan Nilai Panjang :
";cin>>p;
- cout<<"
Masukkan Nilai Lebar :
";cin>>l;
- cout<<"
Masukkan Nilai Tinggi :
";cin>>t;
- cout<<"
1. Volume Balok :
"<<vol_blk<<endl;
- cout<<"
2. Luas Permukaan Balok :
"<<lp_blk<<endl;
- garis(); //pemanggilan fungsi garis.
- cout<<"\n";
- break; /* pernyataan break menunjukan bahwa perintah
siap keluar dari switch. Jika
pernyataan ini tidak ada, maka program akan diteruskan kecabang-cabang
yang lainnya.*/
/* jika kita
memasukkan pilihan '2’, maka yang keluar adalah “Menghitung Kubus” */
- case'2':
- cout<<" ** Menghitung Kubus **
"<<endl;
- garis(); //pemanggilan fungsi garis.
- cout<<"
Masukkan Nilai sisi :
";cin>>s;
- cout<<"
1. Volume Kubus :
"<<vol_kub<<endl;
- cout<<"
2. Luas Permukaan Kubus :
"<<lp_kub<<endl;
- garis(); //pemanggilan fungsi garis.
- cout<<"\n";break;
/* jika kita
memasukkan pilihan '3’, maka yang keluar adalah “Menghitung Tabung” */
- case'3':
- cout<<" ** Menghitung Tabung **
"<<endl;
- garis(); //pemanggilan fungsi garis.
- cout<<"
Masukkan Nilai Jari-jari :
";cin>>r;
- cout<<"
Masukkan Nilai Tinggi Tabung :
";cin>>t;
- cout<<"
1. Volume Tabung :
"<<vol_tab<<endl;
- cout<<"
2. Luas Permukaan Tabung :
"<<lp_tab<<endl;
- garis(); //pemanggilan fungsi garis.
- cout<<"\n";break;
/*jika kita
memasukkan pilihan '4’, maka yang keluar adalah “Menghitung Bola” */
- case'4':
- cout<<" ** Menghitung Bola **
"<<endl;
- garis(); //pemanggilan fungsi garis.
- cout<<"
Masukkan Nilai Jari-jari : ";cin>>r;
- cout<<"
1. Volume Bola :
"<<vol_bol<<endl;
- cout<<"
2. Luas Permukaan bola :
"<<lp_bol<<endl;
- garis(); //pemanggilan fungsi garis.
- cout<<"\n";break;
/* jika kita
memasukkan pilihan '5’, maka yang keluar adalah “Menghitung Kerucut” */
- case
'5':
- cout<<" ** Menghitung Volume Kerucut **
"<<endl;
- garis(); //pemanggilan fungsi garis.
- cout<<"
Masukkan Nilai Jari-jari Alas : ";cin>>r;
- cout<<"
Masukkan Nilai Tinggi Kerucut : ";cin>>t;
- cout<<"
Sisi miring Selimut :
";cin>>sms;
- cout<<"
1. Volume Kerucut : "<<vol_ker<<endl;
- cout<<"
2. Luas Permukaan Kerucut :
"<<lp_ker<<endl;
- garis(); //pemanggilan fungsi garis.
- cout<<"\n";break;
/* jika kita
memasukkan pilihan '6’, maka yang keluar adalah “Menghitung Limas Segiempat” */
- case
'6':
- cout<<" ** Menghitung Limas Segiempat (persegi)
** "<<endl;
- garis(); //pemanggilan fungsi garis.
- cout<<"
Masukkan Nilai Panjang Sisi
: ";cin>>ps;
- cout<<"
Masukkan Nilai Tinggi Limas
: ";cin>>t;
- cout<<"
Masukkan Luas Segitiga pada Limas
: ";cin>>luas_sgi3;
- cout<<"
1. Volume Limas
: "<<vol_lim<<endl;
- cout<<"
2. Luas Permukaan Limas
: "<<lp_lim<<endl;
- garis(); //pemanggilan fungsi garis.
- cout<<"\n";break;
/* jika kita
memasukkan pilihan '7’, maka yang keluar adalah “Menghitung Prisma Segitiga” */
- case
'7':
- cout<<" ** Menghitung Prisma Segitiga **
"<<endl;
- garis(); //pemanggilan fungsi garis.
- cout<<"
Masukkan Nilai Luas Alas
: ";cin>>l_als_pris;
- cout<<"
Masukkan Nilai Keliling Alas
: ";cin>>k_als_pris;
- cout<<"
Masukkan Nilai Tinggi Prisma
: ";cin>>t;
- cout<<"
1. Volume Limas
: "<<vol_pris<<endl;
- cout<<"
2. Luas Permukaan Limas
: "<<lp_pris<<endl;
- garis(); //pemanggilan fungsi garis.
- cout<<"\n";break;
/* jika kita memasukkan selain
angka yang ada diatas, maka akan muncul kata kata seperti di bawah ini. */
/*setiap cabang akan
dijalankan jika syarat nilai konstanta tersebut dipenuhi dan default akan dijalankan jika semua
cabang di atasnya tidak terpenuhi.*/
- cout<<"Pilihan
Yang Anda Masukkan Salah, Silahkan Pilih Ulang\n\n\n";
- break;
- }
- Setelah
kita membuat pilihan untuk masing bangun ruang, selanjutnya kita
membuat pernyataan goto yaitu merupakan
instruksi untuk mengarahkan eksekusi program ke pernyataan yang diawali
dengan suatu label. Label merupakan suatu pengenal yang diikuti oleh tanda
titik dua (:).
- cout<<"Apakah
Anda Ingin Hitung Lagi [Y/T]: ";cin>>lagi;
- if(lagi=='Y'||lagi=='y')
/* jika kita inputkan ‘y’ maka
akan kembali ke label yang bertuliskan awal. Untuk menghitung kembali luas
permukaan dan volume bangun ruang tersebut. Tetapi jika inputkan yang lain maka
akan keluar dari program. */
- goto awal;
- getch(); // untuk menahan tampilan.
- }
- Langkah
selanjutnya adalah compile
program. Lalu kita running program.
Listing Program Sebenarnya
#include
<conio.h>
#include
<iostream.h>
#include
"tugas.h"
void garis()
{cout<<"--------------------------------\n";}
main()
{
int p,l,t,r,s,luas_sgi3,sms,ps,l_als_pris,k_als_pris;
char
pilih,lagi;
awal:
clrscr();
cout<<"\t
* SELAMAT DATANG DI PROGRAM HITUNG *\n";
cout<<"\tLUAS
PERMUKAAN DAN VOLUME BANGUN RUANG\n\n";
cout<<"
Menu Bangun : "<<endl;
cout<<"\t
1.Balok"<<endl;
cout<<"\t
2.Kubus"<<endl;
cout<<"\t
3.Tabung"<<endl;
cout<<"\t
4.Bola"<<endl;
cout<<"\t
5.Kerucut"<<endl;
cout<<"\t
6.Limas Segiempat"<<endl;
cout<<"\t
7.Prisma Segitiga"<<endl;
cout<<"Pilihan
: ";cin>>pilih;
cout<<"\n\n";
switch(pilih)
{
case'1':
cout<<" ** Menghitung Balok ** "<<endl;
garis();
cout<<"
Masukkan Nilai Panjang :
";cin>>p;
cout<<"
Masukkan Nilai Lebar :
";cin>>l;
cout<<"
Masukkan Nilai Tinggi :
";cin>>t;
cout<<" 1.
Volume Balok :
"<<vol_blk<<endl;
cout<<"
2. Luas Permukaan Balok :
"<<lp_blk<<endl;
garis();
cout<<"\n";break;
case'2':
cout<<" ** Menghitung Kubus ** "<<endl;
garis();
cout<<"
Masukkan Nilai sisi : ";cin>>s;
cout<<" 1.
Volume Kubus :
"<<vol_kub<<endl;
cout<<"
2. Luas Permukaan Kubus :
"<<lp_kub<<endl;
garis();
cout<<"\n";break;
case'3':
cout<<" ** Menghitung Tabung ** "<<endl;
garis();
cout<<"
Masukkan Nilai Jari-jari :
";cin>>r;
cout<<"
Masukkan Nilai Tinggi Tabung :
";cin>>t;
cout<<" 1.
Volume Tabung :
"<<vol_tab<<endl;
cout<<"
2. Luas Permukaan Tabung :
"<<lp_tab<<endl;
garis();
cout<<"\n";break;
case'4':
cout<<" ** Menghitung Bola ** "<<endl;
garis();
cout<<"
Masukkan Nilai Jari-jari : ";cin>>r;
cout<<" 1.
Volume Bola :
"<<vol_bol<<endl;
cout<<"
2. Luas Permukaan bola :
"<<lp_bol<<endl;
garis();
cout<<"\n";break;
case
'5':
cout<<" ** Menghitung Volume Kerucut **
"<<endl;
garis();
cout<<"
Masukkan Nilai Jari-jari Alas : ";cin>>r;
cout<<"
Masukkan Nilai Tinggi Kerucut : ";cin>>t;
cout<<"
Sisi miring Selimut :
";cin>>sms;
cout<<"
1. Volume Kerucut :
"<<vol_ker<<endl;
cout<<"
2. Luas Permukaan Kerucut :
"<<lp_ker<<endl;
garis();
cout<<"\n";break;
case
'6':
cout<<" ** Menghitung Limas Segiempat (persegi) **
"<<endl;
garis();
cout<<"
Masukkan Nilai Panjang Sisi : ";cin>>ps;
cout<<"
Masukkan Nilai Tinggi Limas :
";cin>>t;
cout<<"
Masukkan Luas Segitiga pada Limas :
";cin>>luas_sgi3;
cout<<" 1. Volume Limas :
"<<vol_lim<<endl;
cout<<"
2. Luas Permukaan Limas :
"<<lp_lim<<endl;
garis();
cout<<"\n";break;
case
'7':
cout<<" ** Menghitung Prisma Segitiga **
"<<endl;
garis();
cout<<"
Masukkan Nilai Luas Alas : ";cin>>l_als_pris;
cout<<"
Masukkan Nilai Keliling Alas :
";cin>>k_als_pris;
cout<<"
Masukkan Nilai Tinggi Prisma :
";cin>>t;
cout<<"
1. Volume Limas
: "<<vol_pris<<endl;
cout<<"
2. Luas Permukaan Limas
: "<<lp_pris<<endl;
garis();
cout<<"\n";break;
default :
cout<<"Pilihan Yang Anda Masukkan Salah, Silahkan
Pilih Ulang\n\n\n"; break;
}
cout<<"Apakah
Anda Ingin Hitung Lagi [Y/T]: ";cin>>lagi;
If(lagi=='Y'||lagi=='y')
goto
awal;
getch();}
/* Selamat Mencoba */