KONSEP PEMROGRAMAN BERORIENTASI OBJECT Imam Fahrur Rozi Tujuan Memberikan latar belakang serta pemahaman tentang konsep pemrograman berorientasi obyek dan perbandingannya dengan pemrograman prosedural Topik Pemrograman prosedural vs pemrograman berorientasi obyek Mengorganisasi program menjadi element yang disebut sebagai class, dan bagaimana class ini ini digunakan untuk membuat obyek. Struktur class: tingkah laku (behavior) dan atribut (attributes). Konsep OOP Cara kompile dan menjalankan aplikasi Java Bahasa Prosedural Serangkaian tugas dilakukan dalam bentuk fungsi atau prosedur CARA PANDANG Program adalah suatu urutan instruksi atau fungsi Programmer harusmembreakdown suatproblem menjadi subproblem yang lebih simpel Fungsi dan Prosedur menjadi fokus utama Fungsi digunakan utk memanipulasi data Data bersifat pasif dan terpisah dari Fungsi OOP CARA PANDANG program adalah serngkaian obyek yang bekerjasama atau berinteraksi untuk menyelesaikan suatu problem Data dan Fungsi menjadi satu kesatuan, tidak terpisah Data danfungsimenjadisatukesatuan OBJEK yang disebut sbg objek aktif Apakah OBYEK? Semuabendanyatayang adadidunianyata bisa disebut sebagai objek Contoh: sumah, mobil, sepedamotor dsb 1
Karakteristik OBYEK? Setiap objek memiliki atribut/data/karakter/status/state/properti Setiap objek memiliki tingkah laku/behaviour/fungsi/method Contoh objek SEPEDA Atribut: Roda, pedal, jeruji Memiliki behaviour: pindah gerigi, menaikkan kecepatan, mengerem Karakteristik OBYEK? Penggambaran OOP = Penggambaran pada dunia nyata State disimpan pada Atribut Behaviour atau tingkah laku disimpan pada Method Apakah Class? Definisi Class : merupakan template untuk membuat objek DefinisiClass : merupakan protototipe / blueprints yang mendefinisikan variabel dan method secara umum Obyek merupakan hasil instansiasi atau realisasi dari Class Proses pembentukan objek dari Class disebut INSTANTIATION Obyek jg disebut INSTANCES (Hasil instans dari suatu Class) ATRIBUT Data yang membedakan antara objek satu dengan objek yang lain Contoh: Pegawai memiliki atribut NIP : 198406102008121004, 198406102008121005 Nama: imam, siapa Alamat: perum poltek, mana gitu Gaji: 1000, 1100 Atribut bisa juga disebut: variabel ATRIBUT Instance variable: adalahatribut untuktiapobyekdariclass yang sama. Tiap obyek mempunyai dan menyimpan nilai atributnya sendiri. Jadi tiap obyek dari class yang sama boleh mempunyai nilai yang samaatau beda. Class variable: adalahatribut untuksemuaobyekyang dibuatdariclass yang sama. Semuaobyekmempunyainilaiatribut yang sama. Jadi semua obyek dari class yang sama mempunyai hanya satu nilai yang value nya sama. ATRIBUT Instance variable: adalahatribut untuktiapobyekdariclass yang sama. Tiap obyek mempunyai dan menyimpan nilai atributnya sendiri. Jadi tiap obyek dari class yang sama boleh mempunyai nilai yang samaatau beda. Class variable: adalahatribut untuksemuaobyekyang dibuatdariclass yang sama. Semuaobyekmempunyainilaiatribut yang sama. Jadi semua obyek dari class yang sama mempunyai hanya satu nilai yang value nya sama. 2
ILUSTRASI Atribut instansiasi vs Atribut Class Atributinstansiasi Atributclass Mahasiswa +nim +nama +alamat +ipk Mahasiswa: mhsb +nim: 022 +nama: kamu +alamat: malang +ipk: 3.5 Mahasiswa:mhsA +nim: 021 +nama: saya +alamat: malang +ipk: 3 Mahasiswa: mhsc +nim: 023 +nama: dia +alamat: surabaya +ipk: 3.3 Behavior / tingkahlakuadalahhal halyang bisa dilakukanolehobyekdarisuatu class. Behavior dapat digunakan untuk mengubah nilai atribut suatu obyek, menerima informasi dari obyeklain, danmengirim informasikeobyeklain untukmelakukan suatutask. Contoh: VolcanoRobot Check current temperature Begin a survey Report its current location Dalam class, behavior disebut juga sebagai methods. Methods: adalah serangkaian statements dalamsuatuclass yang menghandle suatutask tertentu. Cara obyekberkomunikasi denganobyeklain adalah dengan menggunakan method. CONTOH CLASS, OBJEK, ATRIBUT, CONTOH CLASS, OBJEK, ATRIBUT, KONSEP DASAR OOP Enkapsulasi(Encapsulation) Penurunan(Inheritance) Polimorfisme(Polymorphism) 3
ENKAPSULASI Definisi enkapsulasi: : Pembungkusan variabel dandanmethod dalamsebuahobyekyang terlindungi serta menyediakan interface untuk untukmengaksesvariabeltersebut. Variabel dan method yang dipunyai suatu obyek, bisa ditentukan hak aksesnya. CONTOH ENKAPSULASI Contoh: jam tangan Memiliki atribut: batrei, bahan dsb Memiliki fungsi/method: set jam, lihat jam dsb Dalam OOP, konsep enkapsulasi sebenarnya merupakan perluasan dari struktur dalam bahasa C Information Hiding : penyembunyian informasi(atribut+method) dari luar class Private, public, default, protected PEWARISAN Definisi: merupakan pewarisan atribut dan method darisebuahclass keclass lainnya. Class yang mewariskan superclass Class yang mewarisi subclass Subclass bisa berlaku sebagai superclass bagi class lainya multilevel inheritance PEWARISAN Contoh : terdapat class sepeda dan sepeda gunung. Sepeda superclass Sepeda gunung subclass Sepedagunungmemilikivariabeldanmethod yang dimilikiolehsepeda. Prinsip: Persamaan persamaan yang dimiliki oleh beberapa kelas dapat digabungkan dalam sebuahclass induksehinggasetiapkelasyang diturunkannya memuat hal hal yang spesifik untuk kelas yang bersangkutan PEWARISAN KEUNTUNGAN PEWARISAN Subclass menyediakan state/ behaviour yang spesifik yang membedakan dengan superclass memungkinkan programmer untuk menggunakan ulang source code dari superclass yang telah ada. Programmer dapat mendefinisikan superclass khusus yang bersifat generik, yang disebut abstract class, untuk mendefinisikan class dengan tingkah laku dan dan state secara umum 4
SINGLE VS MULTIPLE INHERIT C multiple inheritance Suatu class diperbolehkan untuk mempunyai lebihdarisatusuperclass. Variabel dan method yang diwariskan merupakan kombinasi dari superclass superclasnya. Java single inheritance Suatu class hanya boleh mempunyai satu superclass MULTILEVEL INHERITANCE Suatu subclass bisa menjadi superclass bagi class yang lain POLIMORFISME Definisi: Kemampuan suatu obyek untuk mempunyai lebih dari satu bentuk TEKNOLOGI JAVA2 PLATFORM Enterprise Edition(J2EE) Standard Edition (J2SE) Micro Edition (J2ME) JAVA RUNTIME ENVIRONMENT JRE JRE (Java Runtime Environment) yang menyediakan class class yang tersimpan dalam package package, package, komponen GUI class, class, dan Collection API 5
Java Virtual Machine JALANNYA PROGRAM JAVA COMPILE DAN RUNNING JAVA COMPILE TIME ERROR RUNTIME ERROR JRE 6
JDK vsjre JDK = Java Development Kit Untuk mengembangkan aplikasi java (untuk membuatprogram java) meng compile program javadari.java menjadi.class JRE = Java Runtime Environment MenyediakanJVM Untuk menjalankan/ runnging program java dari.class 7