My Culture On My BLog ...

Pemrograman Berorientasi Objek (PBO)

Tugas PBO Minggu Ke 3

Program Penjualan Dikantin Java OKE .... !!! 
import java.io.*;
import java.util.Vector;
class MenuUtama{
public static dataUpdateDt dtUpdateData=new dataUpdateDt();
public static viewTrx dtTransaksi=new viewTrx();
public static boolean selesai=false;
public static void cetakMenu()
{
System.out.println("**** Menu Kantin Program Java OKE ****");
System.out.println("1. Transaksi Penjualan  ");
System.out.println("2. Add Data Mamin       ");
System.out.println("3. Update Data Mamin    ");
System.out.println("4. View All Data Mamin  ");
System.out.println("5. View All Transaksi   ");
System.out.println("6. Exit   ");
System.out.print("Masukkan Pilihan Anda  : ");
}
public static void main (String[] a)throws Exception
{
dataAdd d=new dataAdd();
BufferedReader ab= new BufferedReader (new InputStreamReader(System.in));
do{
cetakMenu();
int Pilih =Integer.parseInt(ab.readLine());
if (Pilih==1)
{
do{
System.out.print("Masukkan Nama Pesanan  : ");
String nmPsn =ab.readLine();
System.out.print("Jumlah Pesan :");
int psn=Integer.parseInt(ab.readLine());
System.out.print("Harga : ");
int hrg=Integer.parseInt(ab.readLine());
Transaksi t=new Transaksi(nmPsn, psn, hrg);
dtTransaksi.add(t);
System.out.print("Tambah transaksi ? Ketik "+"y"+" continue " + "Ketik "+"e"+" keluar :");
String Ph=(ab.readLine());
if (Ph.equalsIgnoreCase("y"))
{
}
else {
selesai=true;
}
}while(!selesai);
}
else if(Pilih==2)
{
do{
System.out.print("Masukkan Nama Makanan or Minuman yang di tambah  : ");
String nmPsn =ab.readLine();
System.out.print("Harga Makanan:");
int Hrg=Integer.parseInt(ab.readLine());
UpdateData u=new UpdateData(nmPsn,Hrg);
        dtUpdateData.add(u);
System.out.print("Tambah transaksi ? Ketik "+"y"+" continue " + "Ketik "+"e"+" keluar :");
String Ph=(ab.readLine());
if (Ph.equalsIgnoreCase("y"))
{
}
else {
selesai=true;
}
}while(!selesai);
}
else if(Pilih==3){
do{
System.out.println("Bila Selesai Ketik \" /\" pada Inputan Nama Makanan/Minuman");
for(int i=0;i<5;i++)
{
System.out.print("Masukkan Nama Makanan/Minuman sebelum di update  : ");
        String nmPsn=ab.readLine();
if(nmPsn.equals("/"))
{
break;
}
else
{
System.out.print("Harga Makanan/Minuman sebelum diUpdate :");
int Hrg=Integer.parseInt(ab.readLine());
UpdateData u=new UpdateData(nmPsn,Hrg);
        dtUpdateData.delete(u);
        }
        }
       
System.out.println();
    System.out.print("Masukkan Nama Makanan/Minuman yang di update  : ");
String nmPsn=ab.readLine();
System.out.print("Update Harga Makanan/Minuman :");
int Hrg=Integer.parseInt(ab.readLine());
UpdateData u=new UpdateData(nmPsn,Hrg);
        dtUpdateData.add(u);
System.out.print("Tambah transaksi ? Ketik "+"y"+" continue " + "Ketik "+"e"+" keluar :");
String Ph=(ab.readLine());
if (Ph.equalsIgnoreCase("y"))
{
}
else {
selesai=true;
}
}while(!selesai);
}
else if(Pilih==4){
dtUpdateData.viewAll();
}
else if(Pilih==5){
dtTransaksi.viewAll();
}
else if(Pilih==6){
System.exit(0);
}
}while(true);
   }
}

