Program
  Tugas_Strukdat; 
uses crt; 
const
  jummhs:integer=5; 
type mahasiswa=record 
     nim, ta:longint; 
     nama, jb:string[20]; 
end; 
   data = array [1..10] of mahasiswa; 
var 
   menu2, u, isearch :integer; 
   x : mahasiswa; 
   a : data; 
   b : data; 
   procedure menu;forward; 
   procedure tampil;forward; 
   procedure menu1;forward; 
   procedure menu12;forward; 
   procedure menu21;forward; 
   procedure menu22;forward; 
   procedure menu13;forward; 
   procedure menu123;forward; 
   procedure menu223;forward; 
   procedure tampil1;forward; 
{procedure input data
  untuk Mahasiswa peminjam} 
procedure inputdata; 
var 
   i:integer; 
begin 
clrscr; 
       writeln('  == Inputan Mahasiswa Peminjam =='); 
       write('Masukkan Jumlah Mahasiswa
  Peminjam yang akan dimasukkan = ');readln(jummhs); 
       for i:=1 to jummhs do 
       begin 
       write('NIM     : ');readln(a[i].nim); 
       writeln; 
end; 
menu; 
end; 
{procedure input data
  untuk mahasiswa Laporan TA} 
procedure inputdata1; 
var 
   i:integer; 
begin 
clrscr; 
       writeln('  == Inputan Mahasiswa Laporan TA =='); 
       write('Masukkan Jumlah Mahasiswa
  Laporan TA yang akan dimasukkan = '); 
            readln(jummhs); 
       for i:=1 to jummhs do 
       begin 
       write('Nama            : ');readln(a[i].nama); 
       write('NIM             : ');readln(a[i].nim); 
       write('Tahun Angkatan  : ');readln(a[i].ta); 
       write('Judul Skripsi   : ');readln(a[i].jb); 
       writeln; 
end; 
menu1; 
end; 
{bubble sort untuk
  nama Mahasiswa Laporan TA} 
procedure
  bubblesort11; 
var 
   tmp:mahasiswa; 
   i,j:integer; 
begin 
     for i:=jummhs downto 2 do 
     begin 
          for j:=2 to i do 
          begin 
          if a[j].nama < a[j-1].nama then 
          begin 
          tmp:=a[j]; 
          a[j]:=a[j-1]; 
          a[j-1]:=tmp; 
          end; 
     end; 
end; 
clrscr; 
writeln('====Pengurutan
  Nama Menggunakan Bubble Sort===='); 
writeln; 
tampil1; 
end; 
{bubble sort untuk
  nim mahasiswa laporan TA} 
procedure
  bubblesort12; 
var 
   tmp:mahasiswa; 
   i,j:integer; 
begin 
     for i:=jummhs downto 2 do 
     begin 
          for j:=2 to i do 
          begin 
          if a[j].nim < a[j-1].nim then 
          begin 
          tmp:=a[j]; 
          a[j]:=a[j-1]; 
          a[j-1]:=tmp; 
          end; 
     end; 
end; 
clrscr; 
writeln('====Pengurutan
  NIM Menggunakan Bubble Sort===='); 
writeln; 
tampil1; 
end; 
{bubble sort
  untuk  angkatan mahasiswa laporan TA} 
procedure
  bubblesort13; 
var 
   tmp:mahasiswa; 
   i,j:integer; 
begin 
     for i:=jummhs downto 2 do 
     begin 
          for j:=2 to i do 
          begin 
          if a[j].ta < a[j-1].ta then 
          begin 
          tmp:=a[j]; 
          a[j]:=a[j-1]; 
          a[j-1]:=tmp; 
          end; 
     end; 
end; 
clrscr; 
writeln('====Pengurutan
  Tahun Angkatan Menggunakan Bubble Sort===='); 
writeln; 
tampil1; 
end; 
{bubble sort untuk
  judul laporan TA} 
procedure
  bubblesort14; 
var 
   tmp:mahasiswa; 
   i,j:integer; 
begin 
     for i:=jummhs downto 2 do 
     begin 
          for j:=2 to i do 
          begin 
          if a[j].jb < a[j-1].jb then 
          begin 
          tmp:=a[j]; 
          a[j]:=a[j-1]; 
          a[j-1]:=tmp; 
          end; 
     end; 
end; 
clrscr; 
writeln('====Pengurutan
  Judul Skripsi Menggunakan Bubble Sort===='); 
writeln; 
tampil1; 
end; 
{bubble sort untuk
  nama mahasiswa peminjam} 
procedure
  bubblesort21; 
var 
   tmp:mahasiswa; 
   i,j:integer; 
begin 
     for i:=jummhs downto 2 do 
     begin 
          for j:=2 to i do 
          begin 
          if a[j].nama < a[j-1].nama then 
          begin 
          tmp:=a[j]; 
          a[j]:=a[j-1]; 
          a[j-1]:=tmp; 
          end; 
     end; 
end; 
clrscr; 
writeln('====Pengurutan
  Nama Menggunakan Bubble Sort===='); 
writeln; 
tampil; 
end; 
{bubble sort untuk
  nim mahasiswa peminjam} 
procedure
  bubblesort22; 
var 
   tmp:mahasiswa; 
   i,j:integer; 
begin 
     for i:=jummhs downto 2 do 
     begin 
          for j:=2 to i do 
          begin 
          if a[j].nim < a[j-1].nim then 
          begin 
          tmp:=a[j]; 
          a[j]:=a[j-1]; 
          a[j-1]:=tmp; 
          end; 
     end; 
end; 
clrscr; 
writeln('====Pengurutan
  NIM Menggunakan Bubble Sort===='); 
writeln; 
tampil; 
end; 
{selection untuk nama
  mahasiswa laporan TA} 
procedure
  selectionsort11; 
var 
   tmp:mahasiswa; 
   i,j,min:integer; 
begin 
     for i:=1 to jummhs-1 do 
     begin 
     min:=i; 
     for j:=i+1 to jummhs do 
     begin 
     if a[j].nama < a[min].nama then 
     a[min].nama:=a[j].nama; 
     tmp:=a[min]; 
     a[min]:=a[i]; 
     a[i]:=tmp; 
     end; 
end; 
clrscr; 
writeln('====Pengurutan
  Nama Menggunakan Selection Sort===='); 
tampil1; 
end; 
{selection untuk nim
  mahasiswa laporan TA} 
procedure
  selectionsort12; 
var 
   tmp:mahasiswa; 
   i,j,min:integer; 
begin 
     for i:=1 to jummhs-1 do 
     begin 
     min:=i; 
     for j:=i+1 to jummhs do 
     begin 
     if a[j].nim < a[min].nim then 
     a[min].nim:=a[j].nim; 
     tmp:=a[min]; 
     a[min]:=a[i]; 
     a[i]:=tmp; 
     end; 
end; 
clrscr; 
writeln('====Pengurutan
  NIM Menggunakan Selection Sort====='); 
writeln; 
tampil1; 
end; 
{selection untuk
  angkatan mahasiswa laporan TA} 
procedure
  selectionsort13; 
var 
   tmp:mahasiswa; 
   i,j,min:integer; 
begin 
     for i:=1 to jummhs-1 do 
     begin 
     min:=i; 
     for j:=i+1 to jummhs do 
     begin 
     if a[j].ta < a[min].ta then 
     a[min].ta:=a[j].ta; 
     tmp:=a[min]; 
     a[min]:=a[i]; 
     a[i]:=tmp; 
     end; 
end; 
clrscr; 
writeln('====Pengurutan
  Tahun Angkatan Menggunakan Selection Sort===='); 
tampil1; 
end; 
{selection untuk
  judul Laporan TA} 
procedure
  selectionsort14; 
var 
   tmp:mahasiswa; 
   i,j,min:integer; 
begin 
     for i:=1 to jummhs-1 do 
     begin 
     min:=i; 
     for j:=i+1 to jummhs do 
     begin 
     if a[j].jb < a[min].jb then 
     a[min].jb:=a[j].jb; 
     tmp:=a[min]; 
     a[min]:=a[i]; 
     a[i]:=tmp; 
     end; 
end; 
clrscr; 
writeln('====Pengurutan
  Judul Skripsi Menggunakan Selection Sort===='); 
tampil1; 
end; 
{selection untuk nama
  mahasiswa peminjam} 
procedure
  selectionsort21; 
var 
   tmp:mahasiswa; 
   i,j,min:integer; 
begin 
     for i:=1 to jummhs-1 do 
     begin 
     min:=i; 
     for j:=i+1 to jummhs do 
     begin 
     if a[j].nama < a[min].nama then 
     a[min].nama:=a[j].nama; 
     tmp:=a[min]; 
     a[min]:=a[i]; 
     a[i]:=tmp; 
     end; 
end; 
clrscr; 
writeln('====Pengurutan
  Nama Menggunakan Selection Sort===='); 
tampil; 
end; 
{selection untuk nim
  mahasiswa peminjam} 
procedure
  selectionsort22; 
var 
   tmp:mahasiswa; 
   i,j,min:integer; 
begin 
     for i:=1 to jummhs-1 do 
     begin 
     min:=i; 
     for j:=i+1 to jummhs do 
     begin 
     if a[j].nim < a[min].nim then 
     a[min].nim:=a[j].nim; 
     tmp:=a[min]; 
     a[min]:=a[i]; 
     a[i]:=tmp; 
     end; 
end; 
clrscr; 
writeln('====Pengurutan
  NIM Menggunakan Selection Sort===='); 
tampil; 
end; 
{insertion untuk nama
  mahasiswa laporan TA} 
procedure
  insertionsort11; 
var 
   i,j:integer; 
   tmp:mahasiswa; 
begin 
     for i:=2 to jummhs do 
     begin 
     tmp:=a[i]; 
     j:=i; 
     while (j>1) and (tmp.nama <
  a[j-i].nama) do 
     begin 
     tmp:=a[j]; 
     a[j]:=a[j-1]; 
     j:=j-1; 
     a[j-1]:=tmp; 
     end; 
end; 
clrscr; 
writeln('====Pengurutan
  Nama Menggunakan Insertion Sort===='); 
tampil1; 
end; 
{insertion untuk nim
  mahasiswa laporan TA} 
procedure
  insertionsort12; 
var 
   i,j:integer; 
   tmp:mahasiswa; 
begin 
     for i:=2 to jummhs do 
     begin 
     tmp:=a[i]; 
     j:=i; 
     while (j>1) and (tmp.nim <
  a[j-i].nim) do 
     begin 
     tmp:=a[j]; 
     a[j]:=a[j-1]; 
     j:=j-1; 
     a[j-1]:=tmp; 
     end; 
end; 
clrscr; 
writeln('====Pengurutan
  NIM Menggunakan Insertion Sort===='); 
tampil1; 
end; 
{insertion untuk
  angkatan mahasiswa Laporan TA} 
procedure
  insertionsort13; 
var 
   i,j:integer; 
   tmp:mahasiswa; 
begin 
     for i:=2 to jummhs do 
     begin 
     tmp:=a[i]; 
     j:=i; 
     while (j>1) and (tmp.ta <
  a[j-i].ta) do 
     begin 
     tmp:=a[j]; 
     a[j]:=a[j-1]; 
     j:=j-1; 
     a[j-1]:=tmp; 
     end; 
end; 
clrscr; 
writeln('====Pengurutan
  Tahun Angkatan Menggunakan Insertion Sort===='); 
tampil1; 
end; 
{insertion untuk
  judul Laporan TA} 
procedure
  insertionsort14; 
var 
   i,j:integer; 
   tmp:mahasiswa; 
begin 
     for i:=2 to jummhs do 
     begin 
     tmp:=a[i]; 
     j:=i; 
     while (j>1) and (tmp.jb <
  a[j-i].jb) do 
     begin 
     tmp:=a[j]; 
     a[j]:=a[j-1]; 
     j:=j-1; 
     a[j-1]:=tmp; 
     end; 
end; 
clrscr; 
writeln('====Pengurutan
  Judul Skripsi Menggunakan Insertion Sort===='); 
tampil1; 
end; 
{insertion untuk nama
  mahasiswa peminjam} 
procedure
  insertionsort21; 
var 
   i,j:integer; 
   tmp:mahasiswa; 
begin 
     for i:=2 to jummhs do 
     begin 
     tmp:=a[i]; 
     j:=i; 
     while (j>1) and (tmp.nama <
  a[j-i].nama) do 
     begin 
     tmp:=a[j]; 
     a[j]:=a[j-1]; 
     j:=j-1; 
     a[j-1]:=tmp; 
     end; 
end; 
clrscr; 
writeln('====Pengurutan
  Nama Menggunakan Insertion Sort===='); 
tampil; 
end; 
{insertion untuk nim
  mahasiswa peminjam} 
procedure
  insertionsort22; 
var 
   i,j:integer; 
   tmp:mahasiswa; 
begin 
     for i:=2 to jummhs do 
     begin 
     tmp:=a[i]; 
     j:=i; 
     while (j>1) and (tmp.nim <
  a[j-i].nim) do 
     begin 
     tmp:=a[j]; 
     a[j]:=a[j-1]; 
     j:=j-1; 
     a[j-1]:=tmp; 
     end; 
end; 
clrscr; 
writeln('====Pengurutan
  NIM Menggunakan Insertion Sort===='); 
tampil; 
end; 
{sekuensial untuk
  nama mahasiswa laporan TA} 
procedure sekuensial11(b:data;u:integer;
  x:mahasiswa; var isearch:integer); 
var i:integer; 
begin 
if (u=0) then 
   isearch:= 0 else 
   begin 
        i:=1; 
        while (A[i].nama<>x.nama) and
  (i<u) do 
        i:=i+1; 
        if (A[i].nama=x.nama) then 
        isearch:=i 
        else 
        isearch:=0; 
     end; 
end; 
{sekuensial untuk nim
  mahasiswa laporan TA} 
procedure
  sekuensial12(b:data;u:integer; x:mahasiswa; var isearch:integer); 
var i:integer; 
begin 
if (u=0) then 
   isearch:= 0 else 
   begin 
        i:=1; 
        while (A[i].nim<>x.nim) and
  (i<u) do 
        i:=i+1; 
        if (A[i].nim=x.nim) then 
        isearch:=i 
        else 
        isearch:=0; 
     end; 
end; 
{sekuensial untuk
  angkatan mahasiswa laporan TA} 
procedure
  sekuensial13(b:data;u:integer; x:mahasiswa; var isearch:integer); 
var i:integer; 
begin 
if (u=0) then 
   isearch:= 0 else 
   begin 
        i:=1; 
        while (A[i].ta<>x.ta) and
  (i<u) do 
        i:=i+1; 
        if (A[i].ta=x.ta) then 
        isearch:=i 
        else 
        isearch:=0; 
     end; 
end; 
{sekuensial untuk
  judul laporan TA} 
procedure
  sekuensial14(b:data;u:integer; x:mahasiswa; var isearch:integer); 
var i:integer; 
begin 
if (u=0) then 
   isearch:= 0 else 
   begin 
        i:=1; 
        while (A[i].jb<>x.jb) and
  (i<u) do 
        i:=i+1; 
        if (A[i].jb=x.jb) then 
        isearch:=i 
        else 
        isearch:=0; 
     end; 
end; 
{sekuensial untuk
  nama mahasiswa peminjam} 
procedure
  sekuensial21(b:data;u:integer; x:mahasiswa; var isearch:integer); 
var i:integer; 
begin 
if (u=0) then 
   isearch:= 0 else 
   begin 
        i:=1; 
        while (A[i].nama<>x.nama) and
  (i<u) do 
        i:=i+1; 
        if (A[i].nama=x.nama) then 
        isearch:=i 
        else 
        isearch:=0; 
     end; 
end; 
{sekuensial untuk nim
  mahasiswa peminjam} 
procedure
  sekuensial22(b:data;u:integer; x:mahasiswa; var isearch:integer); 
var i:integer; 
begin 
if (u=0) then 
   isearch:= 0 else 
   begin 
        i:=1; 
        while (A[i].nim<>x.nim) and
  (i<u) do 
        i:=i+1; 
        if (A[i].nim=x.nim) then 
        isearch:=i 
        else 
        isearch:=0; 
     end; 
end; 
{binary untuk nama
  mahasiswa peminjam} 
procedure
  binsearch21; 
var 
   atas,bawah,tengah:integer; 
   cari:string; 
begin 
     clrscr; 
     write('Masukan Nama Mahasiswa yang Akan
  Dicari :');readln(cari); 
     atas:=1; 
     bawah:=jummhs; 
     tengah:=(atas+bawah)div 2; 
     while ((atas<bawah) and
  (a[tengah].nama<>cari)) do 
     begin 
     if a[tengah].nama < cari then 
     atas:= tengah+1 
     else 
     bawah:=tengah-1; 
     tengah:=(atas+bawah)div 2; 
     end; 
     if a[tengah].nama = cari then 
     begin 
     clrscr; 
     writeln('Hasil Pencarian :'); 
     gotoxy(3,3);write('NIM'); 
     gotoxy(14,3);Write('Nama'); 
     gotoxy(3,5);write(a[tengah].nim); 
     gotoxy(14,5);Write(a[tengah].nama); 
     readkey; 
     menu; 
     end 
     else 
     begin 
     writeln('Data Mahasiswa Tidak
  Ditemukan'); 
     readkey; 
     menu; 
     end; 
end; 
{binary untuk nim
  mahasiswa peminjam} 
procedure
  binsearch22; 
var 
   atas,bawah,tengah:integer; 
   cari:longint; 
begin 
     clrscr; 
     write('Masukan NIM Mahasiswa yang Akan
  Dicari :');readln(cari); 
     atas:=1; 
     bawah:=jummhs; 
     tengah:=(atas+bawah)div 2; 
     while ((atas<bawah) and
  (a[tengah].nim<>cari)) do 
     begin 
     if a[tengah].nim < cari then 
     atas:= tengah+1 
     else 
     bawah:=tengah-1; 
     tengah:=(atas+bawah)div 2; 
     end; 
     if a[tengah].nim = cari then 
     begin 
     clrscr; 
     writeln('Hasil Pencarian :'); 
     gotoxy(3,3);write('NIM'); 
     gotoxy(14,3);Write('Nama'); 
     gotoxy(3,5);write(a[tengah].nim); 
     gotoxy(14,5);Write(a[tengah].nama); 
     readkey; 
     menu; 
     end 
     else 
     begin 
     writeln('Data Mahasiswa Tidak
  Ditemukan'); 
     readkey; 
     menu; 
     end; 
end; 
{binary untuk judul
  laporan TA} 
procedure binsearch1; 
var 
   atas,bawah,tengah:integer; 
   cari:string; 
begin 
     clrscr; 
     write('Masukan Judul Skripsi yang Akan
  Dicari :');readln(cari); 
     atas:=1; 
     bawah:=jummhs; 
     tengah:=(atas+bawah)div 2; 
     while ((atas<bawah) and
  (a[tengah].jb<>cari)) do 
     begin 
     if a[tengah].jb < cari then 
     atas:= tengah+1 
     else 
     bawah:=tengah-1; 
     tengah:=(atas+bawah)div 2; 
     end; 
     if a[tengah].jb = cari then 
     begin 
     clrscr; 
     writeln('Hasil Pencarian :'); 
     gotoxy(3,3);write('NIM'); 
     gotoxy(14,3);Write('Nama'); 
     gotoxy(35,3);write('Angkatan'); 
             gotoxy(50,3);write('Judul Skripsi'); 
     gotoxy(3,5);write(a[tengah].nim); 
     gotoxy(14,5);Write(a[tengah].nama); 
     gotoxy(35,5);write(a[tengah].ta); 
             gotoxy(50,5);write(a[tengah].jb); 
     readkey; 
     menu1; 
     end 
     else 
     begin 
     writeln('Data Mahasiswa Tidak
  Ditemukan'); 
     readkey; 
     menu1; 
     end; 
end; 
{Binary untuk nama
  mahasiswa Laporan TA} 
procedure
  binsearch12; 
var 
   atas,bawah,tengah:integer; 
   cari:string; 
begin 
     clrscr; 
     write('Masukan Nama Mahasiswa yang Akan
  Dicari :');readln(cari); 
     atas:=1; 
     bawah:=jummhs; 
     tengah:=(atas+bawah)div 2; 
     while ((atas<bawah) and
  (a[tengah].nama<>cari)) do 
     begin 
     if a[tengah].nama < cari then 
     atas:= tengah+1 
     else 
     bawah:=tengah-1; 
     tengah:=(atas+bawah)div 2; 
     end; 
     if a[tengah].nama = cari then 
     begin 
     clrscr; 
     writeln('Hasil Pencarian :'); 
     gotoxy(3,3);write('NIM'); 
     gotoxy(14,3);Write('Nama'); 
     gotoxy(35,3);write('Angkatan'); 
             gotoxy(50,3);write('Judul Skripsi'); 
     gotoxy(3,5);write(a[tengah].nim); 
     gotoxy(14,5);Write(a[tengah].nama); 
     gotoxy(35,5);write(a[tengah].ta); 
             gotoxy(50,5);write(a[tengah].jb); 
     readkey; 
     menu1; 
     end 
     else 
     begin 
     writeln('Data Mahasiswa Tidak
  Ditemukan'); 
     readkey; 
     menu1; 
     end; 
end; 
{binary untuk nim
  mahasiswa peminjam} 
procedure
  binsearch13; 
var 
   atas,bawah,tengah:integer; 
   cari:longint; 
begin 
     clrscr; 
     write('Masukan NIM Mahasiswa yang Akan
  Dicari :');readln(cari); 
     atas:=1; 
     bawah:=jummhs; 
     tengah:=(atas+bawah)div 2; 
     while ((atas<bawah) and
  (a[tengah].nim<>cari)) do 
     begin 
     if a[tengah].nim < cari then 
     atas:= tengah+1 
     else 
     bawah:=tengah-1; 
     tengah:=(atas+bawah)div 2; 
     end; 
     if a[tengah].nim = cari then 
     begin 
     clrscr; 
     writeln('Hasil Pencarian :'); 
     gotoxy(3,3);write('NIM'); 
     gotoxy(14,3);Write('Nama'); 
     gotoxy(35,3);write('Angkatan'); 
             gotoxy(50,3);write('Judul Skripsi'); 
     gotoxy(3,5);write(a[tengah].nim); 
     gotoxy(14,5);Write(a[tengah].nama); 
     gotoxy(35,5);write(a[tengah].ta); 
             gotoxy(50,5);write(a[tengah].jb); 
     readkey; 
     menu1; 
     end 
     else 
     begin 
     writeln('Data Mahasiswa Tidak
  Ditemukan'); 
     readkey; 
     menu1; 
     end; 
end; 
{binary untuk
  angkatan mahasiswa laporan TA} 
procedure
  binsearch14; 
var 
   atas,bawah,tengah:integer; 
   cari:longint; 
begin 
     clrscr; 
     write('Masukan Tahun Angkatan yang Akan
  Dicari :');readln(cari); 
     atas:=1; 
     bawah:=jummhs; 
     tengah:=(atas+bawah)div 2; 
     while ((atas<bawah) and
  (a[tengah].ta<>cari)) do 
     begin 
     if a[tengah].ta < cari then 
     atas:= tengah+1 
     else 
     bawah:=tengah-1; 
     tengah:=(atas+bawah)div 2; 
     end; 
     if a[tengah].ta = cari then 
     begin 
     clrscr; 
     writeln('Hasil Pencarian :'); 
     gotoxy(3,3);write('NIM'); 
     gotoxy(14,3);Write('Nama'); 
     gotoxy(35,3);write('Angkatan'); 
     gotoxy(50,3);write('Judul Skripsi'); 
     gotoxy(3,5);write(a[tengah].nim); 
     gotoxy(14,5);Write(a[tengah].nama); 
     gotoxy(35,5);write(a[tengah].ta); 
     gotoxy(50,5);write(a[tengah].jb); 
     readkey; 
     menu1; 
     end 
     else 
     begin 
     writeln('Data Mahasiswa Tidak
  Ditemukan'); 
     readkey; 
     menu1; 
     end; 
end; 
{untuk mencetak hasil
  pencarian dari data laporan TA} 
procedure cetak1; 
begin 
         writeln('Hasil Pencarian :'); 
         writeln; 
         gotoxy(14,5);writeln('Nama          : ',B[isearch].nama); 
         gotoxy(14,6);writeln('NIM           : ',B[isearch].nim); 
         gotoxy(14,7);writeln('Angkatan      : ',B[isearch].ta); 
         gotoxy(14,8);writeln('Skripsi       : ',B[isearch].jb); 
         writeln; 
         gotoxy(14,10);writeln('Tekan Enter
  untuk kembali ke menu pencarian'); 
     end; 
{untuk mencetak hasil
  pencarian dari data mahasiswa peminjam} 
procedure cetak2; 
begin 
         writeln('Hasil Pencarian :'); 
         writeln; 
         gotoxy(14,5);writeln('Nama          : ',B[isearch].nama); 
         gotoxy(14,6);writeln('NIM           : ',B[isearch].nim); 
         writeln; 
         gotoxy(14,10);writeln('Tekan Enter
  untuk kembali ke menu pencarian'); 
     end; 
{untuk menampilkan
  data mahasiswa peminjam} 
procedure tampil; 
var 
   i:integer; 
begin 
     gotoxy(3,2);write('NIM'); 
     gotoxy(14,2);Write('Nama'); 
     for i:=1 to jummhs do 
     begin 
     gotoxy(3,3+i);write(a[i].nim); 
     gotoxy(14,3+i);Write(a[i].nama); 
     end; 
end; 
{untuk menampilkan
  data Laporan TA} 
procedure tampil1; 
var 
   i:integer; 
begin 
     gotoxy(3,2);write('NIM'); 
     gotoxy(14,2);Write('Nama'); 
     gotoxy(35,2);write('Angkatan'); 
             gotoxy(50,2);write('Judul Skripsi'); 
     for i:=1 to jummhs do 
     begin 
     gotoxy(3,3+i);write(a[i].nim); 
     gotoxy(14,3+i);Write(a[i].nama); 
     gotoxy(35,3+i);write(a[i].ta); 
             gotoxy(50,3+i);write(a[i].jb); 
     end; 
end; 
{menu untuk
  pengurutan pada data Laporan TA} 
procedure menu123; 
var 
   pil:integer; 
begin 
     clrscr; 
     writeln('=====Pengurutan Data====='); 
     writeln('========================'); 
     writeln('1. Sorting Nama                          '); 
     writeln('2. Sorting NIM                             '); 
     writeln('3. Sorting Tahun Angkatan        '); 
     writeln('4. Sorting Judul Skripsi               '); 
     writeln('5. Menu Sebelumnya                 '); 
     writeln('========================='); 
     write('Pilih Menu >>
  ');readln(pil); 
case pil of 
1: begin 
            bubblesort11; 
            readkey; 
            insertionsort11; 
            readkey; 
            selectionsort11; 
            readkey; 
            menu123; 
end; 
2: begin 
     bubblesort12; 
             readkey; 
             insertionsort12; 
             readkey; 
             selectionsort12; 
             readkey; 
             menu123; 
end; 
3: begin 
   bubblesort13; 
   readkey; 
   insertionsort13; 
   readkey; 
   selectionsort13; 
   readkey; 
   menu123; 
end; 
4: begin 
   bubblesort14; 
   readkey; 
   insertionsort14; 
   readkey; 
   selectionsort14; 
   readkey; 
   menu123; 
end; 
5:exit; 
end; 
end; 
{menu untuk
  pengurutan pada data mahasiswa peminjam} 
procedure menu223; 
var 
   pil:integer; 
begin 
     clrscr; 
     writeln('===Pengurutan Data==='); 
     writeln('===================='); 
     writeln('1. Sorting Nama               '); 
     writeln('2. Sorting NIM                  '); 
     writeln('3. Menu Sebelumnya      '); 
     writeln('===================='); 
     write('Pilih Menu >>
  ');readln(pil); 
case pil of 
1: begin 
            bubblesort21; 
            readkey; 
            insertionsort21; 
            readkey; 
            selectionsort21; 
            readkey; 
            menu223; 
end; 
2: begin 
     bubblesort22; 
             readkey; 
             insertionsort22; 
             readkey; 
             selectionsort22; 
             readkey; 
             menu223; 
end; 
3:exit; 
end; 
end; 
{menu untuk pencarian
  biner pada data Laporan TA} 
procedure menu12; 
var 
   pil:integer; 
begin 
     clrscr; 
     writeln('===Pencarian Biner==== '); 
     writeln('==================== '); 
     writeln('1. Cari Judul Skripsi           '); 
     writeln('2. Cari Nama Mahasiswa '); 
     writeln('3. Cari NIM Mahasiswa    '); 
     writeln('4. Cari Tahun Angkatan   '); 
     writeln('5. Menu Sebelumnya       '); 
     writeln('====================='); 
     write('Pilih Menu >>
  ');readln(pil); 
case pil of 
1: begin 
            binsearch1; 
            menu12; 
end; 
2: begin 
     binsearch12; 
             menu12; 
end; 
3: begin 
   binsearch13; 
   menu12; 
end; 
4: begin 
   binsearch14; 
   menu12; 
end; 
5:exit; 
end; 
end; 
{menu untuk pencarian
  sekuensial pada data Laporan TA} 
procedure menu13; 
var 
   pil:integer; 
begin 
     clrscr; 
     writeln('==Pencarian Sekuensial=='); 
     writeln('========================'); 
     writeln('1. Cari Nama Mahasiswa  '); 
     writeln('2. Cari NIM Mahasiswa   '); 
     writeln('3. Cari Tahun Angkatan  '); 
     writeln('4. Cari Judul Skripsi   '); 
     writeln('5. Menu Sebelumnya      '); 
     writeln('========================'); 
     write('Pilih Menu >>
  ');readln(pil); 
case pil of 
1: begin 
            clrscr; 
    write 
  ('Masukan Nama yang Akan Dicari : ');readln(x.nama); 
    writeln; 
    B:=A; 
    sekuensial11(b,u,x,isearch); 
            cetak1; 
            readkey; 
   menu13; 
end; 
2: begin 
    clrscr; 
    write 
  ('Masukan NIM yang Akan Dicari : ');readln(x.nim); 
    writeln; 
    B:=A; 
    sekuensial12(b,u,x,isearch); 
            cetak1; 
            readkey; 
   menu13; 
end; 
3: begin 
    clrscr; 
    write 
  ('Masukan Tahun Angkatan yang Akan Dicari : ');readln(x.ta); 
    writeln; 
    B:=A; 
    sekuensial13(b,u,x,isearch); 
            cetak1; 
            readkey; 
   menu13; 
end; 
4: begin 
    clrscr; 
    write 
  ('Masukan Judul Skripsi yang Akan Dicari : ');readln(x.jb); 
    writeln; 
    B:=A; 
    sekuensial14(b,u,x,isearch); 
            cetak1; 
            readkey; 
   menu13; 
end; 
5: exit; 
end; 
end; 
{menu untuk pencarian
  biner untuk mahasiswa Peminjam} 
procedure menu21; 
var 
   pil:integer; 
begin 
     clrscr; 
             writeln('====Pencarian Biner====='); 
     writeln('========================'); 
     writeln('1. Cari Nama Mahasiswa  '); 
     writeln('2. Cari NIM Mahasiswa   '); 
     writeln('3. Menu Sebelumnya      '); 
     writeln('========================'); 
     write('Pilih Menu >>
  ');readln(pil); 
case pil of 
1: begin 
            binsearch21; 
            menu12; 
end; 
2: begin 
     binsearch22; 
             menu12; 
end; 
3: exit; 
end; 
end; 
{menu untuk pencarian
  sekuensial untuk mahasiswa peminjam} 
procedure menu22; 
var 
   pil:integer; 
begin 
     clrscr; 
             writeln('==Pencarian Sekeunsial=='); 
     writeln('========================'); 
     writeln('1. Cari Nama Mahasiswa  '); 
     writeln('2. Cari NIM Mahasiswa   '); 
     writeln('3. Menu Sebelumnya'); 
     writeln('========================'); 
     write('Pilih Menu >>
  ');readln(pil); 
case pil of 
1: begin 
            clrscr; 
    write 
  ('Masukan Nama yang Akan Dicari : ');readln(x.nama); 
    writeln; 
    B:=A; 
    sekuensial21(b,u,x,isearch); 
            cetak2; 
            readkey; 
   menu22; 
end; 
2: begin 
    clrscr; 
    write 
  ('Masukan NIM yang Akan Dicari : ');readln(x.nim); 
    writeln; 
    B:=A; 
    sekuensial21(b,u,x,isearch); 
            cetak2; 
            readkey; 
   menu22; 
end; 
3: exit; 
end; 
end; 
{menu untuk data
  Laporan TA} 
procedure menu; 
var 
   pil:integer; 
begin 
     clrscr; 
     writeln('======================='); 
     writeln('=========MENU=========='); 
     writeln('======================='); 
     writeln('1. Input Data          '); 
     writeln('2. Pengurutan Data     '); 
     writeln('3. Pencarian Sekuensial'); 
     writeln('4. Pencarian Biner     '); 
     writeln('5. Ke Menu Utama       '); 
     writeln('======================='); 
     write('Pilih Menu >>
  ');readln(pil); 
case pil of 
1:inputdata; 
2: begin 
     menu223; 
     menu; 
end; 
3: begin 
   menu22; 
   menu; 
end; 
4: begin 
   menu21; 
   menu; 
end; 
5:exit; 
end; 
end; 
{menu untuk mahasiswa
  peminjam} 
procedure menu1; 
var 
   pil:integer; 
begin 
     clrscr; 
     writeln('======================='); 
     writeln('========MENU==========='); 
     writeln('======================='); 
     writeln('1. Input Data          '); 
     writeln('2. Pengurutan Data     '); 
     writeln('3. Pencarian Sekuensial'); 
     writeln('4. Pencarian Biner     '); 
     writeln('5. Ke Menu Utama       '); 
     writeln('======================='); 
     write('Pilih Menu >>
  ');readln(pil); 
case pil of 
1:inputdata1; 
2: begin 
     menu123; 
     menu1; 
end; 
3: begin 
   menu13; 
   menu1; 
end; 
4: begin 
   menu12; 
   menu1; 
end; 
5:exit; 
end; 
end; 
{menu utama program} 
begin 
repeat 
     clrscr; 
     writeln('================ Menu Utama
  Perpustakaan ====================='); 
     writeln(' 1. Data Mahasiswa Beserta
  Judul Laporan TA                                                   
  '); 
     writeln(' 2. Data Mahasiswa
  Peminjam                                   '); 
     writeln(' 3. Keluar                                                   
  '); 
    
  writeln('=============================================================='); 
     writeln; 
     write('Masukkan Pilihan >> ');
  readln(u); 
     case 
  u of 
          1 : Menu1; 
          2 : Menu; 
          3 : halt; 
end; 
Until u=3; 
End. 
 | 
 

2 Komentar
makasih ,amazing dah
BalasHapusini yang gw cari" dari tadi di google
pokoknya makasih banyak deh
iya sama-sama :)
Hapus