Perhitungan Matriks Dengan Menu Pilihan

Program ini berfungsi untuk menghitung  Pejumlahan, pengurangan, perkalian, dan transpose matriks. Proses dilakukan dengan memilih pilihan pada menu. Program terdiri dari sub program dimana setiap sub program bertugas untuk melakukan tugas sesuai dengan tugasnya.

Source code program sebagai berikut :

PROGRAM HITUNG_MATRIKS;
USES Crt;

type matrix = array [1..10,1..10] of integer;
var
  i,j : integer;

PROCEDURE MENU(var pil:char);
Begin
  gotoxy(15,5);write('   Menu Pilihan');
  gotoxy(15,6);write('=========================');
  gotoxy(15,7);write('1. Input Data Matriks');
  gotoxy(15,8);write('2. Penjumlahan Matriks');
  gotoxy(15,9);write('3. Pengurangan Matriks');
  gotoxy(15,10);write('4. Perkalian Matriks');
  gotoxy(15,11);write('5. Transpose Matriks');
  gotoxy(15,12);write('6. Keluar');
  gotoxy(15,13);write('=========================');
  gotoxy(15,14);write('   Pilihan Anda?? :  ');readln(pil);
End;

PROCEDURE ORDO(var M,N,P,Q:integer);
Begin
   clrscr;
  {Input Ukuran/Ordo Matrix A dan B}
  repeat
       writeln('Tentukan Ordo/Ukuran Matrix ');
       write('Jumlah Baris Matrik A: ');  readln(m);
       write('Jumlah Kolom Matrik A: ');  readln(n);
       write('Jumlah Baris Matrik B: ');  readln(p);
       write('Jumlah Kolom Matrik B: ');  readln(q);clrscr;
       writeln('Ulangi, tidak memenuhi syarat Perkalian');
  until n=p;
End;


PROCEDURE input(x,y : integer; var m : matrix);
Begin
for i:=1 to x do
      for j:=1 to y do
      begin
          write('M[',i,',',j,'] : ');readln(m[i,j]);
      end; writeln;
end;

PROCEDURE TAMBAH(x,y : integer;a,b : matrix; var m : matrix);
Begin
for i:=1 to x do
      for j:=1 to y do
      begin
          m[i,j]:=a[i,j]+b[i,j];
      end; writeln;
end;

PROCEDURE KURANG(x,y : integer;a,b : matrix; var m : matrix);
Begin
for i:=1 to x do
      for j:=1 to y do
      begin
          m[i,j]:=a[i,j]-b[i,j];
      end; writeln;
end;

{Procedure Hitung}
PROCEDURE Kali (x,y,z:integer; a,b :matrix;var c:matrix);
 var k : integer;
Begin
   for i:=1 to x do
      for j:=1 to y do
         Begin
           C[i,j]:=0;
             for k:=1 to z do
               c[i,j] := C[i,j] + A[i,k]*B[k,j];
                        
         End;
End;

{Procedure Cetak}
PROCEDURE Cetak(x,y : integer; m : matrix);

 Begin
         Writeln;
         for i:=1 to x do
             begin
                for j:=1 to y do
                    write(M[i,j],'  ');
                    writeln;
             end;
             writeln;
End;

PROCEDURE TRANS(b,k :integer; n:matrix; var m :matrix);
Begin
      for i := 1 to b do
         for j := 1 to k do
         begin
              m[j,i]:=n[i,j];
         end;
End;

{Program Utama}
var x,y,z,r    : integer;
    a,b,tb,kr,tr,kl  : matrix;
    ya,p       :char;
Begin
  ya:='y';
  while ya='y' do
  Begin
  clrscr;
  menu(p);
  case p of

    '1' : Begin
          clrscr;ordo(x,y,z,r);
          clrscr;writeln('Input Data Matrik A');
          input(x,y,a);
          writeln('Input Data Matrik B');
          input(z,r,b);
          End;
    '2' : Begin
          clrscr;tambah(x,y,a,b,tb);
          cetak(x,y,a);
          cetak(z,r,b);
          cetak(x,y,tb);
          End;
    '3' : Begin
          clrscr;kurang(x,y,a,b,kr);
          cetak(x,y,a);
          cetak(z,r,b);
          cetak(x,y,kr);
          End;
    '4' : Begin
          clrscr;kali(x,r,y,a,b,kl);
          cetak(x,y,a);
          cetak(z,r,b);
          cetak(x,r,kl);
          End;
    '5' : Begin
          clrscr;
          writeln('Transpose Matriks A');
          Trans(x,y,a,tr);
          cetak(x,y,a);
          cetak(y,x,tr);
          writeln('Transpose Matriks B');
          Trans(z,r,b,tr);
          cetak(z,r,b);
          cetak(r,z,tr);
          End;
    '6' : Begin
          exit;
          End;
   End; write('Lanjutkan, tekan sebarang tombol');readln;
   End;
   readkey;
End.

Output Program :



 Selamat belajar.
God bless you all

No comments:

Post a Comment

Silakan memberikan komentar dan pertanyaan yang sifatnya positif.