Basic Java Application Developer Rudi Hartono Comlabs USDI ITB Sesi 5 Erwin Ginanjar Comlabs USDI ITB Sesi 5 - Java Application Developer
Jun 29, 2015
Sesi 5 - Java Application Developer
Basic Java Application Developer
Rudi HartonoComlabs USDI ITB
Sesi 5
Erwin GinanjarComlabs USDI ITB
Sesi 5 - Java Application Developer
Objektif
1. Mengerti dan familiar dengan bahasa pemrograman Java
2. Memahami konsep pemrograman berorientasi objek
3. Mampu menggunakan Integrated Development Environment Netbeans
4. Mampu membangun program aplikasi desktop berbasis GUI Java
Sesi 5 - Java Application Developer
Timeline Pelatihan
1 2 3 4 5 6 7 8 9 10
Sesi
Sesi 5 - Java Application Developer
Timeline Pelatihan
1 2 3 4 5 6 7 8 9 10
Sesi
Sesi 5 - Java Application Developer
Sesi 5
Lesson 6 : Pemograman Berorientasi Objek I• Kasus : Kelas Mahasiswa • Duplikasi Obyek: Copy Reference • Kesamaan Obyek: Atribut dan Method Static • Kasus: Kelas Tabungan
Lesson 7 : Lanj PBO I • Inheritance: Penurunan Sifat• Polymorphism• Kelas dan Method Abstrak• Inteface: Kelas Antarmuka
Sesi 5 - Java Application Developer
Kasus: Kelas Mahasiswa
Kelas:Mahasiswa, DriverMahasiswa
Atribut:Nama, NIM, TempatLahir, TanggalLahir, Fakultas, Nilai
Method:set_nama, get_name, set_tempat_lahir, get_tempat_lahir,
set_tanggal_lahir, get_tanggal_lahir,set_fakultas, get_fakultas,set_nilai, get_nilai,display_data_mahasiswa
Silakan dibuat Programnya :D
Sesi 5 - Java Application Developer
Duplikasi Obyek: Copy Reference
Sesi 5 - Java Application Developer
public class DriverMahasiswa{public static void main(String args[]){
Mahasiswa M1 = new Mahasiswa("Rudi","1001128","Bandung","07-07-1992","FPMIPA",90);
M1.display_data_mahasiswa();
//copy by referenceMahasiswa M2 = M1;
M2.set_nama("Erwin");M2.set_tempat_lahir("Purweredjo");M2.set_tanggal_lahir("18-09-1988");
M1.display_data_mahasiswa();M2.display_data_mahasiswa();
}}
Sesi 5 - Java Application Developer
public class DriverMahasiswa{public static void main(String args[]){Mahasiswa M1 = new Mahasiswa("Rudi","1001128","Bandung","07-07-1992","FPMIPA",90);
M1.display_data_mahasiswa();
//copy by referenceMahasiswa M2 = M1;
M2.set_nama("Erwin");M2.set_tempat_lahir("Purweredjo");M2.set_tanggal_lahir("18-09-1988");
//copy by valueMahasiswa M3 = new Mahasiswa();M3.copy_by_value("Riza","120007","Ciamis","30-12-1994",M1.get_fakultas(),80);
M1.display_data_mahasiswa();M2.display_data_mahasiswa();M3.display_data_mahasiswa();}
}
Sesi 5 - Java Application Developer
Kesamaan Obyek: Atribut dan Method Static
Sesi 5 - Java Application Developer
public class StaticTest{private static int atr1 = 1;public static int atr2 = 2;private int atr3 = 2;public static void write_static(){
System.out.println("Method Static");}public void write_non_static(){
System.out.println("Bukan Method Static");}public static void a(){
System.out.println("atr1 = " + StaticTest.atr1);System.out.println("atr1 = " + StaticTest.atr2);//nilai berikut akan error//method static tidak boleh mengakses atribut non-static//System.out.println("atr1 = " + this.atr1);
}
public void b(){System.out.println("Method non-static");System.out.println("atr1 = "+ this.atr1);System.out.println("atr2 = "+ this.atr2);System.out.println("atr3 = "+ this.atr3);
}}
Sesi 5 - Java Application Developer
public class DriverStaticTest{
public static void main(String[] args){System.out.println(StaticTest.atr2);//baris perintah berikut tidak dianjurkan//StaticTest.atr2 = -2;
StaticTest.write_static();StaticTest.a();
StaticTest st = new StaticTest();st.write_non_static();st.b();
//perintah berikut tidak error, namun tidak dianjurkan//System.out.println(ST.atr2);//st.write_static();}
}
Sesi 5 - Java Application Developer
Latihan: Kasus Kelas TabunganKelas:Tabungan, DriverTabungan
AtributNama, NomorRekening,
BiayaAdministrasi,SaldoAwal,SukuBunga,LamaMenabung,SaldoAkhir
Method:setNama,
getNama,setNomorRekening,getNomorRekening,setBiayaAdministrasi,getBiayaAdministrasi, setSaldoAwal, getSaldoAwal, setLamaMenabung, getLamaMenabung, setSaldoAkhir, getSaldoAkhir
Sesi 5 - Java Application Developer
Chapter 7 - Pemograman Berorientasi ObyekI (Lanjutan)
Sesi 5 - Java Application Developer
Inheritanace
Pewarisan sifat yang diturunkan kelas di atasnya (superclass) ke kelas anak (subclass)
Untuk membuat subclass dari sebuah superclass digunakan kata kunci extends.
Code :public class MahasiswaMagister extends Mahasiswa
Sesi 5 - Java Application Developer
Contoh Inheritanace
Silahkan tulis kode programnya!
Sesi 5 - Java Application Developer
Penting terkait Inheritanace1. Overriding: Pendefinisian ulang method-method
yang ada pada superclass pada kelas turunannya. Jika overriding telah dilakukan maka method tersebut yang ada pada superclass tidak akan dipanggil lagi.
2. this: digunakan untuk memanggil method atau atribut milik dirinya sendiri.
3. super : untuk memanggil method atau atribut milik superclass
4. Jika method tidak mau di-overriding oleh subclass maka deklarasikan sebagai method final.
“public final void nama_method(){}”
Sesi 5 - Java Application Developer
Polymorphism: Perubahan BentukPerhatikan kode berikut:Mahasiswa[] M = new Mahasiswa[2];M[0] = new Mahasiswa();M[1] = new MahasiswaMagister();
Catt: subclass dapat menginstansiasi superclass, tetapi tidak sebaliknya.
Contoh:
Mahasiswa[] M = new MahasiswaMagister();
Sesi 5 - Java Application Developer
Kelas dan Method AbstrakKelas Abstrak adalah kelas yang memiliki setidaknya
satu buah method abstrak. Body method tidak didefinisikan pada kelas abstrak.
Dan untuk subclass yang menjadi turunan kelas abstrak mendefinisikan setiap method abstraknya.
Lihat contoh
Sesi 5 - Java Application Developer
Kelas Abstrak
public abstract class KelasAbstrak{public abstract void method1();public void method2(){
System.out.println("method2");}public abstract void method3();
}
Sesi 5 - Java Application Developer
Turunan Kelas Abstrak
public class TurunanKelasAbstrak extends KelasAbstrak{public void method1(){
System.out.println("method1");}public void method3(){
System.out.println("method3");}
}
Sesi 5 - Java Application Developer
Driver Turunan Kelas Abstrakpublic class DriverTurunanKelasAbstrak{
public static void main(String args[]){//kode berikut akan error//kelas abstrak tidak bileh di instansiasi//KelasAbstrak a = new KelasAbstrak();
//deklarasi kelas abstrak dipernankanKelasAbstrak a;TurunanKelasAbstrak b = new
TurunanKelasAbstrak();
//assignmen kelas abstrak dengan objek dari turunannya
//yang bukan kelas abstrak dipernankana = b;
}}
Sesi 5 - Java Application Developer
Jadi Kegunaan Kelas Abstrak adalah
Kelas Abstrak berguna apabila kita ingin membuat turunan dari sebuah kelas dari sebuah kelas yang bersifat global, dimana seluruh kelas-kelas turunannya memiliki beberapa method yang sama dengan implementasi yang berbeda-beda. Dengan demikian kita dapat membuat bentuk globakl dari kelas-kelas yang memiliki implementasi method berbeda tersebut ke dalam sebuah keas abstrak.
Sesi 5 - Java Application Developer
Kelas Antarmuka: Interface
Karakteristik kelas antarmuka:1. Tidak ada satupun method ada inteface yang boleh memiliki
body2. Seluruh method yang ada pada interface harus bersifat
public3. Bodu dari setiap method dituliskan pada kelas yang menjadi
implementasi sebuah interface4. (jika ada) atribut pada sebuah interface harus berupa
konstanta, memiliki modifier public final. Jika tidak dideklarasikan, maka secara otomatis field tersebut akan berupa public final
5. Interface tidak dapat diinstansiasi.
Mirip dengan kelas Abstrak
Sesi 5 - Java Application Developer
Contoh Kelas Inteface
public interface ContohInterface{public int FIELD = 1;public void method1();public void method2();
}
Sesi 5 - Java Application Developer
Contoh Implementasi Kelas Inteface
public class ImplementasiInterface implements ContohInterface{private int x;public void method1(){
System.out.println("method1");}public void method2(){
System.out.println("method2");//kode berikut akan error//this.FIELD = 2
}public void method3(){
System.out.println("method3");System.out.println(this.x);
}}
Sesi 5 - Java Application Developer
Contoh Driver Kelas Intefacepublic class DriverInterface{
public static void main(String args[]){String.out.println(ContohInterface.FIELD);
System.out.println(ImplementasiInteface.FIELD);
//kode berikut akan error//ContohInterface impl = new ContohInterface();ImplementasiInteface impl = new
ImplementasiInteface();impl.method1();impl.method2();
}}
Sesi 5 - Java Application Developer
Bonus: Kelas Final dan Obyek
Kelas Final: Kelas yang dideklarasikan sebagai final tidak dapat lagi diturunkan menjadi kelas lain, atau dengankata lain kelas final tidak memiliki satupun subclass. Cara penulisannya:
“public final class KelasFinal{
}”
Sesi 5 - Java Application Developer
Obyek
Secara tidak langsung seluruh kelas merupakan turunan atau subclass dari kelas object. Dengan demikian instance dari sebuah kelas dapat di assgin terhadap variable dengan tipe object.
Sesi 5 - Java Application Developer
Obyek
public final class KelasObjek(){public static void main(String args[]){
Obejct o;Mahasiswa M = new Mahasiswa();System.out.println("M Instanceof
Mahasiswa", + (M instanceof Mahasiswa));System.out.println("M instanceof
Mahasiswa", + (M instanceof Object));
}}