:: abstract class + interface. :: abstract class

dokumen-dokumen yang mirip
Polymorphism. Materi ke-8 Pemrograman Berbasis Objek

Gambar 1: Hirarki class

Polymorphism (Polimorfisme)

Pewarisan, Polimorfisme, dan Interface

Bahasa Pemrograman 2.

Pemrograman Berorientasi. Abstract & Interface

IT652 Pemrograman Berorientasi Aspek. Ramos Somya

3/31/2011. Tujuan. Inheritance, Polymorphism,& Interfaces. Inheritance / pewarisan. Inheritance / pewarisan. Inheritance / pewarisan

1.Tujuan. 2. Latar Belakang. Mendefinisikan superclasses dan subclasses Override method dari superclasses Membuat method final dan class final

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

PEWARISAN. Disusun Oleh: Reza Budiawan. Untuk: Tim Dosen Algoritma & Pemrograman Lanjut

KARAKTERISTIK PEMROGRAMAN BERORIENTASI OBJEK (OOP) Pemrograman berorientasi Objek mempunyai karakterisitik sebagai berikut:

Abstract Class dan Interface. Viska Mutiawani, M.Sc

Review PBO. Ramos Somya

ABSTRACT & INTERFACE. Pemrograman Lanjut Herman Tolle

Pemrograman Berbasis Objek. Interface. Politeknik Elektronika Negeri Surabaya

Inheritance dan Kata Kunci static

LAPORAN RESMI PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK MODUL 3 ABSTRAKSI

MINGGU V : PBO (PEWARISAN)

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

1. Keyword mana yang memiliki fungsi sama dengan keyword this dan menyediakan reference ke atribut turunan dari objek? super

8 - Overriding dan Overloading

Pemograman Berorientasi Objek. Week 3 Abstrak dan Interface dalam suatu kelas

Apa yang menjadi output potongan kode diatas? Error karena tidak ada String yang di-passing kedalam konstruktor Bapak

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

Composition dan Inheritance

MODUL 3. Inheritance, Abstract Class, Interface TUJUAN PRAKTIKUM LANDASAN TEORI. A. Inheritance

1. Manakah jawaban yang benar,pada saat Anda mengcompile dan menjalankan class berikut ini:

5/23/12. Inheritance. Pengertian inheritance Deklarasi inheritance Single inheritance Multilevel inheritance Access Control super keyword

Konsep Pemrograman Berbasis Obyek

PEMROGRAMAN BERORIENTASI OBJEK

Method yang ada pada parent class(superclass) didefinisikan kembali oleh kelas anaknya (subclass).

Pemrograman Web. Pemrograman Berorientasi Objek. Adam Hendra Brata

Konsep Dasar Pemrograman Berorientasi Objek

Inheritance (Pewarisan) Pengertian dasar inheritance

PEMROGRAMAN BERORIENTASI OBJEK

Pemrograman Berorientasi. Inheritance

LAPORAN RESMI INHERITANCE

JOBSHEET POLIMORFISME

Inheritance (Pewarisan Sifat) Imam Fahrur Rozi

Bahasa Pemrograman :: Polimorfism and Abstraction

PERTEMUAN 13 PERANCANGAN BERORIENTASI OBJEK UNTUK MULTI KELAS

Pemrograman Web. Pemrograman Berorientasi Objek. 8 Adam Hendra Brata

(INHERITANCE) Nurochman

IKG2I4 / Software Project I

Class Wrapper. Tujuan dari Class Wrapper

OOAD (Object Oriented Analysis and Design) UML part 2 (Activity diagram, Class diagram, Sequence diagram)

Object Oriented Programming (OOP) --Polimorphisme-- Saniati STMIK Teknokrat, Bandar Lampung

Pemrograman Berorientasi Objek 2

Praktikum 4 Konsep Inheritance, Polymorphism, dan Encapsulation

JOBSHEET 8 INHERITANCE (PEWARISAN)

Bahasa Pemrograman :: Inheritance

Pewarisan atau Inheritance

BAB VIII CLASS ABSTRACT & CLASS INTERFACE. //abstract class bisa, kelas biasa bisa System.out.println("Ini nama");

Praktikum. PBO (Kelas K) Oleh : MOHAMMAD SHOLIKIN

Encapsulation (Encapsulasi) Minggu 5 Pemrograman Berorientasi Objek Alfa Faridh Suni

