Rabu, 13 Januari 2010

Tugas Akhir PBOL


     Bagi yang sedang mempelajari bahasa pemrograman, contoh kalkulator sederhana merupakan hal yang sudah biasa. Mengapa contoh tersebut sering ditugaskan oleh dosen ? ya, karena di sana ada penerapan input, pengulangan, output, dan juga penerapan pemrograman modular. Contoh yang saya buat di bawah ini adalah kalkulator sederhana dengan menggunakan bahasa Java. Pada contoh tersebut terdapat beberapa method yang diperlukan untuk sebuah kalkulator, seperti penjumlahan, pengurangan, perkalian dan pembagian. Ok deh, selamat belajar.



     Jika Temen2 3M41 yang mau bikin tugas akhir PBOL karena kesibukan pekerjaan bisa copy referensi dari Q, nie cuman sumbangsih Dari Temen ke Temen bukan maksud pa apa..



/**
* Frame untuk panel Kalkulator.
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class KalkulatorFrame extends JFrame{
    public KalkulatorFrame(){
        setTitle("Kalkulator-Qoe");
        KalkulatorPanel panel = new KalkulatorPanel();
        add(panel);
        pack();
    }
}



/**
* Panel tombol Kalkulator dan Tampilan Hasil
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class KalkulatorPanel extends JPanel{
    public KalkulatorPanel(){
        setLayout(new BorderLayout());

        result = 0;
        lastCommand = "=";
        start = true;

        // Tambah Tampilan
        display = new JButton("Wachid Darmawan - 08.240.0027");
        display.setEnabled(true);
        add(display, BorderLayout.SOUTH);

        display = new JButton("0");
        display.setEnabled(false);
        add(display, BorderLayout.NORTH);

        ActionListener insert = new InsertAction();
        ActionListener command = new CommandAction();

        // Tambah tombol ukuran a 4 x 4 grid
        panel = new JPanel();
        panel.setLayout(new GridLayout(4, 4));

        //addButton("C", command);
        addButton("7", insert);
        addButton("8", insert);
        addButton("9", insert);
        addButton("/", command);

        addButton("4", insert);
        addButton("5", insert);
        addButton("6", insert);
        addButton("*", command);

        addButton("1", insert);
        addButton("2", insert);
        addButton("3", insert);
        addButton("-", command);

        addButton("0", insert);
        addButton(".", insert);
        addButton("=", command);
        addButton("+", command);

        add(panel, BorderLayout.CENTER);
    }

    /**
    * Menambahkan tombol di tengah-tengah panel.
    * @param label the button label
    * @param listener the button listener
    */

    private void addButton(String label, ActionListener listener){
        JButton button = new JButton(label);
        button.addActionListener(listener);
        panel.add(button);
    }

    /**
    * ini untuk memasukkan tombol action string ke terakhir tampilan text.
    */

    private class InsertAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
            String input = event.getActionCommand();
            if (start){
                display.setText("");
                start = false;
            }
            display.setText(display.getText() + input);
        }
    }

    /**
    * Ini menjalankan perintah pada tombol action string.
    */

    private class CommandAction implements ActionListener{
        public void actionPerformed(ActionEvent event){
            String command = event.getActionCommand();

            if (start){
                if (command.equals("-")){
                    display.setText(command);
                    start = false;
                }
                else lastCommand = command;
            }
            else{
                calculate(Double.parseDouble(display.getText()));
                lastCommand = command;
                start = true;
            }
        }
    }

    /**
    * Carries out the pending calculation.
    * @param x Isi dari akumulasi .
    */

    public void calculate(double x){
        if (lastCommand.equals("+")) result += x;
        else if (lastCommand.equals("-")) result -= x;
        else if (lastCommand.equals("*")) result *= x;
        else if (lastCommand.equals("/")) result /= x;
        else if (lastCommand.equals("=")) result = x;
            display.setText("" + result);
    }

    private JButton display;
    private JPanel panel;
    private double result;
    private String lastCommand;
    private boolean start;
}

/**
* PBO Teori
* Kalkulator Sederhana
*/

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Kalkulator{
    public static void main(String[] args){
        EventQueue.invokeLater(new Runnable(){
            public void run(){
                KalkulatorFrame frame = new KalkulatorFrame();
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setVisible(true);
            }
        });
    }
}

2 Komentar Teman - Teman:

Cah M41 08 mengatakan...
Komentar ini telah dihapus oleh pengarang.
Anonim mengatakan...

tanks ya

Posting Komentar

Kawan berilah sedikit komentar untuk memberi smangat kepada Admin, dan jika temen-temen mau copas posting sekiranya untuk mencantumkan sumber dari blog ini, contoh : Blog'e Cah TI Malem '08

Template by:

Free Blog Templates

SELAMAT DATANG DI .: BLOG'e CAH TI MALEM '08 :. | TEMPAT BERBAGI MATERI KUIAH dan SEDIKIT ILMU PENGETAHUAN | SMS TANPA MODAL MONGGO KE SMS GRATIEZ BROW | TAMPILAN TEMPLATE MAXIMAL DI MOZILLA FIREFOX 4.0 | TERIMA KASIH ATAS KUNJUNGAN TEMEN - TEMEN SEMUANYA | DO'Anya YA KAWAN SEMOGA SEKRIPSI KAMI LANCAR DAN DAPAT SELESAI DALAM SATU SEMESTER KEDEPAN