Pemrograman JAVA (TIB09) Class & Objek Disusun oleh: Teady Matius – teadymatius@yahoo.com
Class Blueprint atau prototype dari suatu objek yang akan di bentuk Mendefinisikan Property dan Method yang akan diterapkan pada objek yang akan dibentuk oleh class Property Karakteristik yang dimiliki oleh objek Method Aksi yang dapat dilakukan oleh objek
Lambang Diagram untuk Class
Membuat Class public class NamaClass { } //deklarasi Property //sama seperti deklarasi variable //definisi method-method }
Objek Bentuk nyata hasil bentukan dari suatu Class (instance of class) Method dan Property yang didefinisikan pada class akan menjadi method dan property objek yang dibentuk dari class tersebut
Membentuk Objek dari suatu Class Deklarasikan terlebih dahulu objeknya NamaClass namaObjek; Bentuk objeknya dengan perintah new diikuti konstruktornya namaObjek = new NamaClass(); //Perhatikan!!! key NamaClass() sebenarnya adalah nama konstruktor yang juga akan dibahas pada slide berikutnya. Dapat juga mendeklarasikan objek sambil membentuk objeknya NamaClass namaObjek = new Konstruktor()
Method Aksi-aksi yang dapat dilakukan pada suatu objek Pada dasarnya adalah fungsi atau subroutine, sehingga didalamnya berisi rangkaian statement. Method tanpa return value disertai dengan keyword void pada tipe_return_value nya Syntax: Access_modifier tipe_return_value namaMethod() { } contoh: public void hitungDenda()
Eksekusi Method Eksekusi method adalah pemberlakuan aksi pada suatu objek. pada non static method harus jelas objek yang akan dikenai aksi pada eksekusi suatu method Secara umum harus didahului nama objek, kemudian diikuti dengan nama method. Pada kasus lain misal pada static method, akan Syntax secara umum: namaObjek.namaMethod();
Method dengan return value Return value adalah nilai yang dihasilkan dan menjadi nilai hasil method ketika suatu method di eksekusi Aturan Method dengan return value sama dengan pemanggilan dengan method tanpa return value Return value dikembalikan dengan keyword return Contoh: public int getPuluhan(int i) { return i * 10; } Return value dapat ditampung pada sebuah variable dengan tipe data yang sama dapat pula dipergunakan langsung. Contoh (contoh pemanggilan di asumsikan pada class yang sama dengan method pemanggilnya non static juga): int a, b; a = getPuluhan(8); System.out.println(a); System.out.println(getPuluhan(7)); b = getPuluhan(8) + 8; System.out.println(b);
Method dengan argumen Method dapat disertai dengan argumen yang dideklarasi menyertai nama method. Pemanggilannya harus menyertai nilai-nilai untuk mengisi argumen tersebut. Pemanggilan Method dengan argumen sama dengan pemanggilanmethod tanpa argumen Contoh Definisi: public void hitungDenda(int terlambat) { } Contoh pemanggilan: hitungDenda(8);
Method main() Method main() adalah method yang akan pertama kali dieksekusi ketika suatu class dipanggil melalui JVM Class yang akan diinstance objeknya pada class lain tidak memerlukan method main() Method main HARUS mempunyai satu argumen bertipe string sebagai penampung argumen. Meskipun pada eksekusi class nya tidak akan menyertai argumen, pada definisi method main tetap harus disertai argumen string tersebut.
Konstruktor Kontruktor adalah method pembentuk objek. Nama method konstruktor sama dengan nama Nama Class nya Inisialisasi awal dapat dicantumkan pada konstruktor Method konstruktor dapat didefinisikan dapat juga tidak didefinisikan Seperti halnya method yang lain, konstruktor dapat disertai dengan argumen pemberian argumen pada suatu objek diberikan melalui konstruktor dengan catatan: jika didefinisikan. Method konstruktor yang tidak didefinisikan adalah method tanpa argumen
Contoh Class dengan definisi konstruktor public class Abc { char huruf; public Abc() huruf = ‘A’; } public void cetak() System.out.println(huruf);
Overloading Overloading: Penyediaan Method pada suatu class yang mempunyai nama yang sama dengan parameter yang berbeda. Dengan overloading, dapat dilakukan pemanggilan method sesuai dengan parameter yang menyertai pemanggilannya Contoh: cetak(); cetak(10); cetak(‘A’); cetak(‘A’,10); Konstruktor dan method dengan return value juga dapat dioverloading Contoh Method Overloading: public void cetak() { System.out.println(‘A’); } public void cetak(int ulang) for (int i=1; i<=ulang; i++) public void cetak(char huruf) System.out.println(huruf); public void cetak(char huruf,int ulang)
Access Modifier public + protected # tanpa modifier private - Semua class yang terhubung dapat mengakses protected # Hanya dapat diakses oleh class dalam satu package dan class-class yang turunannya tanpa modifier Hanya dapat diakses oleh class-class dalam satu package private - Hanya class pemilik saja yang dapat mengakses
Enkapsulasi Prinsip enkapsulasi ini ditujukan untuk menjaga agar keamanan nilai suatu atribut dapat dijaga. Dengan pengaturan access modifier memungkinkan pembatasan access nilai dari suatu atribut secara langsung sehingga hanya dapat diakses dengan method pada class tersebut.
Static Modifier Keyword static di depan fungsi ataupun variable memberi perintah pada JVM untuk melakukan alokasi memory pada saat JVM mengisi nama class yang digunakan pada saat awal program di eksekusi. Method static hanya dapat mengakses variabel static dan method static lainnya secara langsung. Untuk mengakses method non static ataupun variabel non static, suatu method static harus membuat objek terlebih dahulu dari class yang memiliki method ataupun variabel non static tersebut. Jika suatu class mempunyai suatu method static yang ingin mengakses method ataupun variabel non static, maka class tersebut harus membuat objek dari dirinya terlebih dahulu sehingga method static di dalam class tersebut dapat mengakses variabel ataupun method non static melalui objek yang dibentuk tadi. Suatu method static dan variabel static dapat diakses oleh method static tanpa menciptakan objek dari class pemilik method ataupun variabel static tersebut. Cukup dengan menyebutkan nama class nya diikuti dengan nama variable ataupun nama method static tersebut. Karena Variabel static dialokasi di memory secara statis, maka ketika suatu objek dibentuk dari class pemilik variabel tersebut, maka
Contoh Static Method public class Abc { public static void cetakHallo() Sytem.out.println(“Hallo”); } public static void main(String args[]) cetakHallo(); Method cetakHallo() tidak akan dapat dieksekusi secara langsung oleh method main() yang merupakan static method() jika tidak disertai keyword static di depannya.
Contoh memanggil method non static dari method static public class Abc { public void cetakHallo() Sytem.out.println(“Hallo”); } public static void main(String args[]) Abc a = new Abc(); a.cetakHallo();
Memanggil Static Method dari class lain dari static method public class Abc { public static void cetakHallo() Sytem.out.println(“Hallo”); } public class PanggilAbc { public static void main(String args[]) Abc.cetakHallo(); } Pertanyaan: Mengapa tidak perlu dibuat objek dari class Abc nya?
Contoh Static Variabel public class Abc { static int hitung; public static void main(String args[]) hitung = 5 * 3; System.out.println(kounter); }
Diskusi: Mengapa method main harus berupa method static? Jika di dalam static method dideklarasikan sebuah variabel apa yang terjadi dengan variabel tersebut ?