SPERS MABES TNI DAN UNKRISNA ADALAH PERGURUAN TINGGI YANG BEKERJASAMA DENGAN MABES TNI

SPER MABES TNI DAN UNKRISNA ADALAH PERGURUAN TINGGI YANG BEKERJA SAMA DENGAN MABES TNI

Senin, 29 November 2010

OOP Pada PHP Part II : Membuat Dan Menggunakan Object

Ini adalah sambungan dari artikel berseri tentang OOP pada PHP. Bagi yang belum membaca dasar dari OOP pada PHP, bisa membaca disini. Setelah mengerti apa itu class, object dan method, langkah selanjutnya adalah dengan membuat modul class. Modul ini merupakan cikal bakal dari object yang akan kita buat. Object yang akan kita buat adalah object buku. Ini sebagai perumpamaan saja, agar lebih mudah mempelajari OOP pada PHP. Object buku memiliki method hal() dan nama_pengarang() (anda bisa menambahkan methodnya sesuai dengan keinginan anda, yang penting tahu bagaimana membuat method). Berikut ini contoh pembuatan object buku dan cara penggunaanya, bisa dibilang artikel ini adalah penjelasan+praktik OOP pada PHP yang paling sederhana. Singkatnya konsep

Pertama-tama membuat modul class buku. Ingat class belum menjadi object. Berikut kodenya (simpan dengan nama classbuku.php)
hal;
}
/*
Dibawah ini adalah method untuk mencetak properti author
*/
public function author(){
echo $this->author;
}
/*
Dibawah ini adalah method untuk mencetak judul
*/
public function Printjudul(){
echo $this->judul;
}
/*
Dibawah ini adalah method menjumlahkan 2 variable
*/
public function hitung($a,$b){
echo $a+$b;
}
}
?>
File diatas adalah modul class, sedang dibawah ini adalah file PHP yang membuat dan memanfaatkan object dari class diatas. Simpan dengan nama buatclass.php
hal();
echo " Halaman";
echo "";
$ObjBuku->author();
echo "";

/*
Sedang dibawah ini adalah cara mudah untuk mengeset properti yang telah kita
tentukan tadi. Mudah kan ? semula properti judul bernilai Gosip-gosip dengan PHP
sekarang sudah diganti dengan Pemrograman PGP, eh salah PHP
*/
$ObjBuku->judul="Pemrograman PGP, eh salah PHP";
$ObjBuku->PrintJudul();
/*
Sedang dibawah ini adalah fungsi sederhana yang memerlukan parameter,
fungsi dibawah ini akan menjumlahkan 2 nilai.
*/
echo "";
$ObjBuku->hitung(10,99);
?>
Semua file tersebut harus anda jadikan satu folder atau direktori jika tidak ingin mendapatkan kesulitan dalam menentukan path. Sebenarnya ada aturan khusus penggunaan awalan public pada setiap function. Pilihannya ada 3 public, private dan protected. Tentang aturan ini akan dibahas pada artikel mendatang. Pada artikel ini saya menggunakan awalan yang paling sering digunakan. Anda bisa mendownload file tersebut melalui link dibawah ini.
Selengkapnya...

MENGAPA HARUS BELAJAR OOP?

Setiap manusia pasti menginginkan segala hal menjadi lebih mudah, baik dalam pemahaman maupun tindakan.
Begitu juga bagi para programmer, dalam hal mempelajari bahasa pemrograman sangat diharapkan dalam hal kemudahan memahami dan kemudahan dalam pembuatan program.
Salah satu bahasa pemrograman yang akhir-akhir ini sering digunakan oleh para programmer adalah OOP.

Apa itu OOP?

OOP itu kepanjangan dari Object Oriented Programming, merupakan terobosan baru dalam pemrograman setelah pemrograman prosedural, pemrograman modular dan pemrograman abstraksi data.

Kenapa harus OOP?

Keuntungan dari OOP, antara lain :
- Reusable, kode yang diimplementasikan didalam class dapat digunakan kembali di aplikasi atau program lainnya.
- Extensible, kode yang sudah dibuat dapat kita rubah lagi implementasi fungsi-fungsinya sesuai dengan yang kita inginkan.
- Manageable, kode yang sudah dibuat lebih mudah untuk di maintain/manage. Misalnya kalau ada perubahan-perubahan business process maka yang perlu kita lakukan hanyalah merubah kode yang terdapat didalam class tersebut saja, tanpa harus membongkar semua kode aplikasi yang sudah dibuat dibuat.

Ada tiga konsep utama yang ada di OOP, yaitu: Encapsulation, Inheritance dan Polymorphism.

Encapsulation

