Selasa, 13 April 2010

pengertian polymorphisme, inheritance, enkapsullasi beserta contoh

PENDEFINISIAN TENTANG INHERITANCE DAN POLIMORPHISME

1. Inheritance (Pewarisan)

inheritance (penurunan sifat / pewarisan), ini merupakan ciri khas dari OOP yang tidak terdapat pada pemrograman prosedural gaya lama. Dalam hal ini, inheritance bertujuan membentuk obyek baru yang memiliki sifat sama atau mirip dengan obyek yang sudah ada sebelumnya (pewarisan). Obyek turunan dapat digunakan membetuk obyek turunan lagi dan seterusnya. Setiap perubahan pada obyek induk, juga akan mengubah obyek turunannya. Susunan obyek induk dengan obyek turunannya disebut dengan hirarki obyek.

Atau Inheritance yaitu pewarisan sifat-sifat suatu object kepada object turunannya.

Contoh program javanya :

Simpan dengan nama SmartMahasiswa.java

Public class SmartMahasiswa extends Mahasiswa{

}

Simpan dengan nama Main.java

public class Main{

public static void main(String[] args]) {

SmartMahasiswa mhs = new SmartMahasiswa();

mhs.setNim(“1400012”);

mhs.setNama(“Kudiantoro Widianto”);

mhs.printNim();

mhs.printNama();

}

}

kemudian jalankan

C:\>javac SmartMahasiswa.java

C:\>javac Main.java

C:\>java Main

Kontruksi objek mahasiswa

Nim:1400012

Nama:Kudiantoro Widianto

C:\>

2. Polymorphic (Banyak bentuk)

Polymorphism, suatu aksi 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.

Atau Polymorphic dapat berarti banyak bentuk, maksudnya yaitu kita dapat menimpa (override), suatu method, yang berasal dari parent class (super class) dimana object tersebut diturunkan, sehingga memiliki kelakuan yang berbeda.

Contoh program java nya :

Simpan dengan nama CoolMahasiswa.java

public class CoolMahasiswa extends Mahasiswa{

public void printNama(){

System.out.println(“Hallo, saya Mahasiswa yg cool n oke”);

Super.printNama();

}

}

Simpan dengan nama Main.java

public class Main{

public static void main(String[] args]) {

CooltMahasiswa mhs = new CoolMahasiswa();

mhs.setNim(“1400012”);

mhs.setNama(“Kudiantoro Widianto”);

mhs.printNim();

mhs.printNama();

}

}

Kemudian compile dan run.

C:\>javac CoolMahasiswa.java

C:\>javac Main.java

C:\>java Main

Kontruksi objek mahasiswa

Nim:1400012

Hallo, saya Mahasiswa yg cool n oke

Nama:Kudiantoro Widianto

C:\>

Terlihat bahwa disini kita mengoverride method printNama(), dengan menambahkan beberapa teks tambahan, sehingga method printNama(), pada class CoolMahasiswa, memiliki perilaku yang berbeda dengan class Mahasiswa.

PENDEFINISIAN OVERRIDING DAN OVERLOADING

Override

1. Mendefinisikan method dengan nama sama pada class yang berbeda.
2. Konsep dapat di manfaatkan dalam beberapa kasus inheritance, di mana menginginkan penamaan method dengan nama sama namunberbeda dalam impelementasinya.

Contohnya :

class Kendaraan {

…………..

public String getJenis() {

System.out.println(“Harga BBM turun”);

}

}

class Motor extends Kendaraan {

…………..

public String getJenis() {

System.out.println(“Harga BBM premium 4000 rupiah”);

}

}

NB dari contoh program di atas dapat di jelaskan sebagai berikut:

* class motor mengextends class kendaraan
* class motor melakukan override method di kendaraan namun berbeda implementasi

Kesimpulan:

* Override method merupakan method yang sama persis dengan method yang sudah ada di super kelasnya, biasanya perbedaannya adalah pada implementasi (program body)
* Overidding tidak bisa dilakukan dalam kelas itu sendiri
* Jadi Overidding kerat kaitannya dengan inheritance (pewarisan)

Overload

1. mendefinisikan method dengan nama sama dalam satu class.
2. Konsep sering di gunakan dalam penggunaan constructor.

