Minggu, 02 Desember 2012

himpunan pada java


HIMPUNAN
LISTING:
import java.util.Scanner;
public class himp{
       Scanner input = new Scanner(System.in);
       int[] himpunanA= new int[100];
       int[] himpunanB= new int[100];
       int jumlahAnggotaA;
       int jumlahAnggotaB;
       public void dataAnggota() {
           System.out.print("Masukkan Jumlah Anggota Himpunan A : ");
              jumlahAnggotaA = input.nextInt();
              System.out.println("Anggota Himpunan A");
              for(int i=1;i<=jumlahAnggotaA;i++){
                      System.out.print("Anggota "+i+" : ");
                      himpunanA[i]=input.nextInt();
              }
              System.out.print("Masukkan Jumlah Anggota Himpunan B : ");
              jumlahAnggotaB = input.nextInt();
              System.out.println("Anggota Himpunan B");
               for(int i=1;i<=jumlahAnggotaB;i++){
                      System.out.print("Anggota "+i+" : ");
                      himpunanB[i]=input.nextInt();
              }
       }
       public void tampilAnggota(){
              System.out.print("Anggota Himpunan A = { ");
              for(int i=1;i<=jumlahAnggotaA;i++){
                System.out.print(himpunanA[i]+"   ");
              }
              System.out.println("}");
              System.out.print("Anggota Himpunan B = { ");
              for(int i=1;i<=jumlahAnggotaB;i++){
                System.out.print(himpunanB[i]+ "  ");
              }
              System.out.println("}");
       }
       public void himpunanGabungan(){
          System.out.print("Himpunan Gabungan A U B : { ");
          for(int i=1;i<=jumlahAnggotaA;i++){
                System.out.print(himpunanA[i]+" ");
              }
          for( int i=1;i<=jumlahAnggotaB;i++){
              boolean adaSama = false;
              for(int j=1;j<=jumlahAnggotaA;j++){
                     if(himpunanB[i]==himpunanA[j])
                            adaSama=true;
              }
              if(adaSama==false){
                 System.out.print(himpunanB[i]+" ");
              }
          }
          System.out.println("}");
       }
       public void himpunanIrisan(){
         System.out.print("Himpunan Irisan A n B : { ");
           for( int i=1;i<=jumlahAnggotaB;i++){
                   boolean adaSama = false;
                   for(int j=1;j<=jumlahAnggotaA;j++){
                     if(himpunanB[i]==himpunanA[j])
                            adaSama=true;
              }
              if(adaSama==true){
                 System.out.print(himpunanB[i]+" ");
              }
              }
              System.out.println(" }");
       }
       public void himpunanSelisih(){
              System.out.print("Himpunan Selisih A - B : { ");
              for( int i=1;i<=jumlahAnggotaA;i++){
                   boolean adaSama = false;
                   for(int j=1;j<=jumlahAnggotaB;j++){
                     if(himpunanA[i]==himpunanB[j])
                            adaSama=true;
              }
              if(adaSama==false){
                 System.out.print(himpunanA[i]+" ");
              }
              }
              System.out.println("}");
              System.out.print("Himpunan Selisih B - A : { ");
              for( int i=1;i<=jumlahAnggotaB;i++){
                   boolean adaSama = false;
                   for(int j=1;j<=jumlahAnggotaA;j++){
                     if(himpunanB[i]==himpunanA[j])
                            adaSama=true;
              }
              if(adaSama==false){
                 System.out.print(himpunanB[i]+" ");
              }
              }
              System.out.println("}");
       }
       public static void main(String args[]){
              himp bilangan = new himp();
              bilangan.dataAnggota();
              bilangan.tampilAnggota();
              bilangan.himpunanGabungan();
              bilangan.himpunanIrisan();
              bilangan.himpunanSelisih();
       }
}




 LOGIKA :
Pada percobaan ini kita menggunakan program java untuk membuat program listing di atas. Program diatas merupakan sebuah program himpunan tentang gabungan, irisan dan selisih yang di kemas dalam satu program.
Pada percobaan kali ini method yang di gunakan adalah import java.Scanner. fungsi  dari method tersebut untuk mengambil input dari console .  Fungsi dari new sendiri untuk membuat objek baru. Lau pada di bawahnya terdapat  int[] himpunanA= new int[100]; int[] himpunanB= new int[100]; maksud dari [100] pada himpunan A dan B adalah total maksimal angka yang ingin di masukan ke dalam anggota himpunan A maupun B.  Di bawah listing System.out.print terdapat perintah jumlah AnggotaA=input.nextInt, perintah ini merupakan salah satu fungsi dalam GUI Scanner yang berguna untuk membaca data yang berupa file. Lalu pada perintah for(int i=1;i<=jumlahAnggotaA;i++), untuk int=1 funngsinya agar pada saat output nanti pada bagian anggota himpunan akan di mulai dari anggota 1, apa bila kita mengunakan int=3 maka pada saat output maka akan di mulai dari anggota 3,karena pada perintah himpunanA[i]=input.nextInt() yang berfungsi untuk meneruskan perintah i yang bernilai yang telah kita masukan (pada contoh di atas 1 dan 3). Selanjutnya pada perintah public void tampilAnggota, terdapat perintah for(int i=1;i<=jumlahAnggotaA;i++){ yang berguna untuk menampilkan anggota himpunan yang telah kita masukan, dalam listing di masukan angka 1 maka yang akan di baca mulai dari anggota 1, bila kita memasukan i=3, maka data yang akan dibaca mulai dari anggota 3, anggota 1 dan 2 tidak terbaca. Selanjutnya terdapat perintah for,if,boolean. Boolean merupakan salah satu dari keyword dalam java yang  terdiri dari 2 nilai yaitu true dan false. Boolean sangat penting dalam mengevaluasi suatu kondisi, dan sering digunakan untuk menentukan alur program.  Di dalam listing terdapat boolean adaSama=false,adaSama=true,adaSama=false  pada bagian himpunanGabungan, ini di gunakan apabila ada angka yang sama dalam himpunan A dan B maka angka yang akan dicetak tidak di ulang apabila ada yang sama,sedangkan angka yang tidak terdapat pada salah satu himpunan maka angka itu akan langsung tercetak tanpa di seleksi terlebih dahulu, misalnya pada himpunan A:1,2,3 himpunan B:1,2,3,4 maka hasil yang akan tercetak @:1,2,3,4. Lalu pada bagian irisan terdapat boolean adaSama=false, adaSama=true,adaSama=true, maka angka yang akan di cetak hanya angka yang sama yang terdapat pada himpunan A dan himpunan B ,misalnya A:1 B: 1,2 maka yang akan di cetak hanya S:1. Lalu pada bagian selisih A-B dan selisih B-A memiliki perintah yang hampir sama, seperti  boolean adaSama=false, adaSama=true, adaSama=false dan yang berbeda terdapat pada perintah for(int j=1;j<=jumlahAnggotaB;j++){  if(himpunanA[i]==himpunanB[j]) untuk selisih A-B, sedangkan untuk selisih B-A adalah for(int j=1;j<=jumlahAnggotaA;j++){  if(himpunanB[i]==himpunanA[j]).  Untuk logika yang selisih A-B yaitu bila pada himpunan A dan himpunan B terdapat angka yang sama maka angka tersebut tidak akan di cetak, misalnya A: 1, 2  dan B:1, maka hasil yang akan dicetak yaitu S: 2. Untuk yang Selisih B-A merupakan kebalikan dari Selisih A-B,misalnya A:1,2 B:1 maka hasil yang akan di cetah adalah tidak ada angka,karena himpunan B hanya memiliki angka 1.

1 komentar: