Nama : Raihan Muhammad Saprudin Nim :(20110034)
Prodi : RPL
Tugas Sorting
1. Bubble sort
program bubble_sort;
uses crt;
type
pengurutan = array [1..10] of integer;
procedure tukar (var a,b:integer);
var
x: integer ; begin
x:=a;
a:=b;
b:=x;
end;
procedure bubble_sort(var z:pengurutan; n:integer);
var
i,j:integer;
begin
for i:=1 to n-1 do for j:=1 to n-i do if z[j] > z[j+1] then tukar (z[j],z[+1]);
end;
var
data:pengurutan;
i,j,n:integer;
begin clrscr;
writeln('program bubble sort');
writeln('===================');
write('masukan data :'); readln(n);
for i:=1 to n do begin
write('data ke-',i,'='); readln(data[i]);
end;
writeln;
bubble_sort(data,n);
writeln('data yang telah dengan bubble sort');
writeln('adalah sebagai berikut');
for i:=1 to n do writeln(data[i]);
readln;
end.
Outputnya
2. Maximum sort Codingan
Program maksimumsort;
uses crt;
var data: array [1..100] of integer;
i,j,temp,jumlah: integer;
imax,tempjum,max: integer;
begin clrscr;
writeln('program maksimum sort');
writeln('===================');
write('Masukan jumlah data : ');
readln(jumlah);
for i:=1 to jumlah do begin
write('Masukan data ke- ',i,' : ');
readln(data[i]);
end;
readln;
writeln('Data yang belum terurut');
for i:=1 to jumlah do begin
writeln(data[i]);
end;
tempjum:=jumlah;
for i:=1 to jumlah do begin
imax:=1;
max:=data[1];
for j:=1 to tempjum do begin
if (data[j]>max) then begin
max:=data[j];
imax:=j;
end;
end;
temp:=data[tempjum];
data[tempjum]:=data[imax];
data[imax]:=temp;
tempjum:=tempjum-1;
end;
writeln;
writeln('Data yang sudah terurut');
for i:=1 to jumlah do begin
writeln(data[i]);
end;
readln;
end. indeksx:=0;
while ((awal <= akhir ) and (not ketemu))do begin
tengah := (awal + akhir) div 2;
if cari = data[tengah] then begin
ketemu :=true;
indeksx := tengah;
end else begin
if cari<data[tengah] then akhir := tengah-1
else
awal := tengah +1;
end;
end;
binary:=indeksx;
end;
procedure insert;
var min,urut,k : integer;
l,m:string;
begin urut:= 1;
for i:= 1 to n-1 do begin
min:=i;
for j:= urut to n do begin
if data[j] < data[min] then min:=j;
if data[i] <> data[min] then begin
k:= data[i];
end;
if data[i] > data[min] then begin
data[i]:=data[min];
data[min]:= k;
end;
end;
urut:=urut+1;
end;
end;
begin clrscr;
writeln('---');
writeln(' Pencarian Binary ');
writeln('---');
write('Jumlah data : '); readln(n);
writeln;
for i:= 1 to n do begin
write('Indeks [',i,'] : '); readln(data[i]);
end;
writeln;
insert;
write('Data setelah diurutkan : ');
for i:= 1 to n do write(data[i]:2);
writeln;
writeln;
write('Cari : '); readln(cari);
indeks:=binary(cari);
writeln;
if indeks <> 0 then begin
writeln('Data yang dicari : ',cari);
writeln('Ditemukan pada indeks ke-',indeks);
end else
write(cari,' Tidak ditemukan');
readln;
end.
Outputnya
3. Minimum Sort Codingan
Program minimumsort;
uses crt;
const maks = 50;
type
Larik = array[1..maks] of integer;
var
n,i,j : integer;
L: larik;
min : integer;
temp : integer;
{=======================INPUT LARIK======================}
begin
writeln('program minimum sort');
writeln('===================');
writeln('Masukkan Jumlah data : '); readln(n);
for i:= 1 to n do begin
writeln('Masukkan data ke-',i,' : ');read(L[i]);
end;
writeln('==================');
writeln('Data input nya adalah : ');
for i:=1 to n do write(L[i],' ');
{============PROSES SORTING SELECTION SORT DESCENDING========================}
For i:=1 to n-1 do begin
Min:=i;
For j:= i to n do begin
If L[j] > L[min] then Min:=j;
End;
Temp:=L[i];
L[i]:=L[min];
L[min]:=temp;
End;
{===============TAMPIL DATA=========================}
writeln;
writeln('Data setelah Diurutkan dengan Selection Sort Descending : ');
for i := 1 to n do write(L[i],' ');
readln;
readln;
end.