Sebelum melangkah
pada fitur-fitur menarik yang ada pada Java, alangkah baiknya kita mempelajari tentang
perbedaan konsep-konsep berorientasi object dalam Java.
Konsep Berorientasi object
- Desain Berorientasi object
Desain
berorientasi object adalah sebuah teknik yang memfokuskan desain pada object
dan class berdasarkan pada skenario dunia nyata. Hal ini menegaskan keadaan(state), behaviour dan interaksi dari
object. Selain itu juga menyediakan manfaat akan kebebasan pengembangan, meningkatkan
kualitas, mempermudah pemeliharaan, mempertinggi kemampuan dalam modifikasi dan
meningkatkan penggunaan kembali software.
- Class
Class
mengizinkan Anda dalam mendeklarasikan tipe data baru. Ia dijalankan sebagai blueprint, dimana model dari
object yang Anda buat berdasarkan pada tipe data baru ini.
- Object
Sebuah
object adalah sebuah entiti yang memiliki keadaan, behaviour
dan identitas yang yang tugasnya dirumuskan dalam
suatu lingkup masalah dengan baik. Inilah instance sebenarnya dari sebuah
class. Ini juga dikenal sebagai instance. Instance dibuat
sewaktu Anda meng-instantiate class menggunakan kata kunci new. Dalam sistem registrasi siswa, contoh dari sebuah object yaitu
entiti Student.
- Atribut
Atribut
menunjuk pada elemen data dari sebuah object. Atribut menyimpan informasi
tentang object. Dikenal juga sebagai member data, variabel instance, properti
atau sebuah field data. Kembali lagi ke contoh sistem registrasi siswa, atribut
dari sebuah siswa adalah nomor siswa.
- Method
Sebuah
method menjelaskan behaviour dari sebuah object. Method juga dikenal sebagai
fungsi atau prosedur. Sebagai contoh, method yang mungkin tersedia untuk entiti
siswa adalah method register.
- Konstruktor
Konstruktor
adalah sebuah tipe khusus dari method yang digunakan untuk membuat dan menginisialisasi
sebuah object baru. Ingat bahwa konstruktor bukan member(yaitu atribut, method
atau inner class dari sebuah object).
- Package
Package menunjuk pada pengelompokkan class dan / atau subpackages.
Strukturnya dapat disamakan dengan direktorinya.
- Enkapsulasi
Enkapsulasi
menunjuk pada prinsip dari menyembunyikan desain atau mengimplementasikan informasi
yang tidak sesuai pada object yang ada.
- Abstraksi
Sementara
enkapsulasi menyembunyikan detail, abstraksi mengabaikan aspek dari subyek yang
tidak sesuai dengan tujuan yang ada supaya lebih banyak mengkonsentrasikan yang
ada.
- Pewarisan
Pewarisan
adalah hubungan antara class dimana dalam satu class ada superclass atau class
induk dari class yang lain. Pewarisan menunjuk pada properti dan behaviour yang
diterima dari nenek moyang dari class. Ini dikenal juga sebagai hubungan
“is-a”. Perhatikan pada
hirarki berikut.
SuperHero
FlyngSuperHero UnderwaterSuperHero
Gambar 1.1: Contoh Pewarisan
SuperHero
adalah superclass dari class FlyingSuperHero dan UnderwaterSuperHero.
Catatan bahwa FlyingSuperHero “is-a” SuperHero. Sebagaimana juga UnderwaterSuperHero
“is-a” SuperHero.
- Polimorfisme
Polimorfisme
adalah kemampuan dari sebuah object untuk membolehkan mengambil beberapa bentuk
yang berbeda. Secara harfiah, “poli” berarti banyak sementara “morph” berarti
bentuk. Menunjuk pada contoh sebelumnya pada pewarisan, kita lihat bahwa object
SuperHero dapat
juga menjadi object FlyingSuperHero
atau object UnderwaterSuperHero.
- Interface
Sebuah
interface adalah sebuah contract dalam bentuk kumpulan method dan deklarasi konstanta. Ketika sebuah
class implements sebuah
interface, ini mengimplementasikan semua method yang dideklarasikan dalam
interface.
Struktur
program Java :
v
Mendeklarasikan
class Java
<classDeclaration> ::=
<modifier>
class <name> {
<attributeDeclaration>*
<constructorDeclaration>*
<methodDeclaration>*
}
dimana
<modifier> adalah sebuah access
modifier, yang mana boleh dikombinasikan dengan tipe yang
laen dari modifier.
Petunjuk
Penulisan Program:
*
= berarti bahwa boleh ada 0 atau lebih
kejadian dari deret tersebut yang menggunakannya
juga.
<description>
= menunjukkan bahwa Anda harus mengganti nilai sebenarnya untuk bagian ini
daripada
menguranginya penulisannya.
Ingat
bahwa untuk class teratas, acces modifier yang valid hanyalah public dan
package(yakni
jika
tidak ada acces modifier mengawali kata kunci class).
Contoh
berikut ini mendeklarasikan blueprint SuperHero.
Class SuperHero {
String superPowers[];
void setSuperPowers(String
superPowers[]) {
this.superPowers =
superPowers;
}
void printSuperPowers()
{
for (int i = 0; i <
superPowers.length; i++) {
System.out.println(superPowers[i]);
}
}
}
v
Mendeklarasikan
Atribut
<attributeDeclaration>
::=
<modifier> <type> <name>
[= <default_value>];
<type>
::=
byte | short | int | long | char | float |
double | boolean
| <class>
Petunjuk Penulisan Program:
[ ] = Menunjukkan bahwa bagian ini hanya pilihan.
Inilah contohnya.
public class AttributeDemo {
private String studNum;
public boolean graduating =
false;
protected float unitsTaken =
0.0f;
String college;
}
v
Mendeklarasikan
Method
<methodDeclaration>
::=
<modifier> <returnType>
<name>(<parameter>*) {
<statement>*
}
<parameter>
::=
<parameter_type>
<parameter_name>[,]
Sebagai
contoh :
class
MethodDemo {
int data;
int getData() {
return data;
}
void setData(int data) {
this.data = data;
}
void setMaxData(int
data1, int data2) {
data =
(data1>data2)? data1 : data2;
}
}
v Mendeklarasikan sebuah Konstruktor
<constructorDeclaration>
::=
<modifier>
<className> (<parameter>*) {
<statement>*
}
Jika
tidak ada konstruktor yang disediakan secara jelas, konstruktor default secara
otomatis membuatkannya untuk Anda. Konstruktor default tidak membawa argumen
dan tidak berisi pernyataan pada tubuh class.
Petunjuk Penulisan Program:
Nama
konstruktor harus sama dengan nama class.
<modifier>
yang valid untuk konstruktor adalah public, protected, dan private.
Konstruktor
tidak memiliki nilai return.
Perhatikan contoh berikut.
class
ConstructorDemo {
private int data;
public ConstructorDemo() {
data = 100;
}
ConstructorDemo(int data) {
this.data = data;
}
}
v Meng-instansiasi sebuah class
Untuk
meng-instantiate sebuah
class, dengan sederhana kita gunakan kata kunci new
diikuti dengan pemanggilan sebuah konstruktor.
Mari lihat langsung ke contohnya.
class
ConstructObj {
int data;
ConstructObj() {
/* menginisialisasi data */
}
public static void main(String args[]) {
ConstructObj obj = new
ConstructObj(); //di-instantiate
}
}
v
Mendeklarasikan
sebuah Konstruktor
<constructorDeclaration>
::=
<modifier> <className>
(<parameter>*) {
<statement>*
}
Jika
tidak ada konstruktor yang disediakan secara jelas, konstruktor default secara
otomatis membuatkannya untuk Anda. Konstruktor default tidak membawa argumen
dan tidak berisi pernyataan pada tubuh class.
Petunjuk
Penulisan Program:
Nama
konstruktor harus sama dengan nama class.
<modifier>
yang valid untuk konstruktor adalah public, protected, dan private.
Konstruktor
tidak memiliki nilai return.
Perhatikan
contoh berikut.
class
ConstructorDemo {
private int data;
public
ConstructorDemo() {
data = 100;
}
ConstructorDemo(int
data) {
this.data =
data;
}
}
Sumber dari : JENI-Intro2-Bab01-Review-Konsep-Dasar.pdf
Tidak ada komentar:
Posting Komentar