Anda di halaman 1dari 23

PENGENALAN OBJECT ORIENTED

PROGRAMING ( OOP )
ATAU PENGENALAN BERIONTASI OBJEK

DISUSUN

Oleh:

KELOMPOK LYOCO

NAMA :
1. AYU RISKI
2. KHAIRUNNISA
3. LILI NURLIA
4. LISTIKA SARI
5. SITTA AYU ANGGRAINI

SI-3L
STMIK ROYAL KISARAN
PENGENALAN OBJECT ORIENTED
PROGRAMING ( OOP )
ATAU PENGENALAN BERIONTASI OBJEK

1. Pengertian OOP Pada Java

Apa itu Java?? Java adalah sebuah bahasa


pemrograman pada komputer sama seperti
pendahulunya c++ . Bahasa pemrograman ini
dikembangkan oleh Sun microsystems yang
dikembangkan pada tahun 1995 . Awalnya java
diciptakan pada tahun 1991 oleh Patrick Naughton,
Mike Sheridan , James Gosling dan Bill Joy beserta programer dari Sun Microsystems .
Uniknya nama java diambil dari nama pulau jawa ( bahasa inggris dari jawa ) karena
James Gosling " Bapak Java " menyukai kopi tubruk yang berasal dari pulau Jawa .
Jadi kita perlu berbangga menjadi warga negara Indonesia .

Java sendiri merupakan bahasa pemrograman yang berbasis OOP atau


kepanjangan dari Object Oriented Programming adalah sebuah cara
pandang( paradigma ) dalam memecahkan masalah di dunia nyata dianalogikan
kedalam bentuk object dan struktur data yang didalamnya terdapat kumpulan item data
disebut variable dan method/fungsi yang saling berinteraksi dalam sebuah struktur
program.

Pemrograman Berorientasi Objek (Object Oriented Programming/OOP)


merupakan pemrograman yang berorientasikan kepada objek, dimana semua data dan
fungsi dibungkus dalam class-class atau object-object. Setiap object dapat menerima
pesan, memproses data, mengirim, menyimpan dan memanipulasi data. Beberapa object
berinteraksi dengan saling memberikan informasi satu terhadap yang lainnya. Masing-
masing object harus berisikan informasi mengenai dirinya sendiri dan dapat
dihubungkan dengan Object yang lain. Jadi, secara mudah OOP dapat disimpulkan
sebagai suatu teknik atau metode untuk menangani kompleksitas pembuatan program.
Jika mengikuti aturan-aturan dalam metode tersebut maka program yang dibuat akan
lebih mudah dikembangkan.

Sedikit perbandingan tambahan dengan bahasa C dan C++, Java banyak mewarisi
konsep orientasi objek dari C++ namun dengan menghilangkan aspek-aspek kerumitan
dalam bahasa C++ tanpa mengurangi kekuatannya. Hal ini mempermudah programer
pemula untuk mempelajari Java namun mengurangi keleluasaan programer
berpengalaman dalam mengutak-atik sebuah program. Di balik kemudahan yang
ditawarkan Java, luasnya fasilitas library Java sendiri membuat seorang programer
membutuhkan waktu yang tidak singkat untuk dapat menguasai penggunaan library-
library tersebut.

2. Konsep Dasar OOP

OOP paradigma tentang pemrograman berorientasi objek semua data dalam


paradigma dalam kelas dan objek bahasa pemograman dalam PBO adalah C++ landasan
utamanya untuk pengembangan maka bisa dipakai dalam bahasa PBO seperti java.

Alasan menggunakan pemograman berorientasi objek diciptakannya sebuah


PBO adanya keterbatasan dalam bahasa pemrograman tradisional dikenal istilah
procedural language yakni C pascal yang sejenisnya. konsep dari procedural language
bahwa semua masalah dalam fungsi dan prosedur selain itu juga procedural
programming fungsi dan data terpisah tidak menjadi satu kesatuan.

Contoh dari kelemahan procedural programming bila sebuah perusahaan


membuat program general ledger atau buku kas besar variabel bisa diakses oleh fungsi
lainnya,harus dideklarasikan variabel tersebut variabel global diletakkan diluar semua
sehingga fungsinya dapat diakses oleh semua fungsi.
Suatu saat perusahaan tadi membuat programmer baru belum mengetahui
tentang program general ledger tadi sangat dimungkinkan terjadinya kesalahan atau
kerusakan, data akan kesulitan menemukan jika kita ingin membuat tipe data baru
bahasa pemrograman tradisional.

Konsep pemograman berorientasi objek adalah bahwa semua pemecahan


masalah dibagi kedalam kelas-kelas atau class data dan fungsi yang akan dioperasikan
akan digabungkan menjadi satu kesatuan bisa dibuat sebagai kelas.

Fungsi kelas pada anggota dalam java jika kita ingin membaca data dalam
objek,anda harus memanggil fungsi anggota dalam sebuah objek dengan cara ini kita
bisa mengakses data jika tidak bisa mengakses data langsung dalam sebuah
pemrograman berorientasi objek konsep pemograman tradisional.

Jika ingin mengubah data dalam objek kita harus tahu fungsi apa saja
berinteraksi dalam objek tersebut jadi tidak ada fungsi lain yang bisa mengakses data
supaya penulisan dan penelusuran kesalahan program akan kita dapat lakukan dengan
mudah.

Jika ingin mempelajari OOP java, tentu kita harus mengetahui terlebih dahulu
mengenai konsep oop pada java. Konsep ini adalah dasar dari OOP. Berikut ini
merupakan Konsep OOP pada java:

1. Class = Sebuah konsep OOP yang digunakan untuk mengkapsulasi atau


membungkus data dan abstraksi prosedural yang diperlukan dalam Gambaran isi
dan tingkah laku sebagai entitas diantaranya :
1.) Kelas merupakan deskripsi abstrak informasi dan tingkah laku dari
sekumpulan data.
2.) Kelas dapat diilustrasikan sebagai suatu cetak biru(blueprint) atau
prototipe yang digunakan untuk menciptakan objek.
3.) Kelas merupakan tipe data bagi objek yang mengenkapsulasi data dan
operasi pada data dalam suatu unit tunggal.
4.) Kelas mendefinisikan suatu struktur yang terdiri atas data kelas (data
field), prosedur atau fungsi (method), dan sifat kelas (property).
2. Object = Membungkus data dan fungsi bersama menjadi suatu unit dalam
sebuah program. Merupakan dasar dari modularitas dan struktur dalam sebuah
OOP.
3. Abstraksi = Proses representasi data dan program dalam bentuk sama dengan
pengertiannya (semantik) dengan menyembunyikan rincian atau detail
implementasi.
4. Encapsulation = 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.
5. Polimorfisme = Merupakan suatu kejadian ketika object dapat mengungkapkan
banyak hal melalui suatu cara yang sama, 
6. Inheritance = Pewarisan. artinya sebuah class dapat menurunkan property dan
method yang dimilikinya kepada class lain.
Setelah membaca pengertian tentang Konsep OOP, mungkin akan sangat
membingungkan jika tidak ada contohnya. Berikut ini merupakan contoh program dari konsep
OOP:

Class

class Mobil {
private String nama;
private String jenis;
private String warna;
private String merk;

public Mobil(String nama, String merk, String jenis, String warna){


this.nama = nama;
this.merk = merk
this.jenis = jenis;
this.warna = warna;
}

public void print_mobil(){


System.out.prinln("Nama Mobil : " + nama);
System.out.prinln("Merk Mobil : " + merk);
System.out.prinln("Jenis Mobil : " + jenis);
System.out.prinln("Warna Mobil : " + warna);
}
}

Program diatas merupakan contoh program untuk mendeklarasikan Class pada


sebuah text editor. Nama class tersebut adalah Mobil. Didalam class Mobil terdapat
atribut nama, jenis, warna, dan merk.

Selain itu, terdapat construktor pada class tersebut dengan parameter (nama, merk, jenis,
warna). Lalu pada program this, disitulah nilai data dari parameter dikirim ke variabel
dalam class-mobil.

print_mobil merupakan method dalam class. Method tersebut berfungsi untuk


menampilkan data-data dari variabel - variabel yang telah ditentukan.

Object

class panggil_mobil{
private Mobil m;

private String nama;


private String jenis;
private String warna;
private String merk;
}

