Sunday 7 September 2014

OOP CONCEPT

OOP CONCEPT


Konsep Pemrogramman Berorientasi Objek

     
OOP populer pada masa kini menjadikan objek sebagai komponen utama dalam program. Objek menggabungkan data dan fungsi sebagai satu kesatuan sedangkan pada pemrogramman yang tidak berorientasi pada objek, fungsilah yang menjadi perhatian utama.

Fungsi adalah subprogram atau sekumpulan kode (instruksi) yang diberi suatu nama tersendiri.

    OOP membuat pengembangan program dapat dilakukan dengan lebih mudah, mengurangi duplikasi kode serta mengulangi kesalahan.


OOP mempunyai 2 istilah yang sangat terkenal yaitu kelas dan objek, dengan pengertian dibawah ini,

Kelas itu cetakan kue

Kelas itu cetakan untuk objek

Seperti halnya cetakan kue, sejumlah kuenya dapat diciptakan dengan menggunakan sebuah cetakan, jadi sebuah kelas dapat mempunyai 1 atau beberapa objek.

Contoh sebuah kelas adalah mobil sedangkan objeknya dapat memiliki data seperti merk mobil, warnanya, produsen, noor mesin dan atribut lainnya yang berhubungan dengan mobil. Metode yang dimiliki objek berkelas mobil dapat berupa cara menghidupkan mesin dan mengganti perseneling

Setiap objek memiliki dua karakteristik yaitu Attribute (State) dan Behavior. Attribute (State) merupakan identitas atau informasi objek itu sendiri atau disebut juga sebagai variable, sedangkan Behavior adalah tingkah laku atau apa yang dapat dilakukan oleh objek itu atau disebut juga sebagai method.
Sebagai contoh Attribute (State) dari pesawat adalah nama pesawat, tipe, warna, tahun produksi, roda, dll. Sedangkan Behavior dari pesawat adalah cara menghidupkan mesin, cara menerbangkan pesawat (take off), cara menurunkan pesawat (landing), dll.
Contoh :
- Titik
Titik merupakan sebuah objek yang terdiri dari posisi x dan posisi y
- Persegipanjang
Persegipanjang merupakan objek yang mempunyai panjang dan lebar

Class

      Kelas merupakan cetakan atau blueprint atau prototype, hasil dari cetakan itu disebut objek. Contoh pesawat Boeing 737 dibuat dengan rancangan yang sama, rancangan pesawat ini disebut kelas. Hasil rancangan itu menjadi pesawat Boeing 737 yang disebut objek. Pesawat-pesawat hasil rancangan tadi bisa memiliki warna, nama yang berbeda-beda tergantung perusahaan penerbangannya. Disini jelas bahwa objek memiliki sifat independen. Objek adalah instance dari kelas, satu kelas bisa memiliki beberapa objek.

Instan (Instance)

Kelas yang telah terdefinisi dapat dijalankan (run-time) dalam bentuk instan di memori.

Contoh : 

PersegiPanjang pp = new PersegiPanjang();

Maksud dari perintah di atas adalah sebagai berikut :

- Instan pp merupakan sebuah objek kelas PersegiPanjang dimana pp dibentuk oleh konstruktor Persegipanjang();
- Konstruktor (Constructor) merupakan sebuah method dimana nama method tersebut sama dengan nama kelas. Konstruktor tidak mengembalikan nilai tetapi dapat dilewati atau diberikan parameter.
- Instan pp berjalan pada memory komputer.

Method

      Method atau fungsi atau operasi atau behaviour merupakan perintah-perintah prosedural yang ditempatkan pada kelas untuk mendapat hasil dari perintah-perintah tersebut.

Pengiriman Pesan (Message Passing)

     Setiap objek dapat menerima atau mengirimkan pesan. Pesan-pesan tersebut bukan hanya berbentuk primitif variable (integer, double, dll), tetapi pesan-pesan tersebut dapat berupa objek lainnya.
Contoh :
pp.setPanjang(10);
Maksud perintah diatas adalah sebagai berikut :
pp diberikan nilai panjan sebesar 10.

Menggunakan Objek

   Objek dibuat dengan mula-mula membuat variabel yang kelak merujuk ke objek atau disebut dengan variabel objek. Selanjutnya objek diciptakan melalui new dan hasilnya ditugaskan ke variabel objek

Contoh :

import java.util.Date;


public class ObjekTanggal{

public static void main (String[ ] args){

Date waktuSekarang = new Date ( );


System.out.println(“Isi Waktu Sekarang: “+waktuSekarang);

}

}

