PENUGASAN 3 -- Konsep Sorting

SORTING

Sorting adalah proses menyusun elemen-elemen dengan tata urut tertentu dan proses tersebut terimplementasi dalam bermacam aplikasi. dalam artian lain, sorting digunakan untuk mrngurutkan data seperti kata, buku, no. telepon, dll. sorting yang diterapkan menggunakan tipe data array agar pemahaman dan implementasinya lebih mudah. pada umumnya terdapat dua jenis pengurutan:

1. Ascending (naik)

contoh: Data array= {22, 10, 15, 3, 8, 2}

Data ascending : 2 3 8 10 15 22

2. Descending (turun)

contoh: Data array= {22, 10, 15, 3, 8, 2}

Data descending : 22 15 10 8 3 2


Type of Sorting Data

 1. Bubble Sort

Bubble sort merupakan algoritma pengurutan paling tua dengan metode pengurutan yang paling sederhana. pengurutan dilakukan dengan memandingkan masing-masing item dala array, menukar item bila diperlukan, dan mengulanginya sampai array berurutan, sehingga tidak ada item lagi yang dapat ditukar.


Kelebihan Bubble sort:

a) Proses penghitungan sederhana

b) Algoritma Bubble sort mudah dipahami

c) Langkah pengurutan data sangat sederhana


Kekurangan Bubble sort:

a) Proses pengurutan data sederhana tetapi tidak efisien karena tahapan dilakukan satu-persatu

b) Apabila data yang dimasukkan semakin banyak, proses pengurutan akan semakin lama

c) jumlah pengulangan akan tetap sama sampai ke data yang terakhir, walaupun sebagian data yang ada telah urut


source:

/** 
 * BubbleSortApp 
 *
 * @author Adelia Hasna Surya Putri
 * @version 01/04/2021
 */
 
public class BubbleSortApp
{
    static void bubbleSort(int[] arr)
    {
        int size_arr = arr.length;
        for (int i = 0; i < size_arr; i++)
        {
            for (int j = 1; j < size_arr; j++)
            {
                if (arr[j-1] > arr[j])
                {
                    int temp = arr[j-1];
                    arr[j-1] = arr[j];
                    arr[j] = temp;
                }
            }
        }
    }
 
    static void printArray(int[] arr)
    {
        for (int value : arr)
        {
            System.out.print(value + " ");
        }
    }
 
    public static void main(String[] args)
    {
        int test_array[] = {77, 99, 44, 55, 22, 88, 11, 00, 66, 33};
       
        System.out.println("Array Before Doing Bubble Sort:");
        printArray(test_array);
 
        bubbleSort(test_array);
       
        System.out.println("\n\nArray After Doing Bubble Sort:");
        printArray(test_array);
    }
}
 

output:



2. Selection Sort

Selection sort dilakukan dengan memilih elemen dengan nilai terendah dan menukar elemen yang terpilih dengan elemen ke-i. nilai dari i dimulai dari 1 ke n, dimana n adalah jumlah total elemen dikurangi 1.


Kelebihan Selection sort:

a) Algoritma sangat rapat dan mudah diimplementasikan

b) Waktu pengurutan dapat lebih ditekan 

c) Kompleskitas selection relatif lebih kecil


Kekurangan Selection sort:

a) Sulit untuk membagi masalah

b) Membutuhkan method tambahan


source:

/**
 * SelectionSortApp 
 *
 * @author Adelia Hasna Surya Putri
 * @version 01/04/2021
 */

public class SelectionSortApp
{
    static void selectionSort(int[] arr)
    {
        int size_arr = arr.length;
        for (int i = 0; i < size_arr-1; i++)
        {
            int min = i;
            for (int j = i+1; j < size_arr; j++)
            {
                if(arr[j] < arr[min])
                    min = j;
            }
            int temp = arr[min];
            arr[min] = arr[i];
            arr[i] = temp;
        }
    }
 
    static void printArray(int[] arr)
    {
        for (int value : arr)
        {
            System.out.print(value + " ");
        }
    }
 
    public static void main(String[] args)
    {
        int test_array[] = {77, 99, 44, 55, 22, 88, 11, 00, 66, 33};
 
        System.out.println("Array Before Doing Selection Sort:");
        printArray(test_array);
 
        selectionSort(test_array);
 
        System.out.println("\n\nArray After Doing Selection Sort:");
        printArray(test_array);
    }
}
 

output:





3. Insertion Sort

Insertion sort umumnya dilakukan dengan memilah data yang akan diurutkan dan yang sudah diurutkan. elemen pertama diambil dari bagian array yang belum diurutkan dan kemudian diletakkan sesuai posisinya pada bagian lain dari array yang telah diurutkan. langkah ini dilakukan berulang kali hingga tidak ada elemen yang tersisa pada array yang belum diurutkan.


Kelebihan Insertion sort:

a) Loop dalam insertion sort sangat cepat, sehingga proses pengurutan lebih cepat dilakukan

b) Lebih efektif daripada Bubble sort dan Selection sort

c) Efektif diterapkan pada data yang kecil ataupun data yang sudah urut sebagian


Kekurangan Insertion sort:

a) Banyaknya operasi yang diperluka dalam mencari posis yang tepat untuk elemen larik

b) Membutuhkan waktu yang lebih banyak pada data yang tidak terurut, sehingga tidak cocok dalam pengurutan elemen dalam jumlah besar


source:

/**
 * InsertionSortApp
 *
 * @author Adelia Hasna Surya Putri
 * @version 01/04/2021
 */
public class InsertionSortApp
{
    static void insertionSort(int[] arr)
    {
        int size_arr = arr.length;
        for (int i = 1; i < size_arr; i++)
        {
            int key = arr[i];
            int j = i-1;
            for (; j > -1 && arr[j] > key; j--)
                arr[j+1] = arr[j];
 
            arr[j+1] = key;
        }
    }
 
    static void printArray(int[] arr)
    {
        for (int value : arr)
        {
            System.out.print(value + " ");
        }
    }
 
    public static void main(String[] args)
    {
        int test_array[] = {77, 99, 44, 55, 22, 88, 11, 00, 66, 33};
 
        System.out.println("Array Before Doing Insertion Sort:");
        printArray(test_array);
 
        insertionSort(test_array);
 
        System.out.println("\n\nArray After Doing Insertion Sort:");
        printArray(test_array);
    }
}
 

output:




Referensi
Robert Lafore, 2003, “Data Structures and Algorithms in Java, Second Edition”, Sams Publishing, Indiana, USA
https://derrylqinanda.wordpress.com/2019/05/17/macam-macam-sorting-pada-java/
http://kelompok1ka2.blogspot.com/2015/10/kelebihan-dan-kekurangan-metode-bubble.html?m=1
https://www.coursehero.com/file/p196hrhu/2-SELECTION-SORTING-KELEBIHAN-Algoritma-ini-sangat-rapat-dan-mudah-untuk/#:~:text=2.%20SELECTION%20SORTING%20%2B%20KELEBIHAN%20Algoritma,KEKURANGAN%20Sulit%20untuk%20membagi%20masalah.
http://chyonanda.blogspot.com/2012/03/kelebihan-dan-kekurangan-insertion-sort.html?m=1




Adelia Hasna Surya Putri/5025201200





Comments

Popular posts from this blog

PENUGASAN 7 -- REKURSI

ETS SEM 2 -- STRUKTUR DATA F

PENUGASAN 8 -- BST