Pages

Total Tayangan Halaman

Senin, 16 April 2012

Memahami Konsep Inheritance (Pewarisan) dan Polimorfisme Pada OOP

Nama : Mochamad Yudha Sugiarto Sultan
Npm : 54410445
Kelas : 2IA13
Kelompok saya adalah : Dirgan Traviata Masjaya
Blog teman saya : http://dear-gun.blogspot.com

INHERITANCE
Inheritance adalah pewarisan yang artinya sebuah kelas yang mewarisi atribut dan methode dari kelas lain yang masih sejenis, sebagai contoh dalam dunia nyata adalah kelas hewan menurunkan sifat dan kemampuannya kepada kelas hewan mamalia, kelas hewan bertulang belakang dll, kelas Hewan sebagai superclass dan mewarisi atribut juga methodenya kepada hewan mamalia sebagai subclass.

Kita dapat mendefinisikan suatu kelas baru dengan mewarisi sifat dari kelas lain yang sudah ada. Penurunan sifat ini bisa dilakukan secara bertingkat-tingkat, sehingga semakin ke bawah kelas tersebut menjadi semakin spesifik. Sub kelas memungkinkan kita untuk melakukan spesifikasi detail dan perilaku khusus dari kelas supernya. 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.

Penurunan sifat memungkinkan kita untuk membuat sebuah objek baru yang sama dengan objek sebelumnya yang telah didefinisikan. Karakteristik dari suatu objek diturunkan ke objek yang lain sehingga objek yang baru akan memiliki karakteristik yang sama dengan induknya. Penurunan ini diawali dengan mendefinisikan objek induk, sehingga dengan menggunakan objek induk tersebut, dapat membuat objek yang bertumpu pada objek induknya. Sehingga akan terbentuk objek keturunan. Dimana setiap objek turunannya dapat mengakses semua data dan program yang dimiliki oleh objek induknya. Berikut ini contoh program sederhana menggunakan Java dengan Eclipse.

Contoh Program :

save dengan nama PersegiPanjang.java

class PersegiPanjang
{
double panjang;
double lebar;

PersegiPanjang(double panjang, double lebar) {
this.panjang = panjang;
this.lebar = lebar;
}

PersegiPanjang()
{
throw new UnsupportedOperationException("Not yet implemented");
}
double hitungLuas() {
return (panjang * lebar);
}
double getPanjang() {
return panjang;
}
double getLebar() {
return lebar;
}
}kemudian buat lagi dengan nama filenya Balok.java


class Balok extends PersegiPanjang{
double tinggi;

Balok(double panjang, double lebar, double tinggi) {
super(panjang, lebar);
this.tinggi = tinggi;
}

@Override
double hitungLuas() {
return (panjang * lebar * tinggi);
}
}

Selanjutnya membuat program utama, untuk menampilkan hasil proses yang dilakukan oleh class PersegiPanjang dan class Balok.

save dengan nama file Hitung.java


class Balok extends PersegiPanjang{
double tinggi;

Balok(double panjang, double lebar, double tinggi) {
super(panjang, lebar);
this.tinggi = tinggi;
}

@Override
double hitungLuas() {
return (panjang * lebar * tinggi);
}
}
outputnya :




POLIMORFISME
Dalam pemrograman berorientasi object kita mengenal suatu istilah yaitu “ Polimorfisme ”, yaitu suatu teknik dalam programming yang lebih mengarahkan kita untuk memprogram secara general dari pada secara spesifik. Sebagai contoh seumpama kita memiliki 3 class berbeda yaitu: “Motor”, “Mobil” dan “Pesawat”. Dimana ketiga class tersebut adalah turunan dari class “Kendaraan”. Dalam kelas kedaraan terdapat suatu method yaitu “Move()”, akan tetapi apakah method “Move()” akan memberikan hasil yang sama pada tiga class tersebut. Dimana jika method “Move()” dipanggil pada class “Motor” akan menghasilkan perpindahan 30Km, jika pada class “Mobil” akan menghasilkan perpindahan 70Km dan jika dipanggil pada class “Pesawat” akan menghasilkan perpindahan 300Km. Hal inilah yang kita sebut sebagai Polimorfisme , yaitu penggunaan method yang sama, yang akan menghasilkan suatu hasil yang berbeda tergantung class yang menggunakan method tersebut.
Berikut ini adalah contoh program java yang menggunakan polimorfisme :

