Program Sorting Data

PROGRAM SORTING DATA

Sorting data yaitu suatu cara dimana kita ingin mengurutkan sebuah data sesuai keinginan kita. Dalam bahasa pascal ada banyak macam cara untuk mensortir data yaitu quick sort,bubble sort,selection sort, dan sebagainya. Dalam hal ini kelompok kami membuat sebuah program sortir data mahasiswa berdasarkan nama dan kelas dengan metode Quick Sort. Berikut adalah programnya :(ketiklah program berikut ke dalam pascal)

program kelompok__2db01;
uses crt;
label awal;
var
oke:char;
type
tipelarik=string[25];
larikurut=array[1..100] of

tipelarik;

procedure masukkan;
label akhir;
const b=’            ‘;
type mhs= record
npm:string[8];kelas:string

[5];nm:string[12];
end;
var vfilemhs:file of mhs;
recmhs:mhs; i:integer; oke:char;
begin
clrscr;
assign(vfilemhs,’kelompok.TXT’);
{$i-}reset(vfilemhs);{$i+}

if ioresult <> 0 then rewrite

(vfilemhs);
i:=filesize(vfilemhs);
with recmhs do
begin
write(‘npm :’);readln(npm);
while (npm <>”) and (length

(npm)=8)do
begin
write (‘kelas :’);readln(kelas);
if length(kelas)<5 then
goto akhir;
write(‘nama :’);readln(nm);
if length(nm) <12 then
nm:=concat(nm,b);

repeat
write(‘save file …

y/n?’);readln(oke);
until oke in [‘Y’,’y’,’n’,’N’];
if oke in [‘y’,’Y’] then
begin
seek(vfilemhs,i);write

(vfilemhs,recmhs);inc(i);
end;
akhir
:writeln;
write(‘npm:’);readln(npm);

end;
writeln(‘data yang anda masukin

salah’);
end;
close(vfilemhs);readln;
end;

procedure quicksort(var

x:larikurut;  bawah,atas:word);
var i,j:word;
sementara:tipelarik;
begin
while atas>bawah do
begin
i:=bawah;
j:=atas;
sementara:=x[bawah];
while i<j do
begin
WHILE x[J]>sementara

Do
J:=J-1;
x[i]:=x[j];
while(i<j) and (x

[i]<=sementara) do
i:=i+1;
x[j]:=x[i];
end;
x[i]:=sementara;
quicksort(x,bawah,i-1);
bawah:=i+1;
end;
end;

PROCEDURE GARIS;
BEGIN
writeln

(‘——————————-

———‘);
END;
procedure kelompok;
begin
clrscr;
GOTOXY(28,4);
GARIS;
GOTOXY(27,5);WRITE(‘|’);  GOTOXY

(68,5);WRITE(‘|’);
GOTOXY(27,6);WRITE(‘|’);  GOTOXY

(68,6);WRITE(‘|’);
gotoxy(35,6);writeln(‘<<<KELOMPOK

PEMROGRAMAN >>>’); GOTOXY

(68,7);WRITE(‘|’);
GOTOXY(27,7);WRITE(‘|’); GOTOXY

(68,7);WRITE(‘|’);
GOTOXY(47,7);WRITELN

(‘2DB01’);GOTOXY(68,8);WRITE

(‘|’);
GOTOXY(27,8);WRITE(‘|’);GOTOXY

(68,9);WRITE(‘|’);
GOTOXY(27,9);WRITE(‘|’); GOTOXY

(68,10);WRITE(‘|’);
GOTOXY(28,9);GARIS;
GOTOXY(27,10);WRITE(‘|’);
gotoxy(29,10);WRITELN(‘1.

ASTRI’);
GOTOXY(27,11);WRITE(‘|’); GOTOXY

(68,11);WRITE(‘|’);
gotoxy(29,11);WRITELN(‘2. DWI’);
GOTOXY(27,12);WRITE(‘|’);GOTOXY

(68,12);WRITE(‘|’);
gotoxy(29,12);WRITELN(‘3. IMAM’);
GOTOXY(27,13);WRITE(‘|’);GOTOXY

(68,13);WRITE(‘|’);
gotoxy(29,13);WRITELN(‘4. MAYA’);
GOTOXY(27,14);WRITE(‘|’);GOTOXY

(68,14);WRITE(‘|’);
gotoxy(29,14);WRITELN(‘5. MILA’);
GOTOXY(28,15);
GARIS;

END;
procedure tampilan(var x:char);
type
mhs=record
npm:string[8];
kelas:string[5];
nm:string[12];

end;label awal,akhir,empat;
var
gabung,gabung1,name,npms,class:la

rikurut;
vfilemhs: file of mhs;
recmhs:mhs;
i,J:integer;temp:STRING[5];
COBA:CHAR;
begin
awal:
clrscr;
assign(vfilemhs,’kelompok.txt’);
reset(vfilemhs);
for i:= 1 to filesize(vfilemhs)

do
begin
seek(vfilemhs,i-1);
read(vfilemhs,recmhs);
name[i]:=recmhs.nm;
class[i]:=recmhs.kelas;
npms[i]:=recmhs.npm;
gabung[i]:=concat(name[i],npms

[i],class[i]);
gabung1[i]:=concat(class[i],name

[i],npms[i]);

