Jumat, 16 Desember 2011

Penanganan Kejadian (event handling)

Penanganan Kejadian

package :
java.awt.event dan javax.swing.event

agar komponen dapat menangani kejadian, kompnen tsb harus :
1. didaftarkan menjadi pendengar (listener), contoh :

JButton tombolSelesai = new JButton("Selesai");
tombolSelesai.addActionListener(this);

scra umum bentuk metode nya :
    addxxxListener()

2. Harus mengimplementasikan suatu interface listener
3. Membuat object suatu kelas yang merupakan kelas adapter
4. Menulis kode pada metode penanganan kejadian

kelas adapter adalah kelas bawaan java yang mengandung nama adapter
                     dibagian belakang dan merupakan kelas abstrak
        yang merupakan implementasi dari suatu interface listener.

contoh :
windowAdapter = kelas abstrak yang mengimplementasi interface WindowListener
MouseAdapter = ----" ---- MouseListener

contoh program :

bSubmit.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                oNama.setText(tNama.getText());
            }
        } );
kelas dan interface pada java :

kejadian dan interface  |    metode --> listener     |     Komponen
------------------------------- |-----------------------------------------    |-------------------------------------
ActionEvent       |    addActionListener     |     JButton, JList dll
ActionListener      |            |   
--------------------------------|-------------------------------------------|--------------------------------------
 AdjusmentEvent      |              |
AdjustmentListener      |     addAdjusmentListener |     JScrollBar
------------------------------- | -------------------------------------------| ------------------------------------
 dll.

Listener dan metode penanganan kejadian :

Listener / Adapter      |     Metode
--------------------------    | -------------------------------------------------------
ActionListener     |     actionPerformed(ActionEvent)
--------------------------    | -------------------------------------------------------
AdjusmentListener     |     adjustmentValueChanged (AdjustmentEvent)
--------------------------    | -------------------------------------------------------
dll.


Listener         Interface             Listener Methods

ActionEvent     ActionListener         actionPerformed(ActionEvent)
ItemEvent     ItemListener         itemStateChanged(ItemEvent)
MouseEvent     MouseListener         mousePressed(MouseEvent)
                        mouseReleased

(MouseEvent)
                        mouseEntered(MouseEvent)
                        mouseExited(MouseEvent)
                        mouseClicked(MouseEvent)
                      MouseMotionListener

mouseDragged(MouseEvent)



konsep laen :

Dalam event handling pada Java ada empat bagian penting yang harus diketahui:

1.Event Object merupakan object yang mendiskripsikan sebuah event yang di-

trigger oleh event source.

2.Event Handler merupakan method yang menerima event object dan melakukan

respond yang sesuai dengan event object tersebut.

3.Event Listener merupakan interface yang akan meng-handle event yang terjadi.

setiap type event mempunyai interface yang bersesuaian. Listener tersebut harus

diimplementasikan oleh class yang akan meng-handle event

4.Event Source merupakan pembangkit / trigger sebuah event objects
setiap event object mempunyai  type event yang berbdea beda.

sehingga kita harus menentukan type event sebelum menentukan jenis interface

listener. karena setiap type event mempunyai jenis interface listener yang

bersesuaian.

berikut ini type type event yang ada di Java :

1.ActionEvent
2.ItemEvent
3.WindowEvent
4.ContainerEvent
5.ComponentEvent
6.FocusEvent
7.TextEvent
8.KeyEvent
9.MouseEvent
10.AdjustmentEvent

Berikut ini Interface Listener

1.ActionListener
2.ItemListener
3.WindowListener
4.ContainerListener
5.ComponentListener
6.FocusListener
7.TextListener
8.KeyListener
9.MouseListener
10.MouseMotionListener
11.AdjustmentListener

Berdasarkan tulisan diatas, setiap type event mempunyai satu jenis interface listener

kecuali MouseEvent yang mempunyai dua jenis interface listener. dan setiap

interface mempunyai method abstract yang harus di override class yang meng-

impletasikan interface.


event listener dan event handler terdapat pada package java.awt.event

Bagaimana event handling dalam Java? ada tiga langkah penting dalam event

handling

1.Deklarasikan class yang akan meng-handle event yang terjadi dan tuliskan code

yang menyatakan class tersebut meng-implement interface listener
2.Event source mendaftarkan sebuah listener melalui method add<type>Listener
3.Kode yang mengimplementasikan method pada interface listener pada class yang

akan meng-handle event. [ Override ]

Contoh program sederhana :

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

public class Penjumlahan2Field extends JFrame
{
    JLabel labelData1,labelData2,labelHasil;
    JTextField field1,field2,field3;
    JButton button;
   
    public Penjumlahan2Field()
    {
        setLayout(null);
        labelData1=new JLabel("Data 1 = ");
        field1=new JTextField(8);
        labelData2=new JLabel("Data 2 = ");
        field2=new JTextField(8);
        labelHasil=new JLabel("Hasil = ");
        field3=new JTextField(8);       
        button=new JButton("+");
       
        labelData1.setBounds(10,10,80,25);
        field1.setBounds(65,10,80,25);
        labelData2.setBounds(10,40,80,25);
        field2.setBounds(65,40,80,25);
        labelHasil.setBounds(10,70,80,25);
        field3.setBounds(65,70,80,25);
        button.setBounds(65,120,50,25);
       
        add(labelData1);
        add(field1);
        add(labelData2);
        add(field2);
        add(labelHasil);
        add(field3);
        add(button);
       
        ActionListener listener = new Penjumlahan2Field.Handler();
        button.addActionListener(listener);   
    }
   
    class Handler implements ActionListener{
        public void actionPerformed(ActionEvent e){
            String s = e.getActionCommand();
           
            if(s.equals("+")){
                String data1=field1.getText();
                String data2=field2.getText();
               
                int a=Integer.parseInt(data1);
                int b=Integer.parseInt(data2);       

       
                int hasil=a+b;
                field3.setText(Integer.toString(hasil));
            }
        }
    }
   
