I. Tujuan Instruksional Umum Mengenal konsep dasar berorientasi objek Memahami dan dapat mengimplementasikan Kelas dan Objek pada java II. Bahan Kajian 1. Kelas(Class) Kelas adalah definisi umum (pola, template atau cetak biru) untuk himpunan objek sejenis. Kelas menetapkan spesifikasi perilaku (behavior) dan atribut dari objek-objek. Pada bahasa java segala sesuatu yang didefinisikan harus berada di dalam kelas. Kelas terdiri dari atribut dan method. 2. Objek (Object) Objek (object) adalah benda, yang secara fisik dapat ditemui disekeliling kita. Objek adalah sesuatu yang memiliki status(state) dan perilaku(behaviour). State dari objek adalah keadaan yang menggambarkan objek tersebut. Contoh Objek manusia memiki status umur pada saat ini. State dinytakan dengan value. Behavior suatu objek mendefinisikan bagaimana sebuah objek bertindak (beraksi) dan memberi reaksi. Objek adalah contoh(instance) dari kelas. 3. Keterhubungan antara kelas dan objek Berikut contoh ilustrasi keterhungan antara Kelas dengan objek: Seorang arsitek membuat sebuah disain gedung pada kertas(sketsa), dia mendefnisikan bahwa gedung tersebut memiliki dua kamar tidur dengan ukuran masing-masing 4Mx5M, kemudian memiliki ruang satu tamu dengan ukuran 4Mx5M, ruang kerja, toilet dan sebagainya. Gambar desain gedung tersebut disebut sebagai kelas. Sedangkan Bangunan asli yang dibuat dengan mengikuti pola dan aturan gambar disain tersebut disebut Objek. 4. Penjelasan pada Materi-materi Sebelumnya Ada beberapa materi sebelumnya yang sebenarnya kurang baik dimplementasikan, tetapi dengan alasan untuk mempermudah pemahaman siswa terhadap khususnya struktur dan alur program java, maka keburukan-keburukan tersebut masi diimplementasikian. Akan tetapi secara perlahan keburukankeburukan tersebut dihilangkan, salah satu contohnya adalah pembuatan method yang semakin modular dan pembatasan akses terhadap property secara langsung. Akan tetapi ada salah satu keburukan yang masih diimplementasikan yaitu penulisan keyword static yang tidak seharusnya ada karena tidak sesuai dengan fungsinya. Kita selama ini menggunakan keyword static hanya untuk menghindari penciptaan objek (intansiasi), kecuali method main(). 5. Deklarasi static Deklarasi static digunakan untuk menunjuk suatu prorerty atau method secara langsung tanpa menunjuk ke suatu instance tertentu. Contoh dalam kehidupan nyata adalah sang arsitek dengan desain gedung yang telah dibuatnya. Dalam desainya arsitek telah merancang ruang kerja, toilet, kamar dan sebagainya. Namun tak pun ruang tersebut dapat digunakan sebelum gedungnya(instance) sendiri dibuat. Namun tentu saja anda masi bisa menggunakan beberafa spesifikasi dari desain tersebut tanpa harus menunggu gedung tersebut jad. Contohnya adalah jumlah ruang kerja dan toilet. Method yang dideklarasikan sebagai static memilki aturan sebagai berikut: [if-unpas] 2010 @author : Hendra Komara, ST. Page 1
Hanya dapat dipanggil oleh method lain yang static juga. Hanya dapat mengakses property yang static juga. Tidak bisa menggunakan keyword this dan super. Jadi dengan demikian dari mulai saat ini kita mendeklarasikan property dan method tidak lagi menggukan static apabila tidak sesuai dengan fungsinya. 6. Konstruktor Adalah Method yang sama dengan nama kelas Pemberian inisialisasi(nilai awal) pada saat instansiasi objek Jika kita tidak mendeklarasikan maka java secara otomatis akan menambahkan konsuktor default pada kelas yg kita buat Jika kita sudah mendeklarasikan minimal satu konstruktor maka tidak akan dibuat konsuktor otomatis Jika Kita membuat lebih dari satu konstruktor maka parameternya harus berlainan Konstruktor mana yang akan dieksekusi bergantung pada bagaimana class tersebut diintansiasi 7. Type Data Referensi Tidak seperti tipe data primitive yang variabelnya dapat menampung nilai. Tipe data Referensi, variabelnya digunakan untuk memegang referensi dari suatu objek. Pengalokasian memori untuk variabel tipe reference tidak dialokasikan pada saat deklarasi, alokasi dilakukan eksplisit dengan operator new 8. Intansiasi Intansiasi adalah proses penciptaan objek dari kelasnya. Pada java proses intansiasi adalah dengan sintax new nama-konstruktor. Contoh new Calculate(). Dengan new Calculate() tersebut maka telah dibuat objek dengan nama Calculate dan objek tersebut secara isotomatis memiliki apa-apa yang sudah didefinisikan dari kelas Calculate. Suatu objek referensinya dapat dipegang oleh var yang tipenya adalah Kelas dari objek tersebut diciptakan. Contoh Calculate cal = new Calculate(). Penjelasan dari contoh tersebut adalah telah tercipta objek Calculate dan objek tersebut referensinya dipegang oleh var cal. 9. Contoh Program package ac.ifunpas.ap1.praktikum.modul9; public class Calculate { public Calculate() { System.out.println("Konstruktor dieksekusi"); //Method tanpa static public int add(int a, int b){ int result = a + b; return result; //Method main harus dideklarasikan stic public static void main(string[] args) { /*Untuk akses method add() tidak bisa memanggil *methonya secara langsung, tetapi harus melaui- *instancenya, karena main dideklarasikan static- *sedangkan add() tidak. */ //Objek baru tercipta,sehingga bisa akses System.out.println("Obj 1 : "+new Calculate().add(2, 3)); [if-unpas] 2010 @author : Hendra Komara, ST. Page 2
/* *Objek baru tercipta dan referensinya dipegang oleh- *var cal. var cal memilki type Calculate *cal ini bisa akses apa-apa yang dimiliki objek Calc */ Calculate cal = new Calculate(); System.out.println("Obj 2 : "+cal.add(2, 6)); III. Instruksi Praktikum 1. Latihan 1 Instruksi : 1. Buat project baru 2. Klik File New Java Project 3. Beri nama projectnya dengan nrp anda modul9 klik tombol finish 4. Buat paket baru, klik kanan di folder src, pilih new package beri nama: ac.ifunpas.ap1.prak. modl9.nrp1040xxx 5. Buat class baru, klik kanan di package ap1.prak. modl9.nrp1040xxx pilih new class beri nama Book klik button finish 6. Kemudian ketikkan source dibawah ini di editornya : package ac.ifunpas.ap1.praktikum.modul9; public class Book { //property sudah tidak ada static. //Pada bahasan selanjutnya public juga- //akan ditiadakan. public String author; public String title; //Konstruktor tanpa parameter public Book(){ System.out.println("Konstor tanpa param di eksekusi"); title = "Tidak Diketahui"; author = "Tidak dikenal"; //Konstruktor dengan param public Book(String judul, String pengarang){ System.out.println("Konstor dengan param di eksekusi"); title = judul; author = pengarang; public boolean show(){ boolean status = false; if(title!= null && author!= null){ return status = true; return status; public static void test(){ //Tipe data referensi,var belum dilokasikan dimemory //masi bernilai null Book a; Book b; //intansiasi. [if-unpas] 2010 @author : Hendra Komara, ST. Page 3
a = new Book(); b = new Book("The Lost Symbol", "Dan Brown"); //Ada 2 objek //jika == true if(a.show()){ System.out.println("objek tanpa param :"); System.out.println(a.author); System.out.println(a.title); System.out.println("--------------"); System.out.println(); //jika == true if(b.show()){ System.out.println("objek dengan param :"); System.out.println(b.author); System.out.println(b.title); public static void main(string[] args) { test(); 7. Amati dan pahami program di atas! 8. Diskusikan dengan asisten, khususnya mengenai tingkahlaku objek! 2. Latihan 2 Rubah kode program pada latihan 1! Buat kondisi yang akan membuat method mengembalikan nilai false (Buat kelas baru dengan Nama Book1) 3. Latihan 3 Rubah kode program pada latihan 1! Pada method show() ada pengkondisian if(title!= null && author!= null), tambahkan method untuk mengani var title dan author shingga pada pengkondisian tersebut tidak memanggil var tetapi memanggil method (Buat kelas baru dengan Nama Book2 4. Latihan 4 Buatlah program untuk menghitung Luas dan keliling bangun Persegi Panjang, Segitiga, dan Lingkaran dengan spesifikasi sebagai berikut : Inputan nilai dimasukan melalui method main() dengan nilai : 1. Persegi Panjang : Masukan Panjang : 3 Masukan Lebar : 4 2. Segitiga : Masukan Alas : 2 Masukan Tinggi : 7 3. Lingkaran : Masukan jari- jari : 7 Ketentuan : - Program dibuat secara modular dan menyertakan objek - Informasi yang ditampilkan harus tidak boleh mengambil langsung dari value vriable tetapi harus melalui method - Buatlah dengan menggunakan parameter [if-unpas] 2010 @author : Hendra Komara, ST. Page 4
IV. Tugas 1. Buat makalah mengenai modifier (visbiliti) secara detail disertai contoh-contoh program! (paling sedikit 5 lembar) 2. Buat sebuah program yang sudah berorientasi objek dan modular untuk menghasilkan output seperti di bawah ini! [if-unpas] 2010 @author : Hendra Komara, ST. Page 5