MINGGU 7 Java Programming (MKB614C)

Slides:



Advertisements
Presentasi serupa
Membuat class sendiri.
Advertisements

Other OOP Basic Viska Mutiawani, M.Sc. Konsep penting Method overloading Encapsulation this keyword final static.
Nur Hayatin, S.ST Jurusan Teknik Informatika Universitas Muhammadiyah Malang Sem Genap 2010.
POLIMORFISME Imam Fahrur Rozi 01.
Abstract Class & Interface
Pemrograman JAVA (TIB09)
Workshop SCS: Java Game Programming
Polymorphism Viska Mutiawani, M.Sc.
Overriding, Overloading, Polymorphism
INHERITANCE.
Inheritance Ery Setiyawan Jullev A.
Inheritance (Pewarisan)
POLIMORFISM Ery Setiyawan Jullev A.
Overriding, Overloading, Polymorphism
POLIMORFISME 2 Imam Fahrur Rozi 01.
Encapsulation, Inheritance, polymorphism, dan interface
MINGGU 5 Java Programming (MKB614C)
Variabel, Method & Constructor Oleh : Nur Hayatin, S.ST Teknik Informatika – UMM 2011.
INHERITANCE, POLYMORPHISM, DAN INTERFACE
Pewarisan, Polimorfisme, dan Interface
ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM
Pemrograman Berorientasi Obyek Oleh Tita Karlita
POLIMORPHISM Adharul Muttaqin Adharul M -
Pertemuan : Object Oriented Programming
OBJECT ORIENTED PROGRAMMING YANES HARDIANTO SUI Politeknik Manufaktur Astra 2011.
MINGGU 4 Java Programming (MKB614C)
Pemrograman Berorientasi Obyek dengan JAVA Interface
Diberikan pada Kuliah Sela Teknik Informatika - Universitas Muhammadiyah Malang Tahun 2011.
Desain Berorientasi object
Polymorphism (bag. 2).
OOP Java 06 Polymorphism.
Inheritance Matakuliah : T0984 / Algoritma dan Metode Object Oriented Programming II Pertemuan : 4 Tahun : 2008 Versi : 1/0.
Inheritance, polymorphism, dan interface
Class and Object Matakuliah : XXXX / Algoritma dan Metode Object Oriented Programming II Pertemuan : 2 Tahun : 2008 Versi : 1/0.
INHERITANCE (Oleh : Nur Hayatin, S.ST)
Algoritma &Pemrograman 1
Polymorphism Matakuliah : T0984 / Algoritma dan Metode Object Oriented Programming II Pertemuan : 5 Tahun : 2008 Versi : 1/0.
MATERI IV OOP (Object Oriented Programming) Chapter II.
Pertemuan 6 PEWARISAN AND POLYMORPHISM
Kelas A dapat memiliki referensi ke obyek dari kelas- kelas lain sebagai anggota. Kadang-kadang disebut sebagai hubungan “has-a”. Sebagai contoh, sebuah.
MINGGU 8 Java Programming (MKB614C)
FONDASI PEMROGRAMAN & STRUKTUR DATA #8
Access Modifier.
Inheritance dan Kata Kunci static
PBO Daniel Riano Kaparang, S.Kom., M.Cs
POLYMORPHISM (KEBANYAKRUPAAN)
Pertemuan 2 SINTAKS BAHASA, TIPE DATA, DAN OPERATOR
Pemograman Berorientasi Objek
Objek-Oriented Programming (OOP)
Encapsulation, Inheritance, Polymorphism
@kovazzevic | SMKN 24 Jakarta
POLYMORPHISM (KEBANYAKRUPAAN)
Pewarisan Disusun Oleh: Reza Budiawan Untuk:
MODIFIER JAVA.
Constructor overloading
Association, Composition dan Inheritance
MEMBUAT CLASS SENDIRI 2.
Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator
Tipe Data, Variabel, dan Operator
Pendahuluan PBO.
Karakteristik Pemrograman Berorientasi Objek
POLYMORPHISM.
INHERITANCE SUSSI.
Pemrograman Berorientasi Object
Pemrograman Berorientasi Object
Polimorphism Dosen Pengampu : Nur Iksan.
Pengenalan Pemrograman 1
FONDASI PEMROGRAMAN & STRUKTUR DATA #7
FONDASI PEMROGRAMAN & STRUKTUR DATA #8
Bahasa Pemrograman (Pemrograman Visual)
Transcript presentasi:

