1. Buat Project dari Netbeans atau Eclipse (jigloo) dan beri nama “BelajarPBO_noAbs”.
2. Buat package “PBO_noAbsen”.
3. Buat Form dari jFrame dan desain seperti form tampak dibawah ini.
BUATLAH BEBERAPA CLASS, ABSTRACT DAN INTERFACE SEPERTI DIBAWAH INI:
1. Class Manusia
package PBO; //sesuaikan package anda
public class Manusia extends MakhlukHidup {
String nama,stmMakan,stmKerja,stmTugas,stmTidur;
//konstruktor
Manusia(String n){
this.nama = n;
}
//function mengembalikan nilai nama
String tampilkanNama(){
return nama;
}
//procedure makan
String makan(){
return stmMakan="hem...enyak..enyak..enyak...!!!";
}
//procedure kerja
String kerja(){
return stmKerja="kerja..kerja...kerja...!!!";
}
//procedure tidur
String tidur(){
return stmTidur="ZZzzz...!!!";
}
public String jalan(){
return berdiri="berdiri tegap...";
}
}
2. Class Siswa (Turunan dari Class Manusia)
package PBO; //sesuaikan package anda
public class Siswa extends Manusia{
//konstruktor Siswa
Siswa(String n){
//memanggil konstruktor Manusia
super(n);
}
//method override dari kelas Manusia
String kerja(){
return stmKerja="belajar...belajar...!!!";
}
String tidur(){
return stmTidur="Ngiler...!!!";
}
}
3. Class Guru (Turunan dari Class Manusia)
package PBO;//sesuaikan package anda
public class Guru extends Manusia {
Guru(String n){
super(n);
}
//method override dari kelas Manusia
String kerja(){
return stmKerja="mengajar...mengajar...!!!";
}
//method asli dari Guru
String tugas(String n){
return stmTugas="ayo kerjakan...kerjakan...!!!";
}
}
4. Class Bentuk3D
package PBO; //sesuaikan package anda
public class Bentuk3D {
double panjang,lebar,tinggi;
//konstruktor pertama
Bentuk3D(double pj){
this.panjang=pj;
this.lebar=1;
this.tinggi=1;
}
//konstruktor kedua (overload)
Bentuk3D(double pj,double lb){
this.panjang=pj;
this.lebar=lb;
this.tinggi=1;
}
//konstruktor ketiga (overload)
Bentuk3D(double pj,double lb,double tg){
this.panjang=pj;
this.lebar=lb;
this.tinggi=tg;
}
}
5. Class Mobil
package PBO; //sesuaikan package anda
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;
}
}
6. Class Resep
package PBO;
public class Resep {
//atribut private ini tidak bisa diisi langsung dari luar kelas..
private String jenis;
//atribut protected ini hanya bisa diisi dari subkelas..
protected String namakue;
private String j2;
//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;
}
}
7. Class Basah Turunan Resep
package PBO;
public class Basah extends Resep {
private String a;
//konstruktor
Basah2(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;
}
}
8. Class Sepeda
package PBO;
public class Sepeda {
//atribut static diinisialisasi...
static int jmlRoda = 2;
}
9. Class Abstract MakhlukHidup
package PBO;
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 :) */
public abstract String jalan();
}
10. Class Animal (Turunan dari Class Abstract MakhlukHidup)
package PBO;
public class Animal extends MakhlukHidup {
public String jalan(){
return berdiri="berdiri tidak tegap...";
}
}
11. Class Hitung
package PBO;
public class Hitung {
//atribut/variabel final yg tidak dapat di rubah
final double phi = 3.14;
int jari2;
//konstruktor
Hitung(int jari2){
this.jari2 = jari2; }
//method
String Luas(){
double luas=jari2*phi;
String luasString=String.valueOf(luas);
return luasString;
}
}
12. Interface Pekerja
package PBO;
//interface Pekerja hanya berisi method tanpa body
public interface Pekerja {
String lakukanJob();
}
13. Interface Orang
package PBO;
//interface Orang hanya berisi method tanpa body
public interface Orang {
String lakukanSesuatu();
}
14. Interface Murid (Turunan Interface Orang)
package PBO;
//interface Murid turunan dari interface Orang
public interface Murid extends Orang {
String lakukanExtraSesuatu();
}
15. Class PencariIlmu mengimplementasikan interface Murid dan Pekerja
package PBO;
//kelas PencariIlmu menerapkan/mengimplementasi dari interface Murid dan Pekerja
public class PencariIlmu implements Murid,Pekerja {
String sedang,belajar,job;
//pengisian body method dari interface Orang
public String lakukanSesuatu(){
return sedang=("makan, tidur ...");
}
//pengisian body method dari interface Murid
public String lakukanExtraSesuatu(){
return belajar=("belajar...");
}
//pengisian body method dari interface Pekerja
public String lakukanJob(){
return job=("mengerjakan tugas...");
}
}
KUMPULAN SOURCE-CODE UNTUK BUTTON PADA TIAP TABBEDPANE
A. Turunan/Pewarisan/Inheritance
1. BUTTON MANUSIA
Manusia dahlan=new Manusia("Dahlan Iskan");
jTextArea1.setText("Nama = "+dahlan.tampilkanNama()+ "\n"+dahlan.makan()+"\n"+dahlan.kerja()+"\n\n"+dahlan.tidur());
2. BUTTON SISWA
Siswa angga = new Siswa("Si Ali");
jTextArea1.setText("Nama = "+angga.tampilkanNama()+"\n"+ angga.makan()+"\n"+angga.kerja()+"\n\n"+angga.tidur());
3. BUTTON GURU
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));
4. BUTTON OBJEK_ARRAY
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);
B. PerubahanBentuk/Polymorphism/Polimofisme
B.1. OverLoad/OverLoading
1. BUTTON BENTUK3D-1
Bentuk3D bentuk=new Bentuk3D(3.5);
jTextArea3.setText("Panjang = "+bentuk.panjang+"\nLebar = "+bentuk.lebar+"\nTinggi = "+bentuk.tinggi);
2. BUTTON BENTUK3D-2
Bentuk3D bentuk=new Bentuk3D(3.5,2.4);
jTextArea3.setText("Panjang = "+bentuk.panjang+"\nLebar = "+bentuk.lebar+"\nTinggi = "+bentuk.tinggi);
3. BUTTON BENTUK3D-3
Bentuk3D bentuk=new Bentuk3D(3.5,2.4,4.7);
jTextArea3.setText("Panjang = "+bentuk.panjang+"\nLebar = "+bentuk.lebar+"\nTinggi = "+bentuk.tinggi);
4. BUTTON MOBIL
Mobil kijang=new Mobil("Kijang Innova");
jTextArea3.setText(kijang.st+"\n"+kijang.bergerak("depan")+"\n"+kijang.bergerak("belakang",3));
B.2. OverRide/OverRiding
berlaku pada = method() TURUNAN/SUBCLASS
bisa dilihat pada Pewarisan
C. Pembungkusan/Tingkat-Akses/Encapsulation
Tingkat Akses = private, protected, public dan default (tanpa tanda modifier)
1. BUTTON KUE_TART
Basah2 tart=new Basah2("Kue Tart");
jTextArea2.setText(tart.kadaluarsa());
2. BUTTON KUE_MARIE
Basah2 tart=new Basah2("Kue Marie");
jTextArea2.setText(tart.kadaluarsa());
D. Modifier (static & final)
D.1. static
1. BUTTON Tes Statis 1
//instansiasi pertama :)
Sepeda motor = new Sepeda();
motor.jmlRoda =2;
String stm1=("Jumlah Roda Motor = "+motor.jmlRoda);
//instansiasi kedua :)
Sepeda becak = new Sepeda();
becak.jmlRoda = 3;
String stm2=("Jumlah Roda Becak = "+becak.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 = "+motor.jmlRoda);
jTextArea5.setText(stm1+"\n"+stm2+"\n"+stm3+"\n"+stm4+"\n"+motor.melaju(null));
2. BUTTON Tes Statis 2
//mengeset data langsung dr Class tanpa pembuatan objek
Sepeda.jmlRoda = 5;
jTextArea5.setText("Jumlah roda sepeda = "+Sepeda.jmlRoda);
D.2. final
1. BUTTON Tes Final
Hitung lingkaran = new Hitung(76);
//ilegal access
//lingkaran.phi=4.15;
jTextArea6.setText("phi ="+lingkaran.phi+"\n"+"jari2 ="+ lingkaran.jari2+"\n"+"Luas Lingkaran = "+lingkaran.Luas());
E. Abstract & Interface
1. BUTTON Test Abstract
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);
2. BUTTON Test Interface
PencariIlmu toni = new PencariIlmu();
jTextArea4.setText("toni adalah objek PencariIlmu\n\nkerjaannya :\n"+ toni.lakukanSesuatu()+"\n"+toni.lakukanExtraSesuatu()+"\n"+
toni.lakukanJob());