Anda di halaman 1dari 5

Latest Update: March 14, 2017

Pengantar Teori Bilangan (Bagian 4):

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.

Lemma 1.1. Jika a, b, q, r ∈ Z dengan a = bq + r, maka gcd(a, b) = gcd(b, r).

Bukti: Dimisalkan gcd(a, b) = d. Akan ditunjukkan bahwa gcd(b, r) = d. Diketahui


gcd(a, b) = d, maka d|a dan d|b. Diketahui a = bq + r, maka r = a − bq, akibatnya
d|(a − bq) = r. Selanjutnya, dimisalkan c|b dan c|r, maka b = ck dan r = cl untuk suatu
c, l ∈ Z. Diperoleh a = bq + r = ckq + cl = c(kq + l), sehingga c|a. Karena gcd(a, b) = d, c|a

1
dan c|b, maka c|d. Dengan demikian, terbukti bahwa gcd(b, r) = d. 

Teorema 1.2 (Algoritma Euclid). Diberikan a, b ∈ Z dengan a ≥ b > 0. Dimisalkan r0 = 1


dan r1 = b. Jika algoritma pembagian berhasil mendapatkan rj = rj+1 qj+1 + rj+2 , dengan
0 < rj+2 < rj+1 untuk j = 0, 1, 2, ..., n − 2 dan rn+1 = 0, maka gcd(a, b) = rn , yaitu sisa
terkecil yang tidak nol pada seluruh proses algoritma pembagian.

Bukti: Diketahui r0 = a dan r1 = b dengan r0 ≥ r1 . Salanjutnya, a dibagi b sesuai


menggunakan beberapa algoritma pembagian diperoleh r0 = r1 q1 +r2 , untuk suatu q1 , r2 ∈ Z.
Apabila diperoleh r2 6= 0, maka proses dilanjutkan dengan membagi r1 dengan r2 . Proses
ini dilakukan sampai diperoleh suatu rn+1 = 0, yaitu:

r0 = r1 q1 + r2 0 ≤ r2 < r1
r1 = r1 q2 + r3 0 ≤ r3 < r2
..
.
rj−2 = rj−1 qj−1 + rj 0 ≤ rj < rj−1
..
.
rn−3 = rn−2 qn−2 + rn−1 0 ≤ rn−1 < rn−2
rn−2 = rn−1 qn−1 + rn 0 ≤ rn < rn−1
rn−1 = rn qn
Proses ini pasti berhenti sampai diperoleh suatu rn+1 = 0, hal ini dikerenakan sisa suatu
pembagian terkecil yang mungkin adalah 0, serta fakta bahwa

r1 > r2 > ... > rn−1 > rn > rn+1 = 0.

Menggunakan Lemma 1.1. diperoleh bahwa

gcd(a, b) = gcd(r0 , r1 ) = gcd(r1 , r2 ) = ... = gcd(rn−1 , rn ) = gcd(rn , 0) = rn .

Dengan demikian terbukti bahwa gcd(a, b) = rn . 

Contoh 1.1. Akan dihitung pembagi persekutuan terbesar dari 100 dan 54 menggunakan

2
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.

2 Perluasan Algoritma Euclid


Teorema Bezout telah menjamin bahwa jika a dan b adalah bilangan bulat, maka terdapat bi-
langan bulat m dan n sedemikian hingga gcd(a, b) = ma+nb. Pada bagian ini akan dijelaskan
bahwa nilai m dan n dapat dicari menggunakan algoritma Euclid. Sebelumnya, diberikan
contohnya terlebih dahulu sebagai motivasi. Pada contoh perhitungan gcd(100, 54) = 2
menggunakan algoritma Euclid di atas dapat dilihat bahwa

100 = 1 · 54 + 46
54 = 1 · 46 + 8
46 =5·8+6
8 =1·6+2
6 = 3 · 2 + 0.

Dapat dilihat bahwa gcd(100, 54) = 2 = 8 − 1 · 6. Dari proses sebelumnya, diketahui 6 =


46 − 5 · 8. Dari sini dapat diperoleh

2 = 8 − 1 · (46 − 5 · 8) = 6 · 8 − 1 · 46.

Diketahui 8 = 54 − 1 · 46, diperoleh

2 = 6 · (54 − 1 · 46) − 1 · 46 = 6 · 54 − 7 · 46.

Diketahui 46 = 100 − 1 · 54, diperoleh

2 = 6 · 54 − 7 · (100 − 1 · 54) = −7 · 100 + 13 · 54.

Dari sini diperoleh bahwa nilai m = −7 dan n = 13.

3
Berikut ini diberikan sebuah teorema yang menjamin bahwa nilai m dan n dapat dite-
mukan menggunakan bantuan algoritma Euclid. Teorema ini disebut dengan Perluasan
Algoritma Euclid.

Teorema 2.1 (Perluasan Algoritma Euclid). Diberikan bilangan bulat positif a dan b, maka
gcd(a, b) = sn a + tn b untuk n = 0, 1, 2, ... dimana sn dan tn diberikan secara rekursif

sj = sj−2 − qj−1 sj−1 , tj = tj−2 − qj−1 tj−1

untuk j = 2, 3, ..., n dan dengan nilai awal s0 = 1, t0 = 1, s1 = 0, t1 = 1, dimana qj adalah


hasil bagi pada proses pembagian dalam algoritma Euclid yang digunakan untuk menghitung
gcd(a, b).

Bukti: Berdasarkan algoritma Euclid, gcc(a, b) = rn . Akan ditunjukkan bahwa rj =


sj a + tj b untuk j = 0, 1, 2, ..., n, sehingga gcd(a, b) = sn a + tn b. Teorema ini akan dibuktikan
menggunakan induksi matematika. Untuk j = 0 diperoleh bahwa

a = r0 = 1 · a + 0 · b = s0 a + t0 b,

yang berarti bahwa rj = sj a + tj b benar untuk j = 0. Demikian juga untuk j = 1, dapat


dilihat bahwa
b = r1 = 0 · a + 1 · b = s1 a + t1 b.

Selanjutnya, diasumsikan bahwa rj = sj a + tj b 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−1 qk−1 .

Berdasarkan asumusi induksi, diperoleh

rk = (sk−2 a + tk−2 b) − (sk−1 a + tk−1 b)qk−1


= (sk−2 − sk−1 qk−1 )a + (tk−2 − tk−1 qk−1 )b
= sk a + tk b.

Dengan demikian, terbukti bahwa rj = sj a + tj b untuk j = 0, 1, 2, ..., n. 

4
3 Soal-soal Latihan
(1) Gunakan algoritma Euclid untuk menghitung gcd(45, 75), gcd(102, 222), gcd(666, 1414)
dan gcd(20785, 44350).

(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 ) = m1 a1 + m2 a2 + ... + mn an .

(8) Tentukan gcd(1240, 6660, 15540, 19980) dan nyatakan dalam bentuk kombinasi linear
dari 1240, 6660, 15540 dan 19980.

Anda mungkin juga menyukai