Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 11

PENGENALAN

Antara Muka Pengguna Grafik, atau ringkasnya GUI, ialah sejenis pengguna
antara muka yang membolehkan pengguna berinteraksi dengan peranti
elektronik dan aplikasi perisian menggunakan elemen visual seperti ikon,
butang, menu, dan tingkap. GUI direka bentuk untuk memudahkan pengguna
mengemudi dan menggunakan sistem yang kompleks dengan memberikan
mereka visual perwakilan fungsi dan keupayaan sistem.

Java menyediakan beberapa perpustakaan GUI terbina dalam,


termasuk AWT(Abstract Windows Toolkit) dan Swing, yang boleh digunakan
untuk mencipta antara muka pengguna yang ringkas atau kompleks. AWT
ialah set asal kelas GUI yang menyediakan set asas Komponen dan bekas
GUI, yang mempunyai rupa dan rasa asli sistem pengendalian yang berbeza.
Walau bagaimanapun, komponen AWT boleh menjadi lebih perlahan dan
kurang fleksibel daripada rakan Swing mereka. Swing adalah yang lebih baru
dan set kelas GUI yang lebih berkuasa yang menyediakan set yang kaya
komponen dan bekas yang boleh disesuaikan untuk kelihatan dan
berkelakuan seperti komponen platform asli. Komponen ayunan dilaksanakan
sepenuhnya di Jawa, menjadikannya bebas platform dan lebih fleksibel
daripada komponen AWT. Swing juga menyediakan komponen yang lebih
maju dan
ciri seperti rupa dan rasa boleh pasang dan sokongan kebolehaksesan.

tujuan ini projek ini adalah untuk memberi pengenalan ringkas kepada
aplikasi berasaskan GUI pembangunan di Jawa melalui penggunaan
perpustakaan AWT dan Swing GUI oleh mencipta aplikasi kalkulator BMI
yang menggunakan kedua-dua GUI Java perpustakaan dalam menyediakan
titik interaksi kepada pengguna akhir.

1
SKOP KERJA SETIAP AHLI KUMPULAN

2
PAPAN CERITA

Output

3
CARTA ALIR

4
HASIL PROJEK.

5
DOKUMENTASI .

