Jumat, 20 April 2012

Inheritance dan Polimorfisme dalam Java


  • Inheritance

Inheritance yaitu penurunan sifat dari induk class kepada subclass atau anak class.
Contohnya dapat diambil dari contoh alami yaitu class zebra. Dalam dunia biologi, class zebra adalah hewan bertulang belakang atau vertebrata yang merupakan mamalia pemakan rumput/tumbuh-tumbuhan atau bertipe herbivora.
Didalam Java, penurunan sifat tersebut disebut Inheritance. Penurunan sifat alami tersebut sama dengan penurunan yang terjadi dalam Java sehingga bisa dijadikan contoh inheritance dan bisa dituangkan kedalam Java. Dengan konsep pewarisan, seorang programmer dapat menggunakan kode yang telah ditulisnya pada kelas super berulang kali pada kelas-kelas turunannya tanpa harus menulis ulang semua kode-kode itu.
Contoh program inheritance :
(pada program ini perhatikan kata kunci extends)

Listing :

class vertebrata{
    String status_vertebrata = "Hewan bertulang belakang";
    public void bertulang_belakang(String hewan, Boolean status){
        if (status==true){
            System.out.println(hewan+""+status_vertebrata);
        }
 else{
            status = false;
 }
    }
}
class mamalia extends vertebrata{
    String makanan;
    public void menyusui (String hewan){
        System.out.println(hewan + "adalah mamalia karena dia menyusui ");
    }
    public void herbivora (String hewan, Boolean status){
        makanan = "Makan Tumbuh-tumbuhan";
        if (status==true){
            System.out.println(hewan + "" + makanan);
        }
 else {
            status = false;
        }
    }
    public void karnivora (String hewan, Boolean status){
        makanan = " Makan Daging ";
        if (status==true){
            System.out.println(hewan + "" + makanan);
        }
 else{
            status = false;
        }
    }
    public void omnivora (String hewan, Boolean status){
        makanan = " Pemakan Segalanya ";
        if (status==true){
            System.out.println(hewan + "" + makanan);
        }
 else{
            status = false;
        }
    }
}
public class inheritance extends mamalia {
                public static void main(String[] args) {
        inheritance zebra = new inheritance();
        zebra.bertulang_belakang("Zebra ", true);
        zebra.menyusui("Zebra ");
        zebra.herbivora("Zebra ", true);

    }
}

Output :
ketiga class diatas tergabung dalam satu file yakni file inheritance.java. Didalam class inheritance terdapat methode public static void main() yang merupakan constructor utama atau main

ketiga class tersebut dapat di pisah ke dalam 3 file dengan masing2 nama file sesuai dengan nama classnya, hanya tinggal meng-import file java vertebrata.java dan mamalia.java kedalam file inheritance.java yang terdapat metode main/utama

  • Polimorfisme
Dalam pemrograman berorientasi object kita mengenal suatu istilah yaitu  Polimorfisme.
Polimorfisme adalah suatu teknik dalam programming yang lebih mengarahkan kita untuk memprogram secara general dari pada secara spesifik.  Polimorfisme juga dapat dikatakan kemampuan sebuah objek untuk memutuskan method mana yang akan diterapkan padanya, tergantung letak objek tersebut pada jenjang pewarisan. 
Contoh program java yang menggunakan polimorfisme :

Listing :
// Orang.java
public class Orang{
public String nama;
public String alamat;

//Constructor...
public Orang() {
}

public Orang (String nama) {
this.nama = nama;
}
public Orang(String nama,String alamat){
        this.nama=nama;
        this.alamat=alamat;
    }
    //accessor method mengembalikan nilai
    public String getName(){
        return nama;
        }
    //mutator methode untuk mengubah nilai dari instance.
   public void setName(String nama){
           this.nama = nama;
       }
}

//Mahasiswa1.java

public class Mahasiswa1 extends Orang{

    String jeniskelamin;

    public Mahasiswa1() {

        //super digunakan untuk memanggil constructor terdekat pada kelas Orang.

        super("Olivia");

    }

    //overidde methode dari kelas Orang..

    public String getName(){

        return nama;

        }

    public void setName(String nama){
        this.nama = nama;

        }
}

// Pekerja.java

public class Pekerja extends Orang{
                public Pekerja() {
                super("Mahasiswa");
     }
 //ovveride dari kelas Person

