INHERITANCE.

Slides:



Advertisements
Presentasi serupa
Teori Graf.
Advertisements

Statistika Deskriptif: Distribusi Proporsi
Modul 5: Constructor, Overloading, inheritance, Polymorphism
START.
Wido Hanggoro ` Research and Development Department Indonesia Meteorological Climatological and Geophysical Agency.
Bulan maret 2012, nilai pewarnaan :
Tugas Praktikum 1 Dani Firdaus  1,12,23,34 Amanda  2,13,24,35 Dede  3,14,25,36 Gregorius  4,15,26,37 Mirza  5,16,27,38 M. Ari  6,17,28,39 Mughni.
Tugas: Perangkat Keras Komputer Versi:1.0.0 Materi: Installing Windows 98 Penyaji: Zulkarnaen NS 1.

Membuat class sendiri.
di Matematika SMA Kelas XI Sem 1 Program IPS
BADAN KOORDINASI KELUARGA BERENCANA NASIONAL DIREKTORAT PELAPORAN DAN STATISTIK DISAJIKAN PADA RADALGRAM JAKARTA, 4 AGUSTUS 2009.
LINKED LIST.
Nur Hayatin, S.ST Jurusan Teknik Informatika Universitas Muhammadiyah Malang Sem Genap 2010.
POLIMORFISME Imam Fahrur Rozi 01.
Abstract Class & Interface
Mari Kita Lihat Video Berikut ini.
Statistika Deskriptif
Bab 6B Distribusi Probabilitas Pensampelan
Pemrograman JAVA (TIB09)
WORKSHOP INTERNAL SIM BOK
UKURAN PENYEBARAN DATA
DISTRIBUSI FREKUENSI oleh Ratu Ilma Indra Putri. DEFINISI Pengelompokkan data menjadi tabulasi data dengan memakai kelas- kelas data dan dikaitkan dengan.
Rabu 23 Maret 2011Matematika Teknik 2 Pu Barisan Barisan Tak Hingga Kekonvergenan barisan tak hingga Sifat – sifat barisan Barisan Monoton.
Soal Latihan.
UKURAN PEMUSATAN DATA Sub Judul.
Pemrograman Terstruktur
Bab 16 Sekor Komposit dan Seleksi Sekor Komposi dan Seleksi
KONTROL ALUR EKSEKUSI PROGRAM
SLIDE OTOMATIS PINDAH DALAM WAKTU 4-5 MENIT. A:kiriB:kanan Deklarasikan sebuah variabel dengan nama ‘isi’ yang mempunyai type array of double dengan ukuran.
Overriding, Overloading, Polymorphism
Bulan FEBRUARI 2012, nilai pewarnaan :
AREAL PARKIR PEMERINTAH KABUPATEN JEMBRANA
Inheritance Ery Setiyawan Jullev A.
Inheritance (Pewarisan)
POLIMORFISM Ery Setiyawan Jullev A.
KINERJA SAMPAI DENGAN BULAN AGUSTUS 2013
Overriding, Overloading, Polymorphism
Bab 13A Nonparametrik: Data Peringkat I Bab 13A
Graf.
Pertemuan 8 Pemrograman Berbasis Obyek Oleh Tita Karlita
Encapsulation, Inheritance, polymorphism, dan interface
Statistika Deskriptif: Statistik Sampel
Variabel, Method & Constructor Oleh : Nur Hayatin, S.ST Teknik Informatika – UMM 2011.
INHERITANCE, POLYMORPHISM, DAN INTERFACE
Pewarisan, Polimorfisme, dan Interface
Inheritance (Pewarisan)
DISTRIBUSI FREKUENSI.
Bersyukur.
Statistika Deskriptif: Distribusi Proporsi
Nilai Ujian Statistik 80 orang mahasiswa Fapet UNHAS adalah sebagai berikut:
Teknik Numeris (Numerical Technique)
• Perwakilan BKKBN Provinsi Sulawesi Tengah•
BAB2 QUEUE 6.3 & 7.3 NESTED LOOP.
Bab 7 Nilai Acuan Norma.
Korelasi dan Regresi Ganda
Pertemuan : Object Oriented Programming
Inheritance Nana Ramadijanti Laboratorium Computer Vision Politeknik Elekltronika Negeri Surabaya PENS-ITS 2009.
Object Oriented Programming with JAVA 2011/2012
Inheritance Konsep Inheritance Protected Member
OOP Java 06 Polymorphism.
Inheritance, polymorphism, dan interface
INHERITANCE (Oleh : Nur Hayatin, S.ST)
Try, Catch, Finally Throws
Pertemuan 6 PEWARISAN AND POLYMORPHISM
Access Modifier.
Inheritance dan Kata Kunci static
Inheritance.
@kovazzevic | SMKN 24 Jakarta
Pertemuan 5 Inheritance
Transcript presentasi:

INHERITANCE

Fitur OOP Encapsulation Inheritance Polymorphism

Inheritance Sebuah class dapat melakukan penurunan. Penurunan class berhubungan dengan member class (attribut dan method). Parent/induk : class yang memiliki member class Child/anak : class yang mewarisi member class dari parent. Parent Child

Pernyataan : Class B merupakan turunan dari class A Maka class B memiliki semua member dari class A. Class C merupakan turunan dari class B Maka class C memiliki semua member dari class B dan class A.

Hirarki A B C D Superclass class yang letaknya di atas class tertentu di dalam hierarki. Subclass class yang letaknya di bawah class tertentu di dalam hierarki.

Hirarki Direct superclass A B C D Undirect superclass

Hirarki Direct subclass A B C D Undirect subclass

Implementasi Menggunakan keyword extends. Ditulis ketika deklarasi class. Satu class hanya dapat memiliki satu parent (Single-inheritance). Syntax : Contoh : class Kucing extends Mamalia { } class namaclass extends namaclass_parent { }

Kapan kita menerapkan inheritance? Kita baru perlu menerapkan inheritance pada saat kita jumpai ada suatu class yang dapat diperluas dari class lain.

Misal terdapat class Pegawai public class Pegawai { public String nama; public double gaji; }

Misal terdapat class Manager public class Manajer { public String nama; public double gaji; public String departemen; }

Dari 2 buah class diatas, kita lihat class Manajer mempunyai data member yang identik sama dengan class Pegawai, hanya saja ada tambahan data member departemen. Sebenarnya yang terjadi disana adalah class Manajer merupakan perluasan dari class Pegawai dengan tambahan data member departemen. Disini perlu memakai konsep inheritance, sehingga class Manajer dapat kita tuliskan seperti berikut

public class Manajer extends Pegawai { public String departemen; }

TurunanOrang.java Program penurunan Orang Turunan

Kesimpulan Subclass yang paling bawah memiliki member class lebih banyak, hasil turunan dari superclass-nya. Untuk melakukan inheritance antar class digunakan keyword extends. Subclass merupakan perluasan dari superclass-nya. Class tidak dapat memiliki lebih dari satu parent. Parent 1 Child Parent 2

Other Class Modifier Final

Final Class Jika sebuah class ber-modifier final berarti class tersebut tidak dapat diturunkan. final class Macan { } class Singa extends Macan { } Syntax error!! Cannot inherit from final Macan

Method Override Sebuah method yang dideklarasikan dalam superclass dapat dideklarasi ulang dalam subclass. Deklarasi ulang method superclass pada subclass inilah yang disebut dengan method override. Override merupakan salah satu bentuk polymorfisme dalam konsep OOP. Syarat override : deklarasi method harus sama persis. Namun content/body method dapat berbeda.

Contoh Implementasi public class Animal { public void SetVoice() { System.out.println(“Blesepblesep”); } public class Dog extends Animal { public void SetVoice() { System.out.println(“Hug hug”);

Constructor pada inheritance Misalkan kita buat class parent bernama Person sbb : public class Person { protected String name; protected String address; public Person(){ System.out.println(“Inside Person:Constructor”); }

Constructor pada inheritance Sekarang, kita buat class lain bernama Student yang meng-extends class Person. public class Student extends Person { public Student(){ System.out.println(“Inside Student:Constructor”); }

Alur Eksekusi Constructor Ketika sebuah object Student diinstansiasi, default constructor dari superclass Student dipanggil secara implisit untuk melakukan inisialisasi seperlunya. Setelah itu, pernyataan di dalam constructor subclass baru dijalankan.

Penjelasan Untuk memperjelasnya, perhatikan kode dibawah ini, Dalam kode ini, kita membuat sebuah object dari class Student. Hasil dari program adalah: public static void main( String[] args ){ Student anna = new Student(); } Inside Person:Constructor Inside Student:Constructor

Diagram Alur Eksekusi Constructor

Keyword “this” dan “super” Selain menggunakan variabel reference, variabel dan method yang ada pada class dapat diakses dengan menggunakan keyword this atau super. “this” digunakan untuk me-refer member class yang ada pada class itu sendiri. “super” digunakan untuk me-refer member class pada superclass. “this” dan “super” tidak dapat digunakan pada method bertipe static.

Format “this” Format penulisannya adalah sebagai berikut : this.attribut  merujuk pada variabel/attribut class itu sendiri this.method()  merujuk pada method atau fungsi class itu sendiri this()  merujuk pada constructor class itu sendiri

Format “super” Format penulisannya adalah sebagai berikut : super.attribut  merujuk pada variabel/attribut dari superclass super.method()  merujuk pada method atau fungsi dari superclass super()  merujuk pada constructor dari superclass

“this” pada Attribut Format : this.attribut. Merujuk pada variabel/attribut yang dimiliki class itu sendiri.

Contoh “this” pada Attribut Berapa nilai variabel area?? Output : 6 class Point{ int x=2,y=3; void getArea() { int area = this.x*this.y; System.out.println(area); }

Contoh implementasi “this” Kadangkala, dalam sebuah class perlu dibedakan anggota (baik field maupun method) dari object-object tertentu. getArea(4,5) Output : 6 class Point{ int x=2,y=3; void getArea(int x,int y) { int area = this.x*this.y; System.out.println(area); } Akses instance variabel menggunakan this

“super” pada Attribut Format : super.attribut. Merujuk pada variabel/attribut dari superclass.

“super” pada Attribut class Shape extends Point{ int x=4,y=5; Berapa nilai variabel area?? Output : 6 class Shape extends Point{ int x=4,y=5; int getArea() { int area = super.x*super.y; return area; }

Berapa nilai variabel area? Latihan Berapa nilai variabel area? class Point{ int x=2,y=3; void getArea(int x,int y) { int area = (x-this.x)*(y-this.y); System.out.println(area); } getArea(4,5) Output : 4

Latihan class Parent { public int x = 5; } class Child extends Parent { public int x = 10; public void Info(int x) { System.out.println("Nilai x sebagai parameter = " + x); System.out.println("Data member x di class Child = " + this.x); System.out.println("Data member x di class Parent = " + super.x); public class NilaiX { public static void main(String args[]) { Child tes = new Child(); tes.Info(20);

Hasil Nilai x sebagai parameter = 20 Data member x di class Child = 10 Data member x di class Parent = 5

“this” pada Method Merujuk pada method atau fungsi yang dimiliki class itu sendiri. Format : this.method()

Contoh “this” pada Method Berapa nilai variabel area?? Output : 25 Class Point2{ int x=5; int getX() { return x; } int getArea() { int area = 5*this.getX(); return area;

“super” pada Method Merujuk pada method atau fungsi dari superclass. Format : super.method()

Contoh “super” pada Method Berapa nilai variabel area?? Output : 10 class Shape extends Point2{ int x=2; int getArea() { int area = this.x*super.getX(); return area; }

“this” & “super” pada Constructor “this” dan “super” dapat digunakan untuk memanggil construcor. Syaratnya : 1) Pemanggilan this atau super harus dilakukan didalam constructor. 2) statement this atau super tersebut harus diletakkan pada baris pertama.

Keyword “this” (pada constructor) class Point{ int x=2,y=3; Point(){ this(1); } Point(int x){ this.x = x; int getArea() { int area = this.x*this.y; return area; public static void main(String[] args) { Point p = new Point(); System.out.print(" " + p.getArea()); } Output : 3

Keyword “super” (pada constructor) class Shape extends Point{ int x=4,y=5; int getArea() { int area = super.x*super.y; return area; } Shape() { super(); int z; public static void main(String[] args) { Shape s = new Shape(); System.out.print(" " + s.getArea()); } Output : 3

Contoh r Catatan: Lingkaran : memiliki jari-jari (r) Silinder : Selain memiliki jari-jari (r) lingkaran pada kedua ujungnya silinder juga memiliki tinggi silinder (t), r t

Kemudian kita coba membandingkan class Lingkaran dengan class Silinder yang akan kita buat : double jariJari double tinggi double jariJari void setJariJari(double) double getJariJari() double hitungLuas() double hitungkeliling() void setJariJari(double) void setTinggi(double) double getJariJari() double getTinggi() double hitungLuas() double hitungVolume()

Secara Lengkap program dapat dilihat sbb: 1 // --------------------------------------------- 2 // Definisi class Lingkaran 3 // --------------------------------------------- 4 class Lingkaran 5 { 6 private double jariJari; 7 public Lingkaran() 8 { 9 setJariJari(1); 10 } 11 public Lingkaran(double r) 12 { 13 if (r > 0) 14 jariJari = r; 15 else 16 jariJari = 1.0; 17 }

18 public void setJariJari (double r) 19 { 20 if (r>0) 21 jariJari=r; 22 } 23 public double getJariJari() 24 { 25 return (jariJari); 26 } 27 public double hitungLuas() 28 { 29 return (Math.PI * jariJari * jariJari); 30 } 31 public double hitungKeliling() 32 { 33 return (Math.PI * 2.0 * jariJari); 34 } 35 }

36 // --------------------------------------------- 37 // Definisi class Silinder // --------------------------------------------- class Silinder extends Lingkaran { private double tinggi; public Silinder() setJariJari (1); setTinggi (1); } public Silinder(double r, double t) setJariJari (r); SetTinggi (r);

public void setTinggi (double t) { if (t>0) tinggi = r; } public double getTinggi() return (tinggi); public double hitungLuas() return (super.hitungLuas() * 2.0 + super.hitungKeliling() * tinggi); public double hitungVolume() return (Math.PI * jariJari *jarijari * tinggi);

// --------------------------------------------- // Definisi class utama public class CobaSilinder { public static void main (String[] args) Silinder abc = new Silinder(); Silinder xyz = new Silinder(23.5, 73.1); System.out.println (“Data Silinder ABC :”); System.out.println (“-----------------------”); System.out.println (“Jari-Jari ABC : ” + abc.getJariJari()); System.out.println (“Tinggi ABC : ” + abc.getTinggi()); System.out.println (“Luas ABC : ” + abc.hitungLuas()); System.out.println (“Luas ABC : ” + abc.hitungVolume()); System.out.println ();

System.out.println (“Data Silinder XYZ :”); System.out.println (“Jari-Jari ABC : ” + xyz.getJariJari()); System.out.println (“Tinggi ABC : ” + xyz.getTinggi()); System.out.println (“Luas ABC : ” + xyz.hitungLuas()); System.out.println (“Luas ABC : ” + xyz.hitungVolume()); System.out.println (); }