Aspek-aspek utama pada OOP(Object Oriented Programming)

Aspek utama pada OOP yaitu :

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

Fungsi dari abstraction :

untuk memfilter atribut dan operation sehingga hanya tinggal atribut dan operation yang diperlukan saja

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

2. Inheritance

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.

contoh :

foto baru.PNG

3. Encapsulation

merupakan proses pemaketan data bersama metode-metodenya dimana hal ini bermanfaat untuk menyembeunyikan rincian-rincian implementasi dari pemakai. Dalam sebuah objek yang mengandung variabel-variabel dan method-method, dapat ditentukan hak akses pada sebuah variabel atau method dari objek.

Ada 2 manfaat utama dari encapsulation yaitu :

  1. Penyembunyian Informasi (information hiding)

Hal ini mengacu kepada perlindungan terhadap implementasi obejk internal. Objek tersebut dari interface public dan bagian private yang merupakan kombinasi data dan metode internal. Manfaat utamanya adalah bagian internal dapat berubah tanpa mempengaruhi bagian-bagian program yang lain.

  1. Modularitas

Modularitas berarti objek dapat dikelola secara independen. Karena kode sumber bagian internal objek dikelola secara terpisah dari antarmuka, maka Kita bebas melakukan modifikasi yang tidak menyebabkan masalah pada bagian-bagian lain dari sistem. Manfaat ini mempermudah mendistriibusikan objek-objek dari sistem.

contoh program :

_____________________________________________

Class Mahasiswa:

package Encapsulation;

public class Mahasiswa {

private String jurusan;

private String Matkul;

private String nama;

private String npm;

public void setJurusan(String newValue){

jurusan = newValue;

}

public void setMatkul(String newValue){

Matkul = newValue;

}

public void setNama( String newValue){

nama = newValue;

}

public void setNpm(String newValue){

npm = newValue;

}

public String getJurusan(){

return jurusan;

}

public String getMatkul(){

return Matkul;

}

public String getNama(){

return nama;

}

public String getNpm(){

return npm;

}

}

_____________________________________________________________________________

Class Encapsulation:

package Encapsulation;

public class main {

public static void main(String[] args) {

Mahasiswa wie = new Mahasiswa();

wie.setJurusan(“Sistem Informasi “);

wie.setMatkul(“APSI “);

wie.setNama(“Raden Bayu Nur Azhar “);

wie.setNpm(“2017320039”);

System.out.println(“Jurusan:”+wie.getJurusan()+”MataKuliah:”+wie.getMatkul()+”Nama:” +wie.getNama()+”NPM:”+wie.getNpm());

}

}____________________________________________________________________________

Output:

Jurusan:Sistem Informasi MataKuliah:APSI Nama:Raden Bayu Nur Azhar NPM:2017320039

4.Polymorphism

Adalah Satu nama operation yang memiliki bentuk proses yang berbeda

Kondisi yang harus dipenuhi supaya polimorfisme dapat diimplementasikan adalah :

  • Method yang dipanggil harus melalui variabel dari basis class atau superclass.
  • Method yang dipanggil harus juga menjadi method dari basis class.
  • Signature method harus sama baik pada superclass maupun subclass.
  • Method access attribute pada subclass tidak boleh lebih terbatas dari basis class.

5. Message sending

merupakan Pengiriman pesan dari suatu objek kepada objek lain untuk melakukan suatu operation yang berhubungan dengan polymorphism.

6. Association

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

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

 

referensi :

https://id.wikipedia.org/wiki/Pemrograman_berorientasi_objek

Perbedaan Asosiasi, Agregasi dan Komposisi pada Object Oriented Programming

http://willwellwie.blogspot.com/2014/10/encapsulation-inheritance-dan.html

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

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s