Program Menghitung Luas Bangun Tiga Dimensi bahasa C++

loading...

Program Menghitung Luas Bangun Tiga Dimensi bahasa C++

Oyasuminasai Mina-san ! Postingan kali ini akan dibagikan source code program yang dapat menghitung luas bangun tiga dimensi.Perlu kalian ketahui bahwa bangun ruang atau bangun tiga dimensi sedikit agak berbeda dari bangun datar dalam menentukan rumus nya yang tegantung dari bentuknya bangun masing-masing karena secara umum bentuk dari bangun ruang adalah tiga dimensiseperti namanya yang mempunyai isi berbeda dengan bangun datar yang hanya 2 dimensi.

Pada program ini kita menggunakan Inheritance atau pewarisan dan fungsi virtual(polimorfisme)
sedikit tentang Fungsi Virtual

Apa itu Fungsi Virtual ?

  • Adalah fungsi yang mendukung adanya polymorphic function.  artinya fungsi tersebut dapat didefinisikan ulang pada kelas - kelas turunannya.  Fungsi ini biasanya terdapat pada kelas - kelas dasar.  Walaupun demikian, kita juga dapat mendeklarasikan fungsi virtual pada kelas - kelas turunan yang akan dijadikan sebagai kelas dasar bagi kelas - kelas lainnya.  Dalam C++, untuk mendefinisikan fungsi sebagai fungsi virtual adalah dengan menggunakan kata kunci Virtual yaitu dengan menempatkan di depan pendeklarasian fungsi tersebut .
  • Pendefinisian fungsi virtual yang terdapat pada kelas dasar biasanya tidak begitu berarti.Artinya kode - kode yang terdapat di dalamnya masih bersifat general.  Selanjutnya setiap kelas turunan akan mendefinisikan ulang fungsi virtual itu dengan mengisikan perintah - perintah yang sudah spesifik sesuai dengan kebutuhan dari kelas turunan tersebut.
Untuk Inheritance kalian dapat membacanya disini



Program ini dapat menghitung luas dari bangung tiga dimensi diantaranya :

  • Menghitung Luas Limas SegiEmpat
  • Menghitung Luas Balok
  • Menghitung Luas Kerucut
  • Menghitung Luas Bola
  • Menghitung Luas Tabung

Source Code C++

#include <iostream>
#include <conio.h>
#include <math.h>
#define phi 3.14
using namespace std;
class Bangun3D
{
 protected:
       double x,y,z;
  public:
       virtual void Input()=0;
       virtual void display_area()=0;
};