Encapsulation merupakan penyembunyian informasi melalui private dan protected. Pada dasarnya adalah kita tidak perlu mengetahui apa yang ada dalam objek itu (class), yang kita butuhkan adalah apa kegunaan, bagaimana cara memakainya dan apa yang akan terjadi, antara lain :
- Digunakan untuk membatasi akses terhadap instance variable dan method yang ada pada sebuah class dan atau class – class turunannya.
- Digunakan untuk menyembunyikan data – data yang sifatnya tidak boleh diketahui oleh user pada sebuah object.
- Semua interaksi harus dilakukan melalui method yang sudah disediakan.
Encapsulasi akan menghasilkan suatu class. class = kontainer statis untuk menciptakan suatu objek. Didalam class sendiri terdapat atribut(data) dan method(kalo prosedural fungsi/prosedur). Dalam encapsulasi hal yang cukup penting adalah information hidding. Biasa menggunakan kata kunci private. Hal ini yang sering dilanggar oleh programmer OOP. Atribute yang ada di class seharusnya berupa private (hanya dapat diakses pada kelas tersebut).

Inheritance

Inheritance merupakan suatu kelas yang berasal dari turunan pertama atau lebih kelas lainnya. Intinya adalah mengembangkan class yang sudah ada. Jadi kita tidak perlu membentuk class dari awal, class yang sudah ada bisa dimodifikasi dan/atau ditambah fungsinya sesuai dengan kebutuhan.

Polymorphism

Polymorphism adalah kemampuan objek berubah menjadi objek yang lain, beberapa objek bertipe sama bereaksi secara berbeda terhadap “pesan” yang sama.



Kesimpulan


Istilah enkapsulasi sebenarnya adalah kombinasi data dan fungsionalitas dalam sebuah unit tunggal sebagai bentuk untuk menyembunyikan detail informasi. Proses enkapsulasi memudahkan kita untuk menggunakan sebuah objek dari suatu kelas karena kita tidak perlu mengetahui segala hal secara rinci. Enkapsulasi menekankan pada antarmuka suatu kelas, atau dengan kata lain bagaimana menggunakan objek kelas tertentu.
Kita dapat mendefinisikan suatu kelas baru dengan mewarisi sifat dari kelas lain yang sudah ada. Penurunan sifat ini bisa dilakukan secara bertingkattingkat, sehingga semakin ke bawah kelas tersebut menjadi semakin spesifik. Sub kelas memungkinkan kita untuk melakukan spesifikasi detail dan perilaku khusus dari kelas supernya. Dengan konsep pewarisan, seorang programmer dapat menggunakan kode yang telah ditulisnya pada kelas super berulang kali pada kelas-kelas turunannya tanpa harus menulis ulang semua kode-kode itu.
Polimorfisme merupakan kemampuan objek-objek yang berbeda kelas namun terkait dalam pewarisan untuk merespon secara berbeda terhadap suatu pesan yang sama. Polimorfisme juga dapat dikatakan kemampuan sebuah objek untuk memutuskan method mana yang akan diterapkan padanya, tergantung letak objek tersebut pada jenjang pewarisan. Method overriding. Method name overloading.

OLEH :HENDRA SOEWARNO
Selengkapnya...

Pengenalan OOP

Pengenalan OOP

OOP, Object Oriented Programming

Suatu bentuk pemrograman yang mendukung Encapsulation, Inheritance, dan Polymorphyms.

Suatu kelas bahasa pemrograman dan teknik yang didasarkan pada suatu objek, dimana struktur data terenkapsulasi dengan rutin yang mengoperasikan data tersebut.

Dasar OOP

Objek, merupakan suatu software objek yang memiliki State dan Behaviour yang digunakan untuk memodelkan objek pada dunia nyata (didalam proses pemodelan tersebut dilakukan abstraksi terhadap objek nyata kedalam bentuk yang lebih sederhana).


Gambar 1.1. Mana yang lebih jelas antara peta jalan atau peta satelit.


Gambar 1.2. Proses dari abtraksi.
Class, merupakan blue print atau prototype dari objek-objek


Gambar 1.3. Suatu class merupakan blueprint dari objek-objek.

Inheritance, menyediakan suatu mekanisme alamiah untuk mengorganisasikan software anda. Class dapat mewarisi state dan behaviour dari superclass-nya.

Contoh :

class Segitiga {
protected int alas;
protected int tinggi;

void setAlas(int newValue) {
alas = newValue;
}

void setTinggi(int newValue) {
tinggi = newValue;
}

double getLuas() {
return 0.5*alas*tinggi;
}
}
Simpanlah program diatas ke file Segitiga.java

Definisikan mana yang merupakan State, dan mana yang merupakan Behaviour dari class Segitiga diatas !


