Document - IKB112106 - STMIK EL RAHMA 7. Class Lanjut

More about Class
Maududie - 2010

Superclass & Subclass

Cetakan
Dpt mencetak
banyak instant dng
berbagai nilai
variabel yg berbeda

Superclass & Subclass
Nama: John Suroto
Alamat: Sidney
Pekerjaan: Direktur
Nama: Michael Slamin
Alamat: Baratan
Pekerjaan: Mahasiswa

Cetakan


Nama: Mariyam Jolie
Alamat: Madiun
Pekerjaan: PNS

Nama: Rebeccaningsih
Alamat: Kalisat
Pekerjaan: Siswa SMP

Masing2x
instant
memiliki
Nama, Alamat
& Pekerjaan
beda

Superclass & Subclass
class person {
private String Nama;
private String Alamat;
private String Pekerjaan;

public person (String Pekerjaan){
this.Pekerjaan = Pekerjaan;
}
public void setNama (String Nama){
this.Nama = Nama;
}
public void setAlamat (String Alamat){
this.Alamat = Alamat;
}

}
person pns1
mahasiswa1
direktur1
= new
= new
person(“PNS”);
=new
new
person(“Direktur”);

person(“Mahasiswa”);
siswaSMP1=
person(“Siswa
SMP”);
pns1.setNama
mahasiswa1.setNama
direktur1.setNama
= “Mariyam
= “John
“Michael
Jolie”;
Suroto”;
Slamin”;
siswaSMP1.setNama
==“Rebeccaningsih”;
pns1.setAlamat:
mahasiswa1.setAlamat:
direktur1.setAlamat:
“Madiun”;
“Sedney”;

“Baratan”;
siswaSMP1.setAlamat:
“Kalisat”;

Superclass & Subclass
7

7
Direktur

8
Mahasiswa

5
PNS

Siswa SMP

- Nama Perguruan- Nama
Nama Perusahaan

Tinggi Institusi- Nama Sekolah
- Alamat
- Alamat Sekolah
- Alamat Perguruan
Alamat Perusahaan
Tinggi Institusi
- No. Induk Pegawai
- No. Induk Siswa
- No. Induk Mahasiswa
No. Induk Pegawai
- Kelas
Gaji Pokok - Tahun Angkatan - Jabatan
- Pangkat
- SPP
- Fakultas
Tunjangan
- Golongan
- Jurusan
Fasilitas Perumahan
- Gaji Pokok

- SPP
Fasilitas Kendaraan
- Tunjangan

Masing-masing group memiliki jumlah & item variabel instan
yg berbeda

Superclass & Subclass
Direktur

tM
en
ga
ko
m

od
a

private String Nama;

private String Alamat;
private String Pekerjaan;

si

class person {

public person (String Pekerjaan){
this.Pekerjaan = Pekerjaan;
}

Mahasiswa

- Nama Perusahaan
- Nama Perguruan Ting
- Alamat Perusahaan
- Alamat Perguruan Tin
- No. Induk Pegawai
- No. Induk Mahasiswa
- Gaji Pokok

- Tahun Angkatan
-Tunjangan
- Fakultas
- Fasilitas Perumahan
- Jurusan
- Fasilitas Kendaraan
- SPP

→ Harus dimodifikasi
!!!!!!
PNS
Siswa SMP

Td
k

dp

public void setNama (String Nama){ - Nama Institusi - Nama Sekolah
- Alamat Institusi- Alamat Sekolah

this.Nama = Nama;
- No. Induk Pegawai
- No. Induk Siswa
}
- Jabatan
- Kelas
- SPP
public void setAlamat (String Alamat){- Pangkat
- Golongan
this.Alamat = Alamat;
- Gaji Pokok
}
- Tunjangan

}

Superclass & Subclass
Master Cetakan Person

Superclass


class person {
private String Nama;
private String Alamat;
private String Pekerjaan;

}

Cetakan Direktur

Cetakan Mahasiswa

Cetakan PNS

State & Behavior Person

State & Behavior Person

State & Behavior Person


State & Behavior Person

State & Behavior
Direktur

State & Behavior
Mahasiswa

State & Behavior
PNS

State & Behavior
Siswa SMP

Subclass

Cetakan Siswa SMP

Superclass & Subclass

