Top Banner
TRAINING JAVA TRAINING JAVA LAB TI-2005 LAB TI-2005
50
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Training Java

TRAINING JAVATRAINING JAVALAB TI-2005LAB TI-2005

Page 2: Training Java

Struktur Program Java[ class kelas1{

[ tipe_data variabel; ][ public/private void method {

…}

][ public/private tipe_data method {

…return [nilai-kembalian];

] }

]class utama {public static void main(String args[ ]){

…}

}

Pendefinisian Procedure

Pendefinisian Fungsi

Method Utama

Page 3: Training Java

Struktur Class Javapublic class Mahasiswa {

}

private String nama;private int umur;

private Mahasiswa(){this.nama = 20;this.umur = “Andi;

}private Mahasiswa(int u, String n){

this.nama = u;this.umur = n;

}public String namanya(){return this.nama;

}public void simpan_nama(String n){

this.nama = n;}

Class Declaration

Variabel

Konstruktor

Class Body

Method

Page 4: Training Java

Penggunaan Object Java

Ada 2 tahap untuk dapat menggunakanobject :1. Deklarasi variabel yang akan digunakan

untuk memegang referensi ke objectcontoh : Mahasiswa A;

2. Membuat objectcontoh : A = new Mahasiswa();

Page 5: Training Java

Perbedaan Tipe Data Primitif danTipe Data Class

Pernyataan :

Tipe data Class

Tipe data Primitif Int a = 10;

Efek di memori :a10

Mahasiswa a = new Mahasiswa();

aAlamat dari

ObjekMahasiswa umur

Nama

Objek Mahasiswa

Page 6: Training Java

Method

Digunakan untuk mengelompokkanbeberapa instruksi yang sama, yang akandiinstruksi pada beberapa bagian yangberbeda dalam satu program.

Page 7: Training Java

Pendeklarasian MethodTipe-data NamaMethod(daftar-parameter){//implementasi

}Tipe-data :Tipe data dari nilai yang dapat dikembalikan oleh method. Dapat berupa tipedata primitif, tipe data class, atau void. void tidak mengembalikan nilaiapapun. Jika method berupa fungsi (pengembalian nilai) atau bukan void,maka perlu ditambahkan perintah : return [nilai-pengembalian].NamaMethodSebagai pengenal method.Daftar-parameterBerupa sekumpulan variabel yang dipisahkan dengan tanda koma ( , ).

Page 8: Training Java

Contoh Penggunaan Method Dalam Program

class Mahasiswa {String nama;int umur; void setMahasiswa(String param1, int param2) {

nama = param1;umur = param2;

}void cetakKeLayar() {

System.out.println("Nama : " + nama + ", umurnya : " + umur);}

} class demoMahasiswa2 {

public static void main(String[] args) {Mahasiswa a;a = new Mahasiswa();a.setMahasiswa("Andi", 20);a.cetakKeLayar();

} }

Deklarasi MethodDeklarasi Method

Pemanggilan MethodPemanggilan Method

Page 9: Training Java

Pass By Value & Pass By Reference

• Pass By Value : Parameter berupa tipedata primitif.

• Pass By Reference : Parameter berupatipe data class

Page 10: Training Java

Contoh Pass By Value & Pass By Reference

class Testaja {

int i,j;Testaja(int a, int b) {

i = a;j = b;

}

/*pass by value dengan parameter berupa tipe data primitif*/void calculate(int m, int n) {

m = m*10;n = n/2;

}

/*pass by reference dengan parameter berupa tipe data class*/void calculate(Testaja a) {

a.i = a.i*10;a.j = a.j/2;

}}

Page 11: Training Java

Contoh Pass By Value & Pass By Reference (Sambungan)class ByValueByReference {

public static void main(String[] args) {int x,y;Testaja z = new Testaja(50, 100);x = 10;y = 20;System.out.println("Nilai sebelum pass by value : ");System.out.println("x = " + x);System.out.println("y = " + y);z.calculate(x, y);System.out.println("Nilai sesudah pass by value : ");System.out.println("x = " + x);System.out.println("y = " + y); System.out.println("Nilai sebelum pass by reference : ");System.out.println("z.i = " + z.i);System.out.println("z.j = " + z.j); z.calculate(z); System.out.println("Nilai sesudah pass by reference : ");System.out.println("z.i = " + z.i);System.out.println("z.j = " + z.j);

} }

Pass By ValuePass By Value

Pass By ReferencePass By Reference

Page 12: Training Java

Method Overloading

• Merupakan 2 buah method atau lebihdengan nama yang sama dalam satuclass yang sama.

• Daftar parameter yang digunakan padamethod-method tersebut tidak bolehsama.

Page 13: Training Java

Contoh Method Overloadingclass Mahasiswa {

String nama;int umur;

void setMahasiswa(String param1) {nama = param1;umur = 20;

} void setMahasiswa(String param1, int param2) {

nama = param1;umur = param2;

} void cetakKeLayar() {

if (nama == null && umur == 0) return;System.out.println("Nama : " + nama + ", umurnya : " + umur);

}}

Bentuk Method setMahasiswa()Yang Pertama

Bentuk Method setMahasiswa()Yang Pertama

Bentuk Method setMahasiswa()

Yang Kedua

Bentuk Method setMahasiswa()

Yang Kedua

Page 14: Training Java

Contoh Method Overloading (Sambungan)

class demoMahasiswa3 {public static void main(String[] args) {

Mahasiswa a,b;a = new Mahasiswa();b = new Mahasiswa();

a.setMahasiswa("Andri");

b.setMahasiswa("Andi", 20);

a.cetakKeLayar();b.cetakKeLayar();

} }

Method setMahasiswayang pertama dipanggil

Method setMahasiswayang kedua dipanggil

Page 15: Training Java

Konstruktor• Konstruktor digunakan untuk inisialisasi terhadap kondisi internal

objek tersebut.• Jika tidak ada satu pun konstruktor yang yang dideklarasikan maka

java akan secara otomatis menambahkan konstruktor default.• Jika sudah dideklarasikan minimal satu buah konstruktor maka java

tidak akan menambahkan konstruktor default.• Konstruktor bisa didefinisikan lebih dari satu (overloading) untuk

setiap kelas yang dibuat dengan syarat daftar parameternyaberlainan.

• Salah satu konstruktor yang ada pasti akan dieksekusi pada saatpertama kali instance dari suatu class dibuat di memori (denganmenggunakan keyword new).

• Kostruktor mana yang akan dieksekusi bergantung padabangaimana class tersebut diinstantiate (parameter apa yang dilewatkan).

Page 16: Training Java

Contoh Penggunaan Konstruktorclass Mahasiswa {

String nama;int umur; Mahasiswa() {

nama = "Tidak dikenal";umur = 0;

} Mahasiswa(String param1, int param2) {

nama = param1;umur = param2;

} void cetakKeLayar() {

if (nama == null && umur == 0) return;System.out.println("Nama : " + nama + ", umurnya : " + umur);

}}class demoMahasiswa4 {

public static void main(String[] args) {Mahasiswa a,b;a = new Mahasiswa("Andi",20);b = new Mahasiswa(); a.cetakKeLayar();b.cetakKeLayar();

} }

Konstruktor

Page 17: Training Java

Penggunaan Keyword this

• Digunakan untuk menunjuk ke objekdimana method berada.

• Dapat juga digunakan untuk memanggilkonstruktor dari konstruktor lainnya.

Page 18: Training Java

Contoh Program Menggunakan this

class Mahasiswa {String nama;int umur;void setMahasiswa(String nama, int umur) {

this.nama = nama;this.umur = umur;

}void cetakKeLayar() {

if (nama==null && umur==0) return;System.out.println(“Nama : “+ nama +”, umurnya : “ + umur);

}}

this digunakan untuk mengaksesvariabel yang dimiliki oleh kelas

yang bersangkutan

Page 19: Training Java

Penggunaan ‘this’ Untuk Memanggil Konstruktor

class Mahasiswa {String nama;int umur; Mahasiswa() {

this(“Tidak dikenal”,0)} Mahasiswa(String param1, int param2) {

nama = param1;umur = param2;

} void cetakKeLayar() {

if (nama == null && umur == 0) return;System.out.println("Nama : " + nama + ", umurnya : " + umur);

}}class demoMahasiswa4 {

public static void main(String[] args) {Mahasiswa a,b;a = new Mahasiswa("Andi",20);b = new Mahasiswa(); a.cetakKeLayar();b.cetakKeLayar();

} }

Keyword this digunakan untukmemanggil konstruktor yang menerima

dua buah parameter

Keyword this digunakan untukmemanggil konstruktor yang menerima

dua buah parameter

Page 20: Training Java

Penggunaan Keyword static• Digunakan untuk dapat menggunakan properti tanpa harus terlebih dahulu

membuat instance-nya.• Memiliki aturan sebagai berikut :

– Hanya dapat dipanggil method lain yang juga static method.– Hanya dapat mengakses data (properti) yang juga static– Tidak dapat menggunakan keyword this dan super karena kedua

keyword ini menunjuk ke suatu instance tertentu.• Untuk mengakses properti dan method yang dideklarasikan sebagai static,

sama seperti ketika mengakses properti ataupun method lain yang bukanstatic. Atau dapat juga menggunakan nama class-nya sebagai penggantidari variabel instance.

• static blok akan dieksekusi satu kali, yaitu saat pertama kali class tersebutdi load ke memori. Dengan demikian static blok in dapat digunakan untukmelakukan inisialisasi program.

Page 21: Training Java

Contoh Program Penggunaan static

class ClassStatic {static {

System.out.println("Static blok kode dieksekusi");}

static int x = 10, y = 20;}class DemoStatic {

public static void main(String[] args) {ClassStatic a = new ClassStatic();

/*Mengakses variabel static dengan menggunakan variabel instance*/System.out.println("Nilai x : " + a.x);System.out.println("Nilai y : " + a.y);

/*Mengakses variabel static dengan menggunakan nama class*/System.out.println("Nilai x : " + ClassStatic.x);System.out.println("Nilai y : " + ClassStatic.y);

}

}

Blokstatic

Variabelstatic

Page 22: Training Java

Penggunaan keyword final

• Dapat digunakan sebagai konstanta• Dapat juga digunakan untuk method dan

class, namun penggunaannya bukansebagai konstanta.

Page 23: Training Java

Access Specifier• Digunakan untuk menentukan kontrol access dari suatu member class.• Ada 4 buah access spesifier :

– private– protected– public– tanpa access specifier

Contoh :class Demo {byte a;public int x;private String y;protected long z;

}

Deklaarasi variabel tanpaAccess Specifier

Page 24: Training Java

public

• Siapa pun dapat mengakses member ini, baik kode yang ada di dalam class itusendiri ataupun yang berada di luar class.

• Dapat diakses oleh package yang berbeda.

Page 25: Training Java

private

• Hanya dapat digunakan oleh internal member dari class tersebut saja.

• Tidak ada kode satu pun dari luar class tersebut yang diizinkanmengakses/mengubah nilai dari member tersebut.

Page 26: Training Java

Contoh penggunaan public dan private

class Mahasiswa {private String nama;private int umur;

public String getNama() {return nama;

}public void setNama(String nama) {

this.nama = nama;}public int getUmur() {

return umur;}public void setUmur(int umur) {

this.umur = umur;}public void cetakKeLayar() {

System.out.println("Nama Mahasiswa ; " + nama + ", umurnya : " + umur + "tahun");

}}

Page 27: Training Java

Contoh penggunaan public dan private (Sambungan)

class demoMahasiswa6 { public static void main(String[] args) {

Mahasiswa a = new Mahasiswa();/*a.Mahasiswa = "Dony";*///accessing public numbera.setNama("Budi");a.setUmur(25);a.cetakKeLayar();

} }

Page 28: Training Java

protected

• Dapat diakses oleh member class itusendiri

• Dapat diakses oleh member class turunannya

• Dapat diakses oleh member dari class lain yang berada dalam package yang sama.

Page 29: Training Java

Tanpa access specifier

Akan diperlakukan seperti public, namuntidak dapat diakses oleh member class lainyang berada dalam package yang berbeda.

Page 30: Training Java

PEWARISAN (INHERITANCE)

Page 31: Training Java

Dasar Dari Pewarisan

• Pewarisan dilakukan untuk membuat class baru (class turunan/subclass) yang masihmemiliki sifat atau spesifikasi dari class induknya (superclass).

• Untuk melakukan pewarisan Java menyediakan keyword extends

Page 32: Training Java

Aturan-Aturan Tentang PewarisanPada Java

1. Java tidak mengizinkan pewarisanberganda, yaitu membuat suatu sub class yang diturunkan dari beberapasuperclass sekaligus

2. Suatu subclass pada dasarnya adalahclass biasa, maka tetap dapat dilakukanpewarisan pada subclass tersebut.

Page 33: Training Java

Contoh Program Pewarisanclass A {

int x;int y;

void TampilkanNilaiXY() {System.out.println("Nilai x : " + x + ", y :" + y);

}}class B extends A {

int z;void TampilkanJumlah() {

//subclass dapat mengakses member dari superclassSystem.out.println("Jumlah (x+y+z) : " + (x+y+z));

}}

Page 34: Training Java

Contoh Program Pewarisan (Sambungan)

class DemoInheritance { public static void main(String[] args) {

A superObj = new A();B subObj = new B();

System.out.println("SuperClass");superObj.x = 10;superObj.y = 20;superObj.TampilkanNilaiXY();

System.out.println("SubClass");

//member superclass dapat diakses dari subclass-nyasubObj.x = 5;subObj.y = 4;subObj.TampilkanNilaiXY();

//member tambahan yang hanya ada pada subclasssubObj.z = 50;subObj.TampilkanJumlah();

}

}

Page 35: Training Java

Hubungan Kontrol Akses, Subclass, dan Package

YaYaTidakYaBukan subclass tetapi dalampackage yang sama

YaYaTidakTidakOleh subclass yang ada dalampackage yang berbeda

yaTidakTidakTidakBukan subclass dan package yang berbeda

YaYaTidakYaDalam subclass dan package yang sama

YaYaYaYaDalam class yang sama

PublicProtectedprivateTanpaAcccessSpecifier

Akses Dari

Page 36: Training Java

Penggunaan Keyword super

• Digunakan untuk mengakses member superclass

• Digunakan jika suatu member (propertiatau method) subclass dideklarasikandengan nama yang sama seperti yang adapada superclass.

Page 37: Training Java

Contoh Program Penggunaan Keyword “super”class A {

int x;int y;

}class B extends A {

int x,y; void setXYSuperClass(int x,int y) {

super.x = x;super.y = y;

} void setXY(int x, int y) {

this.x = x;this.y = y;

} void displayXYSuperClass() {

System.out.println("Nilai dari x dan y dari superclass : " +super.x + " dan " + super.y);

} void displayXY() {

System.out.println("Nilai dari x dan y : " + x + " dan " + y );}

}

Keyword super digunakanuntuk mengakses properti

dari superclass-nya

Page 38: Training Java

Contoh Program Penggunaan Keyword “super” (Sambungan)

class DemoInheritance2 { public static void main(String[] args) {

B subObj = new B();

subObj.setXY(10,20);subObj.setXYSuperClass(30,40);

subObj.displayXY();subObj.displayXYSuperClass();

} }

Page 39: Training Java

Urutan Eksekusi Konstruktor

• Konstruktor di eksekusi dari konstruktormilik superclass tertinggi, baru kemudianyang terakhir adalah konstruktor dari class itu sendiri.

• Konstruktor pada superclass juga dapatdipanggil dengan menggunakan keyword super.

Page 40: Training Java

Contoh Program Urutan Eksekusi Konstruktor

class A {A() {

System.out.println("Konstruktor class A di eksekusi...");}

}class B extends A {

B() {System.out.println("Konstruktor class B dieksekusi...");

}}class C extends B {

C() {System.out.println("Konstruktor class C dieksekusi...");

}} class DemoInheritance3 {public static void main(String[] args) {

C subObj = new C();}

}

Page 41: Training Java

Kesalahan Yang Sering Terjadi

class A { A(String param1) {

System.out.println("Konstruktor class A dengan parameter " + param1 +" dieksekusi...");

}}class B extends A {

B() {

System.out.println("Konstruktor class B dieksekusi...");}

}class DemoInheritance4 {

public DemoInheritance4() {} public static void main(String[] args) {

B subObj = new B(); }

}

Pemanggilan konstruktor superclass dengan keyword super tidakdilakukan sehingga Java akan menambah secara otomatis kodeuntuk memanggil konstruktor default milik superclass-nya disini

Konstruktor untuk kelas A sudah didefinisikan sehingga Java tidak akan membuat konstruktor default untuk class A ini.

Page 42: Training Java

Solusi• Tambahkan bentuk konstruktor default pada class A, seperti :

class A {A() {} //Kostruktor default, diperlukan hanya agar program dapat

dikompilasiA(String param1) {System.out.println("Konstruktor class A dengan parameter " +

param1 +" dieksekusi...");

}}

• Mengubah konstruktor dari class B supaya memanggil konstruktorclass A yang ada.class B extends A {

B() { super(“Test”);System.out.println("Konstruktor class B dieksekusi...");

}}

Page 43: Training Java

Method Overriding Pada Pewarisan

• Terjadi jika dalam suatu subclass didefinisikansebuah method yang sama dengan yang dimilikioleh superclass.

• Sehingga jika method tersebut dipanggil dariinstance subclass, maka method dari subclass-lah yang akan dipanggil.

• Bagaimanakah cara memanggil method yang ada pada superclass ?

Page 44: Training Java

Contoh Program Method Overriding Pewarisan

class A {public void tampilkanKeLayar() {

System.out.println("Method milik class A dipanggil...");}

}

class B extends A {public void tampilkanKeLayar() {

System.out.println("Method milik class B dipanggil...");}

}

class DemoInheritance5 { public static void main(String[] args) {

B subObj = new B();subObj.tampilkanKeLayar();

} }

Method ini meng-override methodyang sama yang ada pada

superclass-nya

Page 45: Training Java

Penggunaan Keyword ‘final’ dalam Pewarisan

• Mencegah suatu method di-overide di subclass-nya.contoh kode :public final void tampilkanKeLayar() {

//…}

• Mencegah suatu class diturunkan.contoh kode :final class A {

//…}

Page 46: Training Java

Class Abstrak• Yaitu suatu class yang didalamnya memiliki method yang tidak

memiliki implementasi.• Beberapa aturan dari class abstrak yang perlu diperhatikan :

1. Method yang tidak memiliki implementasi pada suatu class harusdideklarasikan sebagai abstrak dengan menggunakan keyword abstract.

2. Instance tidak dapat dilakukan pada class abstrak. Umumnyaagar dapat digunakan, class abstrak tersebut harus diturunkanterlebih dahulu, dimana class hasil turunannya tersebut harusmeng-override semua method abstrak dari superclass-nya danmembuat implementasinya (sehingga method tersebut bukan lagimethod abstrak) baru kemudian subclass ini dapat dibuatinstance-nya.

3. Jika ada satu saja method abstrak (baik yang didapat darisuperclass-nya sebagai hasil dari turunan maupun yang dideklarasikan didalam class itu sendiri) yang tidakdiimplementasikan, maka class tersebut juga harusdideklarasikan sebagai abstrak dengan menggunakan keyword abstract.

Page 47: Training Java

Contoh Program Penggunaan Abstrak

abstract class A {

abstract public void method2();

//method konkrit yang memiliki implementasipublic void method1() {

System.out.println("Method konkrit dari class A");}

}class B extends A {

public void method2() {System.out.println("Method abtstrak yang sudah menjadi konkrit dalam class B");

}}class DemoAbstract1 {

public static void main(String[] args) {B ob = new B();ob.method1();ob.method2();

}}

Deklarasi class abstrak

Deklarasi method abstrak

Method abstact di override dan dibuat

implementasinya

Page 48: Training Java

Anonynous classMerupakan class tanpa nama yang dibuat pada saatmelakukan instance pada class abstract.Contoh, dari program sebelumnya :

class DemoAbstract1 {public static void main(String[] args) {

A ob = new A() {public void method2() {

System.out.println("Method abtstrak yang sudah menjadi konkrit");}

};ob.method1();ob.method2();

}}

Anonymous Class

Page 49: Training Java

Variabel Superclass Dapat MemegangReferensi dari Objek Subclass

• Variabel tersebut hanya dapat mengaksesmethod dari superclass yang di override disubclass tersebut.

• Method lainnya yang ada pada subclass tidak dapat diakses oleh variabelsuperclass tersebut.

Page 50: Training Java

class A {public void cetakKeLayar() {

System.out.println("Method dari class A dipanggil");}

}class B extends A {

public void cetakKeLayar() {System.out.println("Method dari class B dipanggil");

} }class C extends A {

public void cetakKeLayar() {System.out.println("Method dari class C dipanggil");

} }class DemoPoly {

public static void main(String[] args) {A obA;B obB = new B();C obC = new C();obA = obB;obA.cetakKeLayar(); obA = obC;obA.cetakKeLayar();

} }