Skip to main content

3 Rekomendasi Tools Untuk UI/UX Designer Tools Gratis Terbaik 2022

 Tidak dapat dipungkiri bahwa user interface merupakan salah satu komponen penting di dalam sebuah website/aplikasi. Terlepas dari fungsi aplikasinya, sebuah aplikasi harus memiliki tampilan yang baik dan mudah digunakan oleh penggunanya.  Oleh karena itu saat ini banyak perusahaan yang membutuhkan tenaga UI/UX designer untuk menyempurnakan design tampilan pada website/aplikasi mereka. Jika anda berminat untuk menjadi seorang UI/UX designer, berikut rekomendasi UI/UX designer dari saya yang tentunya gratis dan cocok digunakan untuk pemula maupun anda yang sudah lama menggeluti bidang ini. Ga pake lama skuy kita langsung ke rekomendasinya. 1. figma Nah di rekomendasi nomer 1 ini ada figma. Belakangan ini nama figma cukup terkenal di kalangan para UI/UX designer. Figma cukup mudah digunakan bahkan untuk para pemula yang ingin mulai mencoba untuk menggeluti bidang UI/UX designer. Terlebih lagi software ini berbasais web sehinggal anda tidak perlu melakukan instalasi software untu...

Program Menghitung Luas, keliling dan Volume Bangun Ruang Dengan OOP JAVA

Pada postingan kali ini saya akan memberikan contoh program untuk menghitung luas, keliling dan volume dari bangun ruang di java dengan paradigma OOP. Program yang saya berikan ini berbasis GUI sehingga akan memudahkan user dalam menggunakan program/aplikasi ini nantinya. Baik langsung saja kita masuk ke programnya...

File-file yang ada di program ini berada dalam 1 package.

AplikasiBangunRuang.java (main class)

package bangunruang;
import java.util.ArrayList;
import javax.swing.table.DefaultTableModel;
import javax.swing.JOptionPane;

/**
 *
 * @author ASIKIN AJ
 */
public class AplikasiBangunRuang extends javax.swing.JFrame {

    /**
     * Creates new form AplikasiBangunRuang
     */
   
    ArrayList<EntitasData> DataHistory = new ArrayList<EntitasData>();
    DefaultTableModel tabelModel;
   
