Showing posts with label java-id. Show all posts
Showing posts with label java-id. Show all posts

Deret Fibonacci dengan Java: Panduan Lengkap dan Mudah

 

 

Kalau kamu baru belajar pemrograman, pasti pernah dengar yang namanya deret Fibonacci. Ini adalah salah satu latihan klasik yang selalu muncul di berbagai kursus, buku, bahkan interview kerja. Nah, kali ini kita akan bahas deret Fibonacci secara lengkap, tapi bukan sekadar teori. Kita bakal langsung praktek bikin program Deret Fibonacci dengan Java.

Artikel ini bakal panjang, jadi siapin kopi atau teh dulu biar makin santai.

Apa Itu Deret Fibonacci?

Sebelum kita ngoding, mari kita kenalan dulu sama si Fibonacci ini.

Deret Fibonacci adalah barisan angka di mana setiap angka merupakan jumlah dari dua angka sebelumnya. Urutannya dimulai dari 0 dan 1, lalu seterusnya seperti ini:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...

Rumus matematisnya bisa ditulis:

F(n) = F(n-1) + F(n-2)

Dengan syarat:

  • F(0) = 0

  • F(1) = 1

Sejarah Singkat Fibonacci

Nama deret ini berasal dari seorang matematikawan asal Italia, Leonardo Fibonacci. Di abad ke-13, dia menulis buku berjudul Liber Abaci (The Book of Calculation). Dari situlah deret ini terkenal.

Tapi yang lebih keren, ternyata pola Fibonacci juga sering muncul di alam. Misalnya jumlah kelopak bunga, spiral cangkang, sampai pola biji bunga matahari. Jadi belajar deret Fibonacci itu bukan cuma latihan ngoding, tapi juga mengintip rahasia alam semesta.

Kenapa Fibonacci Penting dalam Pemrograman?

Mungkin kamu bertanya, “Kenapa sih Fibonacci sering dipakai contoh di dunia coding?”

Alasannya sederhana:

  1. Melatih logika dasar – bikin deret ini butuh perulangan (looping), kondisi, dan variabel.

  2. Bisa dipakai untuk belajar rekursi – teknik penting dalam algoritma.

  3. Dipakai di algoritma nyata – misalnya Fibonacci Search untuk optimasi pencarian.

  4. Mudah dipahami tapi bisa rumit – cocok untuk pemula maupun lanjutan.

Dengan kata lain, Fibonacci itu kayak “latihan push-up” buat programmer. Kelihatan sederhana, tapi bikin otot logika makin kuat.

Membuat Deret Fibonacci dengan Java

Sekarang kita masuk ke bagian seru: ngoding!

Java adalah salah satu bahasa pemrograman yang paling banyak dipakai di dunia, baik untuk aplikasi desktop, Android, maupun backend. Jadi bikin Fibonacci di Java bisa jadi latihan yang bermanfaat.

Kita akan bahas beberapa cara:

1. Deret Fibonacci dengan Perulangan (Looping)

Ini cara paling gampang. Kita bikin variabel untuk dua angka pertama, lalu terus tambahkan sampai jumlah yang kita mau.

public class FibonacciLoop {
    public static void main(String[] args) {
        int n = 10; // jumlah angka yang mau ditampilkan
        int first = 0, second = 1;

        System.out.print("Deret Fibonacci: ");

        for (int i = 1; i <= n; i++) {
            System.out.print(first + " ");

            // hitung angka berikutnya
            int next = first + second;
            first = second;
            second = next;
        }
    }
}

Output:

Deret Fibonacci: 0 1 1 2 3 5 8 13 21 34

Sederhana dan cepat.

2. Deret Fibonacci dengan Rekursi

Kalau kamu suka kode yang lebih elegan, bisa pakai rekursi. Artinya, sebuah fungsi memanggil dirinya sendiri.

public class FibonacciRecursion {
    static int fibonacci(int n) {
        if (n == 0) return 0;
        if (n == 1) return 1;
        return fibonacci(n - 1) + fibonacci(n - 2);
    }

