0

Program kalkulator sederhana menggunakan Java

Sabtu, 10 Desember 2011.
Buat kalian yang kuliah di Jurusan Teknik Informatika mungkin sudah tidak asing dengan Bahasa Pemrograman Java , ini adalah sebagian kecil dari aplikasi yang di buat menggunakan bahasa pemrograman java , disini saya membuat Kalkulator Sederhana menggunakan Java.


 import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.KeyStroke;

public class Calculator extends JFrame implements ActionListener{
    // Variables
    final int MAX_INPUT_LENGTH = 20;
    final int INPUT_MODE = 0;
    final int RESULT_MODE = 1;
    final int ERROR_MODE = 2;
    int displayMode;

    boolean clearOnNextDigit, percent;
    double lastNumber;
    String lastOperator;

    private JMenu jmenuFile, jmenuHelp;
    private JMenuItem jmenuitemExit, jmenuitemAbout;

    private JLabel jlbOutput;
    private JButton jbnButtons[];
    private JPanel jplMaster, jplBackSpace, jplControl;

    /*
     * Font(String name, int style, int size)
      Creates a new Font from the specified name, style and point size.
     */

    Font f12 = new Font("Times New Roman", 0, 12);
    Font f121 = new Font("Times New Roman", 1, 12);

    // Constructor
    public Calculator()
    {
        /* Set Up the JMenuBar.
         * Have Provided All JMenu's with Mnemonics
         * Have Provided some JMenuItem components with Keyboard Accelerators
         */

        jmenuFile = new JMenu("File");
        jmenuFile.setFont(f121);
        jmenuFile.setMnemonic(KeyEvent.VK_F);

        jmenuitemExit = new JMenuItem("Exit");
        jmenuitemExit.setFont(f12);
        jmenuitemExit.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_X,
                                ActionEvent.CTRL_MASK));
        jmenuFile.add(jmenuitemExit);

        jmenuHelp = new JMenu("Help");
        jmenuHelp.setFont(f121);
        jmenuHelp.setMnemonic(KeyEvent.VK_H);

        jmenuitemAbout = new JMenuItem("About Calculator");
        jmenuitemAbout.setFont(f12);
        jmenuHelp.add(jmenuitemAbout);

        JMenuBar mb = new JMenuBar();
        mb.add(jmenuFile);
        mb.add(jmenuHelp);
        setJMenuBar(mb);

        //Set frame layout manager

        setBackground(Color.gray);

        jplMaster = new JPanel();

        jlbOutput = new JLabel("0");
        jlbOutput.setHorizontalTextPosition(JLabel.RIGHT);
        jlbOutput.setBackground(Color.WHITE);
        jlbOutput.setOpaque(true);

        // Add components to frame
        getContentPane().add(jlbOutput, BorderLayout.NORTH);

        jbnButtons = new JButton[23];
//        GridLayout(int rows, int cols, int hgap, int vgap)

        JPanel jplButtons = new JPanel();        // container for Jbuttons

        // Create numeric Jbuttons
        for (int i=0; i<=9; i++)
        {
            // set each Jbutton label to the value of index
            jbnButtons[i] = new JButton(String.valueOf(i));
        }

        // Create operator Jbuttons
        jbnButtons[10] = new JButton("+/-");
        jbnButtons[11] = new JButton(".");
        jbnButtons[12] = new JButton("=");
        jbnButtons[13] = new JButton("/");
        jbnButtons[14] = new JButton("*");
        jbnButtons[15] = new JButton("-");
        jbnButtons[16] = new JButton("+");
        jbnButtons[17] = new JButton("sqrt");
        jbnButtons[18] = new JButton("1/x");
        jbnButtons[19] = new JButton("%");

        jplBackSpace = new JPanel();
        jplBackSpace.setLayout(new GridLayout(1, 1, 2, 2));

        jbnButtons[20] = new JButton("Backspace");
        jplBackSpace.add(jbnButtons[20]);

        jplControl = new JPanel();
        jplControl.setLayout(new GridLayout(1, 2, 2 ,2));

        jbnButtons[21] = new JButton(" CE ");
        jbnButtons[22] = new JButton("C");

        jplControl.add(jbnButtons[21]);
        jplControl.add(jbnButtons[22]);