Dalam pemrograman Java, mungkin kita seringkali menginginkan pembuatan lebih dari satu method dengan nama sama tetapi dengan daftar parameter yang berbeda. Ini disebut overloading method. Overloading method digunakan untuk melayani sifat polimorfik Java. Contoh berikut ini adalah versi class Point yang menggunakan overloading method untuk menghasilkan konstuktor alternatif yang membuat beberapa nilai default untuk koordinat x dan y.

Contoh programnya :

class Point {

int x;

int y;

Point(int x, int y) {

this.x = x;

this.y = y;

}

Point() {

x = -1;

y = -1;

}

}

class PointCreateAlt {

public static void main(String args[] ) {

Point p = new Point();

System.out.println(“x = ” + p.x +” y =” + p.y);

}

}



Enkapsulasi Java
Enkapsulasi adalah suatu cara untuk menyembunyikan informasi detail dari suatu class. Dua hal yang mendasar dalam enkapsulasi yakni :
• Information hiding.
• Interface to access data.
Information hiding
Sebelumnya kita dapat mengakses anggota class baik berupa atribut maupun method secara langsung dengan menggunakan objek yang telah kita buat. Hal ini dikarenakan akses kontrol yang diberikan kepada atribut maupun method yang ada di dalam class tersebut adalah 'public'. Kita dapat menyembunyikan informasi 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.
Interface to access data
Jika kita telah melakukan information hiding terhadap suatu atribut pada suatu class, lalu bagaimana cara melakukan perubahan terhadap atribut yang kita sembunyikan tersebut, caranya adalah dengan membuat suatu interface berupa method untuk menginisialisasi atau merubah nilai dari suatu atribut tersebut.

Implementasi UML
Berikut ini kita akan coba untuk lebih memahami penggunaan konsep enkapsulasi dengan mengimplementasikan UML berikut :
UML Vehicle class with no hiding
Vehicle class berisi atribut yang mempunyai modifier public(+), sehingga TestVehicle1 sebagai test program mempunyai akses langsung terhadap atribut pada Vehicle.
Listing program - Vehicle.java
public class Vehicle{
public double load, maxLoad;
public Vehicle (double maxLoad){
maxLoad = maxLoad + load;
}
public double getLoad(){
return load;
}
public double getMaxLoad(){
return maxLoad;
}
}
Listing program - TestVehicle.java
public class TestVehicle{
public static void main(String[] args){
System.out.println("Creating a vehicle with a 10,000kg maximum load.");
Vehicle vehicle = new Vehicle(10000.0);
System.out.println("Add box #1 (500kg)");
vehicle.load = vehicle.load + 500.0;
System.out.println("Add box #2 (250kg)");
vehicle.load = vehicle.load + 250.0;
System.out.println("Add box #3 (5000kg)");
vehicle.load = vehicle.load + 5000.0;
System.out.println("Add box #4 (4000kg)");
vehicle.load = vehicle.load + 4000.0;
System.out.println("Add box #4 (300kg)");
vehicle.load = vehicle.load + 300.0;
System.out.println("Vehicle load is = " +vehicle.getLoad() + "kg");
}
}
Compile Vehicle.java dan TestVehicle.java lalu jalankan TestVehicle.java. Seharusnya akan keluar tampilan sebagai berikut :
Analisa program
Kita lihat bahwa pada output program tersebut kita menginisialisasi batas maximum load 10,000 kg,
Vehicle vehicle = new Vehicle(10000.0);
akan tetapi dengan memberikan akses kontrol / modifier public pada atribut class Vehicle
public double load, maxLoad;
kita dapat mengakses langsung atribut class yang seharusnya perlu diberi pengecekan agar tidak sampai melebihi maxload
vehicle.load = vehicle.load + 500.0;
maka dapat mengakibatkan masalah(trouble) yakni batas maximum load yang kita buat tidak berpengaruh apapun sehingga terdapat penambahan boxes yang melebihi kapasitas(10050.0kg) dikaernakan tidak ada pengecekan kapasitas maksismum.
UML Vehicle class with hiding
Vehicle class berisi atribut yang mempunyai modi_er public, sehingga TestVehicle1 sebagai test program mempunyai akses langsung terhadap atribut pada Vehicle.
Listing program - Vehicle.java
public class Vehicle1{
private double load, maxLoad;
public Vehicle1 (double max){
this.maxLoad = max;
}
public double getLoad(){
return this.load;
}
public double getMaxLoad(){
return this.maxLoad;
}
public boolean addBox(double weight){
double temp = 0.0D;
temp = this.load + weight;
if(temp <= maxLoad){
this.load = this.load + weight;
return true;
}
else{
return false;
}
}
}
Listing program - TestVehicle.java
public class TestVehicle1{
public static void main(String[] args){
System.out.println("Creating a vehicle with a 10,000 kg maximum load.");
Vehicle1 vehicle = new Vehicle1(10000);
System.out.println("Add box #1 (500kg) : " + vehicle.addBox(500));
System.out.println("Add box #2 (250kg) : " + vehicle.addBox(250));
System.out.println("Add box #3 (5000kg) : " + vehicle.addBox(5000));
System.out.println("Add box #4 (4000kg) : " + vehicle.addBox(4000));
System.out.println("Add box #5 (300kg) : " + vehicle.addBox(300));
System.out.println("Vehicle load is " +vehicle.getLoad() + "kg");
}
}
Compile Vehicle1.java dan TestVehicle1.java lalu jalankan TestVehicle1.java. Maka akan keluar tampilan sebagai berikut :
Analisa program
Kita lihat bahwa pada output program tersebut pada penambahan box ke-5 terjadi kelebihan kapasitas maksimal sehingga method addBox mengembalikan nilai false, dalam arti bahwa terjadi penolakan terhadap penambahan box ke 5.

