Program Data_siswa;
Uses WinCrt;
type siswa = Record
Noinduk : word;
NaIa : string;
JK : Char;
Jenis_Kelamin :String [10];
Kelas : Char;
Alamat : String[25];
TA : String[10];
jur: Char;
jurusan : String;
End;
Var
Filesiswa : File of siswa;
Data : siswa;
Pil,Pilihan,Ul : Char;
Procedure Ienu;
Begin
Clrscr;
Gotoxy(34,4);write(' MENU PILIHAN ');
Gotoxy(27,5);write('============================');
Gotoxy(27,7);write('1. Tambah Data siswa');
Gotoxy(27,9);write('2. Edit Data siswa');
Gotoxy(27,11);write('3. Hapus Data siswa');
Gotoxy(27,13);write('4. Tampilkan Data siswa');
Gotoxy(27,15);write('5. View');
Gotoxy(27,17);write('6. Keluar (Exit)');
Gotoxy(32,19);write('Pilihan [1..6]: ');Pil:=Readkey;
End;
Procedure BukaFile;
Begin
Assign(Filesiswa,'siswa.Dat');{$I-};
Reset(Filesiswa);{$I+};
End;
Procedure Tambah;
Var
Lagi : Char;
Ada : Boolean;
i : Integer;
NOCR : word;
Begin
Ul:='Y';
Lagi:='Y';
Clrscr;
BukaFile;
If IOResult<>0 then
Rewrite(Filesiswa);
Repeat
Clrscr;
Ada:=False;
i:=0;
Gotoxy(30,2);write(' TAMBAH DATA ');
Gotoxy(30,3);write('=======================');
Gotoxy(20,6);write('Noinduk : ');Readln(NOCR);
While (Ada=False) And (i<>Filesize(Filesiswa)) do
Begin
Seek(Filesiswa,i);
Read(Filesiswa,Data);
if Data.Noinduk=NOCR then
Ada:=True
Else
Inc(i);
End;
If (Ada=True) then
Begin
Gotoxy(20,15);write('Noinduk ''',NOCR,'''Ini Sudah Ada!');
End
Else
Begin
Seek(Filesiswa,Filesize(Filesiswa));
Data.Noinduk:=NOCR;
Gotoxy(20,7);write('Nama siswa : ');Readln(nama);
Gotoxy(20,8);write('Jenis Kelamin (L:Laki-Laki dan P:Perempuan):');Readln(Data.JK);
if (Data.JK='L') or (Data.JK='l') then
Data.Jenis_Kelamin:='Laki-Laki'
Else
if (Data.JK='P') or (Data.JK='p') then
Data.Jenis_Kelamin:='Perempuan'
Else
Data.Jenis_Kelamin:='Tidak Ada';
Gotoxy(20,9);write('Jenis Kelamin Anda : ');Readln(Data.Jenis_Kelamin);
Gotoxy(20,10);write('Kelas : ');Readln(Data.Kelas);
Gotoxy(20,11);write('Alamat : ');Readln(Data.Alamat);
Gotoxy(20,12);write('Tahun : ');Readln(Data.TA);
Gotoxy(20,13);write(' jur : ');Readln(Data. jur);
if (Data. jur='I') or (Data.JK='i') then
Data. jur:='inggris'
Else
if (Data. jur='M') or (Data. jur='m') then
Data. jur:='mandarin'
Else
if (Data. jur='A') or (Data. jur='a') then
Data.Jur:='arab'
Else
Data.Jur:='Tidak Ada';
Gotoxy(20,14);write('Jur Anda : ',Data.Jur);
write(Filesiswa,Data);
End;
Gotoxy(20,16);write('Mau Tambah Data Lagi [Y/T]: ');Lagi:=Upcase(Readkey);
Until Lagi<>'Y';
Close(Filesiswa);
End;
Procedure Edit;
Var
Lagi : Char;
Ada : Boolean;
i : Integer;
NOCR : word;
Begin
Ul:='Y';
Lagi:='Y';
Clrscr;
BukaFile;
if IOResult<>0 then
Write('Data Masih Kosong...!')
Else
Begin
Repeat
Clrscr;
Ada:=False;
i:=0;
Gotoxy(30,2);write('EDIT DATA');
Gotoxy(30,3);write('==============================');
Gotoxy(20,6);write('Noinduk : ');Readln(NOCR);
While(Ada=False) And (i<>Filesize(Filesiswa)) do
Begin
Seek(Filesiswa,i);
Read(Filesiswa,Data);
if Data.Noinduk=NOCR then
Begin
Ada:=True;
Gotoxy(20,7);write('Nama siswa : ',Data.Nama);
Gotoxy(20,8);write('Jenis Kelamin : ',Data.Jenis_Kelamin);
Gotoxy(20,9);write('Kelas : ',Data.Kelas);
Gotoxy(20,10);write('Alamat : ',Data.Alamat);
Gotoxy(20,11);write('Tahun Akademik : ',Data.TA);
Gotoxy(20,12);write('Jur : ',Data.Jur);
End
Else
Inc(i);
End;
If (Ada=True) then
Begin
Data.Noinduk:=NOCR;
Gotoxy(20,14);write('Nama siswa : ');Readln(Data.Nama);
Gotoxy(20,15);write('Jenis Kelamin (L:Laki-Laki dan P:Perempuan); ');Readln(Data.JK);
if (Data.JK='L') or (Data.JK='l') then
Data.Jenis_Kelamin:='Laki-Laki'
Else
if (Data.JK='P') or (Data.JK='p') then
Data.Jenis_Kelamin:='Perempuan'
Else
Data.Jenis_Kelamin:='Tidak Ada';
Gotoxy(20,16);write('Jenis Kelamin Anda : ',Data.Jenis_kelamin);
Gotoxy(20,17);write('Kelas : ',Data.Kelas);
Gotoxy(20,18);write('Alamat : ',Data.Alamat);
Gotoxy(20,19);write('Tahun : ',Data.TA);
Gotoxy(20,20);write('Jur : ',Data.Jur);
if (Data.Jur='M') or (Data.JK='m') then
Data.Jur:='Manajemen Informatika'
Else
if (Data.Jur='S') or (Data.Jur='s') then
Data.Jur:='Sistem Informasi'
Else
if (Data.Jur='T') or (Data.Jur='t') then
Data.Jur:='Teknik Informatika'
Else
Data.Jur:='Tidak Ada';
Gotoxy(20,21);write('Jur Anda : ',Data.Jur);
Seek(Filesiswa,i);
write(Filesiswa,Data);
End
Else
Begin
Gotoxy(20,20);write('Noinduk''',NOCR,'''Ini Tidak Ada!');
End;
Gotoxy(20,22);write('Mau Edit Data Lagi [Y/T] :');Lagi:=Upcase(Readkey);
Until Lagi<>'Y';
End;
Close(Filesiswa);
End;
Procedure Hapus;
Var
FileTmp : File of siswa;
Lagi, Hapus : Char;
Ada : Boolean;
i : Integer;
NOCR : word;
Begin
Ul:='Y';
Lagi:='Y';
Clrscr;
Repeat
BukaFile;
If IOResult<>0 then
Write('Data Masih Kosong...!')
Else
Begin
Clrscr;
Assign(FileTmp,'siswa.Tmp');
Rewrite(FileTmp);
Ada:=False;
i:=0;
Gotoxy(30,2);Write('HAPUS DATA');
Gotoxy(30,3);Write('========================');
Gotoxy(20,6);Write('Noinduk : ');Readln(NOCR);
While (Ada=False) And (i<>Filesize(Filesiswa)) do
Begin
Seek(Filesiswa,i);
Read(Filesiswa,Data);
if Data.Noinduk=NOCR then
Ada:=True
Else
Inc(i);
End;
if (Ada=True) then
Begin
Gotoxy(20,7);Write('Nama siswa :',Data.Nama);
Gotoxy(20,8);Write('Jenis Kelamin : ',Data.Jenis_Kelamin);
Gotoxy(20,9);Write('Kelas : ',Data.Kelas);
Gotoxy(20,10);Write('Alamat : ',Data.Alamat);
Gotoxy(20,11);Write('Tahun Akademik : ',Data.TA);
Gotoxy(20,12);Write('Jur : ',Data.Jur);
Gotoxy(20,13);Write('Data Ini Mau Dihapus [Y/T] : ');Readln(Hapus);
Begin
For i:=1 to Filesize(Filesiswa) do
Begin
Seek(Filesiswa,i-1);
Read(Filesiswa,Data);
if Data.Noinduk<>NOCR then
Write(FileTmp,Data);
End;
Close(Filesiswa);
Assign(Filesiswa,'siswa.Dat');
Erase(Filesiswa);
Assign(FileTmp,'siswa.Tmpt');
Rename(FileTmp,'siswa.Dat');
Gotoxy(20,15);Write('Noinduk''',NOCR,'''Sudah Di Hapus!');
End;
End
Else
Begin
Gotoxy(20,15);Write('Noinduk''',NOCR,'''Ini Tidak Ada!');
End;
Gotoxy(20,16);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('Maaf Data Masih Kosong ! ')
Else
Begin
Clrscr;
Writeln;
Writeln(' DATA siswa ');
Writeln('========================================================================');
Writeln(' NO Noinduk Nama Jenis Kelas Alamat Tahun Jur ');
Writeln(' siswa siswa Kelamin Akademik ');
Writeln('=========================================================================');
i:=0;
While Not EoF(Filesiswa) do
Begin
Inc(i);
Read(Filesiswa,Data);
Writeln(i:2,' ',Data.Noinduk:5,Data.Nama:12,Data.Jenis_Kelamin:13,Data.Kelas:5,Data.Alamat:12,Data.TA:7,Data.Jur:22);
End;
Writeln('=========================================================================');
Close(Filesiswa);
End;
Writeln;
Write('Press Any Key To Continue...');Readkey;
End;
Procedure View_JenisKelamin;
Var
i : Integer;
Jenis_Kelamin : String[10];
Lagi : Char;
Begin
Ul:='Y';
Lagi:='Y';
Repeat
Clrscr;
Write('Masukkan Jenis Kelamin : ');Readln(Jenis_Kelamin);
BukaFile;
if IOResult<>0 then
Write('Maaf Data Masih Kosong !')
Else
Begin
Writeln;
Writeln;
Writeln(' DATA siswa ');
Writeln('=========================================================================');
Writeln(' NO Noinduk Nama Jenis Kelas Alamat Tahun Jur ');
Writeln(' siswa siswa Kelamin Akademik ');
Writeln('=========================================================================');
i:=0;
While Not EoF(Filesiswa) do
Begin
Read(Filesiswa,Data);
if Data.Jenis_Kelamin=Jenis_Kelamin then
Begin
Inc(i);
Writeln(i:3,' ',Data.Noinduk:5,Data.Nama:12,Data.Jenis_Kelamin:13,Data.Kelas:5,Data.Alamat:12,Data.TA:7,Data.Jur:22);
End;
End;
Writeln('========================================================================');
Close(Filesiswa);
End;
Writeln;
Write('Mau Lihat Data Lagi [Y/T] : ');Lagi:=Upcase(Readkey);
Until Lagi<>'Y';
End;
Procedure View_Kelas;
Var
i : Integer;
Kelas : Char;
Lagi : Char;
Begin
Ul:='Y';
Lagi:='Y';
Repeat
Clrscr;
Write('Masukkan Kelas : ');Readln(Kelas);
BukaFile;
if IOResult<>0 then
Write('Maaf Data Masih Kosong !')
Else
Begin
Writeln;
Writeln;
Writeln(' DATA siswa ');
Writeln('=========================================================================');
Writeln(' NO Noinduk Nama Jenis Kelas Alamat Tahun Jur ');
Writeln(' siswa siswa Kelamin Akademik ');
Writeln('=========================================================================');
i:=0;
While Not EoF(Filesiswa) do
Begin
Read(Filesiswa,Data);
if Data.Kelas=Kelas then
Begin
Inc(i);
Writeln(i:3,' ',Data.Noinduk:5,Data.Nama:12,Data.Jenis_Kelamin:13,Data.Kelas:5,Data.Alamat:12,Data.TA:7,Data.Jur:22);
End;
End;
Writeln('========================================================================');
Close(Filesiswa);
End;
Writeln;
Write('Mau Lihat Data Lagi [Y/T] : ');Lagi:=Upcase(Readkey);
Until Lagi<>'Y';
End;
Procedure View_Jur;
Var
i : Integer;
Jur : String[15];
Lagi : Char;
Begin
Ul:='Y';
Lagi:='Y';
Repeat
Clrscr;
Write('Masukkan Jur : ');Readln(Jur);
BukaFile;
if IOResult<>0 then
Write('Maaf Data Masih Kosong !')
Else
Begin
Writeln;
Writeln;
Writeln(' DATA siswa ');
Writeln('=========================================================================');
Writeln(' NO Noinduk Nama Jenis Kelas Alamat Tahun Jur ');
Writeln(' siswa siswa Kelamin Akademik ');
Writeln('=========================================================================');
i:=0;
While Not EoF(Filesiswa) do
Begin
Read(Filesiswa,Data);
if Data.Jur=Jur then
Begin
Inc(i);
Writeln(i:3,' ',Data.Noinduk:5,Data.Nama:12,Data.Jenis_Kelamin:13,Data.Kelas:5,Data.Alamat:12,Data.TA:7,Data.Jur:22);
End;
End;
Writeln('========================================================================');
Close(Filesiswa);
End;
Writeln;
Write('Mau Lihat Data Lagi [Y/T] : ');Lagi:=Upcase(Readkey);
Until Lagi<>'Y';
End;
Procedure View;
Var
Pilihan : Char;
Begin
Clrscr;
Gotoxy(27,7);Write('1. View Jenis Kelamin');
Gotoxy(27,8);Write('2. View Kelas');
Gotoxy(27,9);Write('3. View Jur');
Gotoxy(27,12);Write('Pilihan [1..3] : ');Pil:=Readkey;
If pil='1' then view_JenisKelamin;
If pil='2' then View_Kelas;
If pil='3' then View_Jur;
End;
Begin
Repeat
Menu;
Case Pil of
'1' : Tambah;
'2' : Edit;
'3' : Hapus;
'4' : Tampil;
'5' : View;
End;
Until (Ul<>'Y') or (pil='6');
DoneWincrt;
End.