Pemrograman Berorientasi. Polimorfisme dan Binding

Konsep Pemrograman Berorientasi Obyek. Maria Ulfah S Nurochman

PRAKTIKUM I Class dan Obyek

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom

SILABUS MATA KULIAH PEMROGRAMAN JAVA

Inheritance. Pertemuan 8 Pemrograman Berbasis Obyek

JOBSHEET 3 CLASS DAN OBJEK

PEMROGRAMAN BERORIENTASI OBJEK KONSEP PBO

Pemrograman Berbasis Objek Inheritance

ABSTRACT CLASS. Imam Fahrur Rozi

Pemrograman Berorientasi Objek

CLASS, METHOD DAN MODIFIER

Overriding. Subclass yang berusaha memodifikasi tingkah laku yang diwarisi dari superclass. Tujuan: subclass memiliki tingkah laku yang lebih

Object Oriented Programming (OOP) --Inheritance- Saniati STMIK Teknokrat, Bandar Lampung

Pemrograman Lanjut Review Class dan Object PTIIK

Pemrograman Berbasis Objek (Polimorfisme)

Object Oriented Programming 1

Praktikum 6 Abstract, Interface, Overloading, Overriding, dan Package

2015 BAHASA PEMROGRAMAN I. Pertemuan VI Inheritance (Pewarisan)

ABSTRACT CLASS DAN INTERFACE

KONSEP OOP: PEWARISAN / INHERITANCE

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

DASAR PEMROGRAMAN. Konsep Pemrograman Berorientasi Objek. Yoannita

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

Pemrograman Berorientasi Objek Danu Wira Pangestu

MODUL 3 Inheritance. Tujuan: Mahasiswa dapat mengenal dan memahami konsep inheritance dan cara menerapkan inheritance dengan constructor

MINGGU VII : RELASI ANTAR KELAS

Bahasa Pemrograman II Modul 2 : Inheritance dan Interface

Inheritance. Topik 5/17/2013

Pemrograman Berorientasi Objek Polimorphisme dan Serious Polimorphisme. Adam Mukharil Bachtiar Teknik Informatika UNIKOM

Chapter 10 Polimorphism

LAPORAN V PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK

Percobaan 6 Exception

BAB II VARIABEL DAN TIPE DATA

PRAKTIKUM 6 EXCEPTION

KONSEP Pemrograman Berorientasi Objek KARMILASARI

2 TIPE DATA DAN VARIABEL

Inheritance dan Polimorfisme

public class B extends A {... }

MEMBUAT KELAS SENDIRI. Dewi Sartika, M.Kom

PEMROGRAMAN JAVA. Yoannita. Konsep Pemrograman Berorientasi Objek. Company LOGO

Bahasa Pemrograman 2.

DEVAL GUSRION, S.KOM, M.KOM MATAKULIAH BAHASA PEMOGRAMAN JAVA LANJUTAN III

Transkripsi:

:: abstract class + interface :: abstract class Saat kita membuat sebuah superclass, kita tahu bahwa kita dapat memakai semua metode yang dimilikinya pada class anaknya. Atau kalau kita butuh metode tersebut diperbarui, kita tinggal melakukan override pada metode tersebut. Tapi, pada suatu kasus, kita ingin membuat superclass yang bernama LivingThing(makhluk hidup). Class ini punya beberapa method yang sudah kita kenal seperti makan, bernafas, tidur, dan berjalan. Ada satu metode yang tidak dapat kita generalisasi. Contohnya adalah method berjalan. Human sebagai subclass dari makhluk hidup berjalan dengan 2 kaki, sedangkan Dog berjalan dengan 4 kaki. Untuk membuat superclass yang umum, kita bisa membuat suatu superclass yang memiliki beberapa metode dengan implementasi dan beberapa tidak. Class ini disebut abstract class. Secara umum, abstract class adalah class yang tak dapat diinstansiasi. Biasanya abstract class berada dalam hierarki tertinggi dalam PBO (pemrograman berorientasi objek). Metode di dalam abstract class yang tidak berisi kode program adalah abstract method (metode abstract). Nantinya, method ini harus di-override oleh subclass-nya. Jadi, kita hanya menulis deklarasi method tanpa tubuh metode dan memakai keyword abstract. Contohnya: public abstract void inimetode(); Deklarasi Method ini disebut sebagai prototype method. Sekarang, kita coba buat abstract class pertama kita: 1

