Kamis, 05 Januari 2012

Listing Fungsi

import java.io.*;
import java.util.Scanner; //kode ini digunakan untuk meload library scanner.
                          //Library ini memiliki fungsi salah satunya untuk fungsi menerima inout dari user (input keyboard)
public class fungsi
{
   
    public static void main (String args[]) throws Exception{
    Scanner input = new Scanner(System.in); //Untuk menjalankan objek scanner (input) dengan nama alias input)
    int anggotaA;
    int anggotaB;
   

    //masukkan anggota a
    System.out.print("\nmasukan Banyaknya AnggotaA : ");
   
    anggotaA = input.nextInt();
    //perintah ini akan meminta input dari user ketika program dijalankan. input tersebut
    //nantinya akan dimasukkan ke dalam variabel anggotaA. Tapi ingat, tipe data anggotaA adalah integer, sehingga bilangan yang bisa diinputkan
    //adalah bilangan integer.
   
    int [] a = new int [anggotaA];
    System.out.println("Masukkan AnggotaA : ");
    for(int i=0 ; i <= anggotaA - 1 ; i++)
        {
         int L = i + 1;
         System.out.print("Elemen ke-["+L+"] :");
         a[i] = input.nextInt();
        }
    //variabel i diberi nilai 0, kemudian, nilai i lebih besar dari anggotaA - 1 dan nilai i akan bertambah
    //misalnya jumlah anggota A adalah 2, maka nilai dari i adalah 1 karena anggotaA-1 yaitu 2-1,
    //tapi jumlahnya tetap sama yaitu 2, karena variabel 1 dimulai dengan 0, dan nilai
    //i akan bertambah 1 yaitu i++
   
    //masukkan anggota b
    System.out.print("\nmasukkan banyaknya AnggotaB : ");
    anggotaB = input.nextInt();
    int [] b = new int [anggotaB];
    System.out.println("Masukkan AnggotaB : ");
    for(int i=0 ; i <= anggotaB - 1 ; i++)
        {
         int L = i + 1;
         System.out.print("Elemen ke-["+L+"] :");
         b[i] = input.nextInt();
        }
    System.out.println("\n");
   
   
    //tampil anggota a
    System.out.print("Anggota Himpunan A = { ");
    for(int i=0;i<=anggotaA - 1;i++){
    System.out.print(a[i]+"   ");
    }
    System.out.println("}");
   
    //tampil anggota b
    System.out.print("Anggota Himpunan B = { ");
    for(int i=0;i<=anggotaB - 1 ;i++)
        {
    System.out.print(b[i]+ "  ");
        }
    System.out.println("}");
   
       
    //relasi   
    int jumlahAB = anggotaA + anggotaB;
    String[] e = new String[jumlahAB];
    System.out.print("masukkan banyaknya relasi : " );
    int banyak = input.nextInt();
    char[] f = new char[banyak]; //array domain
    char[] g = new char[banyak]; //array kodomain
    char[] d = new char[banyak]; //array range
       
    System.out.println("inputkan dengan cara  A,B ");
    DataInputStream bl = new DataInputStream(System.in);
    //int nb=0;
    try{

    for(int i=0;i<=banyak-1;i++)
    {
    e[i] = bl.readLine();
    }
   
    //mengambil karakter   
    for(int i=0;i<=banyak-1;i++)
        {
        e[i].getChars(0,1,f,i); // posisi awal, posisi akhir, tempat menyimpan, Posisi indeks pertama untuk menyimpan karakter pertama dalam integer
        e[i].getChars(2,3,g,i);
        }
    }catch (Exception ex) { System.out.println("ada kesalahan " );}

   
   
    //cek fungsi
    boolean cek1=false;
    boolean cek2=false;
    boolean cek3=false;
    for(int i=0;i<=banyak-1;i++)        /*dikatakan fungsi apabila anggota domain hanya mempunyai tepat 1 pasangan pada kodomain,
                                          maka dapat disimpulkan apabila domain memiliki pasangan lebih dari satu maka dia bukan fungsi,
                                          logikanya jika ditemukan nilai yg sama pada domain, maka bukan fungsi dan kemudian akan memberikan
                                          value untuk varibel cek1 adalah true*/
    {                              
    for(int j=i+1;j<=banyak-1;j++)    
        {                             
        if(f[i]==f[j])                
            cek1=true;                
            break;                    
        }                         
    }                             
   
    for(int i=0;i<=banyak-1;i++)        /* meindikasikan fungsi pada, logikanya , jika ditemukan nilai yang sama pada kodomain maka dia fungsi pada*/    
       {
        for(int j=i+1;j<=banyak-1;j++)
            {
            if(g[i]==g[j])
                cek2=true;
                break;
            }
        }

           
            if((cek1==true)||(banyak!=anggotaA))
            {
            System.out.println("\nnilai yang diinputkan adalah bukan fungsi");
            cek3=true;   /* variabel ini digunakan untuk mengindikasikan pencetakan range dan domain, jika nilai bernilai "TRUE" maka
                            tidak akan dilakukan pencetakan nilai range dan domain*/
            }
           
            else
            {
              System.out.println("nilai yang diinputkan adalah fungsi");
              if (cek2==true)
              {System.out.println("merupakan fungsi pada");}
              else
              System.out.println("merupakan fungsi satu-satu");
            }
        
       
        if(cek3!=true)  // kondisi untuk dilakukan pencetakan range dan domain iya atau tidak
       
        {
        //Range
        int x=0;
        System.out.print("\nRange = { ");
        for(int i=0;i<=banyak-1;i++)
            {
            for( int j=i+1;j<=banyak-1;j++)
                {
                 if(g[i]==g[j])
                 ++i;
                }
            d[x]=g[i];
            x++;
            }
       
            for (int i=0;i<x;i++ )
            {
                System.out.print(d[i]+"  ");
            }

            System.out.println("}");
       

       
        //domain
         System.out.print("Domain = { ");
         for(int i=0;i<=anggotaA-1;i++){
         System.out.print(a[i]+"   ");
         }
         System.out.println("}");

        }
       
    }
}

Tidak ada komentar:

Posting Komentar