//        Setting all Numbered JButton's to Blue. The rest to Red
        for (int i=0; i<jbnButtons.length; i++)    {
            jbnButtons[i].setFont(f12);

            if (i<10)
                jbnButtons[i].setForeground(Color.blue);

            else
                jbnButtons[i].setForeground(Color.red);
        }

        // Set panel layout manager for a 4 by 5 grid
        jplButtons.setLayout(new GridLayout(4, 5, 2, 2));

        //Add buttons to keypad panel starting at top left
        // First row
        for(int i=7; i<=9; i++)        {
            jplButtons.add(jbnButtons[i]);
        }

        // add button / and sqrt
        jplButtons.add(jbnButtons[13]);
        jplButtons.add(jbnButtons[17]);

        // Second row
        for(int i=4; i<=6; i++)
        {
            jplButtons.add(jbnButtons[i]);
        }

        // add button * and x^2
        jplButtons.add(jbnButtons[14]);
        jplButtons.add(jbnButtons[18]);

        // Third row
        for( int i=1; i<=3; i++)
        {
            jplButtons.add(jbnButtons[i]);
        }

        //adds button - and %
        jplButtons.add(jbnButtons[15]);
        jplButtons.add(jbnButtons[19]);

        //Fourth Row
        // add 0, +/-, ., +, and =
        jplButtons.add(jbnButtons[0]);
        jplButtons.add(jbnButtons[10]);
        jplButtons.add(jbnButtons[11]);
        jplButtons.add(jbnButtons[16]);
        jplButtons.add(jbnButtons[12]);

        jplMaster.setLayout(new BorderLayout());
        jplMaster.add(jplBackSpace, BorderLayout.WEST);
        jplMaster.add(jplControl, BorderLayout.EAST);
        jplMaster.add(jplButtons, BorderLayout.SOUTH);

        // Add components to frame
        getContentPane().add(jplMaster, BorderLayout.SOUTH);
        requestFocus();

        //activate ActionListener
        for (int i=0; i<jbnButtons.length; i++){
            jbnButtons[i].addActionListener(this);
        }

        jmenuitemAbout.addActionListener(this);
        jmenuitemExit.addActionListener(this);

        clearAll();

        //add WindowListener for closing frame and ending program
        addWindowListener(new WindowAdapter() {

                public void windowClosed(WindowEvent e)
                {
                    System.exit(0);
                }
            }
        );
    }    //End of Contructor Calculator

    // Perform action
    public void actionPerformed(ActionEvent e){
        double result = 0;

        if(e.getSource() == jmenuitemAbout){
          JDialog dlgAbout = new CustomABOUTDialog(this,
                                "About Java Swing Calculator", true);
            dlgAbout.setVisible(true);
        }else if(e.getSource() == jmenuitemExit){
            System.exit(0);
        }

        // Search for the button pressed until end of array or key found
        for (int i=0; i<jbnButtons.length; i++)
        {
            if(e.getSource() == jbnButtons[i])
            {
                switch(i)
                {
                    case 0:
                        addDigitToDisplay(i);
                        break;

                    case 1:
                        addDigitToDisplay(i);
                        break;

                    case 2:
                        addDigitToDisplay(i);
                        break;

                    case 3:
                        addDigitToDisplay(i);
                        break;

                    case 4:
                        addDigitToDisplay(i);
                        break;

                    case 5:
                        addDigitToDisplay(i);
                        break;

                    case 6:
                        addDigitToDisplay(i);
                        break;

                    case 7:
                        addDigitToDisplay(i);
                        break;

                    case 8:
                        addDigitToDisplay(i);
                        break;

                    case 9:
                        addDigitToDisplay(i);
                        break;

                    case 10:    // +/-
                        processSignChange();
                        break;

                    case 11:    // decimal point
                        addDecimalPoint();
                        break;

                    case 12:    // =
                        processEquals();
                        break;

                    case 13:    // divide
                        processOperator("/");
                        break;

                    case 14:    // *
                        processOperator("*");
                        break;

                    case 15:    // -
                        processOperator("-");
                        break;

                    case 16:    // +
                        processOperator("+");
                        break;

                    case 17:    // sqrt
                        if (displayMode != ERROR_MODE)
                        {
                           try
                            {
                                if (getDisplayString().indexOf("-") == 0)
                                    displayError("Invalid input for function!");

                                result = Math.sqrt(getNumberInDisplay());
                                displayResult(result);
                            }

                            catch(Exception ex)
                            {
                                displayError("Invalid input for function!");
                                displayMode = ERROR_MODE;
                            }
                        }
                        break;

                    case 18:    // 1/x
                        if (displayMode != ERROR_MODE){
                            try
                            {
                                if (getNumberInDisplay() == 0)
                                    displayError("Cannot divide by zero!");

                                result = 1 / getNumberInDisplay();
                                displayResult(result);
                            }

                            catch(Exception ex)    {
                                displayError("Cannot divide by zero!");
                                displayMode = ERROR_MODE;
                            }
                        }
                        break;

                    case 19:    // %
                        if (displayMode != ERROR_MODE){
                            try    {
                                result = getNumberInDisplay() / 100;
                                displayResult(result);
                            }

                            catch(Exception ex)    {
                                displayError("Invalid input for function!");
                                displayMode = ERROR_MODE;
                            }
                        }
                        break;

                    case 20:    // backspace
                        if (displayMode != ERROR_MODE){
                            setDisplayString(getDisplayString().substring(0,
                                      getDisplayString().length() - 1));

                            if (getDisplayString().length() < 1)
                                setDisplayString("0");
                        }
                        break;

                    case 21:    // CE
                        clearExisting();
                        break;

                    case 22:    // C
                        clearAll();
                        break;
                }
            }
        }
    }

    void setDisplayString(String s){
        jlbOutput.setText(s);
    }

    String getDisplayString (){
        return jlbOutput.getText();
    }

    void addDigitToDisplay(int digit){
        if (clearOnNextDigit)
            setDisplayString("");

        String inputString = getDisplayString();

        if (inputString.indexOf("0") == 0){
            inputString = inputString.substring(1);
        }

        if ((!inputString.equals("0") || digit > 0)
                            && inputString.length() < MAX_INPUT_LENGTH){
            setDisplayString(inputString + digit);
        }


        displayMode = INPUT_MODE;
        clearOnNextDigit = false;
    }

    void addDecimalPoint(){
        displayMode = INPUT_MODE;

        if (clearOnNextDigit)
            setDisplayString("");

        String inputString = getDisplayString();

        // If the input string already contains a decimal point, don't
        //  do anything to it.
        if (inputString.indexOf(".") < 0)
            setDisplayString(new String(inputString + "."));
    }

    void processSignChange(){
        if (displayMode == INPUT_MODE)
        {
            String input = getDisplayString();

            if (input.length() > 0 && !input.equals("0"))
            {
                if (input.indexOf("-") == 0)
                    setDisplayString(input.substring(1));

                else
                    setDisplayString("-" + input);
            }

        }

        else if (displayMode == RESULT_MODE)
        {
            double numberInDisplay = getNumberInDisplay();

            if (numberInDisplay != 0)
                displayResult(-numberInDisplay);
        }
    }

    void clearAll()    {
        setDisplayString("0");
        lastOperator = "0";
        lastNumber = 0;
        displayMode = INPUT_MODE;
        clearOnNextDigit = true;
    }

    void clearExisting(){
        setDisplayString("0");
        clearOnNextDigit = true;
        displayMode = INPUT_MODE;
    }

    double getNumberInDisplay()    {
        String input = jlbOutput.getText();
        return Double.parseDouble(input);
    }

    void processOperator(String op) {
        if (displayMode != ERROR_MODE)
        {
            double numberInDisplay = getNumberInDisplay();

            if (!lastOperator.equals("0"))
            {
                try
                {
                    double result = processLastOperator();
                    displayResult(result);
                    lastNumber = result;
                }

                catch (DivideByZeroException e)
                {
                }
            }

            else
            {
                lastNumber = numberInDisplay;
            }

            clearOnNextDigit = true;
            lastOperator = op;
        }
    }

    void processEquals(){
        double result = 0;

        if (displayMode != ERROR_MODE){
            try
            {
                result = processLastOperator();
                displayResult(result);
            }

            catch (DivideByZeroException e)    {
                displayError("Cannot divide by zero!");
            }

            lastOperator = "0";
        }
    }

    double processLastOperator() throws DivideByZeroException {
        double result = 0;
        double numberInDisplay = getNumberInDisplay();

        if (lastOperator.equals("/"))
        {
            if (numberInDisplay == 0)
                throw (new DivideByZeroException());

            result = lastNumber / numberInDisplay;
        }

        if (lastOperator.equals("*"))
            result = lastNumber * numberInDisplay;

        if (lastOperator.equals("-"))
            result = lastNumber - numberInDisplay;

        if (lastOperator.equals("+"))
            result = lastNumber + numberInDisplay;

        return result;
    }

    void displayResult(double result){
        setDisplayString(Double.toString(result));
        lastNumber = result;
        displayMode = RESULT_MODE;
        clearOnNextDigit = true;
    }

    void displayError(String errorMessage){
        setDisplayString(errorMessage);
        lastNumber = 0;
        displayMode = ERROR_MODE;
        clearOnNextDigit = true;
    }

    public static void main(String args[]) {
        Calculator calci = new Calculator();
        Container contentPane = calci.getContentPane();
//        contentPane.setLayout(new BorderLayout());
        calci.setTitle("Java Swing Calculator");
        calci.setSize(241, 217);
        calci.pack();
        calci.setLocation(400, 250);
        calci.setVisible(true);
        calci.setResizable(false);
    }

}        //End of Swing Calculator Class.

