Archive | February 2012

Perkalian matriks dengan Pascal

Bismillah,

Dibawah ini adalah program untuk melakukan operasi pada matriks. Semoga bermanfaat

Perkalian 2 buah matriks menggunakan bahasa Pascal


program perkalian_matriks;
uses crt;
var
	M1	: array[1..20, 1..20] of longint;
	M2	: array[1..20, 1..20] of longint;
	M3	: array[1..20, 1..20] of longint;
	n	: array[1..2] of integer;
	m	: array[1..2] of integer;
	
	i, j, x, y, k, l	: integer;

begin
	clrscr;
	for k := 1 to 2 do begin
		write('Banyak baris matriks ke-', k, ' : ');
		readln(m[k]);
		write('Banyak kolom matriks ke-', k, ' : ');
		readln(n[k]);
	end;
	if (n[1] <> m[2]) then 
		writeln('Tidak bisa dikalikan!')
	else begin
		writeln('Matriks pertama : ');
		y := 6;
		for i := 1 to m[1] do begin
			x := 8;
			for j := 1 to n[1] do begin
				gotoxy(x,y);
				readln(M1[i,j]);
				x := x + 8;
			end;
			y := y + 1;
		end;

		writeln('Matriks kedua : ');
		y := y + 1;
		for i := 1 to m[2] do begin
			x := 8;
			for j := 1 to n[2] do begin
				gotoxy(x,y);
				readln(M2[i,j]);
				x := x + 8;
			end;
			y := y + 1;
		end;
	
		writeln('Proses perkalian');
		y := y + 1;
		for i := 1 to m[1] do begin
			x := 2;
			for j := 1 to n[2] do begin
				M3[i,j] := 0;
				for l := 1 to n[1] do begin;
					M3[i,j] := M3[i,j] + (M1[i,l] * M2[l,j]);
					gotoxy(x,y);
					write(M1[i,l], ' . ',  M2[l,j]);
					if l < n[1] then begin
						write(' + ');
					end;
					x := x + 12;
				end;
				x := x + 15;
			end;
			y := y + 1;
		end;


		y := y + 1;
		for i := 1 to m[1] do begin
			x := 2;
			for j := 1 to n[2] do begin
				for l := 1 to n[1] do begin;
					gotoxy(x,y);
					write(M1[i,l] * M2[l,j]);
					if l < n[1] then begin
						write(' + ');
					end;
					x := x + 12;
				end;
				x := x + 15;
			end;
			y := y + 1;
		end;

		writeln;
		writeln('Perkalian Matriks : ');
		for i := 1 to m[1] do begin
			for j := 1 to n[2] do
				write(M3[i,j]:8);
			writeln;
		end;
	end;
readln;
end.

perkalian matriks dengan skalar menggunakan bahasa pascal

program perkalian_matriks_dg_skalar;
uses crt;
var
	M1	: array[1..20, 1..20] of integer;
	M2	: array[1..20, 1..20] of integer;
	
	i, j, m, n, x, y, s	: integer;

begin
	clrscr;
	write('Banyak baris : ');
	readln(m);
	write('Banyak kolom : ');
	readln(n);

	writeln('Matriks : ');
	y := 4;
	for i := 1 to m do begin
		x := 8;
		for j := 1 to n do begin
			gotoxy(x,y);
			readln(M1[i,j]);
			x := x + 8;
		end;
		y := y + 1;
	end;

	write('Skalar : ');
	readln(s);

	writeln('Proses perkalian dengan skalar');
	y := 6 + m;
	for i := 1 to m do begin
		x := 8;
		for j := 1 to n do begin
			M2[i,j] := s * M1[i,j];
			gotoxy(x,y);
			write(s, ' . ',  M1[i,j]);
			x := x + 15;
		end;
		y := y + 1;
	end;

	writeln;
	writeln('Penjumlahan Matriks : ');
	for i := 1 to m do begin
		for j := 1 to n do
			write(M2[i,j]:8);
		writeln;
	end;
readln;
end.

Penjumlahan 2 buah matriks dengan bahasa pascal

program penjumlahan_matriks2;
uses crt;
var
	M1	: array[1..20, 1..20] of integer;
	M2	: array[1..20, 1..20] of integer;
	M3	: array[1..20, 1..20] of integer;
	
	i, j, m, n, x, y	: integer;

begin
	clrscr;
	write('Banyak baris : ');
	readln(m);
	write('Banyak kolom : ');
	readln(n);

	writeln('Matriks pertama : ');
	y := 4;
	for i := 1 to m do begin
		x := 8;
		for j := 1 to n do begin
			gotoxy(x,y);
			readln(M1[i,j]);
			x := x + 8;
		end;
		y := y + 1;
	end;

	writeln('Matriks kedua : ');
	y := 5 + m;
	for i := 1 to m do begin
		x := 8;
		for j := 1 to n do begin
			gotoxy(x,y);
			readln(M2[i,j]);
			x := x + 8;
		end;
		y := y + 1;
	end;

	writeln('Proses penjumlahan');
	y := 6 + (2 * m);
	for i := 1 to m do begin
		x := 8;
		for j := 1 to n do begin
			M3[i,j] := M1[i,j] + M2[i,j];
			gotoxy(x,y);
			write(M1[i,j], ' + ',  M2[i,j]);
			x := x + 15;
		end;
		y := y + 1;
	end;

	writeln;
	writeln('Penjumlahan Matriks : ');
	for i := 1 to m do begin
		for j := 1 to n do
			write(M3[i,j]:8);
		writeln;
	end;
readln;
end.

Pengurangan 2 buah matriks dengan bahasa pascal

program pengurangan_matriks2;
uses crt;
var
	M1	: array[1..20, 1..20] of integer;
	M2	: array[1..20, 1..20] of integer;
	M3	: array[1..20, 1..20] of integer;
	
	i, j, m, n, x, y	: integer;

begin
	clrscr;
	write('Banyak baris : ');
	readln(m);
	write('Banyak kolom : ');
	readln(n);

	writeln('Matriks pertama : ');
	y := 4;
	for i := 1 to m do begin
		x := 8;
		for j := 1 to n do begin
			gotoxy(x,y);
			readln(M1[i,j]);
			x := x + 8;
		end;
		y := y + 1;
	end;

	writeln('Matriks kedua : ');
	y := 5 + m;
	for i := 1 to m do begin
		x := 8;
		for j := 1 to n do begin
			gotoxy(x,y);
			readln(M2[i,j]);
			x := x + 8;
		end;
		y := y + 1;
	end;

	writeln('Proses pengurangan');
	y := 6 + (2 * m);
	for i := 1 to m do begin
		x := 8;
		for j := 1 to n do begin
			M3[i,j] := M1[i,j] - M2[i,j];
			gotoxy(x,y);
			write(M1[i,j], ' - ',  M2[i,j]);
			x := x + 15;
		end;
		y := y + 1;
	end;

	writeln;
	writeln('Pengurangan Matriks : ');
	for i := 1 to m do begin
		for j := 1 to n do
			write(M3[i,j]:8);
		writeln;
	end;
readln;
end.

Daftar Pustaka:
Utami, Ema, Dan kawan-kawan. 2007. Struktur Data Konsep & Implementasinya dalam Bahasa C & Free Pascal di GNU/LINUX. Jogjakarta: Graha Ilmu.

Salim, Yeffriansjah. 2011. Modul Praktek Pemprograman Pascal. Banjarmasin: STMIK Indonesia Banjarmasin