    public static void main(String[] args) {
        int n = 10; // jumlah angka

        System.out.print("Deret Fibonacci: ");
        for (int i = 0; i < n; i++) {
            System.out.print(fibonacci(i) + " ");
        }
    }
}

Output sama:

Deret Fibonacci: 0 1 1 2 3 5 8 13 21 34

Kelebihan rekursi: kode lebih “bersih” dan enak dibaca.
Kekurangannya: kalau n terlalu besar, program bisa lambat karena banyak pemanggilan fungsi.

3. Deret Fibonacci dengan Array

Kalau kamu mau menyimpan semua hasil Fibonacci ke dalam sebuah array, bisa gunakan cara ini.

import java.util.Arrays;

public class FibonacciArray {
    public static void main(String[] args) {
        int n = 10;
        int[] fib = new int[n];

        fib[0] = 0;
        fib[1] = 1;

        for (int i = 2; i < n; i++) {
            fib[i] = fib[i - 1] + fib[i - 2];
        }

        System.out.println("Deret Fibonacci: " + Arrays.toString(fib));
    }
}

Output:

Deret Fibonacci: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

Enak kalau kamu mau pakai deretnya untuk keperluan lain, misalnya analisis data.

Optimasi Fibonacci dengan Memoization

Kalau kamu pakai rekursi, masalahnya adalah banyak perhitungan yang diulang-ulang. Solusinya? Memoization alias menyimpan hasil perhitungan biar nggak dihitung ulang.

import java.util.HashMap;

public class FibonacciMemo {
    static HashMap<Integer, Integer> memo = new HashMap<>();

    static int fibonacci(int n) {
        if (n == 0) return 0;
        if (n == 1) return 1;

        if (memo.containsKey(n)) {
            return memo.get(n);
        }

        int value = fibonacci(n - 1) + fibonacci(n - 2);
        memo.put(n, value);
        return value;
    }

    public static void main(String[] args) {
        int n = 10;
        System.out.print("Deret Fibonacci: ");
        for (int i = 0; i < n; i++) {
            System.out.print(fibonacci(i) + " ");
        }
    }
}

Dengan teknik ini, perhitungan jadi jauh lebih cepat.

Aplikasi Deret Fibonacci

Mungkin kamu berpikir, “Oke, saya bisa bikin Fibonacci. Tapi gunanya apa?”
Ternyata banyak sekali:

  1. Algoritma Pencarian – ada yang namanya Fibonacci Search.

  2. Dynamic Programming – banyak soal optimasi pakai konsep ini.

  3. Kriptografi – deret Fibonacci bisa dipakai untuk pola enkripsi.

  4. Ilmu Alam – pola daun, bunga, dan cangkang sering mengikuti deret ini.

  5. Desain – rasio Fibonacci sering dipakai dalam desain grafis untuk estetika.

Jadi jangan remehkan latihan sederhana ini ya

Kesalahan yang Sering Dilakukan Pemula

  1. Lupa inisialisasi angka pertama (0, 1) → hasilnya jadi kacau.

  2. Rekursi tanpa batas → bisa bikin program crash.

  3. Tidak pakai optimasi → kalau n besar, program bisa super lambat.

  4. Salah cetak output → misalnya ada spasi atau format aneh.

Tipsnya: mulai dari versi paling sederhana dulu, lalu tingkatkan.

Belajar Deret Fibonacci dengan Java itu ibarat latihan dasar yang seru:

  • Dengan looping, kamu belajar logika perulangan.

  • Dengan rekursi, kamu belajar fungsi dan pemanggilan diri.

  • Dengan array, kamu belajar menyimpan data.

  • Dengan memoization, kamu belajar optimasi.

Jadi, dari satu topik kecil ini, kamu bisa dapat banyak skill penting di dunia pemrograman.

Kalau kamu pemula Java, coba deh tulis ulang programnya pakai caramu sendiri. Jangan sekadar copy-paste. Dengan begitu, otot logikamu akan makin kuat.

Siapa tahu, suatu saat skill ini kepakai di coding interview atau project besar yang lebih kompleks.