    public static void main(String [] args)
    {
        Penjumlahan2Field frame=new Penjumlahan2Field();
        frame.setTitle("Penjumlahan");
        frame.setSize(200,200);
        //frame.setLocationRelationTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

Senin, 14 November 2011

Penerapan Polymorphism


polymorphism adalah kemampuan sebuah untuk menerjemahkan suatu method menjadi
berbagai macam aksi.

Polymorphism membolehkan kelas induk (superclass) untuk mendefinisikan method umum
untuk semua turunannya. Kelas-kelas turunannya dapat mengimplementasikan method tersebut
sesuai dengan karakteristik masing-masing kelas.

Contoh Penerapan polymorphism.

class Bangun
{
    public double hitungLuas()
    {
        System.out.println("Method umum");
        return 0;
    }
}

class BujurSangkar extends Bangun
{
    private double sisi;

    BujurSangkar(int s)
    {
        sisi = s;
    }

    //overriding method hitungLuas()
    public double hitungLuas()
    {
        double luas = sisi * sisi;
        return luas;
    }
}

class Segitiga extends Bangun
{
    private double alas;
    private double tinggi;

    Segitiga (int a, int t)
    {
        alas = a;
        tinggi = t;
    }

// overriding method hitungLuas()
    public double hitungLuas()
    {
        double luas = 0.5 * alas * tinggi;
        return luas;
    }
}

class Lingkaran extends Bangun
{
    private double jarijari;
    private final double PI = 3.1416;

    Lingkaran(int r)
    {
        jarijari = r;
    }

    //overriding method hitungLuas()
    public double hitungLuas()
    {
        double luas = PI * jarijari * jarijari;
        return luas;
    }
}

class DemoPolimorfisme2
{
    public static void main(String[] args)
    {
        Bentuk obyek;
        BujurSangkar b = new BujurSangkar(12);
        Segitiga s = new Segitiga(5, 6);
        Lingkaran l = new Lingkaran(4);

        // obyek mengacu pada objek BujurSangkar
        obyek = b;

        // akan memanggil method yang terdapat pada BujurSangkar
        System.out.println(“Luas bujursangkar : “ + obyek.hitungLuas());
        System.out.println();

        // obyek mengacu pada objek Segitiga
        obyek = s;
       
        // akan memanggil method yang terdapat pada Segitiga
        System.out.println(“Luas segitiga : “ + obyek.hitungLuas());
        System.out.println();

        // obyek mengacu pada objek Lingkaran
        obyek = l;

        // akan memanggil method yang terdapat pada Lingkaran
        System.out.println(“Luas lingkaran: “ + obyek.hitungLuas());
        System.out.println();
    }
}

Pada diatas kita menggabungkan contoh-contoh sebelumnya untuk menunjukkan bagaimana
polymorphism terbentuk.

Kelas induk adalah Bangun dan mempunyai subclass yaitu BujurSangkar, Segitiga dan Lingkaran.
Semuanya subclass mempunyai method hitungLuas() yang diturunkan dari kelas Bangun.

Perhatikan bahwa meskipun nama method hitungLuas() ada pada semua subclass,
ternyata penerapannya berbeda-beda tergantung pada subclass masing-masing.

Penerapan Inheritance atau pewarisan

Pewarisan adalah keuntungan besar dalam pemrograman beorientasi
obyek karena suatu sifat atau method yang telah didefinisikan dalam superclass,
secara otomatis diwariskan dari pada semua subclasses.

Jadi kita mungkin hanya perlu mendefinisikan method satu kali di superclass kemudian dapat kita
gunakan pada subclass.

contoh :

class SuperA
{
    private int a;
    public void setSuperA(int nilai)
    {
        a = nilai;
    }
   
    public int getSuperA() {
        return a;
    }
}

// membuat kelas turunan (subclass) dari kelas A
class SubB extends SuperA
{
    private int b;
    public void setSubB(int nilai)
    {
        b = nilai;
    }

    public int getSubB()
    {
        return b;
    }
}

class DemoKelasTurunan1
{
    public static void main(String[] args)
    {
   
    // melakukan instansiasi terhadap kelas B
    SubB ObyekB = new SubB();
   
    // mengeset nilai objek dari kelas B
    ObyekB.setSuperA(50);
    ObyekB.setSubB(200);

    // mendapatkan nilai yang terdapat dalam objek dari kelas B
    System.out.println("Nilai a : " + Obyek.getSuperA());
    System.out.println("Nilai b : " + Obyek.getSubB());
    }
}

Pada kode di atas, class SuperA adalah super class yang memiliki satu
data yaitu a dan dan dua method yaitu setSuperA dan getSuperA.

Class SubB adalah turunan dari kelas SuperA (perhatikan deklarasi class SubB extends SuperA).

Data dan method yang ada pada class SuperA secara otomatis akan dibawa ke class SubB.

Sehingga class SubB akan mempunyai dua data yaitu a dan b.

Data a adalah hasil warisan dari class SuperA sedang data b adalah milik class SubB sendiri.

Method pada class SubB akan terdiri dari empat method,
yaitu setSuperA dan getSuperA yang merupakan warisan dari class SuperA serta
class setSubB dan getSubB yang milik class SubB sendiri.





contoh Penerapan inheritance untuk menghitung luas dan volume.


class Bangun
{
    protected double panjang;
    protected double lebar;

    // constructor default
Bangun()
{
    panjang = lebar = 0;
}

Bangun(double p, double l)
{
    panjang = p;
    lebar = l;
}

// method yang mengembalikan nilai
public double hitungLuas()
{
    double luas = panjang * lebar;
    return luas;
}
}

class Box extends Bangun
{
    private double tinggi;
   
    // constructor class Box
    Box (int p, int l, int t) {
    panjang = p;
    lebar = l;
    tinggi = t;
}

public double getTinggi()
{
    return tinggi;
}

public double hitungVolume()
{
    double volume = panjang * lebar * tinggi;
    return volume;
}
}

class inheritBangun
{
    public static void main(String[] args)
    {
        Box kotak;

        // instansiasi obyek
        kotak = new Box(6, 8, 3);

        // memanggil method hitungLuas(), getTinggi() dan hitung volume()
        System.out.println("Luas salah satu sisi = " + kotak.hitungLuas());
        System.out.println("Tinggi kotak = " + kotak.getTinggi());
        System.out.println("Volume kotak = " + kotak.hitungVolume());
    }
}

Kelas Bangun di atas adalah superclass sedangkan Box adalah subclass.
Pada default constructor Bangun, nilai panjang dan lebar diinisialisasi dengan nilai 0.

Perhatikan didepan deklarasi variabel panjang dan lebar pada kelas Bangun dicantumkan kata

kunci protected yang berarti kelas turunan dari Bangun tetap dapat mengakses nilai dari variabel

tersebut namun yang tidak memiliki hubungan turunan tidak dapat mengaksesnya.

Pada Box yang merupakan subclass ditambahkan satu variabel yaitu tinggi
dengan tambahan kata kunci private diikuti tipe datanya.

Private menunjukkan bahwa variabel tinggi hanya bisa diakses didalam kelas Box. Lawan dari

private adalah public, yang berarti dapat diakses oleh siapapun dan dari manapun.

Pada kelas Box juga kita tambahkan satu method yaitu hitungVolume().
Pada contoh di atas obyek yang kita buat yaitu kotak, merupakan hasil instansiasi dari kelas Box.

Oleh karena kelas Box adalah turunan dari kelas Bangun, maka kita dapat mengakses method

hitungLuas() yang merupakan warisan dari kelas Bangun.

Tentu saja kita bisa mengakses method getTinggi() dan hitungVolume() yang merupakan method

pada kelas Box.




Pemrograman Berorientasi Obyek

Pemrograman Berorientasi Obyek (Object Oriented Programming – OOP)
adalah programming paradigm yang menggunakan obyek dan interaksinya untuk
merancang aplikasi dan program komputer.

Ada beberapa konsep penting yang kalian harus pahami dalam
pemrograman berorientasi yaitu, abstraksi, enkapsulasi, inheritance dan polymorphism.

a. Abstraksi

Abstraction atau disebut juga composition merupakan prinsip
penyederhanaan dari sesuatu yang kompleks dengan cara memodelkan kelas
sesuai dengan masalahnya.

sebuah mobil jika dipecah-pecah bagian-bagiannya kita akan dapatkan
seperti ban, mesin, rangka, mobil, kaca, dan lain-lain dan hal in berlaku sebaliknya.
Jika kita gabungkan bagian-bagian tersebut maka kita akan mendapatkan sebuah kelas mobil.

Pada pemrograman berorientasi obyek biasanya kalau kita menjumpai beberapa kelas
atau obyek yang kalau diidentifikasi memiliki banyak kesamaan atribut dan
method maka kita akan menggabungkan kelas-kelas tersebut menjadi satu super
class.

b. Enkapsulasi

Prinsip encapsulation adalah prinsip penyembunyian detil dari sebuah
kelas terhadap obyek yang berinteraksi terhadapnya.

Sebagai contoh ketika kita menjalankan mobil, sebenarnya kita sedang berinteraksi dan
kita meminta kepada mobil untuk menjalankan methodnya seperti maju, mundur atau
berhenti. Kita berinteraksi hanya dengan beberapa bagian dari mobil (interface)
seperti persneling, setir, pijakan gas, pijakan rem dan bagian lain.

Tapi detil proses yang terjadi didalam mobil bagaimana bisa maju, mundur atau berhenti
kita tidak perlu tahu.

c. Inheritance

Inheritance atau pewarisan adalah prinsip pewarisan sifat dari orang tua
ke anak atau turunannya yang diterapkan pada kelas.

Orang tua memiliki atribut dan method yang lebih umum dibandingkan dengan anak
atau turunannya.

kita bisa tahu bahwa mobil memiliki atribut dan method yang
lebih umum dibandingkan dengan sedan , truk atau bus.

Mobil sebagai kelas yang mewarisi disebut sebagai super class, sedangkan sedan,
truk dan bus sebagai kelas yang diwarisi disebut sub class.

d. Polymorphism

Arti dari polymorphism adalah kemampuan dari suatu obyek untuk
mempunyai lebih dari satu bentuk.

Atau dalam pengertian lain adalah kita dapat menerapkan sesuatu hal yang berbeda melalui
suatu cara yang sama.

Sebagai contoh kalau ada empat ekor hewan berbeda
yaitu burung, ular, katak, dan singa kemudian kita minta untuk bergerak, maka
burung akan terbang, ular akan melata, katak melompat, singa mungkin akan
berlari.

Jadi suatu method yang sama mungkin bisa diterapkan secara lain jika
obyek yang menerapkan adalah berlainan.

1. Class

jawab :

Class atau kelas mendefinisikan karakteristik abstrak dari sesuatu
termasuk atribut atau sifat-sifat dari sesuatu dan apa yang dapat dikerjakan oleh
sesuatu (method). Sebagai contoh, mobil adalah sebuah kelas yang memiliki
attribut warna, merek, tipe dan lain-lain. Mobil juga punya method antara lain,
maju, mundur dan berhenti.

1.a. Pembuatan Kelas

Pada Java kelas didefinisikan dengan kata kunci class.
Bentuk umum untuk mendefinisikan kelas adalah sebagai berikut:

class NamaKelas
tipe data1;
tipe data2;

tipe dataN;
tipe method1 (daftar parameter) {
//blok kode untuk method1
}
tipe method2 (daftar parameter) {
//blok kode untuk method2
}

tipe methodN (daftar parameter) {
//blok kode untuk methodN
}
}

contoh :

class Siswa
{
    String name;
    String alamat;
    int usia;
}

Data atau variabel yang didefinisikan di dalam kelas sering disebut sebagai instance variable.

Nilai-nilai variabel ini akan dibaca melalui method-method yang tersedia.
Dengan demikian method digunakan sebagai antarmuka (interface) antara pemakai kelas dengan

data yang ada di dalam kelas tersebut.

2. Object

jawab :

Apakah obyek itu? Semua benda yang ada didunia ini dapat kita sebut
sebagai obyek. Guru mata pelajaran RPL kalian adalah suatu obyek.
Buku yang kalian pegang ini juga suatu obyek.
Bahkan mata pelajaran RPL adalah juga sebuah obyek.
Setiap obyek akan mempunyai karakteristik dan tingkah laku tertentu.
Karakteristik disebut attribute dan tingkah laku disebut sebagai behavior atau method.

contoh :

class Siswa
{
    String nama;
    String alamat;
    int usia;
}

public class DataSiswa
{
public static void main(String[] args)
{
    siswa siswa1 = new Siswa();
    siswa1.nama = "Roni";
    siswa1.alamat = "Mergosono Gg. 1 No. 34";
    siswa1.usia = 23;

    System.out.println("Nama :" + siswa1.nama);
    System.out.println("Alamat :" + siswa1.alamat);
    System.out.println("Usia :" + siswa1.usia);
}
}

Kode program di atas harus kita simpan dengan nama file DataSiswa.java,
bukan Siswa.java.

Hal ini karena method main berada pada class DataSiswa.

Pada kode di atas kelas Siswa kita gunakan pada kelas DataSiswa.
Kita membuat obyek aktual dari kelas Siswa dengan cara mengetikkan Siswa
siswa1 = new Siswa();.

Siswa1 adalah nama obyek aktual dari kelas Siswa.
Setelah itu baru kita dapat menggunakan variabel atau data yang ada pada kelas siswa.

3. Instantiate

Instansiasi Class Untuk membuat sebuah objek atau sebuah instance pada sebuah class.
Kita menggunakan operator new.

Sebagai contoh, jika anda ingin membuat instance dari class string,
kita menggunakan kode berikut :

String str2 = new String(“Hello world!”);

4. Instance Variable
jawab :
instance variabel adalah Data atau variabel yang didefinisikan di dalam kelas.

5. Instance Method

jawab :

Sebuah method adalah bagian-bagian kode yang dapat dipanggil oleh program utama atau
dari method lainnya untuk menjalankan fungsi yang spesifik.

Petunjuk Penulisan method :
1. Nama method harus dimulai dengan huruf kecil
2. Nama method harus berupa kata kerja
3. Gunakan dokumentasi sebelum mendeklarasikan sebuah method.

Berikut adalah karakteristik dari method :
1.dapat mengembalikan satu nilai atau tidak sama sekali
2.dapat diterima beberapa parameter yang dibutuhkan atau tidak ada parameter sama sekali.
   Parameter bisa juga disebut sebagai argumen dari fungsi
3. setelah method telah selesai dieksekusi, dia akan kembali pada method yang memanggilnya.

contoh program :

class Siswa
{
    String nama;
    String alamat;
    int usia;
    double nilaiMatematika;
    double nilaiBhsInggris;
    double nilaiBhsIndonesia;
    double rerata;

// Menghasilkan nama dari Siswa
public String getNama()
{
    return nama;
}

public void setNama( String temp )
{
    nama = temp;
}

// Menghitung rata – rata nilai
public double getRerata()
{
    rerata = (nilaiMatematika+nilaiBhsInggris+nilaiBhsIndonesia )/3;
    return rerata;
}
}

public class DataSiswa
{
    public static void main(String[] args)
    {
        Siswa siswa1 = new Siswa();
        siswa1.setNama("Rony");
        siswa1.nilaiMatematika = 67;
        siswa1.nilaiBhsInggris = 87;
        siswa1.nilaiBhsIndonesia = 59;

        System.out.println("Nama :" +siswa1.getNama());
        System.out.println("Nilai Matematika :" + siswa1.nilaiMatematika);
        System.out.println("Nilai Bahasa Inggris :" + siswa1.nilaiBhsInggris);
        System.out.println("Nilai Bahasa Indonesia :" + siswa1.nilaiBhsIndonesia);
        System.out.println("Rerata :" + siswa1.getRerata());
    }
}

Contoh Pembuatan method tanpa pengembalian nilai.

Class Bangun
{
    double panjang;
    double lebar;

// Mendefinisikan method void (tidak mengembalikan nilai)
void cetakLuas()
{
    System.out.println(“Luas bangun = “ + (panjang * lebar));
}
}

class pakaiBangun
{
    public static void main(String[] args)
    {
    Bangun b1, b2;

    // instansiasi objek
    b1 = new Bangun();
    b2 = new Bangun();

    // mengisi data untuk objek b1
    b1.panjang = 4;
    b1.lebar = 3;

    // mengisi data untuk objek b2
    b2.panjang = 6;
    b2.lebar = 5;

    // memanggil method cetakLuas() untuk masing-masing objek
    b1.cetakLuas();
    b2.cetakLuas();
    }
}

Contoh Pembuatan method dengan pengembalian nilai.

Class Bangun
{
    double panjang;
    double lebar;

    // Mendefinisikan method yang mengembalikan nilai

    double hitungLuas()
    {
        double luas = panjang * lebar;
        return luas;
    }
}

class pakaiBangun
{
    public static void main(String[] args)
    {
        Bangun b1, b2;

        // instansiasi objek
        b1 = new Bangun();
        b2 = new Bangun();

        // mengisi data untuk objek b1
        b1.panjang = 4;
        b1.lebar = 3;

        // mengisi data untuk objek b2
        b2.panjang = 6;
        b2.lebar = 5;

        // memanggil method hitungLuas() untuk masing-masing objek
        System.out.println(“Luas b1 = “ + b1.hitungLuas());
        System.out.println(“Luas b2 = “ + b2.hitungLuas());
    }
}

Pada contoh diatas kita membuat metode hitungLuas yang mengembalikan nilai.

Perhatikan deklarasi method tidak lagi menggunakan void
tetapi menggunakan double yang merupakan tipe data nilai yang dikembalikan.

Untuk mengembalikan nilai digunakan kata kunci return.


Contoh Pembuatan method dengan argumen.

class Bangun
{
    double panjang;
    double lebar;
   