Suatu metode yang sudah dideklarasikan abstract harus diakhiri tanpa memakai tubuh program. Jika ditulis seperti ini: maka akan terjadi error seperti berikut: Ketika sebuah class dibuat sebagai subclass dari class LivingThing, class itu harus meng-override metode abstract walk(). Jika tidak, class tersebut tidak akan dapat dikompilasi dan akan terjadi error. Contoh pembuatan subclass yang benar: Jika class Human tidak meng-override metode walk(), maka akan muncul pesan error seperti berikut: 2

Tapi, walau class Human tidak meng-override metode yang lain seperti breath() dan eat() (yang tidak abstract) tidak akan terjadi error. Jadi, fungsi abstract class tak lain adalah untuk membuat prototype bagi class di tingkatan paling atas dalam hierarki class dan subclass-nya yang menyediakan detail implementasi dari abstract class tersebut. Question Apakah sebuah class biasa bisa memiliki abstract method? Apakah abstract class boleh tidak memiliki abstract method? Silahkan analisis secara mandiri. Bagaimana jika class LivingThing memiliki sebuah constructor? (Mengingat bahwa abstract class tidak bisa diinstansiasi) Bisakah? Jika bisa, apakah fungsi dan penggunaannya sama dengan class yang lain? 3

:: interface interface adalah sebuah blok yang berisi deklarasi metode saja untuk diimplementasikan pada class lain. Jadi, metode yang ada di dalam interface tidak memiliki kode program (bersifat abstract). Contoh interface: Interface ini nantinya berguna untuk membuat satu subclass memiliki lebih dari satu superclass. Tapi bukan secara extends (inheritance), tapi implements (implementasi). Coba kita buat class line yang mengimplementasikan interface Relation di atas. Jika salah satu dari method isgreater(), isless() atau isequal() dihilangkan dari class Line ini, maka akan terjadi error yang mengharuskan kita meng-override semua metode tersebut (benarkah?). Ini disebabkan karena semua metode yang dideklarasikan di interface harus dioverride oleh class yang mengimplementasikannya. Kenapa serepot itu? Ini sesuai dengan salah 4

satu fungsi interface membuat suatu class yang bisa diimplementasikan oleh berbagai class lain yang tidak berelasi sama sekali. Untuk latihan, misalkan kita mengimplementasikan interface Radio dan Kamera pada class Handphone seperti di bawah ini: Fungsi interface sebetulnya cukup jelas adalah untuk membuat satu template untuk class yang ingin mengimplementasikannya supaya sama dengan template. Atau dengan kata lain, ada standarisasi dalam mengimplementasikan suatu interface. Question - Nah interface hanya dapat diisi dengan deklarasi method saja Benarkah? Silahkan lakukan analisis mandiri. - Semua method di interface adalah abstract. Apakah bisa ditambahi dengan keyword abstract pada setiap method-nya? Sama saja atau jadi berbeda? 5

:: interface vs abstract class Perbedaan interface dan abstract class cukup terlihat dari pemakaiannya. interface itu diimplementasikan dan abstract class itu diturunkan (diwariskan). Keduanya dapat dipakai bersamaan dalam satu class. Misalkan seperti contoh di bawah ini: Tambahkan abstract class di atas ke class HandPhone yang sudah kita buat, sehingga class HandPhone menjadi: Question Apakah kita bisa membuat class baru yang extends dari class HandPhone? Apakah perlu untuk meng-override semua metodenya juga? 6

Exercise Buat suatu class Compo yang mengimplementasikan interface Radio dan Tape seperti Class Diagram di bawah ini. Kemudian buatlah sebuah launcher class untuk mencobanya. Buatlah abstract class AlatMusik dan diturunkan ke dua class, yaitu class MusikTiup serta class MusikGesek seperti class diagram di bawah ini. AlatMusik (abstract) +setnamaalat(nama: String) +setbunyi(bunyi: String) +getinfo() MusikTiup -bunyi: String -namaalat: String +MusikTiup() MusikGesek -bunyi: String -namaalat: String -jumdawai: Integer +MusikGesek() Tulislah juga suatu launcher class yang membuat sebuah objek terompet yang merupakan instance dari class MusikTiup yang memiliki atribut bunyi toet-toet. Buatlah pula sebuah objek biola yang merupakan instance dari class MusikGesek yang memiliki atribut bunyi ngik-ngok dan jumlah dawai 4 buah. Setiap kali membuat objek baru 7