Kita bisa lihat warna, jenis, nama, dan merk merupakan object dari String.
Sedangkan m merupakan object dari class Mobil. Object disini berfungsi untuk
memanggil tipe data dan class tersebut. Jika kita bandingkan dengan kehidupan sehari -
hari, paijo jo. Paijo adalah nama orang, jo adalah objectnya. jadi ketika kita memanggil
paijo, kita cukup panggil dengan jo.
Abstraksi

class panggil_mobil{
private Mobil m;

private String nama;


private String jenis;
private String warna;
private String merk;

public void main(String[] args){


nama = "Honda Jazz";
jenis = "Matic";
warna = "Silver";
merk = "Honda";

m = new Mobil(nama, jenis, warna, merk);


}
}

Kita lihat program yang paling bawah. m = new Mobil(nama, jenis, warna,
merk) itulah yang disebut abstraksi. artinya dalam program, abstraksi tersebut
mendeklarasikan class Mobil didalam class jual mobil, Untuk memanggil class dengan
abstraksi kita buat rumus object = new class(parameter).

Encapsulation
Untuk encapsulation, kita perlu mengubah class mobil menjadi seperti dibawah
ini.

public class Mobil{

private String nama;


private String jenis;
private String merk;
private String warna;

public String getNama() {


return nama;
}

public void setNama(String nama) {


this.nama = nama;
}

public String getJenis() {


return jenis;
}

public void setJenis(String jenis) {


this.jenis = jenis;
}

public String getMerk() {


return merk;
}

public void setMerk(String merk) {


this.merk = merk;
}

public String getWarna() {


return warna;
}

public void setWarna(String warna) {


this.warna = warna;
}

public Mobil {
System.out.println("Memanggil class Mobil. Ini adalah Constructor");
}

Pada program diatas, kita bisa lihat terdapat dua model program (getXX dan setXX).
get sendiri berfungsi untuk mengambil data, sedangkan set berfungsi untuk menambah
data.
Pada encapsulation, Diwujudkan dalam bentuk class, dan didalam class sendiri
terdapat method yang memiliki hak akses tertentu terhadap enviroment/
lingkungkannya. Hak akses ini disebut Acces Modifier. Yang terdiri dari private,
protected, dan public.

 private = Memberikan hak akses hanya kepada class tersebut.


 protected = Memberikan hak akses kepada anggota classnya dan turunannya.
 public = memberikan hak akses kepada property dan method agar dapat
digunakan di luar class tersebut.

Polimorfisme
class panggil_mobil{
private Mobil m;

public panggil_mobil(){
m = new Mobil();
m.setNama("Honda Jazz");
m.setJenis("Matic");
m.setWarna("Silver");
m.setMerk("Honda");
}
}

Kita lihat dari program diatas, Pada constructor, kita panggil class mobil dengan
object m. lalu dibawahnya terdapat method - method seperti setNama, setJenis dll yang
notabene berasal dari class mobil. itulah yang disebut polimorfisme dimana dalam suatu
class, terdapat method yang memungkinkan pemrogram menyampaikan pesan tertentu
keluar dari hirarki obyeknya, dimana obyek yang berbeda memberikan
tanggapan/respon terhadap pesan yang sama sesuai dengan sifat masing-masing obyek.

Inheritance
class jual_mobil() extends panggil_mobil{
public void main(String[] args){
System.out.println("Nama Mobil : " + m.getNama());
System.out.println("Jenis Mobil : " + m.getJenis());
System.out.println("Warna Mobil : " + m.getWarna());
System.out.println("Merk Mobil : " + m.getMerk());
}
}

Pada contoh program diatas, saya membuat class jual_mobil dengan turunan dari
panggil_mobil. m.getnama() dll merupakan milih class mobil, namun telah dipanggil di
class mobil, sehingga class jual_mobil bisa mengaksesnya tanpa perlu mendeklarasikan
class mobil terlebih dahulu.

3. Karakteristik OOP Pada Java

 Semua adalah objek.