class Transaksi {
private String nmPsn;
protected int psn;
private int hrg;
public void setNmPsn(String nmPsn){
this.nmPsn=nmPsn;
}
public void setPsn(int psn){
this.psn=psn;
}
public void setHrg(int hrg){
this.hrg=hrg;
}
public String getNmPsn(){
return nmPsn;
}
public int getPsn(){
return psn;
}
public int getHrg(){
return hrg;
}
public void psn(int psn){
this.psn=psn;
}
public Transaksi(String nmPsn, int psn, int hrg){
this.nmPsn=nmPsn;
this.psn=psn;
this.hrg=hrg;
}
public String toString(){
return ("\nPesanan : " +nmPsn+"\nJumlah Pesanan: "
+ psn+"\nHarga : "+ hrg+"\nTotal Harga :Rp." + (hrg*psn));
}
}

import java.util.Vector;

public class viewTrx{
private Vector <Transaksi> tabelTransaksi=new Vector<Transaksi>();
public viewTrx(){
}
public void add(Transaksi t){
tabelTransaksi.addElement(t);
}
public void viewAll(){
System.out.println("Cetak Semua Data Transaksi");
for(Transaksi t:tabelTransaksi)
System.out.println(t.toString());
    }
}

class UpdateData {
private String nmPsn;
private int Hrg;

public UpdateData(String nmPsn, int Hrg){
super();
this.nmPsn=nmPsn;
this.Hrg=Hrg;
}
public void setNmPsn(String nmPsn){
this.nmPsn=nmPsn;
}
public void setHrg(int Hrg){
this.Hrg=Hrg;
}
public String getNmPsn(){
return nmPsn;
}
public int getHrg(){
return Hrg;
}
public String toString(){
return ("\nNama Makanan/Minuman : " +nmPsn+"\nHarga: "
+ Hrg);
}
}

import java.util.Vector;

public class dataUpdateDt{
private Vector <UpdateData> tabelUpdateData=new Vector<UpdateData>();
public dataUpdateDt(){
}
public void add(UpdateData u){
tabelUpdateData.addElement(u);
}
public void delete(UpdateData u){
tabelUpdateData.clear();
}
public void viewAll(){
System.out.println("Data Makanan & Minuman Yang Telah Diupdate");
for(UpdateData u:tabelUpdateData)
System.out.println(u.toString());
   }
}

Output Program Java :










Tugas PBO


Soal Latihan 1.

  1. Buatlah Aplikasi Personel According yang digunakan untuk mencatat transaksi pribadi anda setiap hari. Transaksi bisa di DEBET/KREDIT, dengan ketentuan. Jika ada Pemasukan uang, maka transaksi tersebut adalah DEBET. Apabila anda membelanjakan uang, maka transaksi tersebut adalah KREDIT.

Jawaban !!! .... 





Resume Pemrograman Berorientasi Objek Pert. 2

Perbedaan antara tanda panah sebagai berikut :

Simbol disamping mengarahkan pada Inheritance/Turunan suatu class.

                   

Simbol disamping mengarahkan pada asosiasi(has a) yang artinya suatu class memiliki apa saja dan bukan turunannya.

 Contoh : Inheritance

















Contoh : Asosiasi (has a)

 


                                                                  
Class
Definisi Class adalah :
1.      Berisi data yang bersifat Private, meliputi : Attribute, Property, Data member, Variable.
2.      Tersusun atas variable instan dan metode untuk objek.
3.      Berisi method yang meliputi ; Operation, Procedur, Function, Behavior.
4.      Bersifat Konstanta
**Note : Method adalah fungsi(subprogram) yang melekat pada sebbuah objek atau kelas.
Konsep Class adalah :
1.      Blue Print dari Objek
2.      Berisi definisi data dan Method
3.      Harus Unik dalam suatu paket
Isi Class meliputi, :
1.      Nama Class, Persyaratan Penamaan Class adalah :
·         Harus Diawali dengan Huruf Kapital
·         Tidak boleh diawali dengan angka
·         Tidak boleh memakai spasi
·         Karakter yang diperbolehkan hanya : huruf dan angka.
2.      Benda/Objek, Tipe data, Formula/Rumus, System
3.      Instance member : data member yang harus diberi variable untuk menjadikan objek
4.      Class member : suatu class yang sudah menjadi objek.
Bentuk Umum Class, adalah sebagai berikut :

         




















Acces Modifier adalah peraturan hak akses class maupun method.
Ada 4 akses yang tersedia, yaitu : 

