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 :
- /**
- * contoh ArrayList While
- *
- * @author affllah14
- * @version 1.0
- */
-
- import java.util.*;
- public class ArrayListWhile
- {
- public static void main(String[] args){
- //buat arraylist
- ArrayList <String> al = new ArrayList<String>();
-
- //menambah object ke arraylist
- al.add("Ahmad");
- al.add("Budi");
- al.add("Cecep");
- al.add("Dora");
-
- //menampilkan isi
- Iterator itr = al.iterator();
- while(itr.hasNext()){
- System.out.println(itr.next());
- }
- }
- }
dihasilkan output :
ArrayList dengan For
- /**
- * contoh ArrayList dengan For
- *
- * @author affllah14
- * @version 1.0
- */
- import java.util.ArrayList;
- public class ArrayListFor
- {
- public static void main(String[] args){
- //membuat arraylist
- ArrayList<String> al = new ArrayList<String>();
- //menambahkan object
- al.add("Ahmad");
- al.add("Budi");
- al.add("Cecep");
- al.add("Dora");
- //menampilkan isi
- for(String obj:al){
- System.out.println(obj);
- }
- }
- }
- * contoh ArrayList Class
- *
- * @author affllah14
- * @version1 1.0
- */
- import java.util.*;
- public class ArrayListClass{
- public static void main(String[] args){
- //data
- Mahasiswa mhs1 = new Mahasiswa ("K121", "Adam Kamil", 67, 69, 91);
- Mahasiswa mhs2 = new Mahasiswa ("K122", "Budi Ridho", 57, 89, 93);
- Mahasiswa mhs3 = new Mahasiswa ("K123", "Cecep Mansyur", 77, 79, 80);
- Mahasiswa mhs4 = new Mahasiswa ("K124", "Dadang Habibie", 67, 79, 60);
- Mahasiswa mhs5 = new Mahasiswa ("K125", "Evi Julita", 89, 79, 95);
- //arraylist
- ArrayList<Mahasiswa> al = new ArrayList<Mahasiswa>();
- //menambahkan objek
- al.add(mhs1);
- al.add(mhs2);
- al.add(mhs3);
- al.add(mhs4);
- al.add(mhs5);
- //menampilkan
- Iterator itr=al.iterator();
- while(itr.hasNext()){
- Mahasiswa tampungMhs = (Mahasiswa)itr.next();
- System.out.print(tampungMhs.getNim()+" ");
- System.out.print(tampungMhs.getNama()+" ");
- System.out.print(tampungMhs.getTugas()+" ");
- System.out.print(tampungMhs.getUts()+" ");
- System.out.println(tampungMhs.getUas()+" ");
- }
- }
- }
dengan class Mahasiswa :
- * class Mahasiswa.
- *
- * @author affllah14
- * @version 1.0
- */
- public class Mahasiswa {
- private String nim ;
- private String nama;
- private int uts;
- private int uas;
- private int tugas;
- public Mahasiswa (String no,String Nama, int Tugas, int UTS, int UAS)
- {
- nim = no;
- nama = Nama;
- tugas = Tugas;
- uts = UTS;
- uas = UAS;
- }
- public String getNim()
- {
- return nim;
- }
- public String getNama()
- {
- return nama ;
- }
- public int getTugas()
- {
- return tugas;
- }
- public int getUts()
- {
- return uts;
- }
- public int getUas()
- {
- return uas;
- }
- }
mendapat output:
Menggabungkan ArrayList
- * ArrayList yg digabung
- *
- * @author affllah14
- * @version1 1.0
- */
- import java.util.ArrayList;
- import java.util.Iterator;
- public class ArrayListCombine{
- public static void main(String[] args){
- //membuat arraylist1
- ArrayList<String> al = new ArrayList <String>();
- //menambahkan objek
- al.add("Ani");
- al.add("Budi");
- al.add("Cecep");
- al.add("Dani");
- //membuat arraylist2
- ArrayList<String> al2 = new ArrayList <String>();
- //menambahkan objek
- al2.add("Endi");
- al2.add("Fani");
- //menambahkan al2 ke al
- al.addAll(al2);
- //menampilkan isi
- Iterator itr=al.iterator();
- while(itr.hasNext()){
- System.out.println(itr.next());
- }
- }
- }
Output:
Penggunaan Remove All pad ArrayList
- * ArrayList Remove All
- *
- * @author affllah14
- * @version1 1.0
- */
- import java.util.ArrayList;
- import java.util.Iterator;
- public class ArrayListRemove{
- public static void main (String[] args){
- //membuat arraylist1
- ArrayList<String> al = new ArrayList<String>();
- //menambahkan objek
- al.add("Ani");
- al.add("Budi");
- al.add("Cecep");
- al.add("Dani");
- //membuat arraylist2
- ArrayList<String> al2 = new ArrayList <String>();
- //menambahkan objek
- al2.add("Eko");
- al2.add("Budi");
- //remove al2
- al.removeAll(al2);
- //menampilkan isi
- Iterator itr=al.iterator();
- while(itr.hasNext()){
- System.out.println(itr.next());
- }
- }
- }
output :
Penggunaan Retain All pada ArrayList
- * ArryaList Retain
- *
- * @author affllah14
- * @version1 1.0
- */
- import java.util.ArrayList;
- import java.util.Iterator;
- public class ArrayListRetain{
- public static void main (String[] args){
- //membuat arraylist1
- ArrayList<String> al = new ArrayList<String>();
- //menambahkan objek
- al.add("Ani");
- al.add("Budi");
- al.add("Cecep");
- al.add("Dani");
- //membuat arraylist2
- ArrayList<String> al2 = new ArrayList <String>();
- //menambahkan objek
- al2.add("Dani");
- al2.add("Edo");
- //remove al2
- al.retainAll(al2);
- //menampilkan isi
- Iterator itr=al.iterator();
- while(itr.hasNext()){
- System.out.println(itr.next());
- }
- }
- }
Output :
Linked List
- * contoh Linked List
- *
- * @author affllah14
- * @version1 1.0
- */
- import java.util.*;
- public class contohLinkedList{
- public static void main(String args[])
- {
- LinkedList<String> al=new LinkedList<String>();
- al.add("Zaza");
- al.add("Yadi");
- al.add("Mutiara");
- al.add("Santoso");
- Iterator<String> itr=al.iterator();
- while(itr.hasNext()) {
- System.out.println(itr.next());
- }
- }
- }
Output :
Hash Set
- * Contoh Hash Set
- *
- * @author affllah14
- * @version1 1.0
- */
- import java.util.*;
- class ContohHashSet{
- public static void main(String args[]){
- //membuat hash set
- HashSet<String> al=new HashSet<String>();
- //menginput objek
- al.add("Anto");
- al.add("Budi");
- al.add("Cecep");
- al.add("Dani");
- al.add("Eka");
- Iterator<String> itr=al.iterator();
- //menampilkan
- while(itr.hasNext()) {
- System.out.println(itr.next());
- }
- }
- }
Output :
Linked Hash Set
- /**
- * Contoh Linked Hash Set
- *
- * @author affllah14
- * @version1 1.0
- */
- import java.util.LinkedHashSet;
- import java.util.Iterator;
- class ContohLinkedHashSet{
- public static void main(String args[]){
- //membuat linkedhashset
- LinkedHashSet<String> al=new LinkedHashSet<String>();
- al.add("Anto");
- al.add("Budi");
- al.add("Cecep");
- al.add("Dudi");
- al.add("Eka");
- Iterator<String> itr=al.iterator();
- while(itr.hasNext()) {
- System.out.println(itr.next());
- }
- }
- }
Output :
Hash Map
- /**
- * Contoh Hash Map
- *
- * @author affllah14
- * @version1 1.0
- */
- import java.util.*;
- class ContohHashMap{
- public static void main(String args[]){
- //membuat hashmap
- HashMap<Integer,String> hm=new HashMap<Integer,String>();
- //input objek
- hm.put(100,"Kano");
- hm.put(101,"Laila");
- hm.put(102,"Badu");
- hm.put(null, "Johan");
- //menampilkan isi
- for(Map.Entry m:hm.entrySet()) {
- System.out.println(m.getKey()+" "+m.getValue());
- }
- }
- }
output :
Hash Table
- /**
- * contoh Hash Table
- *
- * @author affllah14
- * @version1 1.0
- */
- import java.util.*;
- class HashTableContoh
- { public static void main(String args[])
- { Hashtable<Integer,String> hm=new Hashtable<Integer,String>();
- hm.put(100,"Andri");
- hm.put(102,"Roni");
- hm.put(101,"Fahrul");
- hm.put(103,"Badu");
- for(Map.Entry m:hm.entrySet()){
- System.out.println(m.getKey()+" "+m.getValue());
- }
- }
- }
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
- /**
- * Class Auction
- *
- * @author affllah14
- * @version 1.0
- */
- import java.util.ArrayList;
- public class Auction
- {
- private ArrayList<Lot> lotsArr; //list barang pada pelelangan
- private int LotNum;
- public Auction() //method membuat auction baru
- {
- lotsArr = new ArrayList<Lot>(); //list barang
- LotNum = 1; //nomor awal barang diset 1
- }
- /**
- * Method untuk memasukkan item lelangan baru
- * Memasukkan nama barang ke nomor ke-i
- * LotName = nama barang
- * LotNum = nomor barang
- */
- public void enterLot(String LotName)
- {
- lotsArr.add(new Lot(LotNum, LotName));
- LotNum++;
- }
- /**
- * Method untuk menampilkan seluruh barang yang dilelang
- */
- public void showlotsArr()
- {
- for(Lot lot : lotsArr) {
- System.out.println(lot.detail());
- }
- }
- /**
- * Method untuk melakukan bid/tawaran.
- * Jika berhasil melakukan bid akan muncul Success Message.
- * CurrentLotNum = id lot yang akan di Bid.
- * bidder = orang yang akan menawar.
- * value = harga tawaran.
- */
- public void MakeBid(int CurrentLotNum, Person bidder, long value)
- {
- Lot selectedLot = getLot(CurrentLotNum);
- if(selectedLot != null) {
- boolean check = selectedLot.bidFor(new Bid(bidder, value));
- if(check) { //jika bid lebih besar dari yang sebelumnya
- System.out.println("Bid for Lot number " +
- CurrentLotNum + " Success, Bidden by " +bidder.getName()+ " with price " + "Rp "+value);
- }
- else { //jika bid kurang dari yang sebelumnya
- Bid highestBid = selectedLot.getHighestBid();
- System.out.println("Lot number :\t" + CurrentLotNum +
- "\nwith the highest Bid:\t" +
- highestBid.getBid());
- }
- }
- }
- /**
- * Method untuk mencari id lot
- * Return id lot jika ada, jika tidak return null
- * CurrentLotNum = id lot yang perlu di return
- */
- public Lot getLot(int CurrentLotNum)
- {
- if((CurrentLotNum > 0) && (CurrentLotNum < LotNum)) {
- Lot selectedLot = lotsArr.get(CurrentLotNum - 1);
- if(selectedLot.getId() != CurrentLotNum) {
- System.out.println("Internal error : Lot number " +
- selectedLot.getId() +
- " has been returned, Not a Lot number " +
- CurrentLotNum);
- selectedLot = null;
- }
- return selectedLot;
- }
- else {
- System.out.println("Lot number : " + CurrentLotNum +
- " doesn't exist.");
- return null;
- }
- }
- public void close()
- {
- System.out.println("Auction has ended.");
- for(Lot lot : lotsArr)
- {
- System.out.println(lot.getId() + ": " +lot.getLotName());
- Bid bid = lot.getHighestBid();
- if (bid==null)
- {
- System.out.println("There is no bid for this Lot");
- }
- else
- {
- System.out.println("This Lot has been sold to " +
- bid.getBidder().getName() + " with price :\t"
- + bid.getBid());
- }
- }
- }
- }
- /**
- * Class Lot
- *
- * @author affllah14
- * @version 1
- *
- */
- public class Lot//method untuk membuat Lot
- {
- private final int Id;//id barang
- private String LotName;//nama barang
- private Bid highestBid;//tawaran tertinggi
- public Lot(int number, String LotName) //buat lot baru
- {
- this.Id = number; //id
- this.LotName = LotName; //nama barang
- }
- //parameter nya merupakan bid untuk cek harga bid sebelumnya
- public boolean bidFor(Bid bid)
- {//Method untuk mengecek apakah tawaran lebih besar dari tawaran tertinggi
- if((highestBid == null) ||
- (bid.getBid() > highestBid.getBid())) { //jika benar
- highestBid = bid; //update tawaran tertinggi
- return true;
- }
- else {
- return false;
- }
- }
- public String detail() //method untuk return id dan tawaran tertinggi
- {
- String details = Id + ": " + LotName;
- if(highestBid != null) {
- details += " Bid with price " +
- highestBid.getBid();
- }
- else {
- details += " (no bid yet)";
- }
- return details;
- }
- public int getId()
- {
- return Id;
- }
- public String getLotName()
- {
- return LotName;
- }
- public Bid getHighestBid()
- {
- return highestBid;
- }
- }
- /**
- * Class Person
- *
- * @author affllah14
- * @version 1.0
- */
- public class Person
- {
- private final String name;
- public Person(String newName) //menambahkan nama
- {
- this.name = newName;
- }
- public String getName() //method return nama yang ditambahkan
- {
- return name;
- }
- }
- /**
- * Class Bid
- *
- * @author affllah14
- * @version1
- *
- */
- public class Bid
- {
- private final Person bidder;//orang yang menawar
- private final long value;//untuk menyimpan harga tawaran
- public Bid(Person bidder, long value) //method muntuk membuat penawaran
- {
- this.bidder = bidder; //nama
- this.value = value; //jumlah tawaran
- }
- public Person getBidder()
- {
- return bidder;
- }
- public long getBid()
- {
- return value;
- }
- }
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.
ketika pelelangan berakhir, kita dapat mengakhirinya dengan klik kanan pada object Auction dan pilih close().
Komentar
Posting Komentar