    // method dengan argumen
    void isiData(double p, double l)
    {
        panjang = p;
        lebar = l;
    }

    // method yang mengembalikan nilai
    double hitungLuas() {
        double luas = panjang * lebar;
        return luas;
    }
}

class pakaiBangun
{
    public static void main(String[] args)
    {
        Bangun b;
       
        // instansiasi obyek
        b = new Bangun();

        // memanggil method isiData dan mengisi argumennya
        b.isiData(6,8);

        // memanggil method hitungLuas() untuk objek b
        System.out.println("Luas b = " + b.hitungLuas());
    }
}

Pada contoh diatas kita menambahkan satu method lagi pada class Bangun yaitu isiData.
Karena tidak mengembalikan nilai maka kita menggunakan void.

Method ini mempunyai dua buah argument yaitu p dan l
yang digunakan untuk menampung nilai yang akan kita masukkan.

6. Class Variables atau static member variables

Disamping instance variable, kita juga dapat mendeklarasikan class variable atau variabel
yang dimiliki class sepenuhnya.

Nilai pada variabel ini sama pada semua object di class yang sama.

Anggaplah kita menginginkan jumlah dari siswa yang dimiliki dari seluruh class,
kita dapat mendeklarasikan satu static variable yang akan menampung nilai tersebut.

Kita beri nama variabel tersebut dengan nama studentCount.

Berikut penulisan static variable :

public class StudentRecord
{
    //area deklarasi instance variables
    private static int studentCount;

