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.

array 2 D


ARRAY 2DIMENSI

LISTING

import java.io.*;
class Array2D{
    public static void main (String[]args){
        DataInputStream entry = new DataInputStream(System.in);
        try
        {
            int [][] angka = new int [3][3];
            for (int i=0;i<angka.length;i++)
            {
                for (int j = 0;j<angka.length;j++)
                {
                    System.out.print("matriks["+(i+1)+"]["+(j+1)+"] = ");
                    angka [i][j] = Integer.parseInt(entry.readLine());
                }
                }
            System.out.println("data array 2 dimensi");
                for (int i=0;i<angka.length; i++)
                {
                    for (int j = 0;j<angka.length;j++)
                    {
                        System.out.print(angka[i][j]+" ");
                    }
                    System.out.println();
            }
        }
        catch (Exception e)
        {
            System.out.println ("wah salah input tuh");
        }
    }
}

Pada percobaan kali ini merupakan percobaan array 2 dimensi. Array 2 dimensi sering di gambarkan sebagai sebuah matriks, array 2 dimensi terdiri dari beberapa baris dan beberapa baris dan beberapa kolom elemen yang bertipe sama. Bentuk umumnya adalah : tipe data[][]nama variable=new tipe data [jumlah baris][jumlah kolom];.
Dari listing di atas terdapat DataInputStream entry = new DataInputStream(System.in); yang berfungsi untuk untuk membaca hasil penulisan DataOutputStream atau mendapatkan data kembali. Pada awal listing terdapat import java.io.*; maksudnya adalah java yang akan kita gunakan akan di rubah sesuai dengan java IO.
Lalu terdapat perintah try, yang berfungsi untuk Untuk menangkap
suatu eksepsi java atau kesalahan pada listing program. Perintah try biasanya selalu berpasangan dengan catch dengan fungsi yang sama.. di dalam catch terdapat perintah Exception. Exeption dimunculkan pada program saat menemukan keadaan yang dapat menyebabkan program menjadi error. Sebuah Exception akan menyebabkan aliran program keluar dari aliran yang normal. Dalam bentuk array 2 dimensi di atas tertulis
 int [][] angka = new int [3][3]; maksud dari [3][3] adalah dari data yang akan di haasilkan akan memiliki 3 kolom dan 3 baris.lalu terdapat i<angka.length maksudnya adalah nilai variable I lebih kecil dari jangkauan nilai angka.lalu Integer perse.Int berfungsi untuk mengkonversikan integer agar dapat d output. Dari percobaan di atas maka akan menghasilkan sebagai berikut :

perhitungan pangkat di java

kali ini saya akan membuat program sederhana untuk menghitung pangkat di java


import javax.swing.*;
public class pangkat{
    public static void main (String[]args){
        pangkat p = new pangkat ();
        int angkax=Integer.valueOf(JOptionPane.showInputDialog("masukan angka:"));
    int angkay=Integer.valueOf(JOptionPane.showInputDialog("masukan pangkat:"));
    //System.out.print (" ");
    System.out.println(p.Hitungpangkat(angkax, angkay));
    }
            public int Hitungpangkat(int x, int y){
                if (y==1)
                {
                    return x;
                }
                else{
                    return x*Hitungpangkat(x,y-1);
                }
            }}

valueOf(JoptionPane.showInputDialog(“masukan angka: “)) berfungsi untuk  menghasilkan output berupa sebuah kotak dialog yang berisi untuk memasukan angka, sedangkan pada perintah di bawahnya int angkay=Integer.valueOf(JoptionPane.showInputDialog(“masukan pangkat: “)) berfungsi untuk menghasilkan output berupa kotak dialog yang berisi untuk memasukan nilai pangkat yang kita inginkan. Method yang dipake di sini kan HitungPangkat(int x, int y)

dimana x adalah bilangan yang hendak dipangkatkan, sementara y adalah nilai pangkat-nya.

Yang harus dilihat Dari kode-nya, ada base-case atau kasus dasarnya dimana "y == 1"

Klo y==1, maka nilai yang di-return adalah "x" ---> x kan nilainya sama dengan x^1
 Klo nilai y bukan 1, maka nilai yang di-return adalah

x dikali dengan HitungPangkat(x, y-1) ----> x * HitungPangkat(x, y-1)