Minggu, 15 April 2012

inheritance dan polymorphisme

INHERITANCE

• Inheritance merupakan salah satu dari tiga konsep dasar OOP.
• Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek / y dapat mempunyai entitas/obyek turunan.
• Dengan konsep inheritance, sebuah class dapat mempunyai class turunan.
• Suatu class yang mempunyai class turunan dinamakan parent class atau base class.
• Sedangkan class turunan itu sendiri seringkali disebut subclass atau child class



atau bisa diartikan inheritance atau pewarisan dalam bahasa java adalah suatu objek atau entitas yang dapat mempunyai objek turunan. Dengan konsep inheritance sebuah class dapat mempunyai class turunan, dan sebuah class dengan memiliki class turunan disebut parent class atau base class, sementara untuk class turunan disebut child class atau yang lebih dikenal sebagai sub class. Suatu sub class dapat mewarisi apa2 saja yang dipunyai oleh parent class, dan isi dari subclass sendiri adalah apa-apa yang ia punyai dan apa-apa yang diwarisi oleh class parentnya, dapat disimpulkan sebuah subclass boleh dikatakan hanya memperluas parent classnya.


contoh program :

  • persegi panjang


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;
}
}

  • Balok
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);
}
}
  • Hitung
class Hitung {
public static void main(String[] args) {
Balok b1 = new Balok(30, 40, 10);
PersegiPanjang p1 = new PersegiPanjang(30,40);
System.out.println(“panjang = ” +b1.panjang);
System.out.println(“lebar = ” +b1.lebar);
System.out.println(“tinggi = ” +b1.tinggi);
System.out.println(“luas = ” +p1.hitungLuas());
System.out.println(“volum = ” +b1.hitungLuas());
}
}
POLYMORPHISME
Polymorphism, 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.
Atau 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.
Ada dua jenis polymorphisme yaitu Override dan Overload. Di dalam java dikatakan bersifat override ketika terdapat method dengan nama, parameter dan tipe data yang sama persis di dalam kelas induk maupun kelas turunannya.


Contoh :

// kelas a sebagai superclass
class a
{
 public void a()
 {
  System.out.println("A");
 }
}

// kelas b sebagai subclass
class b extends a
{
 public void a()
 {
  System.out.println("B");
 }
}

// class utama untuk eksekutor kelas
// dilengkapi dengan method main
public class utama
{
 public  static void main(String[] args)
 {
  a a=new a();
  b b=new b();
  a.a();
  a=b;
  a.a();
 }
}


Overload Polymophisme memiliki perbedaan pada method yang ada. Pada overload polymorphisme terdapat lebih dari satu method dengan nama yang sama tetapi memiliki jumlah parameter maupun tipe data yang berbeda.

Contoh :
// kelas a sebagai superclass
class a
{
 public int ab;
 public void a()
 {
  ab=0;
  System.out.println("A");
 }
 public void a(int ax)
 {
  ab=ax;
  System.out.println("A");
 }
}

// kelas b sebagai subclass
class b extends a
{
 public void a()
 {
  ab=0;
  System.out.println("B");
 }
 public void a(int ax)
 {
  ab=ax;
  System.out.println("B");
 }
}

// class utama untuk eksekutor kelas
// dilengkapi dengan method main
public class utama
{
 public  static void main(String[] args)
 {
  a a=new a();
  b b=new b();
  a.a();
  a.a(10);
  a=b;
  a.a();
  a.a(20);
 }
}

Sumber : http://4s3m.blogspot.com/2011/10/hari-ini-tanggal-24-oktober-2011-terasa.html


Rabu, 11 April 2012

Pemrograman berorientasi objek dan Pemrograman terstruktur dan pengertian enkapsulasi


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, 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. 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.
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.
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 dbuthkan 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.


PENGERTIAN ENKAPSULASI + PROGRAM SEDERHANA OOP DAN EKAPSULASI

                                                      PENGERTIAN ENKAPSULASI
Enkapsulasi (bahasa Inggris:encapsulation), secara umum merupakan sebuah proses yang membuat satu jenis paket data jaringan menjadi jenis data lainnya. Enkapsulasi terjadi ketika sebuah protokol yang berada pada lapisan yang lebih rendah menerima data dari protokol yang berada pada lapisan yang lebih tinggi dan meletakkan data ke format data yang dipahami oleh protokol tersebut. Dalam OSI Reference Model, proses enkapsulasi yang terjadi pada lapisan terendah umumnya disebut sebagai "framing". Beberapa jenis enkapsulasi lainnya antara lain:
  • Frame Ethernet yang melakukan enkapsulasi terhadap datagram yang dibentuk oleh Internet Protocol (IP), yang dalam datagram tersebut juga melakukan enkapsulasi terhadap paket data yang dibuat oleh protokol TCP atau UDP. Data yang dienkapsulasi oleh protokol TCP atau UDP tersebut sendiri merupakan data aktual yang ditransmisikan melalui jaringan.
  • Frame Ethernet yang dienkapsulasi ke dalam bentuk frame Asynchronous Transfer Mode (ATM) agar dapat ditransmisikan melalui backbone ATM.
Lapisan data-link dalam OSI Reference Model merupakan lapisan yang bertanggung jawab dalam melakukan enkapsulasi atau framing data sebelum dapat ditransmisikan di atas media jaringan (kabelradio, atau cahaya). Dalam teknologi jaringan Local Area Network (LAN), hal ini dilakukan oleh Carrier sense multiple access with collision detection (CSMA/CD) untuk jaringan Ethernettoken-passing untuk jaringan Token Ring, dan lain-lain.




contoh program pengimplementasian berbasis objek dari java

import java.io.*;
import java.util.Scanner;
class makanan
{
public int porsi;
public double harga;
}
class nasi extends makanan
{
public void setharga()
{
harga = 1000;
}
}
class lauk extends makanan
{
public void setharga()
{
harga = 2000;
}
}
class sayur extends makanan
{
public void setharga(double h) //set harga lewat input user
{
harga = h;
}
public double getharga() //mengambil info harga dr class
{
return(harga);
}
}
public class program //utk menjalankan program utama
{
public static void main(String[] args)
{
double h;
sayur s = new sayur(); //create object utk masing2 class
lauk l = new lauk();
nasi n = new nasi();
Scanner sc = new Scanner(System.in);

System.out.print(“Harga : “);
h = sc.nextDouble();
s.setharga(h);
System.out.println(“Harga sayur :”+s.getharga());
n.harga = 1000; //akses langsung ke atribut
n.porsi = 2;
biaya = n.harga * n.porsi;
System.out.println(“Biaya :”+biaya);

//menu program dan manipulasi object yg lain
//bisa diletakkan di sini
}
}