Kamis, 10 Juli 2014

Bilangan Fibonacci dalam JAVA

Bilangan Fibonacci adalah barisan yang didefinisikan secara rekursif. Barisan ini berawal dari 0 dan 1, kemudian angka berikutnya didapat dengan cara menambahkan kedua bilangan yang berurutan sebelumnya.Dengan aturan ini, maka barisan bilangan Fibonacci yang pertama adalah:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, …

Barisan bilangan Fibonacci dapat dinyatakan sebagai berikut:
Fn = (x1n – x2n)/ sqrt(5)
dengan
  • Fn adalah bilangan Fibonacci ke-n
  • x1 dan x2 adalah penyelesaian persamaan x2-x-1=0
Perbandingan antara Fn+1 dengan Fn hampir selalu sama untuk sebarang nilai n dan mulai nilai n tertentu, perbandingan ini nilainya tetap. Perbandingan itu disebut Golden Ratio yang nilainya mendekati 1,618.

Coding Versi Pertama

import java.util.Scanner; //untuk input bilangan
public class latihan2{
    public static void main(String dede[]) {
     System.out.print ("Masukkan jumlah deret Fibonacci : ");
     Scanner inputan = new Scanner (System.in); //pengambilan inputan
     int x = inputan.nextInt(); //inisialisasi x
     int [] fibo = new int [x]; //inisialisasi dan deklarasi array
     fibo[0]=0;
     fibo[1]=1;
     for(x=2;x=2;x
        fibo[x]=fibo[x-1]+fibo[x-2]; //rumus mencari bilangan Fibonacci
        System.out.print("Bilangan Fibonacci: ");
     for(x=0;x
        System.out.print(fibo[x]+" ");
 }
}

Coding Versi Kedua

import javax.swing.JOptionPane;

public class Fibonacci {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int a=0;
        int b=1;
        int n=Integer.parseInt(JOptionPane.showInputDialog("Input: "));

        System.out.println("Input: " + n);

        for(int i=0; i < n; i++){
            System.out.print("" + a);
            a=a+b;
            b=a-b;
        }
        System.out.println("");
    }

}

Bilangan Prima dalam JAVA
Bilangan prima termasuk bilangan yang cukup unik, kita sudah mempelajari bilangan ini sejak masuk sekolah dasar.  

Beberapa referensi yang penulis dapat menyatakan bahwa bilangan prima merupakan bilangan positif yang hanya bisa dibagi oleh tepat 2 pembagi, yaitu angka 1 dan angka tersebut sendiri. Ada juga yang menyatakan sebagai suatu bilangan yang hanya bisa dibagi oleh dirinya sendiri tanpa menyertakan angka 1. 

Contoh: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97 dan seterusnya.

Dalam logika pemrograman, kita cuma perlu memperhatikan mulai angka 2 dan seterusnya. Angka 0 jelas tidak mungkin, karena bilangan ini dibagi angka berapapun akan menghasilkan angka 0. Dan angka 1 juga kita abaikan saja, sebab angka 1 hanya bisa dibagi oleh dirinya sendiri, padahal bilangan prima itu syarat utamanya bisa dibagi oleh 2 bilangan natural yang nyata, yaitu angka 1 dan dirinya sendiri. (Note: bisa dibagi ini dalam artian menghasilkan bilangan bulat positif, bukan bilangan pecahan.)
Berikutnya akan penulis ilustrasikan contoh pembagiannya, dimana kita sepakati bahwa angka pembagi tidak melibatkan angka 1.

2: hanya bisa dibagi 2.
3: hanya bisa dibagi 3.
4: bisa dibagi 2 dan 4 (lebih dari 1 pembagian, maka tidak termasuk bilangan prima).
5: hanya bisa dibagi 5.
6: bisa dibagi 2,3, dan 6 (bukan bilangan prima).
Dan seterusnya.

Misalkan diketahui sebuah bilangan X, bagaimana cara menentukan bahwa bilangan X itu termasuk bilangan prima atau bukan?

Asumsi: X adalah bilangan yang lebih besar dari 2
Berarti bilangan-bilangan yang akan menjadi pembagi adalah mulai angka 2sampai X-1.
Jika bilangan X bisa dibagi oleh minimal salah satu dari bilangan-bilangan mulai 2 sampai X-1, maka dapat dikatakan bahwa bilangan X adalah bukan bilangan prima.

Contoh: 9 Bilangan sebagai pembagi adalah 2 3 4 5 6 7 8
Untuk mengetahui bahwa suatu bilangan bisa dibagi atau tidak, paling mudah kita menggunakan bantuan mod, yang menyatakan sisa hasil bagi. Jika sisa hasil bagi 0 berarti bisa dibagi.

Kembali ke contoh.

9 mod 2 = 1 (hasil bukan 0, artinya tidak habis/bisa dibagi), lanjutkan,
9 mod 3 =0 (sudah cukup untuk menyimpulkan bahwa 9 adalah bukan bilangan prima.)
Tidak perlu kita uji dengan membagi 9 dengan angka 4 dan seterusnya.
Contoh lain: 11
11 mod 2 = 1
11 mod 3 = 2
11 mod 4 = 3
11 mod 5 = 1
11 mod 6 = 5
11 mod 7 = 4
11 mod 8 = 3
11 mod 9 = 2
11 mod 10 = 1

Tidak ada yang menghasilkan angka 0, berarti 11 termasuk bilangan prima. 

Coding Versi Pertama

import java.util.Scanner;
public class kasusPrima {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int awal, akhir, bil;
        System.out.println("Program Penampil Bilangan Prima");
        System.out.print("Masukkan batas awal\t: "); awal=in.nextInt();
        System.out.print("Masukkan batas akhir\t: "); akhir=in.nextInt();
        System.out.printf("Bilangan prima dari %d sampai %d adalah \n", awal, akhir);
        int ang=awal;
        while (ang <= akhir) {
            int tmp = 0;
            for (int bagi = 2; bagi < ang; bagi++) {
                if (ang%bagi==0) {
                    tmp=1;
                }
            }
            if (tmp != 1) {
                System.out.println(ang);
                }
            ang++;
        }
    }
}

