Konsep Pemrograman Berorientasi Obyek Maria Ulfah S Nurochman
Kompetensi Menjelaskan paradigma pemrograman berorientasi obyek Membedakan antara paradigma pemrograman berorientasi obyek dan pemrograman prosedural Memahami konsep class dan object Membuat program sederhana dengan Java 01/03/2011 2
Materi 1. Prosedural VS OOP 2. Object and behavior 3. Classes, objects, attributes, methods, Constructor 4. Enkapsulasi, Pewarisan, polimorfisme 5. Instalasi JDK (Java Development Kit) 6. Kompilasi dan run program Java 01/03/2011 3
Problem: Bagaimana menyiapkan makan malam? 01/03/2011 4
Prosedural b u a t h id a n g a n m a k a n m a la m b u a t n a s i g o re n g b u a t k e n ta n g g o re n g b u a t m in u m a n c o k la t p a n a s s e d ia k a n k e n ta n g g o re n g k e n ta n g 01/03/2011 5
Programmer mem-break down problem menjadi sub problem- sub problem yang lebih sederhana. Serangkaian tugas diselesaikan dalam bentuk fungsi atau prosedur. Fungsi dan prosedur menjadi fokus utama. Fungsi dan prosedur memanipulasi data. Data bersifat pasif. Program adalah suatu urutan instruksi. Penggunaan ulang fungsi dan prosedur yang sudah dibuat, harus mengkopi kode programnya 01/03/2011 6
Pemrograman Berorientasi Obyek satu hidangan m alam A nda Pelayan satu bungkus kentang goreng satu nasi goreng satu cangkir m inum an coklat panas Penggoreng Kentang Pembuat Nasi Goreng Mesin Minuman Panas 01/03/2011 7
Fokus utama pada obyek (entitas) dan interaksi yang terjadi antar obyek Fungsi dan data menjadi satu kesatuan yang disebut sebagai Object Program adalah serangkaian obyek yang berinteraksi untuk menyelesaikan suatu problem. 01/03/2011 8
Object Benda yang ada di dunia nyata dapat dianggap sebagai obyek. Contoh : rumah, mobil, sepeda, motor, gelas, komputer, meja dll. 01/03/2011 9
A Software Object A Bicycle modeled as a software object 01/03/2011 10
Karakteristik Obyek Setiap obyek memiliki atribut/fields yang memiliki nilai (values) yang menyatakan keadaan obyek (state). Setiap obyek memiliki tingkah laku (behavior) Contoh: obyek sepeda Atribut: jumlahgigi, currentgigi, currentkecep, currentirama, pedal, jeruji, warna, jumlah roda. Tingkah laku: ubahkecep, ubahirama, ubahgigi, direm. 01/03/2011 11
Class Merupakan template untuk membuat obyek. Merupakan prototype / blue print yang mendefinisikan variabel-variabel dan methodmethod secara umum. Obyek (instances) merupakan hasil instansiasi dari suatu kelas instantiation. Obyek-obyek yang dibuat dari class yang sama mempunyai atribut dan method yang sama, namun nilainya bisa saja berbeda 01/03/2011 12
CLASS Atribut dan method hanya dideklarasikan saja belum memiliki nilai OBYEK Atribut dan method diberikan nilai 01/03/2011 13
01/03/2011 14
Adalah data yang dimiliki obyek dan membedakan antara satu obyek dengan obyek yang lain. Dalam class, atribut disebut Variabel. Contoh: Atribut obyek manusia: nama, tinggi badan, berat badan, warna kulit, jenis rambut, dll 01/03/2011 15
Instance variable Atribut untuk tiap obyek dari class yang sama. Tiap obyek mempunyai dan menyimpan nilai atributnya sendiri. Tiap obyek dari class yang sama boleh mempunyai nilai yang sama atau beda. Class variable Atribut untuk semua obyek yang dibuat dari class yang sama. Semua obyek mempunyai nilai atribut yang sama. Semua obyek dari class yang sama mempunyai hanya satu nilai yang sama. 01/03/2011 16
Behavior Hal-hal yang bisa dilakukan oleh obyek. Digunakan untuk mengubah nilai atribut suatu obyek, menerima informasi dari obyek lain, dan mengirim informasi ke obyek lain untuk melakukan suatu tugas. Dalam class, tingkah laku didefinisikan sebagai methods. Contoh: Obyek manusia: jalan, lari, duduk, menyapa, makan, dll. 01/03/2011 17
Method Obyek berkomunikasi dengan obyek lain dengan mengirimkan message (pesan) Suatu perintah dalam class untuk merespon message, berisi serangkaian instruksi untuk melakukan tugas tertentu. Dapat memiliki/tidak parameter. Himpunan method mendefinisikan tingkah laku dinamis dari obyek. 01/03/2011 18
Konsep Dasar OOP Enkapsulasi (Encapsulation) Pewarisan (Inheritance) Polimorfisme (Polymorphism) 01/03/2011 19
Enkapsulasi Pembungkusan variabel dan method dalam definisi obyek yang terlindungi serta penyembunyian implementasi dan strukturnya dari pengguna obyek. Menyediakan interface (method) untuk mengakses variabel tersebut. Diimplementasikan dengan menentukan hak akses bagi variabel dan method. 01/03/2011 20
Contoh: jam tangan Penting sekali untuk mengetahui waktu. Cara jam mencatat waktu dengan baik antara jam bertenaga baterai atau bertenaga gerak tidaklah penting kita ketahui. Contoh: telur ayam Kuning telur sebagai data/variabel Putih telur sebagai method 01/03/2011 21
Pewarisan Pewarisan atribut dan method dari sebuah class ke class lainnya. Class yang mewarisi superclass Class yang diwarisi subclass Subclass bisa berlaku sebagai superclass bagi class lainnya multilevel inheritance. Setiap kelas yang diturunkan memuat hal-hal yang spesifik untuk kelas yang bersangkutan dan hal-hal yang umum bagi kelas yang diwariskan dari induknya 01/03/2011 22
Reusability Abstract class class generik Java termasuk Single Inheritance 01/03/2011 23
Sepeda Sepeda Gunung Sepeda Balap Sepeda Motor 01/03/2011 24
Polymorphism Kemampuan suatu obyek untuk merespon message yang sama pada method yang bersesuaian Kemampuan menentukan method yang sesuai ditentukan oleh obyek yang memanggil method tersebut 01/03/2011 25
Teknologi Java A programming language, sintaks mirip dengan C++ A development environment: Teknologi java menyediakan kompiler, interpreter, documentation generator, class file packaging. An application environment: merupakan standalone program, tidak memerlukan web browser untuk mengeksekusi program (applet). A deployment environment: terdapat 2 deployment environment utama: JRE (Java Runtime Environment) yang menyediakan classclass yang tersimpan dalam package-package, komponen GUI class, dan Collection API. Web browser banyak web browser komersial yang menyediakan lingkungan Java Technology interpreter dan runtime. 01/03/2011 26
Official Site : java.sun.com J2SE (Java 2 standard edition) - Desktop Application - Applet (Aplikasi Java di Browser) J2ME (Java 2 Micro Edition) - MIDlet Application/ Micro Devices App J2EE (Java 2 Enterprise Edition) - Web Application (JSP) - Servlet Application 01/03/2011 27
Java Editor Editor java : notepad, vi, emacs, dll IDE java : Netbeans IDE, JCreator, dll IDE licensed : Borland Jbuilder, Visual Age 01/03/2011 28
Program Hello class ClassName { public static void main(string args[]) { //isi program } } class Hello { public static void main(string args[]) { System.out.println( Hello Java World ); } } 01/03/2011 29
Kompilasi dan Running Kompilasi dengan javac javac Hello.java Running dengan java java Hello 01/03/2011 30
Proses kompilasi dan Running 01/03/2011 31