    public String getName(){
       return nama;

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

        }
 }

// CallOrang.java
public class CallOrang {
  public static void main(String[] args){
//contoh polimorfisme di java

        Orang call;

        Mahasiswa1 m = new Mahasiswa1();

        Pekerja n = new Pekerja();



        //memanggil dari kelas mahasiswa

        call = m;
        String smp = call.getName();

        System.out.println("Saya dari bagian Mahasiswa : " + smp);

        //memanggil dari kelas pekerja

        call = n;

        String sma = call.getName();

        System.out.println("Saya dari bagian Pekerja : " + sma);

       }
       }

Ke-empat class diatas tergabung dalam satu file yaitu Polimorfisme. Didalam class terdapat Polimorfisme. methode public static void main() yang merupakan constructor utama atau main
Ketiga class tersebut saya  pisah ke dalam tiga file, dengan masing-masing nama file, sesuai dengan nama classnya, hanya tinggal meng-import file java yaitu:
Orang.javaMahasiswa1.java, dan Pekerja.java.
Kedalam file CallOrang.java yang terdapat metode main/utama.

Output :
Sumber :


Nama : Olivia Yulianda
NPM : 55410279
Kelas : 2IA13






Kamis, 12 April 2012

ENKAPSULASI

Enkapsulasi atau pengkapsulan (Encaptulation) adalah kombinasi data dan fungsionalitas dalam sebuah unti tunggal sebagai bentuk untuk menyembunyikan detail informasi. Proses enkapsulasi memudahkan kita untuk menggunakan sebuah objek dari suatu kelas. 
Enkapsulasi juga dapat diartikan mengelompokkan program menjadi mudah digunakan. Mampu menagani berbagai input yang diberikan dan menghasilkan output yang benar. Melindungi program dari pengaksesan variabel kritis oleh proses atau perubahan oleh programer selama tahap pembangunan program.

Manfaat enkapsulasi, yaitu;
  • Modularitas. Sorce code dari sebuah class dapat dike Lola secara independen dari source code class yang lain. Perubahan internal pada sebuah class  tidak akin berpengaruh bagi class yang menggunakannya.
  • Information Hiding. Penyembunyian informasi yang tidak perlu diketahui objek lain.
Macam - macam enkapsulasi, yaitu ;
  • private =  tidak dapat diakses oleh sembarang class
  • public = dapat diakses oleh siapapun, semua default method, class atau variable itu public jika tidak diberi enkapsulasi.
  • protected.
Contoh program enkapsulasi :

Listing

public class Tanggal{
private int tgl;
private int bln;
private int tahun;
public Tanggal (int tgl, int bln, int thn){
System.out.println(tgl+""+bln+""+thn);
}
}

public class TesTanggal{
public static void main (String []args){
Tanggal kalender = new Tanggal (12,10,1992);
TanggalNomer3 tgl = new TanggalNomer3(12);
TanggalNomer3 tglbln = new TanggalNomer3(12,10);
TanggalNomer3 tglblnthn = new TanggalNomer3(12,10,1992);
}
}

public class TangglNomer3{
private int tgl;
private int bln;
private int tahun;
public TanggalNomer3(int tgl){
System.out.println(tgl);
}
public TanggalNomer3(int tgl,int bln){
System.out.println(tgl+""+bln);
}
public TanggalNomer3(int tgl,int bln,int thn){
System.out.println(tgl+""+bln+""+thn);
}
}



Output







Sumber : http//ahmadsonarif.wordpress.com/2011/10/31/enkapsulasipengkapsulan-java-practikum-3-2/


Nama : Olivia Yulianda
NPM : 55410279
Kelas : 2IA13

Jumat, 06 April 2012

Perbedaan Pemrograman Berorientasi Objek dan Pemrograman Terstruktur

A. Pemrograman Berorientasi Objek

Pemrograman berorientasi objek, biasa kita kenal dengan OOP (Object Oriented Programing). OOP merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi didalam paradigma dibungkus kedalam kelas-kelas atau objek-objek. Konsep utama dari Pemrograman berorientasi objek terletak pada kondisi kode/line pemrogramanannya dimana merupakan sebuah kesatuan modular. 

B. Pemrograman Terstruktur

