Dhafiq Sagara adalah orang bodoh yang tidak bisa apa-apa, tapi dia selalu berusaha untuk terus menjadi yang lebih baik. Rasa keingin-tahuannya sangat tinggi, selalu berusaha dan terus berusaha, trial dan error adalah prinsip belajarnya.

Tampilkan postingan dengan label Java Dasar. Tampilkan semua postingan
Tampilkan postingan dengan label Java Dasar. Tampilkan semua postingan

10 Okt 2010

Inheritance (Pewarisan) - Java Basic (Bagian 2)

Penjelasan mengenai konsep inheritance, silahkan baca pada Inheritance (Pewarisan) - Java Basic (Bagian 1) 

Berikut ada study kasus untuk penerapan inheritance (pewarisan) dalam memahami konsep OOP pada java.

Berikut kasusnya:
Analisalah sistem jual beli. Buatlah sistem yang memuat tentang obyek barang, makanan dan buku. Masing-masing dari obyek mempunyai properti dan behaviour. Adapun masing-masing properti dan perilakunya adalah :

1. Obyek barang
     1) Properti : nomor, nama, jml_beli, tgl_beli, stok.
     2) Behaviour : pembelian, penjualan.

2. Obyek buku
     1) Properti : nomor, nama, pengarang, penerbit, jumlah halaman, tahun cetak, jml_beli, tgl_beli, stok.
     2) Behaviour : pembelian, penjualan.

Pada sistem ini gambarkan juga konsep inheritance antara obyek-obyeknya, override method. Pada proses perlakuan behaviour maka bisa berpengaruh pada nilai propertinya, misal ketika pembelian maka jumlah beli diisi nilai baru (kreasikan sesuai analisa anda). Analisa juga tipe setiap properti yang dibuat.

 Pada studi kasus di atas, perhatikan kesamaan properti dan behaviour yang dimiliki oleh kedua objek (barang dan buku).
- Properti yang sama   : nomor, nama, jml_beli, tgl_beli, dan stok.
- Behaviour yang sama: pembelian dan penjualan.
Properti dan behaviour utama berada pada superclass yaitu barang. Properti berarti attribute, sedangkan behaviour berarti method.

Oke langsung pada syntax di java:

//*************** barang.java ***************
public class barang {
    private int nomer;
    private String nama;
    private int jml_beli;
    private String tgl_beli;
    private int stok;
    
    barang(){
        
    }

    barang(int nomer, String nama, int jml_beli, String tgl_beli, int stok) {
        this.nomer = nomer;
        this.nama = nama;
        this.jml_beli = jml_beli;
        this.tgl_beli = tgl_beli;
        this.stok = stok;
    }
    
    public int getJml_beli() {
        return jml_beli;
    }

    public void setJml_beli(int jml_beli) {
        this.jml_beli = jml_beli;
    }

    public String getNama() {
        return nama;
    }

    public void setNama(String nama) {
        this.nama = nama;
    }

    public int getNomer() {
        return nomer;
    }

    public void setNomer(int nomer) {
        this.nomer = nomer;
    }

    public int getStok() {
        return stok;
    }

    public void setStok(int stok) {
        this.stok = stok;
    }

    public String getTgl_beli() {
        return tgl_beli;
    }

    public void setTgl_beli(String tgl_beli) {
        this.tgl_beli = tgl_beli;
    }

    public void pembelian(){
        System.out.println("Jumlah Pembelian : "+getJml_beli());
    }

    public void penjualan(){
        System.out.println("Barang yang telah dijual = "+(getStok()+ " - "+getJml_beli())+" = "+(getStok()-getJml_beli()));
    }
}
//****************************************

//*************** buku.java ***************
public class buku extends barang{
    private String pengarang;
    private String penerbit;
    private int jumlah_halaman;
    private int tahun_cetak;

    buku(){

    }

    public buku(int nomer, String nama, int jml_beli, String tgl_beli, int stok, String pengarang, String penerbit, int jumlah_halaman, int tahun_cetak) {
        super(nomer, nama, jml_beli, tgl_beli, stok);
        this.pengarang = pengarang;
        this.penerbit = penerbit;
        this.jumlah_halaman = jumlah_halaman;
        this.tahun_cetak = tahun_cetak;
    }

    public int getJumlah_halaman() {
        return jumlah_halaman;
    }

    public void setJumlah_halaman(int jumlah_halaman) {
        this.jumlah_halaman = jumlah_halaman;
    }

    public String getPenerbit() {
        return penerbit;
    }

    public void setPenerbit(String penerbit) {
        this.penerbit = penerbit;
    }

