Thursday, November 26, 2020

ETS - 3 Pemrograman Berbasis Obyek - Part 2 (No 3 dan No 4)

  • Sourcecode class ATMMain.java :
import java.util.Scanner;
/**
 * Write a description of class ATMMain here.
 *
 * @author Refaldyka Galuh Pratama
 */
public class ATMMain 
{
    
 public static void main(String[] args){
     Scanner scan = new Scanner(System.in);
     int idAccount,pinAccount;
     int menu,x;
     boolean loop=true;
     System.out.println("Selamat Datang di ATM Link");
     System.out.println("Silahkan masukkan Kartu ATM anda :");
     idAccount = scan.nextInt();
     System.out.println("Silahkan masukkan PIN ATM anda :");
     pinAccount = scan.nextInt();
     Account recentAccount = new Account(idAccount,pinAccount,"",0);
     recentAccount.peopleAccount(idAccount,pinAccount);
     while(loop){
         System.out.println("Silahkan pilih transaksi yang anda inginkan");
         System.out.println("1. 250.000");
         System.out.println("2. 500.000");
         System.out.println("3. 1.000.000");
         System.out.println("4. 1.250.000");
         System.out.println("5. Registrasi E-Channel");
         System.out.println("6. Penarikan Jumlah Lain");
         System.out.println("7. Informasi dan Mutasi");
         System.out.println("8. Menu Lain");
         menu = scan.nextInt();
         switch(menu){
             case 1:
             System.out.println("Layanan Tidak Tersedia!!");
             break;
             case 2:
             System.out.println("Layanan Tidak Tersedia!!");
             break;
             case 3:
             System.out.println("Layanan Tidak Tersedia!!");
             break;
             case 4:
             System.out.println("Layanan Tidak Tersedia!!");
             break;
             case 5:
             System.out.println("Layanan Tidak Tersedia!!");
             break;
             case 6:
             System.out.println("Layanan Tidak Tersedia!!");
             break;
             case 7:
             System.out.println("Layanan Tidak Tersedia!!");
             break;
             case 8:
             int menu2;
             System.out.println("Silahkan pilih transaksi yang anda inginkan");
             System.out.println("1. Ganti Pin");
             System.out.println("2. Penarikan Tunai");
             System.out.println("3. Transfer");
             System.out.println("4. Informasi Saldo");
             System.out.println("5. Pembayaran");
             System.out.println("6. Uang Elektronik");
             System.out.println("7. Menu Sebelumnya");
             System.out.println("8. BNI Simponi / DPLK");
             menu2 = scan.nextInt();
             switch(menu2){
             case 1:
             System.out.println("Layanan Tidak Tersedia!!");
             break;
             case 2:
             System.out.println("Layanan Tidak Tersedia!!");
             break;
             case 3:
                 int menu3;
                 System.out.println("Pilih Pemindahbukuan Yang Anda Inginkan\n");
                 System.out.println("1. Dari Rekening Giro");
                 System.out.println("2. Dari Rekening Tabungan");
                 System.out.println("3. Cancel");
                 menu3 = scan.nextInt();
                 switch(menu3){
                     case 1:
                     System.out.println("Layanan Tidak Tersedia!!");
                     break;
                     case 2:
                     int menu4;
                     System.out.println("Pilih Tujuan Transfer Yang Anda Inginkan");
                     System.out.println("1. Ke Rekening BNI");
                     System.out.println("2. Ke Rekening Lain");
                     menu4 = scan.nextInt();
                     switch(menu4){
                         case 1:
                         int menu5;
                         System.out.println("Silahkan Masukkan Nomor Rekening Tujuan");
                         int a = scan.nextInt();
                         Account TargetAccount = new Account(a,0,"Tokopedia",0);
                         System.out.println("1. Jika Benar");
                         System.out.println("2. Jika Salah");
                         menu5 = scan.nextInt();
                         switch(menu5){
                             case 1:
                             System.out.println("Masukkan Jumlah Uang :");
                             double money = scan.nextDouble();
                             System.out.println("1. Jika Benar");
                             System.out.println("2. Jika Salah");
                             int menu6;
                             menu6 = scan.nextInt();
                             if(recentAccount.getBalance()<money){
                                 System.out.println("Uang Anda Tidak Cukup Transaksi dibatalkan!!");
                                 loop=false;
                                 break;
                                }
                                else{
                                    switch(menu6){
                                 case 1:
                             System.out.println("Masukkan Berita Transfer :");
                             double berita = scan.nextDouble();
                             System.out.println("Dari           :"+recentAccount.getaccountID());
                             System.out.println("ke             :"+a);
                             System.out.println("Penerima       :"+TargetAccount.getName());
                             System.out.println("Jumlah         :"+money);
                             System.out.println("Berita         :"+berita);
                             System.out.println("1. Jika Benar");
                             System.out.println("2. Jika Salah");
                             int menu7;
                             menu7 = scan.nextInt();
                             switch(menu7){
                                 case 1:
                                 System.out.println("Transaksi selesai. Perlu transaksi yang lain?");
                                 System.out.println("1. Ya");
                                 System.out.println("2. Tidak");
                                 int menu8;
                                 menu8 = scan.nextInt();
                                 if(menu8==1){
                                     continue;
                                    }
                                    else{
                                        System.out.println("Terima Kasih Telah Menggunakan ATM Link. Jangan lupa mencabut kartu.");
                                        loop=false;
                                    }
                                 break;
                                 case 2:
                                 System.out.println("Layanan Belum Tersedia!!");
                                 break;
                                }
                                break;
                         case 2:
                         System.out.println("Layanan Belum Tersedia!!");
                         break;
                        }
                                }
                                break;
                         case 2:
                         System.out.println("Layanan Belum Tersedia!!");
                         break;
       
                    }
                    break;
                                      case 2:
                         System.out.println("Layanan Belum Tersedia!!");
                         break;
            }
        }
        break;
        case 4:
             System.out.println("Account ID     :"+recentAccount.getaccountID());
             System.out.println("Nama           :"+recentAccount.getName());
             System.out.println("Saldo          :"+recentAccount.getBalance());
             System.out.println("Ingin Melakukan transaksi yang lain?");
             System.out.println("1. Ya");
             System.out.println("2. Tidak");
             int menuinfor;
             menuinfor = scan.nextInt();
             if(menuinfor==1){
                 continue;
                }
                else{
                System.out.println("Terima Kasih Telah Menggunakan ATM Link. Jangan lupa mencabut kartu.");
                loop=false;    
                }
             break;
             case 5:
             System.out.println("Layanan Tidak Tersedia!!");
             break;
             case 6:
             System.out.println("Layanan Tidak Tersedia!!");
             break;
             case 7:
             System.out.println("Layanan Tidak Tersedia!!");
             break;
             case 8:
             System.out.println("Layanan Tidak Tersedia!!");
             break;
    }
}
}
}
}
  • Sourcecode class Account.java:


/**
 * Write a description of class Account here.
 *
 * @author Refaldyka Galuh Pratama
 */
public class Account
{
    private String Name;
    private int accountID;
    private int PIN;
    public double balance;
    
    
    public Account(int accountID, int PIN, String Name, double balance){
        this.accountID  = accountID;
        this.PIN        = PIN;
        this.balance    = balance;
        this.Name       = Name;
    }
    
    
    
    public void peopleAccount(int accountID, int PIN){
        if((accountID == 1)&&(PIN == 1234)){
            setName("Refaldyka Galuh Pratama");
            this.balance = 200000;
        }
        else if((accountID==2)&&(PIN==2345)){
            setName("Andymas Narendra Bagaskoro");
            balance = 500000;
        }
        else if((accountID==3)&&(PIN==3456)){
            setName("Fajar Satria");
            balance = 1000000;
        }
    }
    
    public int getaccountID(){
        return accountID;
    }
    
    public int getPIN(){
        return PIN;
    }
    
    public void setName(String Name){
        this.Name = Name;
    }
    
    public String getName(){
        return Name;
    }
    
    public void setBalance(double balanceNew){
        this.balance=balanceNew;
    }
    
    public double getBalance(){
        return balance;
    }
}
LINK DEMO CODING : https://youtu.be/rPU9B5EbZ-g
LINK DEMO KETIKA PROGRAM DIJALANKAN : https://youtu.be/h9bVyh-tTk8

Wednesday, November 25, 2020