Pemrograman terstruktur adalah suatu proses untuk mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dalam bentuk program. Selain itu pemrograman terstruktur adalah suatu aktivitas pemrograman dengan memperhatikan urutan langkah-langkah perintah secara sistematis, logis, dan tersusun berdasarkan algoritma yang sederhana dan mudah dipahami.Untuk pemrograman terstruktur adalah kebalikan dari pemrograman berorientasi objek yaitu sebuah cara pemrosesan data yang terstruktur dalam analisa, cara dan penulisan pemrograman. Dikarenakan harus terstruktur sehingga dalam pembuatannya antara satu line pemrograman dengan yang lainnya berhubungan. 
Prinsip dari pemrograman terstruktur adalah jika suatu proses telah sampai pada satu titik / suatu langkah tertentu, maka proses selanjutnya tidak boleh mengeksekusi langkah sebelumnya atau kembali ke baris sebelumnya. Kecuali pada langkah-langkan untuk proses loop (berulang)

C. Perbedaan Pemrograman Berorientasi Objek dengan Pemrograman
   Terstruktur
  • Pemrograman berorientasi objek memliki beberapa keuntungan seperti :
  1. Maintenance, Program lebih mudah dibaca dan dipahami, dan pemrograman berorientasi obyek mengontrol kerumitan program hanya dengan mengijinkan rincian yang dibutuhkan untuk programmer.
  2. Pengubahan program (berupa penambahan atau penghapusan fitur tertentu), Perubahan yang dilakukan antara lain menyangkut penambahan dan penghapusan dalam suatu database program misalnya. 
  3. Kita dapat menyimpan objek-objek yang dirancang dengan baik ke dalam sebuah tolkit rutin, yang bermanfaat karena dapat disisipkan kedalam kode yang baru dengan sedikit perubahan atau tanpaperubahan pada kode tersebut.
  • Suatu program disebut dengan pemrograman berbasis obyek karena terdapat :

     Encapsulation (pembungkusan)
    Encapsulation adalah mekanisme pemrograman yang membungkus kode dan data yang dimanipulasi dan menjaganya supaya terhindar dari interferensi dan penggunaan yang tidak perlu. Salah satu caranya dengan membentuk objek.

    –  Inheritance (pewarisan)
    Inheritance memungkinkan programer meletakkan member yang sama dalam satu class dan class-class lain dapat mewarisi member tersebut. Class yang mengandung member yang sama dari beberapa class lain dinamakan superclass atau parent class. Class yang mewarisi dinamakan subclass atau child class. Inheritance menghasilkan class hierarchy.

    –  Polymorphism (polimorfisme –perbedaan bentuk)
    Polymorphisme artinya mempunyai banyak bentuk. Dua objek atau lebih dikatakan sebagai polymorphic, bila objek-objek itu mempunyai antar muka yang identik namun mempunyai perilaku-perilaku yang berbeda

  • Pemrograman terstruktur memiliki beberapa sifat-sifat seperti :
     a. Memuat teknik pemecah masalah yang logis dan sistematis.
     b. Memuat algoritma yang efisien, efektif dan sederhana.
     c. Pemrograman yang dibuat dengan logika yang mudah untuk dipahami.
     d. Tidak menggunakan perintah GOTO.
     e. Biaya pengujian program relatif rendah.
     f. Memiliki dokumentasi yang baik.
     g. Biaya perawatan dan dokumentasi relatif rendah. 

Bisa dikatakan pada pemrograman berorientasi objek, dapat dilakukan sebuah programming terhadap code yang lebih baik daripada pemrograman terstruktur, itu juga untuk yang skala rumit atau besar, sedangkan untuk coding yang skala kecil lebih mudah menggunakan pemrograman terstruktur dikarenakan lebih singkat dan mudah tanpa banyak perubahan yang penting.
Dari data diatas dapat dikatakan bahwa pemrograman tersktruktur lebih unggul dalam melakukan pemrograman sederhana. Karena lebih efisien dan lebih murah dalam hal perawatannya tetapi permodelan ini lebih susah untuk dipahami oleh orang – orang selain pembuat program itu sendiri (contohnya ketika dilakukan tracing program).


Refrensi :
2).  http://myblogar.blogspot.com/2011/02/perbedaan-pemrograman-terstruktur.html 

Nama : Olivia Yulianda
NPM  : 55410279
Kelas  : 2IA13