Kamis, 12 September 2013

Program data_perpustakaan

Program data_perpustakaan;
Uses winCrt ;
Type
perpustakaan = Record
KdBuku : word;
Judul : String[20];
Jenis : string[20];
Pengarang : string[20];
Penerbit : string[20];
Harga : real;
Nama : String[20];
End;
Var
prpus : File of Perpustakaan;
Data : Perpustakaan;
Pil,lgi : Char;
i : integer;
Procedure Menu;
Begin
Clrscr;
writeln('             PROGRAM PERPUSTAKAAN');
writeln(' INSTITUT SAINS & TEKNOLOGI AKPRIND YOGYAKARTA ');
writeln('====================================================');
writeln('Nama Pemegang Saham  Perpustakaan Ini Adalah:');
writeln('NAMA : ALFIANDRI          : 121051128');
writeln('NAMA : ASRI RESPATI       : 121051070');
writeln('Nama : Adib arwanda kusuma: 121051072');
writeln('====================================================');
Writeln('           MENU UTAMA');
writeln('====================================================');
Writeln('1. TAMBAH DATA BUKU');
Writeln('2. EDIT DATA BUKU');
Writeln('3. TAMPILKAN DATA BUKU');
Writeln('4. HAPUS DATA BUKU');
Writeln('5. KELUAR PROGRAM');
Write('Pilihan [1..5]: ');Pil:=Readkey;
End;
Procedure BukaFile;
Begin
Assign(prpus,'perpustakaan.txt');
Reset(prpus);
End;
Procedure Tambah;
Var
Lagi: Char;
Ada : Boolean;
i : Integer;
kode: Word;
Begin
lgi :='Y';
Lagi:='Y';
Clrscr;
BukaFile;
Rewrite(prpus);
Repeat
Clrscr;
Ada:=False;
i:=0;
Writeln('TAMBAH DATA BUKU ');
Writeln('----------------');
Write('Kode Buku : ');Readln(kode);
While (Ada=False) And (i<>Filesize(prpus)) Do
Begin
Seek(prpus,i);
Read(prpus,Data);
If Data.KdBuku=kode Then
Ada:=True
Else
Inc(i);
End;
If (Ada=True) Then
Begin
Writeln('Kode Buku Ini Sudah ada!');
End
Else
Begin
Seek(prpus,Filesize(prpus));
Data.KdBuku:=kode;
Write('Judul Buku : ');Readln(Data.judul);
Write('Jenis Buku : ');Readln(Data.Jenis);
Write('Pengarang : ');Readln(Data.Pengarang);
Write('Penerbit : ');Readln(Data.Penerbit);
Write('Harga Sewa : ');Readln(Data.Harga);
Write(prpus,Data);
End;
Write('Apakah Mau Tambah Data Lagi [Y/T]:');Lagi:=Upcase(Readkey);
Until Lagi<>'Y';
Close(prpus);
End;
Procedure Edit;
Var
Lagi : Char;
Ada : Boolean;
i : Integer;
kode: Word;
Begin
lgi :='Y';
Lagi:='Y';
Clrscr;
BukaFile;
If IOResult<>0 Then
Write('Data Masih Kosong...!')
Else
Begin
Repeat
Clrscr;
Ada:=False;
i:=0;
Writeln('EDIT DATA BUKU');
Writeln('**************');
Write('Kode Buku : ');Readln(kode);
While (Ada=False) And (i<>Filesize(prpus)) Do
Begin
Seek(prpus,i);
Read(prpus,Data);
If Data.KdBuku=kode Then
Begin
Ada:=True;
writeLN('   Data Buku');
writeLN('===============');
Write('Judul Buku : ');writeln(Data.judul);
Write('Jenis Buku : ');writeln(Data.Jenis);
Write('Pengarang : ');writeln(Data.Pengarang);
Write('Penerbit : ');writeln(Data.Penerbit);
Write('Harga Sewa : ');writeln(round(Data.Harga));
End
Else
Inc(i);
End;
If (Ada=True) Then
Begin
Data.KdBuku:=kode;
writeln;
writeln('Masukan Data Buku');
writeln('==================');
Write('Judul Buku : ');readln(Data.judul);
Write('Jenis Buku : ');readln(Data.Jenis);
Write('Pengarang : ');readln(Data.Pengarang);
Write('Penerbit : ');readln(Data.Penerbit);
Write('Harga Sewa : ');readln(Data.Harga);
Seek(prpus,i);
Write(prpus,Data);
End
Else
Begin
Write('Nomor kode "',kode,'" Ini Tidak Ada!');
End;
Write('Apakah Mau Edit Data Lain [Y/T]: ');Lagi:=Upcase(Readkey);
Until Lagi<>'Y';
End;
Close(prpus);
End;
Procedure Tampil;
Var
i,n : Integer;
Begin
clrscr;
lgi :='Y';
BukaFile;
If IoResult <> 0 Then
begin
Write('Maaf Data Masih Kosong ! ');
end
Else
Begin
Clrscr;
writeln('             ==========DATA BUKU==========');
writeln('|NO|KODE|JUDUL BUKU|JENIS BUKU|PENGARANG|PENERBIT|H.SEWA|');
i:=0;
While Not EoF(prpus) Do
Begin
Inc(i);
Read(prpus,Data);
write('| ',i);
write('|'); write(data.kdbuku);
write(' |'); write(data.judul);
write('   |'); write(data.jenis);
write('          |'); write(data.pengarang);
write('  |'); write(data.penerbit);
write('   |'); write(round(data.harga));
writeln(' |');
End;
Close(prpus);
End;
Writeln;
Write(' Tekan Enter untuk Kembali Kemenu Utama ');Readln;
End;
Procedure Hapus;
Var
FileTmp : File of Perpustakaan;
Lagi,Hapus : Char;
Ada : Boolean;
i : Integer;
kode : Word;
Begin
lagi :='Y';
Lagi:='Y';
Clrscr;
Repeat
BukaFile;
If IOResult<>0 Then
Write('Data Masih Kosong...!')
Else
Begin
Clrscr;
Assign(FileTmp,'perpustakaan.tmp');
Rewrite(FileTmp);
Ada:=False;
i:=0;
Writeln('HAPUS DATA BUKU');
Writeln('-----------------');
Write('Kode Buku : ');Readln(kode);
While (Ada=False) And (i<>Filesize(prpus)) Do
Begin
Seek(prpus,i);
Read(prpus,Data);
If Data.KdBuku=kode Then
Ada:=True
Else
Inc(i);
End;
If (Ada=True) Then
Begin
Write('Judul Buku : ');writeln(Data.judul);
Write('Jenis Buku : ');writeln(Data.Jenis);
Write('Pengarang : ');writeln(Data.Pengarang);
Write('Penerbit : ');writeln(Data.Penerbit);
Write('Harga Sewa : ');writeln(round(Data.Harga));
Write('Apakah Data Ini Mau Di Hapus [Y/T]: ');Readln(Hapus);
If Upcase(Hapus)='Y' Then
Begin
For i := 1 to Filesize(prpus) Do
Begin
Seek(prpus,i-1);
Read(prpus,Data);
If Data.KdBuku<>kode Then
Write(FileTmp,Data);
End;
Close(prpus);
Assign(prpus,'perpustakaan.txt');
Erase(prpus);
Assign(FileTmp,'perpustakaan.tmp');
Rename(FileTmp,'perpustakaan.txt');
Write(' Nomor Kode "',kode,'" Sudah Di Hapus! ');
End;
End
Else
Begin
Write('Nomor Kode "',kode,'" Ini Tidak Ada!');
End;
Write('Mau Hapus Data Lain [Y/T]: ');Lagi:=Upcase(Readkey);
End;
Until Lagi<>'Y';
End;
procedure keluar;
begin
writeln;
writeln('Terima Kasih Telah Berkunjung Di Perpustakaan Kami');
writeln(' INSTITUT SAINS & TEKNOLOGI AKPRIND YOGYAKARTA ');
writeln('====================================================');
writeln('NAMA : ALFIANDRI          : 121051128');
writeln('====================================================');
End;
Begin
Repeat
Menu;
Case Pil Of
'1' : Tambah;
'2' : Edit;
'3' : Tampil;
'4' : Hapus;
'5' : keluar;
End;
Until (lgi<>'Y') Or (Pil='5');
End.

0 komentar:

Posting Komentar