Rabu, 14 September 2011

Resume Pemrograman Berorientasi Objek pertemuan 1

Nama : Ariocky Agustinus
Nim    : 10.41010.0256
         Pemrograman Berorientasi Objek (object-oriented programming disingkat OOP)
 
merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya,
Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.
Bahasa pemrograman yang mendukung OOP antara lain:
  1. Visual Foxpro
  2. Java
  3. C++
  4. Pascal (bahasa pemrograman)
  5. Visual Basic.NET
  6. SIMULA
  7. Smalltalk
  8. Ruby
  9. Python
  10. PHP
  11. C#
  12. Delphi
  13. Eiffel
  14. Perl
  15. Adobe Flash AS 3.0

TIGA PILAH OOP :
1.a.INHERITANCE
 Pengertian:
            Proses pewarisan data dan method dari suatu kelas kepada kelas yang errkelas asalnya akan diturunkan kepada kelas baru.Kelas yang mewariskan disebut Kelas Super(Super class),sedangkan kelas yang diwariskan disebut kelas subKelas(sub class).Dalam beberapa referensi,kelas super disebut juga kelas induk,sementara sub-kelas sebagai kelas anak.
Bila dalam hierarki kelas,kelas induk mendapatkan juga pewarisan dari kelas lainnya,maka data dan method yang bersal dari kelas tersebut akan ikut diwariskan pula kepada kelas anaknya.Sebagai contoh ,kelas C merupakan kelas yang diwariskan dari kelas induk B.Sementara itu,kelas B mendapat sebagian besar data dan methodnya dari proses pewarisan kelas A,maka secara otomatis data dan method yang bersal dari kelas A juga akan diwariskan kepada kelas C.
Bentukpewarisan :
[modifier] class namaSubKelas extend namaKelasSuper {
   // classBody
}


1.Bersifat Reusable
            Salah satu keuntungan OOP adalah bersifat Reusable.Bayangkan bila anda perlu membuat beberapa kelas yang berasal dari basis yang sama(data dan methodnya sama),namun pada masing-masingnya akan ditambahkan data atau method yang khusus.Tanpa inheritance,anda harus menyalin semua data dan method dari suatu kelas.

2.Kemudahan dalam me-manage kelas yang memliki data dan method yang sama.
Bila anda ingin memodofikasi suatu data atau method untuk semua SubKelas,anda tidak perlu melakukan perubahan pada masing-masing SubKelas.Modifikasi cukup dilakukan pada kelas super yang menjadi basis dari SubKelas tersebut.

1.b.Overriding Data dan method
Ialah kemampuan suatu SubKelas untuk memodifikasi data dan method dari kelas induknya.Overriding disebut juga redefinisi data dan method.Proses ini akan mengubah data dan method dari keduanya,kelas induk dan kelas anaknya.Ada dua alasan mengapa melakukan overriding:
1.Mendefinisikan kembali method kelas induknya secara total
2.Menambahkan behaviour tertentu pada method kelas induknya.
// Contoh program overriding
class KelasSuper {
    public void methodAsli() {
        System.out.println(”Method milik KelasSuper jalan”);
    }
    public static void main(String[] args) {
        KelasSuper oks = new KelasSuper();
        oks.methodAsli();
    }
}

Contoh overloading terhadap method :
import java.lang.*;
public class Perkalian {
    private double pangkat(int a, int b) {
        double hasil = 1.0;
        //kode program
        return hasil;
    }
    private double pangkat(double a, int b) {
        double hasil = 1.0;
        //kode program
        return hasil;
    }
    private double pangkat(int a, double b) {
        double hasil = 1.0;
        //kode program
        return hasil;
    }
    private double pangkat(double a, double b) {
        double hasil = 1.0;
        //kode program
        return hasil;
    }
    public static void main(String[] args) {
         Perkalian kali = new Perkalian();
         System.out.println(kali.pangkat(10,308));
             
         // dst untuk data yg lain
    }
}



1.c.Keyword extends
Digunakan keyword Extends untuk mengaplikasikan konsep pewarisan (inheritance).Keyword ini menyatakan bahwa suatu kelas merupakan perluasan dari kelas lain yang dijadikan basis (kelas induknya).


1.d.Keyword Super
Keyword ini digunakan oleh suatu kelas anak untuk memanggil konstruktor atau method yang dimiliki oleh kelas induk yang menjadi basisnya.

