Pencarian merupakan salah satu algoritma yang dapat digunakan untuk melakukan pencarian dalam sebuah array. Berikut ini merupakan contoh program pencarian yang mengimplementasikan pencarian sekuensial dan extrem:
uses crt;
type data = record
nama , nim : string;
alpro, kal, pa, logmat, isbd, matdis, ale, orkom, pkn : integer;
end;
var
mhs : array [1..100] of data;
i, j, n, x: integer;
pilih: char;
procedure input;
begin
clrscr;
writeln(‘Masukkan Jumlah Siswa’);
readln(n);
clrscr;
writeln(‘ ** Silahkan Input Data Mahasiswa **’);
writeln;
writeln;
for i:=1 to n do
begin
clrscr;
write(‘Nama : ‘); readln(mhs[i].nama);
write(‘NIM : ‘); readln(mhs[i].nim);
writeln;
writeln(‘_________________________________________’);
writeln;
writeln(‘Masukkan Nilai Semester ini : ‘);
writeln(‘_______________________________’);
writeln;
write(‘Kalkulus II : ‘); readln(mhs[i].kal);
write(‘Algoritma Dan Pemrograman II : ‘); readln(mhs[i].alpro);
write(‘Aljabar Linier Elementer : ‘); readln(mhs[i].ale);
write(‘Matematika Diskrit : ‘); readln(mhs[i].matdis);
write(‘Praktikum Algoritma Dan Pemrograman II : ‘); readln(mhs[i].pa);
write(‘ISBD : ‘); readln(mhs[i].isbd);
write(‘PKN : ‘); readln(mhs[i].pkn);
write(‘Organisasi Komputer : ‘); readln(mhs[i].orkom);
write(‘Logika Matematika : ‘); readln(mhs[i].logmat);
end;
end;
procedure seqsc;
var cari: string;
begin
clrscr;
writeln(‘Masukkan Nama Mahasiswa : ‘);
readln(cari);
x:= 1;
while (x<=i) and (cari<> mhs[x].nama) do
begin
x:= 1+x;
end;
if mhs[x].nama=cari then
begin
for j:=1 to x do
begin
mhs[j].nim:=mhs[x].nim;
mhs[j].nama:=mhs[x].nama;
mhs[j].kal:= mhs[x].kal;
mhs[j].alpro:= mhs[x].alpro;
mhs[j].ale:=mhs[x].ale;
mhs[j].matdis:= mhs[x].matdis;
mhs[j].pa:= mhs[x].pa;
mhs[j].isbd:= mhs[x].isbd;
mhs[j].pkn:=mhs[x].pkn;
mhs[j].orkom:= mhs[x].orkom;
mhs[j].logmat:= mhs[x].logmat;
end;
clrscr;
writeln(‘Nama : ‘, mhs[j].nama);
writeln(‘NIM : ‘, mhs[j].nim);
writeln(‘________________________________________’);
writeln;
writeln(‘Kalkulus II : ‘, mhs[j].kal);
writeln(‘Algoritma Dan Pemrograman II : ‘, mhs[j].alpro);
writeln(‘Aljabar Linier Elementer : ‘, mhs[j].ale);
writeln(‘Matematika Diskrit : ‘, mhs[j].matdis);
writeln(‘Praktikum Algoritma Dan Pemrograman II : ‘, mhs[j].pa);
writeln(‘ISBD : ‘, mhs[j].isbd);
writeln(‘PKN : ‘, mhs[j].pkn);
writeln(‘Organisasi Komputer : ‘, mhs[j].orkom);
writeln(‘Logika Matematika : ‘, mhs[j].logmat);
end;
if cari<>mhs[x].nama then
begin
clrscr;
writeln(‘ Data Yang Dimasukkan Tidak Valid’);
end;
readkey;
end;
procedure extrim;
var maxkal, maxale, maxal, maxdis,
maxkom, maxlog, maxp, maxpa, maxi, m : integer;
begin
clrscr;
writeln(‘** Rekap Nilai Tertinggi **’);
writeln;
writeln;
begin
maxkal:= mhs[1].kal;
for j:=2 to i do
begin
if maxkal< mhs[j].kal then
maxkal:= mhs[j].kal;
end;
writeln(‘Kalkulus II : ‘, maxkal);
end;
begin
maxal:= mhs[1].alpro;
for j:=2 to i do
begin
if maxal< mhs[j].alpro then
maxal:= mhs[j].alpro;
end;
writeln(‘Algoritma Dan Pemrograman II : ‘, maxal);
end;
begin
maxale:= mhs[1].ale;
for j:=2 to i do
begin
if maxale< mhs[j].ale then
maxale:= mhs[j].ale;
end;
writeln(‘Aljabar Linear Elementer : ‘, maxale);
end;
begin
maxdis:= mhs[1].matdis;
for j:=2 to i do
begin
if maxdis< mhs[j].matdis then
maxdis:= mhs[j].matdis;
end;
writeln(‘Matematika Diskrit : ‘, maxdis);
end;
begin
maxpa:= mhs[1].pa;
for j:=2 to i do
begin
if maxpa< mhs[j].pa then
maxpa:= mhs[j].pa;
end;
writeln(‘Praktikum Algoritma Dan Pemrograman II : ‘, maxpa);
end;
begin
maxi:= mhs[1].isbd;
for j:=2 to i do
begin
if maxi< mhs[j].isbd then
maxi:= mhs[j].isbd;
end;
writeln(‘ISBD : ‘, maxi);
end;
begin
maxp:= mhs[1].pkn;
for j:=2 to i do
begin
if maxp< mhs[j].pkn then
maxp:= mhs[j].pkn;
end;
writeln(‘PKN : ‘, maxp);
end;
begin
maxkom:= mhs[1].orkom;
for j:=2 to i do
begin
if maxkom< mhs[j].orkom then
maxkom:= mhs[j].orkom;
end;
writeln(‘Organisasi Komputer : ‘, maxkom);
end;
begin
maxlog:= mhs[1].logmat;
for j:=2 to i do
begin
if maxlog< mhs[j].logmat then
maxlog:= mhs[j].logmat;
end;
writeln(‘Logika Matematika : ‘, maxlog);
end;
readkey;
end;
procedure menu;
begin
repeat
clrscr;
writeln(‘ ** Menu Utama **’);
writeln;
writeln;
writeln(‘ 1. Input Nilai Mahasiswa’);
writeln(‘ 2. Cetak Nilai Mahasiswa’);
writeln(‘ 3. Cetak Rekap Nilai Tertinggi’);
writeln(‘ 0. Exit’);
writeln(‘ ____________________________’);
write(‘ Pilih : ‘);
readln(pilih);
until (pilih=’0′) or (pilih=’1′) or (pilih=’2′) or (pilih=’3’);
case pilih of
‘1’: begin
input;
menu;
end;
‘2’: begin
seqsc;
menu;
end;
‘3’: begin
extrim;
menu;
end;
‘0’: begin
exit
end;
end;
end;
begin
menu;
end.