Date adalah kelas yang disediakan Java yang berhubungan dengan tanggal dan waktu. Kelas ini terdapat pada paket java.util.Date








Menciptakan Kelas

Kelas pada Java didefinisikan dengan menggunakan kata kunci class, contoh penulisannya,

class Mobil {

String warna;

Int tahunProduksi;

}

Kelas yang dibuat bernama Mobil. warna dan tahunProduksi disebut variabel instan atau field


Menggunakan Kelas Dalam Program

Contoh :

class Mobil {

String warna;

Int tahunProduksi;

}

public class KelasMobil {

public static void main(String[ ] args) {

Mobil mobilku = new Mobil ();


//Variabel Instannya

mobilku.warna = “merah”;

mobilku.tahunProduksi = 2003;


//Menampilkan Variabel Instannya

System.out.println(“warna :”+mobilku.warna);

System.out.println(“Tahun :”+mobilku.tahunProduksi);

}

}


Pernyataan dibawah ini digunakan untuk mendeklarasikan variabel mobilku yang merujuk ke objek berkelas Mobil.

Mobil mobilku = new Mobil ();


Pernyataan dibawah ini digunakan untuk memasukkan string “Merah” ke variabel instan warna yang merupakan milik objek yang dirujuk oleh variabel objek mobilku.

mobilku.warna = “merah”;



Kelas Dengan Metode

Sebuah kelas umumnya tersusun atas variabel instan dan metode untuk objek.

Metode adalah fungsi (subprogram) yang melekat pada sebuah objek atau instan kelas.

Contoh :

class Mobil{


//variabel instan

String warna;

int tahunProduksi;


//metode

void isiData(String warnaMobil,int tahunProduksiMobil){ //digunakan untuk

mengisikan data warna dan tahunProduksi

warna = warnaMobil; //digunakan untuk

mengisikan nilai parameter

warnaMobil ke variabel instan warna

tahunProduksi = tahunProduksiMobil;

}

String ambilWarna(){

return warna;

}

int ambilTahunProduksi(){

return tahunProduksi;

}

}

public class KelasMobil1{

public static void main(String[] args){

Mobil mobilku=new Mobil();


//isi variabel instan

mobilku.isiData(“Merah”,2003);


//Tampilin isi variabel instan

System.out.println(“Warna :”+mobilku.ambilWarna());

System.out.println(“Tahun :”+mobilku.ambilTahunProduksi());

}

}

Kata kunci void didepan metode isiData() menyatakan bahwa metode ini tidak mempunyai nilai balik.

Nilai balik adalah nilai yang diberikan oleh metode ketika dipanggil.

Metode ambilWarna() digunakan untuk memperoleh isi variabel instan warna. Oleh karena itu didepan nama ambilWarna terdapat kata String yang menyatakan nilai balik metode ini. Sedangkan pernyataan dibawah ini,

return warna;


Merupakan pernyataan untuk memberikan nilai balik metode ini. Dalam hal ini nilai pada warna lah yang menjadi nilai baliknya, perlu diketahui, return menyebabkan ekseskusi terhadap metode segera diakhiri.


Kata Kunci This

This dipergunakan pada pembuatan kelas dan digunakan untuk menyatakan objek sekarang, contoh ;


class Mobil{


//variabel instan

String warna;

int tahunProduksi;


//metode

void isiData(String warna,int tahunProduksi){

this.warna = warna;

this.tahunProduksi = tahunProduksi;

}

}

public class KelasMobil2{

public static void main(String[] args){

Mobil mobilku=new Mobil();


//isi variabel instan

mobilku.isiData(“Merah”,2003);


//Tampilin isi variabel instan

System.out.println(“Warna :”+mobilku.warna);

System.out.println(“Tahun :”+mobilku.tahunProduksi);

}

}

Lingkup Variabel

Bila dalam suatu metode terdapat pemanggilan terhadap suatu variabel, Java menggunakan konsep sebagai berikut ;

Mula-mula variabel akan dianggap berada pada lingkup blok sekarang, jika tidak ada Java akan mencarikannya pada blok yang lebih luar, begitu seterusnya. Berdasarkan lingkup variabel seperti ini, dimungkinkan untuk membuat variabel yang bersifat lokal.


Contoh :

class Lingkup {


//variabel instan

String warna=”Merah”;


//metode

void infoLingkup(){

String warna=”Biru”;

System.out.println(“warna pada metode:”+warna);

System.out.println(“warna milik kelas:”+this.warna);

}

}


public class LingkupVariabel{

public static void main (String[] args){

Lingkup varx=new Lingkup();

varx.infoLingkup();

}

}


