Array 2 Dimensi Pascal

Sebuah array dimensi banyak atau multi-dimensional array didefinisikan sebagai sebuah array yang elemennya berupa array pula. Misal array B mempunyai M elemen berupa array pula, yang terdiri dari N elemen. Kalau hal tersebut kita gambarkan, akan terbentuk baris dan kolom.
Untuk itu diperlukan dua buah subscript. Yang pertama digunakan untuk menyatakan posisi baris, sedangkan yang kedua untuk posisi kolom. Secara umum array dimensi dua B, dengan elemen bertipe data T, subscript baris dari l sampai M, subscript kolom dari l sampai N, ditulis sebagai B(1:M, 1:N) = (B(I,J)), I = 1, 2, ...,M dan J = 1, 2,...,N dengan setiap elemen B(I,J) bertipe data T. Array B tersebut dikatakan berukuran atau berorder M x N. Di sini banyak elemen array adalah M*N.
Seperti halnya pada array dimensi satu, pada array dimensi dua batas bawah untuk subscript I maupun J dapat diambil secara umum. Misalnya, batas bawah subscript baris adalah L1 subscript kolom adalah L2 sedangkan batas atas subscript baris adalah U1 dan untuk kolom adalah U2, maka array dimensi dua tersebut dapat dinotasikan sebagai :
B(L1:U1, L2:U2) = (B(I,J)), L1 <= 1 <= U1, L2 <=J <= U2

Contoh Program :

  • Program Input_nilai_mhs;
  • Uses WinCrt;
  • Const
  • garis='------------------------------------------------------------------------';
  • batas='|';
  • Var
  • nil1,nil2,nil3 : Array [1..10] Of 0..100;
  • nim: Array [1..10] Of String [8];
  • nama: Array [1..10] Of String [50];
  • n,i,bar: Integer;
  • rata,jml: Real;
  • tl: Char;
  • procedure logo;
  • begin
  • gotoxy(21,1);writeln('-------------------------------------------');
  • gotoxy(21,2);writeln('>> Program Jumlah Nilai Mahasiswa Unisla <<');
  • gotoxy(21,3);writeln('-                                         -');
  • gotoxy(21,4);writeln('-------------------------------------------');
  • writeln;
  • end;
  • Begin
  •   ClrScr;
  •   logo;
  •   Write ('Berapa Data Mahasiswa yang aka diinput : ');Readln (n);
  •   For i:= 1 To n Do
  •   Begin
  •     ClrScr;
  •     GotoXY(30,4+i); Write('Input Data Mahasiswa Ke-: ',i:2);
  •     writeln;
  •     GotoXY(10,5+i); Write('NIM       : '); Readln(nim[i]);
  •     GotoXY(10,6+i); Write('Nama      : '); Readln(nama[i]);
  •     GotoXY(10,7+i); Write('Nilai TGS : '); Readln(nil1[i]);
  •     GotoXY(10,8+i); Write('Nilai UTS : '); Readln(nil2[i]);
  •     GotoXY(10,9+i); Write('Nilai UAS : '); Readln(nil3[i]);
  •   End;
  •   ClrScr;
  •   logo;
  •   bar:=12;
  •   GotoXY(4,6); Write(Garis);
  •   GotoXY(6,7); Write ('No');
  •   GotoXY(10,7); Write ('NIM');
  •   GotoXY(20,7); Write ('Nama');
  •   GotoXY(37,7); Write ('TGS');
  •   GotoXY(43,7); Write ('UTS');
  •   GotoXY(49,7); Write ('UAS');
  •   GotoXY(56,7); Write ('Rata');
  •   GotoXY(63,7); Write ('Jml%');
  •   GotoXY(70,7); Write ('Abjad');
  •   GotoXY(4,8); Write (Garis);
  •     GotoXY(4,7);Writeln(batas);
  •     GotoXY(8,7);Writeln(batas);
  •     GotoXY(19,7);Writeln(batas);
  •     GotoXY(35,7);Writeln(batas);
  •     GotoXY(41,7);Writeln(batas);
  •     GotoXY(47,7);Writeln(batas);
  •     GotoXY(54,7);Writeln(batas);
  •     GotoXY(61,7);Writeln(batas);
  •     GotoXY(69,7);Writeln(batas);
  •     GotoXY(75,7);Writeln(batas);
  •   bar := 9;
  •   For i:= 1 To n Do
  •   Begin
  •     rata:=(nil1[i]+nil2[i]+nil3[i])/3;
  •     jml:=(nil1[i]*20/100+nil2[i]*30/100+nil3[i]*50/100);
  •     If rata>= 90 Then tl:='A'
  •     Else
  •       If rata>80 Then tl:='B'
  •     Else
  •       If rata>60 then tl:='C'
  •     Else
  •       If rata>50 Then tl:='D'
  •     Else
  •       tl:='E';
  •     GotoXY(5,bar); Writeln(i:2);
  •     GotoXY(10,bar); Writeln (NIM[i]:6);
  •     GotoXY(20,bar); Writeln (NAMA[i]);
  •     GotoXY(36,bar); Writeln (NIL1[i]:4);
  •     GotoXY(42,bar); Writeln (NIL2[i]:4);
  •     GotoXY(48,bar); Writeln (NIL3[i]:4);
  •     GotoXY(55,bar); Writeln (rata:2:2);
  •     GotoXY(63,bar); Writeln (jml:2:2);
  •     GotoXY(72,bar); Writeln (tl);
  •     GotoXY(4,bar);Writeln(batas);
  •     GotoXY(8,bar);Writeln(batas);
  •     GotoXY(19,bar);Writeln(batas);
  •     GotoXY(35,bar);Writeln(batas);
  •     GotoXY(41,bar);Writeln(batas);
  •     GotoXY(47,bar);Writeln(batas);
  •     GotoXY(54,bar);Writeln(batas);
  •     GotoXY(61,bar);Writeln(batas);
  •     GotoXY(69,bar);Writeln(batas);
  •     GotoXY(75,bar);Writeln(batas);
  •     bar:=bar+1;
  •   End;
  •   GotoXY(4,bar+1);Writeln(garis);
  •   Readln;
  • End.


Share this post!

Bookmark and Share

My Blog List