Lama tidak posting, akhirnya ada kesempatan untuk kembali share dengan teman-teman sekalian. Pada kesempatan ini ingin share masalah Pascal Array 2 Dimensi. Array dimensi dua biasanya digunakan untuk matrik. Bentuk Umum: nama_variabel : array[index1,index2]of tipe_data;
Dalam tutorial ini kita ingin membuat program seperti ini
Dalam program ini terdapat:
- sortting (mengurutkan data)
- selecting (memilih data yang ingin ditampilkan)
- searcing atau pencarian
Listing programnya adalah sebagai berikut:
Uses wincrt;
Type nilaimahasiswa = record
Nama,nim,prodi,huruf : string;
name,class:string;
Quiz,UTS,UAS : integer;
rerata : real;
cari:boolean;
End;
const
garis1='----------------------------------------------------------------------------';
garis2='============================================================================';
Var
mahasiswa : array[1..6] of nilaimahasiswa;
i,n,j,x,pilih : integer;
temp : nilaimahasiswa;
label menu;
label exit;
label ulangmenu;
label ulangheader;
label ulangtampil;
Begin
clrscr;
gotoxy(5,3);write('Berapa Data Yang Ingin Dimasukkan? : ');readln(n);
for i:=1 to n do
begin
clrscr;
gotoxy(5,4) ;write('Data Mahasisa ke - ',i);
gotoxy(5,5) ;write('---------------------');
gotoxy(5,7) ;write('Nama Mahasiswa : '); readln(mahasiswa[i].nama);
gotoxy(5,8) ;write('NIM : '); readln(mahasiswa[i].nim);
gotoxy(5,9) ;write('Prodi <TI,SI,MI,SK>: '); readln(mahasiswa[i].prodi);
gotoxy(5,10);write('Nilai Quis : '); readln(mahasiswa[i].quiz);
gotoxy(5,11);write('Nilai UTS : '); readln(mahasiswa[i].UTS);
gotoxy(5,12);write('Nilai UAS : '); readln(mahasiswa[i].uas);
end;
clrscr;
gotoxy(23,1);write('Data Nilai Alogoritma dan Pemrograman');
gotoxy(25,2);write('Universitas Teknologi Yogyakarta');
gotoxy(33,3);write('Tahun 2011/2012');
begin;
ulangheader:
gotoxy(3,4) ;write(garis2);
gotoxy(4,5) ;write('|');
gotoxy(4,6) ;write('|');
gotoxy(4,7) ;write('|');
gotoxy(6,6) ;write('NO');
gotoxy(9,5) ;write('|');
gotoxy(9,6) ;write('|');
gotoxy(9,7) ;write('|');
gotoxy(16,6);write('NAMA');
gotoxy(26,5);write('|');
gotoxy(26,6);write('|');
gotoxy(26,7);write('|');
gotoxy(31,6);write('NIM');
gotoxy(39,5);write('|');
gotoxy(39,6);write('|');
gotoxy(39,7);write('|');
gotoxy(41,6);write('Prodi');
gotoxy(47,5);write('|');
gotoxy(47,7);write('|');
gotoxy(55,5);write('NILAI |');
gotoxy(47,6);write('|--------------------|');
gotoxy(49,7);write('Quiz');
gotoxy(54,7);write('|');
gotoxy(56,7);write('UTS');
gotoxy(61,7);write('|');
gotoxy(63,7);write('UAS |');
gotoxy(68,7);write('|');
gotoxy(70,6);write('HURUF');
gotoxy(77,5);write('|');
gotoxy(77,6);write('|');
gotoxy(3,8) ;write(garis2);
end;
for i:=1 to n do
begin
ulangtampil:
gotoxy(6,8+i) ;write(i);
gotoxy(11,8+i);write(mahasiswa[i].nama);
gotoxy(28,8+i);write(mahasiswa[i].nim);
gotoxy(42,8+i);write(mahasiswa[i].prodi);
gotoxy(50,8+i);write(mahasiswa[i].quiz);
gotoxy(57,8+i);write(mahasiswa[i].UTS);
gotoxy(64,8+i);write(mahasiswa[i].UAS);
mahasiswa[i].rerata:=((mahasiswa[i].quiz+mahasiswa[i].uts+mahasiswa[i].uas)/3);
if (mahasiswa[i].rerata) >=60 then mahasiswa[i].huruf:='Lulus' else
mahasiswa[i].huruf:='Gagal';
gotoxy(70,8+i);write(mahasiswa[i].huruf);
gotoxy(4,8+i) ;write('|');
gotoxy(9,8+i) ;write('|');
gotoxy(26,8+i);write('|');
gotoxy(39,8+i);write('|');
gotoxy(47,8+i);write('|');
gotoxy(54,8+i);write('|');
gotoxy(61,8+i);write('|');
gotoxy(68,8+i);write('|');
gotoxy(77,8+i);write('|');
writeln;
gotoxy(3,n+9) ;write(garis2);
end;
readln;
begin
ulangmenu:
Writeln;
writeln(' Pilih Menu : ');
writeln(' 1. Sort Nama');
writeln(' 2. Sort NIM');
writeln(' 3. Tampilkan Nilai Per Prodi');
writeln(' 4. Tampilkan Kelulusan');
writeln(' 5. Cari');
writeln(' 6. Kembali');
writeln(' 7. Exit');
writeln(' Pilih pilihan anda : ');readln(pilih);
end;
case pilih of
1:begin
{Urut Nama}
Clrscr;
for i:=1 to n-1 do
begin
for j:=n downto i+1 do
begin
if ((mahasiswa[j].nama)<(mahasiswa[i].nama)) then
begin
temp:=mahasiswa[j];
mahasiswa[j]:=mahasiswa[i];
mahasiswa[i]:=temp;
end;
end;
end;
gotoxy(4,2);write('***Hasil Sort Berdasar Nama***');
goto ulangheader;
for i:=1 to n do
begin
goto ulangtampil;
end;
writeln;
gotoxy(3,n+9) ;write(garis2);
end;
2:begin
{Urut NIM}
Clrscr;
for i:=1 to n-1 do
begin
for j:=n downto i+1 do
begin
if ((mahasiswa[j].nim)<(mahasiswa[i].nim)) then
begin
temp:=mahasiswa[j];
mahasiswa[j]:=mahasiswa[i];
mahasiswa[i]:=temp;
end;
end;
end;
gotoxy(4,2);write('***Hasil Sort Berdasar NIM***');
goto ulangheader;
for i:=1 to n do
begin
goto ulangtampil;
end;
writeln;
gotoxy(3,n+9) ;write(garis2);
end;
3:begin
end;
4:begin
end;
5:begin
clrscr;
mahasiswa[i].cari:=false;
writeln ('Mencari Mahasiswa Dengan Prodi Tertentu');
Write('Tulis nama yang anda cari : ');readln(mahasiswa[j].name);
write('jurusan yang anda cari <SI,TI,MI,SK> ? : ');readln(mahasiswa[j].class);
for i:=1 to n do
begin
if (mahasiswa[j].name=mahasiswa[i].nama) and (mahasiswa[j].class=mahasiswa[i].prodi) then
begin
mahasiswa[i].cari:=true;
clrscr;
gotoxy(5,4) ; write(garis2);
gotoxy(30,1); write('Data yang Anda Cari Ditemukan');
gotoxy(9,5) ; write('NIM');
gotoxy(22,5); write('NAMA');
gotoxy(37,5); write('KELAS');
gotoxy(67,5); write('KELULUSAN');
gotoxy(5,6) ; write(garis2);
gotoxy(9,8) ; writeln(mahasiswa[i].nim);
gotoxy(22,8); writeln(mahasiswa[j].Name);
gotoxy(37,8); writeln(mahasiswa[j].class);
gotoxy(67,8); writeln(mahasiswa[i].huruf);
end;
end;
if not mahasiswa[i].cari then
writeln('nama ',mahasiswa[j].name,' dengan prodi ',mahasiswa[j].class,' tidak ada');
end;
6:begin
clrscr;
gotoxy(23,1);write('Data Nilai Alogoritma dan Pemrograman');
gotoxy(25,2);write('Universitas Teknologi Yogyakarta');
gotoxy(33,3);write('Tahun 2011/2012');
goto ulangheader;
for i:=1 to n do
begin
goto ulangtampil;
end;
end;
7:begin
clrscr;
gotoxy(30,14);Writeln('1. Mustoharoh - 3115113005');
gotoxy(30,16);writeln('2. Riefki R.A - 3115113015');
gotoxy(38,12);writeln('Terimakasih');
exit:
readln;
end;
end;
writeln;
goto ulangmenu;
End.
Saya sengaja mengurangi listing, bukan pelit tapi agar kalian lebih berusaha.. :D. untuk listing lengkapnya boleh hubungi saya langsung melalui e-mail tau massage by phone.
Posting Komentar