end;
J:=2;
if x=’2′ then
quicksort(gabung,1,filesize

(vfilemhs));
if x=’3′ then
quicksort(gabung1,1,filesize

(vfilemhs));
if x=’4′ then
begin
quicksort

(gabung1,1,filesize(vfilemhs));
write(‘kelas

:’);readln(temp);
IF LENGTH(TEMP)<>5

THEN
BEGIN
clrscr; gotoxy

(28,10);repeat writeln(‘SEARCH

KELAS TIDAH DI TEMUKAN <ULANGI

(y/n)!!>’);readln(coba);
until COBA in

[‘Y’,’y’,’n’,’N’];
if COBA in

[‘y’,’Y’] then
goto AWAL else goto

akhir;
end;

clrscr;
gotoxy

(30,2);writeln(‘KELAS :’,temp);
gotoxy

(29,3);writeln(‘DAFTAR

MAHASISWA’);
goto empat;
end;

clrscr;
empat:
GOTOXY (23,4);
GARIS;
GOTOXY (23,6);
writeln(‘|no  npm        kelas

nama        |’);
GOTOXY (23,8);
GARIS;
writeln;

for i:=1 to filesize(vfilemhs)

do
begin
if (name[i]<>”) then  begin
if x=’1′ then  BEGIN
GOTOXY (23,I+9);writeln

(‘|’,i:2,’| ‘,copy(gabung

[i],13,8),’   ‘,copy(gabung

[i],21,5) ,’    ‘,copy(gabung

[i],0,12),’|’); END;
if x=’2′ then  BEGIN
GOTOXY (23,I+9);writeln

(‘|’,i:2,’| ‘,copy(gabung

[i],13,8),’   ‘,copy(gabung

[i],21,5) ,’    ‘,copy(gabung

[i],0,12));   END;
if x=’3’ then  BEGIN
GOTOXY (23,I+9);writeln

(‘|’,i:2,’| ‘,copy(gabung1

[i],18,8),’   ‘,copy(gabung1

[i],0, 5) ,’    ‘,copy(gabung1

[i],6,12));END;
if (x=’4’) and (copy(gabung1

[i],1,5)=temp) then  BEGIN
GOTOXY (23,I+9);writeln

(‘|’,i:2,’| ‘,copy(gabung1

[i],18,8),’   ‘,copy(gabung1

[i],0, 5) ,’    ‘,copy(gabung1

[i],6,12));END;

end;
J:=I+10;
end;
GOTOXY(23,J);GARIS;
akhir:
end;

var
m:char;
begin

awal:
clrscr;
GOTOXY (28,3);WRITELN(‘<<< MENU

FILE >>>’);
GOTOXY (28,5);writeln(‘1 INPUT

DATA’);

GOTOXY (28,6);writeln(‘2 DATA

ACAK’);
GOTOXY (28,7);writeln(‘3 SORTIR

NAMA’);
GOTOXY (28,8);writeln(‘4 SORTIR

KELAS’);
GOTOXY (28,9);writeln(‘5

MENAMPILKAN KELAS’);
GOTOXY(28,10);WRITELN(‘6

SELESAI’);

GOTOXY (28,12);write(‘PILIHAN

?’);readln(oke);
IF NOT (OKE IN [‘1’..’6′]) THEN
BEGIN
WRITELN(CHAR(7));
GOTOXY (28,13);WRITELN(‘PILIHAN

SALAH !!!’);
READLN;
GOTO awal;
END;
case oke of
‘1’:begin masukkan;goto awal;

end;
‘2’:BEGIN m:=’1′;tampilan

(m);readln;goto awal; end;
‘3’:begin m:=’2′;tampilan

(m);readln;goto awal; end;
‘4’:begin m:=’3′;tampilan

(m);readln;goto awal; end;
‘5’:begin m:=’4′ ;tampilan(m);

readln;goto awal; end;
‘6’:begin kelompok; end;
end;
readln;
end.

setelah program diketik, kemudian RUN dengan menekan CTRL+F9, maka akan tampil seperti berikut :
kemudian dalam tampilan tersebut (MENU FILE), pada pilihan ketik angka 1.artinya kita akan memilih menu INPUT DATA. Kemudian tekan ENTER, maka kita akan diperintahkan untuk menginput data. Data yang saya input sebagai berikut :
Ketik Pilihan 1 untuk menginput data.
Jika sudah menginput data, dan menyimapnnya, pilih menu 2 untuk menampilkan data yang sudah diinput tadi secara acak.
Dan jika kita masih ingin menambah dta lagi, pilih kembali menu pilihan 1. Input data sesuai kebutuhan, dan simpan.
Pilih kembali menu pilihan 2 untuk menampilkan data yang baru saja diupdate tapi belum tersortir dengan baik.
Pilihan 3, untuk menyortir data berdasarkan nama

Hasil :
       Menu pilihan 4, untuk menyortir data yang sudah diinput berdasarkan kelas.
Hasil :
selanjutnya kembali ke menu utama lagi, pilih menu no 5 MENAMPILKAN KELAS. Input kelas yang ingin kita lihat datanya. Maka data di kelas yang kita input tadi akan muncul. Disini saya ambil contoh kelas 2db01
Hasil :
untuk mengakhiri program, kembali ke menu utama pilih menu no 6 yaitu SELESAI. Maka akan muncul nama-nama kelompok kami yang membuat program ini.
Hasil :

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s