Grouping Object dan Auction System

Pada postingan kali ini, kita akan mempelajari tentang Grouping Object dan Auction System.

Grouping Object

Pertama kita harus mengetahui apa itu Java Collection, yang merupakan framework yang menyediakan sebuah tempat untuk menyimpan syntax atau di Java disebut dengan Collection. Nah grouping object menggunakan collection pada Java Collection untuk melakukan manipulasi data seperti pencarian, pengurutan, i/o, dll. Kerangka kerja Java Collection menyediakan dalam bentuk interfaces (Set, List, Queue, Deque dll) dan untuk class (ArrayList, Vector, LingkedList, PriorityQueue, HashSet, LinkedHashSet, TreeSet dll). untuk lebih jelasnya, mari kita implementasikan kedalam sebuah kodingan :

ArrayList dengan While :
  1. /**
  2.  * contoh ArrayList While
  3.  *
  4.  * @author affllah14
  5.  * @version 1.0
  6.  */
  7.  
  8. import java.util.*;
  9. public class ArrayListWhile
  10. {
  11.     public static void main(String[] args){
  12.       //buat arraylist
  13.       ArrayList <String> al = new ArrayList<String>();
  14.      
  15.       //menambah object ke arraylist
  16.       al.add("Ahmad");
  17.       al.add("Budi");
  18.       al.add("Cecep");
  19.       al.add("Dora");
  20.      
  21.       //menampilkan isi
  22.       Iterator itr = al.iterator();
  23.       while(itr.hasNext()){
  24.           System.out.println(itr.next());
  25.       }
  26.   }  
  27. }

dihasilkan output :


ArrayList dengan For

  1. /**
  2.  * contoh ArrayList dengan For
  3.  *
  4.  * @author affllah14
  5.  * @version 1.0
  6.  */
  7. import java.util.ArrayList;
  8. public class ArrayListFor
  9. {
  10.     public static void main(String[] args){
  11.         //membuat arraylist
  12.         ArrayList<String> al = new ArrayList<String>();
  13.        
  14.         //menambahkan object
  15.         al.add("Ahmad");
  16.         al.add("Budi");
  17.         al.add("Cecep");
  18.         al.add("Dora");
  19.        
  20.         //menampilkan isi
  21.         for(String obj:al){
  22.             System.out.println(obj);
  23.         }
  24.     }
  25. }

didapatkan output yang sama :

