Konsep Objek Oriented
OBJEK OBJECT is a thing which has BEHAVIOR, IDENTITY, & STATE. OBJEK adalah suatu benda yang mempunyai TINGKAH LAKU, IDENTITAS, dan KEADAAN. Contoh: MANUSIA, PEKERJAAN, PEGAWAI, PROJEK, PEGAWAI TETAP, PEGAWAI PARUH WAKTU
OBJEK OBJEK mempunyai: TINGKAH LAKU untuk berinteraksi dengan objek yang lain dan menerima pesan serta bereaksi terhadap pesan tersebut. Contoh: MANUSIA melakukan PEKERJAAN PEGAWAI menyelesaikan PROJEK yang ditugaskan PEGAWAI TETAP menyelesaikan PEKERJAAN secara rutin PEGAWAI PARUH WAKTU mengerjakan PROJEK berdasarkan waktu
OBJEK OBJEK mempunyai: IDENTITAS yang membedakannya dengan objek yang lain. Contoh: PEGAWAI mempunyai NAMA PEGAWAI PEKERJAAN mempunyai NAMA PEKERJAAN PEGAWAI TETAP mempunyai GAJI BULANAN PEGAWAI PARUH WAKTU mempunyai UPAH PER JAM PROJEK mempunyai DEADLINE
OBJEK OBJEK mempunyai: KEADAAN yang mempengaruhi kondisi internalnya. Contoh: PEGAWAI mempunyai NAMA: I Putu Jawa PROJEK mempunyai NAMA: Pengembangan Sistem Informasi Pegawai, DEADLINE: 18 Oktober 2011 PEGAWAI TETAP mempunyai GAJI BULANAN: Rp. 3.000.000,PEGAWAI PARUH WAKTU mempunyai GAJI PER JAM: Rp. 150.000,-
OBJEK
OOP melihat benda di dunia nyata sebagai objek Reality: Model:
Model:
Person
Owns
Car
Store Create
Sales
Bill
Products Consists
OBJECT dan CLASS CLASS adalah suatu cetakan (template) untuk membuat beberapa OBJECT yang mempunyai karakteristik yang sama Contoh: CLASS PEGAWAI digunakan untuk mencetak suatu OBJECT PEGAWAI (misalnya dengan nama IPUTUJAWA atau IMADEBALI) CLASS PROJEK digunakan untuk membuat suatu OBJECT PROJEK (misalnya dengan nama SIMPEG atau SIMKEU)
OBJECT dan CLASS Employee
Nama CLASS
+name
Identitas (Identity) - Attribute
setName() getName()
Tingkah Laku (Behavior) - Method
Cetakan (template) untuk membuat OBJEK PEGAWAI (EMPLOYEE) dengan satu identitas (ATTRIBUTE) dan dua tingkah laku (METHOD)
OBJECT ORIENTED Object : Yacht Class : Yacht Yacht Drawing 1
Size= ? Color = ?
Instance of
Instance of
Size= “small” Color = “brown”
Size= “big” Color = “green”
OBJECT ORIENTED Karakteristik Konsep Objek Oriented mencakup: Encapsulation – Pembungkusan private attribute dan public method Inheritance – Penurunan sifat induk ke anak class (attribute & method) Overriding – Proses perubahan method yang ada di Class Induk Polymorphism – Perubahan menjadi objek yang berbeda Abstraction – Class yang bukan merupakan cetakan (template) Interfaces – Class yang terdiri dari abstract method saja Package – Pengelompokan class terkait
ENCAPSULATION public class Job
Public CLASS
private String name
Private Attribute
public void setName() public String getName()
Public Method
CLASS JOB yang bersifat PUBLIC (bisa diakses umum) dengan satu ATTRIBUTE yang bersifat PRIVATE (tidak bisa diakses umum) dan empat METHOD yang bersifat PUBLIC (bisa diakses umum)
ENCAPSULATION Keuntungan: - Attribute dalam satu kelas dapat dibuat read-only or writeonly. - Class mempunyai kontrol terhadap nilai yang disimpan di dalam attributenya. - Pengguna tidak tahu bagaimana class menyimpan nilai attributenya. Class dapat mengganti tipe data dari attributenya, dan pengguna tidak perlu untuk melakukan perubahan terhadap pemrograman yang telah selesai dilakukan.
INHERITANCE public class Project extends Job
Public Child Class
private Date deadline
Private Attribute
public void setName() public void setDeadline() public String getName() public Date getDeadline()
Public Method
CLASS PROJECT EXTENDS CLASS JOB yang artinya menurunkan sifat-sifat yang ada pada CLASS JOB. Salah satu sifat yang diturunkan adalah ATTRIBUTE NAME. CLASS PROJECT masih bisa mempunyai sifat sendiri seperti ATTRIBUTE DEADLINE dan metodenya.
INHERITANCE public class ProjectDetail extends Project
Public Child Class
public void setName() public void setDeadline() public String getName() public Date getDeadline()
Public Method
CLASS PROJECTDETAIL EXTENDS CLASS PROJECT di samping menurunkan sifat pada CLASS PROJECT juga menurunkan sifat pada CLASS JOB. Sifat yang diturunkan dari CLASS JOB adalah ATTRIBUTE NAME. Sifat yang diturunkan dari CLASS PROJECT adalah ATTRIBUTE DEADLINE.
OVERRIDING public class Project extends Job
Public Child Class
private Date deadline
Private Attribute
public void setName() public void setDeadline() public String getName() public Date getDeadline()
Public Method
CLASS PROJECT EXTENDS CLASS JOB artinya CLASS PROJECT dapat melakukan perubahan (overriding) terhadap sifat-sifat yang terdapat pada CLASS JOB. Contohnya: CLASS PROJECT dapat melakukan perubahan (overriding) nilai ATTRIBUTE NAME yang sudah diset di CLASS JOB.
POLYMORPHISM public class FullTimeEmployee extends Employee implements ProjectHandler
Public Child Class
private double monthlySalary
Private Attribute
Public void setName() Public String getName() public void setSalary() public double getSalary() Public void setJob() Public Job getJob()
Public Method
CLASS ANAK FULLTIMEEMPLOYEE mempunyai bentuk yang bermacam-macam. Bisa menjadi EMPLOYEE, bisa menjadi PROJECTHANDLER, bisa menjadi FULLTIMEEMPLOYEE, dan bisa menjadi OBJECT.
POLYMORPHISM public class FullTimeEmployee extends Employee implements ProjectHandler
Public Child Class
private double monthlySalary
Private Attribute
Public void setName() Public String getName() public void setMonthlySalary() public double getMonthlySalary() Public void setJob() Public Job getJob()
Public Method
CLASS ANAK FULLTIMEEMPLOYEE mengimplementasikan INTERFACE PROJECTHANDLER dan meng-EXTENDS CLASS EMPLOYEE.
INTERFACE public interface JobHandler
Public Interface
public void setJob() public Job getJob()
Public Method
INTERFACE JOBHANDLER yang bersifat PUBLIC (bisa diakses umum) dengan dua METHOD yang bersifat PUBLIC (bisa diakses umum). Interface tidak bisa dijadikan cetakan (template). Interface hanya berisikan metode yang bersifat ABSTRAK (tidak mempunyai tahapan perintah di dalamnya).
ABSTRACTION public abstract class Employee
Public Abstract Class
private String Name
Private Attribute
public void setName() public String getName() Public abstract void setSalary() Public abstract double getSalary()
Public Method
CLASS EMPLOYEE adalah CLASS ABSTRACT yang tidak dapat dijadikan template (cetakan). Beberapa metodenya bersifat abstract yang tidak mempunyai tahapan perintah di dalamnya dan hanya bisa mempunyai tahapan perintah di CLASS anaknya.
PACKAGE Package adalah paket yang menggabungkan beberapa CLASS menjadi satu kesatuan. Cara untuk memasukkan suatu CLASS ke dalam suatu PACKAGE adalah: - Dengan meletakkan file CLASS tersebut pada DIRECTORY yang sesuai dengan nama PACKAGE. Kalau nama PACKAGE merupakan suatu hirarki direktori, pastikan bahwa direktori yang digunakan untuk menyimpan CLASS tersebut sesuai dengan nama PACKAGE yang akan dibuat (Contoh: software.sim.simpeg.*). - Meletakkan nama PACKAGE di baris pertama file CLASS yang akan dimasukkan dalam PACKAGE.
MODIFIER Access Control Modifiers: - Dapat dilihat dalam satu PACKAGE (tidak perlu modifiers). - Dapat dilihat dari dalam CLASS saja (modifier: private) - Dapat dilihat oleh semua orang (modifier: public). - Dapat dilihat oleh PACKAGE dan semua CLASS anaknya (modifier: protected). Non Access Modifiers: - static – tidak mengubah atau menggunakan objek yang diciptakan CLASS yang bersangkutan - final – menyatakan bahwa ATTRIBUTE atau METHOD yang menggunakan modifiers ini tidak bisa diubah lagi.
Any Questions?