Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Kelas & Objek. Tujuan Di akhir pertemuan, mahasiswa diharapkan : 1. Memahami konsep kelas & objek 2. Mampu mengidentifikasi perbedaan antara kelas & objek.

Presentasi serupa


Presentasi berjudul: "Kelas & Objek. Tujuan Di akhir pertemuan, mahasiswa diharapkan : 1. Memahami konsep kelas & objek 2. Mampu mengidentifikasi perbedaan antara kelas & objek."— Transcript presentasi:

1 Kelas & Objek

2 Tujuan Di akhir pertemuan, mahasiswa diharapkan : 1. Memahami konsep kelas & objek 2. Mampu mengidentifikasi perbedaan antara kelas & objek 3. Mampu membuat kelas & objek di Java 4. Mampu membuat dan menjalankan method di Java

3 KELAS & OBJEK

4 Kelas (Class) Adalah cetak biru (blueprint) atau prototipe yang mendefinisikan variabel-variabel (data) dan method- method (perilaku) umum dari sebuah objek. 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 Membuat kelas baru == membuat tipe data baru Variabel yang tipe datanya berupa kelas  variabel reference Variabel yang tipe datanya berupa kelas  variabel reference Membuat kelas != membuat objek Membuat kelas != membuat objek Membuat objek == membuat instance dr kelas Membuat objek == membuat instance dr kelas

5 Contoh Kelas Mobil Kelas Mobil Kelas Manusia Kelas Manusia Mobil warna merk tipe kapasitas tangki start stop dipercepat Manusia nama tinggi badan berat badan usia bersuara berjalan belajar data/atribut perilaku/ method

6 Membuat Kelas class 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 class members

7 Contoh //Deklarasi Kelas class Kotak { double panjang; double panjang; double lebar; double lebar; double tinggi; double tinggi;} //Membuat objek //deklarasi Kotak k; //alokasi k = new Kotak(); Kotak panjang lebar tinggi k

