Dalam postingan saya kali ini,, saya akan membuat suatu program JAVA dimana proses pengerjaannya pada aplikasi ECLIPSE,, yang akan memperkenalkan seluk beluk atau bagian-bagian dari PBO.
Dimana PBO adalah (PEMROGRAMAN BERORIENTASI OBJEK) ,, yang terdiri dari 5 unsur yaitu :
1. Turunan/Pewarisan/Inheritance
1. Turunan/Pewarisan/Inheritance
2. Perubahan bentuk/Polymorphisme
3. Pembungkusan / Tingkat - Akses / Encapsulation
yang terdiri dari 2 macam :
- OverLoading/ OverLoad
- OverRiding/ OverRide
4. Modifier
Begitu pula dengan modifier yang terdiri dari 2 macam ,, yaitu :
- Static
- Final
5. Abstract & Interface
Nah,, sekarang ayo kita mulai membuat programnya,, agar kita dapat lebih memahami konsep dari PBO...
Pertama-tama
1. Turunan
Pertama-tama
- Buka aplikasi ECLIPSE
- Buat java File - New - Other - GUI Forms - Swing - JFRAME
- Beri nama class - nya ,, lalu klik Finish
1. Turunan
Buat Class dari masing-masing button pada JPanel1 Turunan/Pewarisan
String nama, stmMakan, stmKerja, stmTugas, stmTidur;
Manusia(String n){
this.nama = n;
}
String tampilkanNama(){
return nama;
}
String makan(){
return stmMakan="hem...enyak..enyak..enyak...!!!";
}
String kerja(){
return stmKerja="kerja..kerja..kerja...!!!";
}
String tidur(){
return stmTidur="ZZzzz...!!!";
}
}
- Class Manusia
String nama, stmMakan, stmKerja, stmTugas, stmTidur;
Manusia(String n){
this.nama = n;
}
String tampilkanNama(){
return nama;
}
String makan(){
return stmMakan="hem...enyak..enyak..enyak...!!!";
}
String kerja(){
return stmKerja="kerja..kerja..kerja...!!!";
}
String tidur(){
return stmTidur="ZZzzz...!!!";
}
}
- Class Siswa
- Class Guru
Method Button :
private void ManusiaActionPerformed(ActionEvent evt) {
Manusia dahlan=new Manusia("Dahlan Iskan");
jTextArea1.setText("Nama = "+dahlan.tampilkanNama()+
"\n"+dahlan.makan()+"\n"+dahlan.kerja()+"\n\n"+dahlan.tidur());
}
private void SiswaActionPerformed(ActionEvent evt) {
Siswa angga = new Siswa("Si Ali");
jTextArea1.setText("Nama = "+angga.tampilkanNama()+
"\n"+angga.makan()+"\n"+angga.kerja()+"\n\n"+angga.tidur());
}
private void GuruActionPerformed(ActionEvent evt) {
Guru hadi=new Guru("M Hadi Wijaya");
jTextArea1.setText("Nama Guru = "+hadi.tampilkanNama()+
"\nSifat Turunan = "+hadi.makan()+"\nSifat Overrides = "+
hadi.kerja()+"\nSifat Asli = "+hadi.tugas(null));
}
private void ObjectArrayActionPerformed(ActionEvent evt) {
Manusia[] profesi=new Manusia[3];
profesi[0] = new Siswa("Angga Darmawan");
profesi[1] = new Guru("Hadi Wijaya");
profesi[2] = new Manusia("Simonchelli");
String statement1="Nama Siswa = "+profesi[0].tampilkanNama()+
"\n"+"Nama Guru = "+profesi[1].tampilkanNama()+
"\nNama Manusia (pembalap) = "+profesi[2].tampilkanNama();
String statement2="\n\n\n\n\nPekerjaan siswa = "+profesi[0].kerja()+
"\nPekerjaan guru = "+profesi[1].kerja()+
"\nPekerjaan pembalap = "+profesi[2].kerja();
jTextArea1.setText(statement1+statement2);
}
2. Perubahan Bentuk
public class Mobil {
public String merek,st;
Mobil(String m){
this.merek=m;
st=this.merek+" adalah kendaraan beroda 4 ";
}
//procedure bergerak
String bergerak(String arah){
String a="melaju ke arah "+arah;
return a;
}
//overload procedure bergerak
String bergerak(String arah,int jauh){
String a="melaju ke arah "+arah+" sejauh "+jauh+" km ";
return a;
}
}
Class Bentuk3D
public class Bentuk3D {
double panjang,lebar,tinggi;
//konstruktor pertama
Bentuk3D(double pj){
this.panjang=pj;
this.lebar=1;
this.tinggi=1;
}
//konstruktor kedua
Bentuk3D(double pj,double lb){
this.panjang=pj;
this.lebar=lb;
this.tinggi=1;
}
//konstruktor ketiga
Bentuk3D(double pj,double lb,double tg){
this.panjang=pj;
this.lebar=lb;
this.tinggi=tg;
}
}
Method Button :
private void Bentuk3D-1ActionPerformed(ActionEvent evt) {
Bentuk3D bentuk=new Bentuk3D(3.5);
jTextArea3.setText("Panjang = "+bentuk.panjang+"\nLebar = "+
bentuk.lebar+"\nTinggi = "+bentuk.tinggi);
}
private void Bentuk3D-2ActionPerformed(ActionEvent evt) {
Bentuk3D bentuk=new Bentuk3D(3.5,2.4);
jTextArea3.setText("Panjang = "+bentuk.panjang+"\nLebar = "+
bentuk.lebar+"\nTinggi = "+bentuk.tinggi);
}
private void Bentuk3D-3ActionPerformed(ActionEvent evt) {
Bentuk3D bentuk=new Bentuk3D(3.5,2.4,4.7);
jTextArea3.setText("Panjang = "+bentuk.panjang+"\nLebar = "+
bentuk.lebar+"\nTinggi = "+bentuk.tinggi);
}
private void MobilActionPerformed(ActionEvent evt) {
Mobil kijang=new Mobil("Kijang Innova");
jTextArea3.setText(kijang.st+"\n"+kijang.bergerak("depan")+"\n"+
kijang.bergerak("belakang",3));
}
3. Tingkat - Akses
Buat Class Resep
public class Resep {
//atribut private ini tidak bisa diisi langsung dari luar kelas..
private String jenis; //kebetulan digunakan Class ini sendiri
protected String namakue; //akan diakses oleh turunan
private String j2;//kebetulan digunakan Class ini sendiri
//konstruktor...langsung isi
Resep(String n){
this.namakue=n;
}
void isiJenis(String j){
this.jenis=j;
j2=this.namakue+" itu "+this.jenis;
} //function... method
String kadaluarsa(){
String tahan="";
if (jenis.equals("kue basah")){
tahan=j2+" -- > cepet kadaluarsa"; }
else{ tahan=j2+" --> lama kadaluarsanya.....";
}
//nilai yang dikembalikan..
return tahan;
}
}
Class Basah
public class Basah extends Resep {
private String a;
//konstruktor
Basah(String n){
super(n);
//methodnya...
isiJenis(kue(a));
}
//method untuk membedakan kue basah atau kering
String kue(String a){
if(this.namakue.equalsIgnoreCase("kue tart"))
a="kue basah";
else
a="kue kering";
return a;
}
}
Method Button :
private void KuetartActionPerformed(ActionEvent evt) {
Basah tart=new Basah("Kue Tart");
jTextArea2.setText(tart.kadaluarsa());
}
private void KueMarieActionPerformed(ActionEvent evt) {
Basah tart=new Basah("Kue Marie");
jTextArea2.setText(tart.kadaluarsa());
}
4. Modifier
Buat Class Sepeda
public class Sepeda {
//atribut static diinisialisasi...
static int jmlRoda = 2;
static String melaju(){
String b="Sepeda melaju dengan "+jmlRoda+" roda";
return b;
}
static String melaju(String a){
String b="Sepeda melaju dengan "+jmlRoda+" roda";
return b;
}
}
Method Button :
private void Statis1ActionPerformed(ActionEvent evt) {
//instansiasi pertama :)
//Sepeda motor = new Sepeda();
Sepeda.jmlRoda =2;
String stm1=("Jumlah Roda Motor = "+Sepeda.jmlRoda);
//instansiasi kedua :)
//Sepeda becak = new Sepeda();
Sepeda.jmlRoda = 3;
String stm2=("Jumlah Roda Becak = "+Sepeda.jmlRoda);
// apa yang terjadi ketika objek motor dipanggil lagi ...
String stm3=("Jreng..jreng...,apa yang terjadi pada jumlah roda motor...");
String stm4=("Jumlah Roda Motor = "+Sepeda.jmlRoda);
jTextArea5.setText(stm1+"\n"+stm2+"\n"+stm3+"\n"+stm4+"\n"+
Sepeda.melaju(null));
}
private void Statis2ActionPerformed(ActionEvent evt) {
//mengeset data langsung dr Class tanpa pembuatan objek
Sepeda.jmlRoda = 5;
jTextArea5.setText("Jumlah roda sepeda = "+Sepeda.jmlRoda);
}
5. Abstract & Interface
Buat Class Makhluk Hidup
public abstract class MakhlukHidup {
protected String nafas,berdiri;
public String bernafas() {
return nafas="RRrr...";
}
/* method di bawah ini harus dioverride oleh subclassnya...
* subclass-nya mengimplementasikan method ini :) */
protected abstract String jalan();
}
Class Animal
public class Animal extends MakhlukHidup {
public String jalan(){
return berdiri="berdiri tidak tegap...";
}
public String bernafas() {
return nafas="Ssss...";
}
}
Method Button :
private void AbstractActionPerformed(ActionEvent evt) {
Manusia andri=new Manusia("Andri Bagus Nugroho");
Animal kucing=new Animal();
//MakhlukHidup a = null;
String stm1=(andri.tampilkanNama()+"\n"+andri.makan()+"\n"+andri.jalan());
String stm2=("\n\nSi Puss"+" "+kucing.jalan()+"\n"+"kalo bernafas bersuara "+kucing.bernafas());
jTextArea4.setText(stm1+stm2);
}
private void InterfaceActionPerformed(ActionEvent evt) {
PencariIlmu toni = new PencariIlmu();
jTextArea4.setText("toni adalah objek PencariIlmu\n\nkerjaannya :\n"+toni.lakukanSesuatu()+"\n"+
toni.lakukanExtraSesuatu()+"\n"+
toni.lakukanJob());
}
~ Selamat mencoba :) ~
0 comments:
Posting Komentar