ETS - 3 Pemrograman Berbasis Obyek

  • Skenario Fungsionalitas Aplikasi pada mesin ATM Berdasarkan Video ini
    1. Program dijalankan setelah memasukkan kartu ( kartu ini sebagai USER ID untuk masuk ) kemudian memasukkan PIN dari user.
    2. Kemudian menampilkan beberapa pilihan yang bisa dipilih tetapi user memilih "menulain" ( yang bisa disebut menu kedua ) nantinya terbuka rentetan pilihan lain.
    3. User memilih menu "transfer" pada menu kedua.
    4. menampilkan 2 pilihan yaitu 1. dari rekening giro dan 2. dari rekening tabungan. dan user memilih pilihan kedua yaitu "dari rekening tabungan"
    5. menampilkan 2 pilihan yaitu 1. ke rekening BNI dan 2. ke rekening bank lain. dan user memilih pilihan "ke rekening BNI". 
    6. dari sini user memasukkan nomor rekening dan sudah pasti nomor rekening tersebut terdaftar pada database bank. 
    7. Kemudian ada dua pilihan 1.Tekan Jika Benar ( akan lanjut pada menu berikutnya ) 2. Tekan Jika Salah ( akan menghapus nomor rekening yang dimasukkan ) tetapi user memilih pilihan pertama. 
    8. User memasukkan nominal yang akan dikirim ke rekening tujuan.
    9. Kemudian ada dua pilihan lagi 1.Tekan Jika Benar ( akan lanjut pada menu berikutnya ) 2. Tekan Jika Salah ( akan menghapus nomor rekening yang dimasukkan ) tetapi user memilih pilihan pertama. 
    10. User memasukkan berita transfer ( tidak masalah jika dikosongkan ). 
    11. Kemudian ada dua pilihan lagi 1.Tekan Jika Benar ( akan lanjut pada menu berikutnya ) 2. Tekan Jika Salah ( akan menghapus nomor rekening yang dimasukkan ) tetapi user memilih pilihan pertama. 
    12. Menampilkan lagi rentetan yang sudah diinput oleh user ATM sebagai tampilan konfirmasi sebelum transaksi benar benar dilanjutkan. dan terdapat pilihan "tekan YA" dan "tekan TIDAK".
    13. User memilih "YA" sehingga transaksi diproses oleh ATM dan nantinya keluar struk bukti transfer.
  • Definisikan Class dan gambarkan Diagram Class untuk membangun aplikasi tersebut.
  • ATMMain.java = sebagai fungsi utama dan fungsi untuk transfer
  • Account.java  = yang berisi data data akun user

Tuesday, November 17, 2020

