Top Banner
OOP dengan Java • Implementasi Kelas, Method, dll
52

OOP dengan Java

Jan 19, 2016

Download

Documents

duaa

OOP dengan Java. Implementasi Kelas, Method, dll. Property dan Method. Di OOP: Data menjadi property Prosedur untuk data menjadi method Data + Prosedur menjadi kelas. Deklarasi Kelas. Deklarasi kelas memiliki sintaks seperti berikut: class NamaKelas { /*0 atau lebih property*/ - PowerPoint PPT Presentation
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: OOP dengan Java

OOP dengan Java

• Implementasi Kelas, Method, dll

Page 2: OOP dengan Java

Property dan Method

• Di OOP:– Data menjadi property– Prosedur untuk data menjadi method– Data + Prosedur menjadi kelas

Page 3: OOP dengan Java

Deklarasi Kelas

• Deklarasi kelas memiliki sintaks seperti berikut:class NamaKelas {

/*0 atau lebih property*/

/*0 atau lebih method*/

}

Page 4: OOP dengan Java

Property

• Deklarasi/definisi property:– Tipedata namaproperty;

• Tipe data adalah tipe data primitif atau kelasint x;

Point p;

Page 5: OOP dengan Java

Method

• Deklarasi method sama seperti prosedur di C:public class ClassXXX{

tipekembalian method(tipe parameter) {

/*isi method*/

return hasil; /*jika kembalian tidak void*/

}

}

Page 6: OOP dengan Java

Class Design

• Ketika akan mendesain suatu klas, pikirkan :– Hal yang diketahui objek– Hal yang dikerjakan objek

Page 7: OOP dengan Java

Class Design

• Hal yang diketahui objek disebut dengan instance variable

• Hal yang dilakukan objek disebut dengan method

Page 8: OOP dengan Java

Latihan

Page 9: OOP dengan Java

Class Design

• Apakah perbedaan antara class dan objek? Class bukan objek, tetapi dipergunakan untuk membangun objek

Page 10: OOP dengan Java

Class Design

• Menulis classClass Dog{ int size; String breed; String name;void bark(){System.out.println(“Ruff! Ruff!”);}

}

Page 11: OOP dengan Java

Class Design

• Class TesterClass DogTestDrive{

public static void main(String[] args){

Dog d = new Dog();

d.size = 40;

d.bark();

}

Page 12: OOP dengan Java

Variables

• Ada dua jenis variable– Primitive– Reference

• Deklarasi variable– Variable harus punya type– Variable harus punya nama

int count;

Page 13: OOP dengan Java

Variable

• Variable bisa dianalogikan seperti suatu gelas/kontainer, yang berfungsi menyimpan sesuatu

Page 14: OOP dengan Java

Variable

Page 15: OOP dengan Java

Variable

• Jangan mengisi variable melebihi kapasitasnya!

int x = 24;

byte b = x;

// won’t work

Page 16: OOP dengan Java

Reference variable

• Tidak ada yang namanya object variable• Yang ada hanya object reference variable• Object reference variable berisi bit yang

merepresentasikan suatu cara untuk mengakses suatu object

• Untuk lebih mudahnya, reference variable bisa dianalogikan dengan suatu remote control

Page 17: OOP dengan Java

• Primitive variablebyte b = 7;

• Reference variableDog d = new Dog();

Page 18: OOP dengan Java

3 tahap dalam object declaration, creation & assignment

1. Deklarasi reference variableDog d = new Dog();

2. Create ObjectDog d = new Dog();

3. Link Object & referenceDog d = new Dog();

Page 19: OOP dengan Java

• Ingat : suatu class mendeskripsikan apa yang objek ketahui dan apa yang objek lakukan

• Objek dapat berperilaku berbeda walaupun menjalankan method yang sama kalau memiliki state yang berbeda

Page 20: OOP dengan Java

void play(){

soundPlayer.playSoung(title);

}

Song t2 = new Song();

t2.setArtist(“Travis”);

t2.setTitle(“Sing”);

Song s3 = new Song();

s3.setArtist(“Davis”);

s3.setTitle(“My Way”);

t2.play();

s3.play();

Page 21: OOP dengan Java

Class Dog{

int size;

String name;

void bark(){

if(size >60){

System.out.println(“Woof! Woof!”);

} else if (size > 14){

System.out.println(“Ruff! Ruff!”);

} else {

System.out.println(“Yip! Yip!”);

}

}

Page 22: OOP dengan Java

Method parameter

• Seperti halnya dengan bahasa pemrograman lainnya, di Java kita juga bisa mengirim suatu nilai pada methodDog d = new Dog();d.bark(3);

void bark(int numOfBarks){while (numOfBarks<0){

System.out.println(“ruff”);numOfBarks = numOfBarks -1;

}}

Page 23: OOP dengan Java

• Kita juga dapat memperoleh nilai balikan dari suatu method

t.takeTwo(12,24);

int takeTwo(int x, int y){

return x + y;

}

atau bisa jugaint foo = 7;

int bar = 5;

t.takeTwo(foo, bar);

Page 24: OOP dengan Java

• Deklarasi sebuah variable dan beri nilai 7

• Deklarasi sebuah method dengan int parameter yang namanya z

• Panggil method tsb, lewatkan variable x sebagai argumen, bit di x dicopykan ke z

• Ubah nilai z didalam method, nilai x tidak ikut berubah. Argumen yang dilewatkan ke parameter z adalah copy dari x

Java adalah pass-by-value

Page 25: OOP dengan Java

Getter dan SetterClass ElectricGuitar{

String brand

int numOfPickups;

boolean rockStarUseIt;

String getBrand(){

return brand;

}

Void setBrand(String aBrand){

brand = aBrand;

}

Page 26: OOP dengan Java

Enkapsulasi

• Dengan .(dot) operator, kita bisa mengakses suatu variable

theCat.height = 27;

• Kemudian ada yg melakukantheCat.height = 0; // tidak boleh terjadi!

• Hal tersebut bisa diatasi dengan enkapsulasi• Enkapsulasi adalah suatu cara untuk

menyembunyikan/membatasi akses suatu variable

Page 27: OOP dengan Java

Enkapsulasi

Dibuatkan suatu setter & getter methodpublic void setHeight(int ht){

if(ht>9){

height = ht;

}

}

Dengan method diatas, maka height tidak akan bernilai kurang dari 9

Page 28: OOP dengan Java

Enkapsulasi

• Buat instance variable private

• Sedangkan getter dan setter public

Page 29: OOP dengan Java

Deklarasi dan inisialisasi instance variable

• Instance variable selalu mempunyai default value.

• Jika kita tidak secara eksplisit memberi nilai tertentu pada instance variable, maka akan bernilai – integer 0– floating point 0.0– booleans false– reference null

Page 30: OOP dengan Java

Class PoorDogclass PoorDog{ private int size; private String name;

public String getName() { return name; }

public void setName(String name) { this.name = name; }

public int getSize() { return size; }

public void setSize(int size) { this.size = size; }}

Page 31: OOP dengan Java

Class PoorDogclass PoorDogTestDrive { public static void main(String[] args){ PoorDog one = new PoorDog(); System.out.println("Dog size is " + one.getSize()); System.out.println("Dog name is " + one.getName()); } }

Page 32: OOP dengan Java

Perbedaan antara instance variable dan local variable

• Instance variable dideklarasikan didalam class tetapi tidak didalam methodClass Horse{

private double Height;

private String breed;

// more code

}

Page 33: OOP dengan Java

Perbedaan antara instance variable dan local variable

• Local variable dideklarasikan didalam method

class AddThing{

int a;

int b = 12;

public int add(){

int total = a + b;

return total;

}

Page 34: OOP dengan Java

Perbedaan antara instance variable dan local variable

• Local variable harus diinisialisasi sebelum dipakai

class Foo {

public void go(){

int x;

int z = x + 3;

}

}

Page 35: OOP dengan Java

PR

Page 36: OOP dengan Java

Pewarisan/Inheritance• Suatu kelas dapat diciptakan berdasarkan kelas lain.• Kelas baru ini mempunyai sifat-sifat yang sama

dengan kelas pembentuknya, ditambah sifat-sifat khusus lainnya.

• Dengan pewarisan kita dapat menciptakan kelas baru yang mempunyai sifat sama dengan kelas lain tanpa harus menulis ulang bagian-bagian yang sama.

• Pewarisan merupakan unsur penting dalam pemrograman berorientasi objek dan merupakan blok bangunan dasar pertama penggunaan kode ulang (code reuse).

Page 37: OOP dengan Java

Pembatasan Inheritance• Data dan fungsi yang dapat diwariskan hanya

yang bersifat public dan protected.

• Untuk data dan fungsi private tetap tidak dapat diwariskan. Hal ini disebabkan sifat private yang hanya dapat diakses dari dalam kelas saja.

Page 38: OOP dengan Java

Sifat Inheritance• Sifat pewarisan ini menyebabkan kelas-kelas

dalam pemrograman berorientasi objek membentuk hirarki kelas mulai dari kelas dasar, kelas turunan pertama, kelas turunan kedua dan seterusnya. Sebagai gambaran misalnya ada hirarki kelas unggas.

Page 39: OOP dengan Java

ContohContoh

Page 40: OOP dengan Java

Penjelasan (1)• Sebagai kelas dasar adalah Unggas. • Salah satu sifat Unggas adalah bertelur dan

bersayap.• Kelas turunan pertama adalah Ayam, Burung

dan Bebek. • Tiga kelas turunan ini mewarisi sifat kelas dasar

Unggas yaitu bertelur dan bersayap. • Selain mewarisi sifat kelas dasar, masing-

masing kelas turunan mempunyai sifat khusus, Ayam berkokok, Burung terbang dan Bebek berenang.

Page 41: OOP dengan Java

Penjelasan (2)• Kelas Ayam punya kelas turunan yaitu Ayam

Kampung dan Ayam Hutan.

• Dua kelas ini mewarisi sifat kelas Ayam yang berkokok. Tetapi dua kelas ini juga punya sifat yang berbeda, yaitu : – Ayam Kampung berkokok panjang halus – Ayam hutan berkokok pendek dan kasar.

Page 42: OOP dengan Java

Hirarki Program• Jika hirarki kelas Unggas diimplementasikan

dalam bentuk program, maka secara sederhana dapat ditulis sebagai berikut:

Page 43: OOP dengan Java

Penjelasan Program• Dapat dilihat, bahwa kelas Ayam dan kelas Bebek

dapat menjalankan fungsi Bertelur() yang ada dalam kelas Unggas meskipun fungsi ini bukan merupakan anggota kelas Ayam dan kelas Bebek.

• Kelas AyamKampung dapat menjalankan fungsi Berkokok() yang ada dalam kelas Ayam walaupun dua fungsi tersebut bukan merupakan anggota kelas AyamKampung.

• Sifat-sifat di atas yang disebut dengan pewarisan (inheritance).

Page 44: OOP dengan Java

P.RP.R

worksAtHospitals & makesHouseCalls boolean

Page 45: OOP dengan Java

Animal Kingdom

• instance variables :– picture

– food

– hanger

– boundaries

– location

• method– makeNoise()

– eat()

– sleep

– roam()

Page 46: OOP dengan Java

Animalpicturefoodhungerboundarieslocation

makeNoise()eat()sleep()roam()

Lion

Hippo Tiger Dog Cat

Wolf

Page 47: OOP dengan Java

Animalpicturefoodhungerboundarieslocation

makeNoise()eat()sleep()roam() override 2 method ini

Apakah semua binatang makan dengan cara yang sama?Apakah semua binatang mengeluarkan suara yang sama?

Page 48: OOP dengan Java

Animalpicturefoodhungerboundarieslocation

makeNoise()eat()sleep()roam()

Lion

Hippo Tiger Dog Cat

Wolf

makeNoise()eat()

makeNoise()eat()

makeNoise()eat()

makeNoise()eat()

makeNoise()eat()

makeNoise()eat()

Page 49: OOP dengan Java

Animalpicturefoodhungerboundarieslocation

makeNoise()eat()sleep()roam()

Lion

Hippo

Tiger Dog

Cat

Wolf

makeNoise()eat()

makeNoise()eat()

makeNoise()eat()

makeNoise()eat()

makeNoise()eat()

makeNoise()eat()

Feline

roam()Canine

roam()

Page 50: OOP dengan Java

Method apa yang akan dipanggil?

Wolf w = new Wolf();

w.makeNoise();

w.roam();

w.eat();

w.sleep();

AnimalmakeNoise()eat()sleep()roam()

Canine

roam()

Wolf

makeNoise()eat()

ketika sebuah method dipanggil, kita memanggil method yang paling spesifik, atau yang paling bawah yang menang

Page 51: OOP dengan Java

3 tahap dalam object declaration, creation & assignment

1. Deklarasi reference variableDog d = new Dog();

2. Create ObjectDog d = new Dog();

3. Link Object & referenceDog d = new Dog();

Page 52: OOP dengan Java