Kelas dan Objek Oleh : Agus Priyanto, M.Kom Tujuan Perkuliahan Setelah mempelajari materi ini, diharapkan mahasiswa mampu: 1. Mendefinisikan kelas dalam bahasa Java 2. Menerjemahkan objek dunia nyata ke dalam model objek dalam Java Kelas Dan Instance Sekumpulan objek-objek yang sama disebut kelas (class) Semua objek dalam suatu kelas memiliki atribut dan operasi yang sama, tetapi nilai atribut dapat berbeda Suatu objek tertentu merupakan instance sebuah kelas Contoh Sekumpulan bola merupakan suatu kelas Seluruh bola memiliki ukuran, berat dan warna, posisi Seluruh bola dapat dilempar dan ditangkap Bola yang berbeda mungkin memiliki ukuran, berat dan warna yang berbeda - merupakan instances Pemodelan Computing Real World Pemodelan -- Abstraksi ukuran bahan warna dilempar berat ditangkap lokasi pemilik dibuang harga Pemodelan -- Abstraksi ukuran bahan warna dilempar berat ditangkap lokasi pemilik dibuang harga KE MODEL Definisi Kelas atribut perilaku class ClassName { Fields Constructors Methods } Elemen-elemen dasar dalam mendefinisikan kelas 1. Field (variabel) : menyimpan data untuk setiap objek (implementasi dari atribut) 2. Constructor : setup objek di awal 3. Method : implementasi perilaku objek Studi Kasus : Shpare Studi Kasus : SPHERE / BOLA Bagaimana Anda menggambarkan ini dalam komputer ?? 1. Menentukan Field (Variabel) Field yang digunakan berisi variabel sebagai berikut : 1. Koordinat dalam sumbu 3 dimensi 2. Jejari 3. ….dsb class Sphere { double xcenter; double ycenter; double zcenter; double radius; ……… ……… constructor dihilangkan method dihilangkan } Jenis Variabel Instance variable Setiap objek memiliki salinan sendiri dan salinan tersebut memiliki nilai masing-masing Class variable Suatu kelas hanya memiliki satu variabel jenis ini dan digunakan bersama oleh semua objek dari kelas tersebut Class Sphere Definition public class Sphere { Share between all object Sphere.PI 3.14 // class variabel Static double PI=3.14; //instance variabel double xCenter double yCenter double zCenter double radius } Each object gets its own copy globe xCenter yCenter zCenter radius Sphere Object ball xCenter yCenter zCenter radius 2. Menentukan Konstruktor Peran : bertanggung jawab untuk membuat setiap objek dari suatu kelas berada pada kondisi yang diinginkan pada saat objek dibuat Disebut juga inisialisasi Pemberian nilai awal terhadap field yang ada Suatu kelas bisa memiliki beberapa konstruktor Karakteristik • Tidak pernah memiliki nilai balikan • Memiliki nama sama dengan nama kelas Default Konstruktor Apabila konstruktor tidak didefinisikan pada sebuah kelas, kompiler akan mensuplai default constructor yang tidak memiliki parameter dan tidak melakukan sesuatu public class Sphere { fields tidak dituliskan Sphere(double theRadius, double x, double y, double z) { radius = theRadius; // Set the coordinates of the center xCenter = x; yCenter = y; zCenter = z; ++count; } method tidak dituliskan } 3. Menentukan Method Beberapa method untuk kelas ini dapat dibuat antara lain: 1. Mengubah nilai koordinat atau jejari 2. Mengetahui nilai koordinat atau jejari 3. Mencetak informasi tentang kelas 4. Menghitung volume public class Sphere { fields tidak dituliskan constructor tidak dituliskan public void setRadius(double rad) { radius = rad; } } public class Sphere { fields tidak dituliskan constructor tidak dituliskan public double getRadius(void) { return radius; } } public class Sphere { fields tidak dituliskan constructor tidak dituliskan public double volume(void) { return 4.0/3.0*PI*radius*radius*radius; } } 5. Membuat Objek Apabila dideklarasikan Sphere ball; Tidak ada konstruktor yang dipanggil dan tidak ada objek yang dibuat Hanya deklarasi variabel serta membuat suatu rujukan Apabila dideklarasikan ball = new Sphere(10.0, 1.0, 1.0, 1.0); public class Sphere { fields tidak dituliskan constructor tidak dituliskan public static void main(String[] args) { Sphere ball = new Sphere(4.0, 0.0, 0.0, 0.0); Sphere globe = new Sphere(12.0, 1.0, 1.0, 1.0); // Output the volume of each sphere System.out.println("ball volume = " + ball.volume()); System.out.println("globe volume = " + globe.volume()); } } Objek yang telah dibuat dapat digunakan dengan Memanggil method yang disediakan Contoh Source Code 1 public class Mobil { // Membuat class String warna; // Membuat atribut int tahunProduksi; } Mobil.java public class MobilBeraksi{ MobilBeraksi.java public static void main(String[] args){ // Membuat object Mobil mobilku = new Mobil(); /* memanggil atribut dan memberi nilai */ mobilku.warna = "Hitam"; mobilku.tahunProduksi = 2006; System.out.println("Warna: " + mobilku.warna); System.out.println("Tahun: " + mobilku.tahunProduksi); } } Contoh Source Code 2 public class Sepeda{ int gir; // method (mutator) dengan parameter void setGir(int pertambahanGir) { gir= gir+ pertambahanGir; } // method (accessor) int getGir() { return gir; } } Sepeda.java public class SepedaBeraksi{ SepedaBeraksi.java public static void main(String[] args) { Sepeda sepedaku = new Sepeda(); sepedaku.setGir(1); // menset nilai gir = 1 (sebelumnya 0) System.out.println(“Gir saat ini: “ + sepedaku.getGir()); sepedaku.setGir(3); // menambahkan 3 pada posisi gir saat ini (1) System.out.println(“Gir saat ini: “ + sepedaku.getGir()); } } public class Mobil { Mobil.java String warna; int tahunProduksi; public Mobil(String warna, int tahunProduksi){ this.warna = warna; this.tahunProduksi = tahunProduksi; } public void info(){ System.out.println("Warna: " + warna); System.out.println("Tahun: " + tahunProduksi); } } public class MobilKonstruktor{ public static void main(String[] args){ Mobil mobilku = new Mobil(“Merah”, 2003); mobilku.info(); } } Contoh Source Code 3 MobilKonstruktor.java Contoh Source Code 4 Public class matematika{ matematika.java int penambahan=0; int pengurangan=0; double hasil=0; void penambahanMtk(int a,int b){ penambahan= a + b; System.out.println("Penambahan : "+a+ " + "+b+" = " +penambahan); } void penguranganMtk(int a,int b){ pengurangan= a - b; System.out.println("Pengurangan :"+a+ " - "+b+" = "+pengurangan); } } Public class matematikaBeraksi{ matematikaBeraksi.java public static void main (String[]args){ matematika matematikaku=new matematika(); // membuat objek matematikaku.penambahanMtk(20,20); //memanggil metode & mengirim nilai parameter matematikaku.penguranganMtk(10,5); } } Contoh Source Code 5 Public class Buku{ private String judul; private String pengarang; private String penerbit; private int tahun; public Buku(String judul, String pengarang,String penerbit,int tahun) { this.judul=judul; this.pengarang=pengarang; this.penerbit=penerbit; this.tahun=tahun; } public void cetakBuku(){ System.out.println("Judul =" + this.judul); System.out.println("Pengarang ="+ this.pengarang); System.out.println("Penerbit =" + this.penerbit); System.out.println("Tahun ="+ this.tahun); } } buku.java class bukuBeraksi{ public static void main (String[]args){ Buku buku_agus= new Buku("Pemrograman Berorientasi Objek Dengan Java ", "Indrajani", "Elexmedia Komputindo",2007); buku_agus.cetakBuku(); } }