Konsep OOP

Pemrograman Berorientasi Objek (PBO) atau Object Oriented Programming (OOP) adalah salah satu paradigma pemrograman yang berorientasi terhadap objek nyata daripada ide atau gagasan umum yang abstrak.

Hingga saat ini, masih bisa dikatakan bahwa paradigma OOP merupakan paradigma pemrograman yang paling banyak diaplikasikan, disusul oleh pemrograman terstruktur dan functional programming. Hal itu tentunya bukan tanpa alasan, dikarenakan paradigma memang menyajikan banyak keunggulan terutama dalam mengembangkan perangkat lunak dan juga aplikasi yang dibutuhkan oleh industri, baik dari segi fitur, maupun dari jangka waktu pengerjaan. Selain itu, bahasa pemrograman yang bisa menunjang paradigma OOP ini amatlah banyak dan mempunyai pengguna yang tidak sedikit. Beberapa bahasa pemrograman yang mendukung paradigma OOP yaitu meliputi bahasa Java, bahasa PHP, bahasa Python, bahasa C++, dan lain sebagainya.

Pengertian Pemrograman Berorientasi Objek

Menurut Tim Wahana Komputer (2010, hlm. 88) Pemrograman Berorientasi Objek atau Object Oriented Programming (OOP) merupakan suatu cara mengorganisassi program dengan memodelkan objek-objek dunia nyata (seperti benda, sifat, sistem dan lainnya) ke dalam sebuah bahasa pemrograman. Di sinilah fokus utama OOP, yaitu memodelkan objek-objek dunia nyata pada setiap fitur atau fungsi yang disusun di dalamnya.

Pemrograman berorientasi objek ialah paradigma pemrograman yang mengutamakan manajemen dan pengolahan objek dari dunia nyata yang harus diolah oleh perangkat lunak melalui keunggulannya, yaitu dapat mengolah objek dinamis yang bisa menampung data beserta struktur kompleksnya, atau operasi dan bahkan algoritma tertentu yang dibutuhkan untuk mengolah objek dunia nyata.

Fitur Pemrograman Berorientasi Objek

Pemrograman beriorientasi objek mempunyai fitur-fitur khas yang membedakannya dengan paradigma lain. Menurut Butarbutar (2014, hlm. 25-28) fitur-fitur OOP tersebut meliputi enkapsulasi (encapsulation), abstraksi (abstraction), pewarisan (inheritance), dan juga  polimorfisme (polymorphism) yang akan dijelaskan pada pemaparan-pemaparan di bawah ini.

Enkapsulasi

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

• information hiding, yaitu penyembunyian detail dari atribut dan juga  method pada suatu kelas

• interface, untuk pengkaksesan data = suatu method untuk mengambil, memberikan, atau mengubah suatu nilai.

Pada object oriented programming, kebutuhan akan enkapsulasi muncul karena terdapat  proses sharing data antarmethod. Dengan menggunakan enkapsulasi ini, maka keamanan data dan method yang berada di dalamnya akan terjaga.

Abstraksi

Abstraksi mengacu pada atribut dari suatu objek yang membedakan antara suatu objek dengan objek yang lainnya. Contohnya, pada suatu perangkat lunak manajemen mahasiswa, di dalam objek terdapat suatu atribut yang akan saling membedakan antara satu objek mahasiswa dengan mahasiswa lainnya yang meliputi nama, NIM, tanggal lahir,dan lain sebagainya.

Dalam pemrograman berorientasi objek, konsep ini berada pada pembuatan sebuah kelas. Semua atribut dari objek didefinisikan pula dalam sebuah kelas. Kelas sejatinya tidak mempunyai data, tetapi objek yang akan diolah oleh kelas-lah yang akan menyimpan data, karena objek diciptakan dari sebuah kelas dan oleh sistem operasi akan dialokasikan sejumlah memori kepada objek tersebut.

Pewarisan

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