Tugas 6 PBO-C "World of Zuul"

    Pada tugas kali ini, saya mencoba membuat sebuah program yang bernama "World of Zuul" dimana program ini mengimplementasikan prinsip - prinsip dalam membuat program yaitu loose coupling dan high cohesion. 

    Coupling adalah keterikatan program ditinjau dari hubungan antar modul atau class. Sementara Cohesion adalah keterikatan program ditinjau dari hubungan antar method dalam satu class. Program "World of Zuul" ini menggunakan 5 class yaitu Class Game, Class Command, Class CommandWords, Class Room, dan Class Parser.


  • Sourcecode Game:
    public class Game
    {
        private Parser parser;
        private Room currentRoom;
           
        /**
         * Create the game and initialise its internal map
         */
        public Game()
        {
            createRooms();
            parser = new Parser();
        }
     
        /**
         * Create all the rooms and link their exits together.
         */
        private void createRooms()
        {
            Room outside, theater, pub, lab, office;
         
            // Create the rooms
            outside = new Room("outside the main entrance of the university");
            theater = new Room("in a lecture theater");
            pub = new Room("in the campus pub");
            lab = new Room("in a computing lab");
            office = new Room("in the computing admin office");
           
            // initialise room exits
            outside.setExits(null, theater, lab, pub);
            theater.setExits(null, null, null, outside);
            pub.setExits(null, outside, null, null);
            lab.setExits(outside, office, null, null);
            office.setExits(null, null, null, lab);
     
            currentRoom = outside;  // start game outside
        }
     
        /**
         *  Main play routine. Berulang hingga selesai permainan.
         */
        public void play()
        {            
            printWelcome();
     
            // enter the main command loop. Here we repeatedlu read commands and
            // execute the until the game is over.
                   
            boolean finished = false;
            while (! finished) {
                Command command = parser.getCommand();
                finished = processCommand(command);
            }
            System.out.println("Thank you for playing.  Good bye.");
        }
     
        /**
         * Print out the opening message for the player.
         */
        private void printWelcome()
        {
            System.out.println();
            System.out.println("Welcome to the World of Zuul!");
            System.out.println("World of Zuul is a new, incredibly boring adventure game.");
            System.out.println("Type 'help' if you need help.");
            System.out.println();
            System.out.println("You are " + currentRoom.getDescription());
            System.out.print("Exits: ");
            if(currentRoom.northExit != null) {
                System.out.print("north ");
            }
            if(currentRoom.eastExit != null) {
                System.out.print("east ");
            }
            if(currentRoom.southExit != null) {
                System.out.print("south ");
            }
            if(currentRoom.westExit != null) {
                System.out.print("west ");
            }
            System.out.println();
        }
     
        /**
         * Given a command, process (that is : execute) the command.
         * If this command ends the game, true is returned, otherwise false is
         * returned.
         * @param command 
         * @return bool
         */
        private boolean processCommand(Command command)
        {
            boolean wantToQuit = false;
     
            if(command.isUnknown()) {
                System.out.println("I don't understand...");
                return false;
            }
     
            String commandWord = command.getCommandWord();
            if (commandWord.equals("help"))
                printHelp();
            else if (commandWord.equals("go")) 
                goRoom(command);
            
            else if (commandWord.equals("quit")) 
                wantToQuit = quit(command);
            
            return wantToQuit;
        }
     
        // Implementasi of user commands:
     
        /**
         * Print out some help information.
         * Here we print some stupid, cryptic message and ad list of the
         * command words
         */
        private void printHelp()
        {
            System.out.println("You are lost. You are alone. You wander");
            System.out.println("around at the university.");
            System.out.println();
            System.out.println("Your command words are:");
            System.out.println("   go quit help");
        }
     
        /**
         * Try to go to one direction. If there is an exit, enter
         * the new room, otherwise print an error message.
         */
        private void goRoom(Command command)
        {
            if(!command.hasSecondWord()) {
                // if there is no second word, we don't know where to go ...
                System.out.println("Go where?");
                return;
            }
     
            String direction = command.getSecondWord();
     
            // Try to leave current room
            Room nextRoom = null;
            if(direction.equals("north"))
                nextRoom = currentRoom.northExit;
            if(direction.equals("east"))
                nextRoom = currentRoom.eastExit;
            if(direction.equals("south"))
                nextRoom = currentRoom.southExit;
            if(direction.equals("west"))
                nextRoom = currentRoom.westExit;
     
            if (nextRoom == null) {
                System.out.println("There is no door!");
            }
            else {
                currentRoom = nextRoom;
                System.out.println("You are " + currentRoom.getDescription());
                System.out.print("Exits: ");
                if(currentRoom.northExit != null)
                    System.out.print("north ");
                if(currentRoom.eastExit != null)
                    System.out.print("east ");
                if(currentRoom.southExit != null) 
                    System.out.print("south ");
                if(currentRoom.westExit != null)
                    System.out.print("west ");
                System.out.println();
            }
        }
     
        /**
         * "Quit" was entered. Check the rest of the command to see
         * whether we really quit the game. Return true, if this command
         * quits the game, false otherwise.
         * 
         * @return bool
         */
        private boolean quit(Command command)
        {
            if(command.hasSecondWord()) {
                System.out.println("Quit what?");
                return false;
            }
            else {
                return true;  // signal that we want to quit
            }
        }
    }
    
  • Sourcecode Command:
    public class Command
    {
        private String commandWord;
        private String secondWord;
     
    
        public Command(String firstWord, String secondWord)
        {
            commandWord = firstWord;
            this.secondWord = secondWord;
        }
     
        /**
         * Return the command word (the first word) of this command. If the
         * command was not understood, the result is null.
         * @return String commandWord
         */
        public String getCommandWord()
        {
            return commandWord;
        }
     
        /**
         * Return the second word of this command. Returns null if there was no
         * second word.
         * @return String secondWord
         */
        public String getSecondWord()
        {
            return secondWord;
        }
     
        /**
         * Return true if this command was not understood.
         * @return bool
         */
        public boolean isUnknown()
        {
            return (commandWord == null);
        }
     
        /**
         * Return true if the command has a second word.
         * @return bool
         */
        public boolean hasSecondWord()
        {
            return (secondWord != null);
        }
    }
    
  • Sourcecode Commandwords:
    public class CommandWords
    {
        // a constant array that holds all valid command words
        private static final String[] validCommands = {
            "go", "quit", "help", "look"
        };
     
        /**
         * Constructor - initialise the command words.
         */
        public CommandWords()
        {
            // nothing to do at the moment... 
        }
     
        /**
         * Check whether a given String is a valid command word. 
         * Return true if it is, false if it isn't.
         * @return bool
         */
        public boolean isCommand(String aString)
        {
            for(int i = 0; i < validCommands.length; i++) {
                if(validCommands[i].equals(aString))
                    return true;
            }
            //if we get here, the string was not found in the commands 
            return false;
        }
    }
    
  • Sourcecode Room:
    public class Room
    {
        public String description;
        public Room northExit;
        public Room southExit;
        public Room eastExit;
        public Room westExit;
     
        /**
         * Create a room described "description". Initially, it has
         * no exits. "description" is something like "a kitchen" or
         *"an open court yard".
         *
         * @param String description
         */
        public Room(String description)
        {
            this.description = description;
        }
     
        public void setExits(Room north, Room east, Room south, Room west)
        {
            if(north != null)
                northExit = north;
            if(east != null)
                eastExit = east;
            if(south != null)
                southExit = south;
            if(west != null)
                westExit = west;
        }
     
    
        public String getDescription()
        {
            return description;
        }
     
    }
    
  • Sourcecode Parser:
    import java.io.BufferedReader;
    import java.io.InputStreamReader; 
    import java.util.StringTokenizer;
    import java.lang.String;
    
    public class Parser
    {
        private CommandWords commands;  // holds all valid command words
     
        public Parser()
        {
            commands = new CommandWords();
        }
     
        public Command getCommand()
        {
            String inputLine = "";   // will hold the full input line
            String word1;
            String word2;
               
            System.out.print("> ");     // print prompt
            
            BufferedReader reader = new BufferedReader (new InputStreamReader(System.in));
            try {
                inputLine = reader.readLine();
            }
            catch (java.io.IOException exc){
                System.out.println ("There was an error during reading: " + exc.getMessage());
            }
    
            StringTokenizer tokenizer = new StringTokenizer(inputLine);
      
            if(tokenizer.hasMoreTokens()) 
                word1 = tokenizer.nextToken();      // get the first word
            else
                word1=null;
            if(tokenizer.hasMoreTokens()) 
                word2 = tokenizer.nextToken();      // get the second word
            else
                word2=null;
    
            if(commands.isCommand(word1))
                return new Command(word1, word2);
            else
                return new Command(null, word2);
        }
    }