class DivideByZeroException extends Exception{
    public DivideByZeroException()
    {
        super();
    }

    public DivideByZeroException(String s)
    {
        super(s);
    }
}

class CustomABOUTDialog extends JDialog implements ActionListener {
    JButton jbnOk;

    CustomABOUTDialog(JFrame parent, String title, boolean modal){
        super(parent, title, modal);
        setBackground(Color.black);

        JPanel p1 = new JPanel(new FlowLayout(FlowLayout.CENTER));

        StringBuffer text = new StringBuffer();
        text.append("Calculator Information\n\n");
        text.append("Developer:    Hemanth\n");
        text.append("Version:    1.0");

        JTextArea jtAreaAbout = new JTextArea(5, 21);
        jtAreaAbout.setText(text.toString());
        jtAreaAbout.setFont(new Font("Times New Roman", 1, 13));
        jtAreaAbout.setEditable(false);

        p1.add(jtAreaAbout);
        p1.setBackground(Color.red);
        getContentPane().add(p1, BorderLayout.CENTER);

        JPanel p2 = new JPanel(new FlowLayout(FlowLayout.CENTER));
        jbnOk = new JButton(" OK ");
        jbnOk.addActionListener(this);

        p2.add(jbnOk);
        getContentPane().add(p2, BorderLayout.SOUTH);

        setLocation(408, 270);
        setResizable(false);

        addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e)
                {
                    Window aboutDialog = e.getWindow();
                    aboutDialog.dispose();
                }
            }
        );

        pack();
    }

    public void actionPerformed(ActionEvent e)
    {
        if(e.getSource() == jbnOk)    {
            this.dispose();
        }
    }

}
 Outputnya sebagai berikut :



