Pemrograman Berorientasi Objek
Menggunakan JAVA
Bahasa Java dapat mengkoneksikan pemakai dengan inforamsi yang datang dari web server, basis data, penyedia informasi dan sumber-sumber lain, bahkan untuk pengembangan pengembangan program atau aplikasi waktu nyata. Bahasa Java memiliki fitur keamanan built-in yang membuat tugas pemrograman lanjut seperti pemrograman jaringan, pemrograman tersebar, konektifitas basisdata. Juga memiliki fitur multithreading sehingga mempermudah dalam pemrogrman aplikasi multithreading, pemrograman menjadi lebih nyaman.
Java Bahasa Mudah?? pernyataan ini dapat benar atau salah. Pernyataan itu benar bahwa bahasa Java merupakan bahasa sederhana, hanya terdiri beberapa sintaks konsisten, sering disebut sebagai C++ kurang. Kompleksitaanya lebih kecil dibanding C++. Namun karena rancangannya bagus, bahasa Java mudah diperluas melalui pengembangan pustaka berisi paket-paket kelas untuk keperluan khusus. Konsep-konsep pemrograman bahasa Java sebagai elemen-elemen bahasa Java dibangun tidak lebih dari 100 kata kunci.
Java merupakan bahasa pemrograman yang berorientasi objek (Object Oriented Programming). Pemrograman berorientasi objek telah menggantikan pemrograman terstruktur karena punya banyak keunggulan dalam penanganan proyek-proyek yang luar biasa kompleks. Pemrograman menggunakan bahasa berorientasi objek yang mengikuti konsep-konsep berorientasi objek terutama menawarkan fleksibilitas, kegunaan, dan kemudahan pemeliharaan.
Dibanding bahasa C++, Java lebih memberi kemudahan dan keamanan, antara lain:
- Perancangan Java menghilangkan alokasi dan dealokasi manual. Memori di Java secara otomatis dilengkapi garbage collector yang bertugas mendealokasi memori yang tidak diperlukan.
- Java menerapkan array sebenarnya, menghilangkan keperluan aritmatik pointer yang berbahaya dan mudah menjadi salah.
- Menghilangkan keniscayaan penugasan (assigment) sebagai pengujian atas kesamaan di kalimat bersyarat.
- Menghilangkan pewarisan jamak (multiple inheritance) diganti fasilitas interface yang merupakan temuan di bahasa Objective C. Interface memberi banyak manfaat, lebih banyak daripada sekedar untuk pewarisan jamak tanpa dibebani kompleksitas yang muncul dari pengelolaan hirarki pewarisan jamak.
Konsep-konsep penting Pendekatan Berorientasi Objek
Beberapa konsep berorientasi yang penting:
1. Pengkapsulan (encapsulation)
2. Pewarisan (inheritance)
3. Polymorphism
1. Pengkapsulan
Pengkapsulan adalah proses pemaketan data objek bersama metode-metodenya. Manfaat utama pengkapsulan adalah menyembunyikan rincian-rincian implementasi dari pemakai/objek lain. Bagian internal objek mempunyai ketampakan terbatas dibanding bagian eksternal objek. Penyusunan seperti ini menjaga bagian internal dari pengaksesan eksternal yang tidak diinginkan.
Bagian eksternal objek sering disebut antarmuka objek karena berlaku sebagai antarmuka objek terhadap objek lain. Karena objek lain harus berkomunikasi dengan objek itu hanya melalui antarmuka maka bagian internal objek dapat dilindungi dari gangguan luar. Karena program luar tidak mengakses implementasi internal objek, implementasi internal dapat berubah tanpa mempengaruhi bagian-bagian program yang lain.
2. Pewarisan
Pewarisan adalah satu konsep terpenting pemrograman berorientasi objek dan mempunyai dampak langsung pada cara merancang dan menulis kelas. Pewarisan adalah proses penciptaan kelas baru dengan mewarisi karakteristik kelas yang telah ada, ditambah karakteristik unit kelas baru itu. Dengan pewarisan, dimungkinkan penciptaan, dimungkinkan pencipataan klasifikasi berhirarki. Dengan pewarisan, kita dapat mencipatkan kelas umum yang mendefenisikan perilaku umum dari item-item yang saling berhubungan. Kelas ini kemudian dapat diwarisi kelas-kelas lain, kelas yang lebih spesifik menambahkan hal-hal yang unik dikelas itu. Dalam terminologi Java, kelas yang diwarisi disebut superklas, sedang kelas yang mewarisi disebut subkelas. Java hanya memungkinkan pewarisan tunggal (single inheritance). Pewarisan di Java dapat dilakukan terhadap bentukan class dan interface.
3. Polymorphism
Polymorphism merupakan konsep pokok didalam perancangan berorientasi objek. Polymorphism berarti mempunyai banyak bentuk. Dua objek atau lebih dikatakan sebagai polymorphic bila objek-objek itu mempunyai antar muka identik namun mempunyai perilaku-perilaku berbeda. Polymorphism berupa satu nama tunggal (seperti deklarasi fungsi) dan dapat menyatakan objek kelas-kelas berbeda yang saling terhubung dengan superklas dan common diantara kelas-kelas itu.
Contoh Program 1 (HelloWorld.java) yaitu :
/** Program Perkenalan dengan Java
Helo Java*/
// Deklarasi kelas
class HeloJava {
//Deklarasi fungsi yang mewakili program utama
public static void main(String args[]) {
System.out.println (“Helo, Hafid”);
}
}
Output :
Helo, Hafid
Contoh Program 2 (MamaliaDarat) yaitu :
public class MamaliaDarat{
public static void main(String[] args){
// Mendeklarasikan dan menginisialisasi data
String suaraHewan = “”;
System.out.println(“\nDEMO KELAS, METHOD DAN DATA”);
System.out.println(“—————————\n”);
Kucing pussy = new Kucing();
suaraHewan = pussy.mengeong();
System.out.println(“Pussy : ” + suaraHewan);
Anjing doggy = new Anjing();
suaraHewan = doggy.menggonggong();
System.out.println(“Doggy : ” + suaraHewan);
Macan siKumbang = new Macan();
suaraHewan = siKumbang.mengaum();
System.out.println(“Si Kumbang : ” + suaraHewan);
}
}
class Kucing {
// Method yang mengembalikan suara kucing
public String mengeong() {
String suara = new String(“Meoong…”);
return suara;
}
}
class Anjing{
// Method yang mengembalikan suara anjing
public String menggonggong() {
String suara = new String(“Guk..Guk…”);
return suara;
}
}
class Macan {
// Method yang mengembalikan suara macan
public String mengaum() {
String suara = new String(“Auummm…”);
return suara;
}
}
Output :
DEMO KELAS, METHOD DAN DATA
————————————————–
Pussy : Meoong…
Doggy : Guk..Guk…
Si Kumbang : Auummm…
Contoh Program 3a (EkspresiWajah) yaitu :
class EkspresiWajah {
public String respons() {
return (“Lihatlah reaksi wajah saya\n”);
}
}
class Gembira extends EkspresiWajah {
public String respons() {
return (“Ha ha..hi hi..saya sedang gembira\n”);
}
}
class Sedih extends EkspresiWajah {
public String respons() {
return (“Hik..hik…teganya dia berbuat itu..\n”);
}
}
class Marah extends EkspresiWajah {
public String respons() {
return (“Hei..jangan dekati saya!!!\n”);
}
}
Contoh Program 3b (EkspresiEmosional) yaitu :
public class EkspresiEmosional {
/**Main Method*/
public static void main( String [] args ) {
System.out.println(“\nDEMO POLIMORFI”);
System.out.println(“————–\n”);
// Membuat objek-objek ekspresi dari wajah
EkspresiWajah objEkspresi = new EkspresiWajah();
Gembira objGembira = new Gembira();
Sedih objSedih = new Sedih();
Marah objMarah = new Marah();
// Menyatakan objek-objek ekspresi tersebut menjadi
// suatu daftar ekspresi
EkspresiWajah [] ekspresi = new EkspresiWajah[4];
ekspresi[0] = objEkspresi;
ekspresi[1] = objGembira;
ekspresi[2] = objSedih;
ekspresi[3] = objMarah;
// Polymorfi membuat EkspresiWajah menjadi terlihat memiliki
// beberapa tingkah laku/kondisi yang berbeda-beda.
System.out.println( “Ekspresi[0]: ” + ekspresi[0].respons());
System.out.println( “Ekspresi[1]: ” + ekspresi[1].respons());
System.out.println( “Ekspresi[2]: ” + ekspresi[2].respons());
System.out.println( “Ekspresi[3]: ” + ekspresi[3].respons());
}
}
Output :
Output :
DEMO POLIMORFI
————————-
Ekspresi [0] : Lihatlah reaksi wajah saya
Ekspresi[1] : Ha ha..hi..saya sedang gembira
Ekspresi[2] : Hik..hik…teganya dia berbuat itu..
Ekspresi[3] : Hei..jangan dekati saya!!!