ABSTRACT & INTERFACE. Pemrograman Lanjut Herman Tolle

dokumen-dokumen yang mirip
ABSTRACT CLASS & INTERFACE

Gambar 1: Hirarki class

Polymorphism (Polimorfisme)

Pewarisan, Polimorfisme, dan Interface

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

Pemrograman Berbasis Objek. Interface. Politeknik Elektronika Negeri Surabaya

Class Wrapper. Tujuan dari Class Wrapper

:: abstract class + interface. :: abstract class

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

Pemrograman Berorientasi Objek 2

Pemrograman Lanjut. Interface

Abstract Class dan Interface. Viska Mutiawani, M.Sc

LAPORAN V PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK

Pemrograman Berorientasi. Abstract & Interface

Inheritance (Pewarisan) Pengertian dasar inheritance

PEWARISAN D E W I S A R T I K A, M. K O M

IT652 Pemrograman Berorientasi Aspek. Ramos Somya

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

Bahasa Pemrograman :: Polimorfism and Abstraction

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

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

Pertemuan 4 Halaman 1/1. Class Inheritance

Membuat dan Menggunakan Class

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

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

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

Bahasa Pemrograman 2.

PAKET DAN INTERFACE MUH. IZZUDDIN MAHALI, M.CS. PT. Elektronika FT UNY

Paket dan Interface. Nur Hasanah, M.Cs

Review PBO. Ramos Somya

Konsep Dasar Pemrograman Berorientasi Objek

LAPORAN RESMI PRAKTIKUM BAHASA PEMROGRAMAN

KONSEP OOP: POLYMORPHISM

2015 BAHASA PEMROGRAMAN I. Pertemuan VI Inheritance (Pewarisan)

(INHERITANCE) Nurochman

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

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

Inheritance dan Kata Kunci static

Bahasa Pemrograman :: Inheritance

KONSEP OOP: PEWARISAN / INHERITANCE

IKG2I4 / Software Project I

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

