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

About these ads

11 thoughts on “Java Object Oriented : Program Pengolahan Bangun Geometri

  1. Pingback: Java : HFTW Panel Hitung Version 1.1.2 | The TWOH's Engineering and Science

  2. thanks ya mas tas codding javanya…tapi ada yg masih error mas (System.out.println (“Bangun Belah Ketupat”); Belah Ketupat B = new Belah Ketupat();).apa bisa diperbaiki mas agar bisa running ^_^ .
    Saya andi,saya baru semester 1 dan pengen belajar bnyk soal java…klo ngga keberatan saya ada kasus/soal UTS kemarin mas…soalnya sbb:
    * Penjualan barang pada kasus waralaba Indomaret (syaratnya: dengan menggunakan super class, Menggunakan fasilitas input, Minimal data yang diinput 4 record, dan Untuk tampilan, ada proses Input dan Output.
    mohon pencerahannya/penyelesaiannya ya mas. TQ & GBU
    Nb. klo ngga keberatan,minta tolong coddingnya ya mas dikirim by email (email: andhy212@yahoo.com)

    • Kamu pasti langsung copy paste dari kode di atas ya? Itu belah ketupat error karena kelas belah ketupat memang sengaja belum dibikin, :p coba yang di kelas TestDrive kamu kurangi objeknya jadi cuma Balok dan Tabung saja.

      Regards, TWOH

  3. Pingback: Java : HFTW Panel Hitung Version 1.1.2 | TWOH's Engineering

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s