Pemrograman dengan Object Oriented Programming adalah pemrograman dimana setiap Object saling berinteraksi satu dengan yang lainnya.
Memang kalo kita membuat project yang ringan, ataupun sederhana, akan terasa sangat menyusahkan, akan tetapi jika sudah membuat project yang besar (kompleks), maka kita harus memakai konsep Object Oriented Programming.
Dalam konsep ini akan kita temukan sebuah class dan Object.
Class adalah suatu modul sekaligus tipe data.
Analoginya seperti cetakan kue, cetakan kue adalah classnya dan object adalah kuenya.
Setelah deklarasi class ada deklarasi field, field adalah sebuah variable yang menjadi atribut suatu class,
field memiliki access modifier yang dibedakan menjadi 3 yaitu :
- Public = dapat dikenali dimana saja
- Private = hanya dikenali di class itu saja
- Protected = dikenali di class itu saja dan class turunannya
Setelah access modifier variable terdapat lagi tipe data dari field tersebut.
Tipe data terdiri dari primitive type dan composite type :
Primitive type yaitu .. tipe tipe yang udah sering digunakan, contoh string, double, integer, dan lain lain
Composite type yaitu .. tipe tipe yang lebih komplek seperti array, collection, objek, dll
Sebagai contoh :
public class Student
{
private String name;
private String address;
private int age;
private double mathGrade;
private double englishGrade;
private double scienceGrade;
private double average;
//area penulisan kode selanjutnya
}
Konsep object oriented memiliki karakteristik utama yaitu :
- Enkapsulasi, sebuah prinsip yang digunakan ketika membangun struktur program secara keseluruhan yang mana setiap komponen dari program dibungkus, pembungkusan properti dan operasi dalam satu even. Secara simple dapat kita katakan bahwa kita menyembunyikan keruwetan kode-kode program dalam suatu object.
- Polimorphism, suatu kondisi dimana dua object atau lebih mempunyai antarmuka yang identik namun mempunyai perilaku berbeda.
- Inheritance (pewarisan), merupakan sarana untuk menghilangkan penulisan ulang terhadap kode yang dapat digunakan berulang kali yang didasarkan pada hubungan relasional hirarki.
Sebelum kita memasuki dalam bahasa pemrograman, sebaiknya ada beberapa hal yang kita selalu kita ingat dan kita pegang :
- Program yang akan kita buat adalah terdiri dari sekumpulan object yang saling berinteraksi/ saling mengirimkan pesan. Misalnya kita asumsikan program kita adalah sebuah mobil, dan bagian-bagian dari mobil tersebut adalah object-object (mesin, rangka mobil dan lain sebagainya)yang saling berhubungan dan menjadi satu kesatuan yang membangun mobil tersebut
- Berfikirlah object sebagai tipe “data buatan” (seperti struct, Enum). Namun tipe “data buatan” ini memiliki kelebihan yaitu dapat menyimpan informasi (sebagai property) dan juga dapat melakukan “aktivitas” (sebagai method/ fungsi)
- Setiap object memiliki “tipe” tersendiri. Tipe disini dimaksudkan agar kita dapat mengetahui “pesan” apa yang dapat kita kirimkan terhadap object tersebut. Atau dengan kata lain dengan mengetahui “tipe” suatu object kita dapat memanggil fungsi yang terdapat didalamnya ataupun informasi yang disimpan oleh object tersebut
Function
Function digunakan agar blok blok kode yang ada tersebut dapat dijalankan beberapa kali tanpa mengetik ulangnya kembali.
Objek adalah entitas yang berisi suatu data dan metode. Misalnya dari sebuah mobil A adalah satu objek, namun memiliki sejumlah bagian dan perilaku. Sebuah mobil mempunyai body, frame, roda, pintu dan lainnya. Ada satu objek yang terdiri dari berbagai benda. Sebuah mobil juga mempunyai metode. Anda dapat berkendara, membuka pintu dan lainnya.
Semua ini terenkapsulasi dalam satu objek. Sebuah mobil.
Vehicle Object
NumWheels
NumDoors
Color
Drive()
End Vehicle Object
Sebuah class merupakan template dari sebuah objek.
Object oriented programming terdiri atas 2 bagian yaitu : inheritance (pewarisan), polymorphism, encapsulation (penyatuan).
Inheritance
Vehicle Object
NumWheels
NumDoors
Color
Drive()
End Vehicle Object
Truck Object
Inherits Vehicle Object
BedLength
End Vehicle Object
Dalam kasus ini berarti objek truk mempunyai karakteristik yang sama dengan objek vehicle, punya roda pintu dan lainnya.
Polymorphism
Adalah suatu cara ketika kita melakukan pewarisan (inherits) lalu ingin mengubah fungsionalitas dari method object tersebut dan kita menimpanya, contoh
Truck Object
Inherits Vehicle Object
Drive()
BedLength
End Vehicle Object