Lebih Jelasnya :


Semua ini di dapatkan dari berbagai sumber :))
Leia Mais...
0

Event Jakcloth Desember 2011 9-11Desember2011 #YearEndSale

Jumat, 09 Desember 2011.

The Real Indonesian Indie Clothing Expo!! JAKARTA CLOTHING EXPO 2011 (Year End Sale) 9,10,11 Desember 2011, at Parkir Timur- Senayan, Jakarta ROCK YOUR WORLD !!!! 150 Clothing Skateboard, Fingerboard, BMX, Shuffle Dance Competition Fruit Tea Stage: Crooz Stage:Mac Beth Stage:Concerto Stage: Hai Mobile Stage: Special Perform; ALL SHALL PERISH & PARKWAY DRIVE HTMt: 15rb Contact Us: Jl. Masjid Darulfallah No.18-19 kel. petukangan utara kec. pesanggrahan Jakarta selatan 12260 Telp/ Fax: 021 - 735 1806 Twitter: lianmipromusic: JakCloth Facebook: lianmipromusic; Jakcloth 


#GRIND You Agenda >> #JakCloth2011 9,10,11 Des #YearEndSale
Booth #GRIND area B no 9/15
Special Perfomance:
>> All Shall Perish 9 Des 2011
>> Park Way Drive 10 Des 2011
Tix only idr 15K/day (Free see for band perfomance)
See You In The Pits
MAP Parkir Timur Senayan Jakarta
rundown CAMPINA ICE CREAM  Concerto Stage 9-11 Desember 2011
rundown Fruit Tea Sosro Stage 9-11 Desember 2011
 rundown Macbeth stage 9-11 Desember 2011 
 rundown Crooz Cloth stage 9-11 Desember 2011 
