Program Penjumlahan Matriks Dengan Menggunakan Prosedur

Bentuk dari program terstruktur jelas nampak dalam program yang cukup besar, mis Program Matriks karena ada proses yang sama yang selalu berulang kali dilakukan. Terstruktur karena prosedur atau fungsi tampak berurutan susunannya dari atas ke bawah dalam bentuk sub program yang lebih sederhana.

Dalam prosedur dan fungsi, array harus dideklarasikan sebagai sebuah tipe data karena parameter formal pada header prosedur dan fungsi tidak mengenal deklarasi array dengan cara yang biasa digunakan.

Membuat Tipe Data

Cara biasa :    Var  A : array [1..10,1..10] of  integer;
 Membuat  tipe data   :    type matrix = array [1..10,1..10] of integer;

Matrix adalah nama tipe dari array[1..10,1..10] of  integer, sehingga deklarasi variabel A menjadi :

Var  A : matrix;

Prosedur dalam program :

1.    Prosedur ORDO: untuk melakukan input ordo/ukuran matriks A dan B.
2.    Prosedur input : digunakan untuk melakukan proses input data matriks A dan B
3.    Prosedur Hitung  : Untuk menghitung matriks C = A + B dan D = B - A.
4.    Prosedur Cetak : Untuk mencetak matrik A, B, C dan D
5.    Program utama : Untuk memanggil prosedur.

Listing program adalah sebagai berikut :

PROGRAM HITUNG_MATRIKS;
USES crt;

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

{Prosedur Input Ukuran/Ordo Matrix A dan B}
PROCEDURE ORDO(var m,n:integer);
Begin
    clrscr;
    writeln('Tentukan Ordo/Ukuran Matrix ');
    write('Jumlah Baris : ');  readln(m);
    write('Jumlah Kolom : ');  readln(n);
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 Hitung}
Procedure Hitung (x,y:integer; a,b :matrix;var c,d :matrix);

Begin
         for i:=1 to x do
             Begin
                for j:=1 to y do
                   Begin
                         c[i,j] := a[i,j] + b[i,j];  {C  = A + B}
                         d[i,j] := a[i,j] - b[i,j];   {D = A – B}
                   End;
             End;
End;

{Procedure Cetak}
Procedure Cetak(x,y : integer; m : matrix);
var i,j:integer;
 Begin
         Writeln;
         for i:=1 to x do
             begin
                for j:=1 to y do
                    write(M[i,j],'  ');
                    writeln;
             end;
             writeln;
End;

{Program Utama}
var x,y    : integer;
    a,b,c,d: matrix;
Begin
  ordo(x,y);
  input(x,y,a);
  input(x,y,b);
  Hitung (x,y,a,b,c,d);
 
  Writeln;  writeln('Matriks A');
  cetak(x,y,a); {Cetak Matriks A}
  writeln;  writeln('Matriks B');
  cetak(x,y,b); {Cetak Matriks B}
  writeln;   writeln('Matriks C');
  cetak(x,y,c); {Cetak Matriks C}
  writeln;   writeln('Matriks D');
  cetak(x,y,d); {Cetak Matriks D}
  readkey;
End.

Penjelasan Program:

Tipe data matrix dan variable i, j dideklarasikan di awal program sebagai variable global karena akan digunakan dalam semua prosedur.

Prosedur ORDO melakukan input ukuran matrks m dan n kemudian hasilnya dikirim ke dalam program utama yang diterima oleh variable x dan y. Oleh karena itu ke 4 variabel harus mempunyai tipe yang sama.

Prosedur INPUT berfungsi melakukan input data matriks A dan B. Prosedur menerima nilai ordo matriks lewat variable x dan y ketika dipanggil dari program utama. Variable x dan y dalam prosedur input dan dalam program utama, namanya sama tetapi tidak saling mengenal karena bersifat variable lokal. Data matriks disimpan ke dalam variabel M dan hasilnya dikirim ke dalam program utama. Ketika menginput data matriks A, hasilnya ke program utama yang diterima oleh var a sedangkan untuk data matriks B diterima oleh variable b.

Prosedur HITUNG menerima ukuran matriks dan data matriks A dan B untuk dihitung kemudian mengirim hasil perhitungan C dan D dikirim ke dalam program utama.

Prosedur CETAK menerima ukuran matriks dan hanya satu data matrik untuk dicetak. Prosedur dipanggil sebanyak 4 kali karena ada 4 buah matriks yang dicetak yaitu A, B, C, dan D.

Jika dibandingkan dengan program penjumlahan matrik sebelumnya, maka program penjumlahan matriks dengan menggunakan prosedur menjadi lebih ringkas dan sederhana.

Dalam program di atas, kita dapat melihat bahwa sebuah prosedur CETAK  dapat digunakan 4 kali yaitu untuk mencetak 4 buah matriks yaitu matriks A, B, C, dan D dengan cara memanggil 4 kali dan mengirim nilai lewat variable aktual sesuai dengan data dari tiap matriks. Perhatikan cara memanggil prosedur cetak dalam program utama.

Dengan memahami cara kerja prosedur dalam perjumlahan dan pengurangan matriks maka anda dapat mengembangkan lagi ke kasus program perkalian matriks yang memiliki logika dan konsep yang lebih kompleks.

Semoga bermanfaat.
God bless you all.



Tidak ada komentar:

Posting Komentar

Silakan memberikan komentar dan pertanyaan yang sifatnya positif.