 Komputasi dilakukan dengan komunikasi antar objek. Setiap objek
berkomunikasi dengan objek yang lain melalui pengiriman dan penerimaan
pesan.
 Sebuah pesan merupakan permintaan atas sekumpulan aksi dengan semua
argumen yang diperlukan untuk menyelesaikan suatu tugas tertentu.
 Setiap objek memiliki memori sendiri, yang dapat terdiri dari objek-objek
lainnya.
 Setiap objek adalah wakil atau representasi dari suatu kelas. Sebuah kelas dapat
mewakili sekelompok objek yang sama.
 Kelas merupakan kumpulan tingkah laku yang berkaitan dengan suatu objek.
Jadi, semua objek yang merupakan wakil dari kelas yang sama dapat melakukan
aksi yang sama pula.
 Kelas-kelas diorganisasikan ke dalam struktur pohon yang berakar tunggal, yang
dinamakan dengan jenjang pewarisan (inheritance hierarchy).
 Setiap objek pada umumnya memiliki tiga sifat, yaitu keadaan, operasi dan
identitas objek.
 Operasi merupakan tindakan yang dapat dilakukan oleh sebuah objek.
 Keadaan objek merupakan koleksi dari seluruh informasi yang dimiliki oleh
objek pada suatu saat.
 Informasi yang terkandung pada objek tersebut pada akhirnya memberikan
identitas khusus yang membedakan suatu objek dengan objek lainnya.

Secara Umum Ada Beberapa Keuntungan Tampak Pada OOP Antara Lain

1. Objek Dapat Digunakan Ulang Untuk Program Lain


2. Programnya Lebih Terstruktur Dan Mudah Untuk Dikembangkan
3. Bersifat Alami
4. Reusabilitas
5. Pembangunan Program Lebih Cepat
6. Fleksibelitas Lebih Tinggi
7. Ekstensibilitas
8. Les Maintennance

4. Cara Kerja OOP

Langkah pertama dalam OOP adalah mengidentifikasi semua objek yang ingin
dimanipulasi oleh programmer dan bagaimana mereka saling berhubungan, sebuah
latihan yang sering dikenal sebagai pemodelan data. Setelah suatu objek diketahui, ia
digeneralisasikan sebagai kelas objek yang mendefinisikan jenis data yang
dikandungnya dan urutan logika apa pun yang dapat memanipulasinya. Setiap urutan
logika yang berbeda dikenal sebagai metode dan objek dapat berkomunikasi dengan
antarmuka yang didefinisikan dengan baik yang disebut pesan.

Sederhananya, OOP berfokus pada objek yang ingin dimanipulasi pengembang daripada
logika yang diperlukan untuk memanipulasi mereka. Pendekatan pemrograman ini
sangat cocok untuk program yang besar, kompleks, dan diperbarui atau dipelihara
secara aktif. Karena pengorganisasian program berorientasi objek, metode ini juga
kondusif untuk pengembangan kolaboratif di mana proyek dapat dibagi menjadi
kelompok-kelompok. Manfaat tambahan dari OOP termasuk penggunaan kembali kode,
skalabilitas dan efisiensi.

5. Manfaat OOP

Salah satu manfaat besar OOP adalah skalabilitas, dengan objek dan definisi
tidak memiliki batasan yang terbatas. Selain itu, pemisahan data dari metode mencegah
masalah umum yang ditemukan dalam bahasa perangkat lunak linier yang lebih lama.
Jika bug muncul dalam kode linier, bug itu dapat diterjemahkan melalui sistem dan
membuat banyak kesalahan yang sulit dilacak. Sebaliknya, program OOP, dengan
pemisahan metode dan data, tidak rentan terhadap kesalahan yang berkembang biak.

6. Kritik terhadap OOP

Gagasan pemrograman berorientasi objek telah dikritik oleh pengembang karena


berbagai alasan. Kekhawatiran terbesar adalah bahwa OOP terlalu menekankan
komponen data pengembangan perangkat lunak dan tidak cukup fokus pada komputasi
atau algoritma. Selain itu, kode OOP mungkin lebih rumit untuk ditulis dan perlu waktu
lebih lama untuk dikompilasi. Metode alternatif untuk OOP meliputi pemrograman
fungsional, pemrograman terstruktur dan pemrograman imperatif, tetapi sebagian besar
bahasa pemrograman canggih memberi pengembang opsi untuk menggabungkannya.

7. Macam – Macam Bahasa Pemograman Untuk Penerapan


Dalam OOP

Pemrograman berorientasi objek (selanjutnya disebut OOP) bisa digunakan jika


tahap penulisan kode program sudah mencapai tingkat kerumitan yang tinggi. Hal ini
biasanya terjadi pada bahasa pemrograman yang tingkatan bahasa pemrogramannya
termasuk tinggi, sehingga membutuhkan penulisan yang lebih kompleks. Macam-
macam bahasa pemrograman yang cocok untuk penerapan metode OOP adalah sebagai
berikut:

1.) Visual Foxpro