Sabtu, 07 November 2009

BERFIKIR DAN BERJIWA BESAR

Teknik-teknik Dasar dalam Menangani Manusia
- Jangan mengkritik, mencerca atau mengeluh.
- Berikan penghargaan yang jujur dan tulus.
- Bangkitkan minat pada diri orang lain.


Enam Cara untuk Membuat Orang Lain Menyukai Anda
- Jadilah sungguh-sungguh berminat terhadap orang lain.
- Tersenyumlah.
- Ingatlah, nama seseorang adalah hal paling mengesankan dan paling penting bagi orang itu dalam bahasa apapun.
- Jadilah pendengar yang baik, dorong orang lain untuk berbicara tentang diri mereka.
- Bicarakan minat-minat orang lain.
- Buat orang lain merasa penting, dan lakukan itu dengan tulus.


Memikat Orang Lain Mengikuti Cara Berpikir Anda
- Satu-satunya cara untuk memperoleh manfaat paling banyak dari perdebatan adalah menghindari perdebatan itu sendiri.
- Perlihatkan respek terhadap pendapat orang lain. Jangan pernah berkata " Anda salah !!! ".
- Kalau Anda salah, akuilah dengan cepat dan simpatik.
- Mulailah dengan cara yang ramah.
- Usahakan orang lain mengucapkan " Ya, Ya " dengan segera.
- Biarkan orang lain yang lebih banyak berbicara.
- Biarkan orang lain merasa bahwa itu adalah idenya.
- Cobalah dengan sungguh-sungguh melihat segala sesuatu dari sudut pandang orang lain.
- Bersimpatilah dengan ide dan hasrat orang lain.
- Imbaulah motif-motif yang lebih mulia.
- Dramatisir ide-ide Anda.
- Lemparkan tantangan.

Menjadi Pemimpin
- Mulailah dengan pujian dan penghargaan yang jujur.
- beritahu kelemahan orang lain dengan cara tidak langsung.
- Bicarakan kesalahan Anda dulu sebelum mengkritik orang lain.
- Ajukan pertanyaan sebagai ganti memberi perintah langsung.
- Biarkan orang lain menyelamatkan muka.
- Pujilah peningkatan sekecil apapun dan pujilah setiap peningkatan.

Jadilah "Tuluslah dalam penerimaan Anda dan murah hati dalam penghargaan Anda".
- Beri orang lain reputasi yang baik untuk mereka penuhi.
- Gunakan dorongan. Buatlah kesalahan tampak mudah diperbaiki.
- Buat orang lain senang mengerjakan hal yang Anda sarankan.

Membangun kedalaman GOLD LION dalam satu bulan

Siapa bilang bisnis TIENS itu sulit ?
Itu karena anda belum PAHAM caranya.
Bisnis TIENS sangat sederhana sekali, seperti apa yang sudah diterangkan dalam cara menjadi member.

