Kamu Wajib Tahu! Empat Konsep Dasar OOP (Object Oriented Programming)
Pernahkah kamu mendengar istilah 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? Karena konsep OOP ini tidak hanya banyak digunakan oleh programmer, tetapi juga memastikan kode program yang dibuat menjadi lebih terstruktur, efisien, dan efektif.
Menurut definisinya, OOP adalah singkatan dari Object Oriented Programming yang merupakan teknik pemrograman berorientasi objek. Siapapun yang ingin belajar pemrograman pasti sudah familiar dengan istilah ini. Hal ini dikarenakan, OOP merupakan model pemrograman dasar yang harus dikuasai.
Alasannya adalah hampir setiap developer atau programmer menggunakan OOP dalam segala hal yang dilakukannya. Oleh karena itu, penting untuk memiliki pengetahuan yang baik tentang OOP ini. Hal ini bermanfaat ketika kamu perlu mengembangkan dan memelihara program perangkat lunak.
Mengingat pentingnya OOP dalam dunia pemrograman, artikel ini akan mengajak kamu untuk mempelajari lebih lanjut tentang OOP, terutama tentang konsep dasarnya. Yuk, langsung saja simak pembahasannya berikut ini!
Pengertian OOP
Object Oriented Programming (OOP) adalah jenis pemrograman komputer di mana programmer menentukan tipe data dari struktur data dan tipe operasi (fungsi) yang dapat diterapkan pada struktur data. Struktur data ini nantinya akan menjadi objek yang berisi data dan fungsi. Selain itu, programmer dapat membuat hubungan antar objek. Misalnya, karakteristik suatu objek dapat menurun dari objek lain.
Definisi lain dari OOP adalah konsep pemrograman yang mengidentifikasi kelas objek yang berkaitan erat dengan metode yang digunakan. OOP menawarkan potensi untuk mengembangkan pemrograman ke tingkat abstraksi yang lebih tinggi. Inilah sebabnya mengapa OOP adalah model pemrograman paling populer untuk membuat kode di sebagian besar karir pendidikan programmer.
Selain itu, konsep OOP digunakan untuk menyusun program perangkat lunak menjadi potongan-potongan kode blueprint sederhana yang dapat digunakan kembali untuk membuat instance objek individual.
Ada banyak bahasa pemrograman yang dapat digunakan untuk membuat 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 untuk membuat objek individual dalam pemrograman. Apa yang dimaksud dengan kelas (class) dalam dunia coding?
Class merupakan blueprint atau bagian isi dari suatu objek yang dibuat. Bagian ini berfokus pada hal-hal umum sehingga dapat memberikan model yang lebih spesifik. Misalnya, kamu menggunakan kelas “Pohon” dalam pemrograman kamu. Maka karakteristik objek yang dapat dibentuk berdasarkan prinsip OOP adalah “Pohon Mangga”, di mana bentuk ini merupakan turunan dari kelas induk “Pohon”.
Kamu dapat mengatur kelas ke dalam modul dengan mendefinisikan set kelas yang mewakili dan merangkum objek dalam suatu program. Tujuannya adalah untuk meningkatkan struktur dan organisasi program perangkat lunak.
Dengan demikian, developer menggunakan OOP adalah sebagai alat ketika membuat kode program yang kompleks. Hal ini dikarenakan, dengan menggunakan OOP, susunan kode program dapat menjadi lebih mudah dan ringkas.
Konsep Dasar OOP dan Contohnya
Secara umum OOP terdiri dari empat konsep dasar, yaitu enkapsulasi, abstraksi, pewarisan, dan polimorfisme. Meskipun konsep-konsep ini tampak cukup rumit, memahami kerangka umum cara kerjanya akan membantu kamu memahami dasar-dasar program komputer OOP.
Di bawah ini adalah penjelasan tentang empat konsep dasar OOP (Object Oriented Programming) yang perlu kamu ketahui.
-
Enkapsulasi (Encapsulation)
Konsep dan contoh OOP yang pertama adalah enkapsulasi. Kata “enkapsulasi’ berarti memiliki arti melingkupi atau membungkus sesuatu. Ini sama seperti pil yang “mengenkapsulasi” atau mengandung obat di dalam lapisannya.
Konsep enkapsulasi bekerja dengan mengatur struktur class dan menyembunyikan alur kerja dari class yang dibuat. Hal ini dimaksudkan untuk membentuk penghalang atau pelindung di sekitar informasi yang terkandung dalam class.
Dengan begitu, blueprint class tetap dalam kondisi private untuk semua objek dalam pemrograman. Sederhananya, enkapsulasi mengacu pada pembuatan modul mandiri (class) yang mengikat fungsi pemrosesan ke anggota datanya.
Data dalam setiap class terjaga kerahasiaannya. Setiap class mendefinisikan aturan tentang apa yang terlihat secara publik dan perubahan apa yang diperbolehkan. Misalnya, jika kamu ingin menguraikan data pribadi di kelas, seperti “socialSecurityNumber”, yang mana data ini tidak boleh terekspos untuk objek lain dalam program.
Anggota data tersebut harus dienkapsulasi menjadi variabel khusus di dalam kelas sehingga tidak dapat diakses secara eksternal. Dengan cara ini kode itu akan tetap aman dalam objek lain.
-
Abstraksi
Konsep abstraksi banyak diterapkan pada class dan method OOP. Abstract Class adalah sebuah class dalam OOP yang tidak dapat dibuat menjadi objek. Selain itu, abstract class juga menjadi pondasi dasar bagi class turunannya.
Sebuah class harus memiliki setidaknya satu abstract method untuk disebut sebagai abstract class. Abstract Method sendiri merupakan metode yang berisi suatu aksi dalam abstract class.
Nantinya aksi yang berada pada abstract method akan diimplementasikan ulang dalam child class. Apakah kamu bingung antara abstract class dengan abstract method? Yuk, coba pahami contoh berikut:
Misalkan kamu ingin membuat kelas yang terdiri dari berbagai jenis mamalia, seperti class singa, class harimau, dan class serigala. Seluruh class ini tentunya memiliki ciri-ciri mamalia, seperti gigi lengkap, sistem pernapasan dengan paru-paru, serta memiliki bulu atau rambut.
Semua mamalia mempunyai ciri-ciri umum dan khusus. Nah, untuk ciri umum ini dapat digunakan di setiap class yang diturunkan dari class mamalia. Ciri umum tersebut dibuat dalam method ciri_umum(). Lalu, bagaimana caranya agar mesin bisa mengeksekusi method ciri_umum() di setiap class?
Caranya adalah dengan mengimplementasikan class mamalia sebagai abstract class dan method ciri_umum() sebagai abstract method.
abstract class mamalia { abstract public function ciri_umum(); }
-
Pewarisan (Inheritance)
Terkadang beberapa class yang dibuat dalam kode program memiliki karakteristik yang sama diantara class-class yang dibuat. Nah, tidak efektif bukan jika kita harus mengulang beberapa hal yang sama untuk setiap kelas yang kita buat? Jadi, jika menggunakan konsep OOP, kondisi tersebut dapat diselesaikan dengan menggunakan konsep pewarisan.
Konsep pewarisan pada OOP membuat penulisan kode program menjadi lebih efektif dan efisien. Pewarisan (inheritance) merupakan bagian dari konsep OOP yang memungkinkan suatu class (parent class) mewarisi atau menurunkan karakteristik dan metode kepada class lainnya (child class).
Ilustrasi yang menggambarkan konsep pewarisan ini, misalnya adalah class kucing sebagai parent class. Seperti yang kita tahu bahwa kucing bisa makan, berjalan, berlari, dan memanjat. Ada empat aktivitas yang bisa dilakukan kucing. Keempat aktivitas tersebut disebut method pada class kucing.
public class Kucing { public void makan() { } public void jalan() { } public void lari() { } public void memanjat() { } }
Dan sebenarnya ada banyak ras kucing yang berbeda, misalnya anggora, persia, scottish, dan masih banyak lagi. Karena kucing anggora, persia, dan scottish semuanya dapat melakukan empat aktivitas yang tercantum di atas, kamu dapat menggunakan konsep pewarisan ini untuk mempersingkat kode program kamu.
Oleh karena itu, tidak perlu membuat class kucing dengan 4 method, class anggora dengan 4 method, class persia dengan 4 method , dan class scottish dengan 4 method. Class anggora, persia, dan scottish dapat mengeksekusi semua metode class kucing hanya dengan menurunkan sifat atau method dari class kucing sebagai parent class.
public class Anggora extends Kucing { } public class Persia extends Kucing { } public class Scottish extends Kucing { }
- Polimorfisme
Konsep dan contoh terakhir OOP adalah polimorfisme. Polimorfisme dalam OOP adalah konsep pengklasifikasian objek yang sama persis dengan kelas induknya. Ini membantu developer menghindari kebingungan dengan tipe-tipe campuran.
Konsep ini memungkinkan developer memperlakukan kelas secara konsisten. Karena objek turunanmemiliki siaft yang sama dengan objek induk sehingga kode panggilan dapat memanggil fungsi apa pun dalam antarmuka kelas itu.
Ketika suatu program dijalankan, sistem secara otomatis memanggil fungsi tergantung pada jenis objek yang diprogram. Misalnya, kamu memiliki class “Hewan” dan dua sub-class, yaitu “Kucing” dan “Anjing”.
Jika class “Hewan” memiliki metode untuk membuat suara yang disebut makeNoise, kamu dapat mengganti fungsi makeNoise yang diwarisi oleh sub-class “Kucing” dan “Anjing” menjadi “meow- meow” dan “guk- guk”.
abstract class Hewan { protected abctract void makeNoise(); } class Kucing extends Hewan { protected void makeNoise() { System.out.println("Kucing => meow- meow"); } } class Anjing extends Hewan { protected void makeNoise() { System.out.println("Anjing => guk- guk"); } } public class Action { public static void main (String[] args) { Hewan kucing = new Kucing(); kucing.makeNoise(); Hewan anjing = new Anjing(); anjing.makeNoise(); } }
Nah, itulah empat konsep dasar OOP. Semoga bermanfaat!