Visual FoxPro adalah bahasa pemrograman berorientasi objek dan
prosedural dari Microsoft. Awalnya bahasa pemrograman ini dikenal dengan nama
FoxBASE yang diluncurkan oleh Fox Software pada awal 1984.

2.) Java
Java adalah bahasa pemrograman yang dapat dijalankan di berbagai
komputer termasuk telepon genggam. Bahasa ini awalnya dibuat oleh James Gosling
saat masih bergabung di Sun Microsystems saat ini merupakan bagian dari Oracle dan
dirilis tahun 1995.

3.) C++
C++ adalah bahasa pemrograman komputer yang di buat oleh Bjarne
Stroustrup, yang merupakan perkembangan dari bahasa C dikembangkan di Bong
Labs (Dennis Ritchie) pada awal tahun 1970-an, Bahasa itu diturunkan dari bahasa
sebelumnya, yaitu B, Pada awalnya, bahasa tersebut dirancang sebagai bahasa
pemrograman yang dijalankan pada sistem Unix, Pada perkembangannya, versi ANSI
(American National Standart Institute) Bahasa pemrograman C menjadi versi dominan,
Meskipun versi tersebut sekarang jarang dipakai dalam pengembangan sistem dan
jaringan maupun untuk sistem embedded, Bjarne Stroustrup pada Bel labs pertama kali
mengembangkan C++ pada awal 1980-an

4.) Pascal (bahasa pemrograman)


Pascal adalah bahasa pemrograman yang pertama kali di buat oleh
Profesor Niklaus Wirth, seorang anggota International Federation of Information
Processing (IFIP) pada tahun 1971. Dengan mengambil nama
dari matematikawan Prancis, Blaise Pascal, yang pertama kali menciptakan mesin
penghitung, Profesor Niklaus Wirth membuat bahasa Pascal ini sebagai alat bantu untuk
mengajarkan konsep pemrograman komputer kepada mahasiswanya. Selain itu,
Profesor Niklaus Wirth membuat Pascal juga untuk melengkapi kekurangan-kekurangan
bahasa pemrograman yang ada pada saat itu.

5.) Visual Basic.NET


Microsoft Visual Basic .NET adalah sebuah alat untuk mengembangkan
dan membangun aplikasi yang bergerak di atas sistem .NET Framework, dengan
menggunakan bahasa BASIC. Dengan menggunakan alat ini, para programmer dapat
membangun aplikasi Windows Forms, Aplikasi web berbasis ASP.NET, dan juga
aplikasi command-line. Alat ini dapat diperoleh secara terpisah dari beberapa produk
lainnya (seperti Microsoft Visual C++, Visual C#, atau Visual J#), atau juga dapat
diperoleh secara terpadu dalam Microsoft Visual Studio .NET. Bahasa Visual
Basic .NET sendiri menganut paradigma bahasa pemrograman berorientasi objek yang
dapat dilihat sebagai evolusi dari Microsoft Visual Basic versi sebelumnya yang
diimplementasikan di atas .NET Framework. Peluncurannya mengundang kontroversi,
mengingat banyak sekali perubahan yang dilakukan oleh Microsoft, dan versi baru ini
tidak kompatibel dengan versi terdahulu.

6.) Smalltalk
Smalltalk adalah bahasa pemrograman berorientasi objek yang
dikembangkan oleh Xerox PARC. Ide dasar Smalltalk meliputi: Semua adalah objek.
Objek bisa saling berkomunikasi melalui messages atau berita. 

