Laman

Sabtu, 12 Juni 2010

Program Splitting Data Mahasiswa

SPLITTING

Pada dasarnya splitting (pemisahan file) adalah salah satu metode pengolahan file. Ini merupakan proses pemisahan file yang mengandung kelompok-kelompok data dengan kunci yang sama yang harus diproses dalam satu kesatuan berdasarkan kelompok-kelompok data yang ada menjadi dua buah file atau lebih berdasarkan kriteria tertentu.



program splitting;

uses wincrt;

type mahasiswa = record
nama : string[20];
bp : string[10];
jurusan : string[30];
ip : real;
end;

var pilihan,lagi,pil: char;
mhs : mahasiswa;
fmhs : file of mahasiswa;
a : array[1..10] of mahasiswa;
nma,almt : string[10];

procedure masukkan;
begin
assign (fmhs,'maha.dat');
rewrite(fmhs);
lagi := 'y';
while lagi in ['y','Y'] do
with mhs do
begin
clrscr;
writeln('Memasukkan Data Mahasiswa');
writeln('-------------------------');
writeln;
write('Nama : ');readln(nama);
write('No. BP : ');readln(bp);
write('Jurusan : ');readln(jurusan);
write('IP : ');readln(ip);
writeln;
write(fmhs,mhs);
write('Ada Lagi [y/t] : ');readln(lagi);
end;
close(fmhs);
end;

procedure tampil;
var filetakada : boolean;
i,jumlahmhs : integer;
begin
clrscr;
write('Masukkan File ; ');readln(nma);
almt := nma + '.dat';
assign(fmhs,almt);
{$i-}
reset(fmhs);
{$i+}
if ioresult = 0 then filetakada := false;
clrscr;
writeln(' Tampilan Data Mahasiswa');
writeln('-----------------------------');
writeln;
for i := 1 to 65 do write('-');writeln;
writeln('No':3,'Bp':15,'Nama':20,'Jurusan':20,'IP':7);
for i := 1 to 65 do write('-');writeln;
jumlahmhs := filesize(fmhs);

for i := 1 to jumlahmhs do
begin
seek(fmhs,i-1);
read(fmhs,mhs);
with mhs do
begin
writeln(i:3,bp:15,nama:20,jurusan:20,ip:7:2);
end;
end;
for i := 1 to 65 do write('-');writeln;
readln;
close(fmhs);
end;

procedure tampil1;
var filetakada : boolean;
i,jumlahmhs,n : integer;
x : string[15];
begin
assign(fmhs,'maha.dat');
{$I-}
reset(fmhs);
{$I+}
if ioresult = 0 then filetakada := false;
clrscr;
writeln('Pengelompokkan Data Per Jurusan');
writeln('-------------------------------');
writeln;
write('Masukkan Jurusan : ');readln(x);
writeln;
jumlahmhs := filesize(fmhs);

n := 0;
for i:=1 to jumlahmhs do
begin
seek(fmhs,i-1);
read(fmhs,mhs);
if mhs.jurusan = x then
begin
n := n + 1;
a[n] := mhs;
end;
end;
readln;
close(fmhs);
writeln('Menyimpan file');
writeln;
begin
write('Nama file : ');readln(nma);
almt := nma + '.dat';
assign(fmhs,almt);
rewrite(fmhs);
for i := 1 to n do
begin
mhs := a[i];
write(fmhs,mhs);
end;
close(fmhs);
end;

end;


begin
repeat
clrscr;
writeln('Menu Pilihan Yang Ingin Dilakukan');
writeln('---------------------------------');
writeln('1. Masukkan Data');
writeln('2. Pengelompokan Data Per Jurusan');
writeln('3. Tampil Data (keseluruhan/jurusan)');
writeln('4. Selesai');
writeln;
write('Pilihan : ');readln(pilihan);
case pilihan of
'1' : masukkan;
'2' : tampil1;
'3' : tampil;end;
until pilihan = '4' ;
end.

Tidak ada komentar:

Posting Komentar