Apa Sih Itu OOP?

Bayangkan suatu motor yang memiliki berbagai bagian skrup, baut, per, dan plat. Tentu kelihatannya sangat kecil dan rumit. Namun, kita bisa lihat dalam skala yang lebih besar lagi. Dapat kita lihat bahwa motor tersebut terdiri dari rangka badan, roda, rem, tangki, dynamo. Tentu lebih masuk akal dan mudah untuk menyatukannya bukan?

Sama esensinya dengan Object-Oriented Programming, yang merupakan suatu metode programming di mana kita berorientasi pada Objek. Program-program yang telah ada merupakan gabungan dari beberapa komponen-komponen kecil yang sudah ada sebelumnya, sehingga dapat mempermudah pekerjaan seorang programmer dalam melakukan pengembangan program.

Inilah Beberapa Contoh Konsep OOP :

  1. Encapsulation

Encapsulation atau pengkapsulan adalah konsep tentang pengikatan data atau metode yang berbeda yang disatukan atau “dikapsulkan” menjadi satu unit data. Encapsulation dapat mempermudah dalam pembacaan code karena informasi yang disajikan tidak perlu dibaca secara rinci dan sudah merupakan satu kesatuan.

Encapsulation juga sering digunakan karena terdapat fitur information-hiding mechanism. Mekanisme ini menghilangkan akses publik ke atribut-atribut yang terdapat di dalam “kapsul” tersebut. Metode ini dapat memudahkan anda dalam mendefinisikan atribut apa saja yang dapat dibaca dan diperbarui.

2. Inheritance

Inheritance adalah konsep OOP di mana kita dapat membentuk class baru yang “mewarisi” atau memiliki bagian-bagian dari class yang sudah ada sebelumnya. Konsep ini menggunakan sistem hirarki atau bertingkat. Seperti sebuah Drop-Down Menu yang ada di kebanyakan website, di mana semakin spesifik submenunya, semakin spesifik pula kontennya. Demikian juga dengan Inheritance OOP di mana semakin spesifik subclassnya, semakin sedikit pula komponen yang dapat diwarisi class tersebut.

3. Abstract Class

Seperti namanya, abstract class adalah class-class yang memiliki informasi abstrak dan metode-metode dari sekumpulan data. Abstract Class tidak bisa diubah dan  berlaku juga sebagai kerangka dalam penciptaan subclass-subclassnya (berperan seperti Superclass yang dibahas di konsep Inheritance).

Sebuah Abstract Classs memiliki informasi dan metode yang dapat diturunkan ke subclassnya, dan seluruh subclass akan mengikuti apa saja metode yang akan diturunkan oleh Abstract Class.

Sebagai contoh, mobil, sepeda motor, becak, merupakan kendaraan. Kendaraan (Abstract Class) memiliki syarat-syarat di mana suatu objek dapat dikatakan kendaraan (method and information). Bentuk kendaraan seperti mobil, motor, dsb. adalah hasil penyempitan dari kendaraan dan bersifat lebih spesifik (Subclass).

4. Polymorphism

Polymorphism adalah konsep di mana suatu objek yang berbeda-beda dapat diakses melalui interface yang sama. Sebuah objek yang polymorphic dapat beradaptasi dengan metode apapun yang diimplementasikan pada objek tersebut, dan setiap class memiliki interpretasinya tersendiri terhadap interfacenya.

Dalam Java, terdapat 2 jenis polymorphism yaitu Static Polymorphism dan Dynamic Polymorphism.

Static Polymorphism yang umum digunakan adalah Method Overloading. Method Overloading mengizinkan kalian untuk menerapkan beberapa implementasi metode yang berbeda dalam kelas yang sama namun dengan parameter yang berbeda-beda.

Dalam Dynamic Polymorphism sebuah subclass dapat menimpa metode dari superclassnya. Jika kalian menerapkan subclass tersebut, Java Virtual Machine akan selalu menggunakan metode yang sudah ditimpa.

Walaupun oop mempermudah pekerjaan orang, oop memiliki kelebihan dan kekurangan juga lho

Kelebihan OOP Antara Lain Adalah :

1.  Parallel Development

Ketika bekerja sama dengan team, masing-masing programmer dapat membangun class-classnya sendiri. Dengan membangun class-classnya secara individual, komponen yang sudah dibentuk kemudian dapat digabung menjadi satu kesatuan, hal ini tentu saja menghemat banyak waktu dibanding harus membangun class satu per satu.

2. Reusable

Jika kalian sudah berhasil membangun class, bukan berarti class-class tersebut hanya dapat digunakan sekali dalam project itu saja. Dalam OOP, class-class yang sudah ada dapat kalian gunakan kembali di project dan development yang lain. Baik langsung pakai atau hanya butuh sedikit perubahan, tetapi jauh lebih mudah daripada harus membangun class lagi, bukan?

3. Coding Lebih Mudah Diatur

OOP memiliki basis coding yang terpusat dan mudah di-manage. Data-data yang sudah kalian miliki lebih mudah diakses ketika kalian memerlukannya. Proses ini juga meningkatkan keamanan programming kalian karena terdapat sistem otentikasi yang cukup kuat.

Setelah Kelebihan, Mari Kita Bahas Kekurangannya :

1. Tidak Efisien

OOP lebih cenderung memakan tenaga CPU anda dibanding pilihan lainnya. Hal tersebut tentu bermasalah baik bagi komputer-komputer tua dengan kekuatan yang terbatas atau masalah teknis lainnya.

2. Membutuhkan Tingkat Manajemen Data Yang Tinggi

Jika kalian tidak cermat dalam mengontrol OOP, secara otomatis OOP akan membuat sisa-sisa code yang tidak berguna dalam jumlah besar. Ketika hal tersebut terjadi, akan sulit untuk menghilangkannya dan akan sangat membebani komputer kalian lho.

3. Kemungkinan Duplikasi

Project-project OOP cenderung lebih mudah untuk mendesainnya. Class-class yang sudah ada sangatlah fleksibel dalam implementasinya sehingga anda dapat merancang project-project baru dengan cepat. Tetapi, sering tidak kalian sadari hal tersebut justru membuat project-project yang kalian buat akan terasa seperti sekedar “duplikat” tanpa ada inovasi.

Mengapa Harus Menggunakan OOP?

Pada dasarnya, OOP adalah salah satu inovasi terbaik dalam software development. OOP mempermudah kamu dalam mengembangkan code-code kompleks menjadi lebih mudah digunakan, dibaca, dan secara umum lebih baik. Alasan-alasan kamu untuk menggunakan OOP dapat dilihat dari konsep-konsep yang sudah ada.

– OOP memudahkan kalian merubah implementasi suatu objek tanpa harus mengubah data dan metode di dalam objek tersebut. (Encapsulation).

– OOP memudahkan kalian dalam membentuk metode umum yang dapat digunakan untuk objek-objek lainnya tanpa harus menulisnya berulang-ulang. (Abstract Class).

– OOP dapat mengembangkan satu jenis data dan fungsi yang dapat diarahkan ke fungsi-fungsi lainnya tanpa harus mengganti data dan fungsi dasarnya. (Inheritance).

– OOP memperbolehkan kalian untuk memiliki fungsi yang beragam, dengan nama yang sama, dan melakukan pekerjaan yang sama, namun dapat diterapkan di berbagai data. (Polymorphism).

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like