ig : Erixsyaifulr

Input, Cetak, Edit, Hapus

program week10_A1_larik;
uses crt;
const max=10;
type larik1=array[1..max]of string;
larik2=array[1..max]of real;
var nim,nama,prodi:larik1;
ip:larik2;
pil:0..4; i,n:byte;

procedure Isi_data(var x,y,z:larik1; var a:larik2);
var yy:string; ya:char;
label ulang,ulang1;

begin
repeat
  inc(n);writeln('mengisi data mahasiswa ke',n);
  ulang:
  write('masukan nim    :');readln(yy);
  if n>0 then
  begin for i:=1 to n do
begin if x[i]=yy then
begin writeln('nim sudah digunakan, ulangi');goto ulang;end;
end;
  end;
  x[n]:=yy;
  write('masukan nama  :');readln(y[n]);
  write('masukan prodi :');readln(z[n]);
  ulang1:
  write('masukan ip    :');readln(a[n]);
  if (a[n]<=0)or(a[n]>4)then begin writeln('inputan tidak valid, ulangi');goto ulang1;end;
  writeln;
  write('apakah anda akan menambah mahsiswa lagi <y/t> :');readln(ya);
until (ya<>'y')and(ya<>'Y');
end;

procedure cetak_data(a,b,c:larik1; d:larik2);
begin
writeln('           DAFTAR MAHASISWA DENGAN IP NYA ');
writeln('--------------------------------------------------------');
writeln('No        NIM          Nama          Prodi           IP');
writeln('--------------------------------------------------------');
for i:=1 to n do
  writeln(i:2,'  ',a[i]:6,'  ',b[i]:12,'  ',c[i]:12,'  ',d[i]:6:2);
writeln('--------------------------------------------------------');
end;

procedure Edit_Data(var a,b,c:larik1;var d:larik2);
var edit:string; ada:boolean; pilih,pos:byte; ya:char;
label  ulang;

begin
writeln('mengedit data mahsaiswa');
write('masukkan nim mhs yg akan diedit  :');readln(edit);
ada:=false;
for i:=1 to n do if a[i]=edit then begin ada:=true;pos:=i;end;
if ada then
begin
ulang:
writeln('anda akan mengedit data mahasiswa dengan NIM',edit);
writeln('yang akan diedit: 1. Nama  2. Prodi  3. IP');
write('pilih salah satu   :  ');readln(pilih);
case pilih of
1: begin
writeln('anda akan mengedit nama');
writeln('Nama sebelum diedit  :  ',b[pos]);
write('masukan Nama yg baru:');readln(b[pos]);
   end;
2: begin
writeln('anda akan mengedit Prodi');
writeln('Prodi sebelum diedit  :',c[pos]);
write('masukan Prodi yg baru  :');readln(c[pos]);
   end;
3: begin
writeln('anda akan mengedit IP');
writeln('IP sebelum diedit  :',d[pos]);
write('masukan IP yg baru  :');readln(d[pos]);
   end else writeln('anda salah memilih menu, tidak jadi mengedit');
end;{end case}
writeln;
write('apakah anda akan mengedit lagi atribut lain dari NIM',edit,' <y/t> ?');readln(ya);
if (ya='y')or (ya='Y') then goto ulang else writeln('editing selesai');
end {end if ada}
else writeln('NIM',edit,'  tidak ditemukan');
end;

procedure hapus_nomor(var a,b,c:larik1;var d:larik2);
var hapus:byte; ya:char;

begin
write('masukkan nomor urut mahasiswa yang akan dihapus ; ');readln(hapus);
if(hapus<1) or (hapus>n) then writeln('nomor urut tidak valid')
else
begin
writeln('Anda akan menghapus data nomor urut ',hapus);
write('yakin akan dihapus<y/t> ?');readln(ya);
if (ya='y') or (ya='Y') then
begin
writeln('nomor urut',hapus,' dihapus');
for i:=hapus to n-1 do
begin a[i]:=a[i+1];b[i]:=b[i+1];c[i]:=c[i+1];d[i]:=d[i+1];end;
dec(n);
end
else writeln('Nomor urut',hapus,' tidak jadi dihapus');
end;
end;

