ini tentang algoritma pengurutan, kami dari jurusan Teknik Informatika Semester 3 di Sekolah Tinggi Teknologi Wastukancana Purwakarta Jawa Barat Indonesia
Kelompok algoritma ririn and friends STT wastukancana
1. ALGORITMA PENGURUTAN
KELOMPOK 3
1. Muhammad Aliyudin 131351059
2. Ririn Indah Nurrani 131351083
3. Septiana Abdul Ghofur 131352236
4. Shandy Sanjaya 131351090
5. Tika Dewi Astuti 131351094
6. Yangga Dwi Julyan 131351098
7. Yusuf Maulana Ibrahim 131351104
8. Zein Mutaqin 131351105
IF PAGI B
2. ALGORITMA PENGURUTAN (SORTING)
adalah proses mengatur sekumpulan objek menurut urutan atau
susunan tertentu. Baik urut menaik (ascending) atau urut menurun
(descending).
Contoh data yang terurut :
i. 23, 37, 45, 67, 100, 130, 501
(Data bertipe integer terurut menaik)
ii. 50.27, 31.009, 20.3, 19.0, -5.2, -10.9
(Data bertipe riil terurut menurun)
iii. ‘Amir’, ‘Badu’, ‘Budi’, ‘Dudi’, ‘Eno’, ‘Rudi’, Zamzami’
(Data beripe string terurut menaik)
iv. ‘d’, ‘e’, ‘g’, ‘I’, ‘x’
(Data bertipe karakter terurut menaik)
v. <13596001, ‘Eko’, ‘A’>,<13596006, ‘Rizka’, ‘B’>,
<13596007, ‘Hamdi’, ‘D’>,<13596010,’Rizal’,’C’>,
<13596012, ‘Ratna’,’B’>
(Data mahasiswa bertipe terstruktur terurut menaik
berdasarkan field NIM)
3. Macam-macam Algoritma Pengurutan
Adanya kebutuhan terhadap proses pengurutan memunculkan bermacam-macam
algoritma pengurutan. Algortitma pengurutan yang sering
ditemukan di dalam literatur-literatur komputer antara lain :
1. Bubble sort
2. Selection sort (maksimun sort dan minimum sort)
3. Insertion sort
Untuk ketiga Algoritma diatas, menggunakan tipe larik sebagai berikut :
DEKLARASI
const Nmax = {jumlah maximum elemen larik}
type Larik = Array[1..Nmax] of integer
4. BUBBLE SORT
Prinsip pengapungan digunakan pada
pengurutan gelembung. Bila menghendaki larik
terurut menaik, maka elemen larik yang berharga
paling kecil diapungkan, artinya diangkat keatas
(atau ke ujung kiri larik) melalui proses pertukaran.
Proses pengapungan ini dilakukan sebanyak N-1
langkah (pass) dengan N adalah ukuran larik.
Adapun kondisi pertukaran adalah jika L[k] < L [k-
1] maka tukar nilai.
5. Procedure UrutGelembung1 (Input/Output L:Larik, Input N : Integer)
{Urutkan Larik L[1..N] sehingga terurut Menaik dengan metode BUBBLE SORT}
{K. Awal : Elemen Larik sudah terdefinisi nilai-nilainya}
{K. Akhir : Elemen Larik terurut menarik sedemikian sehingga L[1] ≤ L[2] ≤ L[3] ≤
….L[N].}
DEKLARASI
i : integer {pencacah, untuk jumlah langkah}
k : integer {pencacah, untuk pengapungan pada setiap langkah}
temp : integer {pencacah, untuk pertukaran tempat}
DESKRIPSI
for i ← 1 to N - 1 do
for k ← N downto i +1 do
if L[k] < L[k-1] then
temp L[k]
L[k] L[k-1]
L[k-1] temp
endif
endfor
endfor
6. Contoh :
Tinjau Larik L dengan N = 4 buah elemen di bawah ini yang belum terurut menaik
L
Pass 1 k = 4 L[4] < L[3]? (8 < 10) ya
k =3 L[3] < L[2]? (8 < 27) ya
k=2 L[2] < L[1]? (8 < 25) ya
Hasil Akhir Langkah 1
25 27 8 10
25 8 27 10
8 25 27 10
7. Pass 2
k = 4 L[4] < L[3]? (10 < 27) ya
k = 3 L[3] < L[2]? (10 < 25) ya
Hasil Akhir Langkah 2
Pass 3
k = 4 L[4] < L[3]? (27 < 25) tidak
Hasil Akhir Langkah 3
finish
8. SELECTION SORT
(Algoritma Pengurutan Pilih)
Metode pengurutan pilih, ide dasarnya dari memilih
elemen maks/min dari larik,kemudian menempatkan elemen
tersebut pada awal atau akhir larik.
Selanjutnya elemen terujung tersebut di “ isolasi “ dan
tidak disertakan pada proses berikutnya, begitu seterusnya
sampai elemen larik terurut.
Proses memilih nilai maks/min dilakukan pada setiap
pass. Jika larik berukuran N maka jumlah pass adalah N-1.
10. Procedure Urut (Input / output L : Larik, Input N : Integer)
{K. Awal : Elemen larik sudah terdefinisi nilainya}
{K. Akhir : Elemen larik terurut menaik }
DEKLARASI
i : integer {pencacah pass}
k : integer {pencacah untuk mencari nilai maksimum}
imax : integer {indeks yang berisi nilai maksimum sementara}
ALGORITMA
for i n downto 2 do
imax 1
for j 2 to i do
if L[j] > L[imax] then
imax j
endif
endfor
11. Contoh :
Tinjau Larik L dengan N = 4 buah elemen di bawah ini yang belum
terurut menaik
L
25 27 10 8
1 2 3 4
Pass 1 cari elemen max didalam larik L[1..4]
max = L[2] = 27
tukar max dengan L[N] ; N = 4, diperoleh
12. Pass 2
Cari elemen max didalam larik L[1..3]
max = L[1] = 27
tukar max dengan L[N] ; N = 3, diperoleh
Pass 3
Cari elemen max didalam larik L[1..2]
max = L[1] = 10
tukar max dengan L[N] ; N = 2, diperoleh
finish
13. INSERTION SORT
(Algoritma Pengurutan Sisip)
Metode pengurutan sisip adalah metode
pengurutan dengan cara menyisipkan elemen
larik pada posisi yang tepat. Pencarian posisi
yang tepat dilakukan dengan melakukan
pencarian beruntun didalam larik. Selama
pencarian posisi yang tepat dilakukan pergeseran
elemen larik
14. Procedure UrutSisip (Input/Output L:Larik, Input N : Integer)
{Urutkan Larik L[1..N] sehingga terurut Menurun dengan metode Pengurutan Sisip }
{K. Awal : Elemen Larik sudah terdefinisi nilai-nilainya}
{K. Akhir : Elemen Larik terurut menarik sedemikian sehingga L[1] ≥ L[2] ≥ L[3] ≥ ….L[N].}
DEKLARASI
i, j : integer {pencacah pass}
x : integer {pencacah, untuk pengapungan pada setiap langkah}
ketemu : boolean
DESKRIPSI
{ elemen L[1] dianggap sudah terurut
for i ← 2 to N do { sisipkan L[i] ke dalam bagian yang sudah terurut }
x ← L[ i ] { cari posisi yang tepat untuk x didalam L[1..i-1] sambil menggeser }
j ← i - 1
ketemu ← false
while ( j≥ 1 ) and (not ketemu) do
if x > L[j] then
L[j+1] ← L[j] {geser}
j ← j - 1
else
ketemu ← true
endif
Endwhile { j< 1 or ketemu }
L[j+1] ← x { sisipkan x pada tempat yang sesuai }
endfor
15. Contoh :
Tinjau Larik L dengan N = 4 buah elemen di bawah ini yang belum terurut
menaik
Pass 1 andaian
Elemen x = L[1] dianggap sudah terurut
16. Pass 2 cari posisi yang tepat untuk x = L[2] pada larik L[1..2]
Pass 3 cari posisi yang tepat untuk x = L[3] pada larik L[1..3]
Pass 4 cari posisi yang tepat untuk x = L[4] pada larik L[1..4]
finish