Tak Berkategori

ASPEK-ASPEK UTAMA PADA OBJEK

  1. ABSTRACTION(ABSTRAKSI)

Digunakan dalam menentukan ciri,sifat, atau informasi penting dari suatu object, informasi dan data yang mana yang akan disembunyikan dan yang akan ditampilkan.

Pengertian abstraction lainnya :

Abstraction merupakan suatu proses penggambaran suatu perilaku. Menyederhanakan kondisi realitas yang rumit dengan memodelkan class sehingga sesuai dengan permasalahan yang dihadapi.

Abstraksi adalah suatu proses yang melibatkan penentuan behaviour utama dari suatu object dan membuang/mengurangi behaviour yang tidak perlu.

Image result for pengertian abstraction pada oop

Abstraction adalah suatu cara untuk melihat suatu object dalam bentuk yang lebih sederhana. Sebagai contoh kita tidak melihat sebuah mobil sebagai ribuan komponen elektronik, sistem mekanik dengan empat buah ban, jok, stir kemudi dan sebagainya. Dengan Abstraction, suatu sistem yang kompleks dapat dipandang sebagai kumpulan subsistem-subsistem yang lebih sederhana, seperti halnya mobil merupakan suatu sistem yang terdiri atas berbagai subsistem, seperti subsistem kemudi, subsistem pengereman dan sebagainya.

2. Inheritance (pewarisan sifat)

merupakan konsep mewariskan attribute dan method yang dimiliki oleh sebuah class kepada class turunannya. Dengan konsep ini class yang dibuat cukup mendefinisikan attribute dan method yang spesifik didalamnya, sedangkan attribute dan method yang lebih umum akan didapatkan dari class yang menjadi induknya.

Image result for pengertian Inheritance (pewarisan sifat) oop

Inheritance atau Pewarisan/Penurunan adalah konsep pemrograman dimana sebuah class dapat ‘menurunkanproperty 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 ‘hierarchyclass 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:

1
2
3
4
5
6
7
8
9
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 penggunaan inheritance/penurunan di dalam PHP:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?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 sebuah method. Property class komputer belum berisi nilai apa-apa.

3. Encapsulation

Membungkus data dan kode dalam suatu class. Hanya data dan fungsi yang ada didalam suatu kelas/object yang bisa diakses, tanpa harus mengetahui detail proses yang terjadi didalam kelas/object tersebut.

Encapsulation adalah pembungkus, encapsulation pada object oriented maksudnya adalah membungkus class dan menjaga apa apa saja yang ada didalam class tersebut, baik method ataupun atribut, agar tidak dapat di akses oleh class lainnya. Untuk menjaga hal tersebut dalam Encapsulation dikenal nama Hak Akses Modifier yang terdiri dari Private. Public dan Protected.

  • Private =  memberikan hak akses hanya pada class itu sendiri, artinya apa-apa saja yang ada di dalam class A baik itu method ataupun atribut hanya bisa diakses oleh class A saja, class lain tidak bisa mengaksesnya.
  • public = memberikan hak akses kepada atribut atau method agar bisa diakses oleh siapapun (property atau class lain diluar class yang bersangkutan), artinya method atau atribut yang ada diclass A dapat diakses oleh siapaun baik itu class A, class B dan seterusnya.
  • protected = memberikan hak akses kepada class itu sendiri dan class hasil turunannya (inheritance), artinya apa apa saja yang ada diclass A hanya bisa diakses oleh class A sendiri dan class yang meng Extends class A. Namun harus dipahami class lain yang berada dalam satu package dengan class A mampu mengakses tipe data protected, Sedangkan yang tidak mampu mengakses adalah class-class yang berada diluar package class A. untuk dapat mengaksesnya, class yang berada diluar package class A harus meng extends class A.

Some other common definitions

Data Hiding / Information Hiding:

Data Hiding membatasi pengaksesan data yang sensitive. Dalam penerapannya dengan menggunakan access modifier misl: Private,Protected, dan Public. Pada Gambar 2 symbol – menandakan bahwa data dapat diakses dari luar class, sedangkan + data boleh diakses dari luar class.

gb2

4. Polymorphism

Image result for pengertian Polymorphism

Poyorhism adalah kemampuan dalam hal kepemilikan banyak bentuk yang bisa berbeda. Terdapat 2 type bentuk Poymorphism

Compile Time (Early binding) dan Run Time (Late binding)

Compile Time Polymorphism

Pada saat compile-time Object mengenali dirisendiri. Overloading adalah compile time polymrohism.

Run Time (Late binding)

Object tidak mengenali dirisendiri pada saat compile-time. Object tersebut menugaskan properties dan method pada saat run-time. Overriding atau inheritance-based polymorphism adalah bentuk dari polymorphism.

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 Polymorphism 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.

Polymorphism dapat disamakan dengan Method Overloading, dimana di dalam sebuah class terdapat beberapa method dengan nama sama. Sebuah Method bernama CetakData() yang misalnya berfungsi menampilkan data String, tentu tidak bisa menangani masukan berupa data numerik, boolean, ataupun karakter, demikian juga sebaliknya. Solusi yang bisa dilakukan adalah dengan menyediakan beberapa Method CetakData() yang akan menangani setiap tipe data, sehingga data apapun yang diberikan sebagai parameter tetap bisa diproses.

Contoh Object tabungan memiliki

atribut berupa :

Nomor rekening

Nama pemilik rekening

