OBJECT ORIENTED PROGRAMMING Arief Setyanto
OLD METHOD Problem Definition Functional Decomposition Pada paradigma lama sebuah masalah akan dipecahkan menjadi bagian bagian problem yang masing masing berisi definisi pekerjaan masalah diselesaikan langkah demi langkah Functional Decomposition Dekomposisi masalah seperti ini disebut dekomposisi fungsi
FD example Problem penghitungan IP di breakdown menjadi: masukan nomor mahasiswa ambil daftar nilai dari database ubah nilai huruf menjadi angka Kalikan angka dengan jumlah SKS st = jumlahkan total SKS nt = Jumlahkan total nilai angka kali SKS IPK = nt/st Ini adalah gambaran hasil dekomposisi fungsional proses penghitungan IPK
OLD METHOD Procedural Programming Main Program setiap pekerjaan akan menjadi fungsi semua fungsi akan dipanggil oleh program utama (main program) Main Program program utama, merupakan bagian program yang akan dieksekusi pertama dan menjadi pusat dari semua program
OLD METHOD WEAKNESS Everything in main Program Modification --- !!!!! Semua kendali program ada di program utama Modification --- !!!!! setiap modifikasi akan mempengaruhi semua bagian program, sangat berhati hati dengan program utama, perubahan disini sangat berbahaya bug selalu datang dari adanya perubahan
Procedural Programming EXAMPLE Pascal C
OBJECT ORIENTED What’s Object Apa yang dimiliki obyek An object is a software bundle of related variables and methods. Software objects are often used to model real-world objects you find in everyday life. kucing, mangga adalah obyek Apa yang dimiliki obyek state (keadaan) implementasinya menjadi properties, atau variabel milik obyek behaviour implementasinya akan menjadi method atau fungsi milik sebuah kelas
OBJECT Object adalah sesuatu yang memiliki 1 set tanggung jawab dan satu set keadaan (state) Tanggung jawab diimplementasikan menggunakan method/fungsi State diimplementasikan menggunakan properties/variabel variabel dan fungsi selanjutnya disebut sebagai member dari sebuah obyek
object variabel/state: nama : arief salary : $1 Method/behaviour: berjalan(); bernafas(); obyek manusia
Message Software objects interact and communicate with each other using messages.
CLASS CLASS DEFINITION A class is a blueprint or prototype that defines the variables and the methods common to all objects of a certain kind. In the real world, you often have many objects of the same kind
Class dan Instance
Class Constructor Fungsi yang akan dieksekusi pada saat sebuah instance di ciptakan Tiap kelas di Java harus memiliki konstruktor
Destructor Sering disebut finalizer Gunanya untuk menjamin pada saat obyek hilang dari memori semua bekas memorinya di bebaskan Dieksekusi secara otomatis saat obyek hilang dari memori
object implementation public class manusia { // instance variables - replace the example below with your own private int x; public char nama; private int umur; public manusia(char nm, int um) // initialise instance variables x = 0; nama = nm; umur = um; } public int sampleMethod(int y) // put your code here return x + y;
Instance An object of a particular class. In programs written in the Java(TM) programming language, an instance of a class is created using the new operator followed by the class name.
Change your mind Kesalahan umum pemrogram mantan procedural programming adalah : sudah menggunakan tool OOP tetapi cara berpikr dekomposisi masalah masih dilakukan secara procedural Cirinya adalah program dalam kelas kelasnya menjadi sangat panjang dan mengimplementasi langkah langkah penyelesaian masalah hasil dekomposisi fungsional Maka ubah cara berpikir anda ketika melakukan dekomposisi permasalahan
METHOD Remember function method output and parameter
PROPERTIES remember variabel just define in a class
ACCESS LABEL public protected private packages
ACCESS LABEL - detail Member dari sebuah obyek memiliki aturan pengaksesan, terdapat tiga level aturan akses yaitu: private – Hanya dapat diakses dari kelas bersangkutan protected- Hanya dapat diakses dari kelas bersangkutan, package dan turunannya public – Bisa diakses dari kelas bersangkutan, turunan, packages dan bukan ketiganya package - Bisa diakses dari kelas bersangkutan dan packages (JAVA aja)
INSTANCE instance example C++ JAVA
Object Oriented Programming Language Java etc
JAVA Why Java Once Code Run AnyWhere JVM Optimization
JAVA PACKAGED J2SE J2EE J2ME
TOOLS Java IDE Netbeans BlueJ untuk belajar OOP
PUSTAKA Alan Shaloway, James R. Trott, Design Paterns Explained, Addison-Wesley, 2005 Steven John Metsker, Design Patterns in Java, Addison-Wesley, 2006 Barbara Liskov, John Guttag, Program Development In Java, Addison-Wesley, 2006 Sun Microsystem, 2007