Sabtu, 18 Januari 2014

LA MATIF PERT 3 (FUNGSI)

import java.util.Scanner;

public class Fungsii {
       int[] HimpunanA;
       int[] HimpunanB;
       int[] HimpunanRelasi;
       int[] HimpunanAsal;
       int jmlHimpunanA, jmlHimpunanB, jmlRelasi;
  Scanner input=new Scanner(System.in);

       public static void main(String args[]){
             Fungsi madhun = new Fungsi();
             madhun.inputAnggota();
             madhun.cetakHimpunan();
             madhun.inputRelasi();
             madhun.cekFungsi();
             madhun.cetakRelasi();
       }
       public void inputAnggota(){
              System.out.print("Masukkan Jumlah Himpunan A = ");
              jmlHimpunanA =input.nextInt();
             
              HimpunanA=new int[jmlHimpunanA];
              for(int i = 0;i<= (jmlHimpunanA-1);i++){
                      System.out.print("Himpunan A yang ke "+ (i+1)+" : ");
                      HimpunanA[i]=input.nextInt();
              }
             

              System.out.print("Masukkan Jumlah Himpunan B = ");
              jmlHimpunanB = input.nextInt();
              HimpunanB = new int[jmlHimpunanB];
              for(int i = 0;i<= (jmlHimpunanB-1);i++){
                      System.out.print("Himpunan B yang ke "+ (i+1) +" : ");
                      HimpunanB[i]=input.nextInt();
              }

       }
       public void cetakHimpunan(){
              System.out.print("Anggota Himpunan A = { ");
              for (int i = 0;i<=(jmlHimpunanA-1);i++){
                  System.out.print(HimpunanA[i]+ " ");
              }
              System.out.println("} ");
             
              System.out.print("Anggota Himpunan B = { ");
              for (int i = 0;i<=(jmlHimpunanB-1);i++){
                  System.out.print(HimpunanB[i]+ " ");
              }
              System.out.println("} ");
       }
       public void inputRelasi(){
              int jmlRelasiMaks = jmlHimpunanA * jmlHimpunanB;
              System.out.println("Relasi Maksimal Adalah "+jmlRelasiMaks);
              System.out.print(" ");

              do{
                  System.out.print("Masukan Jumlah Relasi yang Terjadi : ");
                  jmlRelasi = input.nextInt();
              }while(jmlRelasi>jmlRelasiMaks);
           
              HimpunanRelasi = new int[jmlRelasi];
              HimpunanAsal = new int[jmlRelasi];
              System.out.println("Masukkan Relasi yang Terjadi :");
              for(int i=0; i<=(jmlRelasi-1);i++){

                 int[] temp=new int[jmlRelasi];
                 int[] temp2 = new int[jmlRelasi];
                 boolean SamaA = false;
                 boolean SamaB = false;

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

                    for (int j= 0; j<=(jmlHimpunanA-1);j++){
                        if(temp[i]==HimpunanA[j]){
                           SamaA=true;
                        }
                    }

                    for (int k= 0; k<=jmlHimpunanB-1;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){
                        HimpunanRelasi[i]=temp2[i];
                        HimpunanAsal[i]=temp[i];
                    }

                 }while(SamaA==false || SamaB==false);
                 }
        }
        public void cekFungsi(){
             
               int jumlahAnggota = 0;
               boolean adaSama = false;

               for(int i =0;i<=(jmlHimpunanA-1);i++){
                       for(int j=0;j<=(jmlRelasi-1);j++){

                            if(HimpunanA[i]==HimpunanAsal[j]){
                                jumlahAnggota++;
                            }
                       }
               }
             

               for(int i = 0;i<=(jmlRelasi-1);i++){
                       for(int j=i+1;j<=(jmlRelasi-1);j++){
                        if(HimpunanAsal[i]==HimpunanAsal[j]){
                           adaSama=true;
                           }
                       }
               }
             
               if(jumlahAnggota==jmlHimpunanA && adaSama == false){
                System.out.println("Relasi yang diInput adalah Fungsi");
               }else {
                System.out.println("Relasi yang di input Bukan Fungsi hanya relasi biasa");
               }
        }

        public void cetakRelasi(){
         System.out.print("Daerah Domain = { ");
              for(int i=0;i<=jmlHimpunanA-1;i++){
                System.out.print(HimpunanA[i]+" ");
              }
              System.out.println("}");

              System.out.print("Daerah Kodomain { ");
              for(int i=0;i<=jmlHimpunanB-1;i++){
                System.out.print(HimpunanB[i]+ " ");
              }
              System.out.println("}");
              System.out.print("Daerah range adalah : { ");
              for(int i= 0;i<= jmlRelasi-1;i++){
                      boolean adaSama=false;
                      for (int j = i+1;j<=jmlRelasi-1;j++){
                          if(HimpunanRelasi[i]==HimpunanRelasi[j])
                           adaSama=true;
                      }
                   if(adaSama==false)System.out.print(HimpunanRelasi[i]+" ");
              }
              System.out.println("}");
        }

}

Tidak ada komentar:

Posting Komentar