Sabtu, 21 April 2012

INHERITANCE dan POLIMORFISME

INHERITANCE
Pada postingan kali ini saya akan membahas tentang Inheritance dan Polimorfisme pertama saya akan membahas Inheritance. Inheritance adalah Salah satu konsep dasar dari pemrograman berbasis objek pada java. Pada dasarnya, kita melakukan inheritance(pewarisan) untuk membuat suatu class baru(class turunan/subclass) yang masih memiliki sifat atau spesifikasi dari superclass. Di dalam Java untuk mendeklarasikan suatu class sebagai subclass dilakukan dengan cara menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent class-nya. Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class.
Beberapa aturan tentang pewarisan(inheritance) yang perlu diperhatikan :
1. Java hanya memperkenankan adanya single inheritance. Konsep single inheritance hanya memperbolehkan suatu sublass mempunyai satu parent class. Dengan konsep single inheritance ini, masalah pewarisan akan dapat diamati dengan mudah.

2. Subclass juga merupakan class biasa, maka kita tetap dapat melakukan pewarisan pada subclass ini. Misal : class B merupakan subclass dari class A, kita dapat membuat class baru yang diturunkan dari class B sehingga class baru tersebut akan memiliki apa yang dimiliki oleh class A dan class B.

3. Suatu parent class dapat tidak mewariskan sebagian member-nya kepada subclass-nya. Sejauh mana suatu member dapat diwariskan ke class lain, ataupun suatu member dapat diakses dari class lain, sangat berhubungan dengan access control (kontrol pengaksesan).

contoh coding =
 import java.io.*;
public class Mamalia {
void KelasMamalia () {
System.out.println("Ciri umum mamalia adalah bernapas dengan paru-paru, " +
"berkembang biak dengan cara beranak");
}}
class Paus extends Mamalia {
String x = "Ikan Paus";
void TampilkanPaus () {
System.out.println("dan Mamalia yang Anda pilih adalah "+ x );
System.out.println("Mamalia ini berada di laut");
System.out.println("Paus termasuk jenis mamalia terbesar");
}}
class Cheetah extends Mamalia {
String x = "Cheetah";
void TampilkanCheetah () {
System.out.println("dan Mamalia yang Anda pilih adalah "+ x );
System.out.println("Mamalia ini berada di darat");
System.out.println("Cheetah termasuk mamalia pelari tercepat di darat");
}}
class Sapi extends Mamalia {
String x = "Sapi";
void TampilkanSapi () {
System.out.println("dan Mamalia yang Anda pilih adalah "+ x );
System.out.println("Mamalia ini berada di darat");
System.out.println("Sapi termasuk jenis mamalia pemamahbiak");
}}
class Turunan {
public static void main(String[] args) throws IOException{
String sInput = null ;
System.out.println("____JENIS MAMALIA____");
System.out.println("[1]. IKAN PAUS");
System.out.println("[2]. CHEETAH");
System.out.println("[3]. SAPI");
System.out.print("Masukkan pilihan [1..3] :");
Mamalia generalx = new Mamalia();
Paus turunan1 = new Paus();
Cheetah turunan2 = new Cheetah();
Sapi turunan3 = new Sapi ();
Sapi subxc = new Sapi();
InputStreamReader inputan = new InputStreamReader(System.in);
BufferedReader jm = new BufferedReader(inputan);
sInput = jm.readLine();
int i = Integer.parseInt(sInput);
switch (i) {
case 1 :
generalx.KelasMamalia ();
turunan1.TampilkanPaus ();break;
case 2 :
generalx.KelasMamalia ();
turunan2.TampilkanCheetah ();break;
case 3 :
generalx.KelasMamalia ();
turunan3.TampilkanSapi ();break;
default:
System.out.println("Pilihan yang Anda masukkan salah!!");break;
}
}
}



Outputnya =


POLIMORFISME
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.Polimorfisme juga bisa diartikan satu bentuk banyak aksi. Dalam pewarisan polimorfisme dapat kita lakukan. Kita data memerintah sebuah objek untuk melakukan tindakan yang secara prinsip sama tapi secara proses berbeda.




contoh coding =
public class Mobil {
 public void injakPedalGas(){
  System.out.println("Mobil berjalan...");
 }
}
public class Kijang extends Mobil{
 public void injakPedalGas(){
  System.out.println("Mobil Melaju dengan kecepatan 80 Km/jam...");
 }
}
public class Escudo extends Mobil {
   public void injakPedalGas(){
    System.out.println("Mobil Melaju dengan kecepatan 70 Km/jam...");
 }
}
public class BMW extends Mobil{
 public void injakPedalGas(){
  System.out.println("Mobil Melaju dengan kecepatan 100 Km/jam...");
 }
}

public class TestMobil {
 public static void main(String[] args){
  Mobil mobil = new Mobil();
  Kijang kijang = new Kijang();
  Escudo escudo = new Escudo();
  BMW bmw = new BMW();
  
  mobil.injakPedalGas();
  
  mobil = kijang;
  mobil.injakPedalGas();
  
  mobil = escudo;
  mobil.injakPedalGas();
  
  mobil = bmw;
  mobil.injakPedalGas();
 }
}
 
 
Di postingkan oleh ANDI dan VERNELL
  
sumber = http://nur-arianto.blogspot.com/2009/11/inheritance-pada-java.html 
http://sinau-java.blogspot.com/2008/05/polimorfisme-dalam-pewarisan.html 

Jumat, 20 April 2012

Enkapsulasi pada java

Pada postingan kali ini saya akan membahas tentang Enkapsulasi, enkapsulasi memiliki arti mengelompokkan program kedalam satu unit sehingga program menjadi mudah digunakan. Mampu menangani berbagai input yang diberikan dan menghasilkan output yang benar. Melindungi program dari pengaksesan variabel kritis oleh proses atau perubahan oleh programer selama tahap pembangunan program.
Manfaat enkapsulasi :
  1. 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.
  1. Information Hiding
