Oleh: syaddad | Selasa, 21 April 2009

Konsep Pemrograman Berbasis Objek (Bagian 3 – Habis)

Enkapsulasi

Enkapsulasi (encapsulation) berguna untuk menyembunyikan informasi class dari luar (data hidding) dimana data member tidak dapat diubah atau diakses secara langsung. Kata kunci private merupakan ciri khasnya.

File bukuenkapsulasi.java

class bukuenkapsulasi {

private String judul; private String pengarang; private int tahun;

public bukuenkapsulasi(String judul,String pengarang,int tahun){

this.judul =judul; this.pengarang =pengarang; this.tahun = tahun; }

void setjudul(String judul)

{ judul = judul;}

void setpengarang(String pengarang)

{ pengarang = pengarang;}

void settahun(int tahun)

{ tahun = tahun;}

String ambiljudul()

{ return judul;}

String ambilpengarang()

{ return pengarang;}

int ambiltahun()

{ return tahun;}}

File bukuenkapsulasiberaksi.java

public class bukuenkapsulasiberaksi{

public static void main(String[] args){

bukuenkapsulasi identitasbuku = new bukuenkapsulasi(“Konsep OOP”, “Fathan Althafunnas”,2008);

System.out.println(“Judul : “+identitasbuku.ambiljudul());

System.out.println(“Pengarang : “+identitasbuku.ambilpengarang());

System.out.println(“Tahun : “+identitasbuku.ambiltahun()); }}

Dari contoh tersebut terlihat bahwa variable dengan kata kunci private memiliki arti bahwa variable tersebut hanya dapat diakses pada class yang sama, sehingga kita dapat mengakses secara langsung melalui nama variable objek diikuti titik dan nama variable.

System.out.println(“Judul : ”+identitasbuku.judul); //tidak boleh

System.out.println(“Judul : ”+identitasbuku.ambiljudul()); //judul didapat dengan method ambil judul()

Inheritance (Pewarisan)

Pewarisan atau lebih dikenal dengan inheritance dalam dunia pemrograman berbasis objek berfungsi untuk membuat class baru dari class yang sudah ada. Inheritance menjadikan suatu class lebih barguna (reusability) karena dapat digunakan untuk menghasilkan class-class lain yang lebih spesifik.

File orangdunia.java

class orangdunia {

void orangasia(){

System.out.println(“Orang Asia”);

System.out.println(“=================”); }

void orangafrika(){

System.out.println(“\nOrang Afrika”);

System.out.println(“=================”); }

void orangeropa(){

System.out.println(“\nOrang Eropa”);

System.out.println(“=================”); }}

File ciriorangdunia.java

class ciriorangdunia extends orangdunia {

String warnakulit;

String warnarambut;

String jenisrambut;

public void asia(String Awarnakulit,String Awarnarambut,String Ajenisrambut){

warnakulit = Awarnakulit ;

warnarambut = Awarnarambut ;

jenisrambut = Ajenisrambut ;

System.out.println(“Warna Kulit: “+Awarnakulit);

System.out.println(“Warna Rambut: “+Awarnarambut);

System.out.println(“Jenis Rambut: “+Ajenisrambut); }

public void afrika(String Fwarnakulit,String Fwarnarambut,String Fjenisrambut) {

warnakulit = Fwarnakulit ;

warnarambut = Fwarnarambut ;

jenisrambut = Fjenisrambut ;

System.out.println(“Warna Kulit: “+Fwarnakulit);

System.out.println(“Warna Rambut: “+Fwarnarambut);

System.out.println(“Jenis Rambut: “+Fjenisrambut); }

public void eropa(String Ewarnakulit,String Ewarnarambut,String Ejenisrambut) {

warnakulit = Ewarnakulit ;

warnarambut = Ewarnarambut ;

jenisrambut = Ejenisrambut ;

System.out.println(“Warna Kulit: “+Ewarnakulit);

System.out.println(“Warna Rambut: “+Ewarnarambut);

System.out.println(“Jenis Rambut: “+Ejenisrambut); } }

File ciriorangduniaberaksi.java

class ciriorangduniaberaksi {

public static void main(String[] args) {

// Membuat object

ciriorangdunia ciriorang = new ciriorangdunia();

ciriorang.orangasia();

ciriorang.asia(“Kuning Langsat”,”Hitam”,”Lurus”);

ciriorang.orangafrika();

ciriorang.afrika(“Hitam”,”Hitam”,”Kribo”);

ciriorang.orangeropa();

ciriorang.eropa(“Putih”,”Pirang”,”Ikal”); }}

Polimorfisme

Polimorfisme memiliki arti kemampuan untuk memiliki bentuk berbeda. Dalam istilah pemrograman, kata ini memiliki arti kemampuan suatu objek memiliki berbagai bentuk, baik sebagai objek dari class-nya sendiri atau objek dari superclass-nya.

Polimorfisme punya 2 bentuk, yaitu :

  • Overloading. Penggunaan satu nama untuk beberapa method yang berbeda parameter.

File aritmatika.java

class aritmatika{

double perkalian;

double pembagian;

public aritmatika(double a, double b, double c){

perkalian = a * b * c;

System.out.println(“perkalian : “+a+” x “+b+” x “+c+” = “+perkalian);}

public aritmatika(double a, double b){

pembagian = a / b;

System.out.println(“Pembagian : “+a+” / “+b+” = “+pembagian);} }

File aritmatikaoverloading.java

public class aritmatikaoverloading{

public static void main(String[] args){

aritmatika operasiaritmatika1 = new aritmatika(23.5,12.67,34.78);

aritmatika operasiaritmatika2 = new aritmatika(80.67,12.5); }}

  • Overidding. Terjadi ketika deklarasi method subclass sama dengan method dari superclassnya .

