Tutorial Function Pada PHP
Latihan Deret Fibonacci
Materi ini memiliki 1 buah lampiran. Namun Anda tidak dapat mengakses lampiran karena belum terdaftar di kursus ini. Klik disini untuk mendaftar.
Pada video ini, kita akan mengerjakan latihan mengenai Deret Fibonacci.
Fibonacci adalah pola bilangan hasil penjumlahan dua bilangan sebelumnya. Teman-teman bisa perhatikan deret angka pada tabel dibawah. Angka pertama dan angka kedua adalah nilai awal Fibonacci. Pada soal ini kita menggunakan nilai awal 0 dan 1. Kalau teman-teman sedang mengerjakan soal lain yang menggunakan Fibonacci, nilai awal ini bisa saja berbeda, bisa saja bernilai 1 dan 1, ataupun nilai lain. Jadi nilai awal ini sebenarnya bisa disesuaikan dengan kasus yang sedang dihadapi, namun khusus untuk soal disini, kita menggunakan nilai awal 0 dan 1.
Kemudian kalau kita hendak menghitung nilai ketiga, maka kita menjumlahkan dua nilai sebelumnya, yaitu nilai kedua dan nilai pertama. Hasilnya adalah 1. Begitu juga kalau kita hendak menghitung nilai keempat, maka kita menjumlahkan nilai ketiga dengan nilai kedua, sehingga hasilnya 2.
Sebagai soal latihan pada video ini, kita akan menuliskan script untuk menampilkan deret Fibonacci di layar. Nilai pertama dan kedua adalah 0 dan 1. Dan nilai berikutnya dihitung dari penjumlahan 2 nilai sebelumnya. Hasil yang diharapkan adalah 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, dan seterusnya. Pause terlebih dahulu video ini dan coba kerjakan di komputer masing-masing. Nantinya kita akan kembali untuk membahas solusi dari latihan ini.
Kita mulai kerjakan latihan. Kita buat dahulu function fibonacci dengan parameter int $n, dan mengembalikan tipe data int. Pertama kita buat dahulu function yang menggunakan solusi recursive. Seperti biasa, kita tuliskan dahulu base case di bagian paling atas function. Apabila nilai $n <= 1, maka kita kembalikan nilai 0. Sebenarnya disini kita hanya perlu menggunakan operator perbandingan sama dengan. Namun untuk mencegah agar function kita tidak error karena ada orang yang memanggil function menggunakan argument bernilai 0 atau bilangan negatif, maka lebih baik kita menggunakan operator lebih kecil sama dengan.
Nah, kita sudah membuat pengecualian untuk nilai pertama. Selanjutnya kita buat lagi pengecualian untuk nilai kedua. Apabila nilai $n === 2, maka kita kembalikan nilai 1. Setelah itu, kita gunakan rumus recursive dari fibonacci, yaitu kita jumlahkan nilai dari fibonacci($n – 1) dengan fibonacci($n – 2).
Selanjutnya kita coba panggil function fibonacci dengan argument 1 hingga 10. Di luar function, kita buat loop mulai dari 1 hingga 10. Di dalamnya kita echo fibonacci($i) ditambah tanda koma. Diluar loop kita tambahkan PHP_EOL.
Kita simpan dan coba jalankan. Dan hasilnya sudah sesuai dengan soal ya. Kita sudah berhasil mengerjakan soal deret Fibonacci dengan menggunakan cara recursive.
function fibonacci(int $n): int{ if($n <= 1) return 0; if($n === 2) return 1; return fibonacci($n - 1) + fibonacci($n - 2); } for($i = 1; $i <= 10; $i++) echo fibonacci($i) . ', '; echo PHP_EOL;
Sebagai pelengkap, kita bahas juga cara membuat function fibonacci versi looping biasa ya. Kita tambahkan function baru fibonacciLoop dengan argument int $n, dan mengembalikan tipe data int. Kita buat variable nilai awal $n1 = 0 dan $n2 = 1. Kemudian kita buat 2 buah pengecualian ya. Apabila nilai $n <= 1, maka kita kembalikan nilai $n1. Sedangkan bila nilai $n === 2, maka kita kembalikan nilai $n2.
Selanjutnya kita lakukan looping dimulai dari 3, hingga sama dengan $n. Di dalam loop, kita buat variable $result, yang nilainya adalah penjumlahan dari $n1 + $n2. Selanjutnya kita mesti mengubah nilai $n1 menjadi menyimpan nilai dari $n2. Sedangkan $n2 menyimpan nilai $result. Jadi pada iterasi berikutnya kita sudah menjumlahkan 2 nilai yang baru. Terakhir, jangan lupa kembalikan nilai $result.
function fibonacciLoop(int $n): int{ $n1 = 0; $n2 = 1; if($n <= 1) return $n1; if($n === 2) return $n2; for($i = 3; $i <= $n; $i++){ $result = $n1 + $n2; $n1 = $n2; $n2 = $result; } return $result; }
Kita ganti function untuk tes deret Fibonacci menjadi function fibonacciLoop. Kita simpan dan jalankan. Dan ternyata hasilnya sama ya.
Berarti kita sudah berhasil mengerjakan soal latihan Fibonacci dengan menggunakan 2 jenis solusi, yaitu solusi recursive dan solusi looping biasa.
Dengan menggunakan fasilitas tanya jawab, maka Anda bisa bertanya dan akan dijawab langsung oleh instruktur kursus.
Anda belum terdaftar pada kursus ini sehingga tidak bisa mengajukan pertanyaan.