MINGGU 7 Java Programming (MKB614C) Pokok Bahasan: Inheritance & Polymorphism Tujuan Instruksional Khusus: Siswa memahami konsep inheretance & polymorphism di Java Java Programming (MKB614C) Minggu 7 Page 1

Java Programming (MKB614C) Agenda Inheritance, Superclass & subclass Keyword super Overriding method Overriding vs overloading Class Object (java.lang.Object) & method toString() Polymorphism Dynamic biding Casting object dan operator instanceof Method equals pada class Object (java.lang.Object) Class ArrayList (java.util.ArrayList) Visibility data & method Method preventing extending & overriding Java Programming (MKB614C) Minggu 7 Page 2

Java Programming (MKB614C) Inheritance Inheritence: kemampuan membuat suatu object dari object lain http://docs.oracle.com/javase/tutorial/java/concepts/inheritance.html Java Programming (MKB614C) Minggu 7 Page 3

Superclass & subclass Superclass: class yang memiliki karakteristik umum, superclass disebut juga class parrent atau class base. Subclass: class yang memiliki karakteristik lebih khusus, subclass disebut juga class child, class extended atau class dervied.

Superclass & subclass pada geometri

Membuat subclass Untuk membuat subclass digunakan operator extends. Syntax: public class Circle extends GeometricObject Karakteristik inheritance: Umumnya subclass berisi informasi & method yang lebih terinci & banyak dibanding superclassnya. Tipe data field private pada superclass tidak dapat diakses langsung oleh subclass. Tidak semua model relationship harus dimodelkan dengan inheritance. Contoh: class kotak & class segi empat merupakan subclass dari GeometricObject Jangan memaksakan penggunaan kode berulang (reuseing method/property) dengan mengekstend class. Contoh class Pohon dan class Orang memiliki method hidup(). Orang bukan subclass Pohon dsb. Java hanya mendukung single inheritance (1 superclass/parent).

Keyword super Keyword super: keyword yang digunakan untuk merefer superclass dalam mengakses Constructors dari superclass. Method dari superclass. Syntax untuk memanggil constructor: super(), or super(parameters); Syntax untuk memanggil method: super.method(parameters);

