Bentuk Sorting ada 2 yaitu :
1. Ascending ( urutan data dari Nilai Terkecil ke nilai terbesar)
2. Descending (urutan data dari Nilai Terbesar ke nilai Terkecil).
Misalnya ada sekelompok data : 9 3 8 4 6 4 5 9 2 1
Untuk mengurutkan data di atas menurut besarnyannya maka langkah yang dilakukan adalah dengan membandingkan data di antara satu dengan yang lain.
Langkah-langkah Mengurutkan data Secara Ascending
Bandingkan data dengan syarat :
Jika data[i]X= data[i]
Data[i]:=data[j]
Data[j]:=X
1. Bandingkan data ke i=1 dengan data ke j=1 s/d 4
2. Bandingkan data ke i=2 dengan data ke j= 1 s/d 4
Lakukan proses yang sama dengan langkah 1.
Berdasarkan cara kerja di atas, maka algoritma untuk mengurutkan data sebagai berikut :
Algoritma Ascending :
1. Mulai
2. Deklarasikan variabel
3. Tentukan banyaknya data (N)
4. Input Data Ni dalam loop sebanyak N
5. Bandingkan data ke-i dengan data ke j dalam loop
Jika data data[i] < data[j] maka tukar posisi data data[i] dengan data[j] sbb :
X= data[i]
Data[i]:=data[j]
Data[j]:=X
6. Cetak hasil
7. Selesai
Algoritma Descending :
1. Mulai
2. Deklarasikan variabel
3. Tentukan banyaknya data (N)
4. Input Data ke-i dalam loop sebanyak n
5. Bandingkan data ke-i dengan data yang lain dalam loop
Jika data data[i]>data[j], maka tukar posisi data data[i] dengan data[j] sbb :
Y= data[i]
Data[i]:=data[j]
Data[j]:=Y
6. Cetak hasil
7. Selesai
Kedua algoritma di atas dapat dibuat dalam satu program saja sbb :
Program Sorting;
USES Crt;
VAR
n, i, j,x, y : integer;
Data,data2 : Array [1..50] of integer ;
BEGIN
clrscr;
Write ('Masukkan banyak data : '); Readln (n);
For i:= 1 to n do
BEGIN
Write ('Input Data ke- ',i,' : ') ;
Readln (Data[i]);
Data2[i]:=data[i]; {simpan data[i] (kel data I) ke dalam data2[i] (kel data II) dimana data kel I sama dengan data kel II.}
End;
Writeln;
{Proses Mengurutkan Data Descending}
For i:= 1 to n do
Begin
For j:= 1 to n do
If Data[i]>Data[j] then
Begin
x:=Data[i]; {Simpan Data ke-i sbg bil Terbesar}
Data[i]:=Data[j]; {Tukar posisi Data: simpan data[j] ke data[i]}
Data[j]:=x; {simpan data[i] yang pertama dalam x ke dalam data[j]}
End;
End;
Writeln;
{Proses Mengurutkan Data Ascending}
For i:= 1 to n do
Begin
For j:= 1 to n do
If Data2[i]
y:=Data2[i]; {Simpan Data ke-i sbg bil Terkecil}
Data2[i]:=Data2[j]; {Tukar posisi Data}
Data2[j]:=y; {simpan data2[i] yang pertama dalam y ke dalam data2[j]}
End;
End;
{Cetak Hasil Urutan Data Descending}
For i:= 1 to n do
Write(' ', Data[i]);
writeln;writeln;
For i:= 1 to n do
Write (' ', Data2[i]);
readln;
END.
Hasil program :
Semoga bermanfaat.
Godbless you all
Nikmati Tehnya dan Dapatkan Hadiahnya
|
Tidak ada komentar:
Posting Komentar
Silakan memberikan komentar dan pertanyaan yang sifatnya positif.