7.) Ruby
Ruby adalah bahasa pemrograman dinamis berbasis skrip yang
berorientasi objek. Tujuan dari ruby adalah menggabungkan kelebihan dari semua
bahasa-bahasa pemrograman skrip yang ada di dunia. Ruby ditulis dengan bahasa
pemrograman C dengan kemampuan dasar seperti Perl dan Python.

8.) Python
Python adalah bahasa pemrograman interpretatif multiguna  dengan
filosofi perancangan yang berfokus pada tingkat keterbacaan kode. Python diklaim
sebagai bahasa yang menggabungkan kapabilitas, kemampuan, dengan sintaksis kode
yang sangat jelas, dan dilengkapi dengan fungsionalitas pustaka standar yang besar
serta komprehensif. Python juga didukung oleh komunitas yang besar.

Python mendukung multi paradigma pemrograman, utamanya; namun tidak dibatasi;


pada pemrograman berorientasi objek, pemrograman imperatif, dan pemrograman
fungsional. Salah satu fitur yang tersedia pada python adalah sebagai bahasa
pemrograman dinamis yang dilengkapi dengan manajemen memori otomatis. Seperti
halnya pada bahasa pemrograman dinamis lainnya, python umumnya digunakan
sebagai bahasa skrip meski pada praktiknya penggunaan bahasa ini lebih luas mencakup
konteks pemanfaatan yang umumnya tidak dilakukan dengan menggunakan bahasa
skrip. Python dapat digunakan untuk berbagai keperluan pengembangan perangkat
lunak dan dapat berjalan di berbagai platform sistem operasi.

Saat ini kode python dapat dijalankan di berbagai platform sistem operasi, beberapa di
antaranya adalah:

 Linux/Unix
 Windows
 Mac OS X
 Java Virtual Machine
 OS/2
 Amiga
 Palm
 Symbian (untuk produk-produk Nokia)

9.) PHP
PHP: Hypertext Preprocessor adalah bahasa skrip yang dapat
ditanamkan atau disisipkan ke dalam HTML.  PHP banyak dipakai untuk
memprogram situs web dinamis. PHP dapat digunakan untuk membangun sebuah CMS.
10.) C#
Bahasa C# adalah sebuah bahasa pemrograman modern yang bersifat
general-purpose, berorientasi objek, yang dapat digunakan untuk membuat program di
atas arsitektur Microsoft .NET. Framework. Bahasa. C# ini memiliki kemiripan
dengan bahasa Java, C dan C++ (selengkapnya dapat dilihat pada Sejarah Bahasa C#).

11.) Delphi
Delphi adalah sebuah IDE compiler untuk Bahasa
pemrograman pascal dan perkembangan perangkat lunak yang digunakan untuk
merancang suatu aplikasi. Delphi ini juga dapat dikatakan sebagai
sebuah pemrograman yang menggunakan visualisasi seperti halnya Bahasa
pemrograman visual basic.

12.) Eiffel
Diterjemahkan dari bahasa Inggris-Eiffel adalah bahasa pemrograman
berorientasi objek yang dirancang oleh Bertrand Meyer dan Eiffel Software. Meyer
memahami bahasa tersebut pada tahun 1985 dengan tujuan meningkatkan keandalan
pengembangan perangkat lunak komersial; versi pertama tersedia pada 1986. Pada
2005, Eiffel menjadi bahasa berstandar ISO.

13.) Perl
Perl adalah bahasa pemrograman untuk segala keperluan, dikembangkan
pertama kali oleh Larry Wall di mesin Unix. Perl dirilis pertama kali pada tanggal 18
Desember 1987 ditandai dengan keluarnya Perl 1

14.) Adobe Flash AS 3.0


Adobe Flash adalah salah satu perangkat lunak komputer yang
merupakan produk unggulan Adobe Systems. Adobe Flash digunakan untuk membuat
gambar vektor maupun animasi gambar tersebut.
8. Fungsi Pemrograman Berbasis Objek dalam PHP

PHP bukan bahasa pemrograman yang ‘murni’ berbasis objek seperti Java.


