Hai Sohib Siber!
OOP (Object Oriented Programming) atau dalam bahasa indonesia dikenal dengan pemrograman berorientasikan objek (PBO) merupakan sebuah paradigma atau teknik pemrograman yang berorientesikan Objek.
Pada OOP, Fungsi dan variabel dibungkus dalam sebuah objek atau class yang dapat saling brinteraksi, sehingga membentuk sebuah program.
Class adalah rancangan atau blue print dari sebuah objek. Sedangkan objek adalah sebuah variabel yang merupakan instance atau perwujudan dari Class. Instance bisa diartikan sebagai wujud dari class. Class berisi definisi variabel dan fungsi yang menggambarkan sebuah objek.
Sebuah class atau objek bisa saling berhubungan dengan class yang lain. Salah satu bentuk hubungannya adalah inheritance (pewarisan). Hubungan ini seperti hubungan keluarga antara orang tua dan anak. Sebuah class di Java, bisa memiliki satu atau lebih keturunan atau class anak. Class anak akan memiliki warisan properti dan method dari class ibu. Class dalam program Java dapat saling berhubungan dengan cara memberikan akses terhadap member mereka.
Semua yang ada di dalam class (atribut dan method) disebut member. Biasanya akan ada tingkatan akses yang disebut modifier. Pada hubungan inheritance, semua member di dalam class induk akan bisa diakses oleh class anak (subclass), kecuali member tersebut diberikan modifier private. Secara umum ada 3 macam modifier yang digunakan dalam Java: public, private, dan protected.
Apabila kita tidak menggunakan tiga kata kunci tersebut, maka member atau class itu tidak menggunakan modifier (no modifier). Masing-masing modifier akan menentukan di mana saja member bisa diakses.
Constructor adalah method khusus yang akan dieksekusi pada saat pembuatan objek (instance). Biasanya method ini digunakan untuk inisialisasi atau mempersiapkan data untuk objek.
Destructor adalah method khusus yang akan dieksekusi saat objek dihapus dari memori. Java sendiri tidak memiliki method destructor, karena Java menggunakan gerbage collector untuk manajemen memorinya. Jadi Si gerbage collector akan otomatis menghapus objek yang tidak terpakai.
Dalam OOP kita sering mendengar istilah encapsulation (pembungkusan), di mana data dibungkus dengan modifier private agar tidak bisa diakses secara langsung dari luar class. Method setter dan getter inilah yang akan membantu kita mengakses data tersebut. Fungsi getter setter:
- Untuk meningkatkan keamanan data;
- Agar lebih mudah dalam mengontrol atribut dan dan method;
- Class bisa kita buat menjadi read-only dan write-only;
- dan fleksibel: programmer dapat mengganti sebagian dari kode tanpa harus takut berdampak pada kode yang lain.
Apa itu Polimorfisme?
Poly artinya banyak, morfisme artinya bentuk. Polimorfisme (bahasa inggris polymorphism) adalah sebuah prinsip dalam biologi di mana oraganisme atau spesias dapat memiliki banyak bentuk atau tahapan (stages). Prinsip ini juga diadopsi pada pemrograman berorientasikan objek. Sehingga kita dapat definisikan sebagai berikut:
Polimorfisme dalam OOP adalah sebuah prinsip di mana class dapat memiliki banyak “bentuk” method yang berbeda-beda meskipun namanya sama. “Bentuk” di sini dapat kita artikan: isinya berbeda, parameternya berbeda, dan tipe datanya berbeda.
Interface merupakan suatu mekanisme yang disediakan oleh java yang memungkinkan berbagi konstanta atau menentukan bentuk metode yang dapat digunakan oleh sejumlah kelas bentuk metode yang dapat digunakan oleh sejumlah kelas.
Beda Interface dan kelas abstrak:
- Kelas abstrak dapat mengandung metode abstrak maupun metode tidak abstrak, sedangkan interface hanya dapat mengandung metode abstrak
- Kelas abstrak dapat mendeklarasikan variabel instan, sedangkan interface hanya dapat mendefinisikan konstanta
- Kelas abstrak digunakan oleh kelas lain melalui pewarisan(via kata kunci extends) sedangkan interface digunakan oleh kelas tidak kunci extends), sedangkan interface digunakan oleh kelas tidak melalui mekanisme itu