8 Contoh Penggunaan (1) class DemoKotak1 { public static void main(String[] args) { public static void main(String[] args) { double volume; double volume; Kotak k = new Kotak(); Kotak k = new Kotak(); // Mengisikan nilai ke dalam data-data kelas Kotak // Mengisikan nilai ke dalam data-data kelas Kotak k.panjang = 4; k.panjang = 4; k.lebar = 3; k.lebar = 3; k.tinggi = 2; k.tinggi = 2; // Menghitung isi/volume kotak // Menghitung isi/volume kotak volume = k.panjang * k.tinggi * k.lebar; volume = k.panjang * k.tinggi * k.lebar; // Menampilkan nilai volume ke layar monitor // Menampilkan nilai volume ke layar monitor System.out.println("Volume kotak = " + volume); System.out.println("Volume kotak = " + volume); }}

9 Contoh Penggunaan (2) class DemoKotak2 { public static void main(String[] args) { public static void main(String[] args) { double volume1, volume2; double volume1, volume2; Kotak k1 = new Kotak(); // mendeklarasikan objek k1 Kotak k1 = new Kotak(); // mendeklarasikan objek k1 Kotak k2 = new Kotak(); // mendeklarasikan objek k2 Kotak k2 = new Kotak(); // mendeklarasikan objek k2 // Mengisikan nilai ke dalam objek k1 // Mengisikan nilai ke dalam objek k1 k1.panjang = 4; k1.panjang = 4; k1.lebar = 3; k1.lebar = 3; k1.tinggi = 2; k1.tinggi = 2; // Mengisikan nilai ke dalam objek k2 // Mengisikan nilai ke dalam objek k2 k2.panjang = 6; k2.panjang = 6; k2.lebar = 5; k2.lebar = 5; k2.tinggi = 4; k2.tinggi = 4; // Menghitung isi/volume dari objek k1 // Menghitung isi/volume dari objek k1 volume1 = k1.panjang * k1.tinggi * k1.lebar; volume1 = k1.panjang * k1.tinggi * k1.lebar; // Menghitung isi/volume dari objek k2 // Menghitung isi/volume dari objek k2 volume2 = k2.panjang * k2.tinggi * k2.lebar; volume2 = k2.panjang * k2.tinggi * k2.lebar; // Menampilkan nilai volume k1 dan k2 ke layar monitor // Menampilkan nilai volume k1 dan k2 ke layar monitor System.out.println("Volume k1 = " + volume1); System.out.println("Volume k1 = " + volume1); System.out.println("Volume k2 = " + volume2); System.out.println("Volume k2 = " + volume2); }}

10 Membuat Objek Ada 2 tahap : Ada 2 tahap : 1. Mendeklarasikan variabel 2. Mengalokasikan memori & memasangkannya dg variabel yang telah dideklarasikan dg operator new Contoh : Contoh : //mendeklarasikan variabel Kotak k; // melakukan alokasi dan memasangkan k = new Kotak ();

11 Contoh Penggunaan (3) class DemoReferensi1 { public static void main(String[] args) { public static void main(String[] args) { double volume1, volume2; double volume1, volume2; Kotak k1, k2; Kotak k1, k2; k1 = new Kotak(); k1 = new Kotak(); k2 = k1; k2 = k1; // Mengisikan nilai ke dalam objek k1 // Mengisikan nilai ke dalam objek k1 k1.panjang = 4; k1.panjang = 4; k1.lebar = 3; k1.lebar = 3; k1.tinggi = 2; k1.tinggi = 2; // Menghitung isi/volume dari objek k1 // Menghitung isi/volume dari objek k1 volume1 = k1.panjang * k1.tinggi * k1.lebar; volume1 = k1.panjang * k1.tinggi * k1.lebar; // Menghitung isi/volume dari objek k2 // Menghitung isi/volume dari objek k2 volume2 = k2.panjang * k2.tinggi * k2.lebar; volume2 = k2.panjang * k2.tinggi * k2.lebar; // Menampilkan nilai volume k1 dan k2 ke layar monitor // Menampilkan nilai volume k1 dan k2 ke layar monitor System.out.println("Volume k1 = " + volume1); System.out.println("Volume k1 = " + volume1); System.out.println("Volume k2 = " + volume2); System.out.println("Volume k2 = " + volume2); }}

12 Contoh Penggunaan (4) class DemoReferensi2 { public static void main(String[] args) { public static void main(String[] args) { double volume1, volume2; double volume1, volume2; Kotak k1, k2; Kotak k1, k2; k1 = new Kotak(); k1 = new Kotak(); k2 = k1; k2 = k1; k1.panjang = 4; k1.panjang = 4; k1.lebar = 3; k1.lebar = 3; k1.tinggi = 2; k1.tinggi = 2; // Sebelum nilai k1 diubah // Sebelum nilai k1 diubah volume1 = k1.panjang * k1.tinggi * k1.lebar; volume1 = k1.panjang * k1.tinggi * k1.lebar; volume2 = k2.panjang * k2.tinggi * k2.lebar; volume2 = k2.panjang * k2.tinggi * k2.lebar; System.out.println("Sebelum k1 diubah:"); System.out.println("Sebelum k1 diubah:"); System.out.println("Volume k1 = " + volume1); System.out.println("Volume k1 = " + volume1); System.out.println("Volume k2 = " + volume2); System.out.println("Volume k2 = " + volume2); k1 = new Kotak(); k1 = new Kotak(); k1.panjang = 6; k1.panjang = 6; k1.lebar = 5; k1.lebar = 5; k1.tinggi = 4; k1.tinggi = 4; // Setelah nilai k1 diubah // Setelah nilai k1 diubah volume1 = k1.panjang * k1.tinggi * k1.lebar; volume1 = k1.panjang * k1.tinggi * k1.lebar; volume2 = k2.panjang * k2.tinggi * k2.lebar; volume2 = k2.panjang * k2.tinggi * k2.lebar; System.out.println("\nSetelah k1 diubah:"); System.out.println("\nSetelah k1 diubah:"); System.out.println("Volume k1 = " + volume1); System.out.println("Volume k1 = " + volume1); System.out.println("Volume k2 = " + volume2); System.out.println("Volume k2 = " + volume2); }}

13 Latihan A. Buatlah kelas-kelas berikut : Mobil warna tahun merek Manusia nama usia tinggi badan MataKuliah nama bobotSKS semester KartuATM noKartu namaPemilik noRekening

14 Latihan (cont.) B. Buatlah program berikut : 1. Buatlah objek dari kelas Mobil bernama m1. Isilah warnanya dengan hitam, merek Avanza, dan tahun 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] th Tinggi badan : [tinggi badan] cm

15 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]

16 METHOD

17 Pengantar Method merupakan salah satu anggota kelas. Method merupakan salah satu anggota kelas. Method dapat di-OVERLOAD Method dapat di-OVERLOAD Rumus method : Rumus method : tipe : tipe data yang akan dikembalikan method; terbagi menjadi void dan bukan-void tipe : tipe data yang akan dikembalikan method; terbagi menjadi void dan bukan-void tipe void : jika method tidak mengembalikan nilai tipe void : jika method tidak mengembalikan nilai tipe bukan-void : ditandai dengan ada keyword return pada kode method; bisa : tipe data primitif, array, atau kelas tipe bukan-void : ditandai dengan ada keyword return pada kode method; bisa : tipe data primitif, array, atau kelas Contoh : return nilai; tipe namaMethod(daftar-parameter) { //kode method }

18 Mendefinisikan Method Menambahkan method cetakVolume() pada kelas Kotak. Menambahkan method cetakVolume() pada kelas Kotak. Method tidak mengembalikan nilai  tipe kembalian : void Method tidak mengembalikan nilai  tipe kembalian : void void cetakVolume(){ System.out.println(“Volume kotak = ” + (panjang*lebar*tinggi)); }

19 Membuat method hitungVolume(), method akan mengembalikan volume kotak yang tipenya double. Membuat method hitungVolume(), method akan mengembalikan volume kotak yang tipenya double. double hitungVolume(){ double volume; volume = panjang * lebar * tinggi; return volume; }

20 Method dengan Parameter Parameter adalah nilai yang dikirimkan dari pemanggil ke method yang dipanggil. Nilai-nilai ini akan digunakan di dalam method. 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. 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

21 Constructor Constructor : method khusus yang didefinisikan di dalam kelas dan akan dipanggil secara otomatis setiap membuat objek. Constructor : method khusus yang didefinisikan di dalam kelas dan akan dipanggil secara otomatis setiap membuat objek. Constructor digunakan untuk inisialisasi variabel- variabel objek. Constructor digunakan untuk inisialisasi variabel- variabel objek. Apabila tidak mendefinisikan constructor, maka Java akan otomatis membuatnya  DEFAULT CONSTRUCTOR Apabila tidak mendefinisikan constructor, maka Java akan otomatis membuatnya  DEFAULT CONSTRUCTOR DEFAULT CONSTRUCTOR menginisialisasi seluruh variabel dengan nilai NOL/NULL. DEFAULT CONSTRUCTOR menginisialisasi seluruh variabel dengan nilai NOL/NULL.

22 Tetapi, ketika kita membuat constructor baru untuk sebuah kelas, maka Java TIDAK akan membuat default constructor. Tetapi, ketika kita membuat constructor baru untuk sebuah kelas, maka Java TIDAK akan membuat default constructor. Constructor dapat MEMILIKI/TIDAK MEMILIKI parameter. Constructor dapat MEMILIKI/TIDAK MEMILIKI parameter. Constructor dapat di-OVERLOAD Constructor dapat di-OVERLOAD

23 Format penulisan constructor : Format penulisan constructor : Constructor TIDAK memiliki tipe kembalian. Constructor TIDAK memiliki tipe kembalian. namaKelas (daftar-parameter) { //kode constructor }

24 Contoh Constructor Kotak () { panjang = 7; lebar = 6; tinggi = 5; } Kotak (int p, int l, int t) { panjang = p; lebar = l; tinggi = t; }

25 Kata kunci : this this digunakan sebagai referensi ke objek yang sedang aktif this digunakan sebagai referensi ke objek yang sedang aktif Contoh : Contoh : penggunaan this pada constructor (ketika nama parameter sama dengan nama atribut kelas) 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; }

26 Overload Overload dapat diterapkan thd constructor dan method Overload dapat diterapkan thd constructor dan method Overload  mendefinisikan constructor/method dengan nama yang sama namun berbeda parameter dalam satu kelas. Overload  mendefinisikan constructor/method dengan nama yang sama namun berbeda parameter dalam satu kelas. Parameter disebut berbeda, jika : Parameter disebut berbeda, jika : Jumlahnya berbeda, meskipun tipenya sama Jumlahnya berbeda, meskipun tipenya sama Tipe datanya berbeda, meski jumlahnya sama Tipe datanya berbeda, meski jumlahnya sama Jumlah dan tipenya berbeda Jumlah dan tipenya berbeda Urutannya berbeda Urutannya berbeda

27 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

28 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

29 Pengiriman Parameter (passing parameter) Terdapat 2 jenis passing parameter : Terdapat 2 jenis passing parameter : pass by value pass by value pass by reference pass by reference Pemilihan kedua jenis di atas otomatis dilakukan oleh Java bergantung pada tipe parameter method. 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 merupakan tipe data primitif  pass by value Jika parameter berupa objek  pass by reference Jika parameter berupa objek  pass by reference

30 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 parameter boolean samaBentuk(Kotak k){ if (k.panjang==panjang && k.lebar==lebar && k.tinggi==tinggi) return true; else return false; }

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

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

33 Latihan Buatlah kelas berikut : 1. Penjelasan method : Penjelasan method : Bola adalah constructor yang akan menginisialisasi ketiga variabel Bola dg nilai tertentu 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 = 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 …” cetakVolume adalah method yang akan menuliskan ke layar “Bola dengan radius … volume adalah …” Bola warna radius merek Bola hitungVolume cetakVolume

34 2. Penjelasan method : Penjelasan method : PesanKamar adalah constructor yang akan menginisialisasi seluruh atribut dg nilai tertentu PesanKamar adalah constructor yang akan menginisialisasi seluruh atribut dg nilai tertentu totalBayar akan mengembalikan berapa yang harus dibayar oleh pemesan. Rumusnya = lamaInap*jumlahKamar*harga totalBayar akan mengembalikan berapa yang harus dibayar oleh pemesan. Rumusnya = lamaInap*jumlahKamar*harga cetakBill akan menuliskan ke layar “Tagihan untuk Tn./Ny. … sebesar Rp …” cetakBill akan menuliskan ke layar “Tagihan untuk Tn./Ny. … sebesar Rp …” PesanKamar jumlahKamar lamaInap harga namaPemesan PesanKamar totalBayar cetakBill

35 3. Waktu jam menit detik Waktu cetakWaktu setJam setMenit setDetik Penjelasan method : Penjelasan method : Waktu adalah constructor yang akan menginisialisasi seluruh atribut dg nilai tertentu Waktu adalah constructor yang akan menginisialisasi seluruh atribut dg nilai tertentu cetakWaktu akan menuliskan ke layar “Waktu saat ini jam:menit:detik” 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 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 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 setDetik akan mengisi nilai jam. Method memiliki parameter 1 integer yaitu nilai detik yang ingin dimasukkan. Nilai yang diperbolehkan adalah 0<= jam <= 59

36 TINGKAT AKSES DATA & METHOD

37 Modifier Data & Method Modifier pada data & method menentukan sejauh mana data & method dapat diakses oleh objek lain. Modifier pada data & method menentukan sejauh mana data & method dapat diakses oleh objek lain. Keyword yang digunakan : Keyword yang digunakan : private  hanya bisa diakses di dalam kelasnya private  hanya bisa diakses di dalam kelasnya public  bisa diakses di kelas manapun public  bisa diakses di kelas manapun protected  hanya bisa diakses di kelasnya & turunannya protected  hanya bisa diakses di kelasnya & turunannya Keyword diletakkan sebelum deklarasi data / method Keyword diletakkan sebelum deklarasi data / method Jika tidak mencantumkan ketiganya maka tingkat aksesnya adalah DEFAULT. Jika tidak mencantumkan ketiganya maka tingkat aksesnya adalah DEFAULT.

38 Keyword private Kelas Kotak Kelas Kotak public class Kotak{ private int panjang; private int panjang; private int lebar; private int lebar; private int tinggi; private int tinggi;} Kotak - panjang - lebar - tinggi

39 Efek Adanya private public class DemoKotak { public static void main(String[] args) { public static void main(String[] args) { Kotak k1 = new Kotak(10,5,17); Kotak k1 = new Kotak(10,5,17); k1.panjang = 12; k1.panjang = 12;} Salah, krn variabel panjang bersifat private, sehingga tidak boleh diakses langsung. Solusinya : sediakan method untuk mengakses variabel

40 Inner Class Inner class merupakan kelas yang dibuat/dideklarasikan di dalam sebuah kelas. Inner class merupakan kelas yang dibuat/dideklarasikan di dalam sebuah kelas. Inner class hanya dapat diakses di dalam kelas luarnya. Inner class hanya dapat diakses di dalam kelas luarnya.

41 Contoh

42 Package (Paket) Package/paket memungkinkan kita untuk mengelompokkan kelas-kelas. Package/paket memungkinkan kita untuk mengelompokkan kelas-kelas. Caranya : Caranya : tuliskan : package [nama_package] di baris pertama kelas Nama package bersifat bebas. Nama package bersifat bebas. Data & method dg tipe akses default hanya dapat diakses/dikenali di package yang sama. Data & method dg tipe akses default hanya dapat diakses/dikenali di package yang sama.


Download ppt "Kelas & Objek. Tujuan Di akhir pertemuan, mahasiswa diharapkan : 1. Memahami konsep kelas & objek 2. Mampu mengidentifikasi perbedaan antara kelas & objek."

Presentasi serupa


Iklan oleh Google