Program Sort dalam Pascal

Program Sort:

uses crt:

Label a,B;

Var

Data: array[1…9] of integer;

i,Pil,jmldata: integer;

Hit: String;

Procedure Tukar Data(Var a,b: Integer);

Var c: word;

Begin

c:=a;

a:=b;

b:=c;

end;

Procedure CetakData;

Var i :integer;

Begin

Writeln( ‘ ‘ );Writeln (‘dataselanjutnya’);

For i:=1 to jumdata do

Begin

Write(data[i] ,  ‘  ‘  );

end;

end;

Procedure Asc_Bubble;

Var i ,j,k: integer;

Begin

For i:=1 to jmldata do

write(data[i],  ‘  ‘  );

writeln(‘data awal’);

For i:=1 to jmldata do

For j:=jmldata downto i+i do

If data [j]>data[j-1] then

Begin

k:=data [j];

data[j]:=data [j-1];

data[j-1]:=k;

cetak data;

end;

readln;

end;

Procedure Asc_Selection;

Var pos,j,k:byte;

Begin

for i:=i + i to jmldata do

Begin

pos :=i;

for j:=i+1 to jmldata do

if data[j]<data[pos] then pos :=j;

if   i<>pos  then tukardata (data[i],data[pos]);

cetakdata;

end;

readln;

end;

Procedure Asc_insert;

Var temp,j,k:integer;

Begin

For i:=2 to jmldata do

Begin

Temp:=data[i];

j:=i-1;

While (data[j]> temp) and (j>0) do

Begin

data[j+1]:=data[j];

dec(j);

end;

data[j+1]:=temp;

cetakdata;

end;

readln;

end;

Begin

Clrscr;

gotoxy(29,8);textcolor(lightgreen);write(‘PROGRAM PENGURUTAN DATA (SORT)’);

gotoxy(27,10);textcolor(yellow);write(‘Dibuat oleh: NAMA  = AGUS SUSILO’);

gotoxy(27,11)write                                                                     NIM      = ………………….’);

gotoxy (27,12);textcolor(lightgreen)write(‘dengan :   NAMA  = …………………..’);

gotoxy (27,13)write                                                                    NIM       =……………………’);

gotoxy(50.24)textcolor(lightgreen);write(‘PUSH ENTER     !!!!!’);Readln;

Clrscr;

B:

Clrscr;

Writeln (‘–(PROGRAM SORT’);

writeln(‘————————————————————————————‘)

write (‘masukkan jumlah data (maksmal 10);  ‘)readln ( jmldata);

writeln(‘masukkan ‘  ,jmldata  ,  ‘data  ‘ );

for i:=1 to jmldata do

Begin

writeln(‘data awal’);

write(‘data ke-  ‘  ,i,  ‘ :  ‘ );

readln(data[i]);

end;

a:writeln;

writeln(‘-(please select SORTING METHOD: ‘);

writeln(‘——————————————————————————-‘);

writeln(‘1,Bubble Sort’);

writeln(‘2,Selection Sort’);

writeln(‘3,Insrt Sort’);

writeln(‘4,EXIT’);

writeln(‘——————————————————————————–‘);

writeln;

write(‘ENTER YOUR CHOICE BOS : ‘)read(pil);

If (pil)4)0r(pil(0) then

Begin

writeln;

Begin

case pil of

1: Asc _Bubble;

2:Asc_Selection;

3:Asc_Insert;

4:EXIT;

end;

writeln;

texccolor(lightred);

writeln;

gotoxy (50,22);write(‘TEST LAGI BOS ???’);

gotoxy(50.23);write(‘ENTER NUMBER 1 IF YES’);

gotoxy(50,24);write(‘ENTER NUMBER 2 IF NO’);

writeln;

gotoxy(50,25);WRITE(‘YOUR CHOICE   : ‘ , ‘  ‘ );READLN(HIT);

IF HIT=’1’ THEN GOTO B ELSE EXIT;

READLN

END;

END.

X[i]:X[min];{}

X[min]:=titip;{}

end;

ulang(X,Y,n);

end;

procedure InsertionSort(X:data;Var Y:data;n:integer);

Var i,j,nilai:integer;wis:boolean;

Begin

nilai:=X[i];

j       :=i-1;

wis  :=false;

While not wis do

Begin

If j<=1 then wis:=true

else if nilaia[j-1]then wis:=true

else begin

a[j]:a[j-1];

j:=j-i

end

end;

a[j]:=nilai;

end;

ulang(x,y,n);

end;

Procedure Menu;

begin

clrscr;

write(‘Masukkan Banyak Bilangan yang dirandom:   ‘    );

read(banyak);

BuatData(A,Banyak);

Cetakdata();readln;

writeln;

write(‘Data diurutkan secara BubbleSort: ‘);

write(‘Data diurutkan secara SelectionSort: ‘ );

write(‘Data diurutkan secara InsectionSort: ‘ );

write(‘Exit Program Sort: ‘);readln;

end;

Procedure Output;

var

I:integer

begin

for i:=1 to n do

write (A[i],  ‘ ‘ O;

writeln;

end;

Begin

JumlahData;

Input;

Clrscr;

writeln(‘[1]Pengurutan secara BubbleSort’);

writeln(‘[2]Pengurutan secara SelectionSort’);

writeln(‘[3]Pengurutan secara InsertionSort’);

writeln(‘[4]Exit dari program Sort’);

write(‘Silahkan Masukkan Pilihan Anda= ‘)readln(pil);

case pil of

1:BubbleSort;

2:SelectionSort;

3:insertionSort;

4:Exit_dari_Program_Sort;

end;

Output;

readln;

end;

write(‘Mau lihat hasil datanya…?’);readln;

cetakdata(A);readln;

end;

Begin

menu;

end.