Assalamualaikum wr.wb.
Selamat sore semua.kembali lagi dengan saya di Dev Pascal sebelumnya saya sudah memposting cara memasang kamera CCTV di blog dan Membuat Link Pelangi atau berkedip di blog. dan kali ini saya akan berbagi tentang cara membuat daftar nilai mahasiswa dengan sorting dan searchnya juga di pascal.
Mungkin kalo kita membuatnya di Microsoft Excel mah gampang tapi kalo di pascal mah berbeda gan kita main koding bro haha.
Ini dia Script Membuat Program Daftar Nilai Mahasiswa di dev Pascal :
program Daftar_Nilai;
{I.S. : User memasukan data mahasiswa(1:N)}
{F.S. : Menampilkan Dafrtar Nilai Mahasiswa}
uses crt;
// Kamus Global
const
Maks_Mhs = 50;
type
Dt_Mhs = record
Nim,Nama : string;
Nilai : integer;
Indeks : char;
end;//End Record
Mahasiswa = array[1..Maks_Mhs] of Dt_Mhs;
var
Mhs : Mahasiswa;
N : integer;
Function Indeks_Nilai(Nilai : integer):char;
{I.S. : Nilai Sudah Terdefinisi}
{F.S. : Menghasilkan fungsi indeks}
begin
Case (Nilai) of
80..100 : Indeks_Nilai := 'A'; // Indeks Nilai --> Sama Dengan Nama Function
70..79 : Indeks_Nilai := 'B';
60..69 : Indeks_Nilai := 'C';
50..59 : Indeks_Nilai := 'D';
0..49 : Indeks_Nilai := 'E';
end;//End Case
end;// End Function
procedure Isi_Data(var Mhs:mahasiswa; var N:integer);
{I.S. : Nilai Sudah Terdefinisi}
{F.S. : Menghasilkan fungsi indeks}
var
i : integer;
begin
write('Banyaknya Data : '); readln(N);
clrscr;
writeln(' DAFTAR NILAI MAHASISWA ');
writeln('|------------------------------------------------|');
writeln('| NO | NIM | NAMA MAHASISWA | NILAI | INDEKS |');
writeln('|================================================|');
for i := 1 to N do
begin
gotoxy(1,i+4);
writeln('| | | | | |');
gotoxy(3,i+4);write(i);
gotoxy(8,i+4); readln(Mhs[i].NIM);
gotoxy(19,i+4); readln(Mhs[i].Nama);
gotoxy(37,i+4); readln(Mhs[i].Nilai);
Mhs[i].Indeks := Indeks_Nilai(Mhs[i].Nilai);
gotoxy(46,i+4); write(Mhs[i].Indeks);
end;// End for
writeln;
writeln('-------------------------------------------------|');
end;// End Procedure
procedure Urut_NIM(var Mhs:Mahasiswa; N:integer);
{I.S. : }
{F.S. : }
var
i,j,min : integer;
Temp : Dt_Mhs;
begin
for i := 1 to (N-1) do
begin
min := i;
for j := (i+1) to N do
begin
if(Mhs[j].NIM < Mhs[min].NIM)
then
min := j;
end; // End For
// Menukarkan Data
Temp := Mhs[i];
Mhs[i] := Mhs[min];
Mhs[min] := Temp;
end; // End For
end;// End Procedure
procedure Tampil_Data(Mhs:mahasiswa; N:integer);
{I.S. : }
{F.S. : Menampilkan daftar nilai mahasiswa}
var
i : integer;
begin
clrscr;
writeln(' DAFTAR NILAI MAHASISWA ');
writeln('|------------------------------------------------|');
writeln('| NO | NIM | NAMA MAHASISWA | NILAI | INDEKS |');
writeln('|================================================|');
for i := 1 to N do
begin
gotoxy(1,i+4);
writeln('| | | | | |');
gotoxy(3,i+4);write(i);
gotoxy(8,i+4); write(Mhs[i].NIM);
gotoxy(19,i+4); write(Mhs[i].Nama);
gotoxy(37,i+4); write(Mhs[i].Nilai);
gotoxy(46,i+4); write(Mhs[i].Indeks);
end;// End for
writeln;
writeln('|================================================|');
end;// End Procedure
procedure seq_search;
var
bil : string;
i: integer;
begin
write('Angka yang dicari= '); readln(bil);
i:=1;
while (i < Maks_Mhs) and (Mhs[i].NIM <> bil) do
begin
i:=i+1;
end;
if (Mhs[i].NIM = bil)
then
write(Mhs[i].Nama)
else
writeln('Tidak ditemukan!');
end;
// Program Utama
begin
Isi_Data(Mhs,N);
readln;
Urut_NIM(Mhs,N);
Tampil_Data(Mhs,N);
seq_search;
readln;
end.
{I.S. : User memasukan data mahasiswa(1:N)}
{F.S. : Menampilkan Dafrtar Nilai Mahasiswa}
uses crt;
// Kamus Global
const
Maks_Mhs = 50;
type
Dt_Mhs = record
Nim,Nama : string;
Nilai : integer;
Indeks : char;
end;//End Record
Mahasiswa = array[1..Maks_Mhs] of Dt_Mhs;
var
Mhs : Mahasiswa;
N : integer;
Function Indeks_Nilai(Nilai : integer):char;
{I.S. : Nilai Sudah Terdefinisi}
{F.S. : Menghasilkan fungsi indeks}
begin
Case (Nilai) of
80..100 : Indeks_Nilai := 'A'; // Indeks Nilai --> Sama Dengan Nama Function
70..79 : Indeks_Nilai := 'B';
60..69 : Indeks_Nilai := 'C';
50..59 : Indeks_Nilai := 'D';
0..49 : Indeks_Nilai := 'E';
end;//End Case
end;// End Function
procedure Isi_Data(var Mhs:mahasiswa; var N:integer);
{I.S. : Nilai Sudah Terdefinisi}
{F.S. : Menghasilkan fungsi indeks}
var
i : integer;
begin
write('Banyaknya Data : '); readln(N);
clrscr;
writeln(' DAFTAR NILAI MAHASISWA ');
writeln('|------------------------------------------------|');
writeln('| NO | NIM | NAMA MAHASISWA | NILAI | INDEKS |');
writeln('|================================================|');
for i := 1 to N do
begin
gotoxy(1,i+4);
writeln('| | | | | |');
gotoxy(3,i+4);write(i);
gotoxy(8,i+4); readln(Mhs[i].NIM);
gotoxy(19,i+4); readln(Mhs[i].Nama);
gotoxy(37,i+4); readln(Mhs[i].Nilai);
Mhs[i].Indeks := Indeks_Nilai(Mhs[i].Nilai);
gotoxy(46,i+4); write(Mhs[i].Indeks);
end;// End for
writeln;
writeln('-------------------------------------------------|');
end;// End Procedure
procedure Urut_NIM(var Mhs:Mahasiswa; N:integer);
{I.S. : }
{F.S. : }
var
i,j,min : integer;
Temp : Dt_Mhs;
begin
for i := 1 to (N-1) do
begin
min := i;
for j := (i+1) to N do
begin
if(Mhs[j].NIM < Mhs[min].NIM)
then
min := j;
end; // End For
// Menukarkan Data
Temp := Mhs[i];
Mhs[i] := Mhs[min];
Mhs[min] := Temp;
end; // End For
end;// End Procedure
procedure Tampil_Data(Mhs:mahasiswa; N:integer);
{I.S. : }
{F.S. : Menampilkan daftar nilai mahasiswa}
var
i : integer;
begin
clrscr;
writeln(' DAFTAR NILAI MAHASISWA ');
writeln('|------------------------------------------------|');
writeln('| NO | NIM | NAMA MAHASISWA | NILAI | INDEKS |');
writeln('|================================================|');
for i := 1 to N do
begin
gotoxy(1,i+4);
writeln('| | | | | |');
gotoxy(3,i+4);write(i);
gotoxy(8,i+4); write(Mhs[i].NIM);
gotoxy(19,i+4); write(Mhs[i].Nama);
gotoxy(37,i+4); write(Mhs[i].Nilai);
gotoxy(46,i+4); write(Mhs[i].Indeks);
end;// End for
writeln;
writeln('|================================================|');
end;// End Procedure
procedure seq_search;
var
bil : string;
i: integer;
begin
write('Angka yang dicari= '); readln(bil);
i:=1;
while (i < Maks_Mhs) and (Mhs[i].NIM <> bil) do
begin
i:=i+1;
end;
if (Mhs[i].NIM = bil)
then
write(Mhs[i].Nama)
else
writeln('Tidak ditemukan!');
end;
// Program Utama
begin
Isi_Data(Mhs,N);
readln;
Urut_NIM(Mhs,N);
Tampil_Data(Mhs,N);
seq_search;
readln;
end.
Untuk tahapanya :
1. Masukan banyaknya data yang ingin di inputkan.
2. Inputkan Datanya.
3. Tekan enter maka data akan terurut berdasarkan NIM.
4. Masukan NIM yang di cari. Misal saya inputkan 1012 dan hasilnya seperti gambar di bawah ini.
Mudahkan ? Gampang kan ? Cara membuat Program daftar nilai mahasiswa di pascal.
Terimakasih sudah berkujung.
Silahkan jika ada yang di tanyakan.