Jumat, 20 April 2012

Inheritance dan Polimorfisme

 
Inheritance Pengertian Inheritance secara umum (Pewarisan) Yaitu salah satu bentuk penggunaan kembali perangkat lunak dimana suatu kelas baru dibuat dari kelas yang sudah ada dengan memakai variabel data fungsi (method) dari kelas yang sudah ada tersebut serta menambah atribut/pelaku yang baru, kelas baru otomatis memiliki variabel atau fungsi yang dimiliki kelas asal.
Pengertian dasar inheritance :
  1. Inheritance (Pewarisan) merupakan salah satu dari tiga konsep dasar OOP.
  2. Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek dapat mempunyai entitas/obyek turunan.
  3. Dengan konsep inheritance, sebuah class dapat mempunyai class turunan.
  4. Suatu class yang mempunyai class turunan dinamakan parent class atau base class.
  5. Sedangkan class turunan itu sendiri seringkali disebut subclass atau child class.
  6. Suatu subclass dapat mewarisi apa-apa yang dipunyai oleh parent class.
  7. Karena suatu subclass dapat mewarisi apaapa yang dipunyai oleh parent class-nya, maka member dari suatu subclass adalah terdiri dari apa-apa yang ia punyai dan juga apa-apa saja yang ia warisi dari class parent-nya.
  8. Boleh dikatakan bahwa suatu subclass adalah tidak lain hanya memperluas (extend) parent class-nya.
Deklarasi inheritance : 
  1. Dengan menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent class-nya.
  2. Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class. 
public class B extends A {
… }      3.  Semua class di dalam Java adalah merupakan subclass dari class super induk yang bernama Object.
      4.  Misalnya saja terdapat sebuah class sederhana :
public class A { … }
      5.  Pada saat dikompilasi, Kompiler Java akan membacanya sebagai subclass dari class Object.
public class A extends Object { … } Istilah dalam inheritance yang perlu diperhatikan :
  1. Extends, Keyword ini harus kita tambahkan pada definisi class yang menjadi subclass.
  2. Superclass, digunakan untuk menunjukkan hirarki class yang berarti class dasar dari subclass/class anak.
  3. Subclass, yaitu class anak atau turunan secara hirarki dari superclass.
  4. Super Keyword, digunakan untuk memanggil konstruktor dari superclass atau menjadi variabel yang mengacu pada superclass. 
Catatan : Setiap class, hanya dapat memiliki satu superclass, tapi dapat memiliki banyak subclass
Keuntungan menggunakan Inheritance: Semua class dalam Java, termasuk class yang membangun Java API, merupakan subclass dari superclass Object. Contoh dari hierarki class :
  1. Superclass adalah class yang letaknya di atas class tertentu di dalam hierarki.
  2. Subclass adalah class yang letaknya di bawah class tertentu   di dalam hierarki.
Keuntungan penggunaan Inheritance dalam OOP : Reusability, ketika behavior(method) dideklarasikan dalam superclass, behavior tersebut otomatis diwariskan ke seluruh subclass Jadi, Anda dapat meng-enkode method hanya sekali dan method tersebut dapat digunakan oleh seluruh subclass. Sebuah subclass hanya perlu mengimplementasikan perbedaan antara dirinya sendiri dan parent-nya. Untuk mengambil sebuah class, gunakan keyword extends.

Polimorfisme
Polimorfisme suatu aksi yang memungkinkan pemrogram menyampaikan pesan tertentu keluar dari hirarki obyeknya, dimana obyek yang berbeda memberikan tanggapan/respon terhadap pesan yang sama sesuai dengan sifat masing-masing obyek. Polymorphic dapat berarti banyak bentuk, maksudnya yaitu kita dapat menimpa (override), suatu method, yang berasal dari parent class (super class) dimana object tersebut diturunkan, sehingga memiliki kelakuan yang berbeda. Polimorfisme juga merupakan fungsi yang pengembangan dari Inheritence. Dalam pemrograman, polimorfisme dapat diartikan sebagai modul yang memiliki nama sama, namun memiliki behaviour (tingkah laku) yang berbeda sehingga listing code implementasinya juga berbeda. Metode yang digunakan polimorfisme untuk menyatakan satu nama yang merujuk ke beberapa fungsi berbeda, Java mengimplementasikan polimorfisme dengan 2 cara, yaitu:
  1. Methode overloading : penggunaan satu nama untuk beberapa method yang berbeda (beda parameter)
  2. Methode overriding dengan pewarisan : terjadi ketika deklarasi method subclass dengan nama dan parameter yang sama dengan method dari superclassnya overloading
