-->

Mengenal Pemrograman Berorientasi Objek

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.

*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

tidak mempunyai paramater alias kosong, tetapi perbedaannya adalah implementasinya yaitu mencetak kalimat yang berbeda.

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


LihatTutupKomentar