Inheritance program transaksi, dengan 3 kelas

hehehe sori dikarenakan di FB kurang bagus keliatannya hehe… jd pindah k sini dulu…

saya dapat soal tentang contoh inheritance dengan kasus transaksi yang menggunakan 3 kelas , yaitu kelas customer , barang dan transaksi..

soalnya walaupun kurang jelas kurang lebih di terjemahkannya begini…

ada 3 kelas , costumer, barang dan transaksi…

di transaksi harus ada data cusotmer ama barang yang di beli .. nah kalo gitu setelah kita buat kelas barang dan customer .. maka di kelas transaksi objek dan methode yang ada di 2 kelas td juga harus ada di kelas transaksi..

jd transaksi bisa saja merupkan multiple inheritance dari kelas customer dan kelas barang… atau cara ke-2 transaksi merupakan turunan ke 2 dari kelas customer dan turunan pertama dari kelas barang…

karena di java g support multiple inheritance dengn keyword extends,, jd say coba pake interface…

untuk yang pertama dengan menggunakan interface :

ini adalah kelas customer :


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

package transakasi;

/**
 *
 * @author karisma
 */
public class Costumer {
    private int noID;
    private String Nama,Alamat,No_tlp;

    public Costumer(int No_id, String Nama, String Alamat, String No_tlp) {
        this.noID = No_id;
        this.Nama = Nama;
        this.Alamat = Alamat;
        this.No_tlp = No_tlp;
    }

    public String getAlamat() {
        return Alamat;
    }

    public String getNama() {
        return Nama;
    }

    public int getNo_id() {
        return noID;
    }

    public String getNo_tlp() {
        return No_tlp;
    }

}

Nah yang kedua kita buat interface Barang yang isinya hanya methode2 abstract yang nantinya di implementasikan di kelas transaksi..

ini dia interface nya :

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

package transakasi;

/**
 *
 * @author karisma
 */
public interface Barang {

    public void setBarang(int kdBrg, String nmBarang, String Merk, long harga);

}

dan untuk kelas transaksinya adalah sebagai berikut :

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

package transakasi;

/**
 *
 * @author karisma
 */
public class Transaksi extends Costumer implements Barang{

    private int kdTrans, banyak,kdBrg;
    private String date;
    private String nmBarang,Merk;
    private long harga;

    public Transaksi(int No_id, String Nama, String Alamat, String No_tlp) {
        super(No_id, Nama, Alamat, No_tlp);
    }

    public void setTransaksi(int kdTrans, String date, int banyak) {
        this.kdTrans = kdTrans;
        this.date = date;
        this.banyak=banyak;

    }

    public long getTotal(int jml, long harga){
        return jml*harga;

    }

    public void setBarang(int kdBrg, String nmBarang, String Merk,long harga) {
        this.kdBrg=kdBrg;
        this.Merk=Merk;
        this.nmBarang=nmBarang;
        this.harga=harga;
    }

    public void showStruk() {

        System.out.println("Kode Transaksi :"+kdTrans);
        System.out.println("================================");
        System.out.println("Kode Costumer  :"+getNo_id());
        System.out.println("Nama Costumer  :"+getNama());
        System.out.println("Alamat         :"+getAlamat());
        System.out.println("=================================");
        System.out.println("Kode Barang    :"+kdBrg);
        System.out.println("Nama Barang    :"+nmBarang);
        System.out.println("Merk Barang    :"+Merk);
        System.out.println("Harga Barang   :"+harga);
        System.out.println("\nBanyak Pembelian :"+banyak);
        System.out.println("================================");
        System.out.println("Total          :"+getTotal(banyak, harga));
    }

}

nah tinggal kelas Main yang isinya methode utam yang static void main :

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

package transakasi;

import transakasi.Transaksi;