Contoh penggunaan keyword super public class SimpleGeometricObject { private String color = "white"; private boolean filled; private java.util.Date dateCreated; ... public SimpleGeometricObject(String color, boolean filled) { dateCreated = new java.util.Date(); this.color = color; this.filled = filled; } public java.util.Date getDateCreated() { return dateCreated; public class CircleFromSimpleGeometricObject extends SimpleGeometricObject { private double radius; public CircleFromSimpleGeometricObject(double radius, String color, boolean filled) { super(color,filled); this.radius = radius; public void printCircle() { System.out.println("The circle is created " + super.getDateCreated() + "and the radius is " + radius); Contoh penggunaan keyword super

Overriding method Overriding method: adalah method yang memiliki nama yang sama dengan superclass, namun dibutuhkan untuk melakukan proses yang lebih spesifik. Contoh overriding method toString() pada subclass CircleFromSimpleGeometricObject // Override the toString method defined in the superclass public String toString() { return super.toString() + "\nradius is " + radius; }

Overriding vs overloading Overloading method: adalah method pada sebuah class yang memiliki nama yang sama namun signature yang berbeda. Perbedaan overriding dengan overloading: Method overriding melibatkan class yang berbeda dan berhubungan dengan inheritance (superclass/parent & subclass/ child); sedangkan overloading melibatkan hanya 1 class dan tidak berhubungan dengan inheritance. Method overriding memiliki nama method, signature dan return type yang sama; sedangkan overloading memiliki nama method yang sama tetapi parameter yang berbeda.

Class Object ArrayList (java.langObject) & method toString() Class Object (java.lang.Object) merupakan superclass dari semua class yang ada, termasuk class API yang disediakan JDK/JVM. Method toString() pada class Object disediakan untuk mendapatkan signature dari suatu object. Contoh signature myCircle: CircleWithPrivateDataFields myCircle = new CircleWithPrivateDataFields(5.0); System.out.println(myCircle.toString()); Output: CircleWithPrivateDataFields@24cc17f1 Catatan: class tidak harus ditulis extends Object secara implisit

Polymorphism Polymorphism: desain suatu kelas baru berdasarkan kelas lain, dimana variabel supertype dapat merefer ke object subtype. Polymorphism dikenal juga dengan “many form”/banyak bentuk. Supertype: tipe yang didefinisikan dari superclassnya Subtype: tipe yang didefinisikan dari subclassnya. Saat sebuah instance dari subclass dibuat, akan dibuat instance dari subclass itu sendiri, beserta superclassnya. Instance subclass merupakan instance superclass tapi tidak sebaliknya. Contoh: setiap object lingkaran merupakan object geometri, tapi tidak semua object geometri merupakan object lingkaran.

Contoh polymorphism public class PolymorphismDemo { /** Main method */ public static void main(String[] args) { // Display circle and rectangle properties displayObject(new CircleFromSimpleGeometricObject(1, "red", false)); displayObject(new RectangleFromSimpleGeometricObject(1, 1, "black", true)); } /** Display geometric object properties */ public static void displayObject(SimpleGeometricObject object) { System.out.println("Created on " + object.getDateCreated() + ". Color is “ + object.getColor());

Dynamic binding Declare type: type yang mendeklarasi suatu variabel Actual type: tipe variabel class sebenarnya dari object yang direferensikan variabel tersebut. Contoh: Contoh: Object o = new SimpleGeometricObject(); Tipe Declare o adalah Object Tipe Actual o adalah SimpleGeometricObject Dynamic binding: binding suatu object dengan tipe actual ke tipe declare yang merupakan superclassnya.

Contoh Dynamic binding public class DynamicBindingDemo { public static void main(String[] args) { m(new GraduateStudent()); m(new Student()); m(new Person()); m(new Object()); } public static void m(Object x) { System.out.println(x.toString()); class GraduateStudent extends Student { class Student extends Person { @Override public String toString() { return "Student" ; class Person extends Object { return "Person" ; Output: Student Person java.lang.Object@130c19b

Casting object Casting object: adalah casting suatu reference object ke reference object lain, yang memiliki hubungan inheritance. Implicit casting: dimana casting reference object dapat dilakukan secara implicit. Umumnya merupakan casting ke superclass (upcasting) Explicit casting: dimana casting reference object harus dilakukan secara implicit. Umumnya merupakan casting ke subclass (downcasting) Contoh: Object o = new Student(); // implicit casting Student b = (Student)o; // explicit casting Catatan: ClassCastException akan muncul bila casting dilakukan terhadap reference object dari class yang tidak memiliki hubungan inheritance.

Operator instaceof Instaceof digunakan untuk menguji apakah suatu reference object dapat di casting ke reference object lain. Contoh: Object o = new CircleFromSimpleGeometricObject(1); if (o instanceof CircleFromSimpleGeometricObject) { System.out.println(“object o dapat dicasting ke CircleFromSimpleGeometricObject "); }

Method equals pada class Object (java.lang.Object) Method equals pada Object: method yang dapat digunakan untuk membandingkan 2 buah object. Syntax: public boolean equals(Object obj) Contoh: object1.equals(object2); Method equals(Object obj) hanya membandingkan reference dari 2 variable. Untuk membandingkan konten/isi dari object, method equals harus di override

Contoh override method equals() pada class Circle // overriding class Circle // untuk membandingkan // jari-jari lingkaran public boolean equals(Object o) { if (o instanceof Circle) return radius == ((Circle)o).radius; else return this == o; }

Kerjakan latihan halaman 411 SimpleGeometricObject.java CircleFromSimpleGeometricObject.java RectangleFromSimpleGeometricObject.java TestCircleRectangle.java

Class ArrayList (java.util.ArrayList) ArrayList: digunakan untuk menyimpan sejumlah object. Array memiliki ukuran element yang fix sedangkan ArrayList elementnya dapat ditambah dan dikurang. ArrayList merupakan class generik dengan generik type E, dimana E dapat diganti dengan tipe actual/konkret. Contoh deklarasi ArrayList ArrayList<String> kota = new ArrayList<String>(); ArrayList<java.util.Date> tanggal = new ArrayList<java.util.Date> ();

Array vs ArrayList

Implementasi interface List pada ArrayList ArrayList mengimplementasi interface List. Implementasi List memungkin ArrayList: Membuat ArrayList dari array Melakukan shorting Menemukan element terbesar & terkecil Mengacak daftar

Contoh penggunaan List Contoh membuat ArrayList dari array String[] array = {"red", "green", "blue"}; ArrayList<String> list = new ArrayList<>(java.util.Arrays.asList(array)); Contoh membuat array dari ArrayList String[] array1 = new String[list.size()]; list.toArray(array1); Contoh melakukan shorting Integer[] array = {3, 5, 95, 4, 15, 34, 3, 6, 5}; ArrayList<Integer> list = new ArrayList<>(java.util.Arrays.asList(array)); java.util.Collections.sort(list); System.out.println(list); Contoh menemukan element terbesar & terkecil System.out.println(java.util.Collections.max(list)); System.out.println(java.util.Collections.min(list)); Contoh mengacak daftar java.util.Collections.shuffle(list);

Method preventing extending & overriding Class final & method final tidak dapat di extended. Data final tidak dapat dirubah (digunakan untuk nilai/value konstan) Contoh class final public final class A { // Data fields, constructors, and methods omitted } Contoh method final public class Test { public final void m() { // Do something

Kerjakan latihan halaman 433 TestArrayList.java

Sekilas IDE Eclipse Eclipse is famous for our Java Integrated Development Environment (IDE), but our C/C++ IDE and PHP IDE are pretty cool too. You can easily combine language support and other features into any of our default packages, and the Eclipse Marketplace allows for virtually unlimited customization and extension. Eclipse meerupakan tools Java Integrated Development Environment (IDE) Eclipse dapat digunakan untuk bahasa pemrograman: Ada, ABAP, C, C++, COBOL, Fortran, Haskell, JavaScript, Lasso, Lua, Natural, Perl, PHP, Prolog, Python, R, Ruby (including Ruby on Rails framework), Scala, Clojure, Groovy, Scheme, & Erlang. Eclipse IDE bersumber pada IBM VisualAge, dan direlease Eclipse Public License (http://en.wikipedia.org/wiki/Eclipse_%28software%29) www.eclipse.org

Perbandingan Eclipse Luna SR2 Packages Java IDE Eclipse IDE for Java Developers Eclipse Git Team Provider Eclipse Java Development Tools Maven Integration for Eclipse Mylyn Task List Code Recommenders Tools for Java Developers WindowBuilder Core Eclipse XML Editors and Tools Eclipse IDE for Java EE Developers Data Tools Platform Eclipse Java EE Developer Tools JavaScript Development Tools Eclipse Plug-in Development Environment Remote System Explorer Perbandingan Eclipse Luna SR2 Packages Java IDE