Awali harimu dengan do'a terbaik, suatu yang berat susah pasti ada jalan keluarnya niat, usaha dan do'a itu kuncinya.

Jumat, 14 Januari 2011

Contoh Tipe File Bertipe pada Pascal dan Record

Program LatRec;
uses crt,dos;
Type
Nilai=Record
Nama : String[20];
NilaiPPN : Integer;
NilaiPPA : Integer;
NilaiAgama : Integer;
NilaiLogika : Integer;
end;
var
letak:string;
indeks,jmdata,x,y: Integer;
TotNilai : Integer;
CekFile : PathStr;
FileNilai : File of Nilai;
DtNilai : Nilai;
begin
clrscr;
write('Masukkan nama :');
readln(DtNilai.nama);
write('Masukkan nilai PPN ',DtNilai.Nama,':');
readln(DtNilai.nilaiPPN);
write('Masukkan nilai PPA ',DtNilai.Nama,':');
readln(DtNilai.nilaiPPA);
write('Masukkan nilai Logika ',DtNilai.Nama,':');
readln(DtNilai.nilaiLogika);
write('Masukkan nilai Agama ',DtNilai.Nama,':');
readln(DtNilai.nilaiAgama);
Assign(FileNilai,'Nilai0.dat');
CekFile:=FSearch('Nilai0.dat','');
if CekFile='' then
ReWrite(FileNilai)
else
Reset(FileNilai);
Seek(FileNilai,FileSize(FileNilai));
Write(FileNilai,DtNilai);
clrscr;
writeln('Sebelum diurutkan');
writeln('DATA NILAI');
{123456789 123456789 123456789 123456789 123456789 123456789 123456789 1}
writeln('ÚÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄ¿');
writeln('³Nama ³Nil PPN³Nil PPA³Nil Logika³Nil Agama³Grade ³Keterangan ³');
writeln('ÃÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄ´');

Reset(FileNilai);
for indeks:=0 to FileSize(FileNilai)-1 do
begin
Read(FileNilai,DtNilai);
gotoxy(1, indeks+6);
write('³',DtNilai.nama);
gotoxy(14,indeks+6);
write('³',DtNilai.nilaiPPN);
gotoxy(22,indeks+6);
write('³',DtNilai.nilaiPPA);
gotoxy(30,indeks+6);
write('³',DtNilai.nilaiLogika);
gotoxy(41,indeks+6);
write('³',DtNilai.nilaiAgama);
gotoxy(51,indeks+6);
totNilai:=DtNilai.nilaiPPN+DtNilai.nilaiPPA+DtNilai.nilaiLogika+
DtNilai.nilaiAgama;
if totNilai>=34 then
write('³ A')
else if totNilai>=28 then
write('³ B')
else if totNilai>=24 then
write('³ C')
else
write('³ D');
gotoxy(58,indeks+6);
if DtNilai.nilaiLogika>7 then
write('³L')
else
writeln('³TL');
gotoXY(71,indeks+6);
writeln('³');

end;
writeln('ÀÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÙ');
gotoxy(1,20);
writeln('Sesudah diurutkan');
writeln('DATA NILAI');
{123456789 123456789 123456789 123456789 123456789 123456789 123456789 1}
writeln('ÚÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄ¿');
writeln('³Nama ³Nil PPN³Nil PPA³Nil Logika³Nil Agama³Grade ³Keterangan ³');
writeln('ÃÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄ´');

Reset(FileNilai);
{For := 2 To A Do
For D := A DownTo C Do
If DtNilai.Nama < DtNilai[D-1].Nama Then
Begin
Temp := Mhs[D];
DtNilai[D] := Dtnilai[D-1];
DtNilai[D-1] := Temp;
End;}
Reset(FileNilai);
{ for x:=2 to FileSize(FileNilai) do
for y:= filesize(filenilai) to x do
if dtnilai.nama < dtnilai.nama[y-1] then
begin
letak[y]:=dtnilai.nama[y];
dtnilai.nama[y]:=dtnilai.nama[y-1];
dtnilai.nama[y-1]:=letak[y];
end;}

for x:=0 to FileSize(FileNilai)-1 do
for y:= x+1 to FileSize(FileNilai) do
if dtnilai.nama[x]>dtnilai.nama[y] then
begin
letak[x]:=dtnilai.nama[x];
dtnilai.nama[x]:=dtnilai.nama[y];
dtnilai.nama[y]:=letak[y];
end;
for indeks:=0 to FileSize(FileNilai)-1 do
begin
Read(FileNilai,DtNilai);
gotoxy(1, indeks+25);
write('³',DtNilai.nama);
gotoxy(14,indeks+25);
write('³',DtNilai.nilaiPPN);
gotoxy(22,indeks+25);
write('³',DtNilai.nilaiPPA);
gotoxy(30,indeks+25);
write('³',DtNilai.nilaiLogika);
gotoxy(41,indeks+25);
write('³',DtNilai.nilaiAgama);
gotoxy(51,indeks+25);
totNilai:=DtNilai.nilaiPPN+DtNilai.nilaiPPA+DtNilai.nilaiLogika+
DtNilai.nilaiAgama;
if totNilai>=34 then
write('³ A')
else if totNilai>=28 then
write('³ B')
else if totNilai>=24 then
write('³ C')
else
write('³ D');
gotoxy(58,indeks+25);
if DtNilai.nilaiLogika>7 then
write('³L')
else
writeln('³TL');
gotoXY(71,indeks+25);
writeln('³');

end;
writeln('ÀÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÙ');
readln;
end.

Contoh Program Sorting mengunakan Buble

uses crt;
var
nama:array[1..10]of string;
n,x,y,indek:integer;
letak:string;
begin
clrscr;
write('Masukkan jumlah data = ');readln(n);
for indek:=1 to n do
begin
write('Data ke ',indek,' =');readln(nama[indek]);
end;
for x:=1 to n-1 do
for y:=x+1 to n do
if nama[x] > nama[y] then
begin
letak:=nama[x];
nama[x]:=nama[y];
nama[y]:=letak;
end;
writeln('Data setelah diurutkan');
for indek:=1 to n do
writeln(indek,'.',nama[indek]);
readln;
end.