Posted by : Unknown 27 Mar 2016


SEJARAH OOP

Konsep OOP dimulai pertengahan 1960-an dengan sebuah bahasa program SIMULASMALLTALK. Meskipun developer software tidak secara intensif mengembangkan OOP, tetapi metodologi object-oriented tetap digunakan sampai sekarang. kemudian dilanjutkan di era 70-an dengan Pada pertengahan 80-an, bahasa OOP seperti C++ dan Eifle menjadi popular diantara programmer komputer. Popularitas OOP berlanjut pada tahun 90-an, banyak pengembang perangkat lunak menggunakan konsep OOP seperti yang dilakukan pada Java dan kemudian PHP yang menjadi popular sekarang. Di tahun 2002, versi terakhir dari Visual Studio, Microsoft-pun ikut memperkenalkan bahasa OOP baru yaitu C# (dibaca C-sharp) serta penyempurnaan Visual Basic 6.0 yang tidak mendukung OOP menjadi VB.NET sebagai bahasa pemrograman berorientasi objek.
PENGERTIAN

OOP (Object Oriented Programming) adalah suatu metode pemrograman yang berorientasi kepada objek. Objek ini menggabungkan data dan fungsi sebagai satu kesatuan, hal ini membedakan dengan pemrograman yang tidak berorientasi objek (terstruktur) dimana fungsilah yang menjadi perhatian utama. Fungsi adalah subprogram atau sekumpulan kode yang diberi suatu nama tersendiri. Java adalah salah satu dari bahasa pemrograman berorientasi objek, karena dalam pemrograman java kita dapat mengetahui dan membedakan. 
Tujuan dari OOP diciptakan adalah untuk mempermudah pengembangan program dengan cara mengikuti model yang telah ada di kehidupan sehari-hari. Jadi setiap bagian dari suatu permasalahan adalah objek, nah objek itu sendiri merupakan gabungan dari beberapa objek yang lebih kecil lagi. Saya ambil contoh Pesawat, Pesawat adalah sebuah objek. Pesawat itu sendiri terbentuk dari beberapa objek yang lebih kecil lagi seperti mesin, roda, baling-baling, kursi, dll. Pesawat sebagai objek yang terbentuk dari objek-objek yang lebih kecil saling berhubungan, berinteraksi, berkomunikasi dan saling mengirim pesan kepada objek-objek yang lainnya. Begitu juga dengan program, sebuah objek yang besar dibentuk dari beberapa objek yang lebih kecil, objek-objek itu saling berkomunikasi, dan saling berkirim pesan kepada objek yang lain.
Konsep OOP
1.         CLASS
Kelas adalah sekumpulan obyek yang memiliki method-method dan jenis data yang sama. Dengan kata lain kelas dapat dikatakan sebagai suatu struktur dalam program yang berisi satu atau beberapa metode (dapat berupa fungsi dan prosedur). Kelas dapat juga dikatakan sebagai bentuk logika dimana seluruh bahasa berorientasi objek dibangun. kelas mendefinisikan bentuk dan sifat/kelakuan/perilaku objek. Semua konsep/abstraksi yang kita implementasikan di java harus dikapsulkan/dikemas dalam kelas. 
Sebagai contoh adalah pengambaran yang real dalam kehidupan kita adalah tentang dunia transportasi. Tentunya kita semua  mengetahui bahwa sangatlah banyak jenis alat transportasi yang ada seperti motor, mobil,pesawat terbang,kapal laut, dan lain sebagainya.Kemudian marilah kita anggap berbagai alat transportasi tersebut sebagai  suatu class. Maka motor tentunya mempunyai nomor polisi,tahun pembuatan,merk dll demikian juga dengan alat transportasi yang lainnya, oleh karenanya hal ini bisa disebut sebagai properties. Selanjutnya motor itu sendiri bisa berjalan maju, berjalan mundur,belok kiri, belok kanan yang mana kegiatan ini disebut method.
Contoh   :
public class ApaMotormu {
public static void main(String[] args){     
Motor punyaku=new Motor();
punyaku.motorku();
}
}


2.         OBJECT
Object dapat dikatakan sebagai sebuah entitas yang memiliki kumpulan dari data serta method-method yang bekerja pada data tersebut. Data dan method-method suatu kelas mendefinisikan isi dan sifat tersebut. Baik dalam dunia nyata atau dalam sebuah program, sebuah objek memiliki dua karakteristik, yaitu state dan behaviour. State adalah keadaan dari sebuah objek, seperti mobil memiliki state warna, model, tahun pembuatan, kondisi, dll. Sedang behaviour adalah kelakuan dari objek tersebut, seperti mobil dapat melaju, membelok, membunyikan klakson, dll. Objek menyimpan statenya dalam satu atau lebih variabel, dan mengimplement.

Kalau kita mengikuti analogi di atas, maka object dari class HEWAN adalah Burung, KAMBING, AYAM, KUDA. Mereka adalah CONTOH dari class HEWAN. Semua dari mereka adalah HEWAN yang mempunyai nama, kaki, Jenis makanan dst. Dan bisa berlari, bersuara, berkembang biak dll.
Contoh :
public class Peliharaanmu{
public static void main(String[] args){
Hewan punyaku=new Hewan();
punyaku.hewanku();
}
}

3.         ABSTRACTION

Ketika membangun objects dalam aplikasi OOP, adalah penting untuk menggabungkan konsep abstraction ini. Jika kamu membangun aplikasi shipping, kamu harus membangun object produk dengan atribut seperti ukuran dan berat. Warna adalah contoh informasi yang tidak ada hubungannya dan harus dibuang. Tetapi ketika kamu membangun order-entry application, warna menjadi
 Contoh : pada Televisi. Dalam Televisi terdapat bermacam macam subsistem, antara lain : sistem antena dan channel, sistem playback, sistem pewarnaan, sistem on, sistem off dan lain sebagainya. Semua objek ( sub sistem ) yang terdapat dalam sistem televisi tersebut saling berinteraksi satu sama lain. Interaksi disini berupa “pesan” yang dapat disebut juga sebagai parameter. Contoh penerapan Abstraction dapat dilihat dibawah ini :
class Televisi
{
int volume = 0;
void naikkanvolume(int volume)
{
this.volume = this.volume + volume;
System.out.println(“Volume Televisi : ” + this.volume);
}
}
public class TelevisiBeraksi
{
public static void main (String[] args)
{
Televisi televisiku = new Televisi();
televisiku.naikkanvolume(5);
}
}
Dari contoh diatas, dapat dilihat terjadinya interaksi antar objek didalam system Televisi, saya mengambil contoh volume televisi. Dari public class TelevisiBeraksi berinteraksi dengan class Televisi dengan mengirimkan pesan informasi yang berupa parameter –> naikkanvolume(5).
4.         METHOD

              Menurut ini Method adalah fungsi atau prosedur yang dibuat oleh seorang programmer didalam suatu Class. Dengan kata lain, method pada sebuah kelas hampir sama dengan fungsi atau prosedur pada pemrograman prosedural. Pada sebuah method di dalam sebuah kelas juga memiliki izin akses seperti halnya atribut pada kelas, izin akses itu antara lain private, public dan protected yang memiliki arti sama pada izin akses atribut yang telah dibahas sebelumnya. Sebuah kelas boleh memiliki lebih dari satu method dengan nama yang sama asalkan memiliki parameter masukan yang berbeda sehingga kompiler atau interpreter dapat mengenali method mana yang dipanggil.

              Hal ini dinamakan overloading. Di dalam sebuah kelas, terdapat juga yang disebut sebagai method atau atribut statis yang memiliki kata kunci static. Maksud dari statis di sini adalah method yang dapat diakses secara berbagi dengan semua objek lain tanpa harus membuat objek yang memiliki method statis tadi (tanpa proses new), tapi sebuah method statis mempunyai keterbatasan yaitu hanya dapat mengakses atribut atau method lain di dalam kelas yang membungkusnya yang juga bersifat statis. Method statis biasanya diimplementasikan untuk method main.

              Sedangkan karakteristik method seperti didalam suatu class, behavior disimpan dalam bentuk Method. Method merupakan serangkaian statemen / perintah (perintah = baris program) dalam suatu class yang menghandle task tertentu. Method merupakan hal-hal yang bisa dilakukan oleh object dari suatu class.

            Method didefinisikan pada class akan tetapi dipanggil melalui object. Method memiliki peranan diantaranya :
  • merubah nilai atribut dari suatu object,
  • menerima informasi dari object lain, dan
  • mengirim informasi ke obyek lain untuk melakukan suatu task (cara obyek berkomunikasi dengan obyek lain adalah dengan menggunakan method).  
5.         FIELD

Adalah informasi atau atribut yang terdapat dalam suatu object. Bentuk field mirip dengan variabel yaitu dapat dibaca dan diset langsung.
Contoh: suatu class Anak yang memiliki field Nama_Anak dan usia anak, juga memiliki subrutin(method) kegiatan_Anak.
6.         EVENT

Event merupakan sebuah function yang dipanggil untuk merespon kejadian/event tertentu, seperti klik mouse, penekanan tombol keyboard, perubahan nilai field pada database, dan lain-lain. Umumnya event mengirimkan dua parameter, yaitu object yang mengindikasikan sender/pengirim event, dan object yang menyediakan informasi pada event tersebut.

            Pada sebuah class, Anda dapat melakukan modifikasi pada method dengan cara overriding maupun overloading. Overriding berarti Anda mengubah implementasi dari sebuah method, sementara overloading berarti menambahkan method baru dengan nama yang sama, tetapi dengan pengenal yang berbeda. Overloading mengizinkan Anda memiliki dua atau lebih method dengan nama yang sama. Dua method tersebut akan muncul pada fasilitas IntelliSense sehingga pengguna dapat memilih method yang diinginkan. Bagaimanapun, salah memilih method dapat menyebabkan runtime-error, Anda dapat menghilangkan method yang tidak diinginkan untuk tampil dengan menggunakan keyword Shadows.
7.         ATTRIBUTE / PROPERTIES

Properti adalah atribut-atribut yang melekat pada sebuah kontrol (objek) yang biasanya merupakan karakteristik penampilannya seperti warna, jenis huruf, ukuran dan sebagainya. Properti sebuah kontrol (objek) dapat diubah pada saat memprogram (menggunakan jendela properti) atau pada saat program dijalankan (menggunakan kode-kode program pada jendela kode).
8.         ENCAPSULATION

Ciri penting lainnya dari OOP adalah encapsulation. Encapsulation adalah sebuah proses dimana tidak ada akses langsung ke data yang diberikan, bahkan hidden. Jika kamu ingin mendapat data, kamu harus berinteraksi dengan object yang bertanggung jawab atas dara tersebut.
Contoh : Dalam kehidupan sehari hari enkapsulasi dapat dimisalkan sebagai arus listrik pada generator, dan sistem perputaran generator untuk menghasilkan arus listrik. Kerja arus listrik tidak mempengaruhi kerja dari sistem perputaran generator, begitu pula sebaliknya. Karena didalam arus listrik tersebut, kita tidak perlu mengetahui bagaimana kinerja sistem perputaran generator, apakah generator berputar kebelakang atau ke depan atau bahkan serong. Begitu pula dalam sistem perputaran generator, kita tidak perlu tahu bagaimana arus listrik, apakah menyala atau tidak.
Begitulah konsep kerja dari enkapsulasi, dia akan melindungi sebuah program dari akses ataupun intervensi dari program lain yang mempengaruhinya. Hal ini sangat menjaga keutuhan program yang telah dibuat dengan konsep dan rencana yang sudah ditentukan dari awal.
Contoh dalam program
Belajar.Java
class belajar{
public String x =”Pintar”;
private String y = “Java”;
}
Pintar.Java
public class Pintar{
public static void main(String[]args){
Coba panggil = new Belajar();
System.out.println(“Panggil X : “+panggil.x);
System.out.println(“Panggil Y : “+panggil.y);
}}
Tipe public dan private mempunyai fungsi yang berbeda. Fungsi publicyang terdapat dalam class Coba pada variable x, memungkinkan nilai dari variable x dapat diakses oleh class Belajar. Sedangkan variable y yang menggunakan fungsi private tidak dapat dipanggil didalam class Belajar. 

9.        INHERITANCE

Inheritance atau Pewarisan/Penurunan adalah konsep pemrograman dimana sebuah class dapat ‘menurunkan’ property dan method yang dimilikinya kepada class lain. Konsep inheritance digunakan untuk memanfaatkan fitur ‘code reuse’ untuk menghindari duplikasi kode program.
Konsep inheritance membuat sebuah struktur atau ‘hierarchy’ class dalam kode program. Class yang akan ‘diturunkan’ bisa disebut sebagai class induk (parent class), super class, atau base class. Sedangkan class yang ‘menerima penurunan’ bisa disebut sebagai class anak (child class), sub class, derived class atauheir class.
Tidak semua property dan method dari class induk akan diturunkan. Property dan method dengan hak akses private, tidak akan diturunkan kepada class anak. Hanya property dan method dengan hak akses protected dan public saja yang bisa diakses dari class anak.
Cara Penggunaan Inheritance dalam PHP
Di dalam PHP, inheritance / penurunan dari sebuah class kepada class lain menggunakan kata kunci: ‘extends’, dengan penulisan dasar sebagai berikut:
class induk {
//…isi class induk
}

class anak extends induk
{
//… class anak bisa mengakses
//… property dan method class induk
}
Agar lebih mudah dipahami, kita akan langsung masuk kedalam contoh program penggunaaninheritance/penurunan di dalam PHP:
<?php
// buat class induk: komputer
class komputer {

public $merk;
public $processor;
public $memory;

public function beli_komputer() {
return “Beli komputer baru”;
}
}

// turunkan class komputer ke laptop
class laptop extends komputer {

public function lihat_spec() {
return “merk: $this->merk, processor: $this->processor,
memory: $this->memory”;
}
}

// buat objek dari class laptop (instansiasi)
$laptop_baru = new laptop();

// isi property objek
$laptop_baru->merk = “acer”;
$laptop_baru->processor =”intel core i5″;
$laptop_baru->memory = “2 GB”;

//panggil method objek
echo $laptop_baru->beli_komputer();
echo “<br />”;
echo $laptop_baru->lihat_spec();
?>
Dalam contoh kode diatas, saya membuat class komputer dengan beberapa property dan sebuahmethodProperty class komputer belum berisi nilai apa-apa.
Dibawah class komputer, saya membuat class laptop extends class komputer. Disini saya menurunkanclass komputer kedalam class laptop. Di dalam class laptop, kita bisa mengakses seluruh property danmethod apapun dari class komputer selama memiliki hak akses public atau protected.
Untuk membuktikan hal tersebut, saya membuat objek $laptop_baru dari class laptop. Perhatikan bahwa kita bisa mengakses property $merk, $processor, dan$memory yang semuanya adalah milikclass komputer, bukan class laptop. Method beli_komputer() juga sukses diakses dari objek $laptop baru. Inilah yang dimaksud dengan inheritance/penurunan class dalam OOP.
PHP tidak membatasi berapa banyak ‘penurunan objek’ yang bisa dilakukan, dalam contoh berikut, saya membuat 3 buah class yang saling ‘menurunkan’:
<?php
// buat class komputer
class komputer {
protected function beli_komputer() {
return “Beli komputer baru”;
}
}

// turunkan class komputer ke laptop
class laptop extends komputer {
protected function beli_laptop() {
return “Beli laptop baru”;
}
}

// turunkan class laptop ke chromebook
class chromebook extends laptop {
protected function beli_chromebook() {
return “Beli chromebook baru”;
}

public function beli_semua(){
$a = $this->beli_komputer();
$b = $this->beli_laptop();
$c = $this->beli_chromebook();
return “$a <br /> $b <br /> $c”;
}
}

// buat objek dari class laptop (instansiasi)
$gadget_baru = new chromebook();

//panggil method objek
echo $gadget_baru->beli_semua();

// $gadget_baru->beli_komputer();
// Fatal error: Call to protected method komputer::beli_komputer()
?>
Dalam contoh diatas, saya membuat class komputer yang diturunkan kepada class laptop, dan kemudian diturunkan lagi kepada class chromebook. Dari dalam class chromebook ini kemudian saya memanggil method dari class diatasnya.
Jika anda perhatikan, setiap method selain method beli_semua(), memiliki hak akses protected. Hak akses protected ini ‘menghalangi’ kode program lain untuk mengaksesnya, selain class turunan.
Pada baris terakhir, saya menyisipkan kode program untuk mencoba mengakses methodbeli_komputer() . Kode ini sengaja saya beri tanda komentar. Jika anda menghapus tanda komentar, PHP akan mengeluarkan error yang menyatakan kita tidak bisa mengakses method dengan hak akses protected:
<?
$gadget_baru->beli_komputer();
// Fatal error: Call to protected method komputer::beli_komputer()
?>
Inilah yang dimaksud dengan enkapsulasi dalam OOP. Membatasi method yang tidak boleh diakses akan membuat kode program menjadi lebih terstruktur.


10.         POLYMORPHISM

Polimorfisme adalah kemampuan suatu obyek untuk mempunyai lebih dari satu bentuk. Polimorfisme tidak bergantung kepada pemanggilan subrutin. Metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesan tersebut dikirim.
Contohnya, bila sebuah burung menerima pesan “gerak cepat”, dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.
Sebagai Ilustrasiya :
Sebagai contoh adalah sebuah obyek wanita, beberapa peran yang mungkin dimiliki adalah:
Bagi suami maka dia berperan sebagai seorang istri.
Buat anak-anak berperan sebagai ibu.
Di tempat kerja maka dia akan berperan sebagai seorang karyawan.
Di tempat kuliah berperan sebagai mahasiswi.
Di tempat arisan berperan sebagai ketua arisan.
Dari contoh diatas bisa kita lihat bahwa wanita tersebut adalah orang yang sama, tetapi memiliki peran yang berbeda bagi orang yang berinteraksi dengannya.
Contoh Source C0de Polymorphism
/* Disimpan dalam file “sopir.java” */
polimorfisme
Dedi adalah seorang sopir keturunan manusia, untuk menginstantiasi objek dedi
ditunjukkan dalam kode berikut.
/* Disimpan dalam file “dedi.java” */
contoh polimorfisme
Kemudian Andi sang programmer, Badu sang tentara dan Dedi sang sopir diperintahkan untuk bekerja, apa reaksinya?
Untuk melihat reaksi masing-masing, perhatikan kode java berikut!
/* Disimpan dalam file “pekerja.java” */
contoh polimorfisme


Sumber :
            http://wikipedia.com/

Leave a Reply

Subscribe to Posts | Subscribe to Comments

- Copyright © GlobalEducation - Hatsune Miku - Powered by Blogger - Designed by Johanes Djogan -