Apa Pengertian OOP dan Mengapa Penting dalam Bahasa Pemerograman

Apa Itu Object Oriented Programming?

Object Oriented Programming adalah "model" pemerograman berdasarkan "object".  Object-oriented Programming menfokuskan kepada "object"  daripada logika untuk memanipulasi object tersebut. Object oriented programming lebih mengutamakan object daripada "action" dan lebih mengutamakan data daripada logic.

Langkah pertama ketika anda menggunakan Object Oriented Programming adalah mengidentify semua data dan bagaimana hubungan antara data tersebut yang biasa di kenal dengan Data Modelling.

Mengapa Harus menggunakan Object Oriented Programming?

Mari kita flash back ke masa ketika kuliah jika anda adalah anak IT pasti anda akan mendengar istilah KISS(Keep It Simple Stupid) atau DRY(Dont Repeat Yourself) jika anda tidak kuliah di IT-pun anda pasti mendengarnya ketika anda belajar IT.

Pertanyaan jika anda membuat website adalah apakah anda harus menggunakan object oriented programming? Untuk menjawab pertanyaan ini kita usahakan menggunakan KISS dan DRY agar kita tidak membuang-buang waktu dengan pengulangan.  Object Oritented Programming membuat pembuatan website anda simple dan dapat di gunakan kembali di masa depan selain itu programmer lain bisa mengedit atau melanjutakan project anda dengan catatan anda memberikan dokumentasi untuk mempercepat proses pembelajaran sang programmer.

Apa Perbedaannya dengan Prosedural?

Perbedaan Object Oriented Programming dengan Prosedural programming sangat besar. Bahasa pemerograman yang menggunakan prosedural adalah cobol, fotran. Anda harus membuat program berdasarkan prosedur. Sebagai contoh anda ingin membuat roti. Berdasarkan prosedural Programming:

  1. siapkan tepung dan bahan-bahan lain
  2. campur semua bahan hingga menjadi adonan
  3. lalu di fermentasi
  4. pangganglah roti anda
  5. siap di hidangkan
Dari prosedur diatas anda akan menemukan masalah jika anda ingin membuat roti buaya anda harus memberikan prosedur pembentukan buaya setelah di fermentasi. dan setelah di edit anda tidak bisa menggunakannya untuk membuat roti biasa.

Jika anda menggunakan Metode Object Oriented programming akan lebih mudah karena di bagi menjadi Beberapa bagian Besar

  1. Persiapan bahan: Siapkan tepung dan bahan-bahan lain
  2. Proses Pembuatan: Fermentasi, panggang Roti
  3. Finish: Hidangkan
Aspek-aspek di dalam setiap proses bisa diubah sesuai dengan kemauan kita sehingga membuat program kita bisa di gunakan di masa mendatang atau dengan kata lain Re-Usable.

Apa saja yang Termasuk Lingkup Object Oriented Programming?

  • Class(DataType Definision)
Pengertian class adalah definisi tipe data class biasanya di buat dari field(anggota data) dan method(fungsi data).
  • Object/Instance(Piece of Data)
Pengertian Object adalah potongan data sebagai contoh. Kita sebagai manusia bisa di bilang sebuah object. Kita memiliki keterkaitan dengan manusia lain/object lain. oleh sebab itu object bisa di bilang potongan data.
  • Inheritance
Inheritance adalah method yang bisa membuat beberapa fungsi yang bisa overlap. Tujuannya adalah untuk mencegah duplikasi data dan membuat code bisa di gunakan lain. hubungan antara class atau object dengan inheritance dapat membuat sebuah hirarki.

contoh inheritance berikut:
inheritance
inheritance


Berikut ini adalah contoh inheritance sebagai contoh bahwa cat adalah mammalia dan juga animal oleh sebab itu anggota di animal dan mammalia masuk ke dalam cat. Karena mammalia juga termasuk animal maka anggota animal masuk ke dalam mammalia. Hubungan ini adalah inheritance.


Untuk menggunakan inheritance ada beberapa hal yang harus di pertimbangkan. Apakah object tersebut termasuk ke dalam golongan atau object tersebut hanya memiliki

is-a vs has-a
Jika object tersebut memiliki hubungan langsung(is-a) maka ada baiknya kita menggunakan inheritance dan jika hanya memiliki(has-a) maka tidak perlu menggunakan inheritance.

contoh:
cat is a mamal(cat inheritance mamal karena cat adalah bagian dari mamal)
cat has a claw(claw adalah property dari cat)

Multiple Inheritance

multiple inheritance
multiple inheritance
Mutiple inheritance tidak dapat di gunakan di java dan di C# karena kedua bahasa ini hanya menerima satu parent dari satu child.