Screenshot akhir program ketika dijalankan:


Terima kasih telah berkunjung. Mohon maaf apabila ada kesalahan dalam penulisan. πŸ‘ΎπŸ‘Ύ

Tuesday, November 10, 2020

Tugas 5 PBO-C "Tech Support System"

    Pada tugas kali ini, saya mencoba membuat sebuah program Tech Support System berupa chatbot dimana chatbot tersebut berfungsi untuk menjawab pertanyaan-pertanyaan dari para user / customer. Chatbot ini akan merespons jawaban yang berbeda tergantung dari kata kunci yang dimasukkan user / customer. 

    Pada program ini terdapat 3 Class yaitu Class SupportSystem, Class InputReader, dan Class Responder. Class SupportSystem berfungsi untuk menjalankan program yaitu dengan menjalankan fungsi start(). Class InputReader berfungsi untuk membaca semua input keyword yang diberikan user / customer. Class Responder berfungsi memberikan respon / jawaban dari pertanyaan user /customer.

  • Sourcecode SupportSystem:
  •  import java.util.*;  
     public class SupportSystem  
     {    
       private InputReader reader;  
       private Responder responder;  
       
       public SupportSystem()  
       {  
         reader = new InputReader();  
         responder = new Responder();  
       }  
      
       public void start()  
       {  
         boolean finished = false;  
         printWelcome();  
         while(!finished)  
         {  
           HashSet<String> input = reader.getInput();  
           if(input.contains("exit") || input.contains("quit")) {
               finished = true;
            }  
           else  
           {  
             String response = responder.generateResponse(input);  
             System.out.println(response);  
           }  
         }  
         printGoodbye();  
       }  
         
       private void printWelcome()  
       {  
         System.out.println("Halo, ada yang bisa dibantu");  
         System.out.println("Tekan 'exit' atau 'quit' untuk mengakhiri program");  
       }  
         
       private void printGoodbye()  
       {  
         System.out.println("Sampai jumpa lagi");
         System.out.println("Terima kasih sudah bertanya");
       }  
     } 
    
  • Sourcecode Inputreader:
  •  import java.util.*;  
     public class InputReader  
     {  
       private Scanner reader;  
        
       public InputReader()  
       {  
         reader = new Scanner(System.in);  
       }  
       //Membaca pertanyaan  
       public HashSet<String> getInput()  
       {  
         System.out.print("> ");  
         String inputLine = reader.nextLine().trim().toLowerCase();  
         String[] wordArray = inputLine.split(" ");  
         HashSet<String> words = new HashSet<String>();  
         for(String word : wordArray)  
         {  
           words.add(word);  
         }  
         return words;  
       }  
     }  
    
  • Sourcecode Responder:
  •  import java.util.*;  
     public class Responder  
     {  
         private Random randomGenerator;  
         private ArrayList<String> defaultResponses;  
         private HashMap<String, String> responseMap;  
      
         public Responder()  
         {  
           defaultResponses = new ArrayList<String>();  
           responseMap = new HashMap<String, String>();  
           fillResponsesMap();  
           fillDefaultResponse();  
           randomGenerator = new Random();  
         }  
          
         public String generateResponse(HashSet<String> words)  
         {  
           for(String word : words)  
           {  
             String response = responseMap.get(word);  
             if(response != null)  
             {return response;}  
           }  
           return pickDefaultResponse();  
         }  
         
         private void fillResponsesMap()  
         {  
           responseMap.put("bug", "Silahkan dicoba debug sendiri terlebih dahulu.");  
           responseMap.put("virus", "Silahkan download antivirus yang mutakhir");  
           responseMap.put("halo", "Halo juga");  
           responseMap.put("slow", "Silahkan cek memori anda. Bersihkan memori jika terlalu penuh");
           responseMap.put("lag", "Silahkan cek kuota atau koneksi internet");
           responseMap.put("rusak", "Silahkan mengbubungi bagian CS");  
           responseMap.put("beli", "Silahkan dilihat-lihat terlebih dahulu barang dan harganya di website resmi kami");
           responseMap.put("pokemon", "Pika - pika");
         }  
          
         private void fillDefaultResponse()  
         {  
           defaultResponses.add("Saya tidak paham apa yang anda maksud");  
           defaultResponses.add("Bisa diulang apa maksud anda?");  
           defaultResponses.add("Silahkan coba lagi");  
           defaultResponses.add("Cek penggunaan spasi dan huruf kapital");  
           defaultResponses.add("Saya tidak mengerti bahasa anda"); 
           defaultResponses.add("Try again! read our guide book to use the support system chatbot");
         }  
         
         private String pickDefaultResponse()  
         {  
           int index = randomGenerator.nextInt(defaultResponses.size());  
           return defaultResponses.get(index);  
         }  
     }  
    


