Senin, 16 Juni 2014

UAS_Quiz_Preparation

import java.util.*;
    public class UAS_1100057920 {
        static Vector <String> namaBarang = new Vector();
        static Vector <Integer> harga = new Vector();
        static Vector <Integer> stock = new Vector();

        static ArrayList<Integer> cartID = new ArrayList();
        static ArrayList<Integer> cartJml = new ArrayList();

        static Scanner in = new Scanner (System.in);

        static int total;

        public static void clear (){
            for (int i = 0 ; i < 25 ; i++ ) {
                System.out.println();
            }
        }

        public static void memberCardGenerator()
        {
            //belajar Random
            Random rand = new Random();
            System.out.printf("Your Member Card: %d%d%d%d-%d%d%d%d-%d%d%d%d-%d%d%d%d\n\n", ((rand.nextInt(9) +1)),((rand.nextInt(9) +1)),((rand.nextInt(9) +1)),((rand.nextInt(9) +1)), ((rand.nextInt(9) +1)),((rand.nextInt(9) +1)),((rand.nextInt(9) +1)),((rand.nextInt(9) +1)), ((rand.nextInt(9) +1)),((rand.nextInt(9) +1)),((rand.nextInt(9) +1)),((rand.nextInt(9) +1)), ((rand.nextInt(9) +1)),((rand.nextInt(9) +1)),((rand.nextInt(9) +1)),((rand.nextInt(9) +1)));
        }


        public static void init() {
            namaBarang.add("Airwalk Austin Shoes");
            namaBarang.add("Hush Puppies Shirts");
            namaBarang.add("Crocs Sandals");
            namaBarang.add("Crocodile Shirts");
            namaBarang.add("Casio Watches");
            namaBarang.add("Guess Bags");
            namaBarang.add("Giordano Pants");

            harga.add(450000);
            harga.add(350000);
            harga.add(700000);
            harga.add(525000);
            harga.add(1100000);
            harga.add(675000);
            harga.add(360000);

            stock.add(20);
            stock.add(25);
            stock.add(15);
            stock.add(18);
            stock.add(9);
            stock.add(15);
            stock.add(20);
        }

        public static void showCart(){
            //No.   | List Items           | Qty        | Price      | Subtotal
            System.out.printf ("\nCart\n%-6s%-31s%-11s%-11s%-11s\n","No.","List Items","Qty","Price","Subtotal");
            System.out.println ("==============================================================================");
            int n = cartID.size();
            int subtotal=0;
            total = 0;
            for ( int i = 0 ; i < n ; i++ ){
                subtotal = cartJml.get(i) * harga.get(cartID.get(i));
                System.out.printf ("%-6d%-31s%-11d%-11d%-11d\n",(i+1), namaBarang.get(cartID.get(i)),
                cartJml.get(i),harga.get(cartID.get(i)),subtotal);
                total+=subtotal;
            }
            System.out.printf("%55s %10d\n","Total =",total);
        }

        public static void showTable(){
            System.out.printf("Shooipy\n");
            System.out.printf("=======\n");
            memberCardGenerator();
            System.out.printf ("%-6s%-31s%-11s%-5s\n","No.","List Items","Prices","Stock");
            System.out.println ("=============================================================");
            int n = namaBarang.size();
            for ( int i = 0 ; i < n ; i++ ){
                System.out.printf ("%-6s%-31s%-11d%-5d\n",(i+1), namaBarang.get(i),harga.get(i),stock.get(i));
            }
        }

        public static void menu (){
            System.out.println ("\n\"New Thing Fashion\"  Online");
            System.out.println ("1. Sort by Price Asc");
            System.out.println ("2. Add to Cart");
            System.out.println ("3. Update Item");
            System.out.println ("4. Payment");
            System.out.println ("5. Exit");
            System.out.print ("Choose : ");
        }

        public static void swap(int i , int j){
            int temp;
            String tempS;

            tempS = namaBarang.get(i);
            namaBarang.set(i,namaBarang.get(j));
            namaBarang.set(j,tempS);

            temp = harga.get(i);
            harga.set(i,harga.get(j));
            harga.set(j,temp);

            temp = stock.get(i);
            stock.set(i,stock.get(j));
            stock.set(j,temp);
        }

        public static void bubbleSort(){
            int n = namaBarang.size();
            for ( int i = 0; i<n-i ; i++) {
                for ( int j = n-1; j>i ; j--) {

                    /*//.compareToIgnoreCase
                    if ( namaBarang.get(j) .compareTo (harga.get (j-10));
                    }*/

                    if (harga.get(j) < harga.get (j-1))
                    {
                        swap (j,j-1);
                    }
                }
            }
        }

        public static void menu1()
        {
            bubbleSort();
            cartID.clear();
            cartJml.clear();
            System.out.print ("Sorting by Price\nPress ENTER to Continue\n");
            in.nextLine();
        }

        public static void menu2()
        {
            int jumlahBarang = namaBarang.size();
            int input;
            do{
                System.out.printf("Choose Item [1..%d] : ",jumlahBarang);
                try{
                    input = in.nextInt();
                }catch(Exception e){
                    input = -1;
                }finally{
                    in.nextLine();
                }
            }while(input < 1 || input > jumlahBarang);

            int jumlah;
            int stockJml = stock.get(input-1);
            do{
                System.out.printf("Quantity [1..%d] : ",stockJml);
                try{
                    jumlah = in.nextInt();
                }catch(Exception e){
                    jumlah = -1;
                }finally{
                    in.nextLine();
                }
            }while(jumlah < 1 || jumlah > stockJml);


            if(cartID.contains(input-1)){
                int tempTotal = jumlah + cartJml.get(cartID.indexOf(input-1));
                if( tempTotal > stock.get(input-1)){
                    System.out.print("Maaf, stock tidak cukup");
                    in.nextLine();
                }else{
                    cartJml.set(cartID.indexOf(input-1),tempTotal);
                }
            }else{
                cartID.add(input-1);
                cartJml.add(jumlah);
            }
            System.out.printf("Press ENTER to continue");
        }

        public static void menu3()
        {
            if(cartID.size() == 0){
                System.out.printf("Your cart is empty!\n");
                in.nextLine();
            }else{
                showCart();
                int n;
                n = cartID.size();
                int idx;
                do{
                    try{
                        System.out.printf("Update Item [1..%d] : ",n);
                        idx = in.nextInt();
                    }catch(Exception e){
                        idx = -1;
                        System.out.printf("Input must be number\n");
                    }finally{
                        in.nextLine();
                    }
                }while(idx < 1 || idx > n);

                int qty;
                n = stock.get(idx-1);
                do{
                    try{
                        System.out.printf("Quantity [1..%d] : ",n);
                        qty = in.nextInt();
                    }catch(Exception e){
                        qty = -1;
                        System.out.printf("Input must be number\n");
                    }finally{
                        in.nextLine();
                    }
                }while(qty < 1 || qty > n);

                cartJml.set(idx-1,qty);
            }
            System.out.printf("Press ENTER to continue");
        }

        public static void menu4()
        {
            if(cartID.size() == 0){
                System.out.printf("Your cart is empty!\n");
            }else{
                showCart();
                int cash;
                do{
                    try{
                        System.out.print("Cash : ");
                        cash = in.nextInt();
                    }catch(Exception e){
                        cash = -1;
                        //e.printStackTrace(); //kasih tau errornya apa <--
                    }finally{
                        in.nextLine();
                    }
                }while(cash < 0);

                if(cash < total){
                    System.out.printf("Insufficient Money for Payment\n");
                }else{
                    System.out.printf("Your Change : %d\n", (cash-total));
                    System.out.printf("\n\nThank you :], come again :]\n");
                    cartID.clear();
                    cartJml.clear();
                }
            }
            System.out.printf("Press ENTER to continue\n");
        }

        public static void main (String args[]) {
            int pilihan;
            init();
            do {
                clear();
                showTable();
                if(cartID.size() != 0){
                    showCart();
                }
                menu();
                try{
                    pilihan = in.nextInt();
                    switch (pilihan){
                        case 1 : menu1(); break;
                        case 2 : menu2(); break;
                        case 3 : menu3(); break;
                        case 4 : menu4(); break;
                    }
                }catch ( Exception e){
                    pilihan = -1;
                }finally{
                    in.nextLine();
                }
            }while(pilihan !=5 );

     }
}

Tidak ada komentar:

Posting Komentar