Posted by Materi Teknik Informatika • Informasi Teknologi Informasi • Digital Marketing on 4/20/2015
Source Code CRUD dalam Pascal - Setelah membahas
CRUD dalam pascal tentang
Data Mahasiswa, maka jadilah suatu
Sistem Informasi Data Mahasiswa dari
source code yang terpisah.
Menyatukan kode program dalam pascal menggunakan perintah Procedure, berikut program lengkap Data Mahasiswa dalam Software House kali ini.
Berikut ini source code CRUD, program berikut menggunakan compiler dev-pascal :
uses crt;
var
pilih: byte;
procedure Input_data;
type
mhs=record
npm: string[7];
nama: string[25];
nilai: real;
end;
var
fmhs: file of mhs;
rmhs: mhs;
lagi: char;
begin
assign(fmhs,'mhs.dat');
rewrite(fmhs);
lagi:='y';
while upcase(lagi)='Y' do
begin
clrscr;
with rmhs do
begin
gotoxy(5,6) ;write('Nomor Pokok Mahasiswa : ');
gotoxy(5,8) ;write('Nama Mahasiswa : ');
gotoxy(5,10) ;write('Nilai Mahasiswa : ');
gotoxy(30,6) ;readln(npm);
gotoxy(30,8) ;readln(nama);
gotoxy(30,10);readln(nilai);
end;
write(fmhs,rmhs);
gotoxy(5,15) ;write('Masukan data lagi [Y/T] ? ');
readln(lagi);
end;
close(fmhs);
end;
procedure Tambah_data;
type
mhs=record
npm: string[7];
nama: string[25];
nilai: real;
end;
var
fmhs: file of mhs;
rmhs: mhs;
lagi: char;
begin
assign(fmhs,'mhs.dat');
{$I-}
reset(fmhs);
{$I+};
if ioresult<>0 then rewrite(fmhs);
seek(fmhs,filesize(fmhs));
lagi:='y';
while upcase(lagi)='Y' do
begin
clrscr;
with rmhs do
begin
gotoxy(5,6) ;write('Nomor Pokok Mahasiswa : ');
gotoxy(5,8) ;write('Nama Mahasiswa : ');
gotoxy(5,10) ;write('Nilai Mahasiswa : ');
gotoxy(30,6) ;readln(npm);
gotoxy(30,8) ;readln(nama);
gotoxy(30,10);readln(nilai);
end;
write(fmhs,rmhs);
gotoxy(5,15) ;write('Masukan data lagi [Y/T] ? ');
readln(lagi);
end;
close(fmhs);
end;
procedure Lihat_data;
type
mhs=record
npm: string[7];
nama: string[25];
nilai: real;
end;
var
fmhs: file of mhs;
rmhs: mhs;
begin
assign(fmhs,'mhs.dat');
reset(fmhs);
clrscr;
writeln('-------------------------------------------------------------');
writeln('NPM nama mahasiswa nilai');
writeln('-------------------------------------------------------------');
while not eof (fmhs) do
begin
read(fmhs,rmhs);
with rmhs do
writeln(npm:7,nama:25,nilai:29:0);
end;
writeln('-------------------------------------------------------------');
close(fmhs);
readln;
end;
procedure Cari_data;
type
mhs=record
npm: string[7];
nama: string[25];
nilai: real;
end;
var
fmhs: file of mhs;
rmhs: mhs;
i,jml: integer;
nocari: string[7];
lagi: char;
ketemu: boolean;
begin
assign(fmhs,'mhs.dat');
reset(fmhs);
jml:= filesize(fmhs);
lagi:='y';
while upcase(lagi)='Y' do
begin
clrscr;
ketemu:= false;
write('Masukan npm yang dicari : ');
readln(nocari);
writeln;
for i:= 1 to jml do
begin
seek(fmhs,i-1);
read(fmhs,rmhs);
if rmhs.npm=nocari then
begin
ketemu:= true;
writeln('Nama Mahasiswa : ',rmhs.nama);
writeln('Nilai Mahasiswa : ',rmhs.nilai:2:0);
end;
end;
if not ketemu then
writeln('Tidak nomor tersebut!!!');
writeln;
write('cari data lagi [Y/T] ? ');
readln(lagi);
end;
close(fmhs);
end;
procedure Koreksi_data;
type
mhs=record
npm: string[7];
nama: string[25];
nilai: real;
end;
var
fmhs: file of mhs;
rmhs: mhs;
i,jml: integer;
nocari: string[7];
ketemu: boolean;
lagi: char;
begin
assign(fmhs,'mhs.dat');
reset(fmhs);
jml:= filesize(fmhs);
lagi:='Y';
while upcase(lagi)='Y' do
begin
ketemu:= false;
clrscr;
write('Nomor pokok mahasiswa yang dicari : '); readln(nocari);
writeln;
for i:= 1 to jml do
begin
seek(fmhs,i-1);
read(fmhs,rmhs);
if rmhs.npm=nocari then
begin
with rmhs do
begin
ketemu:= true;
writeln('Nomor Pokok Mahasiswa : ',npm:7);
write('Koreksinya : '); readln(npm);
writeln('Nama Mahasiswa : ',nama);
write('Koreksinya : '); readln(nama);
writeln('Nilai Mahasiswa : ',nilai:2:0);
write('Koreksinya : '); readln(nilai);
end;
end;
seek(fmhs,i-1);
write(fmhs,rmhs);
end;
if not ketemu then
writeln('Tidak nomor tersebut!!!');
writeln;
write('ada lagi yang akan dikoreksi [Y/T] ? ');
readln(lagi);
end;
close(fmhs);
end;
procedure Hapus_data;
type
mhs = record
npm: string[7];
nama: string[25];
nilai: real;
end;
var
fmhs: file of mhs;
rmhs: mhs;
nourut,i,jml: integer;
nocari: string[7];
ketemu: boolean;
lagi,ya: char;
begin
assign(fmhs,'mhs.dat');
reset(fmhs);
lagi:= 'Y';
while upcase(lagi)='Y' do
begin
clrscr;
jml:= filesize(fmhs);
write('Nomor record yang dihapus (1 -',jml:3,') ? ');
readln(nourut);
writeln;
if (nourut < 1) or (nourut > jml) then
writeln('Tidak ada no record ini !!!')
else
begin
for i:= nourut to jml do
begin
seek(fmhs,i-1);
read(fmhs,rmhs);
with rmhs do
begin
writeln('Nama Mahasiswa : ',rmhs.nama);
writeln('Nilai Mahasiswa : ',rmhs.nilai:6:2);
end;
end;
writeln;
write('Yakin data ini akan dihapus [Y/T] ? '); readln(ya);
if upcase(ya) = 'Y' then
begin
seek(fmhs,nourut-1);
truncate(fmhs);
end;
end;
writeln;
write('ada lagi yang akan dicari [Y/T] ? '); readln(lagi);
end;
close(fmhs);
end;
begin
while true do
begin
clrscr;
gotoxy(20,2); write('**MENU UTAMA**');
gotoxy(5,5); write('1. Input data awal');
gotoxy(5,7); write('2. Tambah data');
gotoxy(5,9); write('3. Lihat semua data');
gotoxy(5,11); write('4. Lihat data tertentu');
gotoxy(5,13); write('5. Edit data');
gotoxy(5,15); write('6. Hapus data');
gotoxy(5,17); write('7. Selesai');
pilih := 0;
while (pilih < 1) or (pilih > 7 ) do
begin
gotoxy(5,20); write('Masukan pilihan : ');
readln(pilih);
if (pilih < 1) or (pilih > 7) then
write (^G);
case pilih of
1: Input_data;
2: Tambah_data;
3: begin
lihat_data;
writeln;
write('Tekan enter untuk kembali ke MENU');
readln;
end;
4: Cari_data;
5: Koreksi_data;
6: Hapus_data;
7: Exit;
end;
end;
end;
end.