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: Owns Model: Person Car Model: Sales Store Create Products Bill 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 +name setname() getname() Nama CLASS Identitas (Identity) - Attribute 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 Instance of Size= small Color = brown Size=? Color =? Instance of 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 private String name public void setname() public String getname() Public CLASS Private Attribute 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 private Date deadline public void setname() public void setdeadline() public String getname() public Date getdeadline() Public Child Class Private Attribute 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 private Date deadline public void setname() public void setdeadline() public String getname() public Date getdeadline() Public Child Class Private Attribute 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 private double monthlysalary Public void setname() Public String getname() public void setsalary() public double getsalary() Public void setjob() Public Job getjob() Public Child Class Private Attribute 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 private double monthlysalary Public void setname() Public String getname() public void setmonthlysalary() public double getmonthlysalary() Public void setjob() Public Job getjob() Public Child Class Private Attribute 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 private String Name public void setname() public String getname() Public abstract void setsalary() Public abstract double getsalary() Public Abstract Class Private Attribute 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?