Nurul Qomariyah
Fasilkom UI
31 Agustus 2012
Inheritance
31 Agustus 2012
1 / 19
Outline
Inheritance
31 Agustus 2012
2 / 19
Inheritance
Inheritance
Sebuah teknik untuk membuat turunan dari sebuah class. Class yang memiliki turunan disebut superclass (parent). Class yang menjadi turunan disebut subclass (child). Subclass mewarisi seluruh karakteristik berupa method dan attribute dari superclass. Sebuah subclass hanya dapat memiliki satu parent, dan satu superclass dapat memiliki banyak subclass.
Inheritance
31 Agustus 2012
3 / 19
Inheritance
Segitiga
SegitigaSamaKaki
SegitigaSamaSisi
SegitigaSikusiku
Subclass merupakan bentuk khusus dan detail dari superclass. Sebaliknya, superclass merupakan bentuk umum dari subclass-subclassnya.
Inheritance
31 Agustus 2012
4 / 19
Inheritance
Contoh Inheritance
Sebagai contoh, terdapat sebuah class bernama Segitiga. class Segitiga{ // kode ada di sini } Class SegitigaSikusiku yang merupakan subclass dari Segitiga dapat dideklarasikan sebagai berikut. class SegitigaSikusiku extends Segitiga{ // kode ada di sini } Setiap class yang dibuat merupakan turunan dari class java.lang.Object
Inheritance
31 Agustus 2012
5 / 19
Inheritance
Protected Modier
Visibility modier yang digunakan pada inheritance Hanya dapat diakses oleh subclassnya, sedangkan class lain tidak dapat mengakses.
Inheritance
31 Agustus 2012
6 / 19
Super Reference
Super Reference
Keyword super digunakan untuk memanggil reference yang berhubungan dengan parent. Salah satu penggunaan super adalah pada pemanggilan constructor milik parent. Penggunaan lain adalah pada konsep overriding method
Inheritance
31 Agustus 2012
7 / 19
Super Reference
Latihan - Manusia
Dengan menggunakan teknik inheritance, buatlah kelas-kelas Java dengan spesikasi sebagai berikut: class Manusia: Kelas Manusia merepresentasikan manusia dalam dunia nyata. Seorang manusia dapat dikenali melalui atribut-atribut seperti nama (e.g. Canek), jenis kelamin (e.g. Pria, Wanita), tanggal lahir (e.g. 17 agustus 2012) class Mahasiswa: Kelas Mahasiswa merepresentasikan manusia yang berkuliah. Seorang mahasiswa memiliki atribut-atribut yaitu NPM (e.g. 12061234567), jurusan (e.g. Ilmu Gaib, Sastra Java). class Alumni: Kelas Alumni merepresentasikan mahasiswa yang telah menyelesaikan kuliahnya. Atribut-atribut yang dimiliki oleh alumni adalah IPK ketika lulus (e.g. 4.0), tahun lulus (e.g. 2010, 2011), predikat kelulusan (e.g. Memuaskan, Sangat Memuaskan, Cum Laude) class PowerRanger: Kelas PowerRanger merepresentasikan seorang manusia pahlawan pembela kebenaran. Dia memiliki atribut-atribut yaitu nama samaran (e.g. Ranger Merah) dan jurus pamungkas (e.g. Pedang Pembelah Bumi).
Lembaga Asisten (Fasilkom UI) Inheritance 31 Agustus 2012 8 / 19
Super Reference
Inheritance
31 Agustus 2012
9 / 19
Overriding Method
Overriding Method
Seluruh method milik parent akan diwarisi oleh setiap turunannya. Namun terkadang child dapat membutuhkan fungsi yang berbeda dari method tersebut. Proses adaptasi fungsi method sesuai dengan kebutuhan tiap class disebut overriding. Contoh penggunaan overriding adalah pada pembuatan method toString.
Inheritance
31 Agustus 2012
10 / 19
Overriding Method
Overloading vs Overriding
Overloading berhubungan dengan banyak method yang memiliki nama sama dalam satu class, namun memiliki input dan fungsi yang berbeda. Overriding berhubungan dengan sebuah method milik parent class yang diturunkan pada childnya, namun dengan fungsi yang berbeda sesuai kebutuhan child class. Overloading memungkinkan banyak cara untuk menggunakan sebuah method. Overriding memungkinkan lokalisasi method sesuai objek yang sedang digunakan.
Inheritance
31 Agustus 2012
11 / 19
Abstract Class
Abstract Class
Abstract class adalah class yang menggambarkan konsep dasar dari objek di bawahnya. Abstract class tidak bisa dibuatkan objek. Kita menggunakan modier abstract pada class header untuk menunjukkan class sebagai abstract. abstract class StaffKantor{ // kode ada di sini }
Inheritance
31 Agustus 2012
12 / 19
Abstract Class
Abstract Method
Sebuah abstract class memiliki abstract method yang tidak memiliki denisi. abstract double pay(); Selain itu abstract class juga dapat memiliki method dengan denisi lengkap. Setiap abstract method harus di-override oleh turunan dari abstract class.
Inheritance
31 Agustus 2012
13 / 19
Abstract Class
Untuk setiap kelas turunan BangunDatar, implementasikanlah method keliling dan luas sesuai jenis bangun datarnya. Jangan lupa untuk membuat constructor dan method setter-getter dari setiap atribut yang dimiliki kelas-kelas di atas.
Inheritance
31 Agustus 2012
14 / 19
Abstract Class
Inheritance
31 Agustus 2012
15 / 19
ArrayList
ArrayList
Sebuah class yang dapat digunakan untuk menyimpan nilai. Array vs ArrayList
Array adalah tipe primitif, tempat penyimpanan dengan kapasitas tetap. ArrayList adalah tipe objek, eksibel dalam hal kapasitas, menambah data, dan menghapus data.
Tambahkan di awal kode: import java.util.ArrayList; Lihat java API untuk melihat method-method dari class ArrayList.
Inheritance
31 Agustus 2012
16 / 19
ArrayList
segitiga.add(segi3); segitiga.add(segiSisi); segitiga.add(segiKaki); segitiga.add(segiSiku); integer.add(2); integer.add(new Integer(21)); string.add("pergi"); System.out.println(segitiga.size()); segitiga.remove(2); System.out.println(segitiga.get(2)); }
Lembaga Asisten (Fasilkom UI) Inheritance 31 Agustus 2012 17 / 19
ArrayList
Inheritance
31 Agustus 2012
18 / 19
ArrayList