Anda di halaman 1dari 4

%***************************************%

%---PROGRAM RELASI ANTAR SEGMEN GARIS---%


%***************************************%
%INPUT:
%Input dari program ini adalah koordinat titik dari pembangun empat
segmen
%garis
%OUTPUT:
%Output dari program ini adalah relasi-relasi yang terjadi, yaitu
sebanyak
%enam kemungkinan relasi dan output tambahannya adalah gambar dari
keempat
%segmen garis
%RELASI
%1. Segmen
%2. Segmen
%3. Segmen
%4. Segmen
%5. Segmen
%6. Segmen
%7. Segmen
%8. Segmen

garis
garis
garis
garis
garis
garis
garis
garis

i
i
i
i
i
i
i
i

berimpit dengan segmen garis j


segaris dengan segmen garis j
hanya sejajar dengan segmen garis j
bersentuhan tegak lurus dengan segmen garis j
bersentuhan dengan segmen garis j
berpotongan tegak lurus dengan segmen garis j
berpotongan dengan segmen garis j
tidak berpotongan dengan segmen garis j

%Program ini dibuat untuk memenuhi tugas matakuliah GEOMETRI ALGORITMIK


%Jurusan matematika fakultas MIPA.
%OLEH KELOMPOK 1
%ABDUH RISKI (071810101005)
%REFI AINURROFIQ (071810101100)
%SORAYA RACHMAWATI (071810101037)
%PROGRAM INI DAPAT BERFUNGSI DENGAN BAIK JIKA MENGGUNAKAN MATLAB 7.4
%TETAPI JUGA TIDAK MASALAH JIKA MENGGUNAKAN VERSI DIBAWAHNYA........

clear all;
close all;
clc;
warning off MATLAB:m_warning_end_without_block;
disp('
KELOMPOK 1
')
disp('MASUKKAN TITIK-TITIK PEMBANGUN SEGMEN GARIS!')
%masukkan input 8 titik untuk 4 segmen garis
disp('Segmen garis 1');
x(1) = input('Titik x1 : ');
y(1) = input('Titik y1 : ');
x(2) = input('Titik x2 : ');
y(2) = input('Titik y2 : ');
disp('Segmen garis 2');
x(3) = input('Titik x3 : ');

y(3) = input('Titik y3 :
x(4) = input('Titik x4 :
y(4) = input('Titik y4 :
disp('Segmen garis 3');
x(5) = input('Titik x5 :
y(5) = input('Titik y5 :
x(6) = input('Titik x6 :
y(6) = input('Titik y6 :
disp('Segmen garis 4');
x(7) = input('Titik x7 :
y(7) = input('Titik y7 :
x(8) = input('Titik x8 :
y(8) = input('Titik y8 :
disp('Segmen garis 5');
x(9) = input('Titik x9 :
y(9) = input('Titik y9 :
x(10) = input('Titik x10
y(10) = input('Titik y10
a1=[x(1)
b1=[y(1)
a2=[x(3)
b2=[y(3)
a3=[x(5)
b3=[y(5)
a4=[x(7)
b4=[y(7)
a5=[x(9)
b5=[y(9)

');
');
');
');
');
');
');
');
');
');
');
');
');
: ');
: ');

x(2)];
y(2)];
x(4)];
y(4)];
x(6)];
y(6)];
x(8)];
y(8)];
x(10)];
y(10)];

m=[0 0 0 0 0];
for i=1:5
if x(2*i)==x(2*i-1)
m(i)=1000000000000000000000000000000;
else
m(i)=(y(2*i)-y(2*i-1))/(x(2*i)-x(2*i-1));
end
end
fprintf('\n');
fprintf('\n');
disp('-----------------------------------------------------------');
disp('
RELASI YANG TERJADI
');
disp('-----------------------------------------------------------');
for j=1:3
for k=j+1:4
f=(x(2*k-1)-x(2*j-1))*(y(2*j)-y(2*j-1))-(y(2*k-1)-y(2*j1))*(x(2*j)-x(2*j-1));
g=(x(2*k)-x(2*j-1))*(y(2*j)-y(2*j-1))-(y(2*k)-y(2*j-1))*(x(2*j)x(2*j-1));

p=(x(2*j-1)-x(2*k-1))*(y(2*k)-y(2*k-1))-(y(2*j-1)-y(2*k1))*(x(2*k)-x(2*k-1));
q=(x(2*j)-x(2*k-1))*(y(2*k)-y(2*k-1))-(y(2*j)-y(2*k-1))*(x(2*k)x(2*k-1));
XY1=[x(2*j-1) y(2*j-1) x(2*j) y(2*j)];
XY2=[x(2*k-1) y(2*k-1) x(2*k) y(2*k)];
out = fungsiRelasiSegmen(XY1,XY2);
if out.segmenParalel==1
if f==0 && g==0 && p==0 && q==0
if ((x(2*k-1)<=x(2*j-1)&&x(2*k-1)>=x(2*j))||(x(2*k1)>=x(2*j-1)&&x(2*k-1)<=x(2*j)))&&((y(2*k-1)<=y(2*j-1)&&y(2*k1)>=y(2*j))||(y(2*k-1)>=y(2*j-1)&&y(2*k-1)<=y(2*j)))
if (x(2*k)==x(2*j)&&y(2*k)==y(2*j))||(x(2*k1)==x(2*j-1)&&x(2*k-1)==x(2*j-1))
disp(['Segmen garis ' num2str(j) ' sama dengan
segmen garis ' num2str(k)]);
else
disp(['Segmen garis ' num2str(j) ' berimpit
dengan segmen garis ' num2str(k)]);
end
else
disp(['Segmen garis ' num2str(j) ' segaris dengan
segmen garis ' num2str(k)]);
end
else
disp(['Segmen garis ' num2str(j) ' hanya sejajar dengan
segmen garis ' num2str(k)]);
end
else
if out.segmenBerpotongan==1
if f==0 || g==0 || p==0 || q==0
if m(j)*m(k)==-1 || (m(j)*m(k)==0 && (x(2*j)==x(2*j-1)
|| x(2*k)==x(2*k-1)))
disp(['Segmen garis ' num2str(j) ' bersentuhan
tegak lurus dengan segmen garis ' num2str(k)]);
else
disp(['Segmen garis ' num2str(j) ' bersentuhan
dengan segmen garis ' num2str(k)]);
end
else
if m(j)*m(k)==-1 || (m(j)*m(k)==0 && (x(2*j)==x(2*j-1)
|| x(2*k)==x(2*k-1)))
disp(['Segmen garis ' num2str(j) ' berpotongan
tegak lurus dengan segmen garis ' num2str(k)]);
else
disp(['Segmen garis ' num2str(j) ' berpotongan
dengan segmen garis ' num2str(k)]);
end
end
else
disp(['Segmen garis ' num2str(j) ' tidak berpotongan
dengan segmen garis ' num2str(k)]);

end
end
end
end
disp('-----------------------------------------------------------');
fprintf('\n');
fprintf('\n');
disp('Tekan ENTER untuk menampilkan gambar segmen garis');
pause;
hold on;
plot(a1,b1,'r',a2,b2,'g',a3,b3,'b',a4,b4,'k','linewidth',2); %segmen 1
merah, segmen 2 hijau, segmen 3 biru, segmen 4 hitam
hold off;
xlabel('sumbu x');
ylabel('sumbu y');
legend('segmen 1','segmen 2','segmen 3','segmen 4');
grid on;
title('RELASI ANTAR SEGMEN GARIS','fontsize',15);