Pemrograman Berorientasi Objek

Slides:



Advertisements
Presentasi serupa
Menggambarkan Data: Tabel Frekuensi, Distribusi Frekuensi, dan Presentasi Grafis Chapter 2.
Advertisements

INTRO (TO BPOS). What is BPOS? Apakah BPOS itu? •BPOS = (Microsoft) Business Productivity Online Suite (Service) •adalah sebuah layanan online Microsoft,
Dasar dasar GUI programming di Java
MS. POWER POINT 2007 Kelas XII Semester 2
Array.
+ Pemrograman Javascript Teknik Informatika Universitas Bunda Mulia Jakarta Chandra Hermawan H., M.Kom., MM.
Pengujian Hipotesis untuk Satu dan Dua Varians Populasi
I1B-Pemodelan Sistem Informasi PSI3 - 1 Fakultas Teknologi Informasi - Universitas Budi Luhur Ganjil 2005/2006 Class Diagram Membantu dalam visualisasi.
Kontrol Data Set.
Algoritma & Pemrograman #10
Mata Kuliah : ALGORITMA dan STRUKTUR DATA 1.
PEMOGRAMAN BERBASIS JARINGAN
QUESTION- RESPONSE QUESTION- RESPONSE. Adaptif Hal.: 2 Isi dengan Judul Halaman Terkait Judul Halaman Pada bagian question-response, pertanyaan-pertanyaan.
Modeling Data in the Organization
Hypertext & Hypermedia
Program Keahlian I – SI By Antonius Rachmat C, S.Kom
File Handling.
Pemrograman Visual. Pernyataan IF…THEN…ELSE Pernyataan ini hanya memeriksa apakah suatu blok kode program dapat dieksekusi atau tidak. Jika kondisi pernyataan.
1.1 VISUAL STUDIO 2008 / VISUAL BASIC.NET By Wan hendra M
Slide 3-1 Elmasri and Navathe, Fundamentals of Database Systems, Fourth Edition Revised by IB & SAM, Fasilkom UI, 2005 Exercises Apa saja komponen utama.
Pemrograman Dasar Warsun Najib
Introduction to The Design & Analysis of Algorithms
Ilmu Komputer, FMIPA UGM
PROSES PADA WINDOWS Pratikum SO. Introduksi Proses 1.Program yang sedang dalam keadaan dieksekusi. 2.Unit kerja terkecil yang secara individu memiliki.
Review Operasi Matriks
Internal dan Eksternal Sorting
Pengantar/pengenalan (Introduction)
Interface Nur Hayatin, S.ST Jurusan Teknik Informatika Universitas Muhammadiyah Malang Sem Genap 2010.
Oracle Developer/2000. Developer/2000 Products FormsReportsGraphics.
Functions (Fungsi) Segaf, SE.MSc. Definition “suatu hubungan dimana setiap elemen dari wilayah saling berhubungan dengan satu dan hanya satu elemen dari.
Bilqis1 Pertemuan bilqis2 Sequences and Summations Deret (urutan) dan Penjumlahan.
JAVA CLASS Bahasa Pemrogramam BAHASA PEMROGRAMAN PERTEMUAN #9.
Implementing an REA Model in a Relational Database
METODE SAMPLING by Achmad Prasetyo, S.Si., M.M..
MEMORY Bhakti Yudho Suprapto,MT. berfungsi untuk memuat program dan juga sebagai tempat untuk menampung hasil proses bersifat volatile yang berarti bahwa.
3 nd Meeting Chemical Analysis Steps and issues STEPS IN CHEMICAL ANALYSIS 1. Sampling 2. Preparation 3. Testing/Measurement 4. Data analysis 2. Error.
Array.
Praktikum 9 Pemrograman Berbasis Obyek
POLIMORFISME Imam Fahrur Rozi 01.
Array
Function, Procedure, Unit
BENTUK ING VERB + ING. Bentuk ING juga biasa disebut dengan ING form Meskipun pembentukannya sangat se- derhana tetapi penggunaannya mem- punyai aturan.
Slide 1 QUIS Langkah pertama caranya Buat di slide pertama judul Slide kedua soal Slide ketiga waktu habis Slide keempat jawaban yang benar Slide kelima.
LOGO Manajemen Data Berdasarkan Komputer dengan Sistem Database.
Linked List dan Double Linked List
Sprite Setiap objek dalam game yang memiliki gambar dan karakteristik.
Definisi VLAN Pemisahan jaringan secara logis yang dilakukan pada switch Pada tradisional switch, dalam satu switch menunjukkan satu segmentasi LAN.
Aplikasi Manipulasi Data
1 System Behaviour (System Sequence Diagram & Contract) STMIK STIKOM BALI.
Operator dan Assignment Pertemuan 3 Pemrograman Berbasis Obyek Oleh Tita Karlita.
1. 2 Work is defined to be the product of the magnitude of the displacement times the component of the force parallel to the displacement W = F ║ d F.
Via Octaria Malau Transfer (Internal Transfers) Transfer (Transfers Internal) Select the account from which funds are to be transferred FROM and then select.
Lazarus? Lazarus is a free cross-platform visual integrated development environment (IDE) for rapid application development (RAD) using the Free Pascal.
Double Linked List. © 2005 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved. Double Linked List Sama seperti single linked list, double.
SISTEM TERDISTRIBUSI (SILABUS dan Introduction to Distributed Systems)
Red -BlackTrees Evaliata Br Sembiring.
Web Teknologi I (MKB511C) Minggu 12 Page 1 MINGGU 12 Web Teknologi I (MKB511C) Pokok Bahasan: – Text processing perl-compatible regular expression/PCRE.
Person 19 || Marty Rori 1. Apa yang Buruk Tentang Menggunakan? Vairables global? 2 tidak aman!  Jika dua atau lebih programmer bekerja sama dalam program,
Made by: Febri, Andrew, Erina, Leon, Luvin, Jordy
Lecture 2 Introduction to C# - Object Oriented Sandy Ardianto & Erick Pranata © Sekolah Tinggi Teknik Surabaya 1.
Overriding, Overloading, Polymorphism
Inheritance Ery Setiyawan Jullev A.
POLIMORFISM Ery Setiyawan Jullev A.
Overriding, Overloading, Polymorphism
POLIMORFISME 2 Imam Fahrur Rozi 01.
Pemrograman Berorientasi Obyek Oleh Tita Karlita
Pertemuan : Object Oriented Programming
Polymorphism (bag. 2).
OOP Java 06 Polymorphism.
@kovazzevic | SMKN 24 Jakarta
Transcript presentasi:

