Basic Java Application - Sesi 5

30
Basic Java Application Developer Rudi Hartono Comlabs USDI ITB Sesi 5 Erwin Ginanjar Comlabs USDI ITB Sesi 5 - Java Application Developer

description

Sesi 5 Pelatihan Basic Java Application Developer

Transcript of Basic Java Application - Sesi 5

Page 1: Basic Java Application - Sesi 5

Sesi 5 - Java Application Developer

Basic Java Application Developer

Rudi HartonoComlabs USDI ITB

Sesi 5

Erwin GinanjarComlabs USDI ITB

Page 2: Basic Java Application - Sesi 5

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

Page 3: Basic Java Application - Sesi 5

Sesi 5 - Java Application Developer

Timeline Pelatihan

1 2 3 4 5 6 7 8 9 10

Sesi

Page 4: Basic Java Application - Sesi 5

Sesi 5 - Java Application Developer

Timeline Pelatihan

1 2 3 4 5 6 7 8 9 10

Sesi

Page 5: Basic Java Application - Sesi 5

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

Page 6: Basic Java Application - Sesi 5

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

Page 7: Basic Java Application - Sesi 5

Sesi 5 - Java Application Developer

Duplikasi Obyek: Copy Reference

Page 8: Basic Java Application - Sesi 5

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();

}}

Page 9: Basic Java Application - Sesi 5

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();}

}

Page 10: Basic Java Application - Sesi 5

Sesi 5 - Java Application Developer

Kesamaan Obyek: Atribut dan Method Static

Page 11: Basic Java Application - Sesi 5

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);

}}

Page 12: Basic Java Application - Sesi 5

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();}

}

Page 13: Basic Java Application - Sesi 5

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

Page 14: Basic Java Application - Sesi 5

Sesi 5 - Java Application Developer

Chapter 7 - Pemograman Berorientasi ObyekI (Lanjutan)

Page 15: Basic Java Application - Sesi 5

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

Page 16: Basic Java Application - Sesi 5

Sesi 5 - Java Application Developer

Contoh Inheritanace

Silahkan tulis kode programnya!

Page 17: Basic Java Application - Sesi 5

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(){}”

Page 18: Basic Java Application - Sesi 5

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();

Page 19: Basic Java Application - Sesi 5

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

Page 20: Basic Java Application - Sesi 5

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();

}

Page 21: Basic Java Application - Sesi 5

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");}

}

Page 22: Basic Java Application - Sesi 5

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;

}}

Page 23: Basic Java Application - Sesi 5

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.

Page 24: Basic Java Application - Sesi 5

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

Page 25: Basic Java Application - Sesi 5

Sesi 5 - Java Application Developer

Contoh Kelas Inteface

public interface ContohInterface{public int FIELD = 1;public void method1();public void method2();

}

Page 26: Basic Java Application - Sesi 5

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);

}}

Page 27: Basic Java Application - Sesi 5

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();

}}

Page 28: Basic Java Application - Sesi 5

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{

}”

Page 29: Basic Java Application - Sesi 5

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.

Page 30: Basic Java Application - Sesi 5

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));

}}