Cara Penggunaan Chatbot :


Terima kasih telah berkunjung. Mohon maaf apabila ada salah kata. 😁



Tuesday, November 3, 2020

Tugas PBO-C Pertemuan ke-Empat "Auction System"

     Pada tugas kali ini, saya akan membuat sebuah program sederhana berupa Auction System. Program Auction System ini mengimplementasikan program pelelangan barang kepada banyak orang dimana barang akan dilelang kepada orang yang menawar barang tersebut dengan harga tertinggi. Pada program ini terdapat beberapa class, yaitu class Auction, Lot, Bid, dan Person. 

        Class Auction berfungsi sebagai tempat berlangsungnya pelelangan barang. Class Lot berfungsi untuk menyimpan penjelasan dari berbagai barang, seperti deskripsi barang dan tawaran tertinggi. Class Bid berfungsi sebagai tempat untuk melakukan penawaran. Class Person berfungsi untuk menyimpan nama-nama orang yang melakukan penawaran.

Source Code Class "Main"     :

import java.util.ArrayList;
 
public class Main {
    // The list of lots in this auction.
    private ArrayList<Lot> lots;
   
    // The number that will be given to the next lot entered
    // into this auction.
    private int nextLotNumber;
   
    /**
     * Create a new auction.
     */
    public Main () {
        lots = new ArrayList<Lot>();
        nextLotNumber = 1;
    }
   
    /**
     * Enter a new lot into the auction.
     * @param description A description of the lot.
     */
    public void enterLot (String description) {
        lots.add(new Lot(nextLotNumber, description));
        nextLotNumber++;
    }
   
    /**
     * Show the full list of lots in this auction.
     */
    public void showLots () {
        for (Lot lot : lots) {
            System.out.println(lot.getNumber() + "." + lot.toString());
        }
    }
   
    /**
     * Make a bid for a lot.
     * A message is printed indicating wether the bid is
     * successful or not.
     * @param lotNumber The lot being bid for.
     * @param bidder The person biddng for the lot.
     * @param value The value of the bid.
     */
    public void makeABid (int lotNumber, Person bidder, long value) {
        Lot selectedLot = getLot(lotNumber);
       
        if (selectedLot != null) {
            boolean succesful = selectedLot.bidFor(new Bid(bidder,
                                value));
           
            if (succesful) {
                System.out.println("The bid for lot number " +
                                    lotNumber + " was succesful.");
            } else {
                // Report which bid is higher.
                Bid highestBid = selectedLot.getHighestBid();
                System.out.println("Lot number: " + lotNumber +
                                   " already has a bid of: " +
                                    highestBid.getValue());
            }
        }
    }
   
    /**
     * Return the lot with the given number. Return null
     * if a lot with this number does not exist.
     * @param lotNumber The number of the lor to return.
     */
    public Lot getLot (int lotNumber) {
        if ((lotNumber >= 1) && (lotNumber < nextLotNumber)) {
            // The number seems to be reasonable.
            Lot selectedLot = lots.get(lotNumber - 1);
           
            // Include a confidence check to be sure we have the
            // right lot.
            if (selectedLot.getNumber() != lotNumber) {
                System.out.println("Internal error: Lot number " +
                                  selectedLot.getNumber() +
                                  " was returned instead of " +
                                  lotNumber);
                selectedLot = null;
            }
            return selectedLot;
        } else {
            System.out.println("Lot number: " + lotNumber +
                               " does not exist.");
            return null;
        }
    }
   
    /**
      * Remove the lot with the given lot number.
     * @param number The number of the lot to be removed.
     * @return The Lot with the given number, or null if
     * there is no such lot.
     */
    public Lot removeLot(int number) {
        for (Lot lot : lots) {
            if (lot.getNumber() > number) {
                lot.changeLotNumber();
            }
        }
       
        return lots.remove(number - 1);
    }
   