class hitungSegitiga {

public static void main(String[] args) {
Segitiga s = new Segitiga();
s.setAlas(5);
s.setTinggi(5);
System.out.println("Luas adalah :"+s.getLuas());
}

}

Setiap aplikasi Java harus memiliki suatu metoda main yang merupakan titik awal eksekusi dengan signature sebagai berikut :
public static void main(String[] args)

Simpanlah program diatas ke file hitungSegitiga.java

Proses Kompilasi :

Javac hitungSegitiga.java

Proses Run :

Java hitungSegitiga

Pembacaan input dari console :

1. Tambahkan

import java.io.*;

pada awal program

2. Deklarasi variable

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int temp;
System.out.print(“Panjang alas :”);
try {
temp = Integer.parseInt(br.readLine());
s.setAlas(temp);
} catch (IOException e) {}


Contoh :

import java.io.*;

class hitungSegitiga {

public static void main(String[] args) {
Segitiga s = new Segitiga();

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

int temp;

System.out.print("Panjang alas :");
try {
temp = Integer.parseInt(br.readLine());
s.setAlas(temp);
} catch (IOException e) {}

System.out.print("Tinggi :");
try {
temp = Integer.parseInt(br.readLine());
s.setTinggi(temp);
} catch (IOException e) {}

System.out.println("Luas adalah :"+s.getLuas());
}

}

Pemberian komentar





Tugas :
1. Buatlah sebuah folder dengan nama anda !
2. Buatlah sebuah batch file dengan nama c.bat yang berisi script sebagai berikut :

set path=c:\j2sdk1.4.2_03\bin
set classpath=c:\j2sdk1.4.2_03\bin;.
javac %1.java
java %1

3. Buatlah program java anda yang pertama dengan menampilkan pesan Hello World ke layar !
4. Ketiklah class Segitiga dan hitungSegitiga
5. Lakukan proses kompilasi terhadap file hitungSegitiga
6. Periksa file-file apa saja yang terbentuk
7. Lakukan run terhadap bytecode hitungSegitiga
8. Kembangkan program hitungSegitiga dengan kemampuan pembacaan data dari console.
9. Kembangkan class Persegi (tentukan state dan behaviour hitungLuas, hitungKeliling)
10. Kembangkan class yang memanfaatkan class Persegi.


What is Java?
First, though, you need to understand exactly what Java is. When people say "Java," there are actually several things they might be talking about:
1. Java is an object oriented programming language. In this respect, it is a peer of C++ or Smalltalk. Learning the Java language is kind of like learning the rules of grammar for a spoken language.
2. A Java Virtual Machine (JVM) is used to run Java programs. The JVM can be made to run on different platforms, like Linux and Windows, so the same Java programs can run on computers with different operating systems. This is the cornerstone of one of Sun's slogans for Java: Write Once, Run Anywhere. The JVM is infrastructure, kind of like vocal cords for spoken languages.
3. The Java Application Programming Interfaces (APIs, or class libraries) are a set of prebuilt classes that you can use in your own programs. Essentially, this is stuff for free, like classes that deal with disk files, network sockets, or graphic interfaces. If the Java language is like a set of grammar rules in a spoken language, then the APIs are dictionaries full of words that can be used to build sentences and paragraphs and stories.
OLEH HENRA SOEWARNO
Selengkapnya...

Istilah dalam Bahasa Indonesia

Istilah dalam Bahasa Indonesia
HOMONIM
adalah kata yang tulisan dan cara pelafalannya sama tetapi memiliki makna yang berbeda.

Contoh :
genting = keadaan genting = gawat
genting = genting rumah = atap
jarak = pohon jarak = tanaman
jarak = jarak jauh = ukuran
bisa = bisa berjalan = dapat
bisa = bisa ular = racun

HOMOFON
adalah kata cara pelafalannya sama tetapi penulisan dan maknanya berbeda.

Contoh :
kol = sayur kol = tanaman
kol = naik colt = kendaraan
bang = Bang Ali = kakak
bang = Bank Mandiri = lembaga penyimpanan uang

HOMOGRAF
adalah kata yang tulisannya sama tetapi pelafalan dan maknanya berbeda.

Contoh :
seri = berseri-seri = gembira
seri = bermain seri = seimbang
teras = pejabat teras = inti
teras = teras rumah = bagian depan rumah
apel = makan apel = buah
apel = apel bendera = upacara
apel = kencan

SINONIM
adalah persamaan makna antara dua kata atau lebih.

Contoh
agar = supaya
ahli = pakar
badai = topan
bagan = skema
benar = betul
agung = besar

Selengkapnya silakan download disini:
http://www.ziddu.com/download/4142230/Istilah.doc.html
Selengkapnya...

