Mengenal Konsep OOP (Objek Oriented Programming)

Apa itu OOP ?

Object oriented progarming (OOP) pada awalnya pemrograman dilakukan dengan memasukan urutan-urutan perintah bahasa mesin kemudian berubah dengan munculnya bahasa tingkat rendah.

Orientasi objek (object oriented) merupakan salah satu dari beberapa paradigma dalam pemrograman. Paradigma ini didasari oleh kelas dan objek. Objek adalah instansi dari kelas, yang mempunyai atribut (kumpulan sifat), dan mempunyai kelakuan(kumpulan reaksi metode). Objek yang satu dapat berkomunikai dengan objek yang lain melalui pesan. Dengan tetap terjaga integritasnya. Kelas mempunyai hirarki. Anggota dari sebuah kelas juga mendapatkan turunan atribut dari kelas diatasnya. Paradigma ini menawarkan konsep modularitas, penggunaan kembali, kemudahan modifikasi. Artinya keuntungan OOP dibandingkan adalah lebih terstruktur, lebih modular, mudah digunakan kembali, lebih tahan pada perubahan, lebih mudah dikembangkan, dan lebih alami.

Dalam paradigma ini masih terkandung dari paradigma imperatif, karena mengkonstruksi dariprogaram dari objek dan kelas adalh tidak berbeda dengan mengkonstruksi program dari struktur data dan algoritma, dengan cara enkapsulasi menjadi kelas. Kedekata antara paradigm ini dengan paradigm lain dapat dilihat dari bahasa-bahasa bukan berorientasi objek murni, yaitu bahasa procedural atau fungsional yang ditambahi dengan ciri orientasi objek. Salah satu aspek penting dalam pemrograma berorientasi objek adalah aspek konkuren. Kerena pada saat runtime akan lahir banyak banyaka (lebih dari satu objek) , dengan kelakuan masing-masing maka aspek konkuren tidak dapat dipisahkan dari pemrograman objek .

Konsep dalam OOP (Object Oriented Programming)

Class : Class atau kelas merupakan kelompok objek-objek yg memiliki karakteristik yg sama (yg sejenis). Di dalam ruang lingkup pemroraman, class ini sering dianalogikakan sebagai sebuah cetakan (blueprint) dalam kehidupan nyata, dimana dari sebuah cetakan kita bisa membuat banyak kue. atau dari sebuah blueprint kita bisa membuat banyak rumah, dimana rumah dan kue ini bisa kita sebut sebagai object.

Object : Membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek. Contoh, jika kamu tertarik dalam pelacakan data yang dihubungkan dengan produk, kamu akan menciptakan sebuah object produk yang bertanggung jawab untuk me- maintenance dan bekerja dengan data yang bersinggungan dengan produk.

Abstraksi

Abstraksi pada dasarnya adalah menemukan hal-hal yang essensial pada suatu object dan mengabaikan hal-hal yang sifatnya insidental. Pada pengembangan sistem informasi berarti memfokuskan pada : apa itu object, apa ciri-ciri yang dimiliki object itu (atribut), apa yang bisa dilakukan oleh object itu sebelum memutuskan bagaimana ia diimplementasikan.

abstraksi1

  • Enkapsulasi & Message Passing

Enkapsulasi atau pembungkusan atau penyembunyian informasi (data hiding) berarti meninggalkan aspek eksternal dari object yang dapat diakses oleh object lain dan memfokus diri pada implementasi internal suatu object. Rincian implementasi internal suatu object agar tersembunyi dari object lain dan terpisah dari implementasi eksternal adalah antarmuka (interface) satu object dengan object lainnya. Implementasi internal dapat diubah tanpa mempengaruhi aplikasi yang menggunakannya asalkan perubahan internal ini tidak mengubah antarmuka yang digunakan object yang bersangkutan untuk berkomunikasi dengan object lainnya.

  • Pewarisan (Inheritance) & Reuseability

Pewarisan (Inheritance) pada dasarnya mengijinkan object dari suatu kelas untuk mengakses data & fungsi yang termuat dalam kelas lebih dahulu terdefinisi tanpa harus mendefinisikan ulang. Pewarisan memungkinkan kita untuk menciptakan kelas baru (kelas turunan) yang merupakan perluasan atau spesialisasi dari kelas lain yang telah ada (kelas dasar). Kelas turunan akan mewarisi anggota-anggota suatu kelas yang berupa data (atribut) dan fungsi (operasi) & pada kelas turunan memungkinkan menambahkan data serta fungsi yang baru. Kelas turunan juga boleh melakukan definisi ulang terhadap fungsi-fungsi yang telah didefinisikan pada kelas dasar (overloading ).Dengan kata lain, dengan pewarisan memungkinkan kitamenggunakan kembali kelas yang sudah ada (reuseablity).

  • Spesialisasi dan generalisasi

spesialisasi

Adapun keunggulan yang diberikan OOP antara lain :

  1. Improved software-development productivity
    Modularity : Pembuatan program dengan membuat modul-modul berupa object
    Flexibility : Sistem Program dapat dimodifikasi tanpa melibatkan banyak modul, hanya object yang terlibat saja.
    Extensibility : Class Object dapat dikembangkan dengan menambahkan attributes dan behaviors baru.
    Expandability : Sistem Program dapat dikembangankan sampai skala yang paling kompleks (large scale software system).
    Reusability : Class Object dipakai lagi pada lintas aplikasi program
  2. Improved software maintainability
    Karena design-nya modular, bagian dari software system dapat dengan mudah di-maintain jika ada perubahan meskipun dalam skala yang besar.
  3. Faster development
    OOP disupport oleh banyak library object yang reusable, sehingga mempercepat penyelesaian program dan juga project berikutnya.
  4. Lower cost of development
    Faster development tentu akan mengurangi biaya pengembangan proyek software.
  5. Higher-quality software
    Faster development akan memberikan lebih banyak waktu dan resource untuk melakukan proses verification software. Banyak library object yang digunakan juga sudah teruji.

Disamping itu OOP juga memiliki kekurangan yakni :

  1. Lebih kompleks untuk dipelajari.
    Untuk beberapa programmer, butuh waktu untuk terbiasa dengan OOP. Program OOP yang komprehensif melibatkan banyak konsep, seperti abstraction, inheritance dan polymorphism.
  2. Ukuran Program OOP lebih besar dibandingkan dengan program POP.
  3. Runtime program OOP lebih lambat dari pada POP karena ukurannya lebih besar.
  4. Tidak semua masalah program diselesaikan dengan OOP. Beberapa solusi lebih efisien menggunakan POP atau programming style yang lain.

 

 

 

 

 

 

 

 

 

 

 

Sumber :

https://chalax212.wordpress.com/2012/09/26/konsep-dasar-object-oriented-programming-oop/

https://mainframecloud.wordpress.com/2013/04/06/konsep-oop-2/

https://oopcpp.wordpress.com/2017/02/17/kelebihan-dan-kekurangan-oop/

Advertisements

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