Program Untuk Sorting (Mengurutkan Data)

Sorting adalah proses menyusun sekelompok data menurut nilai besarannya.

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]        Begin
            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;
   

  {Cetak Hasil Urutan Data Ascending}
        For i:= 1 to n do
        Write ('  ', Data2[i]);
        readln;
END.

Hasil program :




Semoga bermanfaat.
Godbless you all



Belajar Cari Duit Online
Nikmati Tehnya dan Dapatkan Hadiahnya 



No comments:

Post a Comment

Silakan memberikan komentar dan pertanyaan yang sifatnya positif.