Penyembunyian informasi yang tidak perlu diketahui objek lain.
Contoh Deklarasi enkapsulasi :
public class siswa {
private int nrp;
public void setNrp(int n){
nrp = n; }}
contoh project enkapsulasi :
/*buat kelas baru dengan nama Mahasiswa.java*/
public class Mahasiswa {
private int nrp;
private String nama;
public Mahasiswa(int i, String n){
this.nrp = i;
this.nama = n; }
public void  setNRP(int nrp) {
this.nrp = nrp; }
public int getNRP () {
return nrp; }
public void setNama(String nama) {
this.nama = nama; }
public String getNama() {
return nama; }
}//end class
/*buat kelas main untuk menjalankan program dengan nama TesMahasiswa.java*/
public class TesMahasiswa {
public static void main (String []args){
int nomer;
String nm;
Mahasiswa siswa = new Mahasiswa(123, “1″);
System.out.println(siswa.getNRP());
System.out.println(siswa.getNama());
siswa.setNama(“SoOn”);
siswa.setNRP(111);
System.out.println(siswa.getNRP());
System.out.println(siswa.getNama()); }
}//end class

Output yang dihasilkan :



Logika :
Pada contoh program enkapsulasi diatas terdiri dari 3 class, tetapi yang menjadi class utama untuk menjalankan program ini adalah class TesMahasiswa, dan letak dari unsur pengenkapsulasian dari program ini adalah “
Mahasiswa siswa = new Mahasiswa(123, “1″); ” , untuk memanggil class Mahasiswa agar program dapat dijalankan.
Dipostingkan oleh Andi Rifqi dan vernell

Sumber  :  http://ahmadsonarif.wordpress.com

Jumat, 06 April 2012

Pemrograman terstruktur & berbasis objek

Pada postingan kali ini saya akan menjelaskan tentang apa itu pemrograman terstruktur dan berbasis objek serta perbedaan dari keduanya, okeh langsung saja dilihat penjelasannya di bawah ini #monggo:)

Pemrograman Terstruktur
Istilah Pemrograman Terstruktur (Structured Programming) mengacu dari suatu
kumpulan tehnik yang dikemukan oleh Edsger Dijkstra. Dengan tehnik ini akan meningkatkan
produktifitas programmer, dengan mengurangi waktu yang dibutuhkan dalam penulisan (write),
pengujian (test), penelusuran kesalahan (debug) dan pemeliharan(maintain) suatu program.


Dasar Pemrograman Terstruktur :
  • TOP-DOWN PROGRAMMING = Pendekatan ini sangat berguna sekali dalam perencanaan suatu program bersifat modul.Dalam pendekatan ini pertama-tama kita mendefinisikan modul untuk program utama, yangmerupakan program yang pertama kali dieksekusi, memanggil modul yang lain dan kemudian menghentikan eksekusi program.
  • Structure Charts = Digunakan sebagai alat bantu perencanaan dalam top-down programming. Sering juga disebut sebagai hierarchy/hierarchical/chart/visual table of content (VTOC). Tidak ada standar
    untuk structure chart dan digunakan untuk menggambarkan seluruh komponen yang ada. 
Contoh : Pascal, C, Delphi

Pemrograman Berbasis Objek
Pemrograman Berorientasi Objek (PBO) atau Object Oriented Programming (OOP) merupakan paradigma pemrograman yang keseluruhannya akan berorientasikan pada objek. Konsep lain dari PBO adalah pemrograman yang membagi program menjadi beberapa objek yang akan saling terhubung dan berinteraksi satu dengan yang lainnya.Seperti halnya pada namanya Pemrograman Berorientasi Objek, maka PBO tidak dapat lepas dengan istilah Objek. Selain itu yang tidak kalah pentingnya adalah kelas. istilah dasar lain di dalam PBO adalah atribut dan methode.
Dasar Pemrograman Berbasis Objek :
  • Inheritance(penurunan sifat) =Sifat-sifat yang terdapat pada kelas induk (base class) akan dimiliki oleh kelas turunannya(derived class). Tetapi bergantung juga kepada access specifier yang diberikan dalam proses penurunan kelas
  • Encapsulation(pengkapsulan) = Enkapsulasi adalah pembungkus, pembungkus disini dimaksudkan untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain. Konsep enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar dapat diakses sewaktu-waktu, sekaligus menjaga program tersebut.
  • Polymorphism(Polimorfisme) = merupakan suatu konsep yang menyatakan sesuatu yang sama dapat memiliki berbagai bentuk dan prilaku yang berbeda. Polimorfisme memberikan sebuah aksi pada obyek yang dibagi ke atas dan ke bawah, setiap obyek dalam hirarki mengeimplementasikan aksi dari dirinya sendiri.
 Contoh : Java, Cobol, Turbo C++, dsb


Dari penjelasan di atas dapat di simpulkan apa saja perbedaan dari kedua pemrograman tersebut, perbedaannya yaitu pada Pemrograman berorientasi objek merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek.Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya, Sedangkan untuk Structural Programming adalah kebalikan dari object oriented programming 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. 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.
Untuk programming terstruktur bersifat task-centric dan berorientasi objek bersifat data-centric. Terdapat juga perbedaan secara spesifik antara objek oriented dengan non-oop, yaitu pada kelas dan objek. Pada Pemrograman  Terstruktur tidak terdapat kelas dan objek. 


Sumber  :
http://diakbar.wordpress.com/2010/09/23/perbedaan-object-oriented-programming-dan-structural-programming/
http://thoy2.com/mengenal-pemrograman-berbasis-objek-bag-i.html