kelas & objek

42
Kelas & Objek

Upload: gefen

Post on 06-Jan-2016

61 views

Category:

Documents


0 download

DESCRIPTION

Kelas & Objek. Tujuan. Di akhir pertemuan , mahasiswa diharapkan : Memahami konsep kelas & objek Mampu mengidentifikasi perbedaan antara kelas & objek Mampu membuat kelas & objek di Java Mampu membuat dan menjalankan method di Java. kelas & objek. Kelas ( Class ). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Kelas  &  Objek

Kelas & Objek

Page 2: Kelas  &  Objek

Tujuan

Di akhir pertemuan, mahasiswa diharapkan : 1. Memahami konsep kelas & objek2. Mampu mengidentifikasi perbedaan antara

kelas & objek3. Mampu membuat kelas & objek di Java4. Mampu membuat dan menjalankan method

di Java

Page 3: Kelas  &  Objek

KELAS & OBJEK

Page 4: Kelas  &  Objek

Kelas (Class) Adalah cetak biru (blueprint) atau prototipe

yang mendefinisikan variabel-variabel (data) dan method-method (perilaku) umum dari sebuah objek.

Membuat kelas baru == membuat tipe data baru

Variabel yang tipe datanya berupa kelas variabel reference

Membuat kelas != membuat objek Membuat objek == membuat instance dr

kelas

Page 5: Kelas  &  Objek

Contoh

Kelas Mobil Kelas Manusia

Mobil

warnamerktipe

kapasitas tangki

startstop

dipercepat

Manusia

namatinggi badanberat badan

usia

bersuaraberjalanbelajar

data/atribut

perilaku/method

Page 6: Kelas  &  Objek

