Selasa, 09 Juni 2009

OBJECT ORIENTED PROGRAMMING

OBJECT ORIENTED PROGRAMMING
(OOP)
Apa itu Object Oriented Programming (OOP) ?
_ OOP merupakan suatu metodologi dalam pemrograman yang diciptakan untuk memodelkan
kasus-kasus nyata ke dalam sebuah objek.
Ilustrasi, seorang pelukis yang menggambar buah apel dengan sifat-sifat yang dimiliki oleh buah
apel sebenarnya, seperti bentuknya yang bulat dan warnanya yang merah atau hijau. Hal tersebut
sama kejadiannya dalam pemrograman, apabila seorang programmer mendeklarasikan sebuah
objek (misalnya manusia), maka objek tersebut harus memiliki data-data dan sifat-sifat yang
dimiliki oleh manusia.
Apa itu Objek ?
Objek merupakan sesuatu yang dapat memodelkan atau menyederhanakan permasalahanpermasalahan
yang terjadi di dalam dunia nyata. Namun secara spesifik dalam pemrograman, objek
adalah sesuatu paket yang merupakan kumpulan data dan perilaku. Contoh : Objek manusia
memiliki data-data seperti tinggi badan, berat badan, warna kulit, bentuk rambut, dll. Sedangkan
perilaku yang dimiliki oleh manusia misalnya cara berjalan, logat berbicara, dll.
- Tinggi Badan Direpresentasikan dalam :
- Berat Badan variabel / konstanta / field
- Warna Kulit
- Bentuk Rambut, dll.
Objek kumpulan variabel
_ Kumpulan variabel / konstanta menjadi record saja, dan
Prosedur / fungsi _ Method
OBJEK
Data _ Berupa variabel / konstanta
Method _ Berupa prosedur maupun fungsi
Apa itu instance ?
INSTANCE
_ merupakan contoh atau wujud nyata dari suatu objek.
Rita
Reni
Rina
Objek Instance
Manusia
Contoh deklarasi dalam Pascal :
Type
TManusia = object
TinggiBadan : integer;
BeratBadan : real;
WarnaKulit : string[12];
Procedure Berjalan;
Var
Udin, Jefri, Toni : TManusia; /* merupakan instance dari objek TManusia
Contoh deklarasi dalam Java :
Kendaraan.java lainkdr.java
class Kendaraan
{
String Tahunpro;
double Harga;
static String Bahanbkr = “Bensin”;
Kendaraan()
{
}
Kendaraan(String Thnpro, double Hrg)
{
this.Tahunpro = Thnpro;
this.Harga = Hrg;
}
}
public class lainkdr
{
public static void main (String args[])
{
Kendaraan sedan = new Kendaraan(“1990”, 150000000.00D);
Kendaraan angkot= new Kendaraan(“2004”, 100000000.00D);
System.out.println(“tahun produksi = “+sedan.Tahunpro);
System.out.println(“harga awal = “+sedan.Harga);
System.out.println(“bahan bakar = “+sedan.Bahanbkr);
System.out.println(“\n”);
System.out.println(“tahun produksi = “+angkot.Tahunpro);
System.out.println(“harga awal = “+angkot.Harga);
System.out.println(“bahan baker = “+angkot.Bahanbkr);
}
}
KONSEP DASAR OOP
1. Abstraksi (Abstraction)
_ Proses penyembunyian kerumitan (pengabstraksian) yang terjadi dalam suatu objek
sehingga pengguna objek tidak perlu untuk mengetahui detil proses yang dilakukan.
Contoh :
Mobil _ para pengguna mobil tidak perlu mengetahui bagaimana cara membuat mesin
mobil dan juga bagaimana proses mesin itu bekerja sebagaimana mestinya.
OOP _ objek abstrak atau kelas abstrak
* objek abstrak adalah objek yang tidak dapat di instantia sehingga objek ini tidak memiliki
instance.
2. Pembungkusan (Encapsulation)
_ Data-data dan method akan dibungkus menjadi paket objek yang merupakan satu
kesatuan sehingga dapat bekerja sama dalam melaksanakan tugas-tugas pemrograman
tertentu.
Dalam pemrograman Java yang berorientasi murni objek, program hanya dipusatkan pada
aspek internal, tidak melihat aspek eksternal masing-masing objek, sehingga pembuatan
program tidak perlu memikirkan terlalu susah bagaimana program berjalan.
Non – OOP OOP
Konstanta 1
Konstanta 2
……..
OBJEK
Variabel 1
Variabel 2
……….
Dibungkus menjadi objek
Data
Fungsi / Prosedur 1
Fungsi / Prosedur 2
………
Method
3. Pewarisan (Inheritance)
_ Sebuah objek dapat diturunkan menjadi objek baru lainnya sehingga objek baru tersebut
akan mewarisi sifat dari objek induknya.
Objek induk dinamakan dengan base class, ada juga yang mengistilahkan dengan ancestor
class. Sedangkan objek turunannya (objek anak) sering dinamakan dengan derived class
atau descendant class.
Contoh : ada objek A, kemudian kita turunkan objek tersebut menjadi objek B, maka objek
B secara otomatis akan memiliki sifat dan perilaku yang terkandung dalam objek A, selain
itu dapat juga ditambahkan sifat dan perilaku ke dalam objek B.
a. Membuat Class
Bentuk umum mendefinisikan class :
class extends
{
………………
}
b. Mencegah Pewarisan
Supaya class tidak dapat diturunkan (diwariskan) menggunakan keyword final. Contoh :
final class extends
{
………………….
}
Contoh :
class Orang
{
public String nama;
public String alt;
protected String kodeprof;
private String ket = “Termasuk Mahluk Hidup”;
Orang()
{
System.out.println(“Konstruktor Orang”);
}
Orang(String nm, String al, String kp)
{
this.nama = nm;
this.alt = al;
this.kodeprof = kp;
}
}
Class Dosen extends Orang
{
Dosen()
{
System.out.println(“Konstruktor Dosen”);
}
Dosen(String nd, String sl, String kp)
{
this.nid = nid;
this.spesialis = sl;
this.kodeprof = kp;
}
// contoh pemakaiannya :
Dosen Orang1 = new Dosen(“119”, “Katarak”, “02”);
Dosen Orang2 = new Dosen(“120”, “Java”, “03”);
}
4. Kebanyakrupaan / Polimorfisme (Polymorphisme)
_ Kegiatan mengungkap beberapa hal yang berbeda melalui satu cara yang sama.
Misal :
Terdapat sebuah objek manusia yang diturunkan menjadi dua buah objek baru, tentara dan
manusia. Dari kedua objek baru tersebut ambil salah satu contoh method, misal cara
berjalan. Tentara berjalan dengan tegap dan mahasiswa dengan berjalan santai.
Ada 5 objek (manusia) yang tidak diketahui apakah manusia tersebut tentara atau manusia.
Untuk mengetahuinya “diperintahkan” untuk berjalan. Maka akan diketahui, jika tegap
maka ia tentara, jika santai maka objek tersebut adalah mahasiswa.
METHOD
1. Static Method
_ method selalu berada dalam keadaan static dan tidak dapat diubah pada saat
implementasinya. Dengan demikian method ini tidak dapat diperbaharui (di-override) oleh
objek turunannya.
2. Dynamic / Virtual Method
_ Method ini memungkinkan sebuah method dapat diimplementasikan dengan cara yang
berbeda antara objek-objek yang terdapat di dalam suatu hirarki _ tergantung pada sat
program berjalan (run-time) : Late Binding.
TINGKAT AKSES
_ Memberikan batasan pihak luar (objek lain maupun bagian lain dari program yang berada di
luar objek (lingkungan program)).
1. Private
_ Data maupun method yang berada di dalam tingkat akses ini hanya dapat diakses oleh
kelas itu sendiri. Artinya, objek lain dan juga lingkungannya tidak diperkenankan untuk
mengakses data atau method tersebut.
2. Protected
_ Data maupun methodnya dapat di akses oleh objek itu sendiri dan juga oleh objek-objek
turunannya. Namun lingkungan program tetap tidak diijinkan untuk mengaksesnya.
3. Public
_ Data dan method dapat di akses secara publik oleh bagian program manapun, baik objek
itu sendiri, objek turunannya maupun oleh lingkungan luar objek yang berada di dalam
program.
CONTRUCTOR DAN DESTRUCTOR
_ Merupakan method khusus yang disediakan untuk keperluan inisialisasi dan deinisialisasi di
dalam sebuah objek.
LEBIH LANJUT TENTANG PEWARISAN (INHERITANCE)
Masing-masing objek turunan akan memiliki sifat yang sama dengan sifat yang dimiliki oleh
induknya karena adanya proses pewarisan sifat. Tujuan utama dari penurunan sebuah objek adalah
untuk menciptakan objek baru yang dapat memiliki sifat yang lebih baik atau lebih spesifik dari
objek induknya tanpa meninggalkan sifat-sifat asli dari objek induknya. Contoh hirarki objek :
LEBIH LANJUT TENTANG POLIMORFISME
1. Override
_ Proses pengimplementasian dengan cara yang berbeda, yaitu pembaharuan implementasi
yang terdapat pada objek induknya.
2. Objek Abstrak
_ Mengandung satu atau lebih method abstrak yang tidak memiliki implementasi. Maka
dari itu, objek abstrak ini tidak dapat memiliki instance atau contoh nyata. Dengan kata lain,
objek abstrak pastilah memiliki objek anak untuk mengimplementasikan method-method
abstrak yang dimilikinya.
3. Early Binding
_ Default pemanggilan prosedur atau fungsi (saat kompilasi).
4. Late Binding
_ Pemanggilan method-nya dilakukan pada saat program sedang berjalan (run-time),
bukan pada saat kompilasi.

Tidak ada komentar:

Posting Komentar