ALGORITMAdanSTRUKTURDATAII SORTING
V3/20092010 1
Pertemuan11
Waktu :135menit
TujuanPembelajaran :Mahasiswamampumenjelaskanteknikpemrograman
menggunakanSorting.
SubstansiMateri :Bubble/ExchangeSort,SelectionSort
TabulasiKegiatanPerkuliahan
No
Tahap
Kegiatan
KegiatanPengajar
Kegiatan
Mahasiswa
Media&
Alat
Waktu
1 Pendahuluan 1. Membukapertemuan
2. Mengulangmateripertemuan
sebelumnya
Menyimak
Bertanya
PapanTulis 20Menit
2 Penyajian
Materi
1. Pendahuluanteoripengurutandata
2. Bubble/ExchangeSort
3. SelectionSort
Menyimak
Bertanya
Menjawab
Pertanyaan
PapanTulis 80Menit
3 Penutup 1. Menyimpulkanmateripertemuan
2. Memberikantugaskecil
3. Menutuppertemuan
Menyimak Papantulis 35Menit
SORT
Sorting adalah proses pengurutan data yang sebelumnya disusun secara acak sehingga
menjaditersusunsecarateraturmenurutsuatuaturantertentu.Adaduajenispengurutan:
1. Ascending(naik)
2. Descending(turun)
Contoh:
Dataacak :5 6 8 1 3 25 10
Ascending :1 3 5 6 8 10 25
Descending :25 10 8 6 5 3 1
MATERIKU LIAH
DIKTATKULIAH
ALGORITMAdanSTRUKTURDATAII SORTING
V3/20092010 2
Untukmelakukanprosespengurutantersebutdapatdigunakanbeberapametode,yaitu:
1. Bubble/ExchangeSort
2. SelectionSort
3. InsertionSort
4. QuickSort
Bubble/ExchangeSort
Membandingkanelemenyangsekarangdenganelemenyangberikutnya,jikaelemenyang
sekarang>elemenberikutnyamakatukar.
Proses:
Langkah1
22 10 15 3 8 2
22 10 15 3 2 8
22 10 15 2 3 8
22 10 2 15 3 8
22 2 10 15 3 8
2 22 10 15 3 8
Contohdeklarasivariabledanprosedurnya:
ProcedureTukarData(vara,b:word);
Varc:word;
Begin
c:=a;
a:=b;
b:=c;
End;
Pengecekan dapat dimulai dari data paling awal
atau paling akhir. Pada contoh disamping
pengecekan dilakukan mulai dari data yang paling
akhir. Jika data paling akhir tersebut lebih kecil
data didepan nya maka ditukar.
Proses pengecekan berlanjut terus sampai
menjadikan data terurut.
DIKTATKULIAH
ALGORITMAdanSTRUKTURDATAII SORTING
V3/20092010 3
ProcedureAsc_Bubble(vardata:array;jmldata:integer);
Var
i,j:integer;
begin
fori:=2tojmldatado
forj:=jmldatadowntoido
ifdata[j]<data[j1]then
TukarData(data[j],data[j1]);
End;
ProcedureDes_Bubble(vardata:array;jmldata:integer);
Var
i,j:integer;
begin
fori:=2tojmldatado
forj:=jmldatadowntoido
ifdata[j]>data[j1]then
TukarData(data[j],data[j1]);
End;
SelectionSort
Merupakan cara mengurutkan dengan membandingkan elemen yang sekarang dengan
elemenyangberikutnyasampaidenganelemenyangterakhir.Jikaditemukanelemenlain
yang lebih kecil dari elemen sekarang maka dicatat posisinya kemudian ditukar. Begitu
seterusnyasampaielementerakhir.
DIKTATKULIAH
ALGORITMAdanSTRUKTURDATAII SORTING
V3/20092010 4
Proses:
Langkah1: Langkah2:
Langkah3: Langkah4:
i = 1 2 3 4 5 6
22 10 15 3 8 2
Pembanding Posisi
22 > 10 2
10 < 15 2
10 > 3 4
3 < 8 4
i = 1 2 3 4 5 6
2 10 15 3 8 22
Pembanding Posisi
10 < 15 2
10 > 3 4
3 < 8 4
3 < 22 4
i = 1 2 3 4 5 6
2 3 15 10 8 22
Pembanding Posisi
15 > 10 4
10 > 8 5
8 < 22 5
i = 1 2 3 4 5 6
2 3 8 10 15 22
Pembanding Posisi
10 < 15 4
10 < 22 4
Posisi data ke-4 (10) = tetap
DIKTATKULIAH
ALGORITMAdanSTRUKTURDATAII SORTING
V3/20092010 5
Langkah5: Langkah6:
ProsespengurutantersebutadalahdenganmetodaSelectionascending.Untukdescending
makakebalikandariprosesdiatas.
ContohProcedureSelectionSort
ProcedureAsc_Selection;
Var
Min,pos:byte;
Begin
Fori:=1tomax1do
Begin
Pos:=i;
Forj:=i+1tomaxdo
Ifdata[j]<data[pos]thenpos:=j;
Ifi<>posthenTukarData(data[i],data[pos]);
End;
i = 1 2 3 4 5 6
2 3 8 10 15 22
Pembanding Posisi
15 < 22 5
Posisi data ke-5 (15) = tetap
Jadi urutan :
2 3 8 10 15 22
DIKTATKULIAH
ALGORITMAdanSTRUKTURDATAII SORTING
V3/20092010 6
End;
ProcedureDes_Selection;
Var
Min,pos:byte;
Begin
Fori:=1tomax1do
Begin
Pos:=i;
Forj:=i+1tomaxdo
Ifdata[pos]<data[j]thenpos:=j;
Ifi<>posthenTukarData(data[i],data[pos]);
End;
End;
ProcedureTukarDataadalahsamasepertiyangtelahdituliskansebelumnya.