So jangan lewatin Event ini . HTM cuma Rp. 15OOO saja bisa nonton semua band termasuk #AllShallPerish dan #ParkwayDrive !! jangan lupa boroong yaah semua yang ada di boooth nya


 
Dari Berbagai Sumber :))
Leia Mais...
0

Kisah Seekor anjing yang sangat mengharukan . dan sebuah pelajaran untuk kita

Kamis, 08 Desember 2011.
Penjual daging melihat seekor anjing di tokonya & mengusirnya, tp anjing itu kembali lg ,ia menghampiri anjing itu & melihat ada catatan di mulutnya : "Tolong sediakan 12 sosis ,uangnya di mulut anjing ini.
 
Si penjual melihat ada uang $10, diambilnya uang itu,ia memasukkan sosis ke kantung plastik & di letakkan di mulut anjing itu. Si penjual sgt terkesan. Kebetullan saat itu wkt tutup toko, ia menutup toko & mengikuti anjing yg berjalan ke tempat penyebrangan.
 
Si anjing meletakkan plastiknya, melompat & menekan tombol penyebrangan ,kemudian menunggu lampu hijau & ia menyebrang.
 
Anjing tsb sampai di halte bus & melihat papan informasi kemudian duduk. Sebuah bus dtg, si anjing melihat no bus, kemudian kembali duduk. Bus lain dtg ,yakin bus benar si anjing naik! Si penjual kagum mengikuti anjing itu naik bus. Akhirnya si anjing berjalan ke dpn ,ia berdiri dgn 2 kakinya & menekan tombol agar bus berhenti. Kemudian ia keluar & berhenti di depan suatu rumah & meletakkan kantung plastik. Kemudian ia membenturkan dirinya ke pintu rumah tsb. Si penjual melihat seorang pria membuka pintu & langsung memukuli, menendang serta menyumpahi anjing tsb ! Si penjual berlari utk menghentikan pria tsb, "Apa yg kau lakukan ?ini sangat jenius"...Pria itu menjawab : "Kau bilang anjing ini pintar ? Dlm minggu ini sdh 2x anjing ini lupa membawa kunci !! Mungkin hal serupa sering terjadi di kehidupan kita. Sesuatuyg bagi kita tdk memuaskan ,mungkin sesuatu yg sgt luar biasa bg org lain. Yang membedakan hanyalah seberapa besar penghargaan kita . Pemilik anjing tdk menghargai kemampuan si anjing & hanya terfokus pd kesalahannya !  Sebaliknya, pemilik toko menganggap anjiing tsb luar biasa pintar ! Kita tdk menyaari bahwasetiap harinya kita punya 2pilihan ,hendak mengeluh atas berbagai hal yg kurang memuaskan ,atau bersyukur atas berbagai karunia yg telah kita terima.................. ? :)
Leia Mais...
0