2.ENCAPSULATION(Enkapsulasi)
            Ialah bagaimana anda “membungkus” data dan method yang menyusun kelas sehinggga kelas dapat dipandang sebagai suatu modul.Termasuk disini adalah menentukan tingkat aksesibilitas dari masing-masing data dan method serta menyembunyikan detail implementasinya dari “dunia luar”.Dalam pemrograman,menyembunyikan detail ini dikenal dengan istilah Information Hidding.

// Contoh program Information Hiding dan Encapsulation
public class PersegiPanjang{
    private double panjang; // attribute yg di hide
    private double lebar;      // attribute yg di hide
    private double tinggi;     // attribute yg di hide
    public PersegiPanjang() {
        panjang = 0;
        lebar = 0;
    }
    private double luas(double p, double l) {   // di encap
        return p*l;
    }
    public void setPanjang(double panjang) {
        this.panjang = panjang;
    }
    public void setLebar(double lebar) {
        this.lebar = lebar;
    }
    public double getPanjang() {
        return panjang;
    }
    public double getLebar() {
        return lebar;
    }   
    public double getLuas() {
        return luas(panjang, lebar);
    }
}
public class MainPersegiPanjang {
    public static void main(String[] srgs) {
       PersegiPanjang pp = new PersegiPanjang();
       pp.setPanjang(10);
       pp.setLebar(20);
       System.out.println(”Panjang : ”+ pp.getPanjang());
       System.out.println(”Lebar : ”+ pp.getLebar());
       System.out.println(”Luas : ”+ pp.getLuas());
    }
}
 


Berikut ini adalah beberapa keuntungan menerapkan prinsip enkapsulasi:
1.Bersifat independen
Suatu modul yang terenkapsulasi dengan baik akan bersifat independen dari modul lainnya sehingga dapat digunakan pada bagian manapun dari program.Ia tidak akan terikat pada bagian tertentu dari program.
2.Bersifat transparan
Bila anda melakukan modifikasi pada suatu modulo,maka perubahan tersebut akan dirasakan juga oleh bagian program yang menggunakan modul tesebut.
3.Menghindari efek yang diluar perencanaan
Modul yang terenkapsulasi dengan baik hanya akan berinteraksi dengan bagian program lainnya melalui variabel-variabel input/output yang telah didefinisikan sebelumnya.Dengan demikian ,akan mereduksi kemungkinan adanya hasil imbas pemrosesan yang diluar perencanaan semula.

3.POLYMORPHISM
Ialah sesuatu yang memiliki banyak bentuk.Dalam pemrograman ,istilah polymorfi dapat diartikan sebagai modul yang memiliki nama sama ,namun memiliki behaviour (tingkah laku yang berbeda) sehingga listing code implementasinya berbeda.
            Polymorfi dapat diilustraasikan sebagai berikut,perhatikanlah penggunaan kata “mentah” dalam beberapa kalimat.”sayuran itu masih mentah,belum dimasak”,”pukulan petinju itu berhasil dimentahkan oleh lawannya”.”Gagasan ini masih mentahsehingga perlu dibahas kembali”.Kata “Mentah” pada mcontoh diatas dapat diaplikasikan pada berbagai objek dan dapat di interpretrasikan kedalam beberapa makna.
CONTOH :
class EkspresiWajah{
    public String respons() {
        return(”Perhatikan ekspresi wajah saya”);
    }
}
class Gembira extends EkspresiWajah{
    public String respons() {
        return(”ha ha ha…”);
    }
}
class Sedih extends EkspresiWajah{
    public String respons() {
        return(”hik hik ngeee ngeee ngeee”);
    }
}
class Marah extends EkspresiWajah{
    public String respons() {
        return(”Hai kurang ajar…!”);
    }
}



class MainEkspresiWajah{
    public static void main(String args[]) {
       EkspresiWajah objEkspresi = new EkspresiWajah();
        Gembira objGembira = new Gembira();
        Sedih objSedih = new Sedih();
        Marah objMarah = new Marah();

        EkspresiWajah[] arrEkspresi = new EkspresiWajah[4];
        arrEkspresi[0] = objEkspresi;
        arrEkspresi[1] = objGembira;
        arrEkspresi[2] = objSedih;
        arrEkspresi[3] = objMarah;

        System.out.println(”Ekspresi[0] : ”+arrEkspresi[0].respons());
        System.out.println(”Ekspresi[1] : ”+arrEkspresi[1].respons());
        System.out.println(”Ekspresi[2] : ”+arrEkspresi[2].respons());
        System.out.println(”Ekspresi[3] : ”+arrEkspresi[3].respons());
    }
}











0 komentar:

Posting Komentar

 

Blogger news

Blogroll

About