BAB III PENGURUTAN DATA (SORTING) Tertia Avini, S. Kom tertiaavini BAB III PENGURUTAN DATA (SORTING) Tertia Avini, S.Kom tertiaavini.wordpress.com alvinitanadia@yahoo.co.id UNIVERSITAS INDO GLOBAL MANDIRI JL. Jend. Sudirman No. 629 Km.4 Palembang Telp. (0711) 322705 – 322706 Fax (0711) 357754 www.uigm.ac.id
III.1. Defenisi Pengurutan Pengurutan (sorting) adalah sekumpulan objek yang di proses menurut urutan atau susunan tertentu. Urutan tersebut dapat Menaik (Ascending) atau Menurun (Descending) Data yang diurut dapat dapat berupa tipe data sederhana (kecuali boolean) atau tipe data Terstruktur Keuntungan dari data terurut adalah mempercepat pencarian data, dapat mengetahui harga maksimun atau minimum. UNIVERSITAS INDO GLOBAL MANDIRI JL. Jend. Sudirman No. 629 Km.4 Palembang Telp. (0711) 322705 – 322706 Fax (0711) 357754 www.uigm.ac.id
III.2. Pengurutan Internal dan Pengurutan Ekternal Pengurutan dibagi menjadi 2 kelompok : Pengurutan Internal Pengurutan terhadap sekumpulan data yang disimpan di memori utama komputer. Bersifat sementara Pengurutan Eksternal Pengurutan data yang disimpan didalam memori sekunder. Bersifat tetap. UNIVERSITAS INDO GLOBAL MANDIRI JL. Jend. Sudirman No. 629 Km.4 Palembang Telp. (0711) 322705 – 322706 Fax (0711) 357754 www.uigm.ac.id
III.2. Pengurutan Internal dan Pengurutan Ekternal Algoritma pengurutan yang ada : Bubble Short (Pengurutan gelembung) Maksimum Sort (Pengurutan maksimum) Minimum Sort (Pengurutan minimum) Insertion Sort (Pengurutan sisip) Head sort (pengurutan diatas) shell Sort (Pengurutan ) Quick sort (pengurutan) Merge sort (pengurutan) Radix sort (pengurutan) Tree sort (pengurutan pohon) UNIVERSITAS INDO GLOBAL MANDIRI JL. Jend. Sudirman No. 629 Km.4 Palembang Telp. (0711) 322705 – 322706 Fax (0711) 357754 www.uigm.ac.id
III.2. Pengurutan Internal dan Pengurutan Ekternal Banyaknya algoritma pengurutan yang tersedia menimbulkan pertanyaan : algoritma manakah yang memiliki kinerja paling baik?. Kinerja pengurutan data sangatlah menentukan kinerja sistem. Karena itu pemilihan Metode pengurutan yang cocok akan berperan penting dalam suatu aplikasi. Pada Bab ini metode pengurutan yang akan dibahas hanya tiga yaitu Pengurutan Gelembung (Bubble Sort) Pengurutan Maksimum/Minimun (Maximum / Minimum Sort) Pengurutan Sisip (Inserrtion Sort) UNIVERSITAS INDO GLOBAL MANDIRI JL. Jend. Sudirman No. 629 Km.4 Palembang Telp. (0711) 322705 – 322706 Fax (0711) 357754 www.uigm.ac.id
III.3. Pengurutan gelembung (Bubble sort) Metode pengurutan gelembung di inspirasi dari gelembung sabun yang berada di atas permukaan air Karena berat jenis sabun lebih ringan dari pada berat jenis air, maka gelembung sabun akan selalu terapung diatas air. Prinsip pengapungan diatas digunakan pada pengurutan gelembung. Elemen larik yang berharga paling kecil “diapungkan” artinya diangkat keatas (atau ke ujung larik) melalui pertukaran Proses pengapungan ini dilakukan sebanyak N kali langkah. Pada akhir setiap langkah ke K, larik L[1..N] akan terdiri dari dua bagian yang sudah terurut yaitu L[1..K] dan bagian yang belum terurut L[K+1..N]. Setelah langkah terakhir diperoleh larik L[1..N] terurut menaik UNIVERSITAS INDO GLOBAL MANDIRI JL. Jend. Sudirman No. 629 Km.4 Palembang Telp. (0711) 322705 – 322706 Fax (0711) 357754 www.uigm.ac.id
III.3.1 Algoritma Pengurutan gelembung Langkah 1 : Mulai dari elemen K = N, N-1,…2, bandingkan L[K] dengan L[K-1], jika L[K] < L[K-1], tukar L[K] dengan L[K-1] Pada akhir langkah 1, elemen L[1] berisi harga minimum pertama. Langkah 2 : Mulai dari elemen K = N, N-1,…3, bandingkan L[K] dengan L[K-1], jika L[K] < L[K-1] tukar L[K] dengan L[K-1] Pada akhir langkah 2, elemen L[2] berisi harga minimum kedua dari larik L[1..2] yang terurut. UNIVERSITAS INDO GLOBAL MANDIRI JL. Jend. Sudirman No. 629 Km.4 Palembang Telp. (0711) 322705 – 322706 Fax (0711) 357754 www.uigm.ac.id
III.3.1 Algoritma Pengurutan gelembung Langkah 3 : Mulai dari elemen K = N, N-1,…4, bandingkan L[K] dengan L[K-1], jika L[K] < L[K-1] tukar L[K] dengan L[K-1] Pada akhir langkah 3, elemen L[3] berisi harga minimum kedua dari larik L[1..3] yang terurut. Langkah N - 1 : Mulai dari elemen K = N, bandingkan L[K] dengan L[K-1], jika L[K] < L[K-1] tukar L[K] dengan L[K-1] Pada akhir langkah N, elemen L[N] berisi harga minimum dari larik L[1..N] yang terurut. UNIVERSITAS INDO GLOBAL MANDIRI JL. Jend. Sudirman No. 629 Km.4 Palembang Telp. (0711) 322705 – 322706 Fax (0711) 357754 www.uigm.ac.id
III.3.1 Algoritma Pengurutan gelembung Contoh : Terdapat larik berisi dengan 5 buah elemen ( N=5) yang belum terurut. Lakukan metode Bubble Sort untuk isi larik tersebut. UNIVERSITAS INDO GLOBAL MANDIRI JL. Jend. Sudirman No. 629 Km.4 Palembang Telp. (0711) 322705 – 322706 Fax (0711) 357754 www.uigm.ac.id
III.3.1 Algoritma Pengurutan gelembung Akhir dari langkah 5 menghasilkan deretan data didalam larik L yang sudah terurut menaik. UNIVERSITAS INDO GLOBAL MANDIRI JL. Jend. Sudirman No. 629 Km.4 Palembang Telp. (0711) 322705 – 322706 Fax (0711) 357754 www.uigm.ac.id
III.3.1 Algoritma Pengurutan gelembung Untuk seluruh prosedur pengurutan pada Bab ini menggunakan Deklarasi Array sebagai berikkut : {**Mendefenisikan struktur data**} type larik = array[1..100] of integer; var l : larik; i,n,k,temp : integer; Prosedur untuk menginput data sebanyak N data adalah write('Banyak data yang di input : ');readln(n); for i :=1 to n do begin write ('Data ke ',i,' : ');readln(l[i]); end; Prosedur untuk menampilkan data sebanyak data yang di input adalah writeln;writeln('Data yang sudah terurut adalah'); for k := 1 to n do write(l[k],' '); end. UNIVERSITAS INDO GLOBAL MANDIRI JL. Jend. Sudirman No. 629 Km.4 Palembang Telp. (0711) 322705 – 322706 Fax (0711) 357754 www.uigm.ac.id
III.3.1 Algoritma Pengurutan gelembung Prosedur Pengurutan Gelembung for i := 1 to n-1 do begin for k :=n downto i+1 do if l[k] < l[k-1] then {pertukaran l[k] dengan l[k-1]} temp := l[k]; l[k] := l[k-1]; l[k-1] := temp; end; UNIVERSITAS INDO GLOBAL MANDIRI JL. Jend. Sudirman No. 629 Km.4 Palembang Telp. (0711) 322705 – 322706 Fax (0711) 357754 www.uigm.ac.id
III.4. Pengurutan Maksimum dan minimum (Maksimum sort / Minimum Sort) Metode pengurutan ini berdasarkan pada pemilihan nilai maksimum atau minimum didalam larik. Gagasannya adalah memilih elemen maksimum atau minimum yang di pertukarkan pada elemen ujung larik. Kemudian elemen ujung tersebut di isolasi untuk tidak disertakan lagi pada proses selanjutnya. Proses yang sama diulang untuk elemen larik yang tersisa sampai data telah terurut maksimum/minmum dan tidak dapat ditukar lagi. Metode pengurutan maksimum atau minimum disebut juga sebagai pegurutan berdasarkan pemilihan/seleksi (selection Sort) UNIVERSITAS INDO GLOBAL MANDIRI JL. Jend. Sudirman No. 629 Km.4 Palembang Telp. (0711) 322705 – 322706 Fax (0711) 357754 www.uigm.ac.id
III.4.1 Algoritma Pengurutan Maksimum Secara ringkas , algoritma pengurutan maksimum dinyatakan dalam urutan langkah sebagai berikut : Langkah 1 Tentukan harga maksimum didalalam L[1..k] Pertukarkan harga maksimum dengan elemen L[k] Langkah 2 Tentukan harga maksimum didalalam L[1..k-1] Pertukarkan harga maksimum dengan elemen L[k-1] UNIVERSITAS INDO GLOBAL MANDIRI JL. Jend. Sudirman No. 629 Km.4 Palembang Telp. (0711) 322705 – 322706 Fax (0711) 357754 www.uigm.ac.id
III.4.1 Algoritma Pengurutan Maksimum Langkah 3 Tentukan harga maksimum didalalam L[1..k-2] Pertukarkan harga maksimum dengan elemen L[k-2] Langkah N - 1 Tentukan harga maksimum didalalam L[1.. K-2] Pertukarkan harga maksimum dengan elemen L[N-2] Elemen yang tersisa adalah L[1], tidak perlu diurut lagi karena karna sudah terurut. UNIVERSITAS INDO GLOBAL MANDIRI JL. Jend. Sudirman No. 629 Km.4 Palembang Telp. (0711) 322705 – 322706 Fax (0711) 357754 www.uigm.ac.id
III.4.1 Algoritma Pengurutan Maksimum Contoh : tinjau larik dengan k = 6 buah elemen dibawah ini yang belum terurut. Larik ini akan diurut menaik UNIVERSITAS INDO GLOBAL MANDIRI JL. Jend. Sudirman No. 629 Km.4 Palembang Telp. (0711) 322705 – 322706 Fax (0711) 357754 www.uigm.ac.id
III.4.1 Algoritma Pengurutan Maksimum Akhir dari langkah 5 menghasilkan deretan data didalam larik L yang sudah terurut menaik. UNIVERSITAS INDO GLOBAL MANDIRI JL. Jend. Sudirman No. 629 Km.4 Palembang Telp. (0711) 322705 – 322706 Fax (0711) 357754 www.uigm.ac.id
III.4.1 Algoritma Pengurutan Maksimum Prosedur Pengurutan Maksimum Menaik u := n; for i := 1 to n-1 do begin maks := l[1]; imaks := 1; for j := 2 to u do if l[j] > maks then maks := l[j]; imaks := j; end; {pertukaran maks dengan l[u]} temp := l[u]; l[u] := l[imaks]; l[imaks] := temp; {larik l[u..n] terurut, larik l[1..u-1] belum terurut} u := u-1; Untuk prosedur minimum, silakan anda lakukan sendiri sebagai latihan UNIVERSITAS INDO GLOBAL MANDIRI JL. Jend. Sudirman No. 629 Km.4 Palembang Telp. (0711) 322705 – 322706 Fax (0711) 357754 www.uigm.ac.id
III.4. Pengurutan Sisip ( Insertion Sort ) Pengurutan sisip (Insertion sort) adalah metode pengurutan dengan cara menyisipkan elemen larik pada posisi yang tepat. Pencarian posisi yang tepat dapat dilakukan dengan cara melakukan pencarian pencarian beruntun didalam larik. Selama pencarian posisi yang tepat dilakukan pergeseran elemen larik. UNIVERSITAS INDO GLOBAL MANDIRI JL. Jend. Sudirman No. 629 Km.4 Palembang Telp. (0711) 322705 – 322706 Fax (0711) 357754 www.uigm.ac.id
III.4.1 Algoritma pengurutan sisip menaik Andaikan : Misalkan L[1] dianggap sudah pada tempatnya Langkah 2 L[2] harus dicari tempatnya yang tepat pada L[1..2] dengan cara menggeser elemen L[1..1] kekanan, bila L[1..1] > L[2]. Misalkan posisi yang tepat adalah K, sisipkan L[2] pada L[K] Langkah 3 L[3] harus dicari tempatnya yang tepat pada L[1..3] dengan cara menggeser elemen L[1..2] kekanan, bila L[1..2] > L[3]. Misalkan posisi yang tepat adalah K, sisipkan L[3] pada L[K] UNIVERSITAS INDO GLOBAL MANDIRI JL. Jend. Sudirman No. 629 Km.4 Palembang Telp. (0711) 322705 – 322706 Fax (0711) 357754 www.uigm.ac.id
III.4.1 Algoritma pengurutan sisip menaik Langkah N L[N] harus dicari tempatnya yang tepat pada L[1..N] , dengan cara menggeserkan elemen L[1…N-1] kekanan , bila L[1..N-1] > L[N]. Misalkan posisi yang tepat adalah K, sisipkan L[N] pada L[K] UNIVERSITAS INDO GLOBAL MANDIRI JL. Jend. Sudirman No. 629 Km.4 Palembang Telp. (0711) 322705 – 322706 Fax (0711) 357754 www.uigm.ac.id
III.4.1 Algoritma pengurutan sisip menaik Contoh : tinjau larik dengan N = 6 buah elemen dibawah ini yang belum terurut. Larik ini akan diurut menaik UNIVERSITAS INDO GLOBAL MANDIRI JL. Jend. Sudirman No. 629 Km.4 Palembang Telp. (0711) 322705 – 322706 Fax (0711) 357754 www.uigm.ac.id
III.4.1 Algoritma pengurutan sisip menaik Akhir dari langkah 5 menghasilkan deretan data didalam larik L yang sudah terurut menaik. UNIVERSITAS INDO GLOBAL MANDIRI JL. Jend. Sudirman No. 629 Km.4 Palembang Telp. (0711) 322705 – 322706 Fax (0711) 357754 www.uigm.ac.id
III.4.1 Algoritma pengurutan sisip menaik Prosedur Pengurutan Gelembung for k := 1 to n do begin temp := l[k]; j := k-1; while (temp <= l[j]) and (j>1) do l[j+1] := l[j];j := j -1; end; if temp >= l[j] then l[j+1] := temp else l[j+1] := l[j]; l[j] := temp; UNIVERSITAS INDO GLOBAL MANDIRI JL. Jend. Sudirman No. 629 Km.4 Palembang Telp. (0711) 322705 – 322706 Fax (0711) 357754 www.uigm.ac.id
Tugas : Buatlah program Pengurutan dengan metode Gelembung menaik dan menurun Minimum Menaik dan menurun Maksimum menaik dan menurun Sisip menaik dan menurun Dari metode pengurutan diatas, manakah metode yang paling baik, jelaskan. UNIVERSITAS INDO GLOBAL MANDIRI JL. Jend. Sudirman No. 629 Km.4 Palembang Telp. (0711) 322705 – 322706 Fax (0711) 357754 www.uigm.ac.id