Apa itu OOP?
Object-Oriented Programming (OOP) adalah metode programming yang berorientasi kepada objek.
Dalam OOP, terdapat kelas dan objek yang berinteraksi satu sama lain sehingga dapat tercipta suatu program.
OOP memudahkan untuk mengatur dan menggunakan kembali suatu kode sehingga dapat menghemat waktu dan mengurangi kesalahan.
Banyak bahasa pemrograman populer yang menggunakan prinsip OOP, seperti Java dan Python.
Istilah Dasar OOP
Berikut ini adalah beberapa istilah dasar dalam OOP:
- Objek: benda yang memiliki data dan perilaku tertentu, misalnya orang atau mobil.
- Kelas: blueprint atau template untuk membuat objek, yang mendefinisikan properti dan tindakan yang akan dimiliki objek dari kelas tersebut.
- Metode: fungsi yang diasosiasikan dengan suatu objek dan digunakan untuk menentukan perilaku objek tersebut.
- Atribut: variabel yang dikaitkan dengan suatu objek dan digunakan untuk merepresentasikan keadaan objek itu.
Kenapa Java Termasuk OOP?
Java dianggap sebagai bahasa pemrograman berorientasi objek karena sepenuhnya mendukung prinsip dasar OOP, seperti encapsulation, inheritance, abstraction, dan polymorphism.
Sintaks dan struktur Java bermanfaat bagi programmer untuk membangun programnya di sekitar objek dan interaksinya. Hal ini memudahkannya untuk mengimplementasikan konsep OOP.
Selain itu, Java memiliki template yang dapat digunakan kembali dan dikembangkan, sehingga seorang programmer dapat mengembangkan aplikasi yang kompleks menggunakan OOP Java.
Konsep Dasar OOP
Konsep dasar OOP meliputi encapsulation, inheritance, polymorphism, dan abstraction.
Encapsulation
Encapsulation adalah salah satu konsep dasar OOP yang menyembunyikan detail suatu objek dari akses luar. Encapsulation membantu dalam menciptakan kode yang lebih aman dengan mencegah modifikasi data yang tidak disengaja.
Inheritance
Inheritance adalah mekanisme dalam OOP yang memungkinkan suatu objek mewarisi properti dan metode dari objek induknya. Inheritance memungkinkan terciptanya hubungan antara objek yang memiliki karakteristik dan perilaku yang sama.
Dengan mengatur objek ke dalam subkelas berdasarkan karakteristik yang sama, seorang programmer dapat membuat basis kode yang dapat digunakan berulang kali.
Polymorphism
Polymorphism merupakan kemampuan objek untuk mengambil bentuk yang berbeda atau memiliki banyak perilaku, tergantung pada konteks penggunaannya. Polymorphism memfasilitasi pemrograman yang lebih fleksibel, karena objek dapat digunakan dalam berbagai konteks berbeda sambil tetap berperilaku yang sesuai.
Abstraction
Abstraction adalah praktik menyederhanakan sistem yang kompleks dengan memecahnya menjadi bagian-bagian yang lebih kecil dan lebih mudah dikelola. Dengan meringkas detail dari sebuah objek, seorang programmer dapat menyederhanakan suatu desain program.
Contoh Program OOP Java
Mengutip dari w3schools, berikut ini adalah contoh program OOP Java beserta penjelasan singkatnya.
Contoh Encapsulation
Dengan menggunakan metode get dan set, seseorang tidak dapat langsung mengakses variabel "name", melainkan dapat mengontrol bagaimana variabelnya diakses dan dimodifikasi dalam program.
Metode "getName()" digunakan untuk mendapatkan nilai variabel "name".
Sementara itu, metode "setName(String newName)" digunakan untuk mengubah nilai variabel "name" menjadi nilai baru yang ditentukan dalam parameter "newName".
Contoh Inheritance
Pada contoh kode di bawah ini, ada dua kelas: Vehicle dan Car. Kelas Car adalah subkelas dari kelas Vehicle, yang berarti akan mewarisi semua karakteristik dan metode kelas Vehicle. Kelas Vehicle memiliki atribut 'brand' dan metode 'honk' yang menampilkan "Tuut, tuut!".
Contoh Polymorphism
Kode di bawah ini menunjukkan konsep polymorphism dalam pemrograman berorientasi objek.
Meskipun "Pig" dan "Dog" adalah subkelas dari "Animal", mereka memiliki implementasi yang berbeda dari metode "animalSound()".
Saat objek bertipe "Pig" atau "Dog" dibuat dan metode "animalSound()" digunakan, objek tersebut akan menampilkan suara yang sesuai dengan hewan tersebut.
Contoh Abstraction
Kode di bawah ini adalah contoh abstraction. Kelas abstrak (Animal) memiliki metode abstrak (animalSound()) tanpa menentukan implementasinya. Subkelas (Pig) mewarisi kelas abstrak tersebut dan menerapkan metode animalSound().
FAQ (Frequently Asked Question)
Apa saja kelebihan OOP?
Melansir dari geeksforgeeks, terdapat banyak manfaat dari OOP, beberapa di antaranya adalah:
- OOP memungkinkan programmer untuk membangun program dengan modul bawaan yang dapat berkomunikasi satu sama lain, sehingga menghemat waktu dan meningkatkan produktivitas.
- OOP dapat memecah program menjadi bagian yang lebih kecil, sehingga bila terdapat masalah, akan relatif lebih mudah dipecahkan
- OOP dapat menambah produktivitas karena software-nya berkualitas tinggi, dan biaya perawatannya lebih rendah.
- Sistem OOP dapat dengan mudah di-upgrade dari sistem kecil ke sistem yang lebih besar.
- Proyek OOP dapat dipartisi dengan mudah.
- Objek dapat dengan mudah dipetakan ke dalam program.