    public String getPengarang() {
        return pengarang;
    }

    public void setPengarang(String pengarang) {
        this.pengarang = pengarang;
    }

    public int getTahun_cetak() {
        return tahun_cetak;
    }

    public void setTahun_cetak(int tahun_cetak) {
        this.tahun_cetak = tahun_cetak;
    }

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

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

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

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

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

    @Override
    public void pembelian() {
        super.pembelian();
    }

    @Override
    public void penjualan() {
        super.penjualan();
    }

    @Override
    public void setJml_beli(int jml_beli) {
        super.setJml_beli(jml_beli);
    }

    @Override
    public void setNama(String nama) {
        super.setNama(nama);
    }

    @Override
    public void setNomer(int nomer) {
        super.setNomer(nomer);
    }

    @Override
    public void setStok(int stok) {
        super.setStok(stok);
    }

    @Override
    public void setTgl_beli(String tgl_beli) {
        super.setTgl_beli(tgl_beli);
    }
}
//****************************************

//*************** Main.java ***************
public class Main {
    public static void main(String[] args) {
        buku book = new buku();
        book.setNomer(1);
        book.setNama("Laskar Pelangi");
        book.setJml_beli(300);
        book.setStok(500);
        book.setPenerbit("Sagara Corp");
        book.setPengarang("Mudafiq");
        book.setTahun_cetak(2010);
        System.out.println("Spesifikasi buku :");
        System.out.println("Nomor            : "+book.getNomer());
        System.out.println("Judul buku       : "+book.getNama());
        System.out.println("Penerbit         : "+book.getPenerbit());
        System.out.println("Pengarang        : "+book.getPengarang());
        System.out.println("Tahun Cetak      : "+book.getTahun_cetak());
        book.pembelian();
        System.out.println("Stok             : "+book.getStok());
        book.penjualan();
    }
}
//****************************************

Berikut outputnya:
Spesifikasi buku :
Nomor : 1
Judul buku : Laskar Pelangi
Penerbit : Sagara Corp
Pengarang : Mudafiq
Tahun Cetak : 2010
Jumlah Pembelian : 300
Stok : 500
Barang yang telah dijual = 500 - 300 = 200

9 Okt 2010

Inheritance (Pewarisan) - Java Basic (Bagian 1)

Java inheritance (warisan) adalah suatu hubungan antara superclass dan subclass-nya (atau bisa dikatakan hubungan antara induk class dan anak class-nya). Inheritance class (class warisan) didalam mekanisme java digunakan untuk membangun kelas baru dari kelas yang sudah ada. Jadi inti dari inheritance (pewarisan) pada java ini yaitu sebuah kelas mewarisi attribute dan method dari kelas lain.

Sebagai contoh, kelas makhluk_hidup dapat menurunkan sifat (attribute) dan kemampuannya (method) kepada kelas hewan, manusia dan tumbuhan. Sehingga kelas hewan sebagai superclass yang mewariskan sifat (attribute) dan kemampuannya (method) kepada manusia, hewan dan tumbuhan sebagai subclass-nya.

Bagaimana konsep OOP inheritance (pewarisan) dalam penerapannya pada syntax Java??

//*************** makhluk_hidup.java ***************
public class makhluk_hidup {
    private String nama;
    private String warna;
    private String gender;
    private String ciri;

    public String getCiri() {
        return ciri;
    }

    public void setCiri(String ciri) {
        this.ciri = ciri;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getNama() {
        return nama;
    }

    public void setNama(String nama) {
        this.nama = nama;
    }

    public String getWarna() {
        return warna;
    }

    public void setWarna(String warna) {
        this.warna = warna;
    }

    public void nafas(){
        System.out.println("bernafas");
    }

    public void jalan(){
        System.out.println("jalan");
    }
}
//****************************************

//*************** manusia.java ***************
 public class manusia extends makhluk_hidup{
    private String akal;

    public String getAkal() {
        return akal;
    }

    public void setAkal(String akal) {
        this.akal = akal;
    }

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

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

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

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

    @Override
    public void jalan() {
        super.jalan();
    }

    @Override
    public void nafas() {
        super.nafas();
    }

    @Override
    public void setCiri(String ciri) {
        super.setCiri(ciri);
    }

    @Override
    public void setGender(String gender) {
        super.setGender(gender);
    }

    @Override
    public void setNama(String nama) {
        super.setNama(nama);
    }

    @Override
    public void setWarna(String warna) {
        super.setWarna(warna);
    }
}
//****************************************

//*************** hewan.java ***************
 public class hewan extends makhluk_hidup{
    private String kanibal;
    private String beranak;