Coding Versi Kedua

public class BilanganPrima {
/**
 * @param args the command line arguments
 */
 public static void main(String[] args) {
     int input = 100;

     for (int i = 2; i < input; i++) {
         boolean isPrima = true;

         for (int j = 2; j < i; j++) {
             if(i%j==0){
                 isPrima = false;
                 break;
             }
         }

         if(isPrima==true){
         System.out.println(i+",");
    }
  }
 }
}

Bilangan Acak dalam JAVA
Randomize atau sering disebut dengan bilangan acak yaitu bilangan yang tidak diketahui bilangan berapa yang selanjutnya muncul.

Coding Versi Pertama
Terlebih dahulu kita buat kelas untuk men-generate bilangan randomnya
------------------------------------------------------------------------------------------------------------
import java.util.*;

public class RandomGenerator {
    private static Random random = new Random();

    public static String generateActivationCode(int length) {
        String code = new String("");
        for (int i = 0; i < length; i++) {
            code += (char) (random.nextInt(10) + '0');
        }
        return code;
    }
}
------------------------------------------------------------------------------------------------------------
Kemudian kita buat kelas drivernya untuk memanggil kelas di atas
----------------------------------------------------------------------------------------------------------
public class TestRandom {
    public static void main(String[] args) {
        RandomGenerator random = new RandomGenerator();
        for (int i = 0; i < 10; i++) {
            System.out.println("" + random.generateActivationCode(6) + "");
        }
    }
}

Coding Versi Kedua
class RandomPadaJava
{
 public static void main(String[] args)
 {
  int nilai;

  for(int i=0; i<10; i++)
  {
   nilai = (int)(Math.random()*100);
   System.out.println(nilai);
  }
 }
}


Semoga Bermanfaat (^.^)

Tidak ada komentar:

Posting Komentar