BMICalculator.java
package bmi;

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.text.DecimalFormat;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.BoxLayout;
import java.awt.FlowLayout;
import java.awt.Component;
import javax.swing.SwingConstants;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class BMICalculator extends JFrame {


  
    private JPanel contentPane;
    private JLabel lblBmiOutput = new JLabel();    
    private BMICalculatorLogic bmiCalculatorLogicObj = new
BMICalculatorLogic();
    private JTextField tfBerat = new JTextField();
    private JTextField tfTinggi = new JTextField();

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    BMICalculator frame = new BMICalculator();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
        }
      }
        });
  }

    /**
     * Create the frame.
     */
    public BMICalculator() {

6
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

        setContentPane(contentPane);
        contentPane.setLayout(null);
    
        JPanel panel = new JPanel();
        panel.setBounds(48, 27, 152, 27);
        contentPane.add(panel);
        panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
    
        JLabel lblBerat = new JLabel("Berat(Kg): ");
        panel.add(lblBerat);
        panel.add(tfBerat);
        tfBerat.setColumns(10);
        tfBerat.setColumns(5);
    
        JPanel panel_1 = new JPanel();
        panel_1.setBounds(48, 66, 152, 27);
        contentPane.add(panel_1);
        panel_1.setLayout(new BoxLayout(panel_1, BoxLayout.X_AXIS));
    
        JLabel lblTinggi = new JLabel("Tinggi(m): ");
        panel_1.add(lblTinggi);
        
        tfTinggi = new JTextField();
        tfTinggi.setColumns(10);
        panel_1.add(tfTinggi);
    
        JPanel panel_2 = new JPanel();
        panel_2.setBounds(49, 170, 298, 27);
        contentPane.add(panel_2);
    
        JLabel lblBmi = new JLabel("BMI: ");
        panel_2.add(lblBmi);
    
        panel_2.add(lblBmiOutput);
    
        JPanel panel_3 = new JPanel();
        panel_3.setBounds(346, 12, 80, 232);
        contentPane.add(panel_3);
        panel_3.setLayout(new BoxLayout(panel_3, BoxLayout.Y_AXIS));
    
        JLabel lblStatus = new JLabel("Status:");
        lblStatus.setHorizontalAlignment(SwingConstants.CENTER);
        panel_3.add(lblStatus);
    
        JLabel lblStatusOutput = new JLabel("");

7
        lblStatusOutput.setHorizontalAlignment(SwingConstants.CENTER);
        panel_3.add(lblStatusOutput);
    
        JButton btnCalculate = new JButton("Calculate");
        btnCalculate.setBounds(48, 217, 105, 27);
        contentPane.add(btnCalculate);
        btnCalculate.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                class BmiCalculatorManager {
                    private boolean validInput = false;
                    private DecimalFormat df = new DecimalFormat("0.00");
          
                    private void set() {        
                        if(isDouble(tfBerat.getText())&&isDouble(tfTinggi.getText())) {
                            validInput = true;
                            double inputtedBerat =
Double.parseDouble(tfBerat.getText());
                            double inputtedTinggi =
Double.parseDouble(tfTinggi.getText());
                            bmiCalculatorLogicObj.set(inputtedBerat, inputtedTinggi);
                        }else {        
                            validInput = false;
            }
          }
          
                    static boolean isDouble(String value) {
                        try {                          
                            if(Double.parseDouble(value) > 0) {
                                return true;
              }
                        }catch(NumberFormatException e) {
                            // Handles Exception
            }
                        return false;
          }
          
                    private void get() {
                        if(validInput) { // Valid weight & height          
                           
lblBmiOutput.setText(df.format(bmiCalculatorLogicObj.getBMI())+"
Kg/m^2"); // Outputs BMI value
                            lblStatusOutput.setText(bmiCalculatorLogicObj.getStatus());
// Outputs status
                        }else { // Invalid weight & height
                            lblBmiOutput.setText("Invalid weight or height value, try
entering numbers for each fields");
            }
          }
        }
        

8
                BmiCalculatorManager bmiCalculatorManagerObj = new
BmiCalculatorManager();// Instantiate bmiCalculatorManager
                bmiCalculatorManagerObj.set();
                bmiCalculatorManagerObj.get();
      }
        });
    
        JButton btnReset = new JButton("Reset");
        btnReset.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                lblBmiOutput.setText("");
                lblStatusOutput.setText("");
                tfTinggi.setText("");
                tfBerat.setText("");
      }
        });
        btnReset.setBounds(242, 217, 105, 27);
        contentPane.add(btnReset);
  }
}

9
BMICalculatorLogic.java

package bmi;
import java.util.*;
import java.lang.Math;

public class BMICalculatorLogic {


    private double weight;
    private double height;
    private double bmi;
  
    private void calculateBMI() {
        this.bmi = (weight/Math.pow(height, 2));
  }
  
    public void set(double weight, double height) {
        this.weight = weight;
        this.height = height;
  }
  
    public double getBMI() {
        this.calculateBMI();
        return this.bmi;
  }
  
    public String getStatus() {
        this.calculateBMI();
        String status = "";
    
        if(this.bmi<18.5d) { // Underweight
            status = "Underweight";
        }else if(this.bmi < 25) { // Normal
            status = "Normal";          
        }else if(this.bmi < 30){// Overweight          
            status = "Overweight";                      
        }else { // Obese
            status = "Obese";                      
    }
    
        return status;
  }
}

10
PENUTUP.

Kesimpulannya, terdapat pelbagai hasil pembelajaran dari perlaksanaan


projek simple application development bagi menghasilkan aplikasi kalkulasi
BMI. Antaranya ialah pendedahan terhadap library GUI di dalam Java
terutamaya AWT(Abstract Windows Toolkit) dan Swing yang digunakan untuk
menghasilkan komponen-komponen GUI. Seterusnya, pendedahan terhadap
struktur implementasi komponen GUI di dalam Java sebagai contoh, elemen
komponen GUI, JPanel mempunyai kebersandaran terhadap JFrame. Akhir
sekali, pendedahan terhadap kaedah menerima input pengguna melalui
wahana GUI yang mengaplikasikan komponen GUI JTextField bagi menerima
input nombor atau teks dari pengguna.

11

You might also like