    // Closing method for the auction.
    public void close () {
        if (lots.size() >= 1) {
            for (Lot lot : lots) {
                if (lot.getHighestBid() != null) {
                    System.out.print("Lot number " + lot.getNumber() +
                                     " has been sold with value of: "
                                     + lot.getHighestBid().getValue());
                    System.out.println(". The winner of the auction for " +
                                       "this lot is: " +
                                       lot.getHighestBid().infoBidder().getName()
                                       + ".");
                } else {
                    System.out.println("Lot number " + lot.getNumber() +
                                       " has no bidder,");
                }
            }
        } else {
            System.out.println("This auction has no lot");
        }
    }
}

Source Code Class "Lot"        :

public class Lot {
    private Bid highestBid;     // the current highest bid for this lot.
    private int lotNumber;      // this lot number.
    private String description; // description of this lot.
   
    // This is constuctor
    public Lot (int number, String desc) {
        lotNumber = number;
        description = desc;
    }
   
    /**
     * Attempt to bid for this lot. A successful bid
     * must have a value higher than any existing bid,.
     * @param bid a new bid
     * @return true if bid successful, false otherwise.
     */
    public boolean bidFor (Bid bid) {
        if (highestBid == null) {
            // There is no prevous bid.
            highestBid = bid;
            return true;
        } else if (bid.getValue() > highestBid.getValue()) {
            // The bid is better than the previous one.
            highestBid = bid;
            return true;
        } else {
            // The bid is not better
            return false;
        }
    }
   
    // Return the highest bid for this lot.
    public Bid getHighestBid () {
        return highestBid;
    }
   
    // Return number of this lot.
    public int getNumber () {
        return lotNumber;
    }
   
    public String toString () {
        return description;
    }
   
    public void changeLotNumber () {
        lotNumber--;
    }
}

Source Code Class "Bid"        :

public class Bid {
    private long value;
    private Person bidder;
   
    // This is constructor.
    public Bid (Person thisBidder, long val) {
        bidder = thisBidder;
        value = val;
    }
   
    // Return the value on this bid.
    public long getValue () {
        return value;
    }
   
    // To get information of bidder, use this method
    public Person infoBidder () {
        return bidder;
    }
}

Source Code Class "Person"   :

public class Person {
    private String name;
   
    public Person (String namePerson) {
        name = namePerson;
    }
   
    public String getName () {
        return name;
    }
}


Cara Menggunakan "Auction System" ini :





















Demikian jika ada kesalahan mohon dikoreksi. Terima kasih telah berkunjung 😁

Tugas PBO-C Pertemuan ke-Empat "Collection Class"

    Java Collection adalah framework yang menyediakan sebuah tempat untuk menyimpan dan memanipulasi sekumpulan objek. 

    Adapun kegiatan yang dapat dilakukan pada sebuah data seperti pencarian, pengurutan, menghapus, memasukkan dapat dilakukan oleh Java Collection. Java Collection secara sederhana merupakan sebuah objek. Kerangka kerja Java Collection menyediakan dalam bentuk interfaces (Set, List, Queue, Deque, dll) dan untuk class (ArrayList, Vector, LinkedList, PriorityQueue, HashSet, LinkedHashSet, TreeSet, dll).

  • ArrayList dengan "While"
                 Sourcecode : 
import java.util.*;
public class main
{
  public static void main(String[] args)
  {
      //membuat arraylist
      ArrayList <String> al = new ArrayList<String>();
     
      //menambah object ke arrayList
      al.add("Rendra");
      al.add("Fajar");
      al.add("11123");
      al.add("901928");
      al.add("01928");
     
      //menampilkan isi arrayList
      Iterator itr = al.iterator();
      while(itr.hasNext())
      {
          System.out.println(itr.next());
      }
  }  
}
                 Output        :


  • ArrayList dengan "For"
                 Sourcecode   
import java.util.ArrayList;
public class main
{
    public static void main(String[] args){
        //membuat arraylist
        ArrayList<String> al = new ArrayList<String>();
       
        //menambahkan object
        al.add("Rendra");
        al.add("Fajar");
        al.add("11123");
        al.add("901928");
        al.add("01928");
       
        //menampilkan isi arrayList
        for(String obj:al){
            System.out.println(obj);
        }
    }
}
                 Output           :
  • ArrayList dengan "Class"
                 Sourcecode  Main 
import java.util.*;
public class Main
{
   public static void main(String[] args)
   {
       
       //data
       Mahasiswa mhs1 = new Mahasiswa ("K121", "Andymas Narendra", 67, 69, 91);
       Mahasiswa mhs2 = new Mahasiswa ("K122", "Fajar Satria", 57, 89, 93);
       Mahasiswa mhs3 = new Mahasiswa ("K123", "Melanchton Benefacio", 77, 79, 80);
       Mahasiswa mhs4 = new Mahasiswa ("K124", "Refaldyka Galuh", 67, 79, 60);
       Mahasiswa mhs5 = new Mahasiswa ("K125", "Hendri Firmansyah", 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()+" ");
       }
    }
}
                 Sourcecode  SubMain 
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;
}
}
                 Output           :



  • Combine ArrayList
                 Sourcecode   
            
