Algoritma Deret Bil.Prima dan Deret Fibonacci

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.