Jumat, 20 April 2012

Pewarisan (inheritance) & Polymorphism


Nama                           :  Zaenal Arifin 58410812
Rekan Kerja                 :  http://adji-dcc.blogspot.com/

Kelas                            : 2IA13




Pewarisan (inheritance)

Semua class dalam Java, termasuk class yang membangun Java API, merupakan subclass dari superclass Object.

Contoh dari hierarki class :




Superclass
class yang letaknya di atas class tertentu di dalam hierarki.

Subclass
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.
  • Untuk lebih jelasnya, mari buat class parent sederhana, misalkan kita mempunyai class parent bernama Person.
public class Person { 
protected String name; 
protected String address; 

/**
* Default constructor  
*/ 
public Person(){ 
System.out.println(“Inside Person:Constructor”); 
name = ""; address = ""; 
}
. . . .

  • Sekarang, kita buat class lain bernama Student
  • Karena murid juga termasuk orang, kita putuskan untuk meng-extend class Person, sehingga kita dapat mewariskan semua properti dan method yang telah ada di class Person. 
  • Untuk itu, kita bisa menulis :

public class Student extends Person {
  public Student(){ 
System.out.println(“Inside Student:Constructor”); 
}
. . . .
}
  • Ketika sebuah object Student diinstansiasi, default constructor dari superclass Student dipanggil secara implisit untuk melakukan inisialisasi seperlunya.
  • Setelah itu, pernyataan di dalam constructor subclass dijalankan.
  • Untuk memperjelasnya, perhatikan kode dibawah ini :
public static void main( String[] args ){ 
Student anna = new Student(); 

  • Dalam kode ini, kita membuat sebuah object dari class Student. Hasil dari program adalah:
Inside Person:Constructor 
Inside Student:Constructor

Flowchart program ditampilkan dibawah ini :


  • Sebuah subclass dapat juga memanggil secara eksplisit sebuah constructor superclass yang ada diatasnya.
  • Dapat dilakukan dengan menggunakan pemanggilan constructor super.
  • Pemanggilan constructor super didalam constructor subclass akan mengakibatkan eksekusi dalam constructor yang relevan dari superclass, berdasarkan passing argument-nya.
  • Sebagai contoh, pada contoh sebelumnya yaitu class Person dan Student, kita tunjukkan sebuah contoh pemanggilan constructor super.
  • Tuliskan kode berikut untuk class Student
public Student(){ 
super( "SomeName", "SomeAddress" );
  System.out.println("Inside Student:Constructor");

Polymorphism
Kemampuan sebuah variabel reference untuk merubah behavior sesuai dengan apa yang dipunyai object. 

polymorphism membuat objek-objek yang berasal dari subclass yang berbeda, diperlakukan sebagai objek-objek dari satu superclass. Hal ini terjadi ketika memilih method yang sesuai untuk diimplementasikan ke objek tertentu berdasarkan pada subclass yang memiliki method bersangkutan.

Untuk menjelaskan polymorphism, mari kita bahas sebuah contoh.

Pada contoh sebelumnya, kita diberikan parent class yaitu Person dan subclassnya adalah Student, sekarang kita tambahkan subclass lainnya dari Person yaitu Employee

Berikut adalah hirarki class nya. 


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
}

misalnya, kita memiliki sebuah method getName dalam superclass Person. Dan kita meng-override method ini di kedua subclass yaitu Student dan Employee
public class Student { 
public String getName(){ 
System.out.println(“Student Name:” + name); 
return name; 
}

public class Employee { 
public String getName(){ 
System.out.println(“Employee Name:” + name); 
return name; 

  • Kembali ke method utama kita, ketika kita mencoba memanggil method getName dari referensi Person ref, method getName dari object Student akan dipanggil.
  • Sekarang, jika kita memberi ref kepada object Employee, maka method getName juga akan dipanggil

public static main( String[] args ) {
Person  ref; 
Student studentObject = new Student(); 
Employee employeeObject = new Employee(); 

ref = studentObject; //titik referensi Person kepada object Student 

//getName dari class Student dipanggil 
String temp=ref.getName();
System.out.println( temp ); 

ref = employeeObject; //titik referensi Person kepada  object Employee 
//getName dari class Employee dipanggil  
String temp = ref.getName();
System.out.println( temp ); 



sumber : 
Jardiknas PDF









Kamis, 05 April 2012

PERBEDAAN PEMROGRAMAN TERSTRUKTUR DENGAN PEMROGRAMAN BERORIENTASI OBJEK

NAMA       : Zaenal Arifin
NPM         : 58410812
KELAS      : 2IA13


Link Kelompok : 
http://adji-dcc.blogspot.com/
1. Jelaskan perbedaan pemrograman terstruktur & berorienyasi objek :

Pemrograman Terstruktur

Pemograman 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)PEMROGRAMAN TERSTRUKTUR

Pemograman 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).
Pemrograman Berorientasi Objek

Pemrograman berorientasi objek (Object-Oriented Programming atau 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, Sedangkan 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. Konsep utama dari Pemrograman Berbasis Objek terletak pada kondisi kode/line pemrogramanannya dimana merupakan sebuah kesatuan modular.
Bahasa pemrograman yang mendukung pemrograman terstruktur:
1. Delphi
2. Pascal
3. C
4. Cobol Turbo Prolog
5. Borland Delphi

bahasa pemrograman yang mendukung OOP antara lain:
1. Java
2. C++
3. Pascal (bahasa pemrograman)
4. Visual Basic.NET
5. SIMULA
6. Smalltalk
7. Ruby
8. Python
9. PHP
10. C#
13. Delphi
14. Adobe Flash AS 3.0

Sifat-sifat dari pemrograman terstruktur dapat diuraikan sebagai berikut :

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

Berbeda dengan OOP. Suatu program disebut dengan pemrograman berbasis obyek (OOP) karena terdapat :

– Encapsulation (pembungkusan)

– Inheritance (pewarisan)

– Polymorphism (polimorfisme –perbedaan bentuk)

Sumber :