Fitur pewarisan pada OOP mengijinkan sebuah kelas dengan tipe superclass untuk menurunkan atribut-atribut dan methodnya kepada kelas yang lainnya yang disebut sebagai subclass atau kelas turunannya. Hal itu akan memungkinkan pembuatan kelas baru yang didasarkan dari pengabstrakan atribut-atribut dan juga behaviour yang sama.

Ada beberapa karakteristik dari sub-class, antara lain yaitu:

• sub-class adalah bentuk khusus dari suatu superclass,

• sub-class mempunyai atribut dan juga method yang diturunkannya dari suatu superclass,

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

Pada pemrograman berorientasi objek, ada beberapa jenis pewarisan, yaitu:

• single inheritance, yakni hanya ada satu superclass.

• multiple inheritance, yakni ada lebih dari satu superclass.

Polimorfisme

Istilah polimorfisme berasal dari bahasa Latin, yakni poly yang berarti banyak, dan morph yang berarti bentuk. Artinya, polimorfisme merupakan sesuatu yang mempunyai banyak bentuk.

Pada pemrograman berorientasi objek, polimorfisme mengacu pada suatu fitur yang memungkinkan kita untuk memberikan arti atau penggunaan berbeda bagi suatu entitas dalam konteks yang berbeda-beda. Entitas itu bisa berupa variabel, method, atau sebuah objek. Polimorfisme dapat digunakan sebagai kategori umum bagi sebuah entitas dalam tindakan yang berbeda-beda.

Kelebihan Pemrograman Berorientasi Objek

Kelebihan atau keuntungan yang didapat ketika menggunakan paradigma pemrograman berorientasi objek menurut (Sukamto & Shalahuddin 2016, hlm. 100) yaitu sebagai berikut:

Meningkatkan produktivitas

Kelas dan juga objek yang ditemukan dalam suatu masalah pada OOP masih bisa digunakan ulang untuk masalah lainnya yang melibatkan objek tersebut (reusable).

Kecepatan pengembangan

Perangkat lunak menjadi lebih cepat untuk diselesaikan karena sistem yang dibangun dengan baik dan benar ketika analisis dan juga perancangan akan menyebabkan berkurangnya kesalahan pada pengodean.

Kemudahan pemeliharaan

Pemeliharaan pada perangkat lunak yang ditulis menggunakan paradigma OOP menjadi lebih mudah untuk dipelihara karena dengan model objek, pola-pola yang cenderung tetap dan stabil bisa dipisahkan dan pola-pola yang mungkin sering berubah-ubah.

Adanya konsistensi

Kode perangkat lunak OOP menjadi lebih konsisten karena mempunyai sifat pewarisan dan penggunaan notasi yang sama pada saat analisis, perancangan maupun pengodean.

Meningkatkan kualitas perangkat lunak

Hal ini karena pendekatan pengembangan lebih dekat dengan dunia nyata dan adanya konsistensi pada saat pengembangannya, perangkat lunak yang dihasilkan akan memenuhi kebutuhan pemakai serta mempunyai sedikit kesalahan.

Berbagai keuntungan di atas dapat diraih karena pemrograman berorientasi objek mempunyai keunggulan berupa=real world programming, reusability of code, resilience to change, information hiding, dan modularity of code yang akan dijelaskan pada berbagai uraian di bawah ini.

Real World Programming

Dunia ini 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 tersebut dilakukan dalam pemrograman berorientasi objek. Dalam PBO sebuah program disusun atas objek-objek yang masing-masing mempunyai fungsi sesuai dengan peran dan sesuai kebutuhan interaksinya.

Reusability of Code

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

Resilience to Change

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

Information Hiding

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

Modularity of Code

Salah satu keunggulan utama dari pemrograman berorientasi objek yaitu modularitas, setiap objek yang dibentuk dikelola secara terpisah dari objek lainnya meskipun berasal dari sebuah kelas yang sama. Modifikasi terhadap sebuah objek dapat dilakukan tanpa mempengaruhi fungsionalitas objek yang lainnya. Pelajari lebih lanjut dengan menghubungi kontak berikut ini : 081515889939 (Elga Aris Prastyo).