Illegal Inheritance
illegal inheritance
illegal inheritance
Alasan kenapa bentuk nheritance di atas ilegal karena tidak ada kejelasan siapa yang menjadi child dan siapa yang menjadi parent. Model di atas sulit di pahami dan tidak baik digunakan dalam pembuatan program di sebabkan karena ketidakjelasan status. 

Inheritance in Object
inheritance in object
inheritance in object
Inheritance pada object sering di gunakan oleh para developer dalam membuat applikasinya. In heritance ini sangat berguna agar tidak terjadi dupikasi data.pada gambar di atas semua tertuju pada satu parent yaitu object. Dengan begitu anda bisa dengan mudah memahami hirarki inheritance dan jelas siapa parent siapa childnya. Dengan menggunakan model diatas membuat applikasi lebih mudah dan mengubahnya pun mudah.

  • Encapsulation
Encapsulation adalah proses pengemasan data dan fungsi menjadi satu komponen. Fitur-fitur dari encapsulation biasanya di support oleh class di kebanyakan object oriented programming. Penggunaan Package bisa di kategorikan menjadi encapsulasi.  Fungsi dari encapsulasi adalah untuk membuat tembok yang kuat untuk melindungi kode dari accidental corrupt(korup secara tiba-tiba)

  • polymorphism
Polymorphism berasal dari bahasa yunani yatu "polys" artinya banyak dan "morphe" artinya bentuk. Dalam pengaplikasiannya methode ini memungkinkan digunakannnya suatu interface yang sama untuk melakukan tindakan yang secara prinsip sama tapi secara proses berbeda.

polymorphism sangat erat hubungannya dengan overriding(deklarasi method di subclass dengan nama dan parameter yang sama dari superclass) dan overloading(penggunaan satu nama untuk beberapa method yang berbeda)ada pengetian yang menyebutkan polymorphism mendefinisikan ulang methode inheritance. Agar kita tidak bingung mari kita lihat contoh polymorphism di bawah:

var x:Number=1;

var y:Number=2;
var z:String="test";

cetak(x);
cetak(x,y);
cetak(x,y,z)

function cetak(x){
console.log(x); }

function cetak(x,y){ console.log(x+y); }

function cetak(x,y,z){ console.log(x+y+z) }

Dari contoh di atas kita bisa melihat bagaimana methode dengan nama yang sama tapi berjalan sesuai dengan input yang di berikan oleh user. Methode di atas di sebut overloading

class Animal
{
    public void write_result()
    {
        System.out.println("animal");
    }
}

class Mammal extends animal
{
    public void write_result()
    {
        System.out.println("detail in mammal");
    }
}

class Cat extends Mammal
{
    public void write_result()
    {
        System.out.println("detail in cat..");
    }
}
public class print_all
{
    public static void main(String[] args) 
    {
        Animal animal;
        Mammal mammal=new Mammal();
        Cat cat=new Cat();
        animal=mammal;
        animal.info();      //polymorphism
        animal=cat;
        animal.info();      //polymorphism
    }
}


Dari contoh dia atas methode memiliki nama dan parameter yang sama dari superclass atau biasa di sebut parent class. Methode di atas di sebut overriding

Konsep Tambahan:

  • Instance
Instance adalah fungsi yang di buat(construct) oleh class.
  • Method
Method adalah suatu prosedur yang berkolaborasi dengan object class yang berfungsi untuk menghubungkan object.
  • Constractor
Contstractor adalah fungsi yang berjalan ketika class di jalankan. Fungsi dari constractor adalah mensetting instance saat object/class di buat.
  • Interface
Interface bisa di bilang adalah set dari suatu method. Dengan menggunakan interface anda bisa melakukan banyak hal dengan step yang sama.
  • Abstraction
abtraction biasa di gunakan pada class menjadi abstract class adalah class yang di buat yang tidak bisa di instansiasi di karenakan class ini tidak dianggap sebagai suatu object.
Artikel yang berhubungan:
  • Class-Based Programming
Class-based programming adalah gaya koding dari object oriented yang mana inheritance di dapatkan dari pendeklarasian class dari object, yang bertentangan dengan object itu sendiri.
  • Prototype-Oriented Programming
Prototype-Oriented Programming adalah gaya koding dari object oriented yang mana inheritance di dapatkan dengan proses coning object yang berfungsi sebagai prototype.
  • Modular-Oriented Programming
Modular-Oriented Programming adalah teknik design software yang memisahkan fungsi program menjadi independent, dengan kata lain modul, sehingga masing-masing modul hanya berisi segala sesuatu yang di perlukan untuk mengeksekusi suatu aspek saja.

Contoh: modul untuk pembelian(berisi fungsi-fungsin yang berhubungan dengan proses pembelian)

Reference:




Comments

Popular posts from this blog

10 CMS untuk Forum

11 Website yang Membayar Anda untuk Meng-upload File

10 Soal Ujian dari Perusahaan untuk Web Programmer