Selasa, 24 Maret 2015

coding pascal stmik Palangkaraya

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.