• Tidak ada hasil yang ditemukan

Prinsip prinsip dasar Object Oriented Pr

N/A
N/A
Protected

Academic year: 2018

Membagikan "Prinsip prinsip dasar Object Oriented Pr"

Copied!
7
0
0

Teks penuh

(1)

Prinsip-prinsip dasar Object Oriented Programming (OOP)

1. Enkapsulasi/pengkapsulan(Encapsulation)

Enkapsulasi adalah pembungkus, pembungkus disini dimaksudkan untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain. Konsep enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar dapat diakses sewaktu-waktu, sekaligus menjaga program tersebut.

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.

Contoh dalam program

Belajar.Java class belajar{

public String x =”Pintar”; private String y = “Java”; }

Pintar.Java

public class Pintar{

public static void main(String[]args){ Coba panggil = new Belajar();

(2)

Tipe public dan private mempunyai fungsi yang berbeda. Fungsi public yang terdapat dalam class Coba pada variable x, memungkinkan nilai dari variable x dapat diakses oleh class Belajar. Sedangkan variable y yang menggunakan fungsi

private tidak dapat dipanggil didalam class Belajar.

2. Pewarisan (Inheritance)

Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek dapat mempunyai entitas/obyek turunan. Dengan konsep inheritance, sebuah class dapat mempunyai class turunan.

Suatu class yang mempunyai class turunan dinamakan parent class atau base class. Sedangkan class turunan itu sendiri seringkali disebut subclass atau child class. Suatu subclass dapat mewarisi apa-apa yang dipunyai oleh parent class.

Karena suatu subclass dapat mewarisi apa apa yang dipunyai oleh parent class-nya, maka member dari suatu subclass adalah terdiri dari apa-apa yang ia punyai dan juga apa-apa yang ia warisi dari class parent-nya.

Kesimpulannya, boleh dikatakan bahwa suatu subclass adalah tidak lain hanya memperluas (extend) parent class-nya.

Dari hirarki diatas dapat dilihat bahwa, semakin kebawah, class akan semakin bersifat spesifik. Class mamalia memiliki seluruh sifat yang dimiliki oleh binatang, demikian halnya juga macan , kucing, Paus dan Monyet memiliki seluruh sifat yang diturunkan dari class mamalia.

Dengan konsep ini, karakteristik yang dimiliki oleh class binatang cukup didefinisikan didefinisikan dalam class binatang saja.

Class mamalia tidak perlu mendefinisikan ulang apa yang telah dimiliki oleh class binatang, karena sebagai class turunannya, ia akan mendapatkan karakteristik dari class binatang secara otomatis. Demikian juga dengan class macan, kucing, Paus dan monyet, hanya perlu mendefinisikan karakteristik yang spesifik dimiliki oleh class-nya masing-masing.

Dengan memanfaatkan konsep pewarisan ini dalam pemrograman, maka hanya perlu mendefinisikan karakteristik yang lebih umum akan didapatkan dari class darimana ia diturunkan.

B. Keuntungan inheritance

1. Subclass menyediakan state/behaviour yang spesifik yang membedakannya dengan superclass, hal ini akan memungkinkan programmer Java untuk

(3)

2. Programmer Java dapat mendefinisikan superclass khusus yang bersifat generik, yang disebut abstract class, untuk mendefinisikan class dengan behaviour dan state secara umum.

C. Istilah inheritance Extends

Keyword ini harus kita tambahkan pada definisi class yang menjadi subclass.

Superclass Superclass digunakan untuk menunjukkan hirarki class yang berarti class dasar dari subclass/class anak.

Subclass Subclass adalah class anak atau turunan secara hirarki dari superclass.

Super Keyword ini digunakan untuk memanggil konstruktor dari superclass atau menjadi variabel yang mengacu pada superclass.

Methode Overriding Pendefinisian ulang method yang sama pada subclass Dalam inheritance, method overriding berbeda dengan method overloading. Kalau method overriding adalah mendefinisikan kembali method yang sama, baik nama method maupun signature atau parameter yang diperlukan dalam subclass, kalau method overloading adalah mendefinisikan method yang memiliki nama yang sama, tetapi dengan signature yang berbeda dalam definisi class yang sama.

D. Contoh latihan inheritance : class Kotak{

double sisi1;

double sisi2;

double sisi3;

Kotak(){

}

Kotak(double satu, double dua, double tiga){

sisi1=satu;

sisi2=dua;

(4)

}

public void CetakKotak(){

System.out.println(”Isi Kotak adalah = ” + sisi1 + sisi2 + sisi3);}

}

public class Kotakku extends Kotak{

double sisi1;

Kotakku(double pertama, double kedua, double ketiga, double tambahan)

{

super(pertama,kedua,ketiga);

sisi1=tambahan;

}

public static void main(String[] args) {

Kotakku Kotaksaya= new Kotakku(10,5,15,30);

Kotaksaya.CetakKotak();

System.out.println(”Sisi Pertama dari Kotak adalah = ” + Kotaksaya.sisi1);

System.out.println(”Sisi Pertama dari Kotak adalah = ” + Kotaksaya.sisi2);

System.out.println(”Sisi Pertama dari Kotak adalah = ” + Kotaksaya.sisi3);

}

(5)

3. Abstraction

Abstraction dapat diartikan sebagai cara pandang kita terhadap suatu sistem yang terdiri dari kumpulan subsistem yang saling berinteraksi. Subsistem dapat pula diartikan sebagai suatu objek. Contohnya pada Televisi. Dalam Televisi terdapat bermacam macam subsistem, antara lain : sistem antena dan channel, sistem playback, sistem pewarnaan, sistem on, sistem off dan lain sebagainya. Semua objek ( sub sistem ) yang terdapat dalam sistem televisi tersebut saling

berinteraksi satu sama lain. Interaksi disini berupa “pesan” yang dapat disebut juga sebagai parameter. Contoh penerapan Abstraction dapat dilihat dibawah ini :

class Televisi {

int volume = 0;

void naikkanvolume(int volume) {

this.volume = this.volume + volume;

System.out.println(“Volume Televisi : ” + this.volume); }

}

public class TelevisiBeraksi {

public static void main (String[] args) {

Televisi televisiku = new Televisi(); televisiku.naikkanvolume(5); }

}

Dari contoh diatas, dapat dilihat terjadinya interaksi antar objek didalam system Televisi, saya mengambil contoh volume televisi. Dari public class TelevisiBeraksi berinteraksi dengan class Televisi dengan mengirimkan pesan informasi yang berupa parameter –> naikkanvolume(5).

4. Polymorphism

Polymorphism merupakan salah satu konsep penting dalam object oriented programming (OOP) khusunya di bahasa Java setelah abstraction dan

(6)

Polymorphism sering dikaitkan dengan penggunaan lebih dari satu metoda dengan nama sama. Penggunaan metoda dengan nama sama dapat diterapkan dengan method overloading dan method overriding. Peran polymorphism

sebenarnya tidak terbatas hanya pada hal tersebut. Ada keterkaitan antara polymorphism dan inheritance (turunan).

Dalam konsep turunan, saat obyek dari subclass dikonstruksi, obyek dari

superclass juga ikut dikonstruksi. Jadi setiap instance dari subclass adalah juga instance dari superclass. Apabila Anda mendeklarasikan metoda dengan

parameter dari tipe superclass, Anda diperbolehkan untuk memberi argumen berupa obyek subclass yang merupakan turunan dari superclass tersebut.

Berikut ini adalah contoh program yang dapat memberikan gambaran berkaitan dengan konsep polymorphism. Perlu dipahami dan dimengerti bahwa kelas Object merupakan akar dari semua kelas Java dan menduduki puncak tertinggi dalam hirarkhi. Program akan mendefinisikan kelas yang berkaitan dengan bidang datar secara sederhana termasuk beberapa kelas turunannya (kelas PersegiPanjang dan Balok) dan membatasi hanya pada penerapan method overriding.

// Nama file : Polimorphism.java // Contoh penerapan konsep polimorphism

public class Polimorphism {

public static void main(String[ ] args) {

cetakObjek(new Balok());

cetakObjek(new PersegiPanjang()); cetakObjek(new BangunDatar()); cetakObjek(new Object()); }

public static void cetakObjek(Object objek) { System.out.println(objek);

}

} // Akhir kelas Polimorphism

class Balok extends PersegiPanjang { public String toString() {

return "Mempunyai sisi panjang, lebar dan tinggi"; }

}

class PersegiPanjang extends BangunDatar { public String toString() {

return "Mempunyai sisi panjang dan lebar"; }

}

class BangunDatar extends Object { public String toString() {

(7)

}

Baris nomor 14 -16 adalah deklarasi metoda cetakObjek yang mempunyai satu parameter dengan tipe kelas Object. Kelas Object merupakan akar dari semua kelas di Java. Langsung maupun tidak langsung, semua kelas di Java

merupakan turunan dari kelas Object. Anda dapat memanggil atau menggunakan metoda cetakObjek dengan argumen berupa obyek yang dibuat dari kelas

turunan superclass Object.

Ketika metoda cetakObjek dipanggil (baris nomor 8 – 11), argumen obyek akan diminta. obyek sebagai argumen metoda dapat berupa obyek yang merupakan kelas turunan dari kelas Object yaitu kelas BangunDatar, kelas PersegiPanjang maupun kelas Balok. Masing-masing kelas turunan mendeklarasikan ulang metoda toString yang mempunyai implementasi berbeda. Java Virtual Machine (JVM) akan menentukan secara dinamis implementasi metode toString yang akan digunakan saat program dijalankan. Kemampuan menentukan secara dinamis ini disebut dengan dynamic binding.

Referensi

Dokumen terkait

Terlihat jelas bahwa kepercayaan merupakan faktor penting bagi konsumen agar tidak mudah berpindah ke produk lain.Maka dari itu, perusahaan Iphone Apple harus memikirkan

(LDL) dan trigliserida dapat menghambat aliran darah ke otak sehingga dapat menyebabkan stroke. Kolesterol tinggi meningkatkan resiko penyakit jantung dan aterosklerosis,

Secara keseluruhan sistem pakar harus memiliki maintenance yang baik agar dapat digunakan terus menerus sehingga sistem pakar ini dapat digunakan secara optimal

dilakukan pada umur kehamilan 14-16 minggu, jika terlalu awal cairan amnion belum cukup banyak, sedang bila terlambat akan lebih sulit membuat kultur dari sel-sel janin yang

Penelitian ini dilatarbelakangi oleh adanya permasalahan yang ditemukan di Taman Kanak-kanak Kebon Baru Utara Kecamatan Kesambi Kota Cirebon yaitu

Sumber daya manusia atau biasa disingkat menjadi SDM merupakan potensi yang terkandung dalam diri manusia untuk mewujudkan perannya sebagai makhluk sosial yang adaptif

– Zat atau obat yg berasal dari tanaman a bukan tanaman, sintetis a semi sintetis yg dapat menyebabkan penurunan atau perubahan kesadaran, hilangnya rasa, mengurangi

PEMAHAMAN DAN PENALARAN SISWA SMA DALAM PENGAMBILAN KEPUTUSAN MENGENAI PENGGUNAAN VAKSIN PADA TUBUH MANUSIAA. Universitas Pendidikan Indonesia | repository.upi.edu |