Berikut adalah hirarki class polimorfisme : Dalam Java, kita dapat membuat referensi dari suatu superclass ke object dari subclassnya. Sebagai contoh :
public static main( String[] args ) { Person  ref; Student studentObject = new Student(); Employee employeeObject = new Employee(); ref = studentObject; //titik referensi Person kepada       // sebuah object Student } Keuntungan menggunakan Polimorfisme : 
Dengan menggunakan konsep polimorfisme, dengan mudah dapat diperpanjang, menyediakan objek baru yang sesuai. Hanya  perlu menunjukkan perubahan baru bersama dengan aplikasi lama. Dalam bahasa pemrograman, selalu ada kebutuhan untuk menambahkan dan mengubah. Dengan memanfaatkan konsep polimorfisme, waktu dan tenaga kerja berkurang di samping perawatan membuat masa depan lebih mudah.
  1. Helps in reusability of code =  Membantu dalam usabilitas kode.
  2. Provides easier maintenance of applications = Menyediakan lebih mudah pemeliharaan aplikasi.
  3. Helps in achieving robustness in applications = Membantu dalam mencapai ketahanan dalam aplikasi.
  4. class Hewan { private String jenis; private int kaki; Hewan (){ } Hewan (String jenis, int kaki){ this.jenis = jenis; this.kaki = kaki; } public void bersuara() { System.out.print("suara hewan "+jenis+" berkaki"+kaki); } } class Anjing extends Hewan { Anjing() { super(); } public void bersuara() { //overriding method System.out.println("guk guk guk...."); } } class Kucing extends Hewan { Kucing(String jenis, int kaki) { super(jenis, kaki); } public void bersuara() { //overriding method super.bersuara(); System.out.println("miaowwww...."); } } class DemoPoli { public static void main(String args[]) { Anjing doggy = new Anjing(); Kucing tom = new Kucing("Kucing", 4); doggy.bersuara(); tom.bersuara(); }}
readmore »»  

Senin, 09 April 2012

PERBEDAAN PEMROGRAMAN BERORIENTASI OBJEK DAN PEMROGRAMAN TERSTRUKTUR

PERBEDAAN PEMROGRAMAN BERORIENTASI OBJEK DAN PEMROGRAMAN TERSTRUKTUR




Pengertian Pemrograman Berorientasi Objek

Pemrograman berorientasi objek (Inggris: 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.

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
Pengertian Pemrograman Terstruktur
Pemrograman Terstruktur adalah suatu proses untuk mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dalam bentuk program.
Selain pengertian diatas Pemrograman Terstruktur adalah suatu aktifitas pemrograman dengan memperhatikan urutan langkah-langkah perintah secara sistematis, logis , dan tersusun berdasarkan algoritma yang sederhana dan mudah dipahami.
Prinsip dari pemrograman terstruktur adalah Jika suatu proses telah sampai pada suatu titik / langkah tertentu , maka proses selanjutnya tidak boleh mengeksekusi langkah sebelumnya / kembali lagi ke baris sebelumnya, kecuali pada langkah – langkah untuk proses berulang (Loop).
Bahasa pemrograman yang mendukung pemrograman terstruktur:

  1. Cobol Turbo Prolog
  2. C
  3. Pascal
  4. Delphi
  5. Borland Delphi
Setelah mengetahui pengertiannya?
dilihat dari pengertian di atas, pemrograman terstruktur memilki beberapa sifat – sifat seperti :
a. Memuat teknik pemecahan masalah yang logis dan sistematis
b. Memuat algoritma yang efisien, efektif dan sederhana
c. Program disusun dengan logika yang mudah dipahami
d. Tidak menggunakan perintah GOTO
e. Biaya pengujian program relatif rendah
f. Memiliki dokumentasi yang baik
g. Biaya perawatan dan dokumentasi yang dibutuhkan relatif rendah

berdasarkan penjelasan diatas, sangat jelas sekali bahwa pemrograman tersktruktur 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 dlakukan tracing program ).

Sementara itu 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.dapat digunakannya obyek-obyek sesering yang diinginkan, kita dapat menyimpan obyek-obyek yang yang dirancang dengan baik ke dalam sebuah tolkit rutin yang bermanfaat yang dapat disisipkan kedalam kode yang baru dengan sedikit perubahan atau tanpa perubahan pada kode tersebut.

jadi, sangat jelas sekal bahwa pemrograman berorientasi objek sangat cocok sekali digunakan dalam kasus pembuatan software yang rumit dan kompleks karena memberikan berbagai kemudahan kepada pemrogram seperti yang telah disebutkan diatas.
permodelan yang mana yang lebh bagus? itu tergantung dari kebutuhan dan dari sudut pandang mana anda melihatnya. Yang perlu anda ingat adalah tujuan dari pemodelan itu sendiri, yang mana agar pada akhir proyek sistem dapat diperoleh sistem informasi yang memenuhi kebutuhan pemakai, tepat waktu dan sesuai anggaran, serta mudah digunakan, dimengerti dan dipelihara
Perbedaan mendasar antara OOP dan pemrograman terstruktur adalah:
Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sedangkan untuk pemrograman terstruktur,  menggunakan prosedur/tata cara yang teratur untuk mengoperasikan data struktur
Untuk tata nama, keduanya pun memiliki tatanan yang sama walaupun memiliki pengertian tersendiri:
object oriented menggunakan “method” sedangkan terstruktur menggunakan “function”. Bila di OOP sering didengar mengenai “objects” maka di terstruktur kita mengenalnya dengan ” modules”. Begitu pula  halnya dengan “message” pada OO dan “argument” pada terstruktur. “attribute” pada OO juga memiliki tatanan nama yang sepadan dengan “variabel” pada pemrograman terstruktur.

Persamaan kedua pemrogaman 
adalah keduanya termasuk ke dalam pemodelan pemrograman yang digunakan dewasa ini.

Mana yang lebih baik 
tidak ada yang dapat dikatakan lebih baik karena keduanya memiliki spesifikasi tersendiri dalam pemrogramannya. Hal ini juga tergantung pada bagaimana pribadi si pemrogram ingin menyusun program yang akan dibuatnya. Apakah lebih suka menggunakan yang berorientasikan pada objek maupun pemrograman yang terstruktur.

Kapan sama2 baik
Pemrograman prosedural akan dikatakan lebih baik apabila dalam segala situasi melibatkan kompleksitas moderat atau yang memerlukan signifikan kemudahan maintainability. Manfaat yang dirasakan dalam penggunaan pemrograman prosedural adalah kemampuan kembali menggunakan kode yang sama tanpa menggunakan kode yang berbeda ataupun mengkopinya kembali. Dengan menggunakan “goto”, memudahkan programmer melacak kumpulan data sehingga menghindarkan pemrograman terstruktur menjadi seperti spagethii code.
Pemrograman berorientasikan objek dikatakan lebih baik apabila 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.



Bagus Diyan Permadi
readmore »»