PBO Lanjutan

19
UNIVERSITAS UNIVERSITAS BUDI LUHUR BUDI LUHUR FAKULTAS FAKULTAS TEKNOLOGI INFORMASI TEKNOLOGI INFORMASI www.bl.ac.id www.bl.ac.id HAL : HAL : 1 PBO Lanjutan Kelas (Lanjutan)

description

PBO Lanjutan. Kelas (Lanjutan). Composition. Suatu class yang mempunyai field (instance variable) yang merupakan referensi obyek dari class yang lain - PowerPoint PPT Presentation

Transcript of PBO Lanjutan

Page 1: PBO Lanjutan

UNIVERSITAS UNIVERSITAS BUDI LUHURBUDI LUHUR

FAKULTAS FAKULTAS TEKNOLOGI TEKNOLOGI INFORMASIINFORMASI

www.bl.ac.idwww.bl.ac.id

HAL : HAL : 11

PBO Lanjutan

Kelas (Lanjutan)

Page 2: PBO Lanjutan

FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR

HAL : HAL : 22

• Suatu class yang mempunyai field (instance variable) yang merupakan referensi obyek dari class yang lain

• Contoh : ada class Penduduk yang terdiri dari Nama dan Almt. Field Almt bisa saja merupakan referensi obyek dari class yang lain, yaitu Alamat yang berisi NamaJalan, Rt, Rw dan NoRumah

Composition

Page 3: PBO Lanjutan

FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR

HAL : HAL : 33

Contoh Program

class Alamat{

private String NamaJalan;private String Rt;private String Rw;private String NoRumah;

public Alamat(String w, String x, String y, String z){

NamaJalan =w;Rt=x;Rw=y;NoRumah=z;

}

Page 4: PBO Lanjutan

FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR

HAL : HAL : 44

public String TampilAlamat(){return NamaJalan + " Rt." + Rt + " Rw." + Rw + " No." + NoRumah;}

} //akhir dari class Alamat

class Penduduk{ private String Nama;

private Alamat Almt;

public Penduduk(String x, Alamat y){ Nama =x;

Almt =y;}

public String TampilOrang(){ return Nama + "\nAlamatnya : "+Almt.TampilAlamat();}

} //Akhir dari class Penduduk

Page 5: PBO Lanjutan

FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR

HAL : HAL : 55

public class kompos1{

public static void main(String args[]){

Alamat a = new Alamat("Petukangan","004","016","30");Penduduk p1 = new Penduduk("Safrina", a);System.out.println(p1.TampilOrang());

}}

Hasilnya:

Page 6: PBO Lanjutan

FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR

HAL : HAL : 66

Garbage Collector

• Mengembalikan memory ke system• Java melakukan hal ini secara otomatis• Obyek bisa ditandai untuk garbage collection

jika sudah tidak ada referensi ke obyek tersebut

• Ada method ‘finalize’ yang dijalankan sebelum garbage collector

• Methode finalize bersifat void dan tidak memerlukan parameter

Page 7: PBO Lanjutan

FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR

HAL : HAL : 77