Perhatikan bahwa warna dideklarasikan pada kelas Lingkup sebagai variabel instan maupun pada metode infoLingkup(). Pada keadaan seperti ini, penyebutan warna pada infoLingkup() akan diinterprestasikan sebagai variabel lokal pada metode tersebut.

Seandainya pada keadaan seperti itu dikehendaki untuk menyebut variabel instan warna didalam metode infoLingkup(), yaitu dengan menambahkan kata kunci this seperti berikut : this.warna

Penentu Akses : Private dan Public

Pada OOP akses terhadap suatu variabel instan diluar kelas, biasanya tidak diperkenankan, sebagai penggantinya disediakan metode yang diperlukan untuk mengakses variabel instan.

Berkaitan dengan boleh tideknya suatu variabel instan diakses dari luar kelas, Java menyediakan penentu akses. Dua diantara penentu akses yang tersedia adalah private dan public.

Ø Private berarti bahwa pengaksesan suatu variabel instan atau metode hanya dapat dilakukkan didalam kelas (tidak bisa diakses dari luar kelas)

Ø Public berarti bahwa pengaksesan suatu variabel instan atau metode dapat dilakukkan dari luar kelas.


Contoh : pengambilan nama siswa baik melalui metode yang disediakan untuk keperluan tersebut maupun variabel instan.

class Siswa{


//variabel instan

String nama;


//metode

void isiData(String nama){

this.nama=nama;

}


String ambilNama(){

return this.nama;

}

}


public class PenentuAkses{

public static void main(String[] args){

Siswa siswa1=new Siswa();


//isi variabel instan

siswa1.isiData(“Lia Damayanti”);


//menampilkan nama siswa melalui metode

System.out.println(“Nama:”+siswa1.ambilNama());


//menampilkan naa siswa melalui variabel

System.out.println(“Nama:”+siswa1.nama);

}

}


Sekarang kita gunakan private sebagai penentu akses pada variabel instan nama. Yaitu dengan menambahkan kata kunci private didepan deklarasi nama, sebagai berikut :

private String nama;

Selanjutnya simpanlah dan kemudian kompilasilah, maka akan ada kesalahan seperti berikut :

C:\Documents and Settings\YAYA\My Documents\STTBI\Object Oriented Programming\Materi Blog\PenentuAkses.java:27: nama has private access in Siswa System.out.println(“Nama:”+siswa1.nama);

^

Begitulah cara perlu diterapkan kalau dikehendaki agar pengaksesan terhadap variabel instan diluar kelas tidak diperkenankan. Dengan demikian pengaksesan data harus dilakukkan melalui pemanggilan metode.


Bagaimana dengan public, untuk mengetahui efeknya coba kita ubah dari private menggunakan public sehingga pernyataan menjadi :


public String nama;


selanjutnya kompilasilah, kita tidak akan menemui kesalahan seperti menggunakan private, lalu eksekusi program tersebut, kita akan mendapatkan hasil sama seperti tidak menggunakan public.

Sekilas terlihat bahwa suatu variabel yang tidak diberi penentu akses apapun, variabel tersebut memiliki sifat yang sama dengan kalau diberi penentu kases public. Namun sebenarnya variabel tersebut memiliki makna yang berbeda. Kita dapat melihat dibawah perbedaannya :


Perbedaan pubic, private dan tanpa penentu akses pada variabel

Ø Tanpa penentu akses, variabel dapat diakses oleh kelas yang berada dalam paket yang sama

Ø Public, variabel dapat diakses pada semua kelas yang menggunakan kelas yang berisi variabel tersebut

Ø Private, hanya dapat diakses oleh metode-metode dalam kelas itu sendiri

Perbedaan pubic, private dan tanpa penentu akses pada metode

Ø Tanpa penentu akses, metode hanya dapat diakses oleh metode dalam kelas itu sendiri ataupun metode pada kelas lain yang terletak pada paket yang sama.

Ø Public, metode dapat diakses oleh sembarang kelas.

Ø Private, hanya dapat diakses oleh metode-metode dalam kelas yang sama.

Metode Kelas

Contoh :

public class MetodeKelas {

public static void main(String[] args){


double akar=Math.sqrt(25); //sqrt() untuk menghitung akar kuadrat

System.out.println(akar);

}

}

Program diatas tidak terdapat penciptaan objek. Math adalah nama kelas yang tersedia pada Java yang berkaitan dengan penanganan sebagai operasi matematika.

Sumber: http://rhiq.wordpress.com/ , http://juni-ana-prihati.blogspot.com/

No comments:

Post a Comment

Back to top