B. Listing Program
program record_2;
uses wincrt;
type siswa=record
nama,alamat,asal,alasal,ttl:string;
jurusan:1..5;
prestasi:1..3;
nem:real;
end;
larik_baru=array[1..17]
of siswa;
var
sisba,copy:larik_baru;
i,j,x,n,acak:byte;
pil:1..9;
procedure
daftar(var a:larik_baru);
var lagi:char;
begin
repeat
begin
inc(n);
writeln('No Pendaftaran ke ',n);
writeln;
write('Nama
: ');readln(a[n].nama);
write('Tempat Tanggal Lahir :
');readln(a[n].ttl);
write('Alamat
: ');readln(a[n].alamat);
write('Asal
Sekolah
: ');readln(a[n].asal);
write('Alamat Sekolah
: ');readln(a[n].alasal);;
write('Jumlah
NEM
: ');readln(a[n].nem);
writeln;
writeln('Prestasi yang pernah diraih (0:Tidak, 1:Kabupaten, 2:Nasional,
3:Internasional)');
writeln('Hanya boleh melampirkan 1 prestasi');
write('Prestasi Anda? ');readln(a[n].prestasi);
writeln;
writeln('Pilihan Jurusan:');
writeln(' 1. Teknik
Jaringan (TKJ)');
writeln(' 2. Multimedia
(MM)');
writeln(' 3. Akuntansi (AK)');
writeln(' 4. Administrasi
Perkantoran (AP)');
writeln(' 5. Pemasaran
(PM)');
write('Pilihan Jurusan (1/2/3/4/5) : ');readln(a[n].jurusan);
writeln;
write('Daftar Selanjutnya (y/t)? ');readln(lagi);
writeln;
end
until
(lagi<>'y');
end;
procedure cetak(var
a:larik_baru);
var jur:string;
pres,jumlah,e,b,c,d:real;
begin
clrscr;
writeln('
Data Pendaftar Siswa Baru SMKN 1
Bantul
');
writeln('
Tahun Ajaran
2013/2014
');
writeln('_______________________________________________________________________________');
writeln('| No
| Nama | Asal
Sekolah | Jurusan | NEM |Prestasi| Total Nilai |');
writeln('|----|-----------|-------------------|---------|-------|--------|-------------|');
for i:=1 to n do
begin
e:=0.25;
b:=0.50;
c:=1.00;
d:=0;
with a[i] do
begin
if (a[i].jurusan= 1) then jur:='TKJ' else
if (a[i].jurusan= 2) then jur:='MM' else
if (a[i].jurusan= 3) then jur:='AK' else
if (a[i].jurusan= 4) then jur:='AP' else
jur:='PM';
if (a[i].prestasi=1) then begin pres:=0.25;jumlah:=a[i].nem+e;end else
if (a[i].prestasi=2) then begin pres:=0.50;jumlah:=a[i].nem+b;end else
if (a[i].prestasi=3) then begin pres:=1.00;jumlah:=a[i].nem+c;end else
begin pres:=0.00;jumlah:=a[i].nem+d;end;
writeln('|',i:3,'
|',nama:10,' | ',asal:15,' | ',jur:3,' |
',nem:2:2,' | ',pres:2:2,' |
',jumlah:2:2,' |');
end;
end;
writeln('|____|___________|___________________|_________|_______|________|_____________|');
end;
procedure cari(var
a:larik_baru);
var
search,jur:string;
pres,e,b,c,d,jumlah:real;
tempat:byte;
begin
clrscr;
acak:=0;
write('Siapa yang
Anda cari? ');readln(search);
for i:=1 to n do
begin
if
(a[i].nama=search) then
begin
tempat:=i;
inc(acak);
writeln(acak,' ',search,' ada di nomor pendaftaran ',tempat,' dengan data
sebagai berikut.');
writeln('Nama
: ',a[tempat].nama);
writeln('Tempat Tanggal Lahir :
',a[tempat].ttl);
writeln('Alamat
: ',a[tempat].alamat);
writeln('Asal
Sekolah
: ',a[tempat].asal);
writeln('Alamat
Sekolah
: ',a[tempat].alasal);
writeln('Jumlah
NEM
: ',a[tempat].nem:2:2);
writeln;
end;
end;
if (acak=0) then
writeln('nama ',search,' tidak ada di dalam daftar');
end;
procedure
fil_jur(var a:larik_baru);
var lagi:char;
acak:byte;
jur:string;
pres,e,b,c,d,jumlah:real;
begin
repeat
begin
e:=0.25;
b:=0.50;
c:=1.00;
d:=0;
with a[i] do
begin
if (a[i].jurusan= 1) then jur:='TKJ' else
if (a[i].jurusan= 2) then jur:='MM' else
if (a[i].jurusan= 3) then jur:='AK' else
if (a[i].jurusan= 4) then jur:='AP' else
jur:='PM';
if (a[i].prestasi=1) then begin pres:=0.25;jumlah:=a[i].nem+e;end else
if (a[i].prestasi=2) then begin pres:=0.50;jumlah:=a[i].nem+b;end else
if (a[i].prestasi=3) then begin pres:=1.00;jumlah:=a[i].nem+c;end else
begin pres:=0.00;jumlah:=a[i].nem+d;end;
end;
begin
for i:=1 to n do
clrscr;
writeln('Daftar
Jurusan');
writeln('1. Teknik
Komputer Jaringan');
writeln('2.
Multimedia');
writeln('3.
Akuntansi');
writeln('4.
Administrasi Perkantoran');
writeln('5.
Pemasaran');
writeln;
write('Masukkan
Pilihan Anda 1/2/3/4/5 : ');readln(pil);
case pil of
1: begin
acak:=0;
writeln;
writeln('Data pendaftar pada jurusan Teknik Komputer Jaringan');
writeln('____________________________________________________________');
writeln('| No | No Daftar |
Nama | Asal Sekolah |
NEM |');
writeln('|----|-----------|--------------|------------------|-------|');
for
i:=1 to n do
begin
if
(a[i].jurusan=1) then
begin
inc(acak);
writeln('|',acak:3,' |',i:10,' |',a[i].nama:12,' | ',a[i].asal:15,'
| ',a[i].nem:2:2,' |');
end;
end;
writeln('|____|___________|______________|__________________|_______|');
end;
2: begin
acak:=0;
writeln;
writeln('Data pendaftar pada jurusan Multimedia');
writeln('____________________________________________________________');
writeln('| No | No Daftar |
Nama | Asal Sekolah |
NEM |');
writeln('|----|-----------|--------------|------------------|-------|');
for
i:=1 to n do
begin
if
(a[i].jurusan=2) then
begin
inc(acak);
writeln('|',acak:3,' |',i:10,' |',a[i].nama:12,' | ',a[i].asal:15,'
| ',a[i].nem:2:2,' |');
end;
end;
writeln('|____|___________|______________|__________________|_______|');
end;
3: begin
acak:=0;
writeln;
writeln('Data pendaftar pada jurusan Akuntansi');
writeln('____________________________________________________________');
writeln('| No | No Daftar |
Nama | Asal Sekolah |
NEM |');
writeln('|----|-----------|--------------|------------------|-------|');
for
i:=1 to n do
begin
if (a[i].jurusan=3)
then
begin
inc(acak);
writeln('|',acak:3,' |',i:10,' |',a[i].nama:12,' | ',a[i].asal:15,'
| ',a[i].nem:2:2,' |');
end;
end;
writeln('|____|___________|______________|__________________|_______|');
end;
4: begin
acak:=0;
writeln;
writeln('Data pendaftar pada jurusan Administrasi Perkantoran');
writeln('____________________________________________________________');
writeln('| No | No Daftar |
Nama | Asal Sekolah |
NEM |');
writeln('|----|-----------|--------------|------------------|-------|');
for
i:=1 to n do
begin
if
(a[i].jurusan=4) then
begin
inc(acak);
writeln('|',acak:3,' |',i:10,' |',a[i].nama:12,' | ',a[i].asal:15,'
| ',a[i].nem:2:2,' |');
end;
end;
writeln('|____|___________|______________|__________________|_______|');
end;
5: begin
acak:=0;
writeln;
writeln('Data pendaftar pada jurusan Pemasaran');
writeln('____________________________________________________________');
writeln('| No | No Daftar |
Nama | Asal Sekolah |
NEM |');
writeln('|----|-----------|--------------|------------------|-------|');
for
i:=1 to n do
begin
if
(a[i].jurusan=5) then
begin
inc(acak);
writeln('|',acak:3,' |',i:10,' |',a[i].nama:12,' | ',a[i].asal:15,'
| ',a[i].nem:2:2,' |');
end;
end;
writeln('|____|___________|______________|__________________|_______|');
writeln;
end;
end;
write('Mau Filter
lagi <y/t> ? ');readln(lagi);
end;
end;
until
(lagi<>'y');
end;
procedure
sortir_nama(var a:larik_baru);
var backup:siswa;
begin
for i:=1 to n do
copy[i]:=a[i];
for i:=1 to n-1 do
begin
for j:=i+1 to n do
begin
if (copy[i].nama>copy[j].nama) then
begin
backup:=copy[i];
copy[i]:=copy[j];
copy[j]:=backup;
end;
end;
end;
writeln('Data
Pendaftar sesuai nama');
writeln;
cetak(copy);
end;
procedure
sortir_nem(var a:larik_baru);
var backup:siswa;
jumlah:real;
begin
for i:=1 to n do copy[i]:=a[i];
for i:=1 to n-1 do
begin
for j:=i+1 to n do
begin
if (copy[i].nem<copy[j].nem) then
begin
backup:=copy[i];
copy[i]:=copy[j];
copy[j]:=backup;
end;
end;
end;
writeln('Data
Pendaftar sesuai jumlah NEM');
writeln;
cetak(copy);
end;
procedure edit(var
a:larik_baru);
var ganti:byte;
begin
write('Data yang
akan diedit: ');readln(ganti);
writeln('Mengedit
data ke ',ganti);
writeln;
write('Nama
: ');readln(a[ganti].nama);
write('Tempat
Tanggal Lahir :
');readln(a[ganti].ttl);
write('Alamat
: ');readln(a[ganti].alamat);
write('Asal
Sekolah
: ');readln(a[ganti].asal);;
write('Alamat
Sekolah
: ');readln(a[ganti].alasal);
write('Jumlah
NEM
: ');readln(a[ganti].nem);
writeln;
writeln('Prestasi
yang pernah diraih (0:Tidak, 1:Kabupaten, 2:Nasional, 3:Internasional)');
writeln('Hanya
boleh melampirkan 1 prestasi');
write('Prestasi
Anda? ');readln(a[ganti].prestasi);
writeln('Pilihan
Jurusan:');
writeln('
1. Teknik Jaringan (TKJ)');
writeln('
2. Multimedia (MM)');
writeln('
3. Akuntansi (AK)');
writeln('
4. Administrasi Perkantoran (AP');
writeln('
5. Pemasaran (PM)');
write('Pilihan
Jurusan (1/2/3/4/5) : ');readln(a[ganti].jurusan);
writeln;
writeln('Pendaftar
ke ',ganti,' sudah di edit');
end;
procedure hapus(var
a:larik_baru);
var hilang:byte;
begin
write('Data yang
akan dihapus: ');readln(hilang);
for i:=hilang to
n-1 do a[i]:=a[i+1];
dec(n);
writeln('Pendaftar
ke ',hilang,' sudah di hapus');
end;
begin
repeat
begin
clrscr;
writeln(' ..::SELAMAT DATANG DI SMKN 1 BANTUL::..');
writeln(' Penerimaan Siswa Baru Tahun Ajaran 2013/2014');
writeln('_____________________________________________________');
writeln;
writeln('1. Daftar');
writeln('2. Tabel Pendaftar');
writeln('3. Cari Nama Pendaftar');
writeln('4. Daftar Perjurusan');
writeln('5. Sortir Nama Pendaftar');
writeln('6. Sortir Jumlah NEM');
writeln('7. Edit Data');
writeln('8. Hapus Data');
writeln('9. Selesai');
write('pilihan anda? ');readln(pil);
clrscr;
case pil of
1: daftar(sisba);
2: cetak(sisba);
3: cari(sisba);
4: fil_jur(sisba);
5: sortir_nama(sisba);
6: sortir_nem(sisba);
7: edit(sisba);
8: hapus(sisba);
9: begin
writeln;
writeln(' ..::Terima Kasih::..
');
writeln(' Telah mendaftar di SMK N 1 Bantul ');
writeln('..Silahkan tunggu info selanjutnya..');
end;
end;
readln;
end;
until (pil=9);
end.
C. Hasil Run program


Tidak ada komentar:
Posting Komentar