MENGENAL KONSEP OOP

 

Konsep OOP dan Contohnya

Secara garis besar Object Oriented Programming memiliki empat konsep dasar.

Di antaranya enkapsulasi, abstraksi, pewarisan, dan polimorfisme. Sekalipun konsep-konsep ini tampak sangat kompleks, memahami kerangka kerja umum tentang cara kerjanya akan membantu kamu memahami dasar-dasar program komputer OOP. 

Berikut ini uraian tentang empat konsep dasar OOP (Object Oriented Programming) yang wajib kamu tahu:

1. Enkapsulasi (Encapsulation)

Konsep dan contoh pertama dari OOP adalah enkapsulasi. Kata “enkapsulasi” memiliki arti melingkupi atau membungkus sesuatu.

Sama seperti pil yang “mengenkapsulasi” atau mengandung obat di dalam lapisannya. Konsep enkapsulasi bekerja dengan cara mengatur struktur class dan menyembunyikan alur kerja dari class yang telah dibuat.

Hal ini bertujuan untuk membentuk penghalang atau pelindung di sekitar informasi yang terkandung dalam class.

Dengan begitu, sebuah blueprint class tetap dalam kondisi private oleh setiap objek yang ada di dalam pemrograman.

Sederhananya, enkapsulasi mengacu pada pembuatan modul mandiri (class) yang mengikat fungsi pemrosesan ke anggota datanya.

Data dalam setiap kelas terjaga kerahasiaannya. Setiap class mendefinisikan aturan untuk apa yang terlihat secara publik dan modifikasi apa yang diizinkan.

Contohnya ketika kamu ingin menguraikan data pribadi di kelas, seperti “socialSecurityNumber”, yang mana data ini tidak boleh terekspos ke objek lain dalam program.

Anggota data ini harus dienkapsulasi menjadi variabel khusus dalam kelas, sehingga tidak dapat diakses dari luar

Dengan begitu, kode itu akan tetap aman di dalam objek orang itu.

2. Abstraksi

Konsep abstraksi banyak diterapkan pada class dan method dalam OOP. Abstract Class adalah sebuah class dalam OOP yang tidak bisa dibuat menjadi objek.

Selain itu abstract class juga merupakan pondasi dasar bagi class turunannya.

Dapat disebut sebagai abstract class setidaknya harus memiliki satu atau lebih abstract method. Abstract Method sendiri merupakan sebuah metode yang berisi aksi untuk suatu abstract class.

Nantinya aksi yang berada pada abstract method akan diimplementasikan ulang dalam child class. Bingung antara abstract class dengan abstract method? Coba pahami contoh berikut ini.

Misalkan ingin membuat class yang terdiri dari berbagai jenis mamalia seperti class singa, class harimau, class serigala.

Seluruh class ini tentunya memiliki ciri-ciri mamalia, seperti memiliki gigi yang lengkap, alat pernapasan paru-paru, dan memiliki rambut atau bulu. 

Setiap hewan mamalia memiliki ciri umum dan ciri khusus. Nah, untuk ciri umum inilah bisa digunakan di setiap class yang diturunkan dari class mamalia. Ciri umum tersebut adalah dibuat dalam method memiliki ciri_umum().

Lalu, bagaimana caranya agar mesin dapat melakukan method ciri_umum() di setiap class? Solusinya adalah dengan menerapkan class mamalia sebagai abstract class, dan method ciri_umum() sebagai abstract method.

3. Pewarisan (Inheritance)

Terkadang beberapa class yang dibuat dalam kode program, ada hal-hal atau karakteristik yang sama diantara class- class yang dibuat.

Tidak efektif bukan jika ada beberapa hal yang sama harus diulang kembali untuk setiap class yang dibuat? Nah, apabila menggunakan konsep OOP kondisi tersebut dapat diselesaikan menggunakan konsep pewarisan atau inheritance.

Konsep pewarisan pada OOP ini akan lebih efektif dan efisien saat membuat kode program. Pewarisan atau inheritance merupakan bagian dari konsep OOP yang mana suatu class (parent class) dapat menurunkan atau mewarisi karakteristik dan metode kepada class lainnya (child class).

Penggambaran konsep pewarisan ini misalnya class kucing sebagai parent class.

Seperti yang kita tahu bahwa kucing dapat makan, berjalan, berlari, dan memanjat. Sehingga terdapat 4 aktivitas yang bisa dilakukan kucing. Keempat aktivitas tersebut disebut dengan method pada class kucing.  

oop adalah

Kemudian, kenyataanya kucing memiliki berbagai macam jenis nya, misalnya anggora, persia, scottish, dan masih banyak lagi.

Karena kucing anggora, persia, dan scottish sama- sama bisa melakukan 4 aktivitas yang telah disebutkan tadi, maka untuk membuat mempersingkat kode program kamu bisa menggunakan konsep pewarisan ini.