Bahkan, konsep OOP dalam PHP baru hadir dalam PHP versi 4, dan disempurnakan
oleh PHP versi 5. Dengan kata lain, OOP di PHP merupakan ‘fitur tambahan’. Anda
bisa membuat situs web dengan PHP tanpa menggunakan objek sama sekali.
Dalam studi pemrograman, pembuatan program dalam PHP tanpa menggunakan objek
disebut juga dengan pemrograman prosedural atau pemrograman fungsional. Dikenal
dengan pemrograman prosedural, karena kita memecah kode program menjadi bagian-
bagian atau fungsi-fungsi kecil, kemudian menyatukannya untuk menghasilkan nilai
akhir.
Dengan membuat program secara prosedural, aplikasi bisa dibuat dengan cepat dan
mudah dipelajari jika dibandingkan dengan pemrograman berbasis objek (bagi anda
yang pernah mempelajari Java, tentu telah ‘melewati’ hal ini :) ).
Keuntungan pemrograman berbasis objek baru terasa ketika program tersebut telah
‘besar’ atau kita bekerja dengan tim untuk membagi tugas. Konsep ‘objek’ untuk
memisahkan program menjadi bagian-bagian yang berdiri sendiri akan memudahkan
dalam membuat program.
Saya tidak akan panjang lebar menjelaskan tentang keuntungan atau kerugian
menggunakan OOP. Sebagai programmer web, OOP adalah salah satu makanan wajib.
Pembuatan website modern saat ini akan lebih mudah jika menggunakan template kode
program yang dikenal dengan framework. Daripada kita membuat situs mulai dari
awal, menggunakan framework akan mempercepat proses kerja. Dan, framework PHP
hampir semuanya dibuat menggunakan OOP.

9. Macam-macam OOP

1.      Encapsulation (Enkapsulasi)


Enkapsulasi adalah suatu cara untuk menyembunyikan informasi
detail dari suatu class. Dua hal yang mendasar dalam enkapsulasi yakni : Information
hiding , Interface to access data. Anggota class dapat diakses baik berupa atribut
maupun method secara langsung dengan menggunakan objek yang dibuat. Hal ini
dikarenakan akses kontrol yang diberikan kepada atribut maupun method yang ada di
dalam class tersebut adalah ‘public’. Informasi dapat disembunyikan dari suatu class
sehingga anggota class tersebut tidak dapat diakses dari luar, caranya adalah hanya
dengan memberikan akses kontrol ‘private’ ketika mendeklarasikan atribut atau
method. Proses ini disebut dengan information hiding.
Jika telah dilakukan information hiding terhadap suatu atribut pada
suatu class, lalu bagaimana cara melakukan perubahan terhadap atribut yang
disembunyikan tersebut, caranya adalah dengan membuat suatu interface berupa method
untuk menginisialisasi atau merubah nilai dari suatu atribut tersebut yang dinamakan
dengan interface to access data.
2.      Inheritance
Inheritance merupakan pewarisan atribut dan method pada sebuah class yang
diperoleh dari class yang telah terdefinisi tersebut. Setiap subclass akan mewarisi state
(variabel-variabel) dan behaviour (method-method) dari superclass-nya. Subclass
kemudian dapat menambahkan state dan behaviour baru yang spesifik dan dapat pula
memodifikasi (override) state dan behaviour yang diturunkan oleh superclass-nya.
Subclass atau kelas turunan menyediakan state/behaviour yang spesifik yang
membedakannya dengan superclass atau kelas induk , hal ini akan memungkinkan
programmer Java untuk menggunakan ulang source code dari superclass yang telah ada.
Programmer Java dapat mendefinisikan superclass khusus yang bersifat generik, yang
disebut abstract class, untuk mendefinisikan class dengan behaviour dan state secara
umum.
Ada dua keyword utama dalam inheritance, Super dan Extends. Extends harus
kita tambahkan pada definisi class yang menjadi subclass. Sedangkan Super digunakan
untuk memanggil konstruktor dari superclass atau menjadi variabel yang mengacu pada
superclass.
Istilah dalam inheritance yang perlu diperhatikan :
a.       Extends
Keyword ini harus kita tambahkan pada definisi class yang menjadi
subclass.
b.      Superclass
Superclass digunakan untuk menunjukkan hirarki class yang berarti class
dasar dari subclass/class anak.
c.       Subclass
Subclass adalah class anak atau turunan secara hirarki dari superclass.
d.      Super
Keyword ini digunakan untuk memanggil konstruktor dari superclass atau
menjadi variabel yang mengacu pada superclass.
e.       Metode Overriding
Pendefinisian ulang method yang sama pada subclass.
3. Polymorphisme (Polimorfisme)
 
