Belajar PBO Praktek
- 06.53
- 0 komentar
- Kprimadina
Bagi pemula dalam hal pemrograman , terutama mengenai bahasa satu ini yaitu JAVA.. tidak diragukan lagi kegunaannya ,, bahkan di luar negeri JAVA sudah digunakan oleh anak-anak untuk melatih logika mereka.. Untuk belajar JAVA itu dibutuhkan praktek , kali ini kita akan membahas tentang belajar PBO "Selamat Mencoba !!!"
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.
//konstruktor Siswa
Siswa(String n){
//memanggil konstruktor Manusia
super(n);
}
//method bentukan baru...
String kerja(){
return stmKerja="belajar...belajar...!!!";
}
String tidur(){
return stmTidur="Ngiler...!!!";
}
}
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
Class Manusia
Class Manusia
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...";
}
}
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...";
}
}
Class Siswa
public class Siswa extends Manusia{//konstruktor Siswa
Siswa(String n){
//memanggil konstruktor Manusia
super(n);
}
//method bentukan baru...
String kerja(){
return stmKerja="belajar...belajar...!!!";
}
String tidur(){
return stmTidur="Ngiler...!!!";
}
}
Class Guru
public class Guru extends Manusia {
Guru(String n){
super(n);
}
String kerja(){
return stmKerja="mengajar...mengajar...!!!";
}
String tugas(String n){
return stmTugas="ayo kerjakan...kerjakan...!!!";
}
}
Guru(String n){
super(n);
}
String kerja(){
return stmKerja="mengajar...mengajar...!!!";
}
String tugas(String n){
return stmTugas="ayo kerjakan...kerjakan...!!!";
}
}
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());
}
Good Luck
0 komentar: