Java Object Oriented : Program Pengolahan Bangun Geometri

Program ini secara total melibatkan 9 buah file .java, yang dibagi menjadi tiga kategori class, yaitu :

  • Class Bangun Geometri (7 files)
  • Class TestDrive (1 file)
  • Class Menu/ Main Class (1 file)

Gambaran UML diagram secara kasar :

UML Diagram Program Pengolah Bangun Geometri

UML Diagram Program Pengolah Bangun Geometri

Fungsi dari program ini kurang sama lebih sama seperti program pencari luas atau volume dari suatu bangun geometri yang saya buat sebelumnya. Hanya saja, program ini lebih terstruktur susunan kelasnya dan di program ini pengguna bisa bebas memasukkan nilai dari suatu variabel, misal nilai panjang, lebar dan sebagainya.

  • Classes Bangun Geometri
    Kelas ini berisi primitif dari objek-objek bangun ruang, berisi variabel-variabel seperti panjang luas, tinggi, dan fungsi-fungsi setter/getter seperti getPanjang(), setLuas(). Tergantung dari jenis bangun geometrinya. Total ada tujuh bangun geometri di dalam tujuh file., namun disini saya hanya akan memberikan contoh dua bangun, bangun Balok dan Tabung.
    Berikut ini adalah algoritma dari file Balok.java:

    class Balok
    {
        private int panjang, lebar, tinggi, volume, luasPermukaan;
        public void setPanjang(int p)
        {
        panjang = p;
        }
        public void setLebar(int l)
        {
        lebar = l;
        }
        public void setTinggi(int t)
        {
        tinggi = t;
        }
        public void setVolume()
        {
        volume = panjang * tinggi * lebar;
        }
        public void setLuasPermukaan()
        {
        luasPermukaan = 2 * panjang * lebar + 2 * panjang * tinggi + 2 * lebar * tinggi;
        }
        public int getPanjang()
        {
        return panjang;
        }
        public int getLebar()
        {
        return lebar;
        }
        public int getTinggi()
        {
        return tinggi;
        }
        public int getVolume()
        {
        return volume;
        }
        public int getLuasPermukaan()
        {
        return luasPermukaan;
        }
    }
    

    file Tabung.java:

    import java.lang.Math;
    import java.text.DecimalFormat;
    class Tabung
    {
        DecimalFormat df = new DecimalFormat("#.##");
        private int tinggi, jarijari;
        private double volume, luasPermukaan;
        public void setTinggi(int t)
        {
            tinggi = t;
        }
        public void setJariJari(int r)
        {
            jarijari = r;
        }
        public void setVolume()
        {
            volume =  Math.PI * Math.pow(jarijari, 2) * tinggi;
        }
        public void setLuasPermukaan()
        {
            luasPermukaan = 2 * Math.PI * jarijari * (jarijari + tinggi);
        }
        public int getJariJari()
        {
            return jarijari;
        }
        public int getTinggi()
        {
            return tinggi;
        }
        public double getVolume()
        {
            return volume;
        }
        public double getLuasPermukaan()
        {
            return luasPermukaan;
        }
    }
    
  • Class TestDrive
    Kelas ini berfungsi untuk mengolah objek yang diwariskan dari kelas-kelas bangun geometri, seperti menghitung luas permukaan, volume, mengeset nilai panjang, lebar, jari-jari, dan sebagainya. Tergantung dari objek yang diolah.
    TestDrive.java

    import java.util.Scanner;
    class TestDrive
    {
        private static Scanner s = new Scanner(System.in);
        public static void balokTestDrive()
        {
        int p,l,t;
        Balok B = new Balok();
        System.out.println("Bangun Balok");
        System.out.println("Masukkan panjang balok :");
        p = s.nextInt();
        System.out.println("Masukkan lebar balok: ");
        l = s.nextInt();
        System.out.println("Masukkan tinggi balok : ");
        t = s.nextInt();
        B.setPanjang(p);
        B.setLebar(l);
        B.setTinggi(t);
        B.setVolume();
        B.setLuasPermukaan();
        System.out.println("Panjang balok = "+ B.getPanjang());
        System.out.println("Lebar balok = " + B.getLebar());
        System.out.println("Tinggi balok = "+ B.getTinggi());
        System.out.println("Volume balok = "+ B.getVolume());
        System.out.println("Luas permukaan balok = "+ B.getLuasPermukaan());
        }
        public static void belahKetupatTestDrive()
        {
        System.out.println("Bangun Belah Ketupat");    
        BelahKetupat B = new BelahKetupat();
        int sisi, d1;
        System.out.println("Masukkan panjang sisi :");
        sisi = s.nextInt();
        System.out.println("Masukkan panjang diagonal satu: ");
        d1 = s.nextInt();
        B.setSisi(sisi);
        B.setDiagonalSatu(d1);
        B.setDiagonalDua();
        B.setLuas();
        B.setKeliling();
        System.out.println("Sisi Belah Ketupat = " + B.getSisi());
        System.out.println("Diagonal1 Belah ketupat = " + B.getDiagonalSatu());
        
        System.out.println("Diagonal2 Belah Ketupat = " + B.df.format(B.getDiagonalDua()));
    
        System.out.println("Luas Belah Ketupat = " + B.df.format(B.getLuas()));    
        
        System.out.println("Keliling Belah Ketupat = "+ B.getKeliling());
        }
        public static void kubusTestDrive()
        {
        Kubus K = new Kubus();
        int sisi;
        System.out.println("Bangun Kubus");
        System.out.println("Masukkan panjang sisi :");
        sisi = s.nextInt();
        K.setSisi(sisi);
        K.setVolume();
        K.setLuasPermukaan();
        System.out.println("Panjang sisi kubus = "+ K.getSisi());
        System.out.println("Volume kubus = "+ K.getVolume());
        System.out.println("Luas permukaan kubus = "+ K.getLuasPermukaan());
        }
        public static void lingkaranTestDrive()
        {
        System.out.println("Bangun Lingkaran");
        Lingkaran L = new Lingkaran();    
        int jarijari;
        System.out.println("Masukkan panjang jari jari :");
        jarijari = s.nextInt();
        L.setJariJari(jarijari);
        L.setDiameter();
        L.setLuas();
        L.setKeliling();
        System.out.println("Jari-jari lingkaran = " + L.getJariJari());
        System.out.println("Diameter lingkaran = " + L.getDiameter());
        System.out.println("Luas lingkaran = " + L.df.format(L.getLuas()));
        System.out.println("Keliling lingkaran = " + L.df.format(L.getKeliling()));
        }
        public static void segiEmpatTestDrive()
        {
        SegiEmpat S = new SegiEmpat();
        int p,l;
        System.out.println("Bangun Segi Empat");
        System.out.println("Masukkan panjang :");
        p = s.nextInt();
        System.out.println("Masukkan lebar: ");
        l = s.nextInt();
        S.setPanjang(p);
        S.setLebar(l);
        S.setLuas();
        S.setKeliling();
        System.out.println("Panjang Segi Empat = "+S.getPanjang());
        System.out.println("Lebar Segi Empat = "+S.getLebar());
        System.out.println("Luas Segi Empat = " + S.getLuas());
        System.out.println("Keliling Segi Empat = " + S.getKeliling());
        }
        public static void segitigaSikuSikuTestDrive()
        {
        System.out.println("Bangun Segitiga Siku Siku");    
        SegiTigaSikuSiku S = new SegiTigaSikuSiku();
        int a,t;
        System.out.println("Masukkan alas :");
        a = s.nextInt();
        System.out.println("Masukkan tinggi: ");
        t = s.nextInt();
        S.setAlas(a);
        S.setTinggi(t);
        S.setMiring();
        S.setLuas();
        S.setKeliling();
        System.out.println("Alas Segitiga = " + S.getAlas());
        System.out.println("Tinggi Segitiga = " + S.getTinggi());
        
        System.out.println("Luas Segitiga Siku-Siku = " + S.getLuas());
    
        System.out.println("Sisi miring Segitiga = " + S.getMiring());    
        
        System.out.println("Keliling Segitiga Siku Siku = "+ S.getKeliling());
        }
        public static void tabungTestDrive()
        {
            Tabung T = new Tabung();
            int jarijari, t;
        System.out.println("Bangun Tabung");
               System.out.println("Masukkan panjang jari jari :");
        jarijari = s.nextInt();
        System.out.println("Masukkan tinggi: ");
        t = s.nextInt();
        T.setJariJari(jarijari);
        T.setTinggi(t);
            T.setVolume();
            T.setLuasPermukaan();
            System.out.println("Jarijari tabung = "+ T.getJariJari());
            System.out.println("Tinggi tabung = "+ T.getTinggi());
            System.out.println("Volume tabung = "+ T.df.format(T.getVolume()));
            System.out.println("Luas permukaan tabung = "+ T.df.format(T.getLuasPermukaan()));
        }
    }
    
  • Class Menu/Main Class
    Kelas menu berperan sebagai kelas utama yang akan memanggil bangun yang akan diolah atau dihitung luas permukaan atau volumenya, kelas ini hanya berisi daftar menu dari bangun-bangun yang ada.
    Menu.java

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.Scanner;
    class Menu
    {
        public static void main(String[] args)
        {
        try
            {
            System.out.println("Pengolahan Bangun Geometri");
            InputStreamReader r = new InputStreamReader(System.in);
            BufferedReader input = new BufferedReader(r);
            TestDrive test = new TestDrive();
            String pil;
            int p = 9;
            while(p!=0)
                {
                System.out.println("Menu");
                System.out.println("[1] Segitiga Siku-siku");
                System.out.println("[2] Lingkaran");
                System.out.println("[3] Belah Ketupat");
                System.out.println("[4] Segi Empat");
                System.out.println("[5] Tabung");
                System.out.println("[6] Kubus");
                System.out.println("[7] Balok");
                System.out.println("Masukkan angka pilihan");
                pil = input.readLine();
                p = Integer.parseInt(pil);
                switch(p)
                    {
                    case 1: test.segitigaSikuSikuTestDrive(); break;
                    case 2: test.lingkaranTestDrive(); break;
                    case 3: test.belahKetupatTestDrive(); break;
                    case 4: test.segiEmpatTestDrive(); break;
                    case 5: test.tabungTestDrive(); break;
                    case 6: test.kubusTestDrive(); break;
                    case 7: test.balokTestDrive(); break;
                    }
                System.out.println("Lanjutgan?(O = keluar/1 = tidak)");
                pil = input.readLine();
                p = Integer.parseInt(pil);
                }
            }
        catch(IOException e)
            {
            System.out.println("Error tidak dikenali");
            }
    
        }
    
    }
    

Untuk menjalankannya, pastikan semua file berada di dalam satu folder. Kemudian eksekusi perintah terminal
javac Menu.java
java Menu

Dan, ini adalah contoh output dari program~ Enjoy!

Output dari program java pengolah geometry

Output dari program





Download aplikasi kami di Google Play Store


Tutorial Menarik Lainnya :

9 Comments

  1. pheewe May 31, 2011
    • twohnuvo May 31, 2011
  2. pheewe May 31, 2011
    • twohnuvo February 21, 2012
  3. andi June 27, 2011
    • Herdi Naufal June 28, 2011
    • twohnuvo June 28, 2011
  4. Malik Aslam February 21, 2012
    • twohnuvo February 21, 2012

Leave a Reply

Do NOT follow this link or you will be banned from the site!