Algoritma Euclid
M. ZAKI RiyANTO PrOGRAM
STUDI MATEMATIKA FAKULtas SAINS DAN
TEKNOLOGI
UIN SUNAN KALIJAga YogyAKARta
muhamad.riyanto@uin-suka.ac.id
http://zaki.sandimath.web.id
1 Algoritma Euclid
Pada bagian ini akan diberikan suatu metode atau algoritma yang dapat digunakan untuk
menghitung suatu pembagi persekutuan terbesar dari dua bilangan bulat positif a dan b. Metode
ini pernah dikemukakan oleh seorang matematikawan Yunani kuno yang bernama Euclid, dan
saat ini metode ini disebut dengan algoritma Euclid.
Sebelum dijelaskan tentang algoritma Euclid, berikut ini diberikan sebuah contoh pem- bagi
persekutuan terbesar. Diberikan bilangan bulat 63 dan 24, dapat dengan mudah dilihat bahwa
gcd(63, 24) = 3. Di lain pihak, menggunakan algoritma pembagian, dapat diperoleh bahwa 63 =
24·2+15, selanjutnya dari 24 dan 15 diperoleh 24 = 15·1+9, selanjutnya dari 15 dan 9 diperoleh
15 = 9·1+6, selanjutnya dari 9 dan 6 diperoleh 9 = 6·1+3, selanjutnya dari 6 dan 3 diperoleh
bahwa 6 = 3·2+0, dan dari 3 dan 0 diperoleh 3 = 3·1+0. Perhatikan bahwa gcd(63, 24) =
gcd(24, 15) = gcd(15, 9) = gcd(9, 6) = gcd(6, 3) = gcd(3, 0) = 3. Fenomena ini ternyata
berlaku secara umum, seperti diberikan pada lemma berikut ini.
1
dan c|b, maka c|d. Dengan demikian, terbukti bahwa gcd(b, r) = d. Q
r0 = r 1 q 1 + r2 0 ≤ r2 < r1
r1 = r 1 q 2 + r3 0 ≤ r3 < r2
.
rj−2 = rj−1qj−1 + rj 0 ≤ rj < rj−1
.
rn−3 = rn−2qn−2 + rn−1 0 ≤ rn−1 < rn−2
rn−2 = rn−1qn−1 + rn 0 ≤ rn < rn−1
rn−1 = rnqn
Proses ini pasti berhenti sampai diperoleh suatu rn+1 = 0, hal ini dikerenakan sisa suatu pembagian
terkecil yang mungkin adalah 0, serta fakta bahwa
gcd(a, b) = gcd(r0, r1) = gcd(r1, r2) = ... = gcd(rn−1, rn) = gcd(rn, 0) = rn.
Contoh 1.1. Akan dihitung pembagi persekutuan terbesar dari 100 dan 54 menggunakan
algoritma Euclid, yaitu:
100 = 54 · 1 + 46
54 = 46 · 1 + 8
46 = 8 · 5 + 6
8=6·1+2
6 = 2 · 3 + 0.
Diperoleh bahwa gcd(100, 54) = 2.
100 = 1 · 54 + 46
54 = 1 · 46 + 8
46 = 5 · 8 + 6
8=1·6+2
6 = 3 · 2 + 0.
2 = 8 − 1 · (46 − 5 · 8) = 6 · 8 − 1 · 46.
Teorema 2.1 (Perluasan Algoritma Euclid). Diberikan bilangan bulat positif a dan b, maka
gcd(a, b) = sna + tnb untuk n = 0, 1, 2, ... dimana sn dan tn diberikan secara rekursif
Bukti: Berdasarkan algoritma Euclid, gcc(a, b) = rn. Akan ditunjukkan bahwa rj = sja +
tjb untuk j = 0, 1, 2, ..., n, sehingga gcd(a, b) = sna + tnb. Teorema ini akan dibuktikan
menggunakan induksi matematika. Untuk j = 0 diperoleh bahwa
a = r0 = 1 · a + 0 · b = s0a + t0b,
yang berarti bahwa rj = sja + tjb benar untuk j = 0. Demikian juga untuk j = 1, dapat
dilihat bahwa
b = r1 = 0 · a + 1 · b = s1a + t1b.
Selanjutnya, diasumsikan bahwa rj = sja + tjb benar untuk j = 1, 2, ..., k − 1. Akan
ditun- jukkan bahwa peryataan tersebut benar untuk j = k. Dari langkah ke-k pada
perhitungan algoritma Euclid, diketahui
rk = rk−2 − rk−1qk−1.
(2) Gunakan algoritma Euclid untuk menghitung gcd(51, 87), gcd(105, 300), gcd(981, 1234)
dan gcd(34709, 100313).
(3) Nyatakan masing-masing pembagi persekutuan terbesar pada no.1 di atas sebagai kom-
binasi linear.
(4) Nyatakan masing-masing pembagi persekutuan terbesar pada no.2 di atas sebagai kom-
binasi linear.
(5) Tentukan gcd(6, 10, 15) dan nyatakan dalam bentuk kombinasi linear dari 6, 10 dan 15.
(6) Diberikan a, b, c ∈ Z dengan a, b, c > 0. Buktikan bahwa terdapat p, q, r ∈ Z sedemikian
hingga gcd(a, b, c) = pa + qb + rc.
(7) Diberikan bilangan bulat positif a1, a2, ..., an. Buktikan bahwa terdapat m1, m2, ..., mn ∈
Z sedemikian hingga gcd(a1, a2, ..., an) = m1a1 + m2a2 + ... + mnan.
(8) Tentukan gcd(1240, 6660, 15540, 19980) dan nyatakan dalam bentuk kombinasi linear
dari 1240, 6660, 15540 dan 19980.