erson{
ate String Nama;
ate String Alamat;
ate String Pekerjaan;

Class namaSubClass extends namaSuperClass{
}

Subclass “Direktur”
ic person(String Pekerjaan){
class direktur extends person{
is.Pekerjaan = Pekerjaan; private String NamaPerusahaan;
private String AlamatPerusahaan;
private String NIP;
ic void setNama (String Nama){
his.Nama = Nama;
public void setNamaPerusahaan
(String NamaPerusahaan){
this.NamaPerusahaan =
ic String getNama(){
NamaPerusahaan;
eturn this.Nama;
}
public String
getNamaPerusahaan(){

Superclass & Subclass
Superclass
- Nama
- Alamat
- Pekerjaan
- Nama
- Alamat
- Pekerjaan

- NamaPerusahaan
- AlamatPerusahaan
- NIP

Subclass “Direktur”
Pembuatan sebuah instan → “direktur1”
direktur
direktur direktur1
direktur1 == new
new direktur();
direktur();
direktur1.setNama("John
direktur1.setNama("John Suroto");
Suroto");
direktur1.setNamaPerusahaan("Rejeki
direktur1.setNamaPerusahaan("Rejeki Tiada
Tiada Habis");
Habis");

Superclass & Subclass

Instan untuk
tiap subclass

Superclass & Subclass
Soal:

Buatlah class sedan, truk, dan sepeda motor
dimana ketiga class tersebut merupakan
subclass dari otomobil

Superclass & Subclass
Konstruktor superclass???

person{
vate String Nama;
vate String Alamat;
vate String Pekerjaan;

Subclass “Direktur”

class direktur extends person{
private String NamaPerusahaan;
private String AlamatPerusahaan;
private String NIP;

lic person(String Pekerjaan){
public void setNamaPerusahaan
his.Pekerjaan = Pekerjaan;
(String NamaPerusahaan){

this.NamaPerusahaan =
NamaPerusahaan;
lic String getPekerjaan(){ }
return this.Pekerjaan;
public String
getNamaPerusahaan(){
return this.NamaPerusahaan;
}
direktur
direktur direktur1
direktur1 == new
new direktur();
direktur();
}
System.out.println("Pekerjaan:
System.out.println("Pekerjaan: "" ++ direktur1.getPekerjaan());
direktur1.getPekerjaan());

Superclass & Subclass
Konstruktor superclass???

person{
vate String Nama;
vate String Alamat;
vate String Pekerjaan;

Subclass “Direktur”

class direktur extends person{
private String NamaPerusahaan;
private String AlamatPerusahaan;
private String NIP;Konstruktor superclass

hanya diakses dari
lic person(String Pekerjaan){
public direktur(){ konstruktor subclassnya
his.Pekerjaan = Pekerjaan;
super (“Direktur”); Keyword “super”

}

lic String getPekerjaan(){ public void setNamaPerusahaan
return this.Pekerjaan;
(String NamaPerusahaan){
this.NamaPerusahaan =
NamaPerusahaan;
}
direktur
direktur direktur1
direktur1 == new
new direktur();
direktur();public String
System.out.println("Pekerjaan:
System.out.println("Pekerjaan: "" ++ direktur1.getPekerjaan());
direktur1.getPekerjaan());

getNamaPerusahaan(){

Kelas Abstrak
Kelas Person

Kelas Kucing

Seluruh state & method terdefinisikan dengan jelas → so
dpt diturunkan scr langsung menjadi instan

Kelas Abstrak
Kelas MahlukHidup Method: - tumbuh();
- makan();

Tdk terdefinisikan
scr jelas (abstrak)

Memiliki cara yang berbeda 2x dalam melaksanakan
tindakan (method)

Contoh lainnya ????

disebut dng “Kelas Abstrak”

Kelas Abstrak
• Memiliki state/behavior abstrak (tdk
terdefinisikan scr lengkap)
• Tdk dpt diturunkan dlm bentuk instan scr
langsung → hrs melalui subclass
• Definisi scr lengkap berada di subclass

Kelas Abstrak
• Menggunakan key-word “abstract”
Kelas Kendaraan
abstract class Kendaraan{
private String tipeKendaraan;
public Kendaraan(String tipeKendaraan){
this.tipeKendaraan = tipeKendaraan;
}
public String getTipeKendaraan(){
return this.tipeKendaraan;
}
public abstract void jalankan();
}

Belum terdefinisikan dng jelas

Kelas Abstrak
Kelas Kendaraan

abstract class Kendaraan{
…….
public abstract void jalankan();
}

class sepedaOntel extends Kendaraan {
public sepedaOntel(){
super("Sepeda Ontel");
}
public void jalankan(){
System.out.println("Duduklah di atas sadel " +
this.getTipeKendaraan() +
“, lalu pegang kemudinya” +
" dan kayuhlah sampai capek.");
}
}

Kelas Abstrak
Kelas Kendaraan

abstract class Kendaraan{
…….
public abstract void jalankan();
}

class sepedaMotor extends Kendaraan{
public sepedaMotor(){
super("Sepeda Motor");
}

public void jalankan(){
System.out.println("Duduklah di atas sadel " +
this.getTipeKendaraan() +
", hidupkan mesinnya, lalu pegang kemudinya \n" +
" dan perbesar gasnya sampai habis.");
}
}

Kelas Abstrak
sepedaOntel ontel1 = new sepedaOntel();
System.out.println(ontel1.getTipeKendaraan());
ontel1.jalankan();

sepedaMotor motor1 = new sepedaMotor();
System.out.println(motor1.getTipeKendaraan());
motor1.jalankan();

Buat contoh kelas abstrak….