Sabtu, 18 Januari 2014

LA MATIF PERT 2 (Relasi)

import java.util.*;
public class Relasi{
       int[] himpunanA= new int[100];
       int[] himpunanB= new int[100];
       int[] himpunanHasil = new int[100];
       int jumlahAnggotaA;
       int jumlahAnggotaB;
       int jumlahRelasi;
 
  Scanner input = new Scanner(System.in);

       public static void main(String args[]){
           Relasi A = new Relasi();
           A.inputAnggota();
           A.inputRelasi();
           A.cetakRelasi();
       }
       public void inputAnggota(){
              System.out.print("Masukkan Jumlah Anggota Himpunan A : ");
              jumlahAnggotaA = Integer.parseInt(input.next());

              System.out.println("Anggota Himpunan A");
              for(int i=1;i<=jumlahAnggotaA;i++){
                      System.out.print("Anggota "+i+" : ");
                      himpunanA[i]=Integer.parseInt(input.next());
              }

              System.out.print("Masukkan Jumlah Anggota Himpunan B : ");
              jumlahAnggotaB = Integer.parseInt(input.next());

              System.out.println("Anggota Himpunan B");
               for(int i=1;i<=jumlahAnggotaB;i++){
                      System.out.print("Anggota "+i+" : ");
                      himpunanB[i]=Integer.parseInt(input.next());
              }
       }


       public void inputRelasi(){
              int jmlRelasiMaks = jumlahAnggotaA*jumlahAnggotaB;
              System.out.println("Banyak Relasi maksimal yang terjadi Adalah : "+ jmlRelasiMaks);

              do{
                 System.out.print("Masukkan Jumlah Relasi terjadi : ");
                 jumlahRelasi = Integer.parseInt(input.next());
              }while(jumlahRelasi>jmlRelasiMaks);

              System.out.println("Masukkan Relasi yang Terjadi :");
              for(int i=1; i<=jumlahRelasi;i++){
                 int temp[]=new int[100];
                 int temp2[] = new int[100];
                 boolean SamaA = false;
                 boolean SamaB = false;

                 System.out.println("Relasi ke "+i+" : ");
                 do{
                    System.out.print("Masukkan Asal A : ");
                    temp[i]=Integer.parseInt(input.next());
                    System.out.print("Masukkan Tujuan B: ");
                    temp2[i]=Integer.parseInt(input.next());

                    for (int j= 1; j<=jumlahAnggotaA;j++){
                        if(temp[i]==himpunanA[j]){
                           SamaA=true;
                        }
                    }

                    for (int k= 1; k<=jumlahAnggotaB;k++){
                        if(temp2[i]==himpunanB[k]){
                           SamaB=true;
                        }
                    }
                    if(SamaA==false || SamaB==false){
                        System.out.println("Anggota Himpunan Tidak terdapat dihimpunan A atau B");
                    }

                   if(SamaA==true && SamaB==true){
                        himpunanHasil[i]=temp2[i];
                    }

                 }while(SamaA==false || SamaB==false);
                 }
       }
       public void cetakRelasi(){
              System.out.print("Daerah Domain = { ");
              for(int i=1;i<=jumlahAnggotaA;i++){
                System.out.print(himpunanA[i]+" ");
              }
              System.out.println("}");

              System.out.print("Daerah Kodomain { ");
              for(int i=1;i<=jumlahAnggotaB;i++){
                System.out.print(himpunanB[i]+ " ");
              }
              System.out.println("}");
              System.out.print("Daerah range adalah : { ");
              for(int i= 1;i<= jumlahRelasi;i++){
                   System.out.print(himpunanHasil[i]+ " ");
              }
              System.out.println("}");
       }
}

Tidak ada komentar:

Posting Komentar