- Ali Hasyim
- Fathurahman AlHikmah
- Muhammad Saddam Salsabillah
- Ariya Muhammad
- Irzanes Putri
program menyimpanmembacadanmemperbaharui;
{program yang dapat menginput,menyimpan,memperbaharui dan menghapus data yang sudah dimasukkan yaitu Nama dan NIM}
{Prograam ini merupakan File Bertipe karena berisikan deretan data yang bertipe sama}
uses wincrt;
type mahasiswa = record
nama : string[20];
nim : string[9];
end;
{file menyimpan setiap data nama dan nim}
var jumlah : integer; {jumlah data}
mhs : array [1..30] of mahasiswa; {pendeklarasian tipe data mahasiswa}
pil : integer; {pilihan untuk memilih menu yang diinginkan}
procedure load;
{procedure yang digunakan untuk membaca data}
var
penghubung : file of mahasiswa; {menyimpan deretan data bertipe mahasiswa }
begin
assign(penghubung,'save.dat'); {penghubung file fisik dengan variabel untuk membaca data}
reset(penghubung);{meletakkan pointer ke awal file}
while (not(eof(penghubung)) ) do {selama bukan akhir dari file}
begin
jumlah:=jumlah+1; {proses}
read(penghubung,mhs[jumlah]); {memasukkan jumlah mahasiswa}
end;
end;
procedure save; {procedure yang digunakan untuk menyimpan isi data pada file}
var i : integer; {bilangan yang akan ditulis}
penghubung : file of mahasiswa; {menyimpan deretan data bertipe mahasiswa}
begin
assign(penghubung,'save.dat'); {penghubung file fisik dengan variabel yang akan menyimpannya ke file save.dat}
rewrite(penghubung); {membuat file baru}
for i:=1 to jumlah do {perulangan/penambahan nilai i samapai jumlah data yang diinginkan}
begin
write(penghubung,mhs[i]); {menuliskan data ke file}
end;
end;
procedure input; {menulis data pada file}
begin
jumlah:=jumlah+1; {inisialisasi}
write('masukkan nama : ');readln(mhs[jumlah].nama); {memasukkan data nama}
write('masukkan nim : ');readln(mhs[jumlah].nim); {memasukkan datan NIM}
end;
procedure update; {procedure yang digunakan untuk mengganti data yang lama dengan data baru}
var nim : string[9]; {variabel yang menyimpan 11karakter pada NIM}
i,j : integer; {bilangan yang aka ditulis}
begin
writeln('Masukkan NIM mahasiswa yang ingin diupdate : ');readln(nim); {meminta data NIM yang ingin diubah}
{untuk mencari data sesuai dengan NIM yang kita cari}
for i:=1 to jumlah do {perulangan dari data 1 sampai jumlah yang diinginkan}
begin
if(mhs[i].nim=nim) then {menentukan apakah NIM yang ingin diubah terdapat pada data yang sudah ada}
begin
j:=i; {inisialisasi bahwa NIM yang ingin diupdate sesuai dengan data yang sudah ada}
end;
end;
write('Masukkan nama baru : '); readln(mhs[j].nama); {memasukkan nama baru}
write('Masukkan nim baru : '); readln(mhs[j].nim); {memasukkan NIM baru}
end;
procedure delete; {procedure yang digunakan untuk menghapus data yang diinginkan}
var nim : string[9]; {variabel yang menyimpan 11karakter pada NIM}
i,j : integer; {bilangan yang aka ditulis}
begin
write('masukkan nim yang mau dihapus'); readln(nim); {memasukkan NIM yang ingin dihapus}
{untuk mencari NIM yang ingin dihapus}
for i:=1 to jumlah do {perulangan}
begin
if(mhs[i].nim=nim) then {menentukan apakah NIM yang ingin dihapus terdapat pada data yang sudah ada}
begin
j:=i; {inisialisasi bahwa NIM yang ingin dihapus sesuai dengan data yang sudah ada}
end;
end;
{untuk menghapus data yang diinginkan}
for i:= j to jumlah do {perulangan}
begin
mhs[i]:=mhs[i+1]; {menentukan data keberapa yang dihapus}
end;
jumlah:=jumlah-1; {mengurangi jumlah data}
end;
procedure lihat; {procedure yang digunakan untuk melihat data yang sudah ada di file}
var i: integer; {bilangan yang aka ditulis}
begin
for i:=1 to jumlah do {perulangan yang digunakan untuk menentukan banyak data}
begin
writeln( ' Nama : ',mhs[i].nama,' | NIM : ',mhs[i].nim ); {melihat isi data}
end;
readln;
end;
begin
clrscr; {clearscreeen}
jumlah:=0; {inisialisasi bahwa jumlah=0}
load; {membaca data}
repeat {perulangan untuk memilih menu yang diinginkan}
writeln('1. Input');
writeln('2. Update');
writeln('3. Delete');
writeln('4. Lihat');
writeln('5. exit');
readln(pil); {membaca pilihan yang diinginkan}
if pil=1 then input; {jika pil=1 maka akan memanggil procedure input}
if pil=2 then update; {jika pil=2 maka akan memanggil procedure input}
if pil=3 then delete; {jika pil=3 maka akan memanggil procedure input}
if pil=4 then lihat; {jika pil=4 maka akan memanggil procedure input}
until (pil=5); {kondisi perulangan menu akan berhenti jika pil=5}
save; {mneyimpan data pada file}
end.
No comments:
Post a Comment