save dengan nama file 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;
}
}


save dengan nama file Mahasiswa.java
public class Mahasiswa extends Orang{
String jeniskelamin;
public Mahasiswa() {

//super digunakan untuk memanggil constructor terdekat pada kelas Orang.
super("Dirgan");
}

//overidde methode dari kelas Orang..
public String getName(){
return nama;
}

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

save dengan nama file Pekerja.java
public class Pekerja extends Orang{
public Pekerja() {
super("Yudha");
}

//ovveride dari kelas Person
public String getName(){
return nama;
}

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

save dengan nama file CallOrang.java untuk memanggil semua class…intinya sebagai pusat pemanggilan.

public class CallOrang {
public static void main(String[] args){

//contoh polimorfisme di java
Orang call;
Mahasiswa m = new Mahasiswa();
Pekerja n = new Pekerja();

//memanggil dari kelas mahasiswa
call = m;
String smp = call.getName();
System.out.println("aku dari bagian Mahasiswa.java : " + smp);

//memanggil dari kelas pekerja
call = n;
String sma = call.getName();
System.out.println("aku dari bagian Pekerja.java : " + sma);
}
}

Kamis, 05 April 2012

Pengertian Enkapsulasi dan Contoh Programnya (JAVA)

Nama : Mochamad Yudha Sugiarto Sultan
Npm : 54410445
Kelas : 2IA13
Kelompok saya adalah :  Dirgan Traviata Masjaya
Blog teman saya :  http://dear-gun.blogspot.com  

Enkapsulasi merupakan teknik yang membuat variabel/field class menjadi bersifat privat dan menyediakan akses ke variabel/field melalui public method. Jika field di deklarasikan sebagai private, maka field ini tidak bisa diakses oleh siapapun diluar class, dengan demikian field disembunyikan di dalam class. Dengan kata lain enkapsulasi juga berfungsi untuk menyembunyikan data. Encapsulation juga merupakan tembok penghalang yang mencegah kode atau data diakses oleh data lain di luar class. Akses ke kode dan data di kontrol melalui interface.

Manfaat utama teknik encapsulation adalah kita mampu memodifikasi kode tanpa merusak kode yang telah digunakan pada class lain.
Enkapsulasi memiliki manfaat sebagai berikut:
> Modularitas
Source code dari sebuah class dapat dikelola secara independen dari source code class yang lain. Perubahan internal pada sebuah class tidak akan berpengaruh bagi class yang menggunakannya.
> Information Hiding
Penyembunyian informasi yang tidak perlu diketahui objek lain.
Contoh programnya :

/* Nama file : enkapsulasi.java */
public class enkapsulasi {

   private String nama;
   private int umur;

   public int getUmur(){
      return umur;
   }
   public String getNama(){
      return nama;
   }
   public void setUmur( int newUmur){
      umur = newUmur;
   }
   public void setNama(String newNama){
      nama = newNama;
   }
}

Method public merupakan akses ke field class yang disediakan diluar class. Method yang disediakan diatas adalah method ‘set’ dan ‘get’. Sehingga jika class lain jika ingin mengakses field harus melalui method ‘set’ dan ‘get’.
Variabel pada class Enkapsulasi dapat di akses dengan cara berikut.

 /* Nama file : enkapsulasi_1.java */
public class enkapsulasi_1 {
   public static void main(String[] args){
      enkapsulasi enkap = new enkapsulasi();
      enkap.setNama("Dirgan");
      enkap.setUmur(19);
      System.out.println("Nama : " + enkap.getNama());
      System.out.println("Umur : "+ enkap.getUmur());
    }
}

Jika di run program enkapsulasi.java, maka hasilnya seperti ini :

sumber : http://bernard-very.com/?p=94

Perbedaan Pemrograman Terstruktur dan Berorientasi Objek

Nama : Mochamad Yudha Sugiarto Sultan
Npm : 54410445
Kelas : 2IA13
Kelompok saya adalah :  Dirgan Traviata Masjaya
Blog teman saya :  http://dear-gun.blogspot.com 


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.

Jadi, kalau ingin membuat program (coding) yang panjang dan rumit, lebih baik menggunakan pemrograman yang berbasis objek, kalau codingnya dengan skala kecil dan ga ribet, pakai pemrograman terstruktur karena lebih simpel :)
happy coding =D

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