File OrangAsiaAfrika.java

class OrangAsiaAfrika {

void ciriasia(){

System.out.println(“Ciri-Ciri Orang Asia”);

System.out.println(“=================”); }

void ciriafrika(){

System.out.println(“\nCiri-Ciri Orang Afrika”);

System.out.println(“=================”); } }

File CiriOrangAsiaAfrika.java

class CiriOrangAsiaAfrika extends OrangAsiaAfrika {

String warnakulit;

String jenisrambut;

public void ciriasia(String Awarnakulit, String Ajenisrambut) {

warnakulit = Awarnakulit ;

jenisrambut = Ajenisrambut ;

System.out.println(“Warna Kulit: “+Awarnakulit);

System.out.println(“Jenis Rambut: “+Ajenisrambut); }

public void afrika(String Fwarnakulit, String Fjenisrambut) {

warnakulit = Fwarnakulit ;

jenisrambut = Fjenisrambut ;

System.out.println(“Warna Kulit: “+Fwarnakulit);

System.out.println(“Jenis Rambut: “+Fjenisrambut); }}

File CiriOrangAsiaAfrikaBeraksi.java

class CiriOrangAsiaAfrikaBeraksi {

public static void main(String[] args) {

// Membuat object

CiriOrangAsiaAfrika ciriorang = new CiriOrangAsiaAfrika();

ciriorang.ciriasia();

ciriorang.ciriasia(“Kuning Langsat”,”Lurus”);

ciriorang.ciriafrika();

ciriorang.afrika(“Hitam”,”Kribo”); }}

Packages

Dalam mengatur definisi class, Java memakai konsep packages. Packages adalah koleksi dari beberapa class dan interface yang berhubungan, dan menyediakan proteksi akses dan pengelolaan namespace. Konsep packages ini digunakan untuk mengelompokkan class dalam satu group. Ciri khusus packages adalah penggunaan keyword package.

Apabila kita menempatkan 3 file java dalam folder yang sama, maka kita dapat menggunakan nama package sesuai nama folder tersebut. Lalu apabila dalam folder tersebut terdapat subfolder maka program dalam subfolder menggunakan package dengan nama yang diawali nama folder lalu diikuti tanda titik dan nama subfolder.

Misalnya kita memiliki folder c:\LatihanJAVA\elektronik, maka file televisi.java dan radio.java harus berada dalam subfolder elektronik, sedangkan file elektronikberaksi.java berada dalam folder LatihanJAVA.

File televisi.java

package elektronik;

public class televisi{

public String merek;

public int tahun;

public void infoelektronik(){

System.out.println(“Televisi”);

System.out.println(“===========i”);

System.out.println(“Merek : ”+merek);

System.out.println(“Tahun Produksi : ”+tahun); }}

File radio.java

package elektronik;

public class radio{

public String merek;

public int tahun;

public void infoelektronik(){

System.out.println(“\nRadio”);

System.out.println(“===========i”);

System.out.println(“Merek : ”+merek);

System.out.println(“Tahun Produksi : ”+tahun); }}

File elektronikberaksi.java

import elektronik.televisi;

import elektronik.radio;

public class elektronikberaksi{

public static void main(String[] args){

televisi TV = new televisi();

TV.merek = “SHARP”;

TV.tahun = 2009;

TV.infoelektronik();

radio RDO = new radio();

RDO.merek = “SONY”;

RDO.tahun = 2008;

RDO.infoelektronik(); }}

Interface

Interface dalam JAVA sebenarnya sama dengan class (ada pula yang mengatakan bukan class tetapi aturan-aturan untuk class) tetapi hanya memiliki deklarasi method tanpa implementasi. Interface kita gunakan apabila kita ingin menentukan apa yang harus dilakukan oleh suatu class tapi tidak menentukan bagaimana cara untuk melakukannya.

File KontrolAC.java

interface KontrolAC{

public static final int hidup=1;

public static final int mati=0;

public static final int dingin=1;

public static final int panas=0;

public abstract void hidupkan();

public abstract void matikan();

public abstract void dinginkan();

public abstract void panaskan(); }

File AC.java

class AC implements KontrolAC{

int statusAC = 0;

int suhuAC = 0;

public void hidupkan(){

if (this.statusAC == mati)

{ this.statusAC = hidup; System.out.println(“Hidupkan AC!”); }

Else { System.out.println(“AC sudah dihidupkan!”); }}

public void matikan(){

if (this.statusAC == hidup) {

this.statusAC = mati; System.out.println(“Matikan AC!”); }

else { System.out.println(“AC sudah dimatikan!”); }}

public void dinginkan(){

if (this.suhuAC == panas) {

this.suhuAC = dingin; System.out.println(“Dinginkan suhu AC!”); }

else {System.out.println(“Suhu AC sudah didinginkan!”);}}

public void panaskan(){

if (this.suhuAC == dingin){

this.suhuAC = panas; System.out.println(“Panaskan suhu AC!”); }

else { System.out.println(“Suhu AC sudah dipanaskan!”); }}}

File ACberaksi.java

public class ACberaksi{

public static void main(String[] args){

AC ACRuangan = new AC();

System.out.println(“Status AC Saat Ini: Mati”);

System.out.println(“Suhu AC Saat Ini: Panas”);

System.out.println(“========================”);

ACRuangan.hidupkan();

ACRuangan.dinginkan();

System.out.println(“========================”);

ACRuangan.hidupkan();

ACRuangan.dinginkan();

System.out.println(“========================”);

ACRuangan.panaskan();

ACRuangan.matikan();

System.out.println(“========================”);

ACRuangan.matikan();

ACRuangan.panaskan(); }}

Iklan

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

Kategori

%d blogger menyukai ini: