Selasa, 03 Januari 2012

File Teks Pascal



Program Daftar_Siswa;
Uses WinCrt;
Type Siswa = Record
NIS    : Word;
Nama   : String[15];
Umur   : Byte;
Alamat : String[20];
Kota   : String [15];
End;
Var FileSwa : File of Siswa;
Data : Siswa;
Pil,Ul : Char;

Procedure Menu;
Begin
Clrscr;
Gotoxy(36,1);Write('*MENU PILIHAN*');
Gotoxy(36,2);Write('^_^_^_^^_^_^_^');
Gotoxy(29,4);Write('1. Tambah Data Daftar Siswa');
Gotoxy(29,5);Write('2. Edit Data Daftar Siswa');
Gotoxy(29,6);Write('3. Hapus Data Daftar Siswa');
Gotoxy(29,7);Write('4. Tampilkan Data Daftar Siswa');
Gotoxy(29,8);Write('5. Keluar (Exit)');
gotoxy(29,10);write('^_^_^_^_^_^_^_^^_^_^_^_^_^_^_^');
Gotoxy(20,12);Write('Pilihan [1..6]: ');Pil:=Readkey;
End;

Procedure BukaFile;
Begin
Assign(FileSwa,'Erna.Dat');
{$I-};
Reset(FileSwa);
{$I+};
End;
Procedure Tambah;
Var Lagi: Char;
Ada : Boolean;
i : Integer;
NIMS: Word;
Begin
Ul:='Y';
Lagi:='Y';
Clrscr;
BukaFile;
If IOResult<>0 Then
Rewrite(FileSwa);
Repeat
Clrscr;
Ada:=False;
i:=0;
Gotoxy(32,1);Write('TAMBAH DATA DAFTAR SISWA');
Gotoxy(32,2);Write('=========================');
Gotoxy(22,4);Write('No.Induk Siswa : ');Readln(NIMS);
While (Ada=False) And (i<>Filesize(FileSwa)) Do
Begin
Seek(FileSwa,i);
Read(FileSwa,Data);
If Data.NIS=NIMS Then
Ada:=True
Else
Inc(i);
End;
If (Ada=True) Then
Begin
Gotoxy(22,9);Write('Maaf ya, No.Induk Siswa "',NIMS,'" Ini Sudah Ada !!');
End
Else
Begin
Seek(FileSwa,Filesize(FileSwa));
Data.NIS:=NIMS;
Gotoxy(22,5);Write('Nama Siswa     : ');Readln(Data.Nama);
Gotoxy(22,6);Write('Umur           : ');Readln(Data.Umur);
Gotoxy(22,7);Write('Alamat         : ');Readln(Data.Alamat);
gotoxy(22,8);Write('Kota           : ');Readln(Data.Kota);
Write(FileSwa,Data);
End;
Gotoxy(22,10);Write('Mau Tambah Data Lagi [Y/T]: ');Lagi:=Upcase(Readkey);
Until Lagi<>'Y';
Close(FileSwa);
End;

Procedure Edit;
Var Lagi: Char;
Ada : Boolean;
i : Integer;
NIMS: Word;
Begin
Ul:='Y';
Lagi:='Y';
Clrscr;
BukaFile;
If IOResult<>0 Then
Write('Wah, Maaf ya ! Data Masih Kosong nih ^_^ ')
Else
Begin
Repeat
Clrscr;
Ada:=False;
i:=0;
Gotoxy(32,1);Write('EDIT DATA DAFTAR SISWA');
Gotoxy(32,2);Write('=======================');
Gotoxy(22,4);Write('No.Induk Siswa : '); Readln (NIMS);
While (Ada=False) And (i<>Filesize(FileSwa)) Do
Begin
Seek(FileSwa,i);
Read(FileSwa,Data);
If Data.NIS=NIMS Then
Begin
Ada:=True;
Gotoxy(22,5);Write('Nama Siswa     : ',Data.Nama);
Gotoxy(22,6);Write('Umur           : ',Data.Umur);
Gotoxy(22,7);Write('Alamat         : ',Data.Alamat);
gotoxy(22,8);write('Kota           : ',Data.Kota);
End
Else
Inc(i);
End;
If (Ada=True) Then
Begin
Data.NIS:=NIMS;
gotoxy(22,11);write('Silahkan di Edit Kawan !! ^_^');
Gotoxy(22,12);Write('Nama Siswa     : ');Readln(Data.Nama);
Gotoxy(22,13);Write('Umur           : ');Readln(Data.Umur);
Gotoxy(22,14);Write('Alamat         : ');Readln(Data.Alamat);
gotoxy(22,15);Write('Kota           : ');Readln(Data.Kota);
Seek(FileSwa,i);
Write(FileSwa,Data);
End
Else
Begin
Gotoxy(22,13);Write('Nomor Induk Siswa "',NIMS,'" Ini Tidak Ada!');
End;
Gotoxy(22,17);Write('Mau Edit Data Lagi [Y/T]: ');Lagi:=Upcase(Readkey);
Until Lagi<>'Y';
End;
Close(FileSwa);
End;


Procedure Hapus;
Var Filecut : File of Siswa;
Lagi,Hapus: Char;
Ada : Boolean;
i : Integer;
NIMS : Word;
Begin
Ul:='Y';
Lagi:='Y';
Clrscr;
Repeat
BukaFile;
If IOResult<>0 Then
Write('Wah, Maaf ya ! Data Masih Kosong nih ^_^ ')
Else
Begin
Clrscr;
Assign(Filecut,'Swa.cut');
Rewrite(Filecut);
Ada:=False;
i:=0;
Gotoxy(32,1);Write('HAPUS DATA DAFTAR SISWA');
Gotoxy(32,2);Write('========================');
Gotoxy(22,4);Write('No.Induk Siswa : ');Readln(NIMS);
While (Ada=False) And (i<>Filesize(FileSwa)) Do
Begin
Seek(FileSwa,i);
Read(FileSwa,Data);
If Data.NIS=NIMS Then
Ada:=True
Else
Inc(i);
End;
If (Ada=True) Then
Begin
Gotoxy(22,5);Write('Nama Siswa     : ',Data.Nama);
Gotoxy(22,6);Write('Umur           : ',Data.Umur);
Gotoxy(22,7);Write('Alamat         : ',Data.Alamat);
gotoxy(22,8);write('Kota           : ',Data.Kota);
Gotoxy(22,9);Write('Data Ini Mau Di Hapus [Y/T]: ');Readln(Hapus);
If Upcase(Hapus)='Y' Then
Begin
For i := 1 to Filesize(FileSwa) Do
Begin
Seek(FileSwa,i-1);
Read(FileSwa,Data);
If Data.NIS<>NIMS Then
Write(Filecut,Data);
End;
Close(FileSwa);
Assign(FileSwa,'Erna.Dat');
Erase(FileSwa);
Assign(Filecut,'Swa.cut');
Rename(Filecut,'Erna.Dat');
Gotoxy(22,10);Write('Nomor Induk Siswa "',NIMS,'" Sudah Di Hapus!');
End;
End
Else
Begin
Gotoxy(22,10);Write('Nomor Induk Siswa "',NIMS,'" Ini Tidak Ada!');
End;
Gotoxy(22,11);Write('Mau Hapus Data Lagi [Y/T]: ');Lagi:=Upcase(Readkey);
End;
Until Lagi<>'Y';
End;

Procedure Tampil;
Var i : Integer;
Begin
Ul:='Y';
BukaFile;
If IoResult <> 0 Then
Write('Wah, Maaf ya ! Data Masih Kosong nih ^_^ ')
Else
Begin
Clrscr;
Writeln(' DATA DAFTAR SISWA ');
Writeln;
Writeln('========================================================');
Writeln(' NO NIS    NAMA   UMUR   ALAMAT       KOTA ');
Writeln('========================================================');
i:=0;
While Not EoF(FileSwa) Do
Begin
Inc(i);
Read(FileSwa,Data);
Writeln(i:2,Data.NIS:4,Data.Nama:9,Data.Umur:5,Data.Alamat:12,Data.Kota:11);
writeln('========================================================');
End;
Close(FileSwa);
End;
Writeln;
gotoxy(20,13);Write('Silahkan Tekan Tombol Sembarang tuk melanjutkan !...');Readkey;
End;
Begin
Repeat
Menu;
Case Pil Of
'1' : Tambah;
'2' : Edit;
'3' : Hapus;
'4' : Tampil;
End;
Until (Ul<>'Y') Or (Pil='5');
DoneWinCrt;
End.

Tidak ada komentar:

Posting Komentar

Please!! kasih Komentar YG membangun tuk kebaikan ini BLOG. ^_^