ArrayList dengan Class

  • /**
    1.  * contoh ArrayList Class
    2.  *
    3.  * @author affllah14
    4.  * @version1 1.0
    5.  */
    6. import java.util.*;
    7. public class ArrayListClass{
    8.    public static void main(String[] args){
    9.        
    10.        //data
    11.        Mahasiswa mhs1 = new Mahasiswa ("K121", "Adam Kamil", 67, 69, 91);
    12.        Mahasiswa mhs2 = new Mahasiswa ("K122", "Budi Ridho", 57, 89, 93);
    13.        Mahasiswa mhs3 = new Mahasiswa ("K123", "Cecep Mansyur", 77, 79, 80);
    14.        Mahasiswa mhs4 = new Mahasiswa ("K124", "Dadang Habibie", 67, 79, 60);
    15.        Mahasiswa mhs5 = new Mahasiswa ("K125", "Evi Julita", 89, 79, 95);
    16.    
    17.        //arraylist
    18.        ArrayList<Mahasiswa> al = new ArrayList<Mahasiswa>();
    19.        
    20.        //menambahkan objek
    21.        al.add(mhs1);
    22.        al.add(mhs2);
    23.        al.add(mhs3);
    24.        al.add(mhs4);
    25.        al.add(mhs5);
    26.      
    27.        //menampilkan
    28.        Iterator itr=al.iterator();
    29.        while(itr.hasNext()){
    30.            Mahasiswa tampungMhs = (Mahasiswa)itr.next();
    31.            System.out.print(tampungMhs.getNim()+" ");
    32.            System.out.print(tampungMhs.getNama()+" ");
    33.            System.out.print(tampungMhs.getTugas()+" ");
    34.            System.out.print(tampungMhs.getUts()+" ");
    35.            System.out.println(tampungMhs.getUas()+" ");
    36.        }
    37.     }
    38. }

    dengan class Mahasiswa :

  • /**
    1.  * class Mahasiswa.
    2.  *
    3.  * @author affllah14
    4.  * @version 1.0
    5.  */
    6.     public class Mahasiswa {
    7.         private String nim ;
    8.         private String nama;
    9.         private int uts;
    10.         private int uas;
    11.         private int tugas;
    12.  
    13.         public Mahasiswa (String no,String Nama, int Tugas, int UTS, int UAS)
    14.         {
    15.             nim = no;
    16.             nama = Nama;
    17.             tugas = Tugas;
    18.             uts = UTS;
    19.             uas = UAS;
    20.         }
    21.  
    22.         public String getNim()
    23.         {
    24.             return nim;
    25.         }
    26.         public String getNama()
    27.         {
    28.             return nama ;
    29.         }
    30.         public int getTugas()
    31.         {
    32.             return tugas;
    33.         }
    34.         public int getUts()
    35.         {
    36.             return uts;
    37.         }
    38.         public int getUas()
    39.         {
    40.             return uas;
    41.         }
    42.     }

    mendapat output:


    Menggabungkan ArrayList

    1.  * ArrayList yg digabung
    2.  *
    3.  * @author affllah14
    4.  * @version1 1.0
    5.  */
    6. import java.util.ArrayList;
    7. import java.util.Iterator;
    8. public class ArrayListCombine{
    9.     public static void main(String[] args){
    10.    
    11.         //membuat arraylist1
    12.         ArrayList<String> al = new ArrayList <String>();
    13.        
    14.         //menambahkan objek
    15.         al.add("Ani");
    16.         al.add("Budi");
    17.         al.add("Cecep");
    18.         al.add("Dani");
    19.        
    20.         //membuat arraylist2
    21.         ArrayList<String> al2 = new ArrayList <String>();
    22.        
    23.         //menambahkan objek
    24.         al2.add("Endi");
    25.         al2.add("Fani");
    26.        
    27.         //menambahkan al2 ke al
    28.         al.addAll(al2);
    29.        
    30.         //menampilkan isi
    31.         Iterator itr=al.iterator();
    32.         while(itr.hasNext()){
    33.             System.out.println(itr.next());
    34.         }
    35.     }
    36. }

    Output:


    Penggunaan Remove All pad ArrayList

    /**
    1.  * ArrayList Remove All
    2.  *
    3.  * @author affllah14
    4.  * @version1 1.0
    5.  */
    6. import java.util.ArrayList;
    7. import java.util.Iterator;
    8. public class ArrayListRemove{
    9.     public static void main (String[] args){
    10.         //membuat arraylist1
    11.         ArrayList<String> al = new ArrayList<String>();
    12.        
    13.         //menambahkan objek
    14.         al.add("Ani");
    15.         al.add("Budi");
    16.         al.add("Cecep");
    17.         al.add("Dani");
    18.        
    19.         //membuat arraylist2
    20.         ArrayList<String> al2 = new ArrayList <String>();
    21.        
    22.         //menambahkan objek
    23.         al2.add("Eko");
    24.         al2.add("Budi");
    25.        
    26.         //remove al2
    27.         al.removeAll(al2);
    28.        
    29.         //menampilkan isi
    30.         Iterator itr=al.iterator();
    31.         while(itr.hasNext()){
    32.             System.out.println(itr.next());
    33.         }
    34.     }  
    35. }

    output :


    Penggunaan Retain All pada ArrayList

    /**
    1.  * ArryaList Retain
    2.  *
    3.  * @author affllah14
    4.  * @version1 1.0
    5.  */
    6. import java.util.ArrayList;
    7. import java.util.Iterator;
    8. public class ArrayListRetain{
    9.     public static void main (String[] args){
    10.         //membuat arraylist1
    11.         ArrayList<String> al = new ArrayList<String>();
    12.        
    13.         //menambahkan objek
    14.         al.add("Ani");
    15.         al.add("Budi");
    16.         al.add("Cecep");
    17.         al.add("Dani");
    18.        
    19.         //membuat arraylist2
    20.         ArrayList<String> al2 = new ArrayList <String>();
    21.        
    22.         //menambahkan objek
    23.         al2.add("Dani");
    24.         al2.add("Edo");
    25.        
    26.         //remove al2
    27.         al.retainAll(al2);
    28.        
    29.         //menampilkan isi
    30.         Iterator itr=al.iterator();
    31.         while(itr.hasNext()){
    32.             System.out.println(itr.next());
    33.         }
    34.     }  
    35. }

    Output :


    Linked List

    /**
    1.  * contoh Linked List
    2.  *
    3.  * @author affllah14
    4.  * @version1 1.0
    5.  */
    6. import java.util.*;
    7. public class contohLinkedList{
    8.     public static void main(String args[])
    9.     {
    10.         LinkedList<String> al=new LinkedList<String>();
    11.         al.add("Zaza");
    12.         al.add("Yadi");
    13.         al.add("Mutiara");
    14.         al.add("Santoso");
    15.         Iterator<String> itr=al.iterator();
    16.        
    17.         while(itr.hasNext()) {
    18.             System.out.println(itr.next());
    19.         }
    20.     }
    21. }

    Output :


    Hash Set

  • /**
    1.  * Contoh Hash Set
    2.  *
    3.  * @author affllah14
    4.  * @version1 1.0
    5.  */
    6. import java.util.*;
    7. class ContohHashSet{
    8.     public static void main(String args[]){
    9.         //membuat hash set
    10.         HashSet<String> al=new HashSet<String>();
    11.        
    12.         //menginput objek
    13.         al.add("Anto");
    14.         al.add("Budi");
    15.         al.add("Cecep");
    16.         al.add("Dani");
    17.         al.add("Eka");
    18.        
    19.         Iterator<String> itr=al.iterator();
    20.        
    21.         //menampilkan
    22.         while(itr.hasNext()) {
    23.             System.out.println(itr.next());
    24.         }
    25.     }
    26. }

    Output :


    Linked Hash Set

    1. /**
    2.  * Contoh Linked Hash Set
    3.  *
    4.  * @author affllah14
    5.  * @version1 1.0
    6.  */
    7. import java.util.LinkedHashSet;
    8. import java.util.Iterator;
    9. class ContohLinkedHashSet{
    10.     public static void main(String args[]){
    11.         //membuat linkedhashset
    12.         LinkedHashSet<String> al=new LinkedHashSet<String>();
    13.        
    14.         al.add("Anto");
    15.         al.add("Budi");
    16.         al.add("Cecep");
    17.         al.add("Dudi");
    18.         al.add("Eka");
    19.         Iterator<String> itr=al.iterator();
    20.         while(itr.hasNext()) {
    21.             System.out.println(itr.next());
    22.         }
    23.     }
    24. }

    Output :


    Hash Map

    1. /**
    2.  * Contoh Hash Map
    3.  *
    4.  * @author affllah14
    5.  * @version1 1.0
    6.  */
    7.  
    8.  import java.util.*;
    9.  class ContohHashMap{
    10.      public static void main(String args[]){
    11.          //membuat hashmap
    12.          HashMap<Integer,String> hm=new HashMap<Integer,String>();
    13.          //input objek
    14.          hm.put(100,"Kano");
    15.          hm.put(101,"Laila");
    16.          hm.put(102,"Badu");
    17.          hm.put(null, "Johan");
    18.          //menampilkan isi
    19.          for(Map.Entry m:hm.entrySet()) {
    20.              System.out.println(m.getKey()+" "+m.getValue());
    21.          }
    22.      }
    23.  }

    output :


    Hash Table

    1. /**
    2.  * contoh Hash Table
    3.  *
    4.  * @author affllah14
    5.  * @version1 1.0
    6.  */
    7. import java.util.*;
    8. class HashTableContoh
    9. { public static void main(String args[])
    10.     { Hashtable<Integer,String> hm=new Hashtable<Integer,String>();
    11.         hm.put(100,"Andri");
    12.         hm.put(102,"Roni");
    13.         hm.put(101,"Fahrul");
    14.         hm.put(103,"Badu");
    15.         for(Map.Entry m:hm.entrySet()){
    16.             System.out.println(m.getKey()+" "+m.getValue());
    17.         }
    18.     }
    19. }

    Output :

    Auction System

    Selanjutnya kita akan membuat contoh program untuk melakukan pelelangan barang. pada sistem ini, kita akan membuat object auction, kemudian barang yang dilelang, lalu orang yang menawar, dan penawaran, setelah itu barang akan dijual pada penawar tertinggi.

    adapun class yang digunakan ada 4 :

    • Class Auction : Class utama, tempat terjadinya pelelangan
    • Class Lot : Tempat barang yang akan dilelang
    • Class Person : Tempat menyimpan data penawar
    • Class Bid : Tempat menyimpan nilai yang ditawar
    berikut tampilan diagram pada BlueJ :

    dengan source code :

    Class Auction :

    1. /**  
    2. * Class Auction
    3. *
    4. * @author affllah14
    5. * @version 1.0
    6. */
    7. import java.util.ArrayList;
    8.   public class Auction  
    9.   {  
    10.    private ArrayList<Lot> lotsArr; //list barang pada pelelangan
    11.    private int LotNum;  
    12.    public Auction() //method membuat auction baru
    13.    {  
    14.     lotsArr = new ArrayList<Lot>();  //list barang
    15.     LotNum = 1; //nomor awal barang diset 1
    16.    }  
    17.    
    18.    /**  
    19.    * Method untuk memasukkan item lelangan baru  
    20.    * Memasukkan nama barang ke nomor ke-i
    21.    * LotName = nama barang
    22.    * LotNum = nomor barang  
    23.    */  
    24.    public void enterLot(String LotName)  
    25.    {  
    26.     lotsArr.add(new Lot(LotNum, LotName));  
    27.     LotNum++;  
    28.    }  
    29.    
    30.    /**  
    31.    * Method untuk menampilkan seluruh barang yang dilelang
    32.    */  
    33.    public void showlotsArr()  
    34.    {  
    35.     for(Lot lot : lotsArr) {  
    36.      System.out.println(lot.detail());  
    37.     }  
    38.    }  
    39.    
    40.    /**  
    41.    * Method untuk melakukan bid/tawaran.  
    42.    * Jika berhasil melakukan bid akan muncul Success Message.  
    43.    * CurrentLotNum = id lot yang akan di Bid.  
    44.    * bidder = orang yang akan menawar.  
    45.    * value = harga tawaran.  
    46.    */  
    47.    public void MakeBid(int CurrentLotNum, Person bidder, long value)  
    48.    {  
    49.     Lot selectedLot = getLot(CurrentLotNum);  
    50.     if(selectedLot != null) {  
    51.      boolean check = selectedLot.bidFor(new Bid(bidder, value));  
    52.      if(check) { //jika bid lebih besar dari yang sebelumnya
    53.       System.out.println("Bid for Lot number " +  
    54.            CurrentLotNum + " Success, Bidden by " +bidder.getName()+ " with price " + "Rp "+value);  
    55.      }  
    56.      else {  //jika bid kurang dari yang sebelumnya
    57.       Bid highestBid = selectedLot.getHighestBid();  
    58.       System.out.println("Lot number :\t" + CurrentLotNum +  
    59.            "\nwith the highest Bid:\t" +  
    60.            highestBid.getBid());  
    61.      }  
    62.     }  
    63.    }  
    64.    
    65.    /**  
    66.    * Method untuk mencari id lot  
    67.    * Return id lot jika ada, jika tidak return null  
    68.    * CurrentLotNum = id lot yang perlu di return  
    69.    */  
    70.    public Lot getLot(int CurrentLotNum)  
    71.    {  
    72.     if((CurrentLotNum > 0) && (CurrentLotNum < LotNum)) {  
    73.      Lot selectedLot = lotsArr.get(CurrentLotNum - 1);  
    74.      if(selectedLot.getId() != CurrentLotNum) {  
    75.       System.out.println("Internal error : Lot number " +  
    76.            selectedLot.getId() +  
    77.            " has been returned, Not a Lot number " +  
    78.            CurrentLotNum);  
    79.       selectedLot = null;  
    80.      }  
    81.      return selectedLot;  
    82.     }  
    83.     else {  
    84.      System.out.println("Lot number : " + CurrentLotNum +  
    85.           " doesn't exist.");  
    86.      return null;  
    87.     }  
    88.    }  
    89.    public void close()    
    90.    {    
    91.    System.out.println("Auction has ended.");    
    92.    for(Lot lot : lotsArr)    
    93.    {    
    94.     System.out.println(lot.getId() + ": " +lot.getLotName());    
    95.     Bid bid = lot.getHighestBid();    
    96.     if (bid==null)    
    97.     {    
    98.     System.out.println("There is no bid for this Lot");    
    99.     }    
    100.     else    
    101.     {    
    102.     System.out.println("This Lot has been sold to " +    
    103.     bid.getBidder().getName() + " with price :\t"    
    104.     + bid.getBid());    
    105.     }    
    106.    }    
    107.    }    
    108.   }

    Class Lot :

    1. /**  
    2. * Class Lot
    3. *
    4. * @author affllah14
    5. * @version 1
    6. *
    7. */
    8. public class Lot//method untuk membuat Lot  
    9.  {  
    10.    private final int Id;//id barang
    11.    private String LotName;//nama barang
    12.    private Bid highestBid;//tawaran tertinggi  
    13.    public Lot(int number, String LotName) //buat lot baru  
    14.    {
    15.      this.Id = number; //id
    16.      this.LotName = LotName; //nama barang
    17.    }  
    18.    //parameter nya merupakan bid untuk cek harga bid sebelumnya  
    19.    public boolean bidFor(Bid bid)  
    20.    {//Method untuk mengecek apakah tawaran lebih besar dari tawaran tertinggi  
    21.      if((highestBid == null) ||  
    22.          (bid.getBid() > highestBid.getBid())) { //jika benar
    23.        highestBid = bid; //update tawaran tertinggi
    24.        return true;
    25.      }  
    26.      else {  
    27.        return false;  
    28.      }  
    29.    }  
    30.    public String detail() //method untuk return id dan tawaran tertinggi
    31.    {  
    32.      String details = Id + ": " + LotName;  
    33.      if(highestBid != null) {  
    34.        details += "  Bid with price " +  
    35.              highestBid.getBid();  
    36.      }  
    37.      else {  
    38.        details += "  (no bid yet)";  
    39.      }  
    40.      return details;  
    41.    }  
    42.    public int getId()  
    43.    {  
    44.      return Id;  
    45.    }  
    46.    public String getLotName()  
    47.    {  
    48.      return LotName;  
    49.    }  
    50.    public Bid getHighestBid()  
    51.    {  
    52.      return highestBid;  
    53.    }  
    54.  }

    Class Person :

    1. /**  
    2. * Class Person
    3. *
    4.   * @author affllah14
    5.   * @version 1.0
    6.   */  
    7.   public class Person  
    8.   {  
    9.    private final String name;  
    10.    public Person(String newName)  //menambahkan nama
    11.    {  
    12.     this.name = newName;  
    13.    }  
    14.    public String getName() //method return nama yang ditambahkan
    15.    {  
    16.     return name;  
    17.    }  
    18.   }

    Class Bid :

    1. /**  
    2.   * Class Bid
    3.     *
    4.   * @author affllah14
    5.   * @version1
    6.   *  
    7.   */  
    8.  public class Bid  
    9.  {  
    10.    private final Person bidder;//orang yang menawar
    11.    private final long value;//untuk menyimpan harga tawaran  
    12.    public Bid(Person bidder, long value) //method muntuk membuat penawaran  
    13.    {
    14.      this.bidder = bidder; //nama
    15.      this.value = value;  //jumlah tawaran
    16.    }  
    17.    public Person getBidder()  
    18.    {
    19.      return bidder;  
    20.    }  
    21.    public long getBid()  
    22.    {
    23.      return value;  
    24.    }  
    25.  }

    Setelah menuliskan semua kodingan tersebut, mari kita membuat pelelangannya dahulu dengan klik kanan pada class auction dan klik new Auction() dan masukkan judul pelelangannya.

    setelah itu, kita menginput barang yang akan dilelang dengan klik kanan pada object auction dan klik enterLot()

    Untuk mengetahui barang apa saja yang telah diinput, kita dapat mengeceknya dengan klik kanan pada object Auction lagi lalu pilih showLotsArr().

    Apabila ada orang yang menawar, maka kita input data nama orang tersebut dengan klik kanan pada class Person lalu input identitas dan namanya.

    Untuk menginput jumlah penawaran kita dapat menggunakan MakeBid() pada class Auction.


    output :

    Apabila ada seseorang lagi menawar sebuah barang dengan jumlah yang lebih kecil maka akan menjadi:


    output :

    ketika pelelangan berakhir, kita dapat mengakhirinya dengan klik kanan pada object Auction dan pilih close().

    Sekian yang dapat kita pelajari saat ini, sampai ketemu di pertemuan selajutnya dan apabila ada saran atau masukan silakan berkomentar

    Komentar

    Postingan populer dari blog ini

    ETS PBO (Bagian 1) - membuat Sistem ATM