Pengertian OOP
Pemrograman Berorientasi Objek adalah paradigma pemrograman dimana program dianggap sebagai sekumpulan objek. Setiap objek merupakan instansiasi dari sebuah kelas.
- Class adalah cetak biru (blueprint) yang menjelaskan rincian sebuah objek. Kelas merepresentasikan tipe objek. Sebuah Kelas mendefinisikan beberapa atribut (nilai/state) dan fungsi (behavior) yang akan dimiliki objek. Misalkan/contoh, Kelas “Time” memiliki definisi atribut jam, menit, dan detik, serta definisi fungsi tambahDetik(), tambahMenit(), dan tambahJam(). Objek yang diinstansiasi dari Kelas "Time" menyimpan informasi, misalkan jam=15, menit=30, detik=50.
- Abstraction/Abstraksi yaitu menunjukkan fitur utama saja tanpa menunjukkan detil struktur/mekanisme di belakangnya. Abstraksi yaitu menunjukkan informasi secukupnya yang diperlukan bagi client sebuah objek sehingga lebih sederhana abstraksi menjelaskan makna sebuah entitas secara cepat dan mudah.
- Objek adalah instansiasi dari sebuah Kelas. Setelah diinstansiasi, objek memiliki nilai (state) dan dapat melakukan aksi sesuai dengan fungsi yang didefinisikan di Kelas. Atribut dan fungsi Objek didefinisikan oleh Kelas, dan digunakan oleh objek. Objek menyimpan informasi, sedangkan Kelas tidak menyimpan informasi, hanya mendefinisikan variabel atribut yang akan dimiliki oleh Objek.
- Enkapsulasi adalah fitur utama dalam OOP yang membungkus data dan fungsi menjadi sebuah Kelas. Enkapsulasi bertujuan untuk membatasi akses data dari luar Kelas. Dengan Enkapsulasi, data hanya dapat diubah oleh fungsi yang didefinisikan di dalam Kelas itu sendiri.
- Inheritance adalah pewarisan sifat dari Kelas Induk (Parent Class/ Base Class) ke Kelas Turunan (Child Class/ Sub Class). Dalam OOP, Inheritance memungkinkan mekanisme “reuse” atribut dan fungsi yang sudah didefinisikan di Kelas Induk untuk dapat digunakan di Kelas Anak, tanpa harus menuliskan ulang atribut dan fungsi tersebut di Kelas Anak. Inheritance menghilangkan redundansi penulisan kode program dengan membuat Kelas dengan sifat dan fungsi yang mirip sebagai extend (Kelas Anak) dari Kelas lainnya.
- Polymorphism berasal dari kata “POLY” dan “MORPH” yang berarti banyak bentuk. Polymorphism adalah kemampuan sebuah objek untuk memiliki banyak bentuk. Polymorphism dapat dilakukan karena adanya Inheritance, dimana Kelas Anak dapat dianggap sebagai Kelas Induk. Dengan Polymorphism, beberapa objek anak dapat melakukan perilaku yang berbeda walaupun menjalankan fungsi/operasi yang sama. Misalkan, ada Kelas Induk “Tanaman” dan Kelas Anak “Mawar” dan “Anggrek", maka kita dapat menganggap bahwa “Mawar" adalah “Tanaman”, dan “Anggrek” adalah “Tanaman". Namun hal ini tidak berlaku sebaliknya, karena “Tanaman" tidak selalu “Mawar”, melainkan bisa juga “Anggrek". Misalkan "Mawar" dan "Anggrek" adalah subclass dari Kelas "Tanaman" yang sama-sama memiliki fungsi/operasi "berbunga". Ketika fungsi "berbunga" dipanggil oleh masing-masing Objek Tanaman, maka "Mawar" akan menghasilkan bunga yang berbeda dengan "Anggrek".
- Konstruktor mudah dikenali di sebuah Kelas karena memiliki nama yang sama dengan nama Kelas, dan tidak memiliki tipe kembalian (tidak mengembalikan nilai). Konstruktor berguna untuk mendefinisikan nilai awal sebuah Objek ketika pertamakali diinstansiasi/dilahirkan. Konstruktor adalah sebuah method yang dipanggil secara otomatis ketika sebuah objek diinstansiasi/dilahirkan.
Misalkan, ketika kita menginstansiasi kelas Tanaman dengan kode program berikut ini :
Tanaman p = new Tanaman();
Maka konstruktor Tanaman() akan dipanggil (dijalankan) secara otomatis.