Jumat, 20 April 2012

INHERITANCE DAN POLIMORFISME PADA JAVA



Nama : Muhammad Triwindu Prasetya

NPM     : 54410833

Nama Kelompok : Muhammad Aulia Desri Nurrachman


Pada dasarnya kita sebagai manusia sudah terbiasa untuk melihat objek yang berada di sekitar kita tersusun secara hierarki berdasarkan class-nya masing-masing. Dari sini kemudian timbul suatu konsep tentang pewarisan yang merupakan suatu proses dimana suatu class diturunkan dari class lainnya sehingga ia mendapatkkan ciri atau sifat dari class tersebut.
Dari hirarki di atas dapat dilihat bahwa, semakin ke bawah, class akan semakin bersifat spesifik. Misalnya, sebuah Class mamalia memiliki seluruh sifat yang dimiliki oleh binatang, demikian halnya juga anjing, kucing dan monyet memiliki seluruh sifat yang diturunkan dari class mamalia. Dengan konsep ini, karakteristik yang dimiliki oleh class binatang cukup didefinisikan dalam class binatang saja. Class mamalia tidak perlu mendefinisikan ulang apa yang telah dimiliki oleh class binatang, karena sebagai class turunannya, ia akan mendapatkan karakteristik dari class binatang secara otomatis. Demikian juga dengan class anjing, kucing dan monyet, hanya perlu mendefinisikan karakteristik yang spesifik dimiliki oleh class-nya masing-masing. Dengan memanfaatkan konsep pewarisan ini dalam pemrograman, maka hanya perlu mendefinisikan karakteristik yang lebih umum akan didapatkan dari class darimana ia diturunkan.Penurunan sifat tersebut dalam Bahasa Pemrograman Java disebut dengan Inheritance yaitu satu dalam Pilar Dasar OOP (Object Oriented Programing), yang dalam implementasinya merupakan sebuah hubungan “adalah bagian dari” atau “is a relationship” object yang diinherit (diturunkan).Latar belakang diperlukannya suatu inheritance dalam pemrograman java adalah untuk menghindari duplikasi object baik itu field, variable maupun methode yang sebenarnya merupakan object yang bisa diturunkan dari hanya sebuah class. Jadi inheritance bukan sebuah Class yang di inherit oleh sebuah Literial, tapi lebih menunjukkan ke hubungan antar object itu sendiri.Sedangkan suatu kemampuan dari sebuah object untuk membolehkan mengambil beberapa bentuk yang berbeda agar tidak terjadi duplikasi object kita kenal sebagai polymorphism.Antara penurununan sifat (inheritance) maupun polymorphism merupakan konsep yang memungkinkan digunakannya suatu interface yang sama untuk memerintah objek agar melakukan aksi atau tindakan yang mungkin secara prinsip sama namun secara proses berbeda. Dalam konsep yang lebih umum sering kali polymorphism disebut dalam istilah tersebut



Contoh Programnya :

Membuat Class Mobil :
class Kendaraan {
public void Mobil (){
System.out.println("Type Mobil :");
}
}

Membuat Class Turunan dari Jazz, yang merupakan turunan dari class Mobil :


public class Jazz extends Mobil {
public void Type(){
System.out.println("Honda jazz");
}
}


Membuat Class Turnana dari CRV, yang merupakan turunan dari class Mobil :


public class CRV extends Mobil {
public void Type (){
System.out.println("Honda CRV");
}
}


Membuat Class Turnana dari City, yang merupakan turunan dari class Mobil : 


public class City extends Mobil {
public void Type(){
System.out.println("Honda City");
}
}


Lalu membuat class TypeMobil untuk menjalankan semua class-class yang telah dibuat :
public class TypeMobil {
public static void main(String[] args){
Mobil mobil = new Mobil();
Jazz jazz = new Jazz();
CRV crv = new CRV();
City city = new City();

mobil.Type();

mobil = jazz;
mobil.Type();

mobil = crv;
mobil.Type();

mobil = city;
mobil.Type();
}
}

Outputnya :

Jumat, 13 April 2012

Java Enkapsulasi

Enkapsulasi Java
Enkapsulasi adalah suatu cara untuk menyembunyikan informasi detail dari suatu class. Dua hal yang mendasar dalam enkapsulasi yakni :
Information hiding.
Interface to access data.
Information hiding
Sebelumnya kita dapat mengakses anggota class baik berupa atribut maupun method secara langsung dengan menggunakan objek yang telah kita buat. Hal ini dikarenakan akses kontrol yang diberikan kepada atribut maupun method yang ada di dalam class tersebut adalah 'public'. Kita dapat menyembunyikan informasi dari suatu class sehingga anggota class tersebut tidak dapat diakses dari luar, caranya adalah hanya dengan memberikan akses kontrol 'private' ketika mendeklarasikan atribut atau method. Proses ini disebut dengan information hiding.
Interface to access data
Jika kita telah melakukan information hiding terhadap suatu atribut pada suatu class, lalu bagaimana cara melakukan perubahan terhadap atribut yang kita sembunyikan tersebut, caranya adalah dengan membuat suatu interface berupa method untuk menginisialisasi atau merubah nilai dari suatu atribut tersebut.

Contoh program :

program 1:

public class Vehicle{
public double load, maxLoad;
public Vehicle (double maxLoad){
maxLoad = maxLoad + load;
}
public double getLoad(){
return load;
}
public double getMaxLoad(){
return maxLoad;
}
}

program 2 :

public class TestVehicle{
public static void main(String[] args){
System.out.println("Creating a vehicle with a 10,000kg maximum load.");
Vehicle vehicle = new Vehicle(10000.0);
System.out.println("Add box #1 (500kg)");
vehicle.load = vehicle.load + 500.0;
System.out.println("Add box #2 (250kg)");
vehicle.load = vehicle.load + 250.0;
System.out.println("Add box #3 (5000kg)");
vehicle.load = vehicle.load + 5000.0;
System.out.println("Add box #4 (4000kg)");
vehicle.load = vehicle.load + 4000.0;
System.out.println("Add box #4 (300kg)");
vehicle.load = vehicle.load + 300.0;
System.out.println("Vehicle load is = " +vehicle.getLoad() + "kg");
}
}

Output program :


Jumat, 06 April 2012

perbedaan pemrograman terstruktur dan berorientasi objek di bahasa pemrograman java


Perbedaan Pemrograman terstruktur dengan Pemrograman Berorientasi Objek

Perbedaan Pemrograman terstruktur dengan

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.


Untuk program yang simpel/sederhana biasanya menggunakan pemrograman terstruktur karena masih mudah dan tidak banyak dilakukan perubahan yang berarti, sedangkan untuk line lebih dari 100 atau bisa dikatakan rumit, maka digunakan pemrograman berorientasi objek. Pemrograman Terstruktur terdiri dari pemecahan masalah yang besar menjadi masalah yang lebih kecil dan seterusnya, sedangkan untuk pemrograman berorientasi objek terdiri dari pengkelompokan kode dengan data yang mana setiap objek berfungsi secara independen sehingga untuk setiap perubahan kode tidak tergantung pada kode yang lainnya, atau lebih dikenal dengan modular. Terdapat juga perbedaan secara spesifik antara Pemrograman Berorientasi Objek dengan Pemrograman Terstruktur, yaitu pada kelas dan objek. Pada Pemrograman Terstruktur tidak terdapat kelas dan objek.


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)

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


Bisa dikatakan pada pemrograman berorientasi objek, dapat dilakukan sebuah programming terhadap code yang lebih baik daripada pemrograman terstruktur, itu juga untuk kaliber atau 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.

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