Utuk bisa membuat deret bilangan prima dan Deret Fibonacci, kita harus mengetahui definisinya dulu.
Bilangan Prima adalah bilangan yang hanya memiliki dua faktor yaitu angka 1 dan bilangan itu sendiri atau bilangan yang hanya bisa dibagi dengan angka 1 dan bilangan itu sendiri. Artinya, dalam algoritma, bilangan itu hanya bernilai 0 bila di mod oleh 1 dan bilangan itu sendiri.
Kunci penyelesaian:
1. Menggunakan pengulangan dan sekuensial
2. Analisa kasus dengan if
Sedangkan Deret Fibonacci adalah suatu deret matematika yang berasal dari penjumlahan dua bilangan sebelumnya. Artinya suku ke-3, merupakan penjumlahan dari suku ke-2 dan suku pertama. Contoh:
1, 1, 2, 3, 5, 7, 12, 19, …
kunci penyelesaian:
1. Menggunakan pengulangan dan sekuensial
2. Analisa kasus dengan if
Tampak bahwa antara Deret bil.prima dan deret fibonacci berada dalam topik yang sama dalam Algoritma. Saya membuatnya dalam 2 cara; Algoritma pseudo-code (untuk konsep) dan dalam bahasa pascal (pengujian).
Algoritma Pseudo Code
a. Deret Bil.Prima
program Deret_bil_prima
{Dibaca n input, kemudian menuliskan sejumlah n bil.prima}
Kamus:
n,c,j,i:integer
Algoritma:
input (n)
j traversal [1..N]
begin
c ← 0
i traversal [1..J]
begin
if j mod i = o then
c ← c+1
end
if c=2 then
output(j) {output bilangan prima}
end
b. Deret Fibonacci
program deret_fibonacci
{Dibaca a input, kemudian menuliskan sejumlah a Deret Fibonaci}
Kamus:
a,b,c,d,e:integer
Algoritma:
input (a)
c ← 1;
d ← 1;
b traversal [1..a]
begin
if (b=1) or (b=2) then
output(c) {dua deret fibonacci awal selalu bernilai 1}
else
begin
e ← c+d {hasil penjumlahan 2 deret sebelumnya}
c ← d
d ← e {tukar posisi)
output (e)
end
end
Pengujian Algoritma dalam Bahasa Pascal
Pascal tidak mengenal traversal untuk peningkatan bilangan + 1 (mengurutkan 1,2,3,4,...). Yang ada adalah for-to-do
a. Deret Bil.Prima
program deret_bil_prima;
var
a,c,j,i:integer;
begin
write('Masukan angka :');readln(a);
for j:=1 to a do
begin
c:=0;
for i:=1 to j do
begin
if j mod i = 0 then
c:=c+1;
end;
if c=2 then
write(j,' ')
end;
readln;
end.
b. Deret Fibonacci
program fibonacci;
var
a,b,c,d,e:integer;
begin
writeln('masukan bilangan : ');readln(a);
c:=1;
d:=1;
for b:=1 to a do
begin
if (b=1)or(b=2) then
write(c,' ')
else
begin
e:=c+d;
c:=d;
d:=e;
write(e,' ');
end;
end;
readln;
end.
Sekuensial dan Looping berguna bila kita menemui masalah yang berulang-ulang dan memiliki pola tertentu.