Search This Blog

Showing posts with label Pemrograman Berorientasi Objek. Show all posts
Showing posts with label Pemrograman Berorientasi Objek. Show all posts

Wednesday, 13 June 2012

POLYMORPHISM


Polymorphism adalah kemampuan untuk menggunakan operator atau fungsi dalam berbagai cara. Polimorphism memberikan arti yang berbeda atau fungsinya kepada operator atau fungsi. Poly, merujuk ke banyak, menandakan banyak kegunaan dari operator dan fungsi ini. Fungsi tunggal penggunaan atau operator berfungsi dalam banyak cara bisa disebut polimorphism. Polimorphism mengacu pada kode, operasi atau objek yang berperilaku berbeda dalam konteks yang berbeda.
Keuntungan dari konsep polimorfisme

Setelah aplikasi ditulis menggunakan konsep polimorphism, dapat dengan mudah diperluas, menyediakan objek baru yang sesuai dengan interface aslinya . Hal ini tidak perlu mengkompilasi ulang program asli dengan menambahkan tipe yang baru, hanya menghubungkan ulang diperlukan untuk menunjukkan perubahan baru bersama dengan aplikasi yang sebelumnya. Ini adalah pencapaian terbesar C + + pemrograman berorientasi obyek. Dalam bahasa pemrograman, selalu ada kebutuhan untuk menambahkan dan mengubah. Dengan memanfaatkan konsep polimorphism, waktu dan usaha kerja berkurang di samping menciptakan masa depan lebih mudah pemeliharaan.

* Membantu dalam usabilitas kode.
* Menyediakan lebih mudah pemeliharaan aplikasi.
* Membantu dalam mencapai ketahanan dalam aplikasi.

Polymorphism dibedakan menjadi 2 jenis, yakni:
1. Trivial polymorphism
* menggunakan C style
* function terjadi pada saat compile time
* dengan menggunakan functin overloading
* link body function + function header / prototype

2. True polymorphism
* menggunakan C++ style
* dengan virtual method
* function didefinisi saat runtime
* terdapat dalam ADT atau abstrak data class
* compiler membuat UMT untuk class yang mengandung polyorphism
* jika derived class memiliki fungsi yang sama (overriding), maka UMT akan menunjuk ke fungsi base class

Implementasi polymorphism dapat dilakukan dengan dua cara, yaitu:
1. Overloading function adalah penggunaan kembali nama fungsi yang sama tapi dengan argumen yang berbeda.

Ada 3 signature yang perlu diperhatikan dalam melakukan overloading :
* Jumlah argument
* Letak argument
* Type argument

Contoh :
Void hitung (int x, int y);
Void hitung(float x, float y);

2. Overriding function adalah sebuah fungsi dalam class turunan yang memiliki nama, return type dan argumen function yang sama dengan fungsi dalam class induk.

Ada 2 jenis virtual method dalam overriding, yaitu :
1. Pure Virtual Method
merupakan virtual method yang hanya mendeklarasikan function prototipes saja (tidak memiliki implementasi)
Suatu class yang memiliki pure virtual method. Instance (object) tidak dapat dibuat dari suatu abstract class,
karena masih ada fungsi yang tidak memiliki function body. Ciri dari pure virtual method adalah pada deklarasi ditulis fungsi() = 0.
Contoh :

class kendaraan
{
virtual void jalan()= 0;
};

2. Squasi Virtual Method
merupakan virtual metthod yang mempunyai function body atau implementasi
Contoh :
class kendaraan
{
virtual void jalan() {;}
};

Dan pada penggunaannya hanya destructor saja yang dapat dibuat virtual.

Tuesday, 12 June 2012

INTERFACE PADA PEMROGRAMAN JAVA

Interface adalah jenis khusus dari blok yang hanya berisi method signature (atau constant).  Interface mendefinisikan sebuah(signature) dari sebuah kumpulan method tanpa tubuh. Interface mendefinisikan sebuah cara standar dan umum dalam menetapkan sifat-sifat dari class-class. Mereka menyediakan class-class, tanpa memperhatikan lokasinya dalam hirarki class, untuk mengimplementasikan sifat-sifat yang umum. Dengan catatan bahwa interface-interface juga menunjukkan polimorfisme, dikarenakan program dapat memanggil method interface dan versi yang tepat dari method yang akan dieksekusi tergantung dari tipe object yang melewati pemanggil method interface – from J.E.N.I


