c

 avatar
user_7597543
java
2 years ago
4.4 kB
3
Indexable
import java.util.Scanner;
public class TK4 {

    static Scanner in = new Scanner(System.in);
        static int[] lstData=new int[5];
        public static void main(String[] args) {
            int select=0;
            while (select!=6){
                System.out.println("Selamat Datang di Program Simulasi");
                System.out.println("Menu:");
                System.out.println("1. Random Data");
                System.out.println("2. Simulasi Bubble Sort - Ascending");
                System.out.println("3. Simulasi Selection Sort - Ascending");
                System.out.println("4. Simulasi Bubble Sort - Descending");
                System.out.println("5. Simulasi Selection Sort - Descending");
                System.out.println("Silakan Pilih Action Anda:");

                select = in.nextInt();
                switch (select){
                    case 1:
                        randomData();
                        break;
                    case 2:
                        BubbleSort();
                        break;
                    case 3:
                        selectionSort();
                        break;
                    case 4:
                        BubbleSort(false);
                        break;
                    case 5:
                        selectionSort(false);
                        break;
                    case 6:
                        break;
                }
            }
        }

        static void randomData(){
            System.out.println( "Batas Bawah:");
            int minimum=in.nextInt();
            System.out.println( "Batas Atas:");
            int maksimum=in.nextInt();
            for (int i=1;i<=5;i++){
                lstData[i-1]= minimum + (int) (Math.random() * (maksimum -
                        minimum + 1));
            }

            printData();
        }

        static void BubbleSort(){
            BubbleSort(true);
        }

        static void BubbleSort(boolean asc){
            for (int i=1;i<lstData.length;i++){
                System.out.print("Pass "+ i+ "\n");
                for (int j=0;j<lstData.length-i;j++ ){
                    selectBySort(asc,j);
                    printData();
                }
                System.out.print("\n Result "+ i+ "\n");
                printData();
            }
        }

        static void selectBySort(boolean asc, int currentIndex){
            if (asc){
                if (lstData[currentIndex]>lstData[currentIndex+1])
                    swap(currentIndex,currentIndex+1);
            }
            else{
                if (lstData[currentIndex]<lstData[currentIndex+1])
                    swap(currentIndex,currentIndex+1);
            }

        }

        static void swap(int index1, int index2 ){
            int iTemp;
            iTemp=lstData[index1];
            lstData[index1]=lstData[index2];
            lstData[index2]=iTemp;
        }

        static void selectionSort(){
            selectionSort(true);
        }


        static void selectionSort(boolean asc){
            for (int i=0;i<lstData.length-1;i++){
                System.out.print("\n Pass "+ (i+1) + "\n");
                int currentMin=lstData[i];
                int currentMinIdx=i;
                for (int j=i+1;j<lstData.length;j++){
                    if (asc){
                        if (currentMin>lstData[j]){
                            currentMin=lstData[j];
                            currentMinIdx=j;
                        }
                    }
                    else{
                        if (currentMin<lstData[j]){
                            currentMin=lstData[j];
                            currentMinIdx=j;
                        }
                    }
                    printData();
                }
                if (currentMinIdx!=i){
                    lstData[currentMinIdx]=lstData[i];
                    lstData[i]=currentMin;
                }
                System.out.print("\n Result "+ (i+1)+ "\n");
                printData();
            }
        }

        static void printData(){
            for (int lstDatum : lstData) {
                System.out.print(lstDatum + " ");
            }
            System.out.print("\n");
        }
    }
Editor is loading...