Rabu, 05 Januari 2011

Listing Relasi

import javax.swing.*;

public class Relasi {

 String [] HimpunanA;
 String [] HimpunanB;
 String [] HimpunanRelasi;
 String [] HimpunanAsal;
 int jmlHimpunanA, jmlHimpunanB, jmlRelasi;


 public void inputAnggota(){
 String strA = JOptionPane.showInputDialog(null, "Masukkan Jumlah Himpunan A !", "Fungsi"
 +" ", JOptionPane.QUESTION_MESSAGE);
 jmlHimpunanA = Integer.parseInt(strA);

 HimpunanA = new String[jmlHimpunanA];
 for(int i=0; i<=(jmlHimpunanA-1); i++){
 HimpunanA[i] = JOptionPane.showInputDialog(null, "" +
 "Himpunan A yang ke "+(i+1)+"/"+jmlHimpunanA+" : ", "Fungsi", JOptionPane.QUESTION_MESSAGE);
 }

 String strB = JOptionPane.showInputDialog(null, "Masukkan Jumlah Himpunan B !", "Fungsi"
 +" ", JOptionPane.QUESTION_MESSAGE);
 jmlHimpunanB = Integer.parseInt(strB);

 HimpunanB = new String[jmlHimpunanB];
 for(int i=0; i<=(jmlHimpunanB-1); i++){
 HimpunanB[i] = JOptionPane.showInputDialog(null, "" +
 "Himpunan B yang ke "+(i+1)+"/"+jmlHimpunanB+" : ", "Fungsi", JOptionPane.QUESTION_MESSAGE);
 }
 }
 public String cetakHimpunan(){
 StringBuffer sbuff = new StringBuffer();
 sbuff.append("Anggota Himpunan A = { ");
 for (int i=0; i<=(jmlHimpunanA-1); i++){
 sbuff.append(HimpunanA[i]+" ");
 }
 sbuff.append("} \n");
 sbuff.append("Anggota Himpunan B = { ");
 for(int i=0; i<=(jmlHimpunanB-1); i++){
 sbuff.append(HimpunanB[i]+" ");
 }
 sbuff.append("} \n");
 return sbuff.toString();
 }

 public void inputRelasi(){
 int jmlRelasiMaks = jmlHimpunanA * jmlHimpunanB;
 do{
 String relasi = JOptionPane.showInputDialog(null, "Relasi Maksimal adalah "+jmlRelasiMaks+ ""+
 "\nMasukkan Jumlah Relasi yang Terjadi : ", "Fungsi", JOptionPane.QUESTION_MESSAGE);
 jmlRelasi = Integer.parseInt(relasi);
 }while(jmlRelasi>jmlRelasiMaks);

 HimpunanRelasi = new String[jmlRelasi];
 HimpunanAsal = new String[jmlRelasi];
 for(int i=0; i<=(jmlRelasi-1); i++){

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

 do{
 temp[i] = JOptionPane.showInputDialog(null, cetakHimpunan()+"Relasi ke "+(i+1)+"/"+jmlRelasi+
 "\nMasukkan Asal A : ", "Fungsi", JOptionPane.QUESTION_MESSAGE);
 temp2[i] = JOptionPane.showInputDialog(null, cetakHimpunan()+"Relasi ke "+(i+1)+"/"+jmlRelasi+
 "\nMasukkan Tujuan B : ", "Fungsi", JOptionPane.QUESTION_MESSAGE);

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

 for(int k=0; k<=(jmlHimpunanB-1); k++){
 if(temp2[i].equals(HimpunanB[k])){
 SamaB=true;
 }
 }

 if(SamaA==false || SamaB==false){
 JOptionPane.showMessageDialog(null, "Anggota Himpunan Tidak Terdapat di Himpunan"+
 "A atau B", "Fungsi", JOptionPane.ERROR_MESSAGE);
 }

 if(SamaA==true && SamaB==true){
 HimpunanRelasi[i]=temp2[i];
 HimpunanAsal[i]=temp[i];
 }

 }while(SamaA==false || SamaB==false);
 }

 }
 public String 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].equals(HimpunanAsal[j])){
 jumlahAnggota++;
 }
 }
 }

 for(int i=0; i<=(jmlRelasi-1); i++){
 for(int j=i+1; j<=(jmlRelasi-1); j++){
 if(HimpunanAsal[i].equals(HimpunanAsal[j])){
 adaSama=true;
 }
 }
 }

 if(jumlahAnggota == jmlHimpunanA && adaSama == false){
 return "Relasi yang Diinput adalah Fungsi\n";
 }else {
 return "Relasi yang Diinput Bukan Fungsi namun hanya Relasi Biasa\n";
 }
 }

 public void cetakRelasi(){
 StringBuffer strbuff = new StringBuffer();
 strbuff.append("Daerah Domain : { ");
 for(int i=0; i<=(jmlHimpunanA-1); i++){
 strbuff.append(HimpunanA[i]+" ");
 }
 strbuff.append("} \n");

 strbuff.append("Daerah Kodomain : { ");
 for(int i=0; i<=(jmlHimpunanB-1); i++){
 strbuff.append(HimpunanB[i]+" ");
 }
 strbuff.append("} \n");

 strbuff.append("Daerah Range : { ");
 for(int i=0; i<=(jmlRelasi-1); i++){
 boolean adaSama=false;
 for(int j=i+1; j<=(jmlRelasi-1); j++){
 if(HimpunanRelasi[i].equals(HimpunanRelasi[j])){
 adaSama=true;
 }
 }
 if(adaSama==false){strbuff.append(HimpunanRelasi[i]+" ");}
 }
 strbuff.append("} \n");
 JOptionPane.showMessageDialog(null, strbuff.toString()+cekFungsi()+
 "", "Fungsi", JOptionPane.INFORMATION_MESSAGE);
 }

 public static void main(String args[]){
 Relasi test = new Relasi();
 test.inputAnggota();
 test.inputRelasi();
 test.cetakRelasi();
 }
}

0 komentar:

Posting Komentar

By :
Free Blog Templates