    public AplikasiBangunRuang() {
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        label1 = new javax.swing.JLabel();
        label2 = new javax.swing.JLabel();
        label3 = new javax.swing.JLabel();
        bangun_ruang = new javax.swing.JComboBox<>();
        input1 = new javax.swing.JTextField();
        input2 = new javax.swing.JTextField();
        input3 = new javax.swing.JTextField();
        jScrollPane1 = new javax.swing.JScrollPane();
        tabel = new javax.swing.JTable();
        hitung = new javax.swing.JButton();
        label4 = new javax.swing.JLabel();
        label5 = new javax.swing.JLabel();
        label6 = new javax.swing.JLabel();
        luas = new javax.swing.JTextField();
        keliling = new javax.swing.JTextField();
        volume = new javax.swing.JTextField();
        jLabel9 = new javax.swing.JLabel();
        reset = new javax.swing.JButton();
        cm1 = new javax.swing.JLabel();
        cm2 = new javax.swing.JLabel();
        cm3 = new javax.swing.JLabel();
        exit = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jLabel1.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N
        jLabel1.setText("Menghitung Volume, Keliling dan Luas bangun ruang");

        jLabel2.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
        jLabel2.setText("Bangun Ruang");

        label1.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
        label1.setText("Panjang Balok");

        label2.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
        label2.setText("Lebar Balok");

        label3.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
        label3.setText("Tinggi Balok");

        bangun_ruang.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
        bangun_ruang.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Balok", "Kubus", "Bola" }));
        bangun_ruang.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                bangun_ruangActionPerformed(evt);
            }
        });

        input1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                input1ActionPerformed(evt);
            }
        });

        input3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                input3ActionPerformed(evt);
            }
        });

        tabel.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null}
            },
            new String [] {
                "Bangun Ruang", "p/s/d", "l", "t", "Luas", "Keliling", "Volume"
            }
        ));
        jScrollPane1.setViewportView(tabel);

        hitung.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
        hitung.setText("Hitung");
        hitung.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                hitungActionPerformed(evt);
            }
        });

        label4.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
        label4.setText("Luas");

        label5.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
        label5.setText("Keliling");

        label6.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
        label6.setText("Volume");

        jLabel9.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
        jLabel9.setText("History");

        reset.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
        reset.setText("Reset Form");
        reset.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                resetActionPerformed(evt);
            }
        });

        cm1.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        cm1.setText("cm");

        cm2.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        cm2.setText("cm");

        cm3.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        cm3.setText("cm");

        exit.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
        exit.setText("Exit");
        exit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                exitActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(107, 107, 107)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel1)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(label1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(label2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(label3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(label4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(label5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(label6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                            .addComponent(hitung, javax.swing.GroupLayout.PREFERRED_SIZE, 116, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(184, 184, 184)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addComponent(reset)
                                .addGap(18, 18, 18)
                                .addComponent(exit, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(bangun_ruang, 0, 206, Short.MAX_VALUE)
                                    .addComponent(input1)
                                    .addComponent(input2)
                                    .addComponent(input3)
                                    .addComponent(luas)
                                    .addComponent(keliling)
                                    .addComponent(volume))
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addGap(7, 7, 7)
                                        .addComponent(cm1))
                                    .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(cm2))
                                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(cm3)))
                                .addGap(22, 22, 22)
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jLabel9, javax.swing.GroupLayout.PREFERRED_SIZE, 77, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 697, javax.swing.GroupLayout.PREFERRED_SIZE))))))
                .addContainerGap(46, Short.MAX_VALUE))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(25, 25, 25)
                .addComponent(jLabel1)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(59, 59, 59)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel2)
                            .addComponent(bangun_ruang, javax.swing.GroupLayout.PREFERRED_SIZE, 49, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(55, 55, 55)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(label1)
                            .addComponent(input1, javax.swing.GroupLayout.PREFERRED_SIZE, 41, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(cm1))
                        .addGap(55, 55, 55)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(input2, javax.swing.GroupLayout.PREFERRED_SIZE, 41, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(label2)
                            .addComponent(cm2))
                        .addGap(55, 55, 55)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(input3, javax.swing.GroupLayout.PREFERRED_SIZE, 41, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(label3)
                            .addComponent(cm3))
                        .addGap(55, 55, 55)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(luas, javax.swing.GroupLayout.PREFERRED_SIZE, 41, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(label4))
                        .addGap(55, 55, 55)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(keliling, javax.swing.GroupLayout.PREFERRED_SIZE, 41, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(label5))
                        .addGap(55, 55, 55)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(volume, javax.swing.GroupLayout.PREFERRED_SIZE, 41, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(label6))
                        .addGap(43, 43, 43)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(hitung, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(reset, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(exit, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(60, 60, 60)
                        .addComponent(jLabel9)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 337, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(981, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(0, 0, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>                        

    private void input3ActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
    }                                      

    private void resetActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
        input1.setText("");
        input2.setText("");
        input3.setText("");
        luas.setText("");
        volume.setText("");
        keliling.setText("");
    }                                    

    private void hitungActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
        String input_1 = input1.getText();
       
        if(bangun_ruang.getSelectedItem()=="Balok"){
            String input_2 = input2.getText();
            String input_3 = input3.getText();
           
            Balok balok = new Balok(input_1, input_2, input_3);
            luas.setText(balok.getLuas()+" cm2");
            keliling.setText(balok.getKeliling()+" cm");
            volume.setText(balok.getVolume()+" cm3");
        }
        else if(bangun_ruang.getSelectedItem()=="Kubus"){
            Kubus kubus = new Kubus(input_1);
            luas.setText(kubus.getLuas()+" cm2");
            keliling.setText(kubus.getKeliling()+" cm");
            volume.setText(kubus.getVolume()+" cm3");
        }
        else{
            Bola bola = new Bola(input_1);
            luas.setText(bola.getLuas()+" cm2");
            keliling.setText(bola.getKeliling()+" cm");
            volume.setText(bola.getVolume()+" cm3");
        }
       
        if(bangun_ruang.getSelectedItem()=="Balok"){
            isiData(bangun_ruang.getSelectedItem().toString(), input1.getText(), input2.getText(), input3.getText(), luas.getText(), keliling.getText(), volume.getText());
        }
        else{
            isiData(bangun_ruang.getSelectedItem().toString(), input1.getText(), "-", "-", luas.getText(), keliling.getText(), volume.getText());
        }
           
        tampilData();
    }                                      

    private void bangun_ruangActionPerformed(java.awt.event.ActionEvent evt) {                                            
        // TODO add your handling code here:
            input1.setText("");
            input2.setText("");
            input3.setText("");
            luas.setText("");
            volume.setText("");
            keliling.setText("");
           
        if(bangun_ruang.getSelectedItem()=="Balok"){
            label2.setVisible(true);
            label3.setVisible(true);
            input2.setVisible(true);
            input3.setVisible(true);
            cm2.setVisible(true);
            cm3.setVisible(true);
            label1.setText("Panjang Balok");
            label4.setText("Luas Balok");
            label5.setText("Keliling Balok");
            label6.setText("Volume Balok");
        }
        else if(bangun_ruang.getSelectedItem()=="Kubus"){
            label1.setText("Sisi Kubus");
            label2.setVisible(false);
            label3.setVisible(false);
            input2.setVisible(false);
            input3.setVisible(false);
            cm2.setVisible(false);
            cm3.setVisible(false);
            label4.setText("Luas Kubus");
            label5.setText("Keliling Kubus");
            label6.setText("Volume Kubus");
        }
        else{
            label1.setText("Diameter Lingkaran");
            label2.setVisible(false);
            label3.setVisible(false);
            input2.setVisible(false);
            input3.setVisible(false);
            cm2.setVisible(false);
            cm3.setVisible(false);
            label4.setText("Luas Bola");
            label5.setText("Keliling Bola");
            label6.setText("Volume Bola");
        }
    }                                            

    private void exitActionPerformed(java.awt.event.ActionEvent evt) {                                    
        // TODO add your handling code here:
        int jawab = JOptionPane.showConfirmDialog(null, "Anda Yakin Akan Keluar?", "Keluar", JOptionPane.OK_OPTION);
        if(jawab == JOptionPane.OK_OPTION){
            dispose();
        }
    }                                    

    private void input1ActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
    }                                      

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(AplikasiBangunRuang.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(AplikasiBangunRuang.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(AplikasiBangunRuang.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(AplikasiBangunRuang.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new AplikasiBangunRuang().setVisible(true);
            }
        });
    }
   
    public void isiData(String bangun_ruang, String input1, String input2, String input3, String luas, String keliling, String volume){
        EntitasData tambah = new EntitasData(bangun_ruang, input1, input2, input3, luas, keliling, volume);
        DataHistory.add(tambah);
    }
   
    public void tampilData(){
        String[] kolom = {"Bangun Ruang", "p/s/d", "l", "t", "Luas", "Keliling", "Volume"};
        Object[][] data = new Object[DataHistory.size()][7];
       
        int i = 0;
        for(EntitasData n : DataHistory){
            String[] arrData = {n.getBangunRuang(), n.getInput1(), n.getInput2(), n.getInput3(), n.getLuas(), n.getKeliling(), n.getVolume()};
            data[i] = arrData;
            i++;
        }
       
        tabelModel = new DefaultTableModel(data, kolom){
            //membuat tabel tidak bisa diedit saat diklik
            @Override
            public boolean isCellEditable(int rowIndex, int colIndex) {
                return false;
            }
        };
       
        tabel.setModel(tabelModel);
    }

    // Variables declaration - do not modify                    
    private javax.swing.JComboBox<String> bangun_ruang;
    private javax.swing.JLabel cm1;
    private javax.swing.JLabel cm2;
    private javax.swing.JLabel cm3;
    private javax.swing.JButton exit;
    private javax.swing.JButton hitung;
    private javax.swing.JTextField input1;
    private javax.swing.JTextField input2;
    private javax.swing.JTextField input3;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextField keliling;
    private javax.swing.JLabel label1;
    private javax.swing.JLabel label2;
    private javax.swing.JLabel label3;
    private javax.swing.JLabel label4;
    private javax.swing.JLabel label5;
    private javax.swing.JLabel label6;
    private javax.swing.JTextField luas;
    private javax.swing.JButton reset;
    private javax.swing.JTable tabel;
    private javax.swing.JTextField volume;
    // End of variables declaration                  
}


BangunRuang.java

package bangunruang;

/**
 *
 * @author ASIKIN AJ
 */
public abstract class BangunRuang {
    public abstract String getLuas();
    public abstract String getKeliling();
    public abstract String getVolume();
}


Balok.java

package bangunruang;

/**
 *
 * @author ASIKIN AJ
 */
public class Balok extends BangunRuang{
    float panjang;
    float lebar;
    float tinggi;
   
    public Balok(String panjang, String lebar, String tinggi){
        this.panjang = Float.parseFloat(panjang);
        this.lebar = Float.parseFloat(lebar);
        this.tinggi = Float.parseFloat(tinggi);
    }
   
    @Override
    public String getLuas(){
        float luas;
       
        luas = 2*((this.panjang*this.lebar)+(this.panjang*this.tinggi)+(this.lebar*this.tinggi));
        return Float.toString(luas);
    }
   
    @Override
    public String getKeliling(){
        float keliling;
       
        keliling = (this.panjang + this.lebar + this.tinggi)*4;
        return Float.toString(keliling);
    }
   
    @Override
    public String getVolume(){
        float volume;
       
        volume = this.panjang * this.lebar * this.tinggi;
        return Float.toString(volume);
    }
}


Kubus.java

package bangunruang;

/**
 *
 * @author ASIKIN AJ
 */
public class Kubus extends BangunRuang{
    float sisi;
   
    public Kubus(String sisi){
        this.sisi = Float.parseFloat(sisi);
    }
   
    @Override
    public String getLuas(){
        float luas;
       
       
        luas = this.sisi * 6;
        return Float.toString(luas);
    }
   
    @Override
    public String getKeliling(){
        float keliling;
       
        keliling = this.sisi * 12;
        return Float.toString(keliling);
    }
   
    @Override
    public String getVolume(){
        float volume;
       
        volume = (float)(Math.pow(this.sisi, 3));
        return Float.toString(volume);
    }
}


Bola.java

package bangunruang;

/**
 *
 * @author ASIKIN AJ
 */
public class Bola extends BangunRuang{
    float diameter;
   
    public Bola(String diameter){
        this.diameter = Float.parseFloat(diameter);
    }
   
    @Override
    public String getLuas(){
        float luas;
        float r = this.diameter/2;

        luas = (float)(Math.pow(r, 2) * 4 * Math.PI);
        return Float.toString(luas);
    }
   
    @Override
    public String getKeliling(){
        float keliling;
        float r = this.diameter/2;
       
        //keliling = (float)(4/3 * Math.PI * Math.pow(r, 2));
        keliling =  (float)(Math.pow(r, 2) * 4/3 * Math.PI);
        return Float.toString(keliling);
    }
   
    @Override
    public String getVolume(){
        float volume;
        float r = this.diameter/2;
       
        volume = (float)(Math.pow(r, 3) * 4/3 * Math.PI);
        return Float.toString(volume);
    }
}


EntitasData.java

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package bangunruang;

/**
 *
 * @author ASIKIN AJ
 */
public class EntitasData {
    private String bangun_ruang;
    private String input1;
    private String input2;
    private String input3;
    private String luas;
    private String keliling;
    private String volume;
   
    public EntitasData(String bangun_ruang, String input1, String input2, String input3, String luas, String keliling, String volume) {
        this.bangun_ruang = bangun_ruang;
        this.input1 = input1;
        this.input2 = input2;
        this.input3 = input3;
        this.luas = luas;
        this.keliling = keliling;
        this.volume = volume;
    }
   
    public String getBangunRuang(){
        return this.bangun_ruang;
    }
   
    public String getInput1(){
        return this.input1;
    }
   
    public String getInput2(){
        return this.input2;
    }
   
    public String getInput3(){
        return this.input3;
    }
   
    public String getLuas(){
        return this.luas;
    }
   
    public String getKeliling(){
        return this.keliling;
    }
   
    public String getVolume(){
        return this.volume;
    }
   
}


Keterangan:

- Class AplikasiBangunRuang.java merupakan main class yaitu class yang pertama kali dipanggil/dijalankan ketika program di run

- Class BangunRuang.java merupakan abstract class yang berisi 3 abstract method dimana nantinya semua abstract method ini akan diOverride pada masing-masing class yang melakukan extends(inheritence) ke abstract class ini.

- Class Kubus.java berisi 3 method yang merupakan override dari parent classnya (BangunRuang.java) yang masing-masing methodnya digunakan untuk menghitung luas, keliling dan volume kubus.

- Class Balok.java berisi 3 method yang merupakan override dari parent classnya (BangunRuang.java) yang masing-masing methodnya digunakan untuk menghitung luas, keliling dan volume balok.

- Class bola.java berisi 3 method yang merupakan override dari parent classnya (BangunRuang.java) yang masing-masing methodnya digunakan untuk menghitung luas, keliling dan volume bola.

- Class EntitasData.java digunakan untuk membantu program menginputkan data history konversi kedalam ArrayList yang nantinya data di dalam ArrayList tersebut akan ditampilkan di dalam tabel.


Tampilan program:




Sekian dari saya, jika ada kritik/saran silahkan tinggalkan di kolom komentar. Terima kasih telah berkunjung :)