Pemrograman Berorientasi Objek Bab 4 – Subtype Polymorphism / Polymorphism / Polimorfisme

Polymorphism Is the ability to create a variable, a function, or an object that has more than one form. The word derives from the Greek "πολυμορφισμός" meaning "having multiple forms".

Purpose The purpose of polymorphism is to implement a style of programming called message-passing in the literature, in which objects of various types define a common interface of operations for users. In strongly typed languages, polymorphism usually means that type A somehow derives from type B, or type C implements an interface that represents type B. In weakly typed languages types are implicitly polymorphic.

Usage The primary usage of polymorphism is the ability of objects belonging to different types to respond to method, field, or property calls of the same name, each one according to an appropriate type-specific behavior. The programmer (and the program) does not have to know the exact type of the object in advance, and so the exact behavior is determined at run-time (this is called late binding or dynamic binding)

How? Inheritance + Overrriding Sample public class Animal {} public class Cat extends Animal {} public class Dog extends Animal {} Animal catty = new Cat(); // valid, Cat is Animal Animal doggy = new Dog(); // valid, Cat is Animal Cat pussy = new Animal(); // invalid, Animal not only Cat

Polymorphism Thingy Virtual Method Invocation (VMI) Polymorphic Arguments Operator instanceof Object Casting Homogeneous & Heterogeneous Collection

Virtual Method Invocation Virtual method invocation merupakan suatu hal yang sangat penting dalam konsep polimorfisme. Syarat terjadinya VMI adalah sebelumnya sudah terjadi polymorphism. Pada saat obyek yang sudah dibuat tersebut memanggil overridden method pada parent class, kompiler Java akan melakukan invocation (pemanggilan) terhadap overriding method pada subclass, dimana yang seharusnya dipanggil adalah overridden.

