kelas & objek

Post on 06-Jan-2016

62 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

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

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

Contoh

Kelas Mobil Kelas Manusia

Mobil

warnamerktipe

kapasitas tangki

startstop

dipercepat

Manusia

namatinggi badanberat badan

usia

bersuaraberjalanbelajar

data/atribut

perilaku/method

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

Contoh

//Deklarasi Kelas

class Kotak {

double panjang;

double lebar;

double tinggi;

}

//Membuat objek

//deklarasi

Kotak k;

//alokasi

k = new Kotak();

Kotak

panjanglebartinggi

k

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

}

}

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

}

}

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

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

}

}

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

}

}

Latihan

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

2. 4.

Mobil

warnatahunmerek

Manusia

namausia

tinggi badan

MataKuliah

namabobotSKSsemester

KartuATM

noKartunamaPemiliknoRekening

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

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]

METHOD

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}

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

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

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

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

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.

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

Format penulisan constructor :

Constructor TIDAK memiliki tipe kembalian.

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

Contoh Constructor

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

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

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

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

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

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

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

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

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

}}

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

}}

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

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

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

TINGKAT AKSES DATA & METHOD

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.

Keyword private

Kelas Kotak public class Kotak{

private int panjang;

private int lebar;

private int tinggi;

}

Kotak

- panjang- lebar- tinggi

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

Inner Class Inner class merupakan kelas yang

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

kelas luarnya.

Contoh

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.

top related