Membuat Kelasclass NamaKelas { tipe data1; tipe data2; … tipe dataN;

tipe method1(daftar-parameter) {//kode untuk method1

} tipe method2(daftar-parameter) {

//kode untuk method2 } … tipe methodN(daftar-parameter) {

//kode untuk methodN }}

instance variable

classmembers

Page 7: Kelas  &  Objek

Contoh

//Deklarasi Kelas

class Kotak {

double panjang;

double lebar;

double tinggi;

}

//Membuat objek

//deklarasi

Kotak k;

//alokasi

k = new Kotak();

Kotak

panjanglebartinggi

k

Page 8: Kelas  &  Objek

Contoh Penggunaan (1)class DemoKotak1 {

public static void main(String[] args) {

double volume;

Kotak k = new Kotak();

// Mengisikan nilai ke dalam data-data kelas Kotak

k.panjang = 4;

k.lebar = 3;

k.tinggi = 2;

// Menghitung isi/volume kotak

volume = k.panjang * k.tinggi * k.lebar;

// Menampilkan nilai volume ke layar monitor

System.out.println("Volume kotak = " + volume);

}

}

Page 9: Kelas  &  Objek

Contoh Penggunaan (2)class DemoKotak2 {

public static void main(String[] args) {

double volume1, volume2;

Kotak k1 = new Kotak(); // mendeklarasikan objek k1

Kotak k2 = new Kotak(); // mendeklarasikan objek k2

// Mengisikan nilai ke dalam objek k1

k1.panjang = 4;

k1.lebar = 3;

k1.tinggi = 2;

// Mengisikan nilai ke dalam objek k2

k2.panjang = 6;

k2.lebar = 5;

k2.tinggi = 4;

// Menghitung isi/volume dari objek k1

volume1 = k1.panjang * k1.tinggi * k1.lebar;

// Menghitung isi/volume dari objek k2

volume2 = k2.panjang * k2.tinggi * k2.lebar;

// Menampilkan nilai volume k1 dan k2 ke layar monitor

System.out.println("Volume k1 = " + volume1);

System.out.println("Volume k2 = " + volume2);

}

}

Page 10: Kelas  &  Objek

Membuat Objek Ada 2 tahap :

1. Mendeklarasikan variabel2. Mengalokasikan memori & memasangkannya

dg variabel yang telah dideklarasikan dg operator new

Contoh ://mendeklarasikan variabelKotak k;

// melakukan alokasi dan memasangkank = new Kotak ();

Page 11: Kelas  &  Objek

Contoh Penggunaan (3)class DemoReferensi1 {

public static void main(String[] args) {

double volume1, volume2;

Kotak k1, k2;

k1 = new Kotak();

k2 = k1;

// Mengisikan nilai ke dalam objek k1

k1.panjang = 4;

k1.lebar = 3;

k1.tinggi = 2;

// Menghitung isi/volume dari objek k1

volume1 = k1.panjang * k1.tinggi * k1.lebar;

// Menghitung isi/volume dari objek k2

volume2 = k2.panjang * k2.tinggi * k2.lebar;

// Menampilkan nilai volume k1 dan k2 ke layar monitor

System.out.println("Volume k1 = " + volume1);

System.out.println("Volume k2 = " + volume2);

}

}

Page 12: Kelas  &  Objek

Contoh Penggunaan (4)class DemoReferensi2 {

public static void main(String[] args) {

double volume1, volume2;

Kotak k1, k2;

k1 = new Kotak();

k2 = k1;

k1.panjang = 4;

k1.lebar = 3;

k1.tinggi = 2;

// Sebelum nilai k1 diubah

volume1 = k1.panjang * k1.tinggi * k1.lebar;

volume2 = k2.panjang * k2.tinggi * k2.lebar;

System.out.println("Sebelum k1 diubah:");

System.out.println("Volume k1 = " + volume1);

System.out.println("Volume k2 = " + volume2);

k1 = new Kotak();

k1.panjang = 6;

k1.lebar = 5;

k1.tinggi = 4;

// Setelah nilai k1 diubah

volume1 = k1.panjang * k1.tinggi * k1.lebar;

volume2 = k2.panjang * k2.tinggi * k2.lebar;

System.out.println("\nSetelah k1 diubah:");

System.out.println("Volume k1 = " + volume1);

System.out.println("Volume k2 = " + volume2);

}

}

Page 13: Kelas  &  Objek

Latihan

A. Buatlah kelas-kelas berikut :1. 3.

2. 4.

Mobil

warnatahunmerek

Manusia

namausia

tinggi badan

MataKuliah

namabobotSKSsemester

KartuATM

noKartunamaPemiliknoRekening

Page 14: Kelas  &  Objek

Latihan (cont.)

B. Buatlah program berikut :1. Buatlah objek dari kelas Mobil bernama m1.

Isilah warnanya dengan hitam, merek Avanza, dan tahun 2011. Tuliskan ke layar “Mobil Avanza warna hitam keluaran tahun 2011”.

2. Buatlah objek dari kelas Manusia bernama aku. Isilah namanya dg nama anda, usia dg usia anda, dan tinggi dg tinggi badan anda. Tuliskan ke layar :Nama : [nama]Usia : [usia] thTinggi badan : [tinggi badan] cm

Page 15: Kelas  &  Objek

3. Buatlah objek dari kelas Matakuliah. Isikan nama =“Kalkulus”, semester 2, bobotSKS 2. Tuliskan ke layar “Kalkulus diberikan pada semester 2 dengan bobot 2 SKS.”Kemudian ubahlah semesternya menjadi 3, tuliskan ke layar “Kalkulus dipindah ke semester 3”

4. Buatlah objek bertipe KartuATM. Isilah variabel2nya (isinya bebas). Tampilkan ke layar:Data nasabah pemegang kartu dengan nomor [noKartu] :Nama : [namaPemilik]No. rekening [noRek]

Page 16: Kelas  &  Objek

METHOD

Page 17: Kelas  &  Objek

Pengantar Method merupakan salah satu anggota kelas. Method dapat di-OVERLOAD Rumus method :

tipe : tipe data yang akan dikembalikan method; terbagi menjadi void dan bukan-void

tipe void : jika method tidak mengembalikan nilai

tipe bukan-void : ditandai dengan ada keyword return pada kode method; bisa : tipe data primitif, array, atau kelasContoh : return nilai;

tipe namaMethod(daftar-parameter) { //kode method}

Page 18: Kelas  &  Objek

Mendefinisikan Method Menambahkan method cetakVolume() pada

kelas Kotak. Method tidak mengembalikan nilai tipe

kembalian : void

void cetakVolume(){ System.out.println(“Volume kotak = ” + (panjang*lebar*tinggi));}

Page 19: Kelas  &  Objek

Membuat method hitungVolume(), method akan mengembalikan volume kotak yang tipenya double.

double hitungVolume(){ double volume; volume = panjang * lebar * tinggi; return volume;}

Page 20: Kelas  &  Objek

Method dengan Parameter Parameter adalah nilai yang dikirimkan dari

pemanggil ke method yang dipanggil. Nilai-nilai ini akan digunakan di dalam method.

Contoh : menambahkan method isiData ke kelas Kotak yang digunakan untuk mengisi nilai panjang, lebar, dan tinggi.

void isiData(double p, double l, double t){ panjang = p; lebar = l; tinggi = t;}

parameter

Page 21: Kelas  &  Objek

Constructor Constructor : method khusus yang

didefinisikan di dalam kelas dan akan dipanggil secara otomatis setiap membuat objek.

Constructor digunakan untuk inisialisasi variabel-variabel objek.

Apabila tidak mendefinisikan constructor, maka Java akan otomatis membuatnya DEFAULT CONSTRUCTOR

DEFAULT CONSTRUCTOR menginisialisasi seluruh variabel dengan nilai NOL/NULL.

Page 22: Kelas  &  Objek

Tetapi, ketika kita membuat constructor baru untuk sebuah kelas, maka Java TIDAK akan membuat default constructor.

Constructor dapat MEMILIKI/TIDAK MEMILIKI parameter.

Constructor dapat di-OVERLOAD

Page 23: Kelas  &  Objek

Format penulisan constructor :

Constructor TIDAK memiliki tipe kembalian.

namaKelas (daftar-parameter) { //kode constructor}

Page 24: Kelas  &  Objek

Contoh Constructor

Kotak () { panjang = 7; lebar = 6; tinggi = 5;}

Kotak (int p, int l, int t) { panjang = p; lebar = l; tinggi = t;}

Page 25: Kelas  &  Objek

Kata kunci : this this digunakan sebagai referensi ke objek

yang sedang aktif Contoh :

penggunaan this pada constructor (ketika nama parameter sama dengan nama atribut kelas)Kotak (int panjang, int lebar, int tinggi) { this.panjang = p; this.lebar = l; this.tinggi = t;}

Page 26: Kelas  &  Objek

Overload Overload dapat diterapkan thd constructor

dan method Overload mendefinisikan

constructor/method dengan nama yang sama namun berbeda parameter dalam satu kelas.

Parameter disebut berbeda, jika : Jumlahnya berbeda, meskipun tipenya samaTipe datanya berbeda, meski jumlahnya sama Jumlah dan tipenya berbedaUrutannya berbeda

Page 27: Kelas  &  Objek

Overload Method

int bagi (int a, int b) { return a/b;}double bagi (double a, double b){ return a/b;}

int bagi (int a, int b) { return a/b;}double bagi (int a, int b){ return a/b;}

overload method

bukan overload method

Page 28: Kelas  &  Objek

Overload Constructor

class Kotak { double panjang; double lebar; double tinggi;

Kotak (){panjang = 0;lebar = 0;tinggi = 0;

{ Kotak (double p, double l, double t){

panjang = p;lebar = l;tinggi = t;

}}

overloadconstructor

Page 29: Kelas  &  Objek

Pengiriman Parameter (passing parameter)

Terdapat 2 jenis passing parameter :pass by valuepass by reference

Pemilihan kedua jenis di atas otomatis dilakukan oleh Java bergantung pada tipe parameter method.

Jika parameter merupakan tipe data primitif pass by value

Jika parameter berupa objek pass by reference

Page 30: Kelas  &  Objek

Contoh Objek sbg Nilai Kembalian & Parameter

//objek sbg tipe kembalian Kotak perbesar(int m){ Kotak tmp = new Kotak(m*panjang, m*lebar, m*tinggi); return tmp;}//objek sbg parameterboolean samaBentuk(Kotak k){ if (k.panjang==panjang && k.lebar==lebar && k.tinggi==tinggi)

return true; else

return false;}

Page 31: Kelas  &  Objek

Contoh Pemanggilan

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

Kotak k1 = new Kotak(10,5,17);;Kotak k2;

k1.cetakVolume();k2 = k1.perbesar(2);k2.cetakVolume();

}}

Page 32: Kelas  &  Objek

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

Kotak k1 = new Kotak(10,5,17);Kotak k2 = new Kotak(10,5,17);;boolean sama;

sama = k1.samaBentuk(k2);if (sama==true) System.out.println("k1 & k2 sama bentuknya.");else System.out.println("k1 & k2 tidak sama bentuknya.");

}}

Page 33: Kelas  &  Objek

Latihan

Buatlah kelas berikut :

1. Penjelasan method :

Bola adalah constructor yang akan menginisialisasi ketiga variabel Bola dg nilai tertentu

hitungVolume adalah method yang akan mengembalikan hasil perhitungan volume bola dengan radius tertentu. Rumus volume bola =

cetakVolume adalah method yang akan menuliskan ke layar “Bola dengan radius … volume adalah …”

Bola

warnaradiusmerek

BolahitungVolumecetakVolume

Page 34: Kelas  &  Objek

2. Penjelasan method : PesanKamar adalah

constructor yang akan menginisialisasi seluruh atribut dg nilai tertentu

totalBayar akan mengembalikan berapa yang harus dibayar oleh pemesan. Rumusnya = lamaInap*jumlahKamar*harga

cetakBill akan menuliskan ke layar “Tagihan untuk Tn./Ny. … sebesar Rp …”

PesanKamar

jumlahKamarlamaInap

harganamaPemesan

PesanKamartotalBayarcetakBill

Page 35: Kelas  &  Objek

3. Waktu

jammenitdetik

WaktucetakWaktu

setJamsetMenitsetDetik

Penjelasan method : Waktu adalah constructor yang

akan menginisialisasi seluruh atribut dg nilai tertentu

cetakWaktu akan menuliskan ke layar “Waktu saat ini jam:menit:detik”

setJam akan mengisi nilai jam. Method memiliki parameter 1 integer yaitu nilai jam yang ingin dimasukkan. Nilai yang diperbolehkan adalah 0<= jam <= 23

setMenit akan mengisi nilai menit. Method memiliki parameter 1 integer yaitu nilai menit yang ingin dimasukkan. Nilai yang diperbolehkan adalah 0<= jam <= 59

setDetik akan mengisi nilai jam. Method memiliki parameter 1 integer yaitu nilai detik yang ingin dimasukkan. Nilai yang diperbolehkan adalah 0<= jam <= 59

Page 36: Kelas  &  Objek

TINGKAT AKSES DATA & METHOD

Page 37: Kelas  &  Objek

Modifier Data & Method Modifier pada data & method menentukan

sejauh mana data & method dapat diakses oleh objek lain.

Keyword yang digunakan :private hanya bisa diakses di dalam

kelasnyapublic bisa diakses di kelas manapunprotected hanya bisa diakses di kelasnya &

turunannya Keyword diletakkan sebelum deklarasi data /

method Jika tidak mencantumkan ketiganya maka

tingkat aksesnya adalah DEFAULT.

Page 38: Kelas  &  Objek

Keyword private

Kelas Kotak public class Kotak{

private int panjang;

private int lebar;

private int tinggi;

}

Kotak

- panjang- lebar- tinggi

Page 39: Kelas  &  Objek

Efek Adanya private

public class DemoKotak {

public static void main(String[] args) {

Kotak k1 = new Kotak(10,5,17);

k1.panjang = 12;

}

Salah, krn variabel panjang bersifat private, sehingga tidak

boleh diakses langsung. Solusinya : sediakan method

untuk mengakses variabel

Page 40: Kelas  &  Objek

Inner Class Inner class merupakan kelas yang

dibuat/dideklarasikan di dalam sebuah kelas. Inner class hanya dapat diakses di dalam

kelas luarnya.

Page 41: Kelas  &  Objek

Contoh

Page 42: Kelas  &  Objek

Package (Paket) Package/paket memungkinkan kita untuk

mengelompokkan kelas-kelas. Caranya :

tuliskan : package [nama_package] di baris pertama kelas

Nama package bersifat bebas. Data & method dg tipe akses default hanya

dapat diakses/dikenali di package yang sama.