Sabtu, 27 November 2010

Mengenal Pemrograman Berbasis Obyek (OOP) pada C++

Mengenal Pemrograman Berbasis Obyek (OOP) pada C++
Posted by: iruLL on: September 4, 2009
In: C++ Comment!
Sebelum mengenal OOP kita perlu membahas fungsi secara sekilas.
Dalam C++, program merupakan kumpulan dari fungsi -fungsi, baik yang didefinisikan langsung dalam program maupun yang disimpan dalam suatu header. C/C++ sendiri mempunyai fungsi utama yang disebut fungsi main.
PENGENALAN OOP

Salah satu alasan Bjarne Stroustrup menciptakan bahasa C++ adalah untuk menambahkan kemampuan OOP (Object Oriented Programming) di dalam bahasa C, sehingga mula -mula dia menyebutkannya sebagai bahasa ”C dengan kelas”.
OOP bukan merupakan bahasa pemrograman melainkan sebuah cara untuk menjadikan program yang akan kita buat menjadi lebih modular karena suatu permasalahan akan dikumpulkan dalam satu objek yang selanjutnya akan disebut class.
Pemrograman prosedural dan OOP
OOP merupakan penyederhanaan dari bahasa prosedural, sehingga program akan lebih mudah dikembangkan. Dalam bahasa prosedural, untuk menyelesaikan salah satu masalah kita harus membuat banyak fungsi.

Dalam OOP ada beberapa istilah penting, seperti Object, Class, Method.
Object merupakan sesuatu yang memiliki identitas (nama), pada umumnya juga memiliki data tentang dirinya maupun object lain dan mempunyai kemampuan untuk melakukan sesuatu dan bisa bekerja sama dengan objek lainnya. Pada dasarnya semua benda yang ada di dunia dapat dianggap sebagai sebuah object. Rumah, mobil, sepeda motor, meja, dan komputer merupakan contoh-contoh object yang ada di dunia nyata. Setiap object memiliki dua karakteristik yang utama yaitu, atribut dan behavior. Atribut merupakan status object dan behavior merupakan tingkah laku dari object tersebut.
Contoh sederhana adalah sepeda. Object sepeda memiliki atribut : pedal, roda, dan gigi, kecepatan serta memiliki tingkah laku seperti pacu dan rem. Sama seperti penggambaran di dunia nyata, pengembangan program dengan konsep OOP juga menggunakan model object yang akan menyimpan atributnya dalam variabel dan tingkah lakunya dalam method atau fungsi-fungsi/prosedur.
Class.
Class berbeda dengan object. Class merupakan prototipe yang mendefinisikan variabel dan method secara umum. Tetapi, object adalah hasil instansiasi dari suatu class. Object-object yang memiliki kondisi yang berbeda seperti sepeda A pada gigi posisi 4 dan sepeda B pada gigi posisi 6 dapat disatukan dalam satu “class sepeda” berdasarkan kondisi umum sepeda yang dapat mengubah posisi giginya. Untuk dapat memahami Konsep OOP dengan baik seorang pemrogram harus dapat membedakan antara object dengan class.
Method adalah fungsi dan prosedur atau behavior dari sebuah object. Contohnya pada sepeda motor ada behavior seperti pacu, rem, nyalakan lampu depan dan lain-lain.
Ciri -ciri dasar OOP
Semua bahasa pemrograman yang mendukung C++ haruslah mempunyai kemampuan untuk dilakukan abstraksi, pembungkusan, pewarisan sifat dan polimorfisme .
Abstraksi
Abstraksi adalah proses pengabstrakan atau penyembunyian program yang sangat rumit, sehingga kita tidak mempermasalahkan pembuatannya. Kita hanya memerlukan objek tersebut dapat digunakan sebagaimana mestinya.
Contoh :
Mobil. Pembuat mobil hanya memperhatikan bahwa mobil dapat berfungsi dengan semestinya, kita tidak bagaimana cara pembuatan mobil.
Pembungkusan (Encapsulation)
Pembungkusan (Encapsulation) adalah proses penggabungan data -data dan fungsi -fungsi yang berkaitan dalam suatu objek.

