OBJECT ORIENTED PROGRAMMING
Day 1 : D Konsep Pemrograman Berorientasi Object
TUJUAN Memberikan b k latar l b l k belakang serta pemahaman h tentang konsep pemrograman berorientasi obyek dan perbandingannya dengan pemrograman prosedural. | Mengenalkan lingkungan Java |
TOPIK Pemrograman prosedural d l vs pemrograman berorientasi obyek | Mengorganisasi M i i program menjadi j di e6lement 6l t yang disebut sebagai class, dan bagaimana class ini digunakan untuk membuat obyek. obyek | Struktur class: tingkah laku (behavior) dan atribut (attributes). | Konsep OOP | Pengenalan Java | Cara kompile dan menjalankan aplikasi Java |
BAHASA PROSEDURAL Serangkaian S k i ttugas di diselesaikan l ik d dalam l b bentuk t k fungsi atau prosedur. | Cara pandang Æ program adalah suatu urutan instruksi. | Programer g harus me-break down suatu p problem menjadi sub problem yang lebih simple. | Fungsi dan prosedur menjadi fokus utama. | Fungsi dan d prosedur d d digunakan k untuk k memanipulasi data. | Data bersifat pasif. pasif |
PEMROGRAMAN BERORIENTASI OBYEK Fungsi dan d data d b k menjadi bukan d dua d hal h l yang terpisah. | Fungsi F i dan d data d t menjadi j di satu t kesatuan k t yang disebut sebagai obyek aktif. | Cara pandang Æ program adalah serangkaian obyek yang bekerjasama untuk menyelesaikan suatu problem. |
PROCEDURAL VS OOP |
Focusing on the h way a computer handles tasks
|
Focusing on the h task k you are using the computer for
APAKAH OBYEK? Semua benda b d yang ada d d di d dunia nyata d dapat dianggap sebagai obyek. | Contoh C t h : rumah, h mobil, bil sepeda d motor, t gelas, l komputer, meja dll. |
KARAKTERISTIK OBYEK Setiap obyek b k memiliki l k atribut b sebagai b status (state). ( ) | Setiap obyek memiliki tingkah laku (behavior) | Contoh: obyek sepeda y Memiliki atribut (state) Æ: pedal, roda, jeruji, warna, jumlah j l h roda. d y Memiliki tingkah laku (behavior) Æ : kecepatan a menaik kecepatanya menaik, kecepatann kecepatannya a menurun menurun, perpindahan gigi sepeda. |
KARAKTERISTIK OBYEK Penggambaran b pemrograman b berorientasi obyek b k= penggambaran pada dunia nyata. | Pada P d pemrograman b berorientasi i t i obyek: b k y State disimpan pada Æ variabel y Tingkah Ti k h laku l k disimpan di i pada d Æ method h d |
APAKAH CLASS? Definisi D fi i i class: l merupakan k ttemplate l t untuk t k membuat b t obyek. | Definisi class: merupakan prototipe / blue prints yang mendefinisikan variabel – variabel dan method – method secara umum. | Obyek merupakan hasil instansiasi dari suatu kelas. | Proses pembentukan obyek dari suatu class disebut de ga instantiation. dengan instantiation | Obyek disebut juga instances. |
ATTRIBUTES Definisi f atribut b : adalah d l h data d yang membedakan b d k antara obyek satu dengan yang lain. | Contoh: C t h V VolcanoRobot l R b t Æ A volcanic l i exploration l ti vehicle, mempunyai atribut sebagai berikut: y Status Æ exploring, exploring moving moving, returning home y Speed Æ in miles per hour y Temperature, Temperature in Fahrenheit degrees | Dalam class atribut disebut sebagai variabel |
ATTRIBUTES IInstance t variable: i bl adalah d l h atribut t ib t untuk t k tiap ti obyek b k dari class yang sama. | Tiap obyek mempunyai dan menyimpan nilai atributnya sendiri. | Jadi tiap p obyek y dari class yyang g sama boleh mempunyai nilai yang sama atau beda. |
Class l variable: bl adalah d l h atribut b untuk k semua obyek b k yang dibuat dari class yang sama. | Semua obyek mempunyai nilai atribut yang sama. sama | Jadi semua obyek dari class yang sama mempunyai y satu nilai yyang g value nya y sama. hanya |
BEHAVIOR Behavior B h i / tingkah ti k h laku l k adalah d l hh hall – hal h l yang bi bisa dilakukan oleh obyek dari suatu class. | Behavior dapat p digunakan g untuk mengubah g nilai atribut suatu obyek, menerima informasi dari obyek lain, dan mengirim informasi ke obyek lain untuk melakukan suatu task. | Contoh: VolcanoRobot y Check current temperature y Begin i a survey y Report its current location | Dalam class class, behavior disebut juga sebagai methods. |
BEHAVIOR Methods: h d adalah d l h serangkaian k statements dalam d l suatu class yang menghandle suatu task tertentu. | Cara C obyek b k berkomunikasi b k ik i dengan d obyek b k llain i adalah dengan menggunakan method. |
CONTOH: CLASS, OBJECT, ATTRIBUTTES, DAN BEHAVIOR nama class instance variable
methods
KONSEP DASAR OOP Enkapsulasi k l (Encapsulation) ( l ) | Abstraksi Data (Data Abstraction) | Penurunan (Inheritance) | Polimorfisme (Polymorphism) |
ENKAPSULASI (PEMBUNGKUSAN) Variabel b ld dan method h d yang d dipunyai suatu obyek, b k bisa ditentukan hak aksesnya. | Definisi D fi i i enkapsulasi: k l i P Pembungkusan b k variabel i b ld dan method dalam sebuah obyek yang terlindungi. | Definisi enkapsulasi: menyembunyikan cara kerja dan sistem. |
ENKAPSULASI Contoh: h jam tangan y Penting sekali untuk mengetahui waktu. y Cara jam mencatat waktu dengan baik antara jam bertenaga baterai atau bertenaga gerak tidaklah penting kita ketahui. ketahui | Dalam OOP, konsep enkapsulasi sebenarnya merupakan perluasan dari struktur dalam bahasa C. |
ABSTRAKSI DATA Abstraksi b k data d adalah d l h mengabstrakkan b kk atau menyamarkan data-data yang ada. | Contoh C t h : jjam ttangan y Orang tidak perlu tahu bagaimana cara jam mengatur dan merubah detik kemenit, kemenit atau menit ke jam. y Orang tidak perlu tahu siapa yang bertanggung jawab menggerakkan jarum jam. |
PEWARISAN (INHERITANCE) Definisi f ((class): l ) merupakan k pewarisan atribut b dan d method pada sebuah class. | Definisi D fi i i ((obyek): b k) k kemampuan obyek b k untuk t k mewarisi ciri-ciri obyek lainnya. | Class yang mewarisi Æ superclass | Class yang diwarisi Æ subclass | Subclass S b l bisa bi berlaku b l k sebagai b i superclass l b bagii class l lainya. |
PEWARISAN (INHERITANCE) Contoh C t h : tterdapat d t class l sepeda d d dan sepeda d gunung. y Sepeda Æ superclass y Sepeda gunung Æ subclass y Sepeda gunung memiliki variabel dan method yang dimiliki oleh sepeda. | Prinsip : Persamaan-persamaan yang dimiliki oleh beberapa kelas dapat digabungkan dalam sebuah class l iinduk d k sehingga hi setiap i kelas k l yang diturunkannya memuat hal-hal yang spesifik untuk kelas yang bersangkutan.
PEWARISAN (INHERITANCE) Sepeda
Sepeda Gunung
Sepeda Balap
Sepeda Motor
PEWARISAN (INHERITANCE) - KEUNTUNGAN Subclass b l menyediakan d k state/behaviour /b h 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 state secara umum. |
SINGLE DAN MULTIPLE INHERITANCE C Æ multiple l l inheritance h | Suatu class diperbolehkan untuk mempunyai lebih d i satu dari t superclass. l | Variabel dan method yang diwariskan merupakan kombinasi dari superclass-nya. superclass nya |
Java Æ single J i l iinheritance h it | Suatu class hanya boleh mempunyai satu superclass. superclass |
MULTILEVEL INHERITANCE |
Suatu subclass b l b bisa menjadi d superclass l b bagi class l yang lain.
POLIMORFISME Definisi: f satu nama d dapat d digunakan k untuk k banyak b k tujuan yang berbeda namun berhubungan satu sama lain. lain | Tujuan: memungkinkan kita memberikan nama yang sama bagi segolongan aksi atau tugas yang mirip. | Contoh: luas bidang | Polimorfisme Æ method overloading |
TEKNOLOGI JAVA2PLATFORM Enterprise Edition(J2EE) d ( ) | Standard Edition (J2SE) | Micro Edition (J2ME) |
PERBANDINGAN JAVA DAN BAHASA LAIN
WHAT IS THE JAVA TECHNOLOGY? A programming language l | A development environment | An application environment | A deployment environment |
A PROGRAMMING LANGUAGE |
Sintak k bahasa b h pemrograman java mirip dengan d bahasa C++
A DEVELOPMENT ENVIRONMENT |
Teknologi k l java menyediakan: d k kompiler, k l interpreter, documentation generator, class file packaging.
AN APPLICATION ENVIRONMENT |
Merupakan k standalone d l program yang tidak d k memerlukan web browser untuk mengeksekusi program (applet). (applet)
A DEPLOYMENT ENVIRONMENT |
Terdapat d 2d deployment l environment utama: y JRE (Java Runtime Environment) yang menyediakan di k class-class l l yang ttersimpan i d dalam l package-package, komponen GUI class, dan Collection API. API y Web browser Æ banyak web browser komersial yyang g menyediakan y lingkungan g g J Java Technology gy interpreter dan runtime.
TUJUAN UTAMA JAVA TECHNOLOGY (1) Menyediakan M di k b bahasa h yang mudah d h di digunakan k - Menghindari pitfall yang sering terjadi di bahasa pemrograman p g lain - Berorientasi object - Memudahkan pengkodean efisien dan jelas | Menyediakan M di k li lingkungan k iinterpreter untuk k: - Meningkatkan kecepatan pengembangan program - Protabilitas kode | Multithreading |
TUJUAN UTAMA JAVA TECHNOLOGY (2) Pemanggilan l class l secara d dinamis | Mendukung adanya perubahan program secara di dinamis i selama l runtime ti d dengan melakukan l k k pemanggilan class-class dari sumber yang berbeda. | Menigkatkan sekuritas (keamanan) |
FITUR JAVA TECHNOLOGY Java Virtuall Machine h ((JVM)) | Garbage Collection | Sekuritas kode |
JAVA VIRTUAL MACHINE (JVM) Menyediakan d k spesifikasi f k hardware h d platform l f | Membaca byte code yang sudah terkompilasi yang mendukung d k multiplatform lti l tf | Diimplementasikan sebagai software atau hardware | Diimplementasikan Dii l ik di J Java technology h l tooll atau web browser. |
GARBAGE COLLECTION Mengecek k dan d membersihkan b hk memory yang tidak d k lagi terpakai | Dilakukan Dil k k otomatis t ti | Berjalan sesuai dengan implementasi JVM |
SEKURITAS KODE
JAVA RUNTIME ENVIRONMENT |
Menangani 3 tugas utama, yaitu : - Melakukan pemanggilan kode - Memverifikasi kode - Mengeksekusi kode
OPERASI DARI JRE
CON ONTOH O SEDERHANA N : Kelas TestGreeting
Kelas Greeting
CONTOH COMPILE ERROR
CONTOH RUNTIME ERROR