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….
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….