Untuk memahami lebih mudah, interface sekumpula dari method-method yang dibuat tapi belum ada operasi di dalam tubuh method tersebut, interface ini bisa diturunkan atau diwariskan kepada class yang ingin memakai method yang ada dalam masing-masing interface tersebut dengan keyword extends [interface yang didefinisikan]. Dan juga sebuah class mengimplementasi 1 interface yang sudah dibuat dengan keyword implements.

Ciri-ciri dari interface adalah sebagai berikut..
  • Method interface tidak punya tubuh, sebuah interface hanya dapat mendefinisikan konstanta dan interface tidak langsung mewariskan hubungan dengan class istimewa lainnya, mereka didefinisikan secara independent.
  • Tidak bisa membuat instance atau objek baru dari sebuah interface.
  • Ciri umum lain adalah baik interface maupun class dapat mendefinisikan method. Bagaimanapun, sebuah interface tidak punya sebuah kode implementasi sedangkan class memiliki salah satunya.
public interface [InterfaceName]
{
//beberapa method tanpa isi
}


- Seperti penggunaan interface pada salah satu class interface berikut.


public interface RemoteAllInOne {

 public void pindahChannel(int channel);

 public void perbesarVolume(int kpsts);

 public void perkecilVolume(int kpsts);

 public void perkecilZoom(int kpsts);

 public void perbesarZoom(int kpsts);
}


- Setelah itu kita menggunakan class yang akan mengimplementasi setiap method yang ada pada class interface RemoteAllInOne.


public class BenQ implements RemoteAllInOne {

 String[] menuTV = {"ANTV", "INDOSIAR", "TRANS-TV", "TPI", "RCTI", "SCTV", "GLOBAL-TV"};

 public void pindahChannel(int channel) {
 System.out.println("LCD BENQ Pindah Channel ke - " + this.menuTV[channel]);
 }

 public void perbesarVolume(int kpsts) {
 System.out.println("LCD BENQ Perbesar Vol : " +kpsts);
 }

 public void perkecilVolume(int kpsts) {
 System.out.println("LCD BENQ Pekecil Vol : " + kpsts);
 }

 public void perkecilZoom(int kpsts) {
 System.out.println("LCD BENQ Pekecil Zoom : " + kpsts);
 }

 public void perbesarZoom(int kpsts) {
 System.out.println("LCD BENQ Pebesar Zoom : " + kpsts);
 }
}

- Setelah itu kita membuat class yang berfungsi sebagai perantara pemanggil method sebelum kita masuk ke class main, atau pembuatan instance baru sebuah objek supaya dapat digunakan setiap interface yang dibuat tadi.

public class MyRemoteAllInOne {
 public void sendRequest(int aksi, RemoteAllInOne rmt, int tombol){
 switch(aksi){
 case 1:
 rmt.pindahChannel(tombol);
 break;
 case 2 :
 rmt.perkecilVolume(tombol);
 break;
 case 3 :
 rmt.perbesarVolume(tombol);
 break;
 case 4 :
 rmt.perkecilZoom(tombol);
 break;
 case 5 :
 rmt.perbesarZoom(tombol);
 break;
 }
 }
}


- Dan berikut adalah class main yang dipakai waktu pengeksekusian program.

public class Tester {

 /**
 * @param args the command line arguments
 */
 public static void main(String[] args) {
 BenQ bq = new BenQ();
  MyRemoteAllInOne my = new MyRemoteAllInOne();
  my.sendRequest(1, bq, 6);
  }
}



Thursday, 24 May 2012

OVERLOADING


Overloading adalah suatu keadaan dimana beberapa method memiliki nama yang sama tetapi fungsionalitasnya berbeda.

Contoh :
- titik (x,y);
- titik (x,y,z);

Ciri Overloading :
- Nama method harus sama
- Daftar parameter harus berbeda
- Return type boleh sama, boleh berbeda