VMI Sample public class Animal { private String name; public Animal(String name) { this.setName(name); } public String talk() { return “Animals can't talk (except in cartoons)"; } public void setName(String name) { this.name = name; } public String getName() { return name; } } public class Cat extends Animal { public Cat(String name) { super(name); } public String talk() { return "Meow!"; } } public class Dog extends Animal { public Dog(String name) { super(name); } public String talk() { return "Woof! Woof!"; } }

VMI Sample Animal catty = new Cat(“Puss Puss”); S.O.P(catty.talk()); Animal doggy = new Dog(“Guk Gux”); S.O.P(doggy.talk());

What’s Happen? Yang terjadi pada contoh: Obyek catty & doggy mempunyai behavior yang sesuai dengan runtime type bukan compile type. Ketika compile time e adalah Animal. Ketika runtime e adalah Cat and Dog. Jadi : catty & doggy mengakses field milik Animal, tetapi catty mengakses method milik Cat, doggy mengakses method milik Dog Ingat catty & doggy tipe datanya Animal

What’s Happen? (Cont`) Bagaimana dengan konstruktor yang dijalankan? Pada pembentukan Animal catty = new Cat(); Pertama kali akan menjalankan konstruktor Cat, ketika ketemu super() maka akan menjalankan konstruktor Animal (superclass), setelah semua statement dieksekusi baru kemudian menjalankan konstruktor Cat (subclass).

Polymorphic Arguments Polymorphic arguments adalah tipe data suatu argumen pada suatu method yang bisa menerima suatu nilai yang bertipe subclass-nya. Sample: public class PrintAnimal { public void print(Animal a) { S.O.P(a.getName() + " says: " + a.talk()); } p.s.v main(String[] args) { Cat catty = new Cat(“Puss Puss”); Dog doggy = new Dog(“Guk Gux”); PrintAnimal pa = new PrintAnimal(); pa.print(catty); pa.print(doggy); } }

Why PA? Mengefisienkan pembuatan program Misal Animal mempunyai banyak subclass. Maka kita harus mendefinisikan semua method yang menangani behavior dari masing-masing subclass. Dengan adanya polymorphic arguments kita cukup mendefinisikan satu method saja yang bisa digunakan untuk menangani behavior semua subclass.

No PA public class PrintAnimal { public void print(Cat a) { S.O.P(a.getName() + " says: " + a.talk()); } public void print(Dog a) { S.O.P(a.getName() + " says: " + a.talk()); } }

Operator instanceof Digunakan untuk mengetahui tipe data asal dari objek polimorphic Mengembalikan boolean T/F <var name> instanceof <class name> public class PrintAnimal { public void print(Animal a) { if (a instanceof Cat) { S.O.P(“A cat called ” + a.getName() + " says: " + a.talk()); } else if (a instanceof Dog) { S.O.P(“A dog called ” + a.getName() + " says: " + a.talk()); } } }

Object Casting Seringkali pemakaian instanceof diikuti dengan casting object dari tipe parameter ke tipe asal. Tanpa adanya casting objek, maka nilai yang akan kita pakai setelah proses instanceof masih bertipe parent class-nya, sehingga jika ia perlu dipakai maka ia harus di casting dulu ke tipe subclass-nya. Method yang merupakan milik subclass juga tidak bisa diakses tanpa adanya casting.

How? public void print(Animal a) { if (a instanceof Cat) { S.O.P(“A cat called ” + a.getName() + " says: " + a.talk()); Cat cat = (Cat) a; // call defined Cat’s method in Cat class } else if (a instanceof Dog) { S.O.P(“A dog called ” + a.getName() + " says: " + a.talk()); Dog dog = (Dog) a; // call defined Dog’s method in Dog class } }

Homogeneous & Heterogeneous Collection Dengan munculnya konsep Polymorphism, muncul pula sebuah konsep yang disebut Heterogeneous Collection dan Homogeneous Collection. Sebuah collection yang sebelumnya merupakan kumpulan dari objek sejenis, sekarang “dipisah” berdasarkan keberagaman tipe data isi kumpulannya.

Homogeneous Collection Homogeneous collection adalah kumpulan objek yang memiliki tipe data yang sama. Sample: Cat[] cats = new Cat[5]; cats[0] = new Cat(“missy”); cats[1] = new Cat(“sissy”); dst

Heterogeneous Collection Heterogeneous collection adalah kumpulan objek yang memiliki tipe data yang berbeda – beda. Sample: Animal[] animals = new Animal[5]; animals[0] = new Cat(“missy”); animals[1] = new Dog(“doggy”); dst