Senin, 13 Februari 2012

Program hitung Luas dan Volume Bangun Ruang Menggunakan Borland C++ dengan file Header Buatan Sendiri



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.
  1. 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:
  1. 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.

  1. 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.*/
    • #include “tugas.h”
/*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.

  1. 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“;}

  1. 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";
  1.  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.
    • switch(pilih)
    • {
/* 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. */
    • default :
/*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;
    • }

  1. 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.
    • }
  1. 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 */

Tidak ada komentar:

Posting Komentar