Jadi tidak perlu membuat class kucing dengan 4 method, class anggora dengan 4 method, class persia dengan 4 method , dan class scottish dengan 4 method.

Cukup menurunkan sifat atau method dari class kucing saja sebagai parent class, maka class anggora, persia, dan scottish dapat melakukan semua method yang ada pada class kucing.

4. Polimorfisme

Konsep dan contoh terakhir dari OOP adalah konsep polimorfisme. Dalam Object Oriented Programming, polimorfisme merupakan konsep yang pengklasifikasian objek yang sama persis seperti induk kelasnya. Dengan begitu, developer dapat mencegah terjadinya kebingungan dengan tipe-tipe campuran.

Menggunakan konsep ini juga memungkinkan developer untuk memberi perlakuan yang seragam kepada kelas. Karena objek turunan memiliki sifat yang sama dengan induknya, kode panggilan dapat memanggil fungsi apa pun di antarmuka kelas itu. 

Saat program berjalan, sistem akan secara otomatis memanggil fungsi yang sesuai tergantung pada jenis objek yang telah di program. Sebagai contoh, kamu memiliki class “Hewan” dan dua sub-class yakni, “Kucing,” dan “Anjing.” 

Jika kelas “Hewan” memiliki metode untuk membuat suara, yang disebut, “makeNoise,” maka, kita dapat menimpa fungsi “makeNoise” yang diwarisi oleh subkelas, “Kucing” dan “Anjing,” menjadi “meow- meow” dan “guk- guk”.

Kelebihan dan Kekurangan OOP

Agar lebih paham lagi mengenai OOP, mari kita ke pembahasan selanjutnya. Di pembahasan selanjutnya kamu akan memahami apa saja kelebihan dan kekurangan OOP. 

Kelebihan OOP

Setiap konsep pemrograman memiliki kelebihan masing- masing. Begitu pula dengan OOP. Adapun kelebihan darikonsep OOP sendiri adalah sebagai berikut:

  • Membangun program pada modul kerja yang memungkinkan berkomunikasi satu sama lain. Fungsi ini lebih baik daripada harus mulai dari 0, dengan begitu dapat menghemat waktu pengembangan sehingga produktivitas akan lebih baik.
  • Bahasa OOP (Object Oriented Programming) memungkinkan kamu memecah program menjadi program berukuran bit yang dapat diselesaikan dengan mudah.
  • Dengan kualitas perangkat yang lebih baik produktivitas divisi pengembang akan lebih meningkat dari sebelumnya.
  • Biaya perawatannya rendah membuat pengeluaran biaya tidak sebanyak menggunakan perangkat lain.
  • Seluruh sistem Object Oriented Programming dapat dengan di-upgrade dengan mudah.
  • Ada kemungkinan bahwa beberapa contoh objek dapat berfungsi berdampingan tanpa gangguan apa pun.
  • Memudahkan kamu untuk memetakan objek dalam problem domain ke objek dalam program.
  • Prinsip enkapsulasi data, dapat membantu kamu untuk membangun program yang aman dan tidak mudah diserang oleh kode di bagian lain dari program.
  • Dengan menggunakan prinsip inheritance, kamu dapat menghilangkan kode yang berlebihan dan memperluas penggunaan kelas yang ada.
  • Teknik pengiriman pesan berguna untuk komunikasi antar objek yang membuat deskripsi antarmuka dengan sistem eksternal menjadi lebih sederhana.
  • Pendekatan desain yang berpusat pada data memungkinkan kamu untuk mengambil lebih banyak detail model.

Kekurangan OOP

Setelah kamu memahami kelebihan OOP, tidak adil jika kamu tidak mengetahui apa saja kekurangannya. Tidak ada yang sempurna, pastinya konsep Object Oriented Programming juga memiliki kekurangan, di antaranya:

  • Panjang program yang dikembangkan menggunakan bahasa OOP adalah jauh lebih besar daripada pendekatan prosedural. Karena program menjadi lebih besar dalam ukuran, proses eksekusi jadi memakan waktu yang lebih lama.
  • Kamu tidak dapat menerapkan OOP di semua bahasa pemrograman karena ini bukan bahasa universal.
  • Harus memiliki keterampilan merancang dan pemrograman yang tinggi serta perencanaan yang tepat karena menggunakan OOP sedikit rumit.
  • Semuanya diperlakukan sebagai objek di OOP. Jadi, sebelum menerapkannya kamu harus memiliki pengetahuan yang sangat baik dalam hal objek.

Komentar

Postingan populer dari blog ini

ISTILAH ISTILAH BASIS DATA

MENGENAL ISTILAH CSS

MENGENAL ISTILAH JAVASCRIPT