class limas : public Bangun3D
{
   public:
    void Input(void)
    {
       cout<<"\n\nMenghitung Luas Limas Segiempat\n\n";
       cout<<"Lebar Alas  = "; cin>>x;
       cout<<"Panjang Alas = "; cin>>y;
       cout<<"Sisi Miring Limas = "; cin>>z;
    } 
    void display_area(void)
    {
       double luas,lp;
       lp=(1/2*y*z*2) + (1/2*x*z*2);
       luas = x*y+lp;
       cout<<"Luas Limas  = "<<luas;
    }
};
class Balok : public Bangun3D
{
   public:
    void Input(void)
    {
       cout<<"\n\nMenghitung Luas Balok\n\n";
       cout<<"Panjang = "; cin>>x;
       cout<<"Lebar   = "; cin>>y;
       cout<<"Tinggi  = "; cin>>z;
    }
    void display_area(void)
    {
       double luas;
       luas =(2*x*y)+(2*x*z)+(2*y*z);
       cout<<"Luas Balok = "<<luas;
    }
};
class Tabung : public Bangun3D
{
   public:
    void Input(void)
    {
       cout<<"\n\nMenghitung Luas Tabung\n\n";
       cout<<"Jari Jari = "; cin>>x;
       cout<<"Tinggi   = "; cin>>y;
    }
    void display_area(void)
    {
       double luas;
       luas=2*(phi*x*x)+phi*x*y;
       cout<<"Luas Tabung = "<<luas;
    }
};
class kerucut : public Bangun3D
{
   public:
    void Input(void)
    {
       cout<<"\n\nMenghitung Luas kerucut\n\n";
   
       cout<<"Jari-jari Alas : ";cin>>x;
       cout<<"Tinggi Kerucut : ";cin>>y;
    }
    void display_area(void)
    {
       double luas;
       luas= phi*x*(x+sqrt((x*x)+(y*y)));
       cout<<"Luas kerucut = "<<luas;
    }
};
class bola : public Bangun3D
{
   public:
    void Input(void)
    {
       cout<<"\n\nMenghitung Luas bola\n\n";
       cout<<"Jari-jari = "; cin>>x;
    }
    void display_area(void)
    {
       double luas;
       luas = 4*phi*pow(x,2);
       cout<<"Luas bola = "<<luas;
    }
};
int main()
{
 system("cls");
 limas lm;
 Balok bal;
 Tabung tab;
 kerucut k;
 bola bol;

 Bangun3D *list[5];
  list[0]=&lm;
 list[1]=&bal;
 list[2]=&tab;
 list[3]=&k;
 list[4]=&bol;
 int pilih;
 while(1)
 {
  system("cls");
  cout<<endl<<"Menghitung Luas Bangun Datar"<<endl;
  cout<<"1) Luas Limas"<<endl;
  cout<<"2) Luas Balok"<<endl;
  cout<<"3) Luas Tabung"<<endl;
  cout<<"4) Luas Kerucut"<<endl;
  cout<<"5) Luas Bola"<<endl;
  cout<<"6) Exit"<<endl;
  cout<<"Masukkan Pilihan: ";
  cin>>pilih;
    if(pilih==1)
  {
      list[0]->Input();
      list[0]->display_area();
      getch();
  }
  else if (pilih==2)
  {
      list[1]->Input();
      list[1]->display_area();
      getch();
  }
  else if (pilih==3)
  {
      list[2]->Input();
      list[2]->display_area();
      getch();
  }
  else if (pilih==4)
  {
      list[3]->Input();
      list[3]->display_area();
      getch();
  }
  else if (pilih==5)
  {
      list[4]->Input();
      list[4]->display_area();
      getch();
  }
  else
      exit(1);
 }
}

Mari kita bahas source code nya

#include <iostream>
#include <conio.h>
#include <math.h>
#define phi 3.14
Header seperti biasa kita membutuhkan math.h untuk perhitungan matematika menggunakan pow,sqrt dan semacamnya dan saya berikan #define phi 3.14 untuk mendeklarasikan phi dari awal.jika kalian belum mengetahui tentang file header kalian dapat pergi ke halaman dibawah ini
baca disini Apa itu File Header ?


class Bangun3D
{
 protected:
       double x,y,z;
  public:
       virtual void Input()=0;
       virtual void display_area()=0;
};
Yang selanjutnya kita lakukan adalah membuat class induknya boleh diberi nama sesuka kalian dan pada baris ke 6-7 merupakan fungsi virtual yang telah dijelaskan diatas sebelumnya
class limas : public Bangun3D{}
class Balok : public Bangun3D{}
class Tabung : public Bangun3D{}
class kerucut : public Bangun3D{}
class bola : public Bangun3D{}
Perhatikan setiap kelas mempunyai fungsi virtual yang sama dengan isi yang berbeda sesuai dengan rumus dari masing-masing bangun.
limas lm;
 Balok bal;
 Tabung tab;
 kerucut k;
 bola bol;

 Bangun3D *list[5];
  list[0]=&lm;
 list[1]=&bal;
 list[2]=&tab;
 list[3]=&k;
 list[4]=&bol;
Pada bagian ini merupakan pemanggilan masing-masing class dan saya tambahkan list[5] untuk membuat menu pemilihan perhitungan apa yang diinginkan oleh user

Hasil setelah dijalankan menggunakan cmd

Sekian yang dapat saya sampaikan jika ada pertanyaan sampaikan dibawah ya.Semoga dapat bermanfaat

Previous
Next Post »
Thanks for your comment