martha yunanda Ilmu
if b = 0return aelsereturn fpb(b, a modulus b);Penulisan fungsi dalam bentuk iteratif: function
fpb(a, b)
while b ≠ 0
var t := b
b := a modulus b
a := t
return a
function fpb(a, b)
while a ≠ b
if a > b
a := a - b
else
b := b - a
return a
Pembuktian kebenaran teori ini secara induktif bisa dilakukan secara pemfaktoran.
Sebagaimana contoh yang telah diberikan tadi, bisa diambil angka 1071 dan 1029. Faktor dari
1071 = 3x3x7x17. Sementara penfaktoran 1029= 3x7x7x7. Terlihat jelas faktor persekutuan dari
ke dua bilangan tersebut 37= 21
Algoritma Euclidean bahasa C++
Kali ini saya akan membahas tentang Algoritma Euclidean dengan bahasa C++
Tapi sebelum itu saya akan membahas tentang "apa itu Algoritma Euclidean"
Algoritma Euclidean merupakan salah satu algoritma yang ditemukan oleh seorang matematikawan
Yunani bernama Euclid untuk mencari FPB dari dua buah bilangan bulat.
Misalkan a dan b adalah bilangan bulat tak negatif dengan a ≥ b maka proses Algoritma Euclidean
adalah sebagai berikut.
784 = 735 . 1 + 49
FPB(3087 , 6958) = 49
Setelah penjelasan saya akan memberikan contoh codingan dan outputan program sebagai berikut:
codingan :
output program :
Algoritma Euclidean adalah salah satu algoritma tercepat untuk menghitung FPB (Faktor Persekutuan terBesar) /
GCD (Greatest Common Divisor). FPB dari 2 angka adalah angka terbesar yang habis membagi 2 angka
tersebut. Prinsip dari algoritma Euclidean ini adalah dari kenyataan bahwa FPB dari 2 angka tidak akan berubah
jika angka terbesar dikurangi angka terkecil. Sebagai contoh, 22 adalah FPB dari 198 dan 110 (198 = 22 x 9; 110
= 22 x 5), 198 – 110 = 88 dan 110 tetap mempunyai FPB 22. Proses ini bisa terus di-ulang sampai salah satu
dari angka tersebut adalah 0, sehingga angka yang lainnya adalah FPB dari 2 angka paling awal. Jika dilihat
langkah – langkahnya sampai selesai :
(198, 110) -> (110, 88) -> (88, 22) -> (22, 0)
02 {
03 if (a < b)
05
06 int r = 0;
07
08 do
09 {
10 r = a % b;
11 a = b;
12 b = r;
15 return a;
16 }
Assembly
01 FPB PROC
02 ; Fungsi : FPB(a,b)
05
10 startloop:
11 xor edx, edx ; edx = 0
18 endloop:
22
23 FPB ENDP
Pascal
01 Function FPB(a, b : Integer) : Integer;
02
03 Var t, r : Integer;
04
05 Begin
07 Begin
08 t := a; a := b; b := t
09 End;
10
11 Repeat
12 r := a Mod b;
13 a := b;
14 b := r
15 Until r = 0;
16
17 FPB := a;
18 End;
BASIC
view source
print?
01 Function FPB(ByVal a As Long, ByVal b As Long) As Long
02
03 Dim t As Long, r As Long
04
06
07 Do
08 r = a Mod b
09 a = b
10 b = r
11 Loop Until r = 0
12
13 FPB = a
14
15 End Function
This entry was posted on Tuesday, April 20th, 2010 at 12:47 pm and is filed under Computer Science. You can follow any
responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
Mencari FPB dengan Algoritma Euclides
FPB adalah istilah Matematika yang merupakan singkatan dari Faktor Persekutuan Terbesar, atau
dalam Bahasa Inggris disebut GCD (Greatest Conmmon Divisor).
FPB dari dua bilangan adalah sebuah bilangan bulat positif terbesar yang dapat membagi kedua
bilangan tersebut.
Misalkan terdapat 2 bilangan, 24 dan 32.
Bilangan yang dapat membagi 24 adalah : 1, 2, 3, 4, 6, 8, 12, 24
Bilangan yang dapat membagi 32 adalah : 1, 2, 4, 8, 16, 32
1, 2, dan 4, ketiga bilangan ini dapat membagi 24 maupun 32, dan yang dimaksud dengan FPB dari
24 dan 32 adalah 4, karena merupakan bilangan terbesar dari bilangan-bilangan yang dapat
membagi kedua bilangan itu.
Banyak metode yang dapat digunakan untuk mencari FPB. Di SD / SMP, metode yang umum
digunakan ialah metode pagar dan metode pohon faktor. Metode pagar maupun metode pohon faktor
efektif untuk bilangan-bilangan kecil. Jika bilangan yang dicari FPB-nya besar, maka lebih efektif
menggunakan algoritma Euclid.
Algoritma Euclid merupakan algoritma yang digunakan untuk mencari FPB dari dua buah bilangan.
Algoritma ini ditemukan oleh Euclid ahli matematika yunani yang tertulis pada bukunya Elements.
Algoritma ini memanfaatkan sifat-sifat dari sisa pembagian atau modulo. Langkah-langkah algoritma
Euclid adalah sebagai berikut.
Jika a, b elemen dari bilangan bulat, maka dengan menerapkan algoritma euclides, pembagian
berkali-kali diperoleh :
Contoh:
Jawab:
9800 = 180*54+80
180 = 80*2+20
80 = 20*4
Jawab:
10.587 = 534*19+441
534 = 441*1+93
441 = 93*4+69
93 = 69*1+24
69 = 24*2+21
24 = 21*1+3
21 = 3*7