Anda di halaman 1dari 6

Nama

: Maqhfira Putri Rachmat

NIM

: D42114508

Kelas

: Teknik Informatika (B)


TUGAS STRUKTUR DATA

1. Algoritma dan Program Fibonacci Searching (Pencarian


Fibonacci)
Dalam Algoritma khususnya saat mempelajari
Struktur Data kita akan dihadapkan dengan metodemetode pencarian atau searching, dan metode searching
yang digunakan saat ini ada 2 yaitu metode pencarian
Biner (Binnary Searching) dan metode pencarian Fibonacci
(Fibonacci Searching). Sejarah deret fibonacci berawal dari
Gopala dan Hemachandra, matematikawan dari India pada
tahun 1150. Namun di Eropa deret ini diperkenalkan oleh
Leonardo da Pisa sekitar tahun 1200. Deret Fibonacci
adalah deret yang dimulai dari angka 0 dan 1, kemudian
deret selanjutnya merupakan penjumlahan 2 deret
sebelumnya. Dan perlu diketahui deret ini sangat unik.
Setiap perbandingan dari deret ke n dan deret n-1 selalu
mendekati nilai 1.6, misalnya deret ke-7 dan deret ke-6,
deret ke-8 dibanding dengan deret ke-5 maka hasilnya
adalah 1.6.
a. Algoritma Fibonacci Searching
Inisialisasi variabel array, isi indeks ke-0, 0 dan ke1, 1;
Masukan jumlah bilangan yang akan dicetak;
Apakah bilangan yang dicetak (i) sudah lebih besar
dari yang diinginkan? Ya : lanjutkan langkah
selanjutnya, tidak : keluar perulangan
Cetak array indek ke-i;
Array[i+2] = array[i] +array[i+1];
Kembali ke langkah 3;
Exit.

b. Source Code Program Fibonacci Searching


Program Biasa :
#include <iostream.h>
#include <conio.h>
int main(){
int n,i,a[50];
cout<<"Deret Fibonacci";
cout<<"\nMasukkan batas deret fibonacci: ";
cin>>n;
for (i=0;i<n;i++){
if (i<2)
a[i]=i;
else
a[i]=a[i-2]+a[i-1];}
for(i=0;i<n;i++){
cout<<a[i]<<" ";}
getch ();
return 0;}
Program Class :
#include <iostream.h>
#include <conio.h>
class fibonacci{
public:
void masukan();
void proses();
void keluaran();
private:
int n,i,a[50];};
void fibonacci::masukan(){
cout<<"Deret Fibonacci";
cout<<"\nMasukkan batas deret fibonacci: ";
cin>>n;}
void fibonacci::proses(){
for (i=0;i<n;i++){
if (i<2)
a[i]=i;
else
a[i]=a[i-2]+a[i-1];}}
void fibonacci::keluaran(){

for(i=0;i<n;i++){
cout<<a[i]<<" ";}}
int main(){
fibonacci x;
x.masukan();
x.proses();
x.keluaran();
getch ();
return 0;}
Program Java :
import java.util.Scanner;
public class lat2fibo{
public static void main (String args[]){
int[] bil=new int[100];
bil[0]=0;
bil[1]=1;
int deret;
Scanner input = new Scanner (System.in);
System.out.print("Masukan jumlah deret : ");
String data = input.nextLine();
deret = Integer.parseInt(data);
for(int i=0;i<deret;i++){
System.out.print(bil[i]+" ");
bil[i+2]=bil[i]+bil[i+1];
}
}
}
Program di atas adalah program yang digunakan untuk
mencari deret fibonacci. Contoh 0,1,1,2,3,5 dimana tiap
2 angkanya ditambahkan lalu ditempatkan pada deret
berikutnya begitu pula seterusnya. Nilai
bilangan fibonacci suku ke-n dalam deret tersebut
dapat dihitung dengan menjumlahkan dua bilangan
terdekat pada urutan sebelumnya. Secara umum nilai
bilangan fibonacci suku-n dapat dihitung dengan
menjumlahkan nilai-nilai bilangan fibonacci suku ke-(n-

1) dan ke-(n-2). Dengan demikian, nilai-nilai bilangan


fibonacci untuk n=1 dan n=2 merupakan nilai-nilai awal
yang perlu ditetapkan sebelumnya. Nilai-nilai awal
tersebut merupakan dasar untuk menghitung nilai-nilai
bilangan fibonacci untuk suku-suku berikutnya.
Sehingga pada program di atas kita gunakan fungsi
perulangan yaitu for dilanjutkan dengan fungsi if atau
percabangan dengan syarat (i<2) jika ya maka akan
menampilkan nilai i, sedangkan tidak akan
menampilkan hasil dari ((i-2)+(i-1)) dimana i adalah
angka yang akan terus di ulang sampai dengan
batasnya. Langkah selanjutnya kita tinggal
menampilkan hasil dari percabangan di atas dengan
perulangan atau fungsi if, agar hasilnya dapat
berbentuk sebagai deret fibonacci tidak hanya
menampilkan 1 hasil saja. Jadi, bilangan fibonacci
didefinisikan sebagai berikut :
1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + 34 + 58 + 89 +
144 ... dst

Nama

: Maqhfira Putri Rachmat

NIM

: D42114508

Prodi

: Teknik Informatika (B)


TUGAS STRUKTUR DATA

1. Menjelaskan mengenai 3 jenis dari Binary Tree


a. Strictly Binary Tree
Stricly Binary Tree adalah pohon biner yang sama
semua simpulnya, (kecuali simpul daun) mempunyai
lengap simpul subordinat kiri dan simpul koordinat
kanan. Sebuah pohon biner strictly binary tree, bila
mempunyai n buah daun maka akan membunyai (2n-1)
buah simpul.
b. Complete Binary Tree
Complete Binary Tree adalah jenis pohon biner spesial
yang akan berguna bagi kita semua. Ketika sebuah
Complete Binary Tree dibuat, node pertama nya adalah
root. Node kedua dari Complete Binary Tree selalu
berada disisi kiri dari root atau disebut child of the root,
dan node ketiga selalu berada disisi kanan child of the
root. Node selanjutnya harus selalu mengisi tingkat
berikutnya dari kiri ke kanan. Agar sebuah pohon dapat
menjadi sebuah pohon biner lengkap, semua anak pada
tingkat terakhir harus menempati titik terkiri secara
teratur, dengan tidak ada titik yang menganggur di
antara keduanya. Sebagai contoh, jika dua simpul pada
tingkat terbawah masing-masing menempati sebuah
titik dengan suatu titik kosong di antara keduanya,
tetapi sisa simpul anaknya terhimpit tanpa titik di
antaranya, maka pohon tersebut tidak dapat

membentuk sebuah pohon biner lengkap karena titik


kosong tersebut.

c. Balanced Binary Tree


Balanced Binary Tree adalah pohon biner yang
ketinggian subpohon kiri dan subpohon kanan untuk
setiap simpul, paling banyak berselisih satu. Dengan
demikian, pohon biner complete dan almost complete
adalah pohon biner berimbang, dan pohon miring
(skewed) dengan ketinggian (depth) lebih besar 1
adalah pohon biner tak seimbang.

Anda mungkin juga menyukai