PEMROGRAMAN
BERORIENTASI OBJEK
Pengertian
Berorientasi Objek berarti bahwa kita
mengorganisasi perangkat lunak sebagai kumpulan dari objek tertentu yang
memiliki struktur dan perilakunya.
Atribut
Atribut merupakan karakteristik yang dimiliki
oleh objek. Deklarasi atribut dibutuhkan kelas untuk membentuk objek dan
diletakkan didalam class body atau diluar method.
*Pendeklarasian
[modifier] tipedata nama_atribut;
Atau
[modifier] tipedata nama_atribut=nilai;
|
*Contoh
Private
String nama;
Atau
String
warna=”hijau”;
|
Objek
Data yang dapat diukur dan mempunyai nilai
tertentu yang membedakan entitas, yang merupakan representasi nyata dari sebuah
kelas dan mempunyai sifat yang sama seprti yang di definisikan dalam kelasnya.
*Karakteristik
ü Objek dapat
kongkrit, seperti halnya arsip dalam system, atau konseptual seperti kebijakan
penjadualan dalam multiprocessing pada system operasi
ü Setiap objek
mempunyai sifat yang melekat pada identitasnya
ü Dua objek
dapat berbeda walaupun bila semua nilai atributnya identic
ü Biasanya
diawali dengan huruf kecil
*Pendeklarasian
Nama_class
nama_objek=new nama_konstraktor();
Atau
Nama_class
nama_objek;
Nama_objek=new
nama_konstraktor();
|
*Contoh
Kotak
k=new Kotak();
Atau
Kotak k;
K=new
Kotak();
|
Kelas
*Kelas merupakan gambaran sekumpulan objek yang
terbagi dalam atribut, operasi, metode, hubungan, dan makna yang sama
*Suatu kegiatan mengumpulkan data ( atribut ) dan
perilaku (operasi ) yang mempunyai struktur *data sama ke dalam satu grup
Kelas objek merupakan wadah bagi objek. Dapat
digunakan untuk menciptakan objek
*Objek mewakili fakta dari sebuah kelas
*Biasanya diwalai dengan
huruf besar : class Mahasiswa
*Pendeklarasian
[modifier]
class nama_class {
[deklarasi_atribut]
[deklarasi_konstraktor]
[deklarasi_metode]
}
|
*Contoh
public class PersegiPanjang {
//area penulisan kode program
}
|
Modifier
Adalah sifat yang dimiliki oleh setiap
atribut, method maupun kelas dalam java. Modifier akses adalah modifier yang
selalu digunakan yang terdiri dari :
No
|
Access modifier
|
Pada class dan interface
|
Pada method dan variable
|
1
|
Default
|
Dapat di
akses di paket yang sama
|
Diwarisi
oleh subkelas dipaket yang sama, dapat diakses oleh method-method yang
sepaket
|
2
|
Public
|
Dapat di
akses dimanapun
|
Diwarisi
oleh subkelasnya, dapat diakses dimanapun
|
3
|
Protected
|
Tidak bisa
diterapkan
|
Diwarisi
oleh subkelasnya, dapat diakses oleh method-method yang sepaket
|
4
|
Private
|
Tidak bias
diterapkan
|
Tidak
dapat di akses dimanapun kecuali oleh metohod-method yang ada dalam kelas itu
sendiri
|
5
|
Static
|
Semua
objek yang dibuat dari class yang memiliki field static akan memiliki nilai
yang sama untuk field tersebut
|
Dapat
diakses tanpa harus menciptakan objeknya terlebih dahulu.
Tidak
dapat di override.
Diakses
melalui nama objeknya.
|
6
|
Final
|
Membentuk
sebuah atribut menjadi konstanta
|
Menyatakan
bahwa definisi dari method
tersebut tidak dapat berubah lagi.
Tidak
dapat di override oleh method lain.
|
7
|
Abstrak
|
####
|
|
8
|
native
|
|
method
yang native hanya berupa prototype, implementasi method ini berada di file
external (dalam folder yang sama)
|
9
|
Synchronized
|
|
khusus
modifier method.
eksekusi
dilakukan secara mutual exclusive
|
10
|
Transient
|
|
Khusus
modifier atribut.
Prinsip
ini digunakan dalam aplikasi client-server
|
11
|
Volatile
|
|
Khusus modifier
atribut.
|
12
|
implements
|
kelas
tersebut mengimplementasikan satu atau lebih interface
|
|
Abstract Class
Abstract Class merupakan Class yang khusus dibuat untuk
keperluan inheritance. Tujuan dari pembuatan abstract class ini ialah untuk membuat
definisi umum bagi class-class yang akan menjadi turunan darinya. Abstract class dalam java digunakan untuk mendeklarasikan karakteristik
umum dari subclass. Abstract class tidak bisa diinstansiasi sama halnya dengan
kelas interface. abstract class hanya bisa digunakan sebagai super class, tapi
juga bisa diturunkan dari class abstract lainnya,abstract public void cetak();
Beberapa hal yang perlu diperhatikan adalah sebagai berikut:
Class abstrak tidak dapat dibuatkan instan
atau objeknya menggunakan keyword new.
Sebuah class dapat dideklarasikan sebagai
class abstrak walaupun tidak memiliki method abstrak.
Variabel dengan tipe class abstrak tetap bisa
diciptakan, tetapi harus refer ke subclass dari class abtrak tersebut yang
tentunya tidak abstrak.
Objek class abtrak tidak dapat diciptakan menggunakan
keyword new secara langsung. Apabila kita terpaksa ingin menciptakan object
class abtrak tanpa membuat subclass kongkritnya, maka kita harus
mengimplementasikan method – method abstraknya secara langsung saat deklarasi.
Untuk mendeklarasikan sebuah abstract class digunakan keyword abstract,
[abstract] class [class_name] Sebuah abstract class pada dasarnya tidak jauh
beda dengan class lainnya, yakni juga berisi method yang menggambarkan
carakteristik dari kelas abstract tersebut, bedanya yakni sebuah abstract class
bisa berisi method tanpa diimplementasikan artinya sebuah method tanpa body,
method seperti ini disebut method abstract. untuk pendeklarasiannya digunakan
keyword abstract.
Untuk membuatnya kita cukup menambahkan keyword abstract
di depan class yang kita definisikan.
abstract class ClassBasis
{
}
|
Definisi umum ini bisa jadi sudah mempunyai method yang
dibuat khusus untuk diturunkan.
abstract class ClassBasis
{
public void method1(ref string s)
{
s = "this is a sample of method"; }
}
|
Abstract class bisa juga mempunyai sebuah abstract
method, yang baru dibuatkan method implementasinya di class turunan.
abstract class ClassBasis
{ public abstract void method2(ref string s); } |
Abstract Class tidak bisa diinstansiasi. Abstract method
tidak mempunyai implementasi, sehingga penulisannya dilakukan hanya dengan
mengikutkan semikolon, bukan blok method {} seperti biasanya. Abstract method
ini bisa digunakan oleh Class turunannya dengan melakukan override.
Method
Merupakan tingkah laku yang dimiliki oleh
objek. Method digunakan untuk memodularisasi program pemisah satu tugas menjadi
satu unit tersendiri. Didalam java terdapat 2 method, yaitu :
* Fungsi , merupakan method
yang mengembalikan nilai balik jika method tersebut dipanggil. Cara pembuatan
sebuah fungsi adalah dengan cara menentukan nilai baliknya, kemudian nama
methodnya.
*Prosedur, merupakan method yang tidak mengembalikan nilaii. Cara
pembuatan prosedur sama dengan fungsi, namun bedanya adalah pada prosedur menggunakan
kata kunci void
*Pendeklarasian
(fungsi)
|
[modifier]
tipe_nilaiKembali nama_method( ){
Method body;
….
}
Atau
[modifier]
tipe_namaKembali nama_method(parameter input){
Method body;
…
}
|
(prosedur)
|
void
nama_method ( ){
Method body;
…
}
Atau
void
nama_method (parameter input){
Method body;
..
}
|
*Contoh
(fungsi)
|
public int
LuasPersegi(){
int luas=sisi*sisi;
return luas;
}
Atau
public int
LuasPersegi(int sisi){
return sisi*sisi;
}
|
(prosedur)
|
void
LuasPersegi(){
System.out.println(“Luas
Persegi=”+(sisi*sisi));
}
Atau
void
LuasPersegi(int s){
sisi=s;
}
|
Overloading
Overloading adalah method dengan nama yang
sama dengan method lain pada suatu class tetapi dengan parameter
yang berbeda. Tujuan dibuatnya overloading yaitu memudahkan penggunaan
method dengan fungsi yang hampir sama.
*Contoh
class
Pertambahan{
public void tambah1(){ int a=5, b=10; System.out.println("Hasil Pertambahann dari metod tambah1 ke-1 = "+(a+b)); } //Metod tambah1 di overloading dengan 2 parameter (int x, int y) public void tambah1(int x, int y){ System.out.println("Hasil Pertambahann dari metod tambah1 ke-2 = "+(x+y)); } public static void main(String [] args){ Pertambahan pp; pp = new Pertambahan(); pp.tambah1();//memanggil metod tambah1 ke-1 pp.tambah1(5,5);//memanggil metod tambah1 ke-2 } } |
Dari contoh
di atas, method tambah1 pada class Pertambahan dioverloading, sehingga ada
perbedaan parameter antara metod tambah1() dengan metod tambah1(int
x, int y)
Output
Overriding
Overriding adalah method subclass sama
dengan method super class, parameternya sama tetapi pernyataan atau
implementasinya berbeda.
Berikut contoh dari Overriding pada java dengan nama super calss nya adalah Nama dan sub class nya adalah Siapa.
Berikut contoh dari Overriding pada java dengan nama super calss nya adalah Nama dan sub class nya adalah Siapa.
*Contoh
class
Nama{
public void Sapa(){ System.out.println("Achmad Cahya Aditya"); } public static void main(String [] args){ Siapa ss; Nama nn; ss = new Siapa(); nn = new Nama(); ss.Sapa();//memanggil method Sapa() pada class Siapa nn.Sapa();//memanggil method Sapa() pada class Nama } } class Siapa extends Nama{ //Method Sapa() pada class Nama di override public void Sapa(){ System.out.println("Yesica Dwi Lestari"); } } |
Pada program di atas terlihat bahwa method Sapa()
pada super class(class Nama) di override di sub class(class
Siapa) . Parameter pada kedua class tersebut sama yaitu
Output
Constructor
Merupakan method khusus yang didefinisikan didalam kelas dan akan
dipanggil secara otomatis setiap kali terjadi instanisasi objek. Jika dalam
suatu kelas konstruktor tidak didefinisikan, maka secara otomatis java akan
membuat sebuah constructor, yaitu null constructor. Constructor tersebut
dinamakan sebagai default constructor.
Namun jika kita mendifinisikan sebuah constructor baru untuk kelas yang
dibuat, maka default constructor sudah tidak berfungsi atau tidak digunakan
lagi.
*Ciri-ciri default constructor
1.
Dibuat secara otomatis saat class
dikompilasi
2.
Dibuat secara otomatis jika class yang
dikompilasi tidak mempunyai constructor sama sekali
3.
Tidak memiliki parameter formal
*Contoh
public Studentrecord()
{
//area penulisan kode
}
|
*Sifat-sifat Constructor
1. Nama constructor sama dengan nama class
2. Tidak memiliki tipe data termasuk void
3. Tidak memiliki return value
4. Dieksekusi ketika terjadi instanisasi
5. Dapat mempunyai akses modifier, biasanya public namun dapat berupa
private
6.
Tidak dapat dipanggil secara langsung,
namun harus dipanggil dengan menggunakan operator new pada pembentukan sebuah class
*Pendeklarasian
[modifier]
nama_class()
{
//statement
}
Atau
[modifier]
nama_class(parameter)
{
//statement
}
|
Interface
Adalah class yang hanya mengandung dekalrasi method tanpa memiliki
implementasi dan semua property yang dimilikinya bersifat final. Interface
mirip dengan class abstrak, tetapi interface tidak terikat dengan class
hirearki.
*Pendeklarasian
Interface namainterface
{
[modifier] namaclass namafield;
…
[modifier] namaclass namamethod();
[modifier] namaclass namamethod ();
[modifier] namaclass namamethod
([daftar_parameter]);
|
Inhertance
proses
pembentukan satu class baru dari class lainnya.Dengan memanfaatkan inheritance
kode yang kita buat bisa digunakan lagi pada aplikasi lain maupun pada aplikasi
itu sendiri, sehingga kita tidak perlu susuah2 menuliskan lagi.
*Contoh
ü
Sedan dan sepeda motor adalah
subclass dari kendaraan bermotor
Kedua subclass mewarisi sifat yang dimiliki
oleh kendaraan bermotor, yaitu mempunyai mesin dan dapat berjalan
ü Kedua
subclass mempunyai sifat masing-masing yang berbeda, misalnya jumlah roda dan
kemampuan untuk berjalan mundur yang tidak dimiliki oleh sepeda motor
*Pendeklarasian
Class KelasTurunan extends KelasDasar{
//tubuhkelas
}
|
Encapsulation
ü Merupakan
dasar untuk pembatasan ruang lingkup program terhadap data yang diproses.
ü Data dan
prosedur dikemas bersama-sama dalam suatu objek, sehingga prosedur lain dari
luar tidak dapat mengaksesnya
ü Data
terlindung dari prosedur atau objek lain, kecuali prosedur yang berada dalam
objek itu sendiri
*Konsep
Encapsulation
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.
Polymorphism
ü
Yaitu konsep yang menyatakan bahwa sesuatu yang sama dapat
mempunyai bentuk dan perilaku berbeda
ü
Kemampuan mengungkap suatu hal yang berbeda melalui satu cara yang
sama
ü
Apabila mempunyai objek yang bertipe superclass, variable objek
ini bias diisi dengan bojek superclass ataupun objek subclass tanpa perlu
melakukan perubahan tipe
ü
Mempunyai arti bahwa operasi yang sama mungkin mempunyai perbedaan
dalam kelas yang berbeda
ü
Kemampuan objek-objek yang berbeda untuk melakukan metode yang
pantas dalam merespon message yang sama
ü Seleksi dari
metode yang sesuai bergantung pada kelas yang seharusnya menciptakan objek
*Kondisi
yang harus terpenuhi
1.
Semua kelas diturunkan dari suatu kelas yang sama
2.
Method yang dipanggil harus melalui variable dari superclass
3. Method yang
dipanggil harus melalui variablejuga harus merupakan method yang ada pada
superclass
PEMODELAN
BERORIENTASI OBJEK
Model Objek
*Menggambarkan struktur statis dari suatu objek dalam system dan
relasinya
*Model objek berisi diagram objek. Diagram objek adalah graph
dimana nodenya adalah kelas yang mempunyai relasi antar kelas
Model Dinamik
* Menggambarkan aspek dari system yang berubah setiap saat
* Dipergunakan untuk menyatakan aspek control dari system
*Berisi state diagram. State diagram adalah graph dimana nodenya
adalah state dan arc adalah transisi antara state yang disebabkan oleh event
Model Fungsional
* Menggambarkan transformasi nilai data di dalam system
*Berisi data flow diagram. DFD adalah suatu graph dimana nodenya
menyatakan proses dan arcnya adalah aliran data.
STRUKTUR
OBJEK DAN HIRARKI KELAS
Struktur
kelas dibagi menjadi 2 :
Whole-Part Structure
Memperlihatkan
hirarki dari suatu kelas sebagai komponen dari kelas lain yang disebut juga sub
objek
*Contoh
Kelas mobil
adalah whole dan komponennya mesin, rangka, dll merupakan part1, part2,..
Gen-Spec Structure
Memperlihatkan
kelas sebagai spesialisasi dari kelas di atasnya. Kelas yang mempunyai sifat
umum disebut Generalization, Superclass atau Topclass, sedangkan kelas yang mempunyai
sifat khusus disebut Specialization
*Contoh
Kelas mobil
adalah Generalization, sedangkan sedan, truk, minibus, dll merupajan
spesialixation1, spesialization22,.. yaitu kelas yang mempunyai sifat khusus