class kursi{

private int tinggi;private String warna;private static int jum_kursi;

public kursi(int x, String y){

tinggi=x;warna=y;jum_kursi=jum_kursi+1;System.out.println("konstruktor kursi dijalankan...");

}

public String getWarna(){

return warna;}

Page 8: PBO Lanjutan

FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR

HAL : HAL : 88

public int getTinggi(){

return tinggi;}

public int getJum_kursi(){

return jum_kursi;}

protected void finalize(){jum_kursi=jum_kursi-1;System.out.println("Finalize dijalankan, jumlah obyek kursi skrg : “+jum_kursi);}

}

Page 9: PBO Lanjutan

FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR

HAL : HAL : 99

public class garbage1{

public static void main(String args[]){

kursi k1 = new kursi(5,"Hijau");kursi k2 = new kursi(10,"Merah");System.out.println("Warna kursi : "+k1.getWarna());System.out.println("Tinggi kursi : "+k1.getTinggi());System.out.println("Jumlah kursi : "+k1.getJum_kursi());System.out.println("Warna kursi : "+k2.getWarna());System.out.println("Tinggi kursi : "+k2.getTinggi());System.out.println("Jumlah kursi : "+k2.getJum_kursi());k1=null;System.gc();System.out.println("Jumlah kursi stlh gc : "+k2.getJum_kursi());

}}

Page 10: PBO Lanjutan

FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR

HAL : HAL : 1010

Hasilnya :

Page 11: PBO Lanjutan

FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR

HAL : HAL : 1111

Static Class Member

• Menggunakan keyword ‘static’• Merupakan class variable (tiap obyek yang

terbentuk dari class tersebut akan berbagi/share variabel yang sama), bukan instance variable

• Akses ke static class member yang bersifat public gunakan nama class nya dan tanda titik (.)

• Akses ke static class member yang bersifat private gunakan methodnya yang bersifat public

Page 12: PBO Lanjutan

FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR

HAL : HAL : 1212

Contoh akses ke public static class memberclass kotak{

private int panjang;private int lebar;public static int jum_kotak;

public kotak(int x, int y){

panjang = x;lebar = y;jum_kotak = jum_kotak + 1;

}

public int getKotak(){

return jum_kotak;}

}

Page 13: PBO Lanjutan

FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR

HAL : HAL : 1313

public class kotak1{

public static void main (String args[]){

kotak k1 = new kotak(3,2);System.out.println("Jumlah kotak : "+kotak.jum_kotak);kotak k2 = new kotak(4,3);System.out.println("Jumlah kotak : "+kotak.jum_kotak);

}}

Hasilnya :

Page 14: PBO Lanjutan

FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR

HAL : HAL : 1414

Contoh akses ke private static class memberclass kotak{

private int panjang;private int lebar;private static int jum_kotak;

public kotak(int x, int y){

panjang = x;lebar = y;jum_kotak = jum_kotak + 1;

}

public int getKotak(){

return jum_kotak;}

}

Page 15: PBO Lanjutan

FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR

HAL : HAL : 1515

public class kotak1{

public static void main (String args[]){

kotak k1 = new kotak(3,2);System.out.println("Jumlah kotak :

"+k1.getKotak());kotak k2 = new kotak(4,3);System.out.println("Jumlah kotak :

"+k2.getKotak());//k2.getKotak() bisa juga diganti mjd

k1.getKotak(), //karena mereka berbagi field jum_kotak

}}

Hasilnya :

Page 16: PBO Lanjutan

FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR

HAL : HAL : 1616

Final Instance Variable

• Menggunakan keyword ‘final’• Diterapkan pada instance variable atau

field• Untuk membuat konstanta• Menyebabkan field tidak bisa diubah

setelah proses inisialisasi.

Page 17: PBO Lanjutan

FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR

HAL : HAL : 1717

Contoh Program :class kelas{

private String namakelas;private final int jum_isi;

public kelas(String x, int y){ namakelas=x;

jum_isi=y;}public String getNamaKelas(){ return namakelas;}public int getJum_isi(){ return jum_isi;}

/*public void nambah(){

jum_isi++;}*/

}

Page 18: PBO Lanjutan

FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR

HAL : HAL : 1818

public class final1{

public static void main(String args[]){

kelas k1 = new kelas("XB",50);System.out.println("Isi final jum_isi : "+k1.getJum_isi());

}}

Hasilnya :

Page 19: PBO Lanjutan

FAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHURFAKULTAS TEKNOLOGI INFORMASI - UNIVERSITAS BUDI LUHUR

HAL : HAL : 1919

• Kalau tanda remark pada class kelas dibuka, maka akan terjadi kesalahan. Karena field jum_isi yang bersifat final dicoba untuk diubah dengan cara ditambah dengan 1.

Errornya :