Kamis, 26 Mei 2016

MENGHITUNG LUAS BIDANG PERSINGGUNGAN DARI DUA PERSEGI PANJANG



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.


Related Posts:

0 komentar:

Posting Komentar