Logika Bilangan Fibonacci pada JSP (Revisi)


Hay Gaes, selamat hari Rabu :D

Dalam kesempatan kali ini saya akan menerangkan sedikit tentang penerapan logika bilangan fibonacci pada bahasa pemrograman JSP.

Bilangan Fibonacci adalah sebuah bilangan dimana hasil dari penjumlahan fibonacci merupakan penjumlahan 2 bilangan sebelumnya, dan dilakukan secara berulang (rekursi).

Sebagai contoh input bilangan pertama adalah 0, dan bilangan ke-2 adalah 1, maka hasil yang didapat adalah 0 1 1 2 3 5 8 13 21 34 55 89 dan seterusnya.




Implementasi pada bahasa pemrograman


Pada saat menampilkan perhitungan fibonacci, maka penjumlahan antara lain

bil 1, bil 2
bil 3 = bil 1 + bil 2
bil 4 = bil 2 + bil 3
bil 5 = bil 3 + bil 4
bil 6 = bil 4 + bil 5
dan seterusnya.

Script


<%
String c = request.getParameter("angka1");
    //memanggil parameter "angka1" pada home.jsp (form input data)
String d = request.getParameter("angka2");
    //memanggil parameter "angka2" pada home.jsp (form input data)
int min1 = Integer.parseInt(c);
    //parse String to Integer
int max1 = Integer.parseInt(d);
    //parse String to Integer
int[] feb = new int[max1];
    //define array baru dengan maximum nilai array adalah variable max1
feb[0] = 0;
feb[1] = 1;
    //define array[0] dan array[1] untuk perhitungan awal
for(int i=2;i<max1;i++){
    feb[i] = feb[i-1] + feb[i-2]
        //looping i dimulai dari 2, karena feb[0] dan feb[1] sudah ter-define sebelumnya
        //feb[2] = feb[2-1] + feb[2-2]
        //feb[2] = feb[1] + feb[0]
        //feb[2] = 1 + 0 = 1
        //feb[3] = feb[3-1] + feb[3-2]
        //feb[3] = 1 + 1 = 2
        //feb[4] = feb[4-1] + feb[4-2]
        //feb[4] = 2 + 1 = 3
        //feb[5] = feb[5-1] + feb[5-2]
        //feb[5] = 3 + 2 = 5
        //feb[max1] = dan seterusnya
}
for(int i=min1;i<max1;i++){
    if(feb[i]>=min1 && feb[i]<max1){
      out.print(feb[i] + " ");
          //jika feb[i] lebih besar sama dengan dari nilai "min1" dan feb[i] lebih kecil "max1"
          //maka cetak nilai array dari feb[i]
          //jika persyaratan (if) tidak terpenuhi, maka lanjut proses looping 
    }
}
%>

Penjelasan Penggalan Script

Penggalan script berikut menambahkan sebuah variable (String) dimana variable tersebut berfungsi untuk mendapatkan parameter pada home.jsp (halaman input data), dan juga sekaligus untuk parsing dari type data String ke type data Integer.

String c = request.getParameter("angka1");
String d = request.getParameter("angka2");
int min1 = Integer.parseInt(c);
int max1 = Integer.parseInt(d);

Setelah parameter yang kita butuhkan sudah berhasil ter-define, maka selanjutnya kita masuk kedalam tahap logika coding utama.

int[] feb = new int[max1];
feb[0] = 0;
feb[1] = 1;
for(int i=2;i<max1;i++){
    feb[i] = feb[i-1] + feb[i-2]
}
for(int i=min1;i<max1;i++){
    if(feb[i]>=min1 && feb[i]<max1){
      out.print(feb[i] + " ");
    }
}

Proses berjalan nya coding sebagai berikut :

  • Define array baru int[] feb = new int[max1], dengan nilai maximum array adalah variable max1.
  • Define array[0] dan array[1] untuk perhitungan awal.
  • Looping nilai i dimulai dari "2", dikarenakan array[0] dan array[1] sudah ter-define terlebih dahulu, dan nilai i lebih kecil dari nilai max1.
  • feb[i] = feb[i-1] + feb[i-2]
          1. feb[2] = feb[2-1] + feb[2-2]
    • feb[2] = feb[1] + feb[0]
    • feb[2] = 1 + 0 = 1
          2. feb[3] = feb[3-1] + feb[3-2]
    • feb[3] = 1 + 1 = 2
          3. feb[4] = feb[4-1] + feb[4-2]
    • feb[4] = 2 + 1 = 3
          4. feb[5] = feb[5-1] + feb[5-2]
    • feb[5] = 3 + 2 = 5
          5. feb[max1] = dan seterusnya
  • Proses looping nilai i dimuali dari nilai "min1" hingga lebih kecil nilai "max1"
  • Jika feb[i] lebih besar sama dengan nilai "min1" dan feb[i] lebih kecil dari nilai "max1", apabila if kondisional tersebut benar maka cetak nilai array feb[i]. Apabila if kondisional tidak terpenuhi, akan kembali lakukan proses looping untuk menentukan nilai array feb[i] selanjutnya.

Form input angka



Output bilangan fibonacci



Demikianlah logika implementasi bilangan fibonacci pada JSP.
Semoga bermanfaat :)
Unknown Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

Tidak ada komentar:

Posting Komentar