Algorit ma & Pem rograman – Ken Kinant i Purnam asari 1 Per temuan XII I, XIV
- PENGURUTAN
Penger tian
Algor itma Pengur utan dibuat untuk menghasilkan kumpulan data yang ter ur ut.
JenisAda banyak jenis pengur utan. Tiga jenis yang paling seder hana adalah Bubble Sort, Selection Sor t, dan Inser tion Sort.
Bubble Sort (Pengurutan Gelembung / Pemberatan
)Konsep pengur utan ini dilakukan dengan car a membandingkan setiap elemen dengan elemen setelahnya. Untuk membentuk ur utan menaik atau menur un, elemen diper tukar k an sesuai atur an.
Pembandingan selur uh elemen dilakukan sebanyak (N-1) kali.
Contoh :
Misalnya kita akan mengur utkan sebuah ar r ay A yang memiliki 3 elemen. Dalam ur utan menaik, mak a elemen per tama har us lebih kecil dar i elemen ter akhir .
Langkah 1 : dimulai dengan mengakses indeks per tama dar i ar r ay dan membandingkannya dengan indeks setelahnya (indek s kedua).
Kar ena elemen per tama tidak lebih besar dar i elemen kedua, maka tidak ak an dilakukan per tukar an.
Kemudian dimulai kembali dengan membandingkan indeks kedua dengan indeks setelahnya (indeks ketiga).
21 25 7
A
1 2 3
8 11 13
Algorit ma & Pem rograman – Ken Kinanti Purnam asari 2 Kar ena elemen kedua lebih besar dar i elemen ketiga, maka dilakukan per tukar an.
Selanjutnya, dilakuk an dengan atur an yang sama. Apabila nilai di suatu indeks lebih besar dar i nilai di indeks setelahnya, maka per tukar an nilai akan dilakukan.
Setelah dilakukan pembandingan sebanyak 5 kali, akhir nya didapatkan hasil pengur utan langkah per tama sebagai ber ikut.
Algorit ma & Pem rograman – Ken Kinanti Purnam asari 3 Maka, setelah dilakukan pembandingan sebanyak 4 kali, akhir nya didapatkan hasil pengur utan langkah kedua sebagai ber ikut.
Langkah 3 : didapatkan hasil pembandingan sebagai ber ikut :
Algorit ma & Pem rograman – Ken Kinant i Purnam asari 4 Langkah 4 : didapatkan hasil pembandingan sebagai ber ikut :
Maka, setelah dilakukan pembandingan sebanyak 2 kali, akhir nya didapatkan hasil pengur utan langk ah keempat sebagai ber ikut.
Langkah 5 : didapatkan hasil pembandingan sebagai ber ikut :
Setelah dilakuk an pembandingan sebanyak 1 kali, didapatkan hasil pengur utan langkah kelima sebagai ber ikut.
Maka, pada akhir nya ar r ay dapat dipastikan ter ur ut setelah langkah kelima diker jakan.
7 8 11
A
1 2 3
13 21 25
Algorit ma & Pem rograman – Ken Kinanti Purnam asari 5 ALGORITMA
{Bubble Sort / Pengurutan Pemberatan}
program Pengurutan;
{I.S : Data Array sudah terdefinisi}
{F.S : Data Array yang sudah diurutkan akan ditampilkan}
DEKLARASI
const Nmaks = 100
type larik = array[1..Nmaks] of integer
i,j,N,temp : integer
{Bubble Sort / Pengurutan Gelembung}
program Pengurutan;
{I.S : Data Array sudah terdefinisi}
{F.S : Data Array yang sudah diurutkan akan ditampilkan}
const Nmaks = 100;
type larik = array[1..Nmaks] of integer;
Algorit ma & Pem rograman – Ken Kinanti Purnam asari 6
writeln('___________________________________'); writeln();
{PROSES PENGURUTAN} for i:=1 to N-1 do
writeln('___________________________________'); writeln();
writeln('___________________________________'); readln();
Algorit ma & Pem rograman – Ken Kinant i Purnam asari 7
Selection SortPengur utan ini dilakukan dengan mencar i ter lebih dulu nilai minimum atau maksimum dar i ar r ay.
Selection Sort M aksimumLangkah 1 : tentukan nilai Maksimum dar i keenam data dalam ar r ay.
Setelah dilakukan pembandingan semua elemen, ter nyata 25 adalah nilai ter besar . Maka, nilai mak simum ter sebut akan ditempatkan di posisi indeks keenam (posisi elemen ter akhir dar i ar r ay).
Langkah 2 : nilai mak simum dar i k elima data yang ter sisa (tidak ter masuk data ke-6) adalah 21. Maka, nilai maksimum ter sebut ak an ditempatkan di posisi indeks kelima.
Langkah 3 : nilai maksimum dar i keempat data yang ter sisa (tidak ter masuk data ke-5 dan 6) adalah 13. Maka, nilai maksimum ter sebut akan ditempatkan di posisi indeks keempat.
21 25 7
A
1 2 3
8 11 13
Algorit ma & Pem rograman – Ken Kinanti Purnam asari 8 Langkah 4 : nilai maksimum dar i ketiga data yang ter sisa (tidak ter masuk data ke-4,5, dan 6) adalah 11. Maka, nilai maksimum ter sebut akan ditempatkan di posisi indeks ketiga.
Langkah 5 : nilai maksimum dar i kedua data yang ter sisa (tidak ter masuk data ke-3,4,5, dan 6) adalah 8. Maka, nilai maksimum ter sebut akan ditempatkan di posisi indeks kedua. Pada contoh kasus, di tahap ini tidak per lu lagi dilakukan per tukar an.
Setelah dilakuk an pembandingan dengan nilai maksimum sebanyak 5 kali, didapatk an hasil pengur utan langkah kelima sebagai ber ikut.
Algorit ma & Pem rograman – Ken Kinanti Purnam asari 9 ALGORITMA
{Selection Sort / Pengurutan Sisip Maksimum}
program Pengurutan;
{I.S : Data Array sudah terdefinisi}
{F.S : Data Array yang sudah diurutkan akan ditampilkan}
DEKLARASI
const Nmaks = 100
type larik = array[1..Nmaks] of integer
i,j,temp,N,maks : integer
{Selection Sort / Pengurutan Sisip}
program Pengurutan;
{I.S : Data Array sudah terdefinisi}
{F.S : Data Array yang sudah diurutkan akan ditampilkan}
const Nmaks = 100;
type larik = array[1..Nmaks] of integer;
var
Algorit ma & Pem rograman – Ken Kinanti Purnam asari 10
begin
writeln();
writeln('SELECTION SORT');
writeln('___________________________________'); writeln();
writeln('___________________________________'); readln();
Algorit ma & Pem rograman – Ken Kinanti Purnam asari 11
Selection Sort M inimumSelection Sor t Minimum, memiliki konsep yang sama dengan Selection Sor t Maksimum, hanya saja pengur utan dilakukan dengan nilai minimum dar i ar r ay.
ALGORITMA
{Selection Sort / Pengurutan Sisip Minimum}
program Pengurutan;
{I.S : Data Array sudah terdefinisi}
{F.S : Data Array yang sudah diurutkan akan ditampilkan}
DEKLARASI
const Nmaks = 100
type larik = array[1..Nmaks] of integer
i,j,temp,N,min : integer
{Selection Sort / Pengurutan Sisip}
program Pengurutan;
{I.S : Data Array sudah terdefinisi}
{F.S : Data Array yang sudah diurutkan akan ditampilkan}
Algorit ma & Pem rograman – Ken Kinanti Purnam asari 12
type larik = array[1..Nmaks] of integer;
var
writeln('___________________________________'); writeln();
writeln('___________________________________'); readln();
Algorit ma & Pem rograman – Ken Kinant i Purnam asari 13
Insertion SortKonsep pengur utan ini dilakukan dengan menyisipkan dan menggeser data di dalam ar r ay. Data yang ada di setiap indeks ar r ay disisipkan ke dalam susunan data yang sudah ter ur ut.
Langkah 1 : dilakukan dengan menganggap data di indeks per tama sudah ter ur ut.
Kemudian, bandingkan data di indeks kedua dengan data yang sudah ter ur ut.
Kar ena data kedua lebih besar dar i indeks per tama, maka posisinya tidak ber ubah.
Langkah 2 : bandingkan data di indeks ketiga dengan data yang sudah ter ur ut.
Kar ena data ketiga lebih kecil dar i indeks per tama, maka data ter sebut dipindahkan ke indek s per tama, sementar a data yang sudah ter ur ut sebelumnya, digeser ke kanan.
21 25 7
A
1 2 3
8 11 13
Algorit ma & Pem rograman – Ken Kinanti Purnam asari 14 Langkah 3 : bandingkan data di indeks keempat dengan data yang sudah ter ur ut.
Kar ena data keempat lebih k ecil dar i indeks k edua, maka data ter sebut dipindahkan ke indek s kedua, sementar a data yang sudah ter ur ut sebelumnya, digeser k e kanan dar i indek s kedua.
Langkah 4 : bandingkan data di indeks kelima dengan data yang sudah ter ur ut.
Kar ena data kelima lebih kecil dar i indeks ketiga, maka data ter sebut dipindahkan k e indek s ketiga, sementar a data yang sudah ter ur ut sebelumnya, digeser k e kanan dar i indek s ketiga.
Langkah 5 : bandingkan data di indeks keenam dengan data yang sudah ter ur ut.
Algorit ma & Pem rograman – Ken Kinanti Purnam asari 15 Dengan demikian, keselur uhan data ter ur ut pada langkah kelima.
ALGORIT MA
{Insertion Sort / Pengurutan Sisip}
program Pengurutan;
{I.S : Data Array sudah terdefinisi}
{F.S : Data Array yang sudah diurutkan akan ditampilkan}
DEKLARASI
const Nmaks = 100
type larik = array[1..Nmaks] of integer
ketemu : boolean
{Masukkan nilai A[i] ke variabel bantuan X} x A[i]
{Inisialisasi variabel ketemu dan j} ketemu FALSE
{Sisipkan X ke indeks setelah j} A[j+1] x
Algorit ma & Pem rograman – Ken Kinanti Purnam asari 16 PASCAL
{Insertion Sort / Pengurutan Sisip}
program Pengurutan;
{I.S : Data Array sudah terdefinisi}
{F.S : Data Array yang sudah diurutkan akan ditampilkan}
const Nmaks = 100;
type larik = array[1..Nmaks] of integer;
var
writeln('___________________________________'); writeln();
{Masukkan nilai A[i] ke variabel bantuan X} x := A[i];
{Inisialisasi variabel ketemu dan j} ketemu := FALSE;
{Sisipkan X ke indeks setelah j} A[j+1] := x;
Algorit ma & Pem rograman – Ken Kinanti Purnam asari 17
writeln();
writeln('___________________________________'); writeln();
writeln('Hasil'); writeln('---');
for i:=1 to N do
write(A[i],' | '); writeln();
writeln('___________________________________'); readln();