Polimorfisme atau perubahan bentuk merupakan kemampuan dari reference
untuk mengubah sifat menurut object apa yang dijadikan acuan. Dengan kata lain, kita
bisa menggunakan variabel dalam program untuk mengaplikasikan objek untuk
memanggil method yang berbeda. Keuntungan dari polimorfisme menyediakan
multiobject dari subclasses yang berbeda untuk diperlakukan sebagai object dari
superclass tunggal, secara otomatis menunjuk method yang tepat untuk
menggunakannya ke particular object berdasar subclass yang termasuk di dalamnya.

Polimorfisme tak lengkap jika tanpa overloading. Overloading adalah suatu


keadaan yakni beberapa method memiliki nama yang sama tetapi memiliki
fungsionalitas yang berbeda. Ciri-ciri overloading yaitu nama method harus sama,
sedangkan parameter harus berbeda. Overloading memungkinkan polimerfisme pada
kelas super dan sub kelasnya. Constructor yang terdiri dari dua atau lebih disebut
overloading constructor yang termasuk ciri polimorfisme.

4.     Access Modify


Pada Java jika diinginkan suatu data untuk bisa di akses oleh object lain
atau tidak bisa di akses oleh object luar lainnya digunakan Access Modify. Access
Modify lebih singkatnya, larangan suatu data bisa diakses ataupun tidak bisa diakses.
Contohnya saja jika suatu data hanya dapat diubah isinya oleh method tertentu saja, dan
method lainnya tidak bisa karena adanya pembatasan akses pada data tersebut. Java
mempunyai 4 macam Access Modify, yaitu default, public, private, protected yang
fungsinya berlainan.
a.      Default
Tipe akses ini hanya dalam satu class itu sendiri yang dapat mengaksesnya
tergantung dari blok kodenya.
b.      Public
Tipe ini mengijinkan seluruh class dari luar atau dari dalam package bisa
mengaksesnya.

c.       Protected
Tipe ini di gunakan untuk pewarisan dalam java, jadi klo suatu super class
mempunyai sebuah member, ini dapat diakses oleh subclassnya. Source Code Sample :
d.      Private
Tipe ini hanya dapat diakses dimana class tersebut di buat.

5. Constructor and Destructor


a.       Constructor
Dalam konsep OOP, constructor adalah suatu method yang digunakan untuk
membuat suatu object dari suatu class. Dalam Java, constructor dideklarasikan sama
dengan nama class yang bersangkutan. Constructor diakses dengan menggunakan
keyword new.
b.      Destructor
Dalam konsep OOP, destructor adalah suatu method yang digunakan untuk
melepaskan semua resource yang dialokasikan object semasa hidupnya.
Dalam Java, destructor tidak mempunyai peranan yang berarti karena Java memiliki
fasilitas Garbage Collector, dimana alokasi memori akan secara otomatis dibebaskan
apabila sudah tidak digunakan lagi.
6.      Static Properties
Seluruh property dan method hanya bisa diakses dari objek, maka
static property dan static method adalah pengecualiannya. Static property
dan static method adalah property (variabel) dan method (function) yang
melekat kepada class, bukan kepada objek. Konsep static property
memang ‘agak keluar’ dari konsep objek sebagai tempat melakukan
proses, karena sebenarnya class hanya merupakan ‘blueprint’ saja. Untuk
membuat static property dan static method, kita menambahkan keyword
‘static’ setelah penulisan akses level property atau method,

7.      Super Class and Sub Class


Dalam terminologi java, kelas induk yang diturunkan disebut dengan
superclass. Sedangkan kelas baru hasil turunan disebut subclass. Pada proses penurunan
kelas, kelas turunan akan mewarisi sifat-sifat yang terdapat pada kelas induknya.
Selanjutnya, kelas turunan tersebut dapat memiliki sifat spesifik yang sebelumnya tidak
dimiliki oleh kelas induk. 

Anda mungkin juga menyukai