Pengetahuan Dasar Untuk Seorang "PROGRAMER"
Posted on Juli 12, 2011 by Mr. Syeh Bagus
Pengertian OOP (Object Oriented Programming)
Pemrograman berorientasi objek diciptakan untuk mempermudah pengembangan program dengan cara mengikuti model yang telah ada dalam kehidupan nyata. Sebagai contoh, tengoklah sebuah mobil. Mobil adalah sebuah objek dalam kehidupan nyata. Namun mobil sendiri terbentuk dari beberapa objek yang lebih kecil seperti roda ban, mesin, jok, dll. Mobil sebagai objek yang merupakan gabungan dari objek yang lebih kecil dibentuk dengan membentuk hubungan antara objek-objek penyusunnya. Begitu juga dengan sebuah program. Objek besar dapat dibentuk dengan menggabungkan beberapa objek-objek dalam bahasa pemrograman. Objek-objek tersebut berkomunikasi dengan saling mengirim pesan kepada objek lain.
Konsep-konsep pemrograman berorientasi objek dalam Java secara umum sama dengan yang digunakan oleh bahasa-bahasa lain. Jadi kebanyakan konsep yang kita bahas juga terdapat dalam bahasa selain Java. Namun, terkadang terdapat perbedaan-perbedaan kecil antara penerapan konsep-konsep tersebut dalam masing-masing bahasa. Perbedaan-perbedaan ini juga akan dijelaskan seiring penjelasan masing-masing konsep.
.
OBJECT ( OBJEK )
Object adalah pencerminan dari sebuah entitas entitas dari dunia nyata yang dapat diidentifikasi.
Contah :
//konstruktor juga dengan desain khusus
Lingkaran(double newjari){
Jari = new jari
}
//mencari luas lingkaran
Double luas lingkaran(){
Return jari * jari * 3,14159;
}
}
CLASS
( KELAS )
Class pada bahasa pemrograman java merupakan sebuah kode program yang mendefinisikan
semua rincian spesifik dari suatu class yang diperlukan dalam program. Format
umum Class adalah berikut ini tag : bahasa pemrograman java , pemrograman java
, class java , makalah class dalam java , bahasa pemrograman dan jelaskan.
ATTRIBUTE
Atribut adalah data yang dapat membedakan antara satu obyek dengan obyek yang
lain.
Contoh untuk class mahasiswa terdapat obyek mahasiswa si A,dan obyek mahasiswa
si B. Yang membedakan antara obyek si A dan obyek si B adalah NIM-nya yang
merupakan Atribut dari obyek tersebut.
Karakteristik OOP
Objek,
membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program
komputer. Objek merupakan dasar dari modularitas dan struktur dalam sebuah
program komputer berorintasi objek
Abstraksi,
kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya,
yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani
sebagai model dari "pelaku" abstrak yang dapat melakukan kerja,
laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam
sistem tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi
atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk
mengembangkan sebuah pengabstrakan.
Enkapsulasi,
memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari
sebuah objek dengan cara yang tidak layak. Hanya metode dalam objek tersebut
yang diberi izin untuk mengakses keadaannya. Setiap objek mengakses interface
yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek
lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek
tersebut.
Polimorfisme
(melalui pengiriman pesan). Tidak bergantung kepada pemanggilan subrutin.
Bahasa orientasi objek dapat mengirim pesan. Metode tertentu yang berhubungan
dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesan
tersebut dikirim. Contohnya, bila sebuah burung menerima pesan "gerak
cepat", dia akan menggerakan sayapnya dan terbang. Bila seekor singa
menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya
menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan
tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program
dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan
teks program yang sama dapat memanggil beberapa metode yang berbeda di saat
yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa
fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas pertama.
Inheritas,
mengatur polimorfisme dan enkapsulasi dengan mengijinkan objek yang
didefinisikan dan diciptakan dengan jenis khusus yang sudah ada. Objek ini
dapat membagi dan memperluas perilaku mereka tanpa harus mengimplementasi ulang
perilaku tersebut
Konsep pemrograman OOP
Ada beberapa konsep mengenai pemroraman berorientasi ada Objek, diantaranya
1. Enkapsulasi (
Pembungkusan )
2. Inheritance ( Pewarisan )
3. Polymorphism ( Perbedaan Bentuk )
INHERITANCE
A. PENGERTIAN PEWARISAN (INHERITANCE)
Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek dapat
mempunyai entitas/obyek turunan. Dengan konsep inheritance, sebuah class dapat
mempunyai class turunan.
Suatu class yang mempunyai class turunan dinamakan parent class atau base
class. Sedangkan class turunan itu sendiri seringkali disebut subclass atau
child class. Suatu subclass dapat mewarisi apa-apa yang dipunyai oleh parent
class.
Karena suatu subclass dapat mewarisi apa apa yang dipunyai oleh parent class-nya,
maka member dari suatu subclass adalah terdiri dari apa-apa yang ia punyai dan
juga apa-apa yang ia warisi dari class parent-nya.
Kesimpulannya, boleh dikatakan bahwa suatu subclass adalah tidak lain hanya
memperluas (extend) parent class-nya.
Dari hirarki diatas dapat dilihat bahwa, semakin kebawah, class akan semakin
bersifat spesifik. Class mamalia memiliki seluruh sifat yang dimiliki oleh
binatang, demikian halnya juga macan , kucing, Paus dan Monyet memiliki seluruh
sifat yang diturunkan dari class mamalia.
Dengan konsep ini, karakteristik yang dimiliki oleh class binatang cukup
didefinisikan didefinisikan dalam class binatang saja.
Class mamalia tidak perlu mendefinisikan ulang apa yang telah dimiliki oleh
class binatang, karena sebagai class turunannya, ia akan mendapatkan
karakteristik dari class binatang secara otomatis. Demikian juga dengan class
macan, kucing, Paus dan monyet, hanya perlu mendefinisikan karakteristik yang
spesifik dimiliki oleh class-nya masing-masing.
Dengan memanfaatkan konsep pewarisan ini dalam pemrograman, maka hanya perlu
mendefinisikan karakteristik yang lebih umum akan didapatkan dari class
darimana ia diturunkan.
DEKLARASI PEWARISAN (INHERITANCE)
Deklarasi yang digunakan adalah dengan menambahkan kata kunci extends setelah
deklarasi nama class, kemudian diikuti dengan nama parent class-nya. Kata kunci
extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan
class.
public class B extends A { ? }
Pada saat dikompilasi, Kompiler Java akan membacanya sebagai subclass dari
class Object.
public class A extends Object { ? }
KAPAN KITA MENERAPKAN INHERITANCE?
Kita baru perlu menerapkan inheritance pada saat kita jumpai ada suatu class
yang dapat diperluas dari class lain.
Misal terdapat class Pegawai public class Pegawai { public
String nama; public double gaji; } Misal terdapat class
Manager public class Manajer { public String nama; public
double gaji; public String departemen; }
Dari 2 buah class diatas, kita lihat class Manajer mempunyai data member yang
identik sama dengan class Pegawai, hanya saja ada tambahan data member
departemen.
Sebenarnya yang terjadi disana adalah class Manajer merupakan perluasan dari
class Pegawai dengan tambahan data member departemen.
Disini perlu memakai konsep inheritance, sehingga class Manajer dapat kita
tuliskan seperti berikut :
public class Manajer extends Pegawai { public String departemen; }
KEUNTUNGAN INHERITANCE
1. Subclass menyediakan state/behaviour yang spesifik yang membedakannya dengan
superclass, hal ini akan memungkinkan programmer Java untuk menggunakan ulang
source code dari superclass yang telah ada.
2. Programmer Java dapat mendefinisikan superclass khusus yang bersifat
generik, yang disebut abstract class, untuk mendefinisikan class dengan
behaviour dan state secara umum.
Enkapsulasi
Enkapsulasi adalah pembungkus, pembungkus disini dimaksudkan untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain. Konsep enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar dapat diakses sewaktu-waktu, sekaligus menjaga program tersebut.
Dalam kehidupan sehari hari enkapsulasi dapat dimisalkan sebagai arus listrik pada generator, dan sistem perputaran generator untuk menghasilkan arus listrik. Kerja arus listrik tidak mempengaruhi kerja dari sistem perputaran generator, begitu pula sebaliknya. Karena didalam arus listrik tersebut, kita tidak perlu mengetahui bagaimana kinerja sistem perputaran generator, apakah generator berputar kebelakang atau ke depan atau bahkan serong. Begitu pula dalam sistem perputaran generator, kita tidak perlu tahu bagaimana arus listrik, apakah menyala atau tidak.
Begitulah konsep kerja dari enkapsulasi, dia akan melindungi sebuah program dari akses ataupun intervensi dari program lain yang mempengaruhinya. Hal ini sangat menjaga keutuhan program yang telah dibuat dengan konsep dan rencana yang sudah ditentukan dari awal.
Begitulah konsep kerja dari enkapsulasi, dia akan melindungi sebuah program dari akses ataupun intervensi dari program lain yang mempengaruhinya. Hal ini sangat menjaga keutuhan program yang telah dibuat dengan konsep dan rencana yang sudah ditentukan dari awal.
Contoh dalam program
Belajar.Java
class belajar{
public String x =?Pintar?;
private String y = ?Java?;
}
Pintar.Java
public class Pintar{
public static void main(String[]args){
Coba panggil = new Belajar();
System.out.println(?Panggil X : ?+panggil.x);
System.out.println(?Panggil Y : ?+panggil.y);
}}
Tipe public dan private mempunyai fungsi yang berbeda. Fungsi public yang terdapat dalam class Coba pada variable x, memungkinkan nilai dari variable x dapat diakses oleh class Belajar. Sedangkan variable y yang menggunakan fungsi private tidak dapat dipanggil didalam class Belajar.
Polymorphisme
Polymorphism, suatu aksi yang memungkinkan pemrogram menyampaikan pesan tertentu keluar dari hirarki obyeknya, dimana obyek yang berbeda memberikan tanggapan/respon terhadap pesan yang sama sesuai dengan sifat masing-masing obyek.
Atau Polymorphic dapat berarti banyak bentuk, maksudnya yaitu kita dapat menimpa (override), suatu method, yang berasal dari parent class (super class) dimana object tersebut diturunkan, sehingga memiliki kelakuan yang berbeda.
Contoh program java nya :
Simpan dengan nama BeautyfullMahasiswa.java
public class BeautyfullMahasiswa extends Mahasiswa{
public void printNama(){
System.out.println(?Hallo, saya Mahasiswa yg cantik n baik?);
Super.printNama();
}
}
Simpan dengan nama Main.java
public class Main{
public static void main(String[] args]) {
BeautyfullMahasiswa mhs = new BeautyfullMahasiswa();
mhs.setNim(?09530524?);
mhs.setNama(?Afrida Asna?);
mhs.printNim();
mhs.printNama();
}
}
Kemudian compile dan run.
Kontruksi objek mahasiswa
Nim:09530524
Hallo, saya Mahasiswa yg cantik n baik
Nama: Afrida Asna
Terlihat bahwa disini kita mengoverride method printNama(), dengan menambahkan beberapa teks tambahan, sehingga method printNama(), pada class BeautyfullMahasiswa, memiliki perilaku yang berbeda dengan class Mahasiswa.