Program Pascal Menyimpan Nama dan NIM

Program ini dibuat untuk memenuhi Tugas Besar Pemrograman Komputer di Semester 1. Program ini digunakan untuk menyimpan Nama dan NIM mahasiswa yang dapat diupdate,delete,load dan save data. Program ini dibuat menggunakan Pascal. Tetapi saat ini sebenarnya Pascal tidak populer lagi. Java & C++ lah yang sedang naik daun. Jadi gak sabar belajar Java dan C++ .Program ini dibuat oleh :
  1. Ali Hasyim
  2. Fathurahman AlHikmah
  3. Muhammad Saddam Salsabillah
  4. Ariya Muhammad
  5. Irzanes Putri
Untuk source codenya yaitu :



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