procedure hapus_nim(var a,b,c:larik1;var d:larik2);
var hapus:string; pos:byte; ada:boolean;ya:char;

begin
write('masukkan nim yan akan dihapus : ');readln(hapus);
ada:=false;
for i:=1 to n do if a[i]=hapus then begin ada:=true;pos:=i;end;
if not ada then writeln('nim',hapus,'tidak ditemukan')
else
begin
writeln('Mahasiswa dengan nim: ',hapus,' ditemukan');
writeln('nama    :',b[pos]);
writeln('prodi   :',c[pos]);
writeln('IP      :',d[pos]:4:2);
write('yakin akan menghapus data tersebut <y/t> ?');readln(ya);
if (ya='y') or (ya='Y') then
begin
writeln('NIM',hapus,'dihapus');
for i:=pos to n-1 do
begin a[i]:=a[i+1];b[i]:=b[i+1];c[i]:=c[i+1];d[i]:=d[i+1];end;
dec(n);
end
else writeln('NIM',hapus,' tidak jadi dihapus');
end;
end;

procedure hapus_nama(var a,b,c:larik1;var d:larik2);
var hapus:string; pos,j:byte; ada:boolean;ya:char;

begin
write('masukkan  naama mhs yang akan dihapus :');readln(hapus);
ada:=false;
for i:=1 to n do if b[i]=hapus then
begin
ada:=true;
writeln('Nama mahasiswa :',hapus,' ditemukan');
pos:=i;
writeln('nama    :',a[pos]);
writeln('prodi   :',c[pos]);
writeln('IP      :',d[pos]:4:2);
write('yakin akan menghapus data tersebut <y/t> ?');readln(ya);
if (ya='y') or (ya='Y') then
begin
writeln('NIM',hapus,'dihapus');
for j:=pos to n-1 do
begin a[j]:=a[j+1];b[j]:=b[j+1];c[j]:=c[j+1];d[j]:=d[j+1];end;
dec(n);
end
else writeln('NIM',hapus,' tidak jadi dihapus');
end;
if not ada then writeln('Nama mahasiswa',hapus,' tidak ditemukan');
end;

procedure hapus_data(var a,b,c:larik1;var d:larik2);
var pilih:byte;

begin
writeln('Mengahpus data mahasiswa');
cetak_data(a,b,c,d);
writeln('Anda akan melakukan penghapusan berdasarkan');
writeln('1. No urut');
writeln('2. NIM');
writeln('3. Nama');
write('masukkan pilihan anda <1-3> ?');readln(pilih);
case pilih of
1:hapus_nomor(a,b,c,d);
2:hapus_nim(a,b,c,d);
3:hapus_nama(a,b,c,d);
end;
writeln('Enter untuk kembali ke menu utama');
end;


begin
n:=0;
repeat
clrscr;
writeln('mengelola data mahasiswa');
writeln('1. Input Data');
writeln('2. Cetak Data');
writeln('3. Edit Data');
writeln('4. Hapus Data');
writeln('0. Selesai');
write('masukkan pilihan anda <0-4> :');readln(pil);
case pil of
1: if n=max then writeln('kuota mhs sudah penuh')else Isi_Data(nim,nama,prodi,ip);
2: if n=0 then writeln('cingireeeeee!!!!!!!!!!!! urung ana datane broook')else Cetak_Data(nim,nama,prodi,ip);
3: if n=0 then writeln('daftar mhs masih kosong')else Edit_Data(nim,nama,prodi,ip);
4: if n=0 then writeln('daftar mhs masih kosong')else hapus_data(nim,nama,prodi,ip);
0: writeln('terimaksih') else writeln('anda salah pilih menu');
end;
readln;
until pil=0;
end.

Share this

Related Posts

Previous
Next Post »

Translate