Penjelasan tentang Pemrograman Berorinteasi Objek (PBO/OOP)


Pemrograman Berorientasi Objek (PBO) atau Object Oriented Programming (OOP) merupakan paradigm pemrograman yang mengutamakan manajemen dan pengolahan objek dari dunia nyata yang harus diolah oleh perangkat lunak melalui kelebihannya, yaitu mampu mengolah objek dinamis yang bisa menampung data beserta struktur kompleksnya atau operasi bahkan algoritma tertentu yang dibutuhkan untuk mengolah objek dunia nyata.

Kelas dan Objek

Sebuah kelas menentukan struktur dan behaviour atau perilaku dari suatu objek. Sedangkan objek merupakan dasar dari pemrograman berorientasi objek. Di dunia nyata, tiap objek yang ada memiliki dua buah karakteristik, yaitu :

1. State, merupakan atribut yang dimiliki oleh suatu objek.

2. Behaviour, merupakan fungsi yang dimiliki dan bisa dijalankan oleh penggunanya.

Kelas atau class merupakan cetak biru dari objek. Dalam PBO, programmer akan menulis kode-kode untuk masing-masing kelas yang digunakan. Sedangkan objek merupakan bentukan (instance) dari suatu kelas yang dijalankan pada suatu runtime. Ketika dilakukan runtime, variable pada sebuah kelas akan menjadi state pada sebuah objek. Sedangkan method yang dibuat akan menjadi behaviour-nya.

Fitur Pemrograman Berorientasi Objek

1. Enkapsulasi

Enkapsulasi merupakan cara untuk menyembunyikan implementasi detail dari suatu kelas. Ada dua hal mendasar mengenai enkapsulasi, yaitu :

• Information Hiding, merupakan penyembunyian detail dari atribut dan method pada suatu kelas

• Interface, digunakan sebagai pengaksesan data suatu method untuk mengubah, memberikan atau mengubah suatu nilai.

Dalam PBO, kebutuhan akan enkapsulasi muncul karena adanya proses sharing data antar method. Jika menggunakan enkapsulasi, maka keamanan data dan method yang ada di dalamnya akan terjaga.

2. Abtraksi

Abstraksi merujuk pada atribut dari suatu objek yang membedakan antara sebuah objek dengan objek yang lainnya. Dalam PBO, konsep ini berada pada pembuatan sebuah kelas. Semua atribut dari objek didefinisikan juga dalam sebuah kelas. Kelas sejatinya tidak mempunyai data, tetapi objek yang akan diolah oleh kelas yang akan menyimpan data. Hal ini dikarenakan objek diciptakan dari sebuah kelas dan oleh sistem operasi akan dialokasikan sejumlah memori kepada objek tersebut.

3. Pewarisan

Salah satu fitur yang utama pada pemrograman berorientasi objek yaitu penggunaan kembali kode atau code reuse. Ketika kita membuat sebuah prosedur, maka kita bisa menggunakannya secara berulang dengan objek yang berbeda. Selain itu, kita juga bisa mendefinisikan hubungan antar kelas yang tidak hanya dimanfaatkan untuk code reuse. Akan tetapi, dari sisi pendesainannya juga yang secara garis besar jauh lebih baik. Pengelolaan kelas-kelas dan faktor kemiripan di antara kelas-kelas tersebut jauh lebih visible baik untuk diperbaiki, digunakan kembali maupun dikembangkan lagi. Tujuan dari pewarisan ini yaitu untuk menyediakan fungsionalitas tersebut.

Fitur pewarisan pada PBO mengijinkan sebuah kelas dengan tipe superclass untuk menurunkan atribut dan method-nya pada kelas lainnya yang disebut dengan sub-class atau kelas turunannya. Hal itu akan memungkinkan pembuatan kelas baru yang didasarkan dari pengabstrakan atribut dan behaviour yang sama.

Ada beberapa karakteristrik dari sub-class, antara lain :

• Sub-class merupakan bentuk khusus dari suatu superclass

• Sub-class mempunyai atribut dan method yang diturunkannya dari suatu superclass

• Suatu sub-class bisa mempunyai fitur tambahan yang berbeda dari fitur-fitur yang diturunkan dari superclassnya.

Ada beberapa jenis pewarisan dalam PBO, antara lain :

Single Inheritance, yang hanya terdapat satu superclass

Multiple Inheritance, yang terdapat lebih dari satu superclass

4. Polimorfisme

Polimorfisme berasal dari bahasa latin, yaitu “poly” yang berarti banyak, dan “morph” yang berarti bentuk. Jadi, polimorfisme merupakan sesuatu yang memiliki banyak bentuk. Dalam PBO, polimorfisme merujuk pada suatu fitur yang memungkinkan kita untuk memberikan arti atau penggunaan berbeda bagi suatu entitas dalam konteks yang berbeda. Entitas bisa berupa variable, method atau sebuah objek. Fitur ini bisa digunakan sebagai kategori umum bagi sebuah entitas dalam tindakan yang berbeda.

Kelebihan Pemrograman Berorientasi Objek

• Meningkatkan produktivitas

• Kecepatan pengembangan

• Kemudahan pemeliharaan

• Adanya konsistensi

• Meningkatkan kualitas perangkat lunak

Beberapa kelebihan di atas bisa diraih karena pemrograman berorientasi objek memiliki keunggulan berupa real world programming, reusability of code, resilience to change, information hiding dan modularity of code.

Real World Programming

Dunia tersusun atas objek-objek yang saling berinteraksi. Sebuah perangkat lunak atau program memodelkan dunia nyata, sehingga sebisa mungkin seharusnya menggambarkan kondisi yang ada dalam bentuk yang seakurat mungkin. Hal itu dilakukan dalam pemrograman berorientasi objek. Dalam PBO sebuah program disusun atas objek-objek yang masing-masing memiliki fungsi sesuai dengan peran dan kebutuhan interaksinya.

Reusability of Code

Kelas yang telah dibuat dalam PBO bisa digunakan oleh program lain. Penggunaan komponen yang telah dibuat tidak hanya mengurangi usaha pembuatan komponen tersebut, tetapi juga mengurangi kemungkinan kesalahan apabila harus mengembangkannya lagi dari awal. Kelebihannya yaitu penghematan dari segi waktu dan usaha yang pada akhirnya akan menghemat biaya pengembangan pula.

Resilience to Change

Dunia nyata merupakan sesuatu yang dinamis dan perubahan akan selalu terjadi di dalamnya. Program atau perangkat lunak yang memodelkan dunia nyata diharapkan bisa bersifat dinamis juga. Melalui pemrograman berorientasi objek, hal ini sangatlah memungkinkan karena PBO berfokus objek yang berasal dari dunia nyata pula.

Information Hiding

Informasi dalam sebuah objek sedapat mungkin disembunyikan dari luar kelas yang ada. Tujuannya yaitu untuk mengamankan data supaya hanya fungsi yang ada dalam kelas itu saja yang bisa membaca, mengubah dan memanipulasi data tersebut. Tentunya tetap ada suatu cara (interface) supaya objek dari luar bisa mengakses dan mengubah data secara tidak langsung.

Modularity of Code

Salah satu kelebihan utama dari pemrograman berorientasi objek yaitu modularitas, dimana setiap objek yang dibentuk dikelola secara terpisah dari objek lainnya meskipun berasal dari sebuah kelas yang sama. Modifikasi terhadap sebuah objek bisa dilakukan tanpa mempengaruhi fungsionalitas objek yang lainnya.

Posting Komentar

0 Komentar