Inheritance
Inheritance
Salah satu materi yang harus kalian pahami dan pelajari pada bahasa OOP adalah
Konstruktor, konstruktor adalah fungsi atau method yang pertama kali dijalankan pada saat
sebuah objek pertama kali diciptakan, penamaan method pada konstruktor harus sama
dengan nama classnya.
Konstruktor pada umumnya digunakan untuk menginisialisasi dan memberikan nilai secara
langsung atau melalui parameter kepada sebuah objek pada saat objek pertama kali
diciptakan.
Untuk contoh yang pertama, kita akan membuat program sederhana menggunakan
konstruktor tampa parameter, pada program ini kita akan membuat beberpa variabel,
dimana pada variable tersebut sudah kita set nilainya, didalam konstruktor akan kita ubah
semua nilai pada variable tersebut.
Buat sbuah project baru dengan cara klik file-new project, maka akan tampil kotak dialog
baru di bawah ini :L
Pada Categories pilih java dan pada Project pilih Java Aplication, dan klik tombol next,
maka akan tampil kotak dialog di bawah ini :
Pad aproject name ketikan nama projext dengan nama latihan4, pada project location,
pastikan tersimpan di folder masing-masing, di sini saya akan simpan di D:\NOFRIADI\
SI3D, jiksa sudah klik tombol finish, maka kita akan di bawa ke de dalam source code
program,
Di bawah package latihan4 buat deklaraaso variable
String kelas="si3d";
int jumlah_mahasiswa=35;
setelah deklarasi variable buat sebuah konstruktor dimana nama konstruktor sama dengan
nama kelas,
public Latihgan4(){
kelas="belajar";
jumlah_mahasiswa=35;
Setelah itu di dalam main utama buat sebuah objek dari nama kelas, seperti dio bawah ini
System.out.println(lat.kelas);
System.out.println(lat.jumlah_mahasiswa);
Untuk program lengkapnya perhatikan kode di bawh ini :
Disana terdapat 2 buah variable yang sudah kita set nilainya masing-masing, tapi didalam
kunstruktor kita ubah nilai pada variable, saat kita panggil kedua variable tersebut pada method
main, nilai yang akan keluar adalah nilai variable yang berada didalam konstruktor, bukan yang di
atasnya.
Parameter merupakan nilai yang bisa kita oper pada fungsi, seperti konstruktor atau method,
parameter tersebut bisa kita gunakan jika nilai didalam fungsi tersebut ingin kita rubah, kita dapat
menembahkan beberapa parameter dalam satu fungsi. Perhatikan kode program di bawh ini :
package latihgan4;
String kelas="si3d";
int jumlah_mahasiswa=35;
kelas=kelas_si;
jumlah_mahasiswa=banyak_mahasiswa;
// membuat objek 1
// membuat objek 2
System.out.println(lat.kelas);
System.out.println(lat.jumlah_mahasiswa);
System.out.println(lat2.kelas);
System.out.println(lat2.jumlah_mahasiswa);
}
INHERITANCE
Untuk mempelajari konsep pewarisan/inheritance pada java, kita akan bermain dengan
menggunakan 3 buah class sekaligus, di ketiga class tersebut tertdapat 1 buah superclass (class
induk) dan 2 buah subclass (kelas anak). Inheritance merupakan sifat atau konsep pewarisan pada
java, dimana kita dapat mengakses sifat ataupun method dari class lain.
Untuk mengakses sifat atau objek dari class lain, kita harus menggunakan kata kunci extends pada
class anak/subclass, dengan menggunakan kata kuni extends, kita dapat mewarisi sifat-sifat dari
superclass yang dituju
Pertama buatlah package (opsional) dan 3 buah class baru, berinama masing-masing class
tersebut, misalnya class kendaraan, mobil dan class motor, class kendaraan akan kita gunakan
sebagai superclass (class induk), class motor dan class mobil akan digunakan sebagai subclass
(class anak) dimana class motor dan mobil akan mewarisi sifat-sifat dari class kendaraan.
Buat sebuah project baru dengan cara klik menu file dan pilih new project, maka akan tampil
kotak dialog baru, pada Project Name isikan INHERITANCE, pada project location,, simpan pada
folder yang di inginkan, setelah itu klik tombol finish perhatikan gambar di bawah ini :
Buat sebuah package baru dengan cara klik kanan project yang sudah di buat pilih new-Java
Package, maka akan tampil kotak dialog baru, pada Package Name ketikan inheritance dan klik
tombol finish
pada gambar di atas yang ada dalam kotak merah adalah package yang sudah di buat, setelah itu
buat sebuah class baru dengan cara klik kanan package pilih new-Java Class, maka akan tampil
kotak dialog baru, perhatikan gambar di bawah ini :
Pada Class Name ketikan nama kelas dengan kendaraan, dan klik tombol finish
Setelah itu kita akan dibawa
Jika kita jalankan, program pada class tersebut tidak akan berjalan karena tidak ada method main,
pada tutorial ini kita tidak akan menambahkan method main pada class tersebut, method main
akan kita gunakan pada subclass class kita yaitu mobil dan motor, karena semua sifat pada class
kendaraan akan diakses dan dijalankan pada class mobil dan motor.
Selanjutnya buka class motor.java, untuk menggunakan konsep Inheritance, kita perlu
menggunakan kata kunci extends pada subclass tersebut dan untuk mengakses atribut-atributnya,
kita perlu membuat objek dari class motor terlebih dahulu. Seperti berikut ini:
Jiika sudah di jalankan coba jalankan, jika tidak ada masalah maka akan hasil seperti gambar di
bawah ini :
Kalian juga dapat menggunakn atribut yang sama pada class mobil.java, yang diwariskan dari class
kendaraan, pada class mobil kalian tinggal mengganti nilai-nilainya seperti berikut ini:
Buat sebuah project baru dengan cara klik file-new project, maka akan tampil kotak dialog
baru di bawah ini :
Pada Categories pilih java dan pada Project pilih Java Aplication, dan klik tombol next,
maka akan tampil kotak dialog baru, pada Project Name ketikan SistemPewarisan setelah
itu klik tombol finish, perhatikan gambar
di bawah ini :
Gambar di bawah ini adalah tampilan project yang sudah siap di buat
Baut sebuah class baru pada project dengan cara klik kanan package pada project, pilih new, dan
pilih java class, perhatikan gambar di bawah ini
Pada Class Name ketikan Persegi, setelah itu klik tombol finish
Setelah itu kita akan di bawa ke dalam source code program seperti gambar di bawah ini :
Langkah pertama yang harus di lakukan adalah mendeklarasikan variable yang di butuhkan dalam
menghitung luas persegi, seperti di bawah ini :
Sekarang kita akan mengenerate kode program dengan konsep getter and setter, dengna cara klik
kanan layar kerja pilih getter and setter, seperti gambar di bawah ini :
Setelah kita pilih getter and setter, maka akan tampil kotak dialog baru, centang variable panjang
dan lebar, setelah itu klik tombol generate, perhatikan gambar di bawah ini
Gambar di bawah ini merupakan tampilan layar kerja setelah generate variable panjang dan lebar
Parameter yang ada dalam method boleh di rubah seperti gambar dibawah ini, hal ini bertujuan
untuk membedakan parameter yang di gunakan
Buat sebuah method baru untuk menghitung luas persegi, dan ketikan kode program di bawah
ini :
Buat satu buah class lagi dengan nama balok, perhatikan gambar di bawah ini :
Di dalam class balok ini kita akan menghitung volume dari sebuah balok,dimana rumus volume
balok adalah v=panjang x lebar x tinggi. Namun untuk panjang dan lebar nilainya akan kita ambik
dari class persegi. Supaya variable panjang yang ada di dalam class persegi bias di gunakan di
dalam class balok, maka kita harus membuat class balok turunan/ pewarisan dari class persegi.
Untuk membuat system pewarisan dalam sebuah class adalah dengan menggunakan kata kunci
extend. Adapun cara penulisan nya adalah sebagai berikut :
gambar di bawah ini merupakan class balok yang sudah di warisi dari class persegi
Karen class balok sudah di warisi dari class peresegi, maka di dalam class balok cukup membuat 1
buah variable aja yaitu variable tinggi, setelah itu generate kode programnya dengan cara
menggunakan getter and setter seperti pada class persegi, perhatikan gambar di bawah ini
GetPanjang() dan getLebar() merupakan sebuah method yang ada di class persegi dimana
masing-masingnya berisi variable panjang dan lebar
Selanjutnya pada file SistemPewarisan kita buat objek dari class persegi dan balok sehingga bisa
membarikan nila kepada masing-masing variable yang berada di masing-masing class. Perhatikan
gamabr di bawah ini :
Jika sudah siap, silahkan di jalankan, jika tidak ada masalah, maka hasilnya akan seperti di bawah
ini :
Untuk merubah nilai variable menjadi dinamis , maka bisa menggunakan salah satu alat baca
input, disini kita mencoba menggunakan showInputDialog,
ENKAPTULATION
package pertemuan6;
import java.util.Scanner;
package pertemuan6;
System.out.println("Fakultas :"+Fakultas);
void nilaiMahasiswa(double Tugas1, double Tugas2, double Tugas3, double UTS, double
UAS){
package pertemuan6;
import java.util.Scanner;
String NIK,Nama,JenisKelamin;
int Umur;
String NIM,Fakultas,Jurusan;
double Tugas1,Tugas2,Tugas3;
double hasil;
NIK = SC.nextLine();
Nama = SC.nextLine();
Umur = SC.nextInt();
SC.nextLine();
NIM = SC.nextLine();
Fakultas = SC.nextLine();
Jurusan = SC.nextLine();
System.out.println("Masukkan TGS1");
Tugas1 = SC.nextDouble();
System.out.println("Masukkan TGS2");
Tugas2 = SC.nextDouble();
System.out.println("Masukkan TGS3");
Tugas3 = SC.nextDouble();
UTS = SC.nextDouble();
Polimorfisme
Poly artinya banyak, morfisme artinya bentuk. Polimorfisme (bahasa inggris olymorphism)
adalah sebuah prinsip dalam biologi di mana oraganisme atau spesias dapat memiliki
banyak bentuk atau tahapan (stages). Prinsip ini juga diadopsi pada pemrograman
berorientasikan objek. Sehingga kita dapat definisikan sebagai berikut:
Polimorfisme dalam OOP adalah sebuah prinsip di mana class dapat memiliki banyak
“bentuk” method yang berbeda-beda meskipun namanya sama. “Bentuk” di sini dapat kita
artikan: isinya berbeda, parameternya berbeda, dan tipe datanya berbeda
Beda dari keduanya terletak pada cara membuat polimorfismenya. Polimorfisme statis
menggunakan method overloading sedangkan polimorfisme dinamis menggunakan
method overriding. Karena kamu baru mendengar kedua hal ini, mari kita bahas
perbedaanya lebih detail:
Method overloading terjadi pada sebuah class yang memiliki nama method yang sama
tapi memiliki parameter dan tipe data yang berbeda.
Contohnya giaman?
Contohnya misalkan kita memiliki class Lingkaran.java. Pada class ini terdapat method
luas(). Nah, si method luas() ini bisa saja memiliki parameter yang berbeda.
Misalnya kita ingin menghitung luas berdasarkan jari-jari (radius) atau diameter.
class Lingkaran {
Coba perhatikan , Class Lingkaran memiliki dua method yang namanya sama, yakni
luas(). Tapi parameter dan tipe datanya berbeda.. dan juga isi atau rumus di dalamnya
berbeda. Inilah yang disebut polimorfisme satatis.
Pada pewarisan, kita bisa mewariskan atribut dan method dari class induk ke class anak.
Class anak akan memiliki nama method yang sama dengan class induk dan anak yang
lainnya.
Class anak akan memiliki nama method yang sama, tapi nanti isi dan parameternya bisa
berbeda dari class induk.
Interface adalah class kosong yang berisi nama-nama method yang nanti harus
diimplementasikan pada class lain. Dalam pengimplementasiannya bisa saja tiap-tiap class
akan mengimplementasikan secara berbeda dengan nama method yang sama.
Sedangkan polimorfisme dinamis terjadi pada saat ada hubungan dengan class lain seperti
inheritance.
Contoh program polimorfisme dinamis sebenarnya sudah pernah kita buat pada
pembahasan inheritance.
Pada diagram tersebut, terdapat class BanungDatar yang memiliki tiga subclass, yaitu:
Persegi, Lingkaran, dan Segitiga.
Setiap class memiliki method yang sama yaitu luas() dan keliling(). Akan tetapi
method-method ini memiliki isi rumus yang berbeda.
1. Klik File –New project, maka akan tampil kotak dialog baru
2. pada Categories pastika di pilih java dan pada Projects, pilih Java Aplication dan
klik tombol Next maka akan tampil kotak dialog baru, pada Project Name ketikan
nama projectnya dengan nama Poliporisme, pada Project Location, tenteukan
tempat penyimpanan project yang di buat. Dan hilangkan tanda centang pada Creat
Main Class, setelah itu klik tombol finish
3. Jika sudah selesai, maka akan tercipta sebuah project seperti gambar di bawah ini :
4. Buat sebuah package baru dengan cara klik kanan project yang sudah ada pilih new
dan pilih Java Package
5. Pada Package Name ketikan nama packagenya dengan nama bangun_datar dan klik
tombol finish
6. Buat class baru di dalam package bangundatar. Caranya, klik kanan lalu pilih
New Java Class, pad Class Name ketikan BangunDatar, dan klik tombol finish
9. Buat class baru dengan nama segitiga, dan ketikan kode program di bawha ini:
10. Buat class baru dengan nama lingkaran dan ketikan kode program di bawah ini