Sekarang, kita akan mencoba untuk menganalisa program Java pertama : public class Hello {

BAB II VARIABEL DAN TIPE DATA

2 TIPE DATA DAN VARIABEL

LAPORAN RESMI INHERITANCE

KONSEP OOP: POLYMORPHISM

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

Bahasa Pemrograman 2.

Modul Bahasa Pemrograman 1

INTERAKSI ANTAR OBJECT

Composition dan Inheritance

Pemrograman Berorientasi. Polimorfisme dan Binding

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

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

Praktikum KPLBO Final Object Concept I

IKG2I4 / Software Project I

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

KONSEP OOP: PEWARISAN / INHERITANCE

Dasar-Dasar OOP di Java

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

BAHASA PEMROGRAMAN JAVA

Pemograman Berorientasi Objek. Week 4 Initialization dan Instance dalam Kelas

Pemrograman Lanjut Review Class dan Object PTIIK

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

Pemrograman Berorientasi. Class dan Obyek 2

Percobaan 5 Paket dan Import, Interface

Modul Praktikum Bahasa Pemrograman 1

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

Pemrograman Berorientasi Objek Danu Wira Pangestu

PRAKTIKUM 6 EXCEPTION

LAPORAN RESMI PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK (PBO) MODUL 5 INTERFACE

Keyword this untuk memanggil private String pengarang; private String judul;

Pemrograman Berorientasi. Inheritance

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

PERCOBAAN 6 EXCEPTION

Pertemuan 2 (2) : Membuat Class dan mengakses Anggota Class

Inheritance. Pertemuan 8 Pemrograman Berbasis Obyek

MEMBUAT KELAS SENDIRI. Dewi Sartika, M.Kom

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

Pemrograman Berbasis Objek Inheritance

Bahasa Pemrograman 2.

06/03/2018. Tidak memiliki parameter. Melakukan inisialisasi semua variabel private dengan nilai awal.

Praktikum KPLBO Class dan Object I

Class & Object 2 ~Praktikum~ Imam Fahrur Rozi

Pemrograman. Pertemuan-3 Fery Updi,M.Kom

Class dan Object. PBO/Java/Ayuliana/Revisi

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

PEMROGRAMAN JAVA. Yoannita, S.Kom. Class & Method sederhana Konsep Pemrograman Berorientasi Objek. Company LOGO

PRAKTIKUM 5 PAKET, IMPORT DAN INTERFACE

Oleh : Rahmady Liyantanto

CLASS, METHOD DAN MODIFIER

Dasar-Dasar OOP di Java

Pengenalan Java, Tipe Data, Variabel dan Operator. Putu Putra Astawa

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

Praktikum 6 Class Design (Encapsulation)

1. Mana diantara pilihan-pilihan berikut ini yang merupakan penulisan loop yang benar?

Percobaan 6 Exception

A. TUJUAN PEMBELAJARAN. 1. Menerapkan konsep enkapsulasi pada class 2. Mendeklarasikan suatu constructor

Transkripsi:

ABSTRACT & INTERFACE Pemrograman Lanjut Herman Tolle

ABSTRACT Abstract Class (Abstraksi) adalah kelas yang memiliki satu atau lebih method yang belum didefinisikan Method dalam class abstract yang tidak mempunyai implementasi dinamakan method abstract. Untuk membuat method abstract, cukup menulis deklarasi method tanpa isi tubuh class dan digunakan menggunakan kata kunci abstract. Contoh: public abstract void somemethod();

ABSTRAKSI

Penggunaan class Abstract Class abstract dapat digunakan sebagai superclass untuk satu atau lebih sub class (kelas turunan) Method abstract didefinisikan pada class abstract sebagai definisi umum saja, yang harus didetailkan / diimplementasikan pada kelas turunannya.

INTERFACE Interface adalah sebuah blok (setingkat class) yang hanya berisi signature method dan constant (konstanta) Signature method dapat dianggap seperti sebuah abstract method. Method yang tidak memiliki implementasi tetapi hanya berupa nama method saja

public interface Movable { public void moveup(); public void movedown(); public void moveleft(); public void moveright();

public class MovablePoint implements Movable { // Private member variables private int x, y; // (x, y) coordinates of the point // Constructor public MovablePoint(int x, int y) { this.x = x; this.y = y; @Override public String tostring() { return "Point at (" + x + "," + y + ")"; // Implement abstract methods defined in the interface Movable @Override public void moveup() { y--; @Override public void movedown() { y++; @Override public void moveleft() { x--; @Override public void moveright() { x++; Movablepoint.class

public class TestMovable { public static void main(string[] args) { Movable m1 = new MovablePoint(5, 5); // upcast System.out.println(m1); m1.movedown(); System.out.println(m1); m1.moveright(); System.out.println(m1);

Implementasi Interface Menggunakan kata kunci IMPLEMENTS public class MovablePoint implements Movable Class hanya dapat mengextend SATU superclass, tetapi dapat mengimplementasikan BANYAK interface. Ketika class mengimplementasikan sebuah interface, selalu pastikan bahwa semua method dalam interface telah diimplementasikan semuanya pada class tsb, jika tidak, akan ada pesan kesalahan Line.java:4: Line is not abstract and does not override abstract

Kapan menggunakan interface? Kita menggunakan interface jika kita ingin class yang tidak berhubungan mengimplementasikan method atau fungsi-fungsi yang sama. Melalui interface kita dapat menangkap kemiripan diantara class yang tidak berhubungan Sebuah Class dapat mengimplementasikan lebih dari satu interface.

Interface Naming Convention Use an adjective (typically ends with "able") consisting of one or more words. Each word shall be initial capitalized (camelcase). Forexample: Serializable, Extenalizable, Movable, Clonable, Runnable, etc.

Pewarisan Antar Interface Interface bukan bagian dari hirarki class. Interface dapat mempunyai hubungan pewarisan antara mereka sendiri. Contohnya, misal kita punya dua interface StudentInterface dan PersonInterface. Jika StudentInterface meng-extend PersonInterface, maka ia akan mewariskan semua deklarasi method dalam PersonInterface. public interface PersonInterface {... public interface StudentInterface extends PersonInterface {...

Contoh Interface

Contoh Kasus Ada 2 class: class Line dan class MyInteger class Line berisi method yang menghitung panjang dari garis dan membandingkan object Line ke object dari class yang sama. Class MyInteger berisi method yang membandingkan object MyInteger ke object dari class yang sama. Kedua class mempunyai method yang hampir sama, yaitu memperbandingkan dua object lain dalam tipe yang sama. Supaya dapat menjalankan cara untuk memastikan bahwa dua class-class ini mengimplementasikan beberapa method dengan fungsi yang sama, kita dapat menggunakan sebuah interface untuk hal ini. Kita dapat membuat sebuah class interface, katakanlah interface Relation dimana mempunyai deklarasi method untuk fungsi-fungsi pembandingan.

public interface Relation { public boolean isgreater( Object a, Object b); public boolean isless( Object a, Object b); public boolean isequal( Object a, Object b);

public class Line implements Relation { private double x1; private double x2; private double y1; private double y2; private String nama; public Line(double x1, double x2, double y1, double y2, String name){ this.x1 = x1; this.x2 = x2; this.y1 = y1; this.y2 = y2; this.nama = name; public double getlength(){ double length = Math.sqrt((x2-x1)*(x2-x1) + (y2-y1)* (y2-y1)); return length;

public boolean isgreater( Object a, Object b){ double alen = ((Line)a).getLength(); double blen = ((Line)b).getLength(); return (alen > blen); public boolean isless( Object a, Object b){ double alen = ((Line)a).getLength(); double blen = ((Line)b).getLength(); return (alen < blen); public boolean isequal( Object a, Object b){ double alen = ((Line)a).getLength(); double blen = ((Line)b).getLength(); return (alen == blen);

Latihan Buat Class MyInteger yang mengimplementasikan penggunaan interface Relation Buat class MovableCircle yang mengimplementasi interface movable

Latihan 1. Buat Kode Program untuk menentukan mana garis terpanjang dan mana garis terpendek dari input 3 buah objek garis (Line) 2. Buat Class dan Program seperti kasus di atas untuk objek Persegi Panjang (atribut: X1, X2, Y1, Y2) Catatan: soal no 2 dikerjakan dan dikumpulkan

File 1: Relation.java File 2: Line.java File 3: TestLine.java // file 3: TestLine.java public static void main() { Line LineA = new Line(3,7,8,4, GarisA ); Line LineB = new Line(-2,2,2,-2, GarisB ); Line LineC = new Line(10,13,3,-2, GarisC ); Line Max = new Line(0,0,0,0, max ); Max = LineA; If Max.isGreater(LineB, Max) Max = LineB; If Max.isGreater(LineC, Max) Max = LineC; System.out.println( Garis terpanjang adalah = + Max.getName());

Interface dapat diturunkan dari satu atau lebih interface interface Hockey extends Sports, Event Class dapat mengimplement lebih dari satu Class PersegiPanjang implements Relation, Movable, Resizable

Latihan F 1. Buat Kode Program untuk menentukan mana garis terpanjang dan mana garis terpendek dari input 3 buah objek garis (Line) 2. Buat Class dan Program seperti kasus di atas untuk objek Persegi Panjang (atribut: X1, X2, Y1, Y2), mencari objek TERLUAS dari input 3 buah objek Persegi Catatan: soal no 2 dikerjakan dan dikumpulkan