340 likes | 519 Views
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 ).
E N D
Tujuan Di akhirpertemuan, mahasiswadiharapkan : • Memahamikonsepkelas & objek • Mampumengidentifikasiperbedaanantarakelas & objek • Mampumembuatkelas & objekdi Java • Mampumembuatdanmenjalankan method di Java
Kelas (Class) • Adalahcetakbiru (blueprint) atauprototipe yang mendefinisikanvariabel-variabel (data) danmethod-method (perilaku) umumdarisebuahobjek. • Membuatkelasbaru == membuattipe data baru • Variabel yang tipedatanyaberupakelas variabel reference • Membuatkelas != membuatobjek • Membuatobjek == membuat instance drkelas
Contoh • Kelas Mobil • KelasManusia Mobil Manusia warna merk tipe kapasitastangki nama tinggibadan beratbadan usia data/atribut start stop dipercepat bersuara berjalan belajar perilaku/ method
MembuatKelas classNamaKelas { tipe data1; tipe data2; … tipedataN; tipe method1(daftar-parameter) { //kodeuntuk method1 } • tipe method2(daftar-parameter) { • //kodeuntuk method2 • } • … • tipemethodN(daftar-parameter) { • //kodeuntukmethodN • } } instance variable class members
Contoh //DeklarasiKelas class Kotak { double panjang; double lebar; double tinggi; } //Membuatobjek //deklarasi Kotak k; //alokasi k = new Kotak(); Kotak panjang lebar tinggi k
ContohPenggunaan (1) class DemoKotak1 { public static void main(String[] args) { double volume; Kotak k = new Kotak(); // Mengisikannilaikedalam data-data kelasKotak k.panjang = 4; k.lebar = 3; k.tinggi = 2; // Menghitungisi/volume kotak volume = k.panjang * k.tinggi * k.lebar; // Menampilkannilai volume kelayar monitor System.out.println("Volume kotak = " + volume); } }
ContohPenggunaan (2) class DemoKotak2 { public static void main(String[] args) { double volume1, volume2; Kotak k1 = new Kotak(); // mendeklarasikanobjek k1 Kotak k2 = new Kotak(); // mendeklarasikanobjek k2 // Mengisikannilaikedalamobjek k1 k1.panjang = 4; k1.lebar = 3; k1.tinggi = 2; // Mengisikannilaikedalamobjek k2 k2.panjang = 6; k2.lebar = 5; k2.tinggi = 4; // Menghitungisi/volume dariobjek k1 volume1 = k1.panjang * k1.tinggi * k1.lebar; // Menghitungisi/volume dariobjek k2 volume2 = k2.panjang * k2.tinggi * k2.lebar; // Menampilkannilai volume k1 dan k2 kelayar monitor System.out.println("Volume k1 = " + volume1); System.out.println("Volume k2 = " + volume2); } }
MembuatObjek • Ada 2 tahap : • Mendeklarasikanvariabel • Mengalokasikanmemori & memasangkannya dg variabel yang telahdideklarasikan dg operator new • Contoh : //mendeklarasikanvariabel Kotak k; // melakukanalokasidanmemasangkan k = new Kotak ();
ContohPenggunaan (3) class DemoReferensi1 { public static void main(String[] args) { double volume1, volume2; Kotak k1, k2; k1 = new Kotak(); k2 = k1; // Mengisikannilaikedalamobjek k1 k1.panjang = 4; k1.lebar = 3; k1.tinggi = 2; // Menghitungisi/volume dariobjek k1 volume1 = k1.panjang * k1.tinggi * k1.lebar; // Menghitungisi/volume dariobjek k2 volume2 = k2.panjang * k2.tinggi * k2.lebar; // Menampilkannilai volume k1 dan k2 kelayar monitor System.out.println("Volume k1 = " + volume1); System.out.println("Volume k2 = " + volume2); } }
ContohPenggunaan (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; // Sebelumnilai 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; // Setelahnilai 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. Buatlahkelas-kelasberikut : 1. 3. 2. 4. Mobil Manusia MataKuliah KartuATM warna tahun merek nama usia tinggibadan nama bobotSKS semester noKartu namaPemilik noRekening
B. Buatlah program berikut : 1. Buatlahobjekdarikelas Mobil bernamam1. Isilahwarnanyadenganhitam, merekAvanza, dantahun 2011. Tuliskankelayar “Mobil Avanzawarnahitamkeluarantahun 2011”. 2. BuatlahobjekdarikelasManusiabernamaman. Isilahnamanya dg “Budi Prasetya”, usia 30, dantinggi 175. Tuliskankelayar : Nama : Budi Prasetya Usia : 30 th Tinggibadan : 175 cm
3. BuatlahobjekdarikelasMatakuliah. Isikannama =“Kalkulus”, semester 2, bobotSKS 2. Tuliskankelayar “Kalkulusdiberikanpada semester 2 denganbobot 2 SKS.” Kemudianubahlahsemesternyamenjadi 3, tuliskankelayar “Kalkulusdipindahke semester 3”
Pengantar • Method merupakansalahsatuanggotakelas. • Method dapatdi-OVERLOAD • Rumus method : • tipe : tipe data yang akandikembalikan method; terbagimenjadivoiddanbukan-void • tipe void : jika method tidakmengembalikannilai • tipebukan-void : ditandaidenganada keyword returnpadakode method; bisa : tipe data primitif, array, ataukelas Contoh : returnnilai; tipenamaMethod(daftar-parameter) { //kode method }
Mendefinisikan Method • Menambahkan method cetakVolume() padakelasKotak. • Method tidakmengembalikannilai tipekembalian : void voidcetakVolume(){ System.out.println(“Volume kotak = ” + (panjang*lebar*tinggi)); }
Membuat method hitungVolume(), method akanmengembalikan volume kotak yang tipenyadouble. double hitungVolume(){ double volume; volume = panjang * lebar * tinggi; return volume; }
Method dengan Parameter • Parameter adalahnilai yang dikirimkandaripemanggilke method yang dipanggil. Nilai-nilaiiniakandigunakandidalam method. • Contoh : menambahkan method isiDatakekelasKotak yang digunakanuntukmengisinilaipanjang, lebar, dantinggi. parameter voidisiData(double p, double l, double t){ panjang = p; lebar = l; tinggi = t; }
Constructor • Constructor : method khusus yang didefinisikandidalamkelasdanakandipanggilsecaraotomatissetiapmembuatobjek. • Constructor digunakanuntukinisialisasivariabel-variabelobjek. • Apabilatidakmendefinisikan constructor, maka Java akanotomatismembuatnya DEFAULT CONSTRUCTOR • DEFAULT CONSTRUCTOR menginisialisasiseluruhvariabeldengannilai NOL/NULL.
Tetapi, ketikakitamembuatconstructorbaruuntuksebuahkelas, maka Java TIDAK akanmembuat default constructor. • Constructor dapat MEMILIKI/TIDAK MEMILIKI parameter. • Constructor dapatdi-OVERLOAD
Format penulisan constructor : • Constructor TIDAK memilikitipekembalian. namaKelas (daftar-parameter) { //kodeconstructor }
Contoh Constructor Kotak () { panjang = 7; lebar = 6; tinggi = 5; } Kotak (int p, int l, int t) { panjang = p; lebar = l; tinggi = t; }
Katakunci : this • thisdigunakansebagaireferensikeobjek yang sedangaktif • Contoh : • penggunaanthispada constructor (ketikanama parameter samadengannamaatributkelas) Kotak (intpanjang, intlebar, inttinggi) { this.panjang = p; this.lebar = l; this.tinggi = t; }
Overload • Overload dapatditerapkanthd constructor dan method • Overload mendefinisikan constructor/method dengannama yang samanamunberbeda parameter dalamsatukelas. • Parameter disebutberbeda, jika : • Jumlahnyaberbeda, meskipuntipenyasama • Tipedatanyaberbeda, meskijumlahnyasama • Jumlahdantipenyaberbeda • Urutannyaberbeda
Overload Method intbagi (int a, int b) { return a/b; } doublebagi (double a, double b){ return a/b; } overload method intbagi (int a, int b) { return a/b; } doublebagi (int a, int b){ return a/b; } 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; } } overload constructor
Pengiriman Parameter (passing parameter) • Terdapat 2 jenis passing parameter : • pass by value • pass by reference • Pemilihankeduajenisdiatasotomatisdilakukanoleh Java bergantungpadatipe parameter method. • Jika parameter merupakantipe data primitif pass by value • Jika parameter berupaobjek pass by reference
ContohObjeksbgNilaiKembalian & Parameter //objeksbgtipekembalian Kotakperbesar(int m){ Kotaktmp = new Kotak(m*panjang, m*lebar, m*tinggi); return tmp; } //objeksbg parameter booleansamaBentuk(Kotak k){ if (k.panjang==panjang && k.lebar==lebar && k.tinggi==tinggi) return true; else return false; }
ContohPemanggilan public class DemoKotak { public static void main(String[] args) { Kotakk1 = new Kotak(10,5,17);; Kotakk2; k1.cetakVolume(); k2 = k1.perbesar(2); k2.cetakVolume(); } }
public class DemoKotak { public static void main(String[] args) { Kotakk1 = new Kotak(10,5,17); Kotakk2 = new Kotak(10,5,17);; booleansama; sama= k1.samaBentuk(k2); if (sama==true) System.out.println("k1 & k2 samabentuknya."); else System.out.println("k1 & k2 tidaksamabentuknya."); } }
Latihan Buatlahkelasberikut : 1. • Penjelasan method : • Bolaadalah constructor yang akanmenginisialisasiketigavariabelBola dg nilaitertentu • hitungVolumeadalah method yang akanmengembalikanhasilperhitungan volume bola dengan radius tertentu. Rumus volume bola = • cetakVolumeadalah method yang akanmenuliskankelayar “Bola dengan radius … volume adalah …” Bola warna radius merek Bola hitungVolume cetakVolume
2. • Penjelasan method : • PesanKamaradalah constructor yang akanmenginisialisasiseluruhatribut dg nilaitertentu • ubahJumlahKamaradalah method yang akanmengubahnilaivariabeljumlahKamar. Parameternyaadalahjumlahkamar yang baru. Method tidakmengembalikannilai. • ubahLamaInapadalah method yang akanmengubahnilaivariabellamaInap. Parameternyaadalahnilai lama inap yang baru. Method tidakmengembalikannilai. • totalBayarakanmengembalikanberapa yang harusdibayarolehpemesan. Rumusnya = lamaInap*jumlahKamar*harga PesanKamar jumlahKamar lamaInap harga namaPemesan PesanKamar ubahJumlahKamar ubahLamaInap totalBayar