Jaringan kami mengadopsi SISTIM 4 KOMUNITAS, yang mungkin saja baru Anda dengar kali ini.

Ya, ini merupakan sebuah pengembangan terbaru dari kami yang telah membuat para distributor baru TIENS dapat mempunyai 4 DOWNLINE dengan minimal 2 kedalaman dalam waktu tidak lebih dari 2 minggu.

Mengapa demikian ?
Karena sistem terbaru kami sangat mudah diduplikasi oleh rekan-rekan yang telah menjadi member TIENS dalam jaringan kami.

*4 dalam satu minggu itu sudah biasa.
Kini kami akan mencoba menerapkan Sistim baru kami agar para distributor baru dapat menjadi *5 dalam waktu 2-3 minggu.

Anda ingin tahu lebih lanjut tentang 4 KOMUNITAS & mencobanya ?
Silakan join *1, tidak perlu *3.

NEW YORK – Semakin besar ukuran otak manusia, bukan berarti makin pintar. Justru itu tanda-tanda berkembangnya autisme. Tim ilmuwan dari University of North Carolina, Chapel Hill telah menganalisis otak dari 51 anak penderita autis dan 25 anak normal. Mereka berusia antara 18-35 bulan. Tim ini juga melakukan studi terhadap ukuran lingkar kepala 113 anak penderita autis dan 189 anak sehat.

“Pembesaran yang cukup signifikan terdeteksi pada volume celebral cortex otak penderita autis,” papar hasil studi tersebut. “Pembesaran terjadi pada area abu-abu dan putih.”

Celebral cortex adalah lapisan area abu-abu yang berada pada bagian depan otak. Bagian ini adalah tingkat tinggi dalam otak kita, memiliki fungsi penting. Bagian inilah yang merupakan pengontrol gerakan otot dan aktivitas lain.
Pada penderita autis juga ditemukan bahwa lingkar kepala mereka berukuran normal pada saat lahir. Tapi terjadi pembesaran yang signifikan mulai sekitar usia 12 bulan. Selanjutnya, kesimpulan dari studi ini adalah, bagian abu-abu dan putih celebral cortex pada anak autis membesar pada usia dua tahun.

Dengan temuan ini, autis pada anak-anak bisa dideteksi sejak awal. Apabila kasus autis mampu dideteksi lebih dini, penanganannya bisa dilakukan sejak awal pula. Mayoritas kasus autis banyak yang terlambat diketahui. Orang tua biasanya kurang tanggap bahwa anaknya menderita autis, sebab memang agak sulit mengenali gejala autis dengan keterlambatan belajar.

JAKARTA – Para peneliti yang peduli dengan para penderita kanker, kini mencoba membudidayakan tumbuhan brokoli dengan ukuran super.
Hal ini diharapkan bisa menurunkan angka kesakitan terhadap penyakit tersebut.

Brokoli dipercaya bisa menghindarkan seseorang dari penyakit kanker. Hal itu juga yang diyakini Institut Penelitian mengenai Makanan (IRF) di Inggris. Menurut mereka, brokoli yang berwarna hijau itu, memiliki unsur kimia bernama sulforaphane yang dipercaya bisa menahan efek berkelanjutan dari kanker.

Karena asumsi itu pula, berarti secara logika, bila kita bisa memproduksi tumbuhan ini dalam kapasitas super, maka unsur kimia yang disebutkan tadi juga akan berkapasitas dan berdaya guna lebih besar. “Mengonsumsi brokoli dengan porsi besar atau brokoli dengan level sulforaphane tinggi, kemungkinan para penderita kanker bisa lebih minimal mengalami potensi kesakitan,” ucap Koordinator Penelitian, Profesor Richard Mithen, pada situs BBC,
baru-baru ini.

Brokoli dikenal sebagai keluarga sayuran yang sejenis dengan kubis, kol dan kangkung. Kebanyakan sayuran tersebut mengandung unsur glucosinolates berkadar tinggi. Selain itu, jenis sayuran yang memiliki unsur sulforaphane, dipercaya sebagai satu-satunya obat penekan penyebaran kanker dalam tubuh.

Super brokoli diperkirakan berukuran paling tidak lebih besar tiga perempat kali jenis brokoli biasa.

Rabu, 04 November 2009

COBA-COBA

TES