Kelas & Objek
description
Transcript of Kelas & Objek
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.