Jumat, 02 Oktober 2009

Latihan Java : Array dari Object

Kali ini kita akan mencoba membuat Class atau Istilah yang tren "business object". Class ini merefleksikan cara kerja program.

Ceritanya : Program akan menggambarkan fungsi sebuah angkot, dimana angkot bertindak sebagai container ( tempat ) untuk kita memasukan penumpang.Angkot/kontainer tersebut harus memiliki batasan yang jelas tentang jumlah penumpang yang dapat ditampung. Oleh sebab itu kita menggunakan array, sesuai dengan sifat array yang definitif mengenai jumlah object/data yang dapat ditampungnya.

Class Penumpang , :


/**
 *
 * @author kuliahpemrograman.com
 */
public class Penumpang {
  
    private String jenis;

    //
    public Penumpang(String pekerjaan){
      this.jenis = pekerjaan;
    }

    public String getJenis(){
      return this.jenis;
    }
}


Class Angkot :
/**
*
* @author kuliahpemrograman.com
*/
public class Angkot {

private int maks,counter;
private Penumpang penumpang[];

public Angkot(int jumlahmaks){
penumpang = new Penumpang[jumlahmaks];
maks = jumlahmaks;
counter = 0;
}

public boolean addPenumpang(Penumpang p){
//
if(counter<(maks-1)){
penumpang[counter] = p; //menyimpang penumpang di array penumpang
counter++; //menulis jumlah penumpang saat ini
return true;
}else{
//sudah penuh
return false;
}
}

public int getJumlahPenumpang(){
//melihat jumlah penumpang berdasarkan
//counter
return counter;
}

public void showPenumpang(){
//menampilkan isi array
int i = 0;
for(i=0;i<counter;i++){
System.out.println(i+" "+penumpang[i]);
}
}
}


Class angkot memiliki
- Array yang bertype Penumpang
- Penghitung Jumlah Data/Counter
- Jumlah maksimal yang dapat ditampung

method :
  • boolean addPenumpang(Penumpang p) , fungsi ini digunakan untuk menambahkan Object penumpang kedalam array penumpang yang dimiliki oleh object angkot. fungsi ini juga akan mengecek apabila penumpang sudah penuh dan akan menghasilkan false jika penumpang sudah penuh/sesuai dengan jumlah yang diset diawal.
  • int getJumlahPenumpang(), fungsi ini menghasilkan nilai sesuai dengan jumlah penumpang yang telah dimasukan.
  • void showPenumpang(), fungsi ini akan menampilkan ke console/text daftar penumpang sesuai dengan jenis/pekerjaan penumpang
Program Main :

Berikut ini adalah contoh cara penggunaannya


 public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {      

        Angkot koasi = new Angkot(12); // set jumlah maksimal penumpang 12 orang
       
        Penumpang pelajarA = new Penumpang("Pelajar");
        Penumpang pelajarB = new Penumpang("Pelajar");
        Penumpang pelajarC = new Penumpang("Pelajar");
        Penumpang pelajarD = new Penumpang("Pelajar");

        Penumpang pekerjaA = new Penumpang("Pekerja");
        Penumpang pekerjaB = new Penumpang("Pekerja");
        Penumpang pekerjaC = new Penumpang("Pekerja");
        Penumpang pekerjaD = new Penumpang("Pekerja");

        koasi.addPenumpang(pelajarA);
        koasi.addPenumpang(pelajarB);
        koasi.addPenumpang(pelajarC);
        koasi.addPenumpang(pelajarD);

        koasi.addPenumpang(pekerjaA);
        koasi.addPenumpang(pekerjaB);
        koasi.addPenumpang(pekerjaC);
        koasi.addPenumpang(pekerjaD);

       //tampilkan isi dari angkot
        koasi.showPenumpang();

     }

}


Disini kita telah belajar bagaimana mengintegrasikan/meramu cara kerja java yang OOP dengan pengetahuan kita tentang array . Jika kurang mengerti silahkan bertanya. terimakasih.


Pengembangan :
Program angkot ini dapat dikembangkan lagi, misalkan :
  • sebuah Object tidak boleh mengisi angkot lebih dari 1x.
  • Penumpang mempunya nama,tujuan,nilai pembayaran
  • nilai pembayaran ditotal di method showPenumpang()

8 komentar:

  1. Terimakasih Pak atas tutor ini, waktu saya membaca saya jadi mengerti dan memahami algoritma dari menyimpan sebuah objek ke dalam array (record). Ada yang mau saya tanyakan nih Pak/Mas, bagaimana caranya jika setiap fungsi (addPenumpang, dll) yang terdapat pada class angkot dipisahkan dengan case atau menjadi pilihan menu pada class main? Mohon bimbingannya Pak. Terimkasih.

    BalasHapus
  2. thanks endi atas pertanyaannya. maaf jika saya lama menjawab.

    jawabannya. think object endi. kalo ada kelas lain yang membutuhkan fungsi addPenumpang dll, maka kelas tersebut membutuhkan kelas Angkot. cukup menjawab ?

    BalasHapus
  3. Terimakasih, bermanfaat sekali bagi saya yang baru be;ajar Java.. :)

    BalasHapus
  4. @yode : sama2 semoga bisa konsisten dalam belajar.

    BalasHapus
  5. Terimakasih Pak... tutorial yg sangat bermanfaat. trutama penggunaan Array dalam OOP.
    yg ingin saya tanyakan adalah :
    - Bagaimana pengembangannya jika Class Penumpang tersebut diberi Atribut Nama, Tujuan dan Nilai Bayar seperti yg bapak sebutkan diatas.
    Mohon Bimbingannya ...
    Terimakasih...

    BalasHapus
  6. @priyanto : tinggal ditambahkan propertynya dan mungkin juga setter/getternya (accessor/mutator)

    BalasHapus

Isi Komentar / Pertanyaan