import java.util.ArrayList;
import java.util.Iterator;
 
public class Main
{
public static void main(String[] args)
{
//membuat arraylist1
ArrayList<String> al = new ArrayList <String>();
 
//menambahkan objek
al.add("Nopal");
al.add("Andra");
al.add("Sinta");
al.add("Myth");
 
//membuat arraylist2
ArrayList<String> al2 = new ArrayList <String>();
 
//menambahkan objek
al2.add("Mel");
al2.add("Rendra");
 
//menambahkan al2 ke al
al.addAll(al2);
 
//menampilkan isi
Iterator itr=al.iterator();
 
while(itr.hasNext())
{
System.out.println(itr.next());
}
}
}
     Output           :


  • Remove All ArrayList
                 Sourcecode   
import java.util.ArrayList;
import java.util.Iterator;
 
public class Main
{
public static void main (String[] args)
{
//membuat arraylist1
ArrayList<String> al = new ArrayList<String>();
 
//menambahkan objek
al.add("Fajar");
al.add("Rendra");
al.add("Andra");
al.add("Asca");
 
//membuat arraylist2
ArrayList<String> al2 = new ArrayList <String>();
 
//menambahkan objek
al2.add("Nopal");
al2.add("Mel");
 
//remove al2
al.removeAll(al2);
 
//menampilkan isi
Iterator itr=al.iterator();
while(itr.hasNext())
{
System.out.println(itr.next());
}
}
}
     Output           :


  • Retain All ArrayList
                 Sourcecode   
import java.util.ArrayList;
import java.util.Iterator;
 
public class Main
{
public static void main (String[] args)
{
//membuat arraylist1
ArrayList<String> al = new ArrayList<String>();
 
//menambahkan objek
al.add("Fajar");
al.add("Rendra");
al.add("Andra");
al.add("Asca");

//membuat arraylist2
ArrayList<String> al2 = new ArrayList <String>();
 
//menambahkan objek
al2.add("Nopal");
al2.add("Mel");
 
//remove al2
al.retainAll(al2);
 
//menampilkan isi
Iterator itr=al.iterator();
while(itr.hasNext())
{
System.out.println(itr.next());
}
}
}
  • LinkedList
                 Sourcecode   
import java.util.*;
public class Main
{
    public static void main(String args[])
    {
        LinkedList<String> al=new LinkedList<String>();
        al.add("Rendra");
        al.add("Nopal");
        al.add("Fajar");
        al.add("Mel");
        Iterator<String> itr=al.iterator();
        while(itr.hasNext()) {
            System.out.println(itr.next());
        }
    }
}
     Output           :


  • HashSet
                 Sourcecode   
import java.util.*;
class Main
{
    public static void main(String args[])
    {
        //membuat hash set
        HashSet<String> al=new HashSet<String>();
       
        //menginput objek
        al.add("Rendra");
        al.add("Nopal");
        al.add("Fajar");
        al.add("Mel");
        al.add("Hendra");
       
        Iterator<String> itr=al.iterator();
       
        //menampilkan
        while(itr.hasNext())
        {
            System.out.println(itr.next());
        }
    }
}
     Output           :


  • Linked HashSet
                 Sourcecode   
import java.util.LinkedHashSet;
import java.util.Iterator;
class Main
{
public static void main(String args[])
{
//membuat linkedhashset
LinkedHashSet<String> al=new LinkedHashSet<String>();
 
al.add("Rendra");
al.add("Mel");
al.add("Nopal");
al.add("Fajar");
al.add("Hendra");
Iterator<String> itr=al.iterator();
while(itr.hasNext())
{
System.out.println(itr.next());
}
}
}
     Output           :


  • HashMap
                 Sourcecode   
import java.util.LinkedHashSet;
import java.util.Iterator;
class Main
{
public static void main(String args[])
{
//membuat linkedhashset
LinkedHashSet<String> al=new LinkedHashSet<String>();
 
al.add("Rendra");
al.add("Fajar");
al.add("Nopal");
al.add("Mel");
al.add("Hendra");
Iterator<String> itr=al.iterator();
while(itr.hasNext())
{
System.out.println(itr.next());
}
}
}
     Output           :


  • HashTable
                 Sourcecode   
import java.util.*;
class Main
{
    public static void main(String args[])
    {
        Hashtable<Integer,String> hm=new Hashtable<Integer,String>();
       
        hm.put(100,"Rendra");
        hm.put(102,"Nopal");
        hm.put(101,"Mel");
        hm.put(103,"Fajar");
       
        for(Map.Entry m:hm.entrySet())
        {
            System.out.println(m.getKey()+" "+m.getValue());
        }
    }
}
         Output           :


Apabila ada kesalahan mohon dikoreksi. Terima Kasih telah berkunjung di blog saya.