Object Oriented Programming (OOP) : Pengertian, Konsep, Contoh, Kekurangan, dan Kelebihan
Pernahkah Anda mendengar kata OOP? Mungkin tidak semua orang mengetahui istilah ini.
Istilah OOP biasanya digunakan oleh pengembang program atau sering disebut dengan programmer. Bagi programmer, konsep OOP merupakan konsep fundamental atau kunci dalam pemrograman. Mengapa demikian? Konsep OOP ini tidak hanya banyak digunakan oleh programmer lain tetapi juga memastikan kode program yang ditulis menjadi lebih terstruktur, efisien, dan efektif.
Menurut definisinya, OOP adalah singkatan dari Object Oriented Programming dan merupakan teknik pemrograman berorientasi objek. Siapapun yang ingin belajar pemrograman pasti sudah familiar dengan istilah ini. Karena OOP merupakan model pemrograman dasar yang perlu Anda pelajari.
Alasannya adalah hampir setiap developer atau programmer menggunakan OOP dalam segala hal yang dilakukannya. Oleh karena itu, penting untuk memiliki pengetahuan yang baik tentang pemrograman berorientasi objek. Ini berguna ketika Anda perlu mengembangkan dan memelihara program perangkat lunak.
Mengingat pentingnya model ini dalam dunia pemrograman, artikel ini mengajak Anda untuk mempelajari lebih lanjut tentang OOP. Mulai dari pengertian, konsep, kelebihan dan kekurangannya.
Definisi OOP
Pemrograman berorientasi objek atau Object Oriented Programming (OOP) adalah jenis pemrograman komputer di mana pemrogram menentukan tipe data dari struktur data dan jenis operasi (fungsi) yang dapat diterapkan pada struktur data. Struktur data ini nantinya akan menjadi objek yang berisi data dan fungsi.
Selain itu, pemrogram dapat membuat hubungan antar objek. Misalnya, Anda dapat memperoleh properti suatu objek dari properti objek lain.
Definisi lain dari OOP adalah konsep pemrograman yang mengidentifikasi kelas objek yang berkaitan erat dengan metode yang digunakan.
OOP menawarkan kemungkinan memperluas pemrograman ke tingkat abstraksi yang lebih tinggi. Inilah sebabnya mengapa OOP adalah model pemrograman paling populer untuk menulis kode di sebagian besar latar belakang pendidikan programmer. Selain itu, konsep Object Oriented Programming untuk mengatur program perangkat lunak menjadi kode blueprint sederhana yang dapat digunakan kembali untuk membuat contoh objek individual.
Ada banyak bahasa pemrograman yang dapat digunakan untuk menulis program berorientasi objek, antara lain JavaScript, C++, Java, dan Python. Model pemrograman ini tidak hanya berorientasi objek, tetapi juga dapat berorientasi kelas, yang nantinya digunakan dalam pemrograman untuk membuat objek individual.
Apa yang dimaksud dengan class dalam dunia coding? Class adalah bagian dari blueprint atau isi dari suatu objek yang dibuat. Bagian ini berfokus pada topik umum sehingga dapat memberikan model yang lebih spesifik.
Misalnya, Anda menggunakan kelas “Pohon” dalam pemrograman Anda. Oleh karena itu, ciri-ciri objek yang dapat dibentuk berdasarkan prinsip OOP adalah “Pohon Mangga”. Bentuk ini merupakan turunan dari kelas induk “Pohon”.
Anda dapat mengatur kelas ke dalam modul dengan mendefinisikan sekumpulan kelas yang mewakili dan merangkum objek dalam program Anda. Tujuannya adalah untuk memperbaiki struktur dan organisasi program perangkat lunak.
Oleh karena itu, pengembang menggunakan OOP sebagai alat ketika memprogram program yang kompleks. Hal ini dikarenakan dengan menggunakan OOP membuat penempatan kode program menjadi lebih sederhana dan jelas.
Konsep dan Contoh OOP
Secara umum ada empat konsep dasar dalam Object Oriented Programming. Ini termasuk enkapsulasi, abstraksi, pewarisan, dan polimorfisme. Meskipun konsep-konsep ini tampak cukup rumit, memahami kerangka umum cara kerjanya akan membantu Anda memahami dasar-dasar program komputer OOP.
Di bawah ini penjelasan empat konsep dasar OOP (Object Oriented Programming) yang perlu Anda ketahui.
1. Enkapsulasi (Encapsulation)
Konsep dan contoh OOP yang pertama adalah enkapsulasi. Kata “enkapsulasi” berarti melingkupi atau membungkus sesuatu. Ini seperti pil yang “mengenkapsulasi” obat di dalam cangkangnya. Konsep enkapsulasi bekerja dengan mengatur struktur class dan menyembunyikan alur kerja dari kelas yang dibuat. Hal ini dimaksudkan untuk membentuk pembatas atau penghalang di sekitar informasi yang terdapat di class.
Dengan cara ini, kelas Blueprint tetap bersifat pribadi untuk semua objek dalam pemrograman. Sederhananya, enkapsulasi mengacu pada pembuatan modul mandiri (class) yang mengikat fungsi pemrosesan ke elemen data.
Data tiap kelas dijaga kerahasiaannya. Setiap class mendefinisikan aturan tentang apa yang diekspos dan perubahan apa yang diperbolehkan.
Misalnya, jika Anda ingin menulis data pribadi di kelas, ucapkan “socialSecurityNumber”, data ini tidak boleh tersedia untuk objek lain dalam program. Anggota data ini harus dienkapsulasi dalam variabel khusus di dalam kelas sehingga tidak dapat diakses secara eksternal. Dengan cara ini kode Anda akan tetap aman dalam objek orang itu.
2. Abstraksi
Konsep abstraksi sering diterapkan pada class dan metode OOP. Abstract Class adalah kelas dalam OOP yang tidak dapat diubah menjadi objek. Selain itu, abstract class juga menjadi dasar kelas turunan.
Untuk disebut abstract classs harus memiliki setidaknya satu abstract method. Abstract Method sendiri merupakan metode yang memuat suatu tindakan dalam abstract class. Tindakan abstract method kemudian diimplementasikan lagi di child class.
Apakah Anda bingung antara abstract class dan abstract method? Misalkan Anda ingin membuat class yang terdiri dari berbagai jenis mamalia, seperti class singa, class harimau, class serigala. Seluruh class ini secara alami memiliki ciri-ciri mamalia seperti gigi lengkap, sistem pernafasan dengan paru-paru, dan rambut. Semua mamalia mempunyai ciri-ciri umum dan khusus.
Oleh karena itu, sifat umum ini dapat digunakan oleh class mana pun yang berasal dari class mamalia. Karakteristik umum ini dibuat dengan metode ciri_umum().
Jadi bagaimana mesin dapat mengeksekusi metode ciri_umum() pada setiap class? Solusinya adalah dengan mengimplementasikan class mamalia sebagai abstract class, dan method ciri_umum() sebagai abstract method.
3. Pewarisan (Inheritance)
Beberapa kelas dapat dibuat dalam kode program, dan class yang dibuat mungkin memiliki kesamaan atau properti. Bukankah akan efisien jika harus mengulang beberapa hal yang sama untuk setiap kelas yang kita buat? Jadi, ketika menggunakan konsep OOP, situasi ini dapat diselesaikan dengan menggunakan konsep pewarisan atau inheritance.
Konsep pewarisan pada OOP membuat penulisan kode program menjadi lebih efektif dan efisien. Inheritance merupakan bagian dari konsep OOP yang memungkinkan suatu kelas (parent class) mewarisi atau mewariskan fungsionalitas atau metode dari kelas lain (child class).
Contoh yang menggambarkan konsep pewarisan adalah class kucing sebagai parent class. Seperti yang kamu ketahui, kucing bisa makan, berjalan, berlari, dan memanjat. Ada empat aktivitas yang bisa dilakukan kucing. Keempat aktivitas ini disebut metode di kelas kucing.
Sebenarnya ada banyak ras kucing yang berbeda, termasuk Anggora, Persia, dan Skotlandia. Karena kucing Anggora, Persia, dan Skotlandia semuanya dapat melakukan empat aktivitas yang tercantum di atas, Anda dapat menggunakan konsep pewarisan ini untuk mempersingkat kode program Anda.
Oleh karena itu, tidak perlu membuat class kucing dengan empat metode, kelas Angora dengan empat metode, kelas Persia dengan empat metode, dan kelas Skotlandia dengan empat metode. Kelas Angora, Persia, dan Skotlandia dapat mengeksekusi semua metode class kucing hanya dengan mereduksi properti atau metode class kucing sebagai parent class.
4. Polimorfisme
Konsep dan contoh terakhir dalam OOP adalah polimorfisme. Polimorfisme dalam Object Oriented Programming adalah konsep pengklasifikasian objek yang sama persis dengan kelas induknya. Ini membantu pengembang menghindari kebingungan dengan tipe campuran.
Konsep ini memungkinkan pengembang memperlakukan kelas secara konsisten. Objek turunan memiliki properti yang sama dengan objek induknya, sehingga kode pemanggil dapat memanggil fungsi apa pun di antarmuka kelas ini.
Ketika suatu program dijalankan, tergantung pada jenis objek yang diprogram, sistem secara otomatis memanggil fungsi terkait. Misalnya, Anda memiliki class “Hewan” dan dua sub-class “Kucing” dan “Anjing”. Jika kelas “Hewan” Anda memiliki metode membuat suara yang disebut “makeNoise”, Anda dapat mengganti fungsi “makeNoise” yang diwarisi dari subkelas “Kucing” dan “Anjing” menjadi “meow- meow” dan “guk- guk”.
Kelebihan dan Kekurangan OOP
Untuk mengetahui lebih jauh mengenai OOP, langsung saja ke pembahasan berikut ini. Pada pembahasan berikut ini Anda akan mempelajari tentang kelebihan dan kekurangan OOP.
Kelebihan OOP
Setiap konsep pemrograman mempunyai kelebihan tersendiri. Hal yang sama berlaku untuk OOP. Manfaat atau kelebihan dari konsep OOP sendiri adalah:
- Membuat program dalam modul kerja yang memungkinkannya berkomunikasi satu sama lain. Fungsi ini lebih baik daripada memulai dari awal, menghemat waktu pengembangan dan meningkatkan produktivitas.
- Bahasa OOP (Object Oriented Programming) memungkinkan program dipecah menjadi program berukuran bit yang mudah diselesaikan.
- Perangkat dengan kualitas lebih tinggi akan membuat departemen pengembangan lebih produktif dibandingkan sebelumnya.
- Biaya perawatannya rendah, sehingga tidak semahal menggunakan perangkat lain.
- Memperbarui seluruh Object Oriented Programming dengan mudah.
- Beberapa contoh objek dapat bekerja secara paralel tanpa mengganggu.
- Memudahkan memetakan objek di domain masalah Anda ke objek di program Anda.
- Prinsip enkapsulasi data membantu Anda menulis program yang aman dan tidak mudah diserang oleh kode di bagian lain program.
- Prinsip pewarisan memungkinkan Anda menghilangkan kode yang berlebihan dan memperluas penggunaan kelas yang ada.
- Teknik perpesanan membantu komunikasi antar objek dan memfasilitasi antarmuka penulisan dengan sistem eksternal.
- Dapatkan lebih banyak detail model dengan pendekatan desain yang berpusat pada data.
Kekurangan OOP
Setelah Anda memahami kelebihan OOP, tidak adil jika tidak mengetahui kekurangannya. Tentu saja tidak ada yang sempurna. Konsep Object Oriented Programming juga memiliki kelemahan sebagai berikut:
- Panjang program yang dikembangkan dengan menggunakan bahasa OOP jauh lebih lama dibandingkan dengan pendekatan prosedural. Semakin besar programnya, semakin lama waktu yang dibutuhkan untuk mengeksekusinya.
- OOP bukan bahasa tujuan umum dan tidak dapat diimplementasikan di semua bahasa pemrograman.
- Menggunakan OOP agak rumit dan memerlukan keterampilan desain dan pemrograman yang baik serta perencanaan yang baik.
- Segala sesuatu di OOP diperlakukan sebagai objek. Oleh karena itu, Anda harus memiliki pengetahuan yang cukup tentang suatu benda sebelum menggunakannya.
Apakah Anda Memahami Metode Pemrograman Object Oriented Programming?
Ini adalah artikel tentang Object Oriented Programming yang wajib dipahami, terutama jika Anda berkecimpung dalam dunia pemrograman. Belajar memahami OOP, teknik pemrograman unik, mulai dari konsep hingga kelebihan dan kekurangannya. Jadi, jika Anda seorang pemula dan masih bingung dengan konsep OOP dalam coding, itu wajar.
Karena pada dasarnya keahlian dan keterampilan seseorang meningkat seiring dengan bertambahnya waktu terbang. Ini berarti seringnya berlatih dan bereksperimen adalah hal yang penting