Senin, 14 Januari 2013

Senin, 23 April 2012

TUGAS JAVA











/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * JFrame2.java
 *
 * Created on Apr 22, 2012, 10:07:33 PM
 */

package tugasakino;

/**
 *
 * @author akino
 */
public class JFrame2 extends javax.swing.JFrame {
int total,hargadasar,joging,swim,gym,bayar,kode;
 /** Creates new form JFrame2 */
 public JFrame2() {
        initComponents();
    }

    void total()
{
    total=hargadasar+joging+swim+gym+bayar;
    txttotal.setText(String.valueOf(total));
}

    /** 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")
    //
    private void initComponents() {

    bcara = new javax.swing.ButtonGroup();
    jPanel1 = new javax.swing.JPanel();
    jLabel1 = new javax.swing.JLabel();
    Label2 = new javax.swing.JLabel();
    jLabel3 = new javax.swing.JLabel();
    clokasi = new javax.swing.JComboBox();
    txthargadasar = new javax.swing.JTextField();
    jPanel2 = new javax.swing.JPanel();
    jLabel4 = new javax.swing.JLabel();
    chk1 = new javax.swing.JCheckBox();
    chk2 = new javax.swing.JCheckBox();
    chk3 = new javax.swing.JCheckBox();
    txtjoging = new javax.swing.JTextField();
    txtswim = new javax.swing.JTextField();
    txtgym = new javax.swing.JTextField();
    jPanel3 = new javax.swing.JPanel();
    jLabel5 = new javax.swing.JLabel();
    r1 = new javax.swing.JRadioButton();
    r2 = new javax.swing.JRadioButton();
    txtcarabayar = new javax.swing.JTextField();
        jLabel6 = new javax.swing.JLabel();
        txttotal = new javax.swing.JTextField();
        btnbersih = new javax.swing.JButton();
        btnkeluar = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setBackground(new java.awt.Color(153, 51, 0));

        jPanel1.setBackground(new java.awt.Color(102, 51, 0));
        jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder(java.awt.Color.lightGray, null));

        jLabel1.setBackground(new java.awt.Color(102, 51, 0));
        jLabel1.setFont(new java.awt.Font("Lucida Calligraphy", 1, 14)); // NOI18N
        jLabel1.setForeground(new java.awt.Color(255, 204, 102));
        jLabel1.setText("Data Rumah");

        jLabel2.setBackground(new java.awt.Color(102, 51, 0));
        jLabel2.setFont(new java.awt.Font("Lucida Calligraphy", 1, 14)); // NOI18N
        jLabel2.setForeground(new java.awt.Color(255, 204, 102));
        jLabel2.setText("Lokasi");

        jLabel3.setBackground(new java.awt.Color(102, 51, 0));
        jLabel3.setFont(new java.awt.Font("Lucida Calligraphy", 1, 14)); // NOI18N
        jLabel3.setForeground(new java.awt.Color(255, 204, 102));
        jLabel3.setText("Harga Dasar");

        clokasi.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Pilih", "Blok A", "Blok B", "Blok C" }));
        clokasi.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                clokasiActionPerformed(evt);
            }
        });

        txthargadasar.setEditable(false);

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel2)
                            .addComponent(jLabel3))
                        .addGap(60, 60, 60)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(txthargadasar)
                            .addComponent(clokasi, 0, 129, Short.MAX_VALUE)))
                    .addComponent(jLabel1))
                .addContainerGap(168, Short.MAX_VALUE))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1)
                .addGap(13, 13, 13)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(clokasi, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
                    .addComponent(jLabel3)
                    .addComponent(txthargadasar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(35, Short.MAX_VALUE))
        );

        jPanel2.setBackground(new java.awt.Color(153, 153, 0));
        jPanel2.setBorder(javax.swing.BorderFactory.createEtchedBorder(java.awt.Color.lightGray, null));

        jLabel4.setBackground(new java.awt.Color(102, 51, 0));
        jLabel4.setFont(new java.awt.Font("Lucida Calligraphy", 1, 14)); // NOI18N
        jLabel4.setForeground(new java.awt.Color(255, 204, 102));
        jLabel4.setText("Fasilitas Rumah");

        chk1.setBackground(new java.awt.Color(0, 102, 0));
        chk1.setFont(new java.awt.Font("Lucida Calligraphy", 1, 14)); // NOI18N
        chk1.setForeground(new java.awt.Color(0, 204, 204));
        chk1.setText("Joging Track");
        chk1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                chk1ActionPerformed(evt);
            }
        });

        chk2.setBackground(new java.awt.Color(0, 102, 0));
        chk2.setFont(new java.awt.Font("Lucida Calligraphy", 1, 14)); // NOI18N
        chk2.setForeground(new java.awt.Color(0, 204, 204));
        chk2.setText("Swimming Pool");
        chk2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                chk2ActionPerformed(evt);
            }
        });

        chk3.setBackground(new java.awt.Color(0, 102, 0));
        chk3.setFont(new java.awt.Font("Lucida Calligraphy", 1, 14)); // NOI18N
        chk3.setForeground(new java.awt.Color(0, 204, 204));
        chk3.setText("Gym");
        chk3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                chk3ActionPerformed(evt);
            }
        });

        txtjoging.setEditable(false);

        txtswim.setEditable(false);

        txtgym.setEditable(false);

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel4)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(chk1)
                            .addComponent(chk2)
                            .addComponent(chk3))
                        .addGap(52, 52, 52)
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(txtgym, javax.swing.GroupLayout.PREFERRED_SIZE, 85, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(txtswim, javax.swing.GroupLayout.PREFERRED_SIZE, 85, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(txtjoging, javax.swing.GroupLayout.PREFERRED_SIZE, 85, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addContainerGap(19, Short.MAX_VALUE))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel4)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
                    .addComponent(chk1)
                    .addComponent(txtjoging, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
                    .addComponent(chk2)
                    .addComponent(txtswim, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
                    .addComponent(chk3)
                    .addComponent(txtgym, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(38, Short.MAX_VALUE))
        );

        jPanel3.setBackground(new java.awt.Color(102, 51, 0));
        jPanel3.setBorder(javax.swing.BorderFactory.createEtchedBorder());

        jLabel5.setBackground(new java.awt.Color(102, 51, 0));
        jLabel5.setFont(new java.awt.Font("Lucida Calligraphy", 1, 14)); // NOI18N
        jLabel5.setForeground(new java.awt.Color(255, 204, 102));
        jLabel5.setText("Cara Pembayaran");

        r1.setBackground(new java.awt.Color(0, 102, 0));
        bcara.add(r1);
        r1.setFont(new java.awt.Font("Lucida Calligraphy", 1, 14)); // NOI18N
        r1.setForeground(new java.awt.Color(0, 204, 204));
        r1.setText("Bank Mandiri");
        r1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                r1ActionPerformed(evt);
            }
        });

        r2.setBackground(new java.awt.Color(0, 102, 0));
        bcara.add(r2);
        r2.setFont(new java.awt.Font("Lucida Calligraphy", 1, 14)); // NOI18N
        r2.setForeground(new java.awt.Color(0, 204, 204));
        r2.setText("Bank Lainnya");
        r2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                r2ActionPerformed(evt);
            }
        });

        txtcarabayar.setEditable(false);

        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel3Layout.createSequentialGroup()
                        .addComponent(r1)
                        .addGap(42, 42, 42)
                        .addComponent(txtcarabayar, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jLabel5)
                    .addComponent(r2))
                .addContainerGap(158, Short.MAX_VALUE))
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel5)
                .addGap(7, 7, 7)
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
                    .addComponent(txtcarabayar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(r1))
                .addContainerGap(42, Short.MAX_VALUE))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
                .addContainerGap(73, Short.MAX_VALUE)
                .addComponent(r2)
                .addContainerGap())
        );

        jLabel6.setFont(new java.awt.Font("Viner Hand ITC", 1, 24)); // NOI18N
        jLabel6.setText("TOTAl");

        txttotal.setEditable(false);
        txttotal.setFont(new java.awt.Font("Trebuchet MS", 0, 18));
        txttotal.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txttotalActionPerformed(evt);
            }
        });

        btnbersih.setBackground(new java.awt.Color(102, 0, 102));
        btnbersih.setForeground(new java.awt.Color(0, 0, 102));
        btnbersih.setText("BERSIH");
        btnbersih.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnbersihActionPerformed(evt);
            }
        });

        btnkeluar.setBackground(new java.awt.Color(102, 0, 102));
        btnkeluar.setForeground(new java.awt.Color(0, 0, 153));
        btnkeluar.setText("KELUAR");
        btnkeluar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnkeluarActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(32, 32, 32)
                        .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(44, 44, 44)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(btnbersih)
                            .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(btnkeluar)
                            .addComponent(txttotal, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(20, 20, 20)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(42, 42, 42)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
                            .addComponent(txttotal, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(18, 18, 18)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
                            .addComponent(btnbersih)
                            .addComponent(btnkeluar)))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(25, Short.MAX_VALUE))
        );

        pack();
    }//

    private void clokasiActionPerformed(java.awt.event.ActionEvent evt) {                                      
         kode=clokasi.getSelectedIndex();
        switch(kode)
        {
            case 1:
                hargadasar=2000000;
            break;
          
            case 2:
                hargadasar=3000000;
            break;

             case 3:
                hargadasar=4000000;
            break;

            default:
                hargadasar=0;
        }
        txthargadasar.setText(String.valueOf(hargadasar));
      
total();


    }                                     

    private void chk2ActionPerformed(java.awt.event.ActionEvent evt) {                                   
    if(chk2.isSelected()==true)
        swim=200000;
    else
        swim=0;
    txtswim.setText(String.valueOf(swim));
    total();
    }                                  

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

    private void chk1ActionPerformed(java.awt.event.ActionEvent evt) {                                   
    if(chk1.isSelected()==true)
        joging=100000;
    else
        joging=0;
    txtjoging.setText(String.valueOf(joging));
     total();
    }                                  

    private void chk3ActionPerformed(java.awt.event.ActionEvent evt) {                                   
    if(chk3.isSelected()==true)
        gym=300000;
    else
        gym=0;
    txtgym.setText(String.valueOf(gym));
    total();
    }                                  

    private void r1ActionPerformed(java.awt.event.ActionEvent evt) {                                 
    bayar=10000;
    txtcarabayar.setText(String.valueOf(bayar));
    total();
    }                                

    private void r2ActionPerformed(java.awt.event.ActionEvent evt) {                                 
    bayar=50000;
    txtcarabayar.setText(String.valueOf(bayar));
    total();
    }                                

    private void btnbersihActionPerformed(java.awt.event.ActionEvent evt) {                                        
    clokasi.setSelectedIndex(0);
    txthargadasar.setText("");
    txtjoging.setText("");
    txtswim.setText("");
    txtgym.setText("");
    txttotal.setText("");
    txtcarabayar.setText("");
    chk1.setSelected(false);
    chk2.setSelected(false);
    chk3.setSelected(false);
    r1.setSelected(false);
    r2.isDisplayable();

    }                                       

    private void btnkeluarActionPerformed(java.awt.event.ActionEvent evt) {                                        
            dispose();
    }                                       

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new JFrame2().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify
    private javax.swing.ButtonGroup bcara;
    private javax.swing.JButton btnbersih;
    private javax.swing.JButton btnkeluar;
    private javax.swing.JCheckBox chk1;
    private javax.swing.JCheckBox chk2;
    private javax.swing.JCheckBox chk3;
    private javax.swing.JComboBox clokasi;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JRadioButton r1;
    private javax.swing.JRadioButton r2;
    private javax.swing.JTextField txtcarabayar;
    private javax.swing.JTextField txtgym;
    private javax.swing.JTextField txthargadasar;
    private javax.swing.JTextField txtjoging;
    private javax.swing.JTextField txtswim;
    private javax.swing.JTextField txttotal;
    // End of variables declaration

}

Sabtu, 24 Maret 2012

OBJECT-ORIENTED PROGRAMMING (OOP)

OBJECT-ORIENTED PROGRAMMING (OOP)

Pemrograman berorientasi objek (OOP) merupakan metode yang paling populer dalam dunia rekayasa perangkat lunak saat ini. OOP membuat proses pengembangan perangkat lunak dapat dilakukan secara modular yang berarti sistem dapat dikembangkan tahap demi tahap tanpa mengubah (banyak) fondasi perangkat lunak yang sudah ada.

Object-Oriented Programming adalah sebuah pendekatan untuk pengembangan / development suatu software dimana dalam struktur software tersebut didasarkan kepada interaksi object dalam penyelesaian suatu proses/tugas. Interaksi tersebut mengambil form dari pesan-pesan dan mengirimkannya kembali antar object tersebut. Object akan merespon pesan tersebut menjadi sebuah tindakan /action atau metode. Jika kita mencoba melihat bagaimana tugas disekitar kita diselesaikan, kita akan mengetahui bahwa kita berinteraksi dalam sebuah object-oriented world. Jika akan bepergian kita pasti berinteraksi dengan object mobil. Sebagai sebuah object, mobil berisi object-object lain yang berinteraksi untuk melakukan tugasnya membawa kita.

Pemrograman Berbasis Obyek:

1. Fungsi dan data menjadi satu kesatuan yang disebut obyek
2. Obyek-obyek dalam OOP bersifat aktif
3.Cara pandang : program bukan urut-urutan instruksi tapi diselesaikan oleh obyek-obyek yang bekerjasama untuk menyelesaikan masalah

Karakteristik OOP

Suatu program disebut dengan pemrograman berbasis obyek (OOP) karena terdapat :

1.Encapsulation(pembungkusan)
2.Inheritance(pewarisan)
3.Polymorphism (polimorfisme – perbedaan bentuk)

Inheritance

Banyak objects diklasifikasikan menurut hirarki. Contoh, kamu dapat mengklasifikasikan sebuah mobil yang mempunyai karakteristik umumnya mobil, seperti mempunyai ban, mesin, serta body. Keturunan berikutnya diklasifikasikan dengan atribut umum seperti ukuran, jumlah roda, isi silinder dll atau mengklasifikasikan mereka atas dasar daya angkutnya. Contoh, ada kendaraan komersial atau kendaraan pribadi, ada truk atau mobil penumpang. Kamu menggunakan inheritance dalam OOP untuk mengklasifikasikan objects dalam program sesuai karakteristik umum dan fungsinya.

1.Sebuah class bisa mewariskan atribut dan method-nya ke class yang lain
2.Class yang mewarisi disebut superclass
3.Class yang diberi warisan disebut subclass
4.Sebuah subclass bisa mewariskan atau berlaku sebagai superclass bagi class yang lain => disebut multilevel inheritance.


Keuntungan Penggunaan Pewarisan

1.Subclass memiliki atribut dan method yang spesifik yang membedakannya dengan superclass, meskipun keduanya mirip (dalam hal kesamaan atribut dan method)
2.Dengan demikian pada pembuatan subclass, programmer bisa menggunakan ulang source code dari superclass yang ada => ini yang disebut dengan istilah reuse.
3.Class-class yang didefinisikan dengan atribut dan method yang bersifat umum yang berlaku baik pada superclass maupun subclass disebut dengan abstract class


Polymorphism

Polymorphisms adalah kemampuan 2 buah object yang berbeda untuk merespon pesan permintaan yang sama dalam suatu cara yang unik. Contoh, saya melatih anjing saya dengan perintah untuk menggonggong dan juga saya melatih burung untuk merespon perintah saya untuk berkicau. Saya lakukan latihan untuk merespon kepada mereka dengan perintah lisan. Melalui polymorphism saya tahu bahwa anjing dan burung akan merespon dengan gonggongan atau kicauan.

Encapsulation

Ciri penting lainnya dari OOP adalah encapsulation. Encapsulation adalah sebuah proses dimana tidak ada akses langsung ke data yang diberikan, bahkan hidden. Jika kamu ingin mendapat data, kamu harus berinteraksi dengan object yang bertanggung jawab atas dara tersebut. Dalam contoh inventory, jika kita ingin melihat atau mengupdate informasi atas produk, kita seharusnya bekerja melalui object produk. Untuk membaca data, kita mengirimkan pesan ke object produk, kemudian object produk akan membaca pesan dan mengirim pesan balik ke kamu.

1.Variabel dan method dalam suatu obyek dibungkus agar terlindungi
2.Untuk mengakses, variabel dan method yang sudah dibungkus tadi perlu interface
3.Setelah variabel dan method dibungkus, hak akses terhadapnya bisa ditentukan.
4.Konsep pembungkusan ini pada dasarnya merupakan perluasan dari tipe data struktur

Dua hal dalam enkapsulasi :

1.Information hiding
2.Menyediakan perantara (method) untuk mengakses data
Sebelum memulai membangun sebuah sistem programmer hendaknya terlebih dahulu memahami konsep dasar pemrograman apakah termasuk Pemrograman terstruktur atau Pemrograman berorientasi objek.
Pemrograman berorientasi Objek yang dalam istilah Inggris disebut sebagai Object Oriented Programming (disingkat OOP) adalah salah satu pendekatan pemrograman atau paradigma untuk pengembangan / development suatu perangkat lunak komputer dimana dalam struktur perangkat lunak tersebut didasarkan kepada interaksi objek dalam penyelesaian suatu proses .
OOP dengan Procedural Programming
Selain menggunakan paradigma OOP, programer dapat menuliskan struktur kode program yang baik dengan menggunakan Procedural Programming, di mana programer membuat kode program dengan pendekatan procedural dan bekerja dengan function/procedure di dalam aplikasinya. Tetapi, tidak ada jawaban yang benar-benar tepat jika Anda diberi pertanyaan: apakah sebaiknya menggunakan OOP atau Procedural Programming? Karena jawabannya sangat relatif, terutama tergantung pada aplikasi yang ingin Anda buat. Jika Anda mempertimbangkan pemeliharaan dan pengembangan aplikasi yang eļ¬sien di masa yang akan datang, mungkin Anda dapat memilih pendekatan OOP. Tetapi, jika aplikasi Anda merupakan program sederhana yang dapat dibuat dengan mudah dan cepat dengan function/procedure, gunakanlah pendekatan Procedural Programming. Semua itu juga tergantung pada Anda sebagai programer, untuk memilih pendekatan yang cocok dan lebih baik bagi Anda dalam mengerjakan sebuah aplikasi

CONTOH PROGRAM :
File: Pensil.java
class Pensil {
//membuat attribut
String jenis,warna;
int panjang;
}
File: PensilBeraksi.java
public class SifatPensil {
public static void main(String[] args) {
// membuat objek
Pensil pensilku = new Pensil();
//memanggil attribut dan memberi nilai
pensilku.jenis=”Pensil 2B”;
pensilku.warna=”Hijau”;
pensilku.panjang=20;
System.out.println(“Jenis : “+pensilku.jenis);
System.out.println(“Warna : “+pensilku.warna);
System.out.println(“Panjang : “+pensilku.panjang+” cm”);
}
}
Pensil juga memiliki methode (perilaku) seperti diruncingkan, digunakan dan lain-lain.
File Pensil2.java
class Pensil2 {
//buat methode
void runcingPensil(){
System.out.println(“Runcingkan Pensil”);
}
void gunaPensil(){
System.out.println(“Menulis di atas kertas”);
}
void simpanPensil(){
System.out.println(“Simpan pensil di dalam tas”);
}
}
File: PensilBeraksi.java
public class PensilBeraksi {
public static void main(String[] args) {
// buat objek
Pensil2 pensilkuBeraksi = new Pensil2();
//panggil methode
pensilkuBeraksi.runcingPensil();
pensilkuBeraksi.gunaPensil();
pensilkuBeraksi.simpanPensil();
}
}
Keuntungan Penggunaan OOP
a. Natural
OOP dapat melakukan pendekatan terhadap objek yang menggambarkan segala sesuatu yang nyata, seperti sifat suatu benda maupun kegunaan dari benda tersebut.
b. Modular
Objek yang sudah dibentuk dapat dikelompokkan kembali dengan objek-objek yang lain, seperti kelompok alat tulis yang dapat dikelompokkan kembali dengan kelompok pensil, kelompok buku dan lain-lain.
c. Mudah diperbaharui
Dikarenakan sifat jangkauan dari objek memiliki bagian private dan public, maka jika bagian private ingin digunakan pada objek-objek lain dapat diperbaharui dengan menempatkan objek lain tersebut di bagian public.
d. Dapat didaur ulang
Suatu objek yang telah didefinisikan baik jenis, bentuk, ciri maupun perilaku dapat didefinisikan kembali dengan objek yang lain. Misalkan objek rumah yang memiliki ciri umum ada pintunya, jendelanya, atapnya, temboknya dan lian-lain, dapat didefinisikan kembali ciri-ciri tersebut dengan menyebutkan cirinya masing-masing seperti temboknya yang memiliki ciri jenisnya, ketebalannya, warna catnya dan lain-lain.
Kesimpulan :
Inti dari Konsep OOP adalah memiliki Sifat Enkapsulasi,Inheritence (Turunan),Polimorpisme (Banyak bentuk) Sedangkan Pemrograman terstruktur untuk inheritance dan polimorfisme tidak mampu melakukan secara murni kecuali dengan interface.
Itu yang menyebabkan beberapa kalangan menyebut VB6 bukan bahasa ber-orientasi objek murni
Saran :
Tidak semua Aplikasi yang dibangun harus dengan konsep OOP tetapi untuk Aplikasi yang memungkinkan akan terjadi pengembangan bahkan sampai Aplikasi yang berskala besar seharusnya menggunakan konsep OOP agar maintenance(Perawatan) menjadi lebih mudah.

Minggu, 05 April 2009


jadull
..wanted..