Melakukan Overloading pada Method
import java.awt.Point;
public class Segiempat {
int x1 = 0;
int y1 = 0;
int x2 = 0;
int y2 = 0;
public void buatSegiempat(int x1, int y1, int x2, int y2) {
this.x1 = x1;
this.y1 = y1;
this.x2 = x2;
this.y2 = y2;
}
public void buatSegiempat(Point topLeft, Point bottomRight){
x1 = topLeft.x;
y1 = topLeft.y;
x2 = bottomRight.x;
y2 = bottomRight.y;
}
public void buatSegiempat(Point topLeft, int w, int h){
x1 = topLeft.x;
y1 = topLeft.y;
x2 = (x1 + w);
y2 = (y1 + h);
}
void cetakSegiempat(){
System.out.print("Segiempat:<" + x1 + ", " + y1);
System.out.print(", " + x2 + "," + y2 + ">);
}
public static void main(String[] arguments){
Segiempat rect = new Segiempat();
System.out.print("Buat segiempat dengan koordinat (25,25) dan (50,50)");
rect.buatSegiempat(25, 25, 50, 50);
rect.cetakSegiempat();
System.out.print();
System.out.print("Buat segiempat dengan point (10,10) dan point (20,20):");
rect.buatSegiempat(new Point(10,10), new Point(20,20));
rect.cetakSegiempat();
System.out.print();
System.out.print("Buat segiempat dengan 1 point (10,10), koordinat (50,50)");
rect.buatSegiempat(new Point(10,10), 50, 50);
rect.cetakSegiempat();
}
}

Tuesday, 3 April 2012

PENGERTIAN METHOD


Method adalah sarana bagi programmer untuk memodularisasi, artinya membreak atau memecah program kompleks menjadi bagian yang kecil-kecil sehingga nantinya dapat digunakan berulang-ulang, daripada menulis beberapa baris kode yang sama. Method dalam Java mirip dengan fungsi atau procedure dalam bahasa pemrograman yang lain. Pada konsep Object Oriented Programming, Function lebih dikenal dengan istilah Method dimana merupakan suatu bagian dari Object yang mendefinisikan apa yang bisa Object tersebut lakukan.
Jadi :
Method adalah fungsi atau prosedur yang dibuat oleh seorang programmer didalam suatu Class. Method dapat dibagi menjadi fungsi dan prosedur. Fungsi adalah bagian atau sub dari program yang mempunyai algoritma tertentu dalam menyelesaikan suatu masalah dengan mengembalikan hasil. Prosedur adalah bagian atau sub dari program yang mempunyai algoritma tertentu dalam menyelesaikan suatu masalah tanpa mengembalikan suatu nilai hasil. Secara umum method dalam java adalah sebuah fungsi.

Setiap method menghasilkan suatu nilai dengan tipe data tertentu yang dinamai Return Type. Apabila terdapat suatu fungsi yang tidak menghasilkan suatu nilai apapun maka bagian return type ini diganti dengan void. Penamaan method mengikuti kaidah penamaan seperti pada penamaan variabel. Bagian parameter pada method diisi dengan parameter-parameter fungsi yang diperlukan. Passing Parameter  dilakukan dengan cara pass by value dan pass by reference. Dengan analogi tersebut, otomatis beberapa hal umum seperti local variable, pemanggilan method, pendefinisian return value type, dsb adalah sama.

Mendeklarasikan Method
<methodDeclaration> ::=
<modifier> <returnType> <name>(<parameter>*) {
<statement>*
}
<parameter> ::=
<parameter_type> <parameter_name>[,]
contoh method:
class MethodDemo {
int data;
int getData() {
return data;
}
void setData(int data) {
this.data = data;
}
void setMaxData(int data1, int data2) {
data = (data1>data2)? data1 : data2;
}
}
contoh program dengan method:
public class TesMak
{
/** Main method */
public static void main(String[] args)
{
int i = 5;
int j = 2;
int k = mak(i, j);
System.out.println(“The maximum between ” + i + ” and ” + j + ” is ” + k);
}
/** Return the max between two numbers */
public static int mak(int num1, int num2)
{
int hasil;
if (num1 > num2)
hasil = num1;
else
hasil = num2;
return hasil;
}
}

Sumber : http://sebarilmu.web44.net/pengertian-method/