OOP CONCEPT
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