A. Ketentuan dan/atau Syarat Program
1. Hanya
dapat digunakan pada koordinat atau titik (x,y) bernilai bulat dan terletak
pada kuadran 1 (bernilai positif).
2. Inputan
koordinat atau titik (x,y) berpola huruf Z .
3. Koordinat
(x1,y1) pada inputan pertama harus lebih kecil (<) dari
koordinat (x1,y1) pada inputan kedua, sehingga bidang persinggungan
yang dapat diperiksa sekaligus dihitung luasnya hanyalah bidang persinggungan
yang terdapat pada sudut kanan atas bidang persegi panjang inputan pertama.
B.
Pseudo-code
Program
Algoritma
Luas Bidang Perpotongan dari Inputan Tentu
Menghitung luas bidang perpotongan dengan memasukkan koordinat x
dan y dari dua bidang persegi panjang yang syarat inputannya sudah dijelaskan sebelumnya.
Deklarasi
koordinat x, koordinat y, panjang, lebar, dan luas bidang persinggungan: integer
periksa_bentuk, periksa_singgung: boolean
Deskripsi
input(koordinat x)
input(koordinat y)
periksa_bentuk ß(x1==x3&&x2==x4&&y1==y2&&y3==y4)&&(y2-y1!=y1-y3)
periksa_singgung ß (x12==x11
s/d x12)&&(y1==y21 s/d y23)
panjang ßx12-x23
lebar ß y12-y23
luas ß panjang * lebar
output(luas)
C. Program
import java.util.Scanner;
public class Tes2 {
public static int
[]inX(){
int koorx[]=new int[4];
Scanner
in= new Scanner(System.in);
for (int s=0;s<koorx.length;s++){
System.out.print("Koordinat
X"+(s+1)+" : ");
koorx[s]=in.nextInt();
}
return koorx;
}
public static int
[]inY(){
int koory[]=new int[4];
Scanner
in=new Scanner(System.in);
for (int s=0;s<koory.length;s++){
System.out.print("Koordinat
Y"+(s+1)+" : ");
koory[s]=in.nextInt();
}
return koory;
}
public static boolean
periksa_bentuk(int a[], int b[]){
boolean form=false;
if((a[0]==a[2]&&a[1]==a[3])&&(b[0]==b[1]&&b[2]==b[3])&&(a[1]-a[0]!=b[0]-b[2])){
form=true;
}
if(form){
System.out.println("Persegi
Panjang");
}else{
System.out.println("Bukan
Persegi Panjang");
}
return form;
}
public static boolean
periksa_singgung(int a[], int b[], int c[], int d[]){
boolean form=false;
for(int k=a[0];k<=a[1];k++){
if(c[0]==k){
for(int l=d[0];l>=d[2];l--){
if(b[0]==l){
form=true;
}
}
}
}
if(form){
System.out.println("Bersinggungan");
}else{
System.out.println("Tidak
Bersinggungan");
}
return form;
}
public static void
main(String[] args)
{//
TODO Auto-generated method stub
int enX[]=inX();
int enY[]=inY();
boolean form1=periksa_bentuk(enX,enY);
if(form1){
System.out.println("Input
Koordinat Persegi ke 2");
int enX2[]=inX();
int enY2[]=inY();
boolean form2=periksa_bentuk(enX2,enY2);
if(form2){
periksa_singgung(enX,enY,enX2,enY2);
int p[]=new int[4];
int q[]=new int[4];
p[0]=p[2]=enX2[2];
p[1]=p[3]=enX[1];
q[0]=q[1]=enY[1];
q[2]=q[3]=enY2[2];
int panjang=p[1]-p[0];
int lebar=q[0]-q[2];
System.out.println("Luas:
"+panjang*lebar);
}
}
}
}
Keterangan
Program:
1.
Method Input
Method
input terbagi menjadi 2 yaitu, method input untuk koordinat x ([] inX) dan
method input untuk koordinat y ([] inY). Kedua method tersebut merupakan method
dengan nilai balik bertipe data integer, sehingga nilai inputannya dapat
digunakan dalam operasi aritmatika pada perhitungan luas bidang persinggungan.
2.
Method Periksa
Method
periksa terbagi menjadi 2 yaitu, method pemeriksa bentuk (periksa_ bentuk) dan
method pemeriksa singgung (periksa_singgung). Kedua method tersebut merupakan
method dengan nilai balik yang bertipe data boolean dan memiliki parameter
masing-masing 2 dan 4 parameter, sehingga nilai true atau false
variabelnya dapat digunakan sebagai proses pemeriksaan apakah program dapat
digunakan atau dijalankan ke proses atau tahap selanjutnya.
0 komentar:
Posting Komentar