Comments

Popular posts from this blog

Program C Insert Terurut dan Delete Tertentu Dengan Struct

Pada postingan kali ini saya akan memberikan contoh program C sederhana menggunakan struct untuk input data terurut dan delete data tertentu. Ga usah basa-basi lagi langsung aja skuy kita ke code programnya. #include <stdio.h> #include <stdlib.h> typedef struct simpul dnode; struct simpul{     int data;     dnode *next, *prev; }; dnode *head=NULL, *p; int choose; //MENU void menu(); //URUT void sortir(); //ALOKASI void alokasi(); //INSERT void akhir(); void before(int ); //DELETE void del_awal(); void del_akhir(); void del_ttt(); void bebas(dnode *b); //CETAK void tampil(); int main() {     do{         puts("MENU DLL :");         puts("1. Insert Terurut");         puts("2. Delete Tertentu");         puts("3. Keluar");         printf("Masukkan pilihan anda : ");         scanf("%d", &choose);         fflus...

Program Konversi Bilangan Dengan OOP JAVA

Pada postingan kali ini saya akan memberikan contoh program konversi mata bilangan dari desimal, biner, oktal dan hexadesimal di java dengan paradigma OOP. Program yang saya berikan ini berbasis GUI sehingga akan kan user dalam menggunakan program/aplikasi ini nantinya. Baik langsung saja kita masuk ke programnya... File-file yang ada di program ini berada dalam 1 package. Konversi_bilangan.java (main class) package konversi_bilangan; import java.util.ArrayList; import javax.swing.table.DefaultTableModel; /**  *  * @author ASIKIN AJ  */ public class Konversi_bilangan extends javax.swing. JFrame {     /**      * Creates new form Konversi_bilangan      */         ArrayList < EntitasData > history = new ArrayList < EntitasData >();     DefaultTableModel tabelModel ;         public Konversi_bilangan () {         initComponents ();   ...

3 Rekomendasi Tools Untuk UI/UX Designer Tools Gratis Terbaik 2022

 Tidak dapat dipungkiri bahwa user interface merupakan salah satu komponen penting di dalam sebuah website/aplikasi. Terlepas dari fungsi aplikasinya, sebuah aplikasi harus memiliki tampilan yang baik dan mudah digunakan oleh penggunanya.  Oleh karena itu saat ini banyak perusahaan yang membutuhkan tenaga UI/UX designer untuk menyempurnakan design tampilan pada website/aplikasi mereka. Jika anda berminat untuk menjadi seorang UI/UX designer, berikut rekomendasi UI/UX designer dari saya yang tentunya gratis dan cocok digunakan untuk pemula maupun anda yang sudah lama menggeluti bidang ini. Ga pake lama skuy kita langsung ke rekomendasinya. 1. figma Nah di rekomendasi nomer 1 ini ada figma. Belakangan ini nama figma cukup terkenal di kalangan para UI/UX designer. Figma cukup mudah digunakan bahkan untuk para pemula yang ingin mulai mencoba untuk menggeluti bidang UI/UX designer. Terlebih lagi software ini berbasais web sehinggal anda tidak perlu melakukan instalasi software untu...