Sorting Dasar Pemrograman Universitas Trisakti – Jurusan Teknik Informatika
Pendahuluan Sorting merupakan tahap penting dalam pengelolaan data Sorting dapat dilakukan dengan : Ascending Descending Metode sorting umumnya dapat dibagi menjadi 5 : Insertion Sort Selection Sort Bubble Sort Quick Sort Merge Sort 2
1) Insertion Sort Disebut juga Straight Insertion Pengurutan yang mengambil sebuah data sisip pada data yang diurutkan dan menggeser data yang lebih besar dari data sisip agar data sisip dapat ditempatkan pada tempat yang benar 3
Representasi Insertion Sort Contoh data : Int Array [] = {30, 12, 25, 10, 45}; Akan diurutkan secara Ascending Iterasi 1 : {30, 12, 25, 10, 45} data sisip bandingkan data sisip dengan data sebelumnya. Jika > dari data sisip, maka geser data tersebut. Jika < dari data sisip, maka biarkan 4
Representasi Insertion Sort Iterasi 1 : {30, 12, 25, 10, 45} {12, 30, 25, 10, 45} Iterasi 2 : {12, 30, 25, 10, 45} {12, 25, 30, 10, 45} Iterasi 3 : {12, 25, 30, 10, 45} {10, 12, 25, 30, 45} Iterasi 4 : {10, 12, 25, 30, 45} {10, 12, 25, 30, 45} 5
Prosedur Insertion Sort 6
2) Selection Sort Merupakan pengurutan yang mencari nilai terkecil atau terbesar (bergantung pada ascending atau descending) yang kemudian ditempatkan pada paling depan, kemudian mencari nilai terkecil atau terbesar sepanjang elemen array – 1, dan seterusnya hingga terurut. Contoh : Int Array [] = {20, 12, 25, 10, 13}; akan diurutkan secara ascending : nilai minimum 7
Representasi Selection Sort Iterasi 1 : {20, 12, 25, 10, 13} {10, 12, 25, 20, 13} Iterasi 2 : {10, 12, 25, 20, 13} {10, 12, 25, 20, 13} Iterasi 3 : {10, 12, 25, 20, 13} {10, 12, 13, 20, 25} 8
Prosedur Selection Sort
3) Bubble Sort Pengurutan yang paling sederhana, mudah dipahami, namun paling tidak efisien Melakukan pengurutan dengan menukarkan dua buah elemen secara terus menerus sampai selesai Contoh : int array[] = {15, 3, 2, 7} urutkan ascending Iterasi 1 : {15, 3, 2, 7} elemen 1 & 2 dibandingkan : Jika elemen 1 > elemen 2, posisi tukar Jika elemen 1 < elemen 2, posisi tetap 10
Representasi Bubble Sort {15, 3, 2, 7} {3, 15, 2, 7} {3, 15, 2, 7} {3, 2, 15, 7} {3, 2, 15, 7} {3, 2, 7, 15} {3, 2, 7, 15} {2, 3, 7, 15} {2, 3, 7, 15} {2, 3, 7, 15} 11
Prosedur Bubble Sort
4) Quick Sort Pengurutan dengan menggunakan pola divide and conquer Membagi array menjadi 2 array (kiri & kanan) dengan memilih 1 elemen sebagai pivot Pivot digunakan untuk batasan terhadap array kiri dan kanan Elemen array kiri harus < pivot, dan elemen aray kanan harus >= pivot Conquer : Mengurutkan elemen-elemen array kiri dan kanan setelah berhasil dipisahkan 13
Representasi Quick Sort Contoh data : 22 10 15 3 8 2 Pivot = 15 22 10 |15| 3 8 2 (Divide) Iterasi 1 : 22 10 |15| 3 8 2 Iterasi 2 : 2 10 |15| 3 8 22 Iterasi 3 : 2 10 |8| 3 15 22 pivot berubah Hasil 2 3 8 10 15 22 (Conquer) 14
Prosedur Quick Sort
5) Merge Sort Pengurutan yang memiliki cara yang hampir sama dengan Quick Sort, yaitu terdiri dari langkah Divide dan Conquer Langkah merge sort dapat pula digambarkan sebagai binary tree, yaitu membagi array menjadi tepat 2 array Conquer dilakukan setelah proses divide mulai menghasilkan jumlah elemen terkecil, yaitu 2 elemen 16
Representasi Merge Sort 17
Prosedur Merge Sort
Tugas Jika terdapat array berikut ini : {20, 25, 13, 2, 17, 5, 1, 2, 10, 6, 26, 30} Lakukan pengurutan secara Ascending dengan menggunakan metode : Insertion Sort Selection Sort Bubble Sort Quick Sort Merge Sort
Selesai…