GreysonChance - Hold On 'Til The Night ( Download and Lyrics )

Rabu, 07 Desember 2011.
You can download Here !!
Kalian bisa download Disini !!



Greyson Chance - Hold On 'Til The Night


Watching the minute hand
Frozen solid not moving
Still we believe we can
But we're afraid of losing
Watching from over here
Its hardly worth competing
I'm almost out of here
While breaking a heart that's beating
Just as I start giving up
I'm not backing up


Run into the light
Get out of your own way
Not afraid to fight
Believe in what you say
I'll hold on till the night
Hanging by a thread
I'm not scared to let go
Thoughts inside your head
That creep up to get you
I believe this is right
So I'll hold on til the night




I climbed up on a tree
To get a new perspective
If love is worth the time
The price is being rejected
Just as I start falling down
I turned this around
Run into the light
Get out of your own way
Not afraid to fight
Believe in what you say
I'll hold on till the night
Hanging by a thread
I'm not scared to let go
Thoughts inside your head
That creep up to get you
I believe this is right
So I'll hold on til the night


Hold on til I'm with you
All I've got to give you
All my fears are slowly fading to never know
Yes I start running running running running!!


Run into the light
Get out of your own way
Not afraid to fight
Believe in what you say
I'll hold on till the night
(believe that this is the night)
Hanging by a thread
I'm not scared to let go
Thoughts inside your head
That creep up to get you
I believe this is right
So I'll hold on til the night
Leia Mais...
0

GreysonChance - Waiting Outside The Lines ( Download and Lyrics )

Senin, 05 Desember 2011.
You can download Here !!
Kalian bisa download Disini !!


GreysonChance - Waiting Outside The Lines Lyrics


You never enjoy your life  
Livin' inside the box  
You're so afraid of taking chances  
How are you going to reach the top?


Rules and regulations  
Force you to play it safe  
Get rid of all the hesitation  
It's time for you to seize the day



Instead of just sitting around  
And looking down on tomorrow  
You gotta get your feet off the ground  
The time is now


I'm waiting, waiting, just waiting  
I'm waiting, waiting outside the lines  
Waiting outside the lines  
Waiting outside the lines


Try to have no regrets  
Even if it's just tonight  
How you gonna walk ahead  
If you keep living blind


Stuck in the same position  
You deserve so much more  
There's a whole world around us
Just waiting to be explored


Instead of just sitting around  
And looking down on tomorrow  
You gotta get your feet off the ground  
The time is now, just let it go


I don't want to have to force you to smile  
I'm here to help you notice the rainbow
'Cause I know what's in you is out there


I'm waiting, waiting, just waiting  
I'm waiting, waiting outside the lines  
Waiting outside the lines  
Waiting outside the lines


I'm trying to be patient  
Each step is the hardest  
I know you can make it  
Go ahead and take it


I'm waiting, waiting, just waiting  
I'm waiting  
I'm waiting, waiting, just waiting  
I'm waiting, waiting outside the lines
Waiting outside the lines  
Waiting outside the lines


You never enjoy your life  
Livin' inside the box  
You're so afraid of taking chances  
How are you going to reach the top?
Leia Mais...
 
Ordinary blog and Ordinary people © Copyright 2010 | Template By FazruL Lestrange |