    //area penulisan kode selanjutnya
}

Kita gunakan keyword : ’static’

untuk mendeklarasikan bahwa variabel tersebut adalah static.

Maka keseluruhan kode yang dibuat terlihat sebagai berikut :

public class StudentRecord
{
    private String name;
    private String address;
    private int age;
    private double mathGrade;
    private double englishGrade;
    private double scienceGrade;
    private double average;
    private static int studentCount;

    //area penulisan kode selanjutnya
}


7. Constructor

Constructor yang merupakan method khusus, merupakan method yang
didefiniskan di dalam kelas dan akan dipanggil secara otomatis setiap kali terjadi
pendefinisian (instansiasi) obyek.

Biasanya constructor berfungsi untuk melakukan inisialisasi nilai terhadap data-data
yang terdapat pada kelas yang bersangkutan.

Nama method constructor harus sama dengan nama kelas itu sendiri.
Constructor tidak memiliki kembalian nilai dan tidak void.

contoh :

class Bangun
{
    double panjang;
    double lebar;
   
    // constructor dengan argumen
    Bangun(double p, double l)
    {
        panjang = p;
        lebar = l;
    }

    // method yang mengembalikan nilai
   
    double hitungLuas()
    {
        double luas = panjang * lebar;
        return luas;
    }
}

class pakaiBangun
{
    public static void main(String[] args)
    {
        Bangun b;

        // instansiasi obyek
        b = new Bangun();
   
        // memanggil method isiData dan mengisi argumennya
        b.isiData(6,8);

        // memanggil method hitungLuas() untuk objek b
        System.out.println("Luas b = " + b.hitungLuas());
    }
}

Pada kode ini terdapat constructor dengan nama yang sama dengan kelasnya yaitu Bangun.

Constructor seperti halnya method yang lain boleh mempunyai argumen dan boleh tidak.
Pada contoh di atas kita constructor Bangun mempunyai argumen p dan l.

Senin, 07 November 2011

Penjumlahan dua matrik di java

soal selanjutnya...

yang atas kan sudah?
betul,  buat 2 buah matrik yaitu matrik A dan matrik B
kemudian jumlahkan kedua matrik tersebut? jumlah baris dan kolom kalian tentukan
jumlah baris dan kolom matrik A dan B harus sama.
contoh :
matrik A =
      5    7
      2    10
dan

Matrik B =
      6     3
      9     23

hasil penjumlahan:

matrik C =
     11    10
     11     33

kalian kan pernah mengerjakannya di c++
nah tinggal mengkonversi ke java aja kan beres.
yo dah klo ndak ngerti maksud dari soal diatas...kurang lebih jawabannya sebagai berikut...
mau ndak...? dikasih jawabane .....

jawab :

import javax.swing.JOptionPane;
import java.*;

public class MatrikJumlah
{
    public static void main(String [] args)
    {
        String jumlah="";
        int jumlahInt;
       
        jumlah=JOptionPane.showInputDialog("Jumlah Baris dan Kolom : ");
        jumlahInt=Integer.parseInt(jumlah);
       
        String matrikA[][]=new String[jumlahInt][jumlahInt];
        int mA[][]=new int[jumlahInt][jumlahInt];
       
        String matrikB[][]=new String[jumlahInt][jumlahInt];
        int mB[][]=new int[jumlahInt][jumlahInt];
       
        int mC[][]=new int[jumlahInt][jumlahInt];
           
        //isi matrik A
        System.out.println("MAtrik A");
        for(int i=0;i<jumlahInt;i++)
        {
            for(int j=0;j<jumlahInt;j++)
            {
            matrikA[i][j]=JOptionPane.showInputDialog("Matrik A["+i+","+j+"] = ");
            mA[i][j]=Integer.parseInt(matrikA[i][j]);
            System.out.print(mA[i][j]+"\t");
            }
            System.out.println("");
        }
           
        //isi matrik B
        System.out.println("\nMAtrik B");
        for(int i=0;i<jumlahInt;i++)
        {
            for(int j=0;j<jumlahInt;j++)
            {
            matrikB[i][j]=JOptionPane.showInputDialog("Matrik B["+i+","+j+"] = ");
            mB[i][j]=Integer.parseInt(matrikB[i][j]);
            System.out.print(mB[i][j]+"\t");
            }
            System.out.println("");
        }
           
        //penjumlahan matrik A dan matrik B
        for(int i=0;i<jumlahInt;i++)
        {
            for(int j=0;j<jumlahInt;j++)
            {
                mC[i][j]=mA[i][j]+mB[i][j];
            }
        }
           
        //hasil
        System.out.println("\nMatrik A + Matrik B = ");
        for(int i=0;i<jumlahInt;i++)
        {
            for(int j=0;j<jumlahInt;j++)
            {
                System.out.print(mC[i][j]+"\t");
            }
                System.out.println("");
        }   
    }
}

Contoh soal Array dua Dimensi

// buat array dua dimensi dengan inputan :
    a. jumlah data ?
    b. nama ?
    c. nilai1 ?
    d. nilai2 ?

dengan outputan sbb :
(auto)                    (auto)    (auto)
No      Nama         Nilai1     Nilai2     Total     Rata2
=====================================================
1    alex                  80          70          150    75
2    buyung             65          70          135    67,5
3    candra             50           50         100    50
4    jakram             80          90          170    85
5    nia                   65          80           145    72,5   

silahkan dikerjakan.....
jawab :

import javax.swing.JOptionPane;
import java.*;

public class ContohArray2
{
    public static void main(String [] args)
    {
        String juml="";
        int jumlah;
       
        juml=JOptionPane.showInputDialog("Jumlah Data : ");
        jumlah=Integer.parseInt(juml);
       
        int no[][]=new int [jumlah][6];
        String namaS[][]=new String [jumlah][6];
        String nilai1S[][]=new String [jumlah][6];
        String nilai2S[][]=new String [jumlah][6];
        double nilai1[][]=new double [jumlah][6];
        double nilai2[][]=new double [jumlah][6];
        double total[][]=new double [jumlah][6];
        double rata[][]=new double [jumlah][6];
       
       
        for(int i=0;i<jumlah;i++)
        {
                no[i][0]=(i+1);
                namaS[i][1]=JOptionPane.showInputDialog("Nama  Siswa ke -"+(i+1)+" : ");
                nilai1S[i][2]=JOptionPane.showInputDialog("Nilai 1 Siswa ke -"+(i+1)+" : ");
                nilai2S[i][3]=JOptionPane.showInputDialog("Nilai 2 Siswa ke -"+(i+1)+" : ");
                nilai1[i][2]=Double.parseDouble(nilai1S[i][2]);
                nilai2[i][3]=Double.parseDouble(nilai2S[i][3]);
                total[i][4]=(nilai1[i][2])+(nilai2[i][3]);
                rata[i][5]=(total[i][4])/2;
        }
       
        System.out.println("No\tNama\tNilai1\tNilai2\tTotal\tRata2");
        System.out.println("======================================");
       
        for(int i=0;i<jumlah;i++)
        {
                System.out.print(i+1);
                System.out.print("\t");
                System.out.print(namaS[i][1]);
                System.out.print("\t");
                System.out.print(nilai1[i][2]);
                System.out.print("\t");
                System.out.print(nilai2[i][3]);
                System.out.print("\t");
                System.out.print(total[i][4]);
                System.out.print("\t");
                System.out.print(rata[i][5]);
                System.out.println("");
        }
      }
}

Sabtu, 05 November 2011

Array menampilkan nilai max, min, rata dari sejumlah siswa

Buat program untuk menampilkan nilai siswa, dimana banyak nya siswa tidak                  
ditentukan, kemudian :
    a. Tampilkan data dari yang awal hingga akhir
    b. Hitung Jumlah nilai seluruh siswa
    c. Hitung rata-rata
    d. Nilai Maksimum
    e. Nilai Minimum

jawab :

import java.util.Scanner;

public class NilaiArray
{
   public static void main(String [] args)
   {
   
    int i,x;
    float total=0;
    float rata;
    Scanner scan=new Scanner(System.in);
    int [] nilai = {70,80,67,90,100};
   
    for (i=0;i<5;i++)
    {
        System.out.println("Nilai ke-"+(i+1)+" = "+nilai[i]);
    }
   
    java.util.Arrays.sort(nilai);
    System.out.println("Nilai urut dari yang terkecil ");
    for (i=0;i<5;i++)
    {
        System.out.print(nilai[i]+" ");
    }
   
    // 100 90 80 70 67

    System.out.println("\nNilai urut dari yang terbesar");
    for (i=(5-1);i>=0;i--)
    {
        System.out.print(nilai[i]+" ");
    }

    for (i=0;i<5;i++)
    {
        total=total+nilai[i];
    }
    System.out.println("\nTotal= "+total);
   
    rata=total/5;
    System.out.println("\n Rata-rata = "+rata);
   
    System.out.println("\n Max= "+nilai[4]);
    System.out.println("\n Min="+nilai[0]);
/*
    x=nilai[0]; // ==> 70
    for (i=1;i<5;i++) // ==> 80
    {
        if(nilai[i]>x)
        x=nilai[i];
    }
    System.out.print("\nNilai terbesar = "+x);
    System.out.println("\n");
*/
   
   }
}

TUGAS BASIS DATA

TUGAS BASIS DATA SOAL PRAKTIK BASIS DATA (TENTANG MENGGUNAKAN SQL DAN KLASIFIKASINYA) Sebuah sekolah akan membuat syste...