1. Fifi Aprilia Putri Hidayat (22104410080) 2. Anisa Hikmawati Amalia (22104410087) 3. Laila Ivone Bella Prabawati (22104410090) 4. Muhammad Nurifqi Paulan (22104410112) Definisi Pengurutan (Sorting) Pengurutan data (sorting) merupakan suatu proses dimana suatu susunan data yang semula dalam kondisi acak dapat menjadi terurut, baik dari data terkecil sampai dengan data yang terbesar, atau sebaliknya dari data terbesar sampai dengan data terkecil (Wahyudi, 2009). Untuk dapat melakukan pengurutan data, sebuah algoritma pengurutan data (sorting) sangat penting dan dibutuhkan dalam pengolahan data informasi. Teknologi informasi telah berkembang sangat pesat pada masa ini. Pencarian informasi yang berjumlah kecil dan besar dalam waktu yang cepat, sangat dibutuhkan sebagai upaya efisiensi waktu. Pencarian sebuah dokumen akan lebih cepat apabila informasi-informasi mengenai dokumen yang akan dicari tersebut diurutkan terlebih dahulu daripada pencarian-pencarian dokumen tanpa pengurutan. Terdapat lima algoritma pengurutan data yaitu Quick sort, Shell sort, Selection sort, Insertion sort dan Bubble sort Terdapat 5 jenis pengurutan :
1. Quick Sort 2. Shell Sort 3. Selection Sort
(pengurutan cepat) (pengurutan shell) (pengurutan seleksi) terdapat 2 jenis didalamnya : ·Metode Quick Sort Non Rekursif ·Metode Quick Sort Rekursif
4. Insertion Sort 5. Bubble sort
(pengurutan sisip) (Metode Gelembung) 1. Quick Sort (pengurutan cepat) Metode Quick sering disebut juga metode partisi (partition exchange sort). Metode ini diperkenalkan pertama kali oleh C.A.R. Hoare pada tahun 1962. Untuk mempertinggi efektifitas dari metode ini, digunakan teknik menukarkan dua elemen dengan jarak yang cukup besar
·Metode Quick Sort Non Rekursif
Implementasi secara non rekursif memerlukan dua buah tumpukan (stack) yang digunakan yang digunakan untuk menyimpan batas-batas subbagian. Pada prosedur ini menggunakan tumpukan yang bertipe record (struktur) yang terdiri dari elemen kiri (untuk mencatat batas kiri) dan kanan (untukmencatat batas kanan. Tumpukan dalam hal ini dideklarasikan sebagai array.
·Metode Quick Sort Rekursif
1. x = Data [(L + R) / 2] 2. i = L 3. j = R 4. Selama ( i <= j) kerjakan baris 5 sampai dengan 12 5. Selama (Data[i] < x) kerjakan i = i + 1 6. Selama (Data[j] > x) kerjakan j = j – 1 7. Jika (i <= j) maka kerjakan baris 8 sampai 10; jika tidak kerjakan baris 11 8. Tukar Data[i] dengan Data[j] 9. i = i + 1 10. j = j –1 11. Jika (L < j) kerjakan lagi baris 1 dengan R = j 12. Jika (i < R) kerjakan lagi baris 1 dengan L = i 2. Shell Sort (pengurutan shell) Metode ini disebut juga dengan metode pertambahan menurun (diminishing increment). Metode ini dikembangkan oleh Donald L. Shell pada tahun 1959, sehingga sering disebut dengan Metode Shell Sort. Metode ini mengurutkan data dengan cara membandingkan suatu data dengan data lain yang memiliki jarak tertentu, kemudian dilakukan penukaran bila diperlukan.
Algoritma metode Shell dapat dituliskan sebagai berikut:
1. Jarak = N 2. Selama (Jarak > 1) kerjakan baris 3 sampai dengan 9 3. Jarak = Jarak / 2. Sudah = false 4. Kerjakan baris 4 sampai dengan 8 selama Sudah = false 5. Sudah = true 6. j = 0 7. Selama (j < N – Jarak) kerjakan baris 8 dan 9 8. Jika (Data[j] > Data [j + Jarak] maka tukar Data[j], Data [j + Jarak]. Sudah = true 9. j = j + 1 3. Selection Sort (pengurutan seleksi) Metode seleksi melakukan pengurutan dengan cara mencari data yang terkecil kemudian menukarkannya dengan data yang digunakan sebagai acuan atau sering dinamakan pivot.
Algoritma seleksi dapat dituliskan sebagai berikut:
i=0 2. selama (i < N-1) kerjakan baris 3 sampai dengan 9 3. k = i 4. j = i + 1 5. Selama (j < N) kerjakan baris 6 dan 7 6. Jika (Data[k] > Data[j]) maka k = j 7. j = j + 1 8. Tukar Data[i] dengan Data[k] 9. i = i + 1 4. Insertion Sort (pengurutan sisip) Data dicek satu per satu mulai dari yang kedua sampai dengan yang terakhir. Apabila ditemukan data yang lebih kecil daripada data sebelumnya, maka data tersebut disisipkan pada posisi yang sesuai.
Algoritma penyisipan langsung dapat dituliskan sebagai berikut:
i=1 2. selama (i < N) kerjakan baris 3 sampai dengan 9 3. x = Data[i] 4. j = i – 1 5. selama (x < Data[j]) kerjakan baris 6 dan 7 6. Data [j + 1] = Data[j] 7. j = j – 1 8. Data[j+1] = x 9. i = i + 1 5. Bubble sort (Metode Gelembung)
Algoritma gelembung dapat
PENGERTIAN dituliskan sebagai berikut:
Metode gelembung (bubble sort) sering juga i=0
disebut dengan metode penukaran (exchange 2. selama (i < N-1) kerjakan baris 3 sampai dengan 7 sort) adalah metode yang mengurutkan data 3. j = N – 1 dengan cara membandingkan masing-masing 4. Selama (j >= i) kerjakan baris 5 sampai dengan elemen, kemudian melakukan penukaran bila 7 perlu. Metode ini mudah dipahami dan 5. Jika (Data[j-1] > Data[j]) maka tukar Data[j-1] diprogram, tetapi bila dibandingkan dengan dengan Data[j] metode lain yang kita pelajari, metode ini 6. j = j – 1 merupakan metode yang paling tidak efisien 7. i = i + 1 Kelebihan Selection Sort - Algoritmanya sangat rapat dan mudah Kelebihan Pengurutan diimplementasikan. - Operasi pertukarannya hanya dilakukan (Sorting) sekali. - Waktu pengurutan dapat lebih ditekan.
Kelebihan Quick Sort
- Secara umum memiliki kompleksitas O(n log n). Kelebihan Insertion Sort - Algoritmanya sederhana dan mudah diterapkan - Sederhana dalam implementasinya. pada berbagai bahasa pemrograman. - Efektif jika jumlah data sedikit. - Dalam prakteknya adalah yang tercepat dari - Jika list sudah terurut atau sebagian berbagai algoritma pengurutan dengan perbandingan, seperti merge sort dan heap sort. terurut makas Insertion Sort akan lebih efisien dibanding Quicksort.
Kelebihan Shell Sort Kelebihan Bubble Sort
- Algoritmanya sangat rapat dan mudah - Metode pengurutan yang paling diimplementasikan. simple. - Operasi pertukarannya hanya dilakukan sekali. - Sangat mudah dipahami - Waktu pengurutan dapat lebih ditekan. algoritmanya. Kekurangan Pengurutan (Sorting) Kekurangan Quick Sort - Sedikit kesalahan dalam penulisan program membuatnya bekerja tidak beraturan (hasilnya tidak benar atau tidak pernah selesai). - Memiliki ketergantungan terhadap data yang dimasukkan, yang dalam kasus terburuk memiliki kompleksitas O(n2).
Kekurangan Shell Short
- Membutuhkan method tambahan. - Sulit untuk membagi masalah.
Kekurangan Selection Sort
- Sulit untuk membagi masalah. Kekurangan Insertion Sort - Banyaknya operasi yang diperlukan dalam mencari posisi yang tepat untuk elemen larik. - Untuk larik yang jumlahnya besar metode ini tidak praktis.
Kekurangan Bubble Sort
-Pada Bubble Sort jumlah pengulangannya akan tetap sama jumlahnya walaupun data sudah cukup terurut. Karena disebabkan membandingkan semua data untuk menentukan posisinya. Contoh Code lainya Mengurutkan bilangan 4,7,1,2,9,5