    public String getBeranak() {
        return beranak;
    }

    public void setBeranak(String beranak) {
        this.beranak = beranak;
    }

    public String getKanibal() {
        return kanibal;
    }

    public void setKanibal(String kanibal) {
        this.kanibal = kanibal;
    }

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

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

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

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

    @Override
    public void jalan() {
        super.jalan();
    }

    @Override
    public void nafas() {
        super.nafas();
    }

    @Override
    public void setCiri(String ciri) {
        super.setCiri(ciri);
    }

    @Override
    public void setGender(String gender) {
        super.setGender(gender);
    }

    @Override
    public void setNama(String nama) {
        super.setNama(nama);
    }

    @Override
    public void setWarna(String warna) {
        super.setWarna(warna);
    }
}
//****************************************

//*************** Main.java ***************
public class Main {
    public static void main(String[] args) {
        manusia man = new manusia();
        hewan animal = new hewan();

        man.setNama("Mudafiq");
        man.setGender("pria");
        man.setWarna("sawo matang");
        man.setCiri("hidung mancung");

        animal.setKanibal("tidak kanibal");
        animal.setBeranak("beranak dengan cara bertelur");
        animal.setCiri("berkaki 2");
        animal.setGender("laki-laki");

        System.out.println(man.getGender()+" itu bernama "+man.getNama()+", warna kulitnya "+man.getWarna()+" dan memiliki "+man.getCiri());
        System.out.println();
        System.out.println("Saya adalah hewan yang "+animal.getBeranak()+" "+animal.getCiri()+" dan "+animal.getKanibal()+". Siapakah saya?");
    }
}
//****************************************

Dari source code di atas, hasil yang ditampilkan yaitu:
pria itu bernama Mudafiq, warna kulitnya sawo matang dan memiliki hidung mancung

Saya adalah hewan yang beranak dengan cara bertelur berkaki 2 dan tidak kanibal. Siapakah saya?



Jadi kelas makhluk_hidup sebagai superclass-nya yang kemudian attributenya diturunkan ke subclass-nya (manusia dan hewan). Kondisi pada saat subclass-nya memanggil method dari superclass-nya disebut override method. Jadi subclass tidak perlu membuat attribute dan method sendiri jika attribute dan methodnya sama dengan superclass, maka tinggal meng-override method dari superclass. Selain itu, syarat pewarisan yaitu subclass harus meng-extends class dari superclass-nya.

Pemrograman Berorientasi Objek - Java Basic

Object-oriented programming (OOP) is a programming paradigm that uses "objects" – data structures consisting of data fields and methods  together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction, encapsulation, modularity, polymorphism, and inheritance. Many modern programming languages now support OOP.(sumber: wikipedia).

Pemrograman berorientasi obyek (OOP) merupakan paradigma pemrograman yang menggunakan "objek", struktur data yang terdiri dari data dan metode digunakan bersama dengan interaksinya - untuk merancang aplikasi dan program komputer. Teknik Pemrograman dapat mencakup fitur seperti data abstraksi, enkapsulasi, modularitas, polimorfisme, dan pewarisan. Banyak bahasa pemrograman modern sekarang mendukung OOP, terutama Java.

Konsep OOP adalah konsep pembuatan class-class pada java yang kemudian semua class tersebut dipanggil dalam sebuah object dalam class lain, misal Main class. Dan implementasinya di Main class-nya.

Contoh syntax konsep OOP Java:
//*************** manusia.java ***************
class manusia {
    private String nama;
    private String alamat;

    public String getNama() {
        return nama;
    }

    public void setNama(String nama) {
        this.nama = nama;
    }

    public String getAlamat() {
        return alamat;
    }

    public void setAlamat(String alamat) {
        this.alamat = alamat;
    }
    
    public void makan(){
        System.out.println("bakso");
    }
}
//****************************************

Kemudian panggil class tersebut di class Main.
//*************** Main.java ***************
 public class Main{
    public static void main(String[] args) {
        manusia man = new manusia(); //membuat object di Main class
        man.setNama("mudafiq"); //meng-set nama
        man.setAlamat("Malang"); //meng-set alamat
   System.out.print("Nama saya "+man.getNama()+", alamat saya di "+man.getAlamat()); //get nama dan alamat
        System.out.print(" dan saya suka makan ");
        man.makan(); // memanggil method makan
    }
} 
//****************************************

Output:
Nama saya mudafiq, alamat saya di Malang dan saya suka makan bakso