/**
 *
 * @author karisma
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
            ///multipler inheritance
        Transaksi Trans = new Transaksi(001, "Hendri Karisma",
                        "Bandung", "085659378***");
        Trans.setTransaksi(0011, "15-04-2010",3);
        Trans.setBarang(1000, "Printer", "EPSON", 550000);

    }

}

nah itu cara yang pertama dengan multiple inheritance yang pake cara mengimplementasikan interface barang..

nah yang kedua dengan cara menurunkan kelas customer dan kelas barang ..:

pertama buat kelas customer persis seperti yang sebelumnya.. jd step ini bisa kita lewat,,,
lalu buat kelas barang (“bukan interface.”) ..

kelas barang :

kita ganti namanya yang td kelas barang menjadi kelas BarangClass ..

class BarangClass extends Costumer{

        private int kdBrg;
        private String nmBarang,merk;
        private long harga;

    public BarangClass(int No_id, String Nama, String Alamat, String No_tlp) {
        super(No_id, Nama, Alamat, No_tlp);
    }

    public void setBarang(int kdBrg,String nmBrg, String merk,long harga){

        this.kdBrg=kdBrg;
        this.nmBarang=nmBrg;
        this.merk=merk;
        this.harga=harga;

    }

    public long getHarga() {
        return harga;
    }

    public int getKdBrg() {
        return kdBrg;
    }

    public String getMerk() {
        return merk;
    }

    public String getNmBarang() {
        return nmBarang;
    }

    @Override
    public String getAlamat() {
        return super.getAlamat();
    }

    @Override
    public String getNama() {
        return super.getNama();
    }

    @Override
    public int getNo_id() {
        return super.getNo_id();
    }

    @Override
    public String getNo_tlp() {
        return super.getNo_tlp();
    }

}

nah lalu kita buat kelas TransaksiInherit, untuk kelas transaksi nya… :


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

package transakasi;
import transakasi.BarangClass;
/**
 *
 * @author karisma
 */
public class TransaksiInherit extends BarangClass {

    private int kdTrans,banyak;
    private String tglTrans;

    public TransaksiInherit(int No_id, String Nama, String Alamat, String No_tlp) {
        super(No_id, Nama, Alamat, No_tlp);
    }

    @Override
    public void setBarang(int kdBrg, String nmBrg, String merk, long harga) {
        super.setBarang(kdBrg, nmBrg, merk, harga);
    }

    public void setTrans(int kdTrans,String tglTrans, int banyak){
            this.kdTrans=kdTrans;
            this.tglTrans=tglTrans;
            this.banyak=banyak;

    }

    public long setTotal(){
        return super.getHarga()*banyak;

    }

    public void showStruk(){
          System.out.println("Kode Transaksi :"+kdTrans);
        System.out.println("================================");
        System.out.println("Kode Costumer  :"+super.getNo_id());
        System.out.println("Nama Costumer  :"+super.getNama());
        System.out.println("Alamat         :"+super.getAlamat());
        System.out.println("=================================");
        System.out.println("Kode Barang    :"+super.getKdBrg());
        System.out.println("Nama Barang    :"+super.getNmBarang());
        System.out.println("Merk Barang    :"+super.getMerk());
        System.out.println("Harga Barang   :"+super.getHarga());
        System.out.println("\nBanyak Pembelian :"+this.banyak);
        System.out.println("================================");
        System.out.println("Total          :"+setTotal());

    }

}

terakhir kita buat kelas utama untuk kelas Main yang berisikan methode main :

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

package transakasi;

import transakasi.Transaksi;

/**
 *
 * @author karisma
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here

        //cara yang kedua...

        TransaksiInherit Trans2 = new TransaksiInherit(002, "Si Tukan Sayur" , "Bandung",
                                    "12345678");
        Trans2.setTrans(005, "16-04-2010", 4);//(kode transaksi, tgl trasnsaksi, banyak transaksi)

        Trans2.setBarang(123, "NoteBook", "ASSu", 9090900);

        Trans2.showStruk();
    }

}

itulah sedikit 2 cara dari banyak cara untuk menyelesaikan soalnya…
semoga bermanfaat…

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s