Pewarisan sifat (Inheritance)
Dalam OOP, kita dapat menciptakan objek baru (objek turunan/derived class) yang dalam objek baru tersebut terdapat sifat objek induknya ( objek induknya (ancestor / base class ).
Hal ini dikenal dengan pewarisan sifat. Dengan fitur tersebut kita dapat membuat objek baru yang memiliki kemampuan lebih dibanding induknya.
Polimorfisme
Polimorfisme adalah proses kebanyakrupaan. Misalnya kita mempunyai 5 buah mobil (dalam program dianggap sebagai 5 objek).
– Kita memerintakan untuk bergerak dengan kecepatan maksimal, maka tiap mobil akan berjalan dengan kecepatan yang mungkin berbeda sesuai dengan karakteristiknya.
Daftar Pustaka :
http://www.geocities.com/bank_data_2008/materi/bc/c5.pdf
http://blog.scratchz.net/2008/01/27/belajar-object-oriented-programming-dengan-java/
Selengkapnya...

Rabu, 24 November 2010

Mengenal Pemrograman Berbasis Obyek (OOP) pada C++

Mengenal Pemrograman Berbasis Obyek (OOP) pada C++
Posted by: iruLL on: September 4, 2009
In: C++ Comment!
Sebelum mengenal OOP kita perlu membahas fungsi secara sekilas.
Dalam C++, program merupakan kumpulan dari fungsi -fungsi, baik yang didefinisikan langsung dalam program maupun yang disimpan dalam suatu header. C/C++ sendiri mempunyai fungsi utama yang disebut fungsi main.
PENGENALAN OOP

Salah satu alasan Bjarne Stroustrup menciptakan bahasa C++ adalah untuk menambahkan kemampuan OOP (Object Oriented Programming) di dalam bahasa C, sehingga mula -mula dia menyebutkannya sebagai bahasa ”C dengan kelas”.
OOP bukan merupakan bahasa pemrograman melainkan sebuah cara untuk menjadikan program yang akan kita buat menjadi lebih modular karena suatu permasalahan akan dikumpulkan dalam satu objek yang selanjutnya akan disebut class.
Pemrograman prosedural dan OOP
OOP merupakan penyederhanaan dari bahasa prosedural, sehingga program akan lebih mudah dikembangkan. Dalam bahasa prosedural, untuk menyelesaikan salah satu masalah kita harus membuat banyak fungsi.

Dalam OOP ada beberapa istilah penting, seperti Object, Class, Method.
Object merupakan sesuatu yang memiliki identitas (nama), pada umumnya juga memiliki data tentang dirinya maupun object lain dan mempunyai kemampuan untuk melakukan sesuatu dan bisa bekerja sama dengan objek lainnya. Pada dasarnya semua benda yang ada di dunia dapat dianggap sebagai sebuah object. Rumah, mobil, sepeda motor, meja, dan komputer merupakan contoh-contoh object yang ada di dunia nyata. Setiap object memiliki dua karakteristik yang utama yaitu, atribut dan behavior. Atribut merupakan status object dan behavior merupakan tingkah laku dari object tersebut.
Contoh sederhana adalah sepeda. Object sepeda memiliki atribut : pedal, roda, dan gigi, kecepatan serta memiliki tingkah laku seperti pacu dan rem. Sama seperti penggambaran di dunia nyata, pengembangan program dengan konsep OOP juga menggunakan model object yang akan menyimpan atributnya dalam variabel dan tingkah lakunya dalam method atau fungsi-fungsi/prosedur.
Class.
Class berbeda dengan object. Class merupakan prototipe yang mendefinisikan variabel dan method secara umum. Tetapi, object adalah hasil instansiasi dari suatu class. Object-object yang memiliki kondisi yang berbeda seperti sepeda A pada gigi posisi 4 dan sepeda B pada gigi posisi 6 dapat disatukan dalam satu “class sepeda” berdasarkan kondisi umum sepeda yang dapat mengubah posisi giginya. Untuk dapat memahami Konsep OOP dengan baik seorang pemrogram harus dapat membedakan antara object dengan class.
Method adalah fungsi dan prosedur atau behavior dari sebuah object. Contohnya pada sepeda motor ada behavior seperti pacu, rem, nyalakan lampu depan dan lain-lain.
Ciri -ciri dasar OOP
Semua bahasa pemrograman yang mendukung C++ haruslah mempunyai kemampuan untuk dilakukan abstraksi, pembungkusan, pewarisan sifat dan polimorfisme .
Abstraksi
Abstraksi adalah proses pengabstrakan atau penyembunyian program yang sangat rumit, sehingga kita tidak mempermasalahkan pembuatannya. Kita hanya memerlukan objek tersebut dapat digunakan sebagaimana mestinya.
Contoh :
Mobil. Pembuat mobil hanya memperhatikan bahwa mobil dapat berfungsi dengan semestinya, kita tidak bagaimana cara pembuatan mobil.
Pembungkusan (Encapsulation)
Pembungkusan (Encapsulation) adalah proses penggabungan data -data dan fungsi -fungsi yang berkaitan dalam suatu objek.

Pewarisan sifat (Inheritance)
Dalam OOP, kita dapat menciptakan objek baru (objek turunan/derived class) yang dalam objek baru tersebut terdapat sifat objek induknya ( objek induknya (ancestor / base class ).
Hal ini dikenal dengan pewarisan sifat. Dengan fitur tersebut kita dapat membuat objek baru yang memiliki kemampuan lebih dibanding induknya.
Polimorfisme
Polimorfisme adalah proses kebanyakrupaan. Misalnya kita mempunyai 5 buah mobil (dalam program dianggap sebagai 5 objek).
– Kita memerintakan untuk bergerak dengan kecepatan maksimal, maka tiap mobil akan berjalan dengan kecepatan yang mungkin berbeda sesuai dengan karakteristiknya.
Daftar Pustaka :
http://www.geocities.com/bank_data_2008/materi/bc/c5.pdf
http://blog.scratchz.net/2008/01/27/belajar-object-oriented-programming-dengan-java/
Selengkapnya...

Konsep OOP di Java

Tutorial Java Bagian 3:
Konsep OOP di Java
Pemrograman berorientasi objek diciptakan untuk mempermudah pengembangan program dengan cara mengikuti model yang telah ada dalam kehidupan nyata. Dalam paradigma ini, sesuai dengan model kehidupan nyata, segala bagian (entiti) dari suatu permasalahan adalah objek. Objek-objek ini kemudian juga dapat berupa gabungan dari beberapa objek yang lebih kecil. 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.
Objek
Dalam penjelasan mengenai analogi, kita sudah menyinggung mengenai objek. Sekarang kita akan mengupas lebih dalam tentang objek sebagai konsep kunci dari pemrograman berorientasi objek.
Baik dalam dunia nyata atau dalam sebuah program, sebuah objek memiliki dua karakteristik, yaitu state dan behaviour. State adalah keadaan dari sebuah objek, seperti mobil memiliki state warna, model, tahun pembuatan, kondisi, dll. Sedang behaviour adalah kelakuan dari objek tersebut, seperti mobil dapat melaju, membelok, membunyikan klakson, dll. Objek menyimpan statenya dalam satu atau lebih variabel, dan mengimplementasikan behaviournya dengan metode. Dengan penjelasan di atas, dapat disimpulkan bahwa objek adalah bagian software yang dibentuk dengan variabel-variabel dan metode-metode yang berhubungan dengan variabel tersebut.
Dengan karakteristik tersebut, kita dapat memodelkan berbagai objek dalam kehidupan nyata ke dalam objek-objek dalam sebuah program. Lebih lanjut kita dapat memodelkan objek-objek abstrak ke dalam sebuah program. Contoh umum untuk konsep abstrak seperti ini adalah objek Event, yaitu objek untuk mewakili peristiwa klik atau tombol ditekan.
Sebuah objek yang dibentuk dari sebuah kelas biasa disebut instans dalam terminologi OOP. Artinya objek tersebut adalah wujud nyata dari sebuah kelas. Variabel dan metode dari instans ini disebut variabel instans dan metode instans. Setiap instans menyimpan variabelnya sendiri-sendiri, jadi nilai variabel untuk tiap instans bisa berbeda.
Message (Pesan)
Objek-objek yang bekerja sama membentuk suatu sistem harus saling berkomunikasi untuk menjalankan sistem tersebut. Dalam sebuah program, objek-objek berkomunikasi satu sama lain dengan mengirimkan pesan. Sebagai contoh, jika sebuah objek ingin memanggil metode dari objek lain, maka objek ini akan mengirimkan sebuah pesan yang meminta objek tujuan untuk menjalankan metode yang dikehendaki. Pesan ini akan berisi informasi-informasi yang dibutuhkan objek tujuan untuk dapat menunaikan permintaan tadi.
Sebuah pesan dibentuk oleh informasi berikut ini: 1) objek yang dituju; 2) nama metode yang ingin dipanggil; 3) parameter yang dibutuhkan metode tersebut. Misalnya:
anotherObject.aMethod(parameter1);
Bila sebuah objek ingin memanggil metode miliknya sendiri, maka informasi pertama adalah dirinya sendiri. Untuk menunjuk diri sendiri dalam Java digunakan kata kunci this. Maka contoh sebelumnya akan menjadi:
this.aMethod(parameter1);
Atau kita dapat menghilangkan informasi pertama sehingga menjadi:
aMethod(parameter1);
karena bila informasi pertama tidak ada, kompiler akan secara otomatis menunjuk ke objek itu sendiri.
Ada dua keuntungan dalam penggunaan pesan, yaitu: 1) semua kebutuhan interaksi antarobjek dapat dilakukan; 2) objek-objek yang saling berinteraksi tidak harus berada dalam satu proses atau bahkan dalam satu komputer.
Kelas
Kelas adalah semacam cetakan, atau template, untuk membuat objek. Ibaratkan sebuah rancangan rumah yang digunakan untuk membangun ratusan rumah. Rumah yang dibangun tersebut adalah objek dari kelas rancangan rumah. Hal ini dapat dilakukan karena semua objek rumah yang dibangun memiliki karakteristik yang sama, sehingga dapat dibuatkan semacam blueprint nya. Tetapi objek-objek yang dibangun tetap akan memiliki bentuk fisik tertentu sendiri-sendiri, seperti variabel dalam sebuah program, atau pintu sebuah objek rumah. Dengan penjelasan ini, kelas dapat kita definisikan kembali menjadi sebuah blueprint, atau prototipe, yang mendefinisikan variabel dan metode yang sama untuk semua objek sejenis.
Sebagai contoh, misalkan kita ingin membuat kelas Rumah, maka kita harus membuat sebuah kelas yang mendefinisikan semua variabel yang dimiliki objek dari kelas tersebut. Selain itu, kelas tersebut juga harus mendeklarasikan metode-metode yang dimiliki objek dari kelas dan juga membuat implementasi dari metode tersebut. Dengan adanya kelas ini, kita dapat membuat sebanyak apapun objek-objek rumah yang sejenis, yaitu jenis yang didefinisikan oleh kelas Rumah. Setiap objek Rumah diciptakan, sistem akan mengalokasikan sejumlah memori untuk objek tersebut dan variabel-variabelnya. Dengan begitu setiap objek akan memiliki salinan masing-masing untuk setiap variabel instans.
Setelah mengenal konsep kelas, saatnya Anda dikenalkan dengan variabel kelas. Variabel kelas sebenarnya sama dengan variabel instans. Bedanya adalah, setiap objek berbagi satu dan hanya satu variabel kelas, tapi masing-masing memiliki salinan dari variabel instans. Misalkan kelas Rumah yang kita buat hanya akan mendukung 2 lantai, dan setiap objek Rumah terdiri atas 2 lantai. Maka informasi ini cukup disimpan satu kali, karena nilainya tidak berbeda untuk semua objek. Lebih jauh, bila ada satu objek yang mengubah nilai dari variabel kelas, maka semua objek sejenis lainnya akan mengikuti perubahan itu. Di samping variabel, terdapat juga metode kelas. Metode jenis ini dapat langsung dipanggil melalui kelas dan bukan dari instans kelas tersebut.
Pewarisan
Terminologi asing untuk pewarisan adalah inheritance. Mungkin dalam literatur lain Anda akan sering menjumpai istilah ini. Secara gamblang, pewarisan berarti sebuah kelas mewarisi state dan behaviour dari kelas lain. Sebagai contoh, sebuah kelas RumahMewah akan mewarisi state dan behaviour dari kelas Rumah. Begitu juga dengan kelas RumahSederhana. KelasRumahMewah dan RumahSederhana disebut subkelas, atau kelas anak, dari kelas Rumah, yang disebut superkelas, atau kelas induk.
Seluruh subkelas akan mewarisi (inherits) state dan behaviour dari superkelasnya. Dengan begitu, semua subkelas dari superkelas yang sama akan memiliki state dan behaviour yang sama. Namun, masing-masing subkelas bisa menambah sendiri state atau behaviournya. Misalkan, pada kelas Rumah tidak terdapat variable kolamRenang, namun subkelas RumahMewahmemiliki variabel tersebut. Contoh lain misalnya kelas Rumah tidak memiliki metode nyalakanAlarm, namun rumah mewah memiliki metode itu.
Dalam kasus tertentu subkelas mungkin memiliki implementasi behaviour yang berbeda dengan superkelasnya. Hal seperti ini disebut override. Contohnya subkelas SepedaBalap memiliki implementasi metode ubahGigi yang berbeda dengan implementasi metode tersebut pada superkelas Sepeda.
Tingkat pewarisan tidak hanya terbatas pada dua tingkatan. Dari contoh di atas, kita bisa saja membuat subkelas dari kelas SepedaBalap, dan seterusnya. Kita bisa terus memperpanjang tingkat pewarisan ini sepanjang yang kita butuhkan. Dengan begitu, subkelas-subkelas yang dibuat akan lebih khusus dan lebih terspesialisasi. Namun terdapat batasan pewarisan dalam Java yang disebut single inheritance. Artinya sebuah kelas hanya dapat mewarisi sifat dari satu dan hanya satu superkelas saja. Dalam beberapa bahasa pemrograman berorientasi objek lain, yang berlaku adalah multiple inheritance. Artinya sebuah kelas dapat mewarisi sifat dari beberapa superkelas sekaligus.
Dalam Java, terdapat kelas Object yang merupakan superkelas dari semua kelas dalam Java, baik yang builtin ataupun yang kita buat sendiri, lansung maupun tidak langsung. Karena itu sebuah variabel bertipe Object akan dapat menyimpan referensi ke objek apapun dalam bahasa Java. Kelas Object ini memiliki behaviour yang dibutuhkan semua objek untuk dapat dijalankan di Java Virtual Machine. Sebagai contoh, semua kelas mewarisi metode toString dari kelas Object, yang mengembalikan representasi String dari objek tersebut.
Manfaat penggunaan konsep pewarisan antara lain: pertama, kita dapat menggunakan kembali kelas-kelas yang kita buat (sebagai superkelas) dan membuat kelas-kelas baru berdasar superkelas tersebut dengan karakteristik yang lebih khusus dari behaviour umum yang dimiliki superkelas. Kedua, kita dapat membuat superkelas yang hanya mendefinisikan behaviour namun tidak memberi implementasi dari metode-metode yang ada. Hal ini berguna jika kita ingin membuat semacam template kelas. Kelas semacam ini disebut kelas abstrak, karena behaviournya masih abstrak dan belum diimplementasikan. Subkelas-subkelas dari kelas semacam ini, yang disebut kelas konkret, mengimplementasikan behaviour abstrak tersebut sesuai dengan kebutuhan masing-masing.
Sedikit penjelasan mengenai kelas abstrak, kelas ini bisa memiliki hanya satu atau lebih metode abstrak. Subkelas dari kelas ini bertanggung jawab untuk memberikan implementasi untuk metode-metode abstrak tersebut. Sebagai akibat dari keberadaan metode abstrak ini, kelas abstrak tidak dapat diinstanskan (dibuatkan instansnya) atau digunakan untuk menciptakan sebuah objek dari kelas tersebut.
Interface
Arti harfiah dari interface adalah antarmuka, yaitu suatu alat untuk digunakan benda-benda yang tidak terhubung secara langsung untuk berinteraksi. Dalam bahasa pemrograman, interface digunakan oleh berbagai objek yang tidak terhubung untuk saling berinteraksi. Jadi dalam bahasa pemrograman, interface dapat didefinisikan sebagai koleksi definisi metode-metode dan variabel-variabel konstan, namun tanpa implementasi. Implementasi akan dilakukan oleh kelas-kelas yang mengimplements interface ini. Tanpa implementasi di sini tidak seperti pada kelas abstrak yang merupakan metode-metode yang tidak melakukan apa-apa, melainkan hanya sekedar nama metode saja.
Sebelumnya telah dijelaskan bahwa sebuah kelas tidak dapat menjadi subkelas dari beberapa superkelas, melainkan hanya bisa menjadi subkelas dari satu superkelas saja. Hal ini membuat desain program lebih rapi dan teratur, sehingga dapat mengurangi kompleksitas program. Namun, terkadang hal ini dapat menjadi suatu halangan yang tidak menyenangkan, yaitu saat kita membutuhkan suatu kelas yang memiliki sifat-sifat dari dua atau lebih kelas lain. Pada masalah seperti ini, interface dapat memberikan alternatif jalan keluar.
Dengan adanya interface maka beberapa kelas akan dapat menangani interaksi yang sama namun dengan behaviour yang bisa berbeda. Misalnya beberapa kelas mengimplementasi sebuah interface yang sama, maka kelas-kelas tersebut dapat menangani interaksi sesuai interface tersebut, namun tiap kelas dapat memiliki implementasi yang berbeda-beda.
Begitu juga bila sebuah kelas mengimplementasi banyak interface, maka kelas tersebut akan dapat menangani interaksi-interaksi sesuai salah satu interface yang diimplement oleh kelas tersebut. Namun, kelas tersebut harus mengimplementasi sendiri behaviournya. Di sinilah letak perbedaan penggunaan interface dengan multiple inheritance. Dalam multiple inheritance, layaknya single inheritance, subkelas tidak harus mengimplementasikan sendiri behaviournya karena secara default kelas tersebut akan mengikuti behaviour superkelasnya.
Penutup
Tutorial kali ini memang hanya membahas konsep, jadi wajar bila anda merasa tutorial kali ini terlalu teoritis. Namun jangan kecewa dulu, karena di tutorial berikutnya kita akan membahas lebih jauh mengenai kelas dan objek, interface, pewarisan, dan metode dalam bahasa Java. Sambil menunggu anda punya banyak waktu untuk memahami konsep yang dibahas di atas.

Arsip mwmag [Up] www.master.web.id/mwmag
Selengkapnya...