25/11/13

Bagi sahabat-sahabat yang sedang belajar record, ada contoh program nih. Ya bisa dikatakan lumayan bagus.hehe
Selamat menyimak...
program record_2;
uses crt;
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.

3 komentar :