Definisi Constructor adalah :
1.      Metode Konstruktor atau konstruktor adalah metode yang dapat digunakan untuk memberikan nilai awal saat objek diciptakan.
2.   Method ini akan dipanggil secara otomatis oleh Java ketika new dipakai untuk menciptakan instan kelas.

                                                                                          
Ciri-Ciri Konstruktor :
1.      Namanya sama dengan nama kelas
2.      Tidak memiliki return value, bahkan void juga.
3.      Konstruktor boleh lebih dari satu (Overloding Constructor)
Tes Soal
1.      Apakah yang dimaksud dengan konstruktor ?! Dan kapan konstruktor dijalankan ?
2.      Apakah konstruktor memiliki return type?! …

Jawaban !
1.      Konstruktor adalah Metode yang digunakan untuk memberikan nilai awal saat sebuah objek diciptakan. Dan Konstruktor dijalankan saat memanggil method constructor dengan operator new.
2.      Tidak, Karena Konstruktor tidak memiliki nilai balik dan return type.

Object
           
              Ingat : Object is Instance of Class
Objek membutuhkan class yang akan diinstance, contoh kode sebagai berikut :
Point originOne = new point(23, 94);
Rectangle rectOne = new Rectangle (originOne, 100, 21);
Rectangle rectTwo = new Rectangle (50, 100);
Untuk membuat Objek orginOne harus sudah memiliki class originOne terlebih dahulu.
Beberapa Definisi tentang :
  •   Declaration : The Code set in bold are all variable declarations that associate a variable name   with an  object type.
  •   Instantation : The new Keyword is a java operator that creates the object
  •    Initialization : The operator is followed by a call to a constractor, which initializes the new object


Resume Pemrograman Berorientasi Objek Pert. 1
PBO (Pemrograman Berorientasi Objek)


Object Oriented Programming is a programming paradigm using “Object” data structure consisting of data fields and methods together with their interaction to design application and computer programs.

Pengertian Lain tentang Pemrograman Berorientasi Objek merupakan pemrograman yang menitikberatkan pada keterkaitan yang erat erat antara proses dengan objek yang diproses. Konsep yang digunakan dalam OOP (Object Oriented Programming) berbeda dengan metode pemrograman procedural. Terdapat beberapa aspek yang harus diketahui sehubungan dengan metode OOP.

Dalam OOP dibutuhkan memori lebih banyak dibandingkan dengan jika kita membuat program dengan metode tradisional. Dua buah objek yang identik akan memerlukan dua area memori berbeda walaupun dari sisi data dan proses keduanya memiliki jumlah dan jenis yang sama. Hal ini disebabkan karena data dan proses pada kedua objek tersebut dipisahkan oleh computer.

Object Memiliki identitas untuk membedakan benda satu dengan yang lain dan bisa disebut dengan formula, benda, system, method.
Coad-yourdon merumuskan pendekatan berorientasi objek dengan persamaan :
Berorientasi objek=objek+klasifikasi+pewarisan+komunikasi/pesan.

Beberapa paradigm dasar pemrograman berorientasi object adalah :
1.    Abstraction/Filtering
2.    Pengkapsulan(encapsulation)
3.    Pewarisan (inheritance)
4.    Polymorphism

1.           1.  Abstraction/Filtering
Abstraction adalah suatu proses dimana kita melakukan desain class dan menentukan data dan method yang akan dimiliki oleh sebuah class. Method digunakan untuk mengkomunikasikan data dalam class dengan lingkungan luar class.
Contohnya :
Class RumahSakit  


  •    Pasien
  •       Dokter
  •       Obat
  •       Perawat
  •       Ruang Inap
Dengan mengambil contoh class Pasien,
Memiliki Data = Nama, Alamat, Umur, Riwayat Kesehatan. 
Dengan  Method = registrasi 
Sebagai Berikut :

    2.  Pengkapsulan(encapsulation) = Information Hiding
Pada Pengkapsulan ini, saya mengambil contoh pada gambar diatas dengan keterangan :
Keterangan : tanda “ - “ adalah Private yang dimana menyembunyikan dan suatu variable instan atau metode hanya dapat dilakukan didalam kelas; tidak bisa diakses dari luar kelas.
Tanda “ + ” adalah Public yang variable dan metode dapat dilakukan diluar kelas.

    3. Inheritance Adalah kata lain dari Turunan/Pewarisan

           4. Polymorphism = dihasilkan Oleh Inheritence

 

Pada contoh ini, memiliki perbedaan pada cara melakukan pergerakan/run pada setiap object.