Saldo tabungan

Dan method berupa :

Informasi data rekening

Melihat saldo

Pengambilan

Penyetoran

Contoh Pembuatan Class :

Membuat class tabungan Menggunakan Java NetBeans IDE 6.5

output setelah proses running program.

5. message

Message adalah perluasaan dari message-passing dasar, suatu message system berfungsi sebagai perantara antar proses yang terpisah dan tak tergantung satu sama lain. Message system berfungsi sebagai switch untuk pesan, yaitu tempat dimana proses-proses saling mempertukarkan pesannya secara asinkron dan tak terikat. Pengirim menyimpan pesannya ke message system, yang kemudian menyampaikannya ke antrian pesan nya milik penerima. Begitu pesan sudah dikirim, maka pengirim bebas untuk mengerjakan tugas lainnya. message system menyampaikan suatu pesan dari pengirim ke antrian pesan dari penerima. Tidak seperti model message-passing dasar, suatu middleware menyediakan depository message, dan memungkinkan pengiriman dan penerimaan pesan untuk bisa saling berhubungan. Lewat middleware, pengirim menyimpan pesan ke antrian pesan proses penerima. Proses penerima mengambil pesan dari antriannya dan memproses masing-masing sesuai dengan keperluannya.

Dibandingkan dengan model message-passing dasar, paradigma ini menyediakan abstraksi tambahan untuk operasi asinkron. Untuk mencapai efek yang sama dengan message-passing dasar, pengembang harus menggunakan thread ataupun sejumlah anak proses (child processes) tiap message diasosiasikan dengan suatu topik khusus atau event.

Pihak yang tertarik pada suatu topik khusus tersebut dapat meng-subcribe dirinya ke middleware message system tsb. Jika suatu event terjadi, maka suatu pesan akan dikirimkan dan dipublikasikan ke middleware message system, yang kemudian mengirimkan pesan tersebut ke semua pihak yang telah mengsubscribe topik/event tersebut.

Model publish/subscribe menawarkan abstraksi yang kuat untuk komunikasi multicasting/group. Operasi publish mengizinkan suatu proses untuk multi-cast ke suatu group proses, dan operasi subscribe memungkinkan suatu proses untuk mendengarkan multicast tersebut.

Cara object bekerjasama

Pesan diterima untuk melakukan sebuah operasi

6. Assosiation (Assosiasi)

Assosiasi adalah hubungan antara object. Relasi assosiasi biasa disebut is “a” relationship. Assosiasi berarti bahwa sebuah object “menggunakan” object yang lain. Assosiasi adalah sebuah relasi dimana semua object memiliki lifecycle nya sendiri dan tidak ada yang bertindak sebagai owner.

Contoh Teacher dan Student. Banyak Student dapat berasosiasi dengan satu Teacher dan satu Student   dapat berasosiasi dengan banyak Teacher. Object keduanya bisa dibuat dan dihancurkan secara mandiri tanpa berpengaruh pada eksistensi object lain.

7. Aggregation (Agregasi)

Agregasi adalah bentuk hubungan yang lebih khusus dari Assosiasi dimana sebuah object memiliki lifecycle nya sendiri tapi dengan kepemilikan dan class child tidak dapat memiliki class parentnya. Relasinya biasa di sebut relasi “has-a”.

Sebagai contoh, Department dan Teacher. Satu Teacher tidak dapat memiliki banyak Department, tapi jika kita menghapus object Department, object Teacher tidak akan ikut terhapus. Contoh:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Department
    {
        private string _name;
        public Department(string name)
        {
            _name = name;
            _teachers = new List<Teacher>();
        }
        public string Name
        {
            get return _name; }
            set { _name = value; }
        }
        public List<Teacher> _teachers;
    }

 

1
2
3
4
5
6
7
8
9
10
11
12
13
public class Teacher
    {
        private string _name;
        public Teacher(string name)
        {
            _name = name;
        }
        public string Name
        {
            get return _name; }
            set { _name = value; }
        }
    }

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class ClientTester
    {
        public void AggregationTest()
        {
            var department = new Department("Electrical Engineering");
            var teacher1 = new Teacher("Teacher 1");
            var teacher2 = new Teacher("Teacher 2");
            department._teachers.Add(teacher1);
            department._teachers.Add(teacher2);
        }
    }

Karena object teacher di buat di luar object department, sehingga jika object department dihancurkan maka object teacher tetap exist. Object department bisa memiliki banyak object teacher yang berasosiasi dengannya, tapi tidak sebaliknya. Sehingga dalam relasi ini object department adalah owner dari object teacher.

Relasi Agregasi disebut juga Weak Assosiation dan dalam UML disimbolkan seperti ini

agregasi

referensi :

https://superyogi.wordpress.com/pemrograman-berorientasi-object/

https://ndoware.com/pemrograman-berorientasi-objekobject-oriented-programming-oop.html

https://www.duniailkom.com/tutorial-belajar-oop-php-pengertian-inheritance-pewarisan/

https://putuguna.com/2016/07/pengertian-encapsulation-dan-polymorphism-pada-oop.html

https://catataninformatikaku.blogspot.com/2017/03/pengertian-polymorphism-dan-contoh.html

http://lukvhy-note.blogspot.com/2010/03/makalah-tentang-message-dan-passing.html

Perbedaan Asosiasi, Agregasi dan Komposisi pada Object Oriented Programming

Tinggalkan komentar