Anda di halaman 1dari 10

Algoritma Euclid

 martha yunanda  Ilmu

Algoritma Euclid atau dalam bahasa Internasional dikenali dengan Eucladin's


Algorithm merupakan suatu algoritma, atau kesatuan perintah yang terdiri dari simbol (setelah di
terjemahkan secara simbolik) yang digunakan untuk menentukan faktor persekutuan terbesar
dari dua buah bilangan bulat. Secara historis algortima ini dikenal sebagai algoritma tertua di
dunia. Algoritma ini sendiridikutip dari buku Element karya Euclid pada tahun sekitar 300 BC.
Ketika mencari faktor persekutuan terbesar (FPB) dari dua buah
bilangan dengan menggunakan algoritma Euclid tidak dibutuhkan proses pemfaktoran.

Contoh Algoritma Euclid

Penerapan Algoritma Euclid


Sebagai contoh untuk mempermudah pemahaman pengunaan algoritma euclid diperlihatkan oleh
contoh di bawah ini. Misalkan diberikan x dan y. Kita akan mencari FPB kedua bilangan tersebut.
Lebih sederhananya dalam hal ini kita misalkan x = 1071 dan y = 1021. Demi lebih kerapian kita
akan lebih memilih menulis dalam bentuk tabel berikut ini.
x y sisa
1071 1029 42
1029 42 21
42 21 0

Secara umum penjelasan dengan menggunakan formula ini mengunakan prinsip sebagai


berikut. Pertama periksa apakah bilangan y nol atau tidak. Jika y adalah nol maka a merupakan
fpb. Jika tidak maka diulang lagi proses y, jika setelah x dibagi y lagi (penulisan dibentuk dalam
x modulus y). Karena y pada baris pertama bukanlah nol, maka bilanganyang lebih besar dibagi
dengan bilangan kedua. Hasil yang diperoleh satu dan bersisa 42. Dalam hal ini biasanya akan
ditulis dalam bentuk fungsi modulus. 1071= 1.1029 + 42. Usaha meningat bagian yang
ditebalkan, karena ini akan dipakai pada berikutya.
Sekarang kita lanjutkan pada baris ke-dua. Pembagi pada baris pertama (y1) akan mengisi bagian
x2. Sementara sisa pada baris pertama akan mengisi ruang pada pembagi (y2) pada baris kedua.
Langkah selanjutnya akan dilakukan operasi pembagian yang sama.Pada baris ke dua dilakukan
operasi yang sama. 1029 : 42 didapat sisa pembagian 21. Dalam fungsi modulus terbentuk
1029= 24.42+21. Sama dengan sebelumnya pembagi pada baris kedua akan menempati bagian x3
dan sisa baris kedua akan menempati pembagi (y3)  pada baris ke 3.
Hal ini terus dilakukan sampai sisa pembagian nol. Pada persoalan kali ini terlihat pada baris
ketiga di dapat pembagian 42: 21 bersisa nol. Ini akkirnya proses telah selesai. Maka pembagi
akhir yang menyebabka sisa nol tersebut merupakan Faktor Persekutuan Terbesar yang kita cari.
Keterangan dari fungsi modulus memiliki bentuk umum Bilangan = (k)x(Pembagi)  + Sisa. Jika
diperhatikan fungsi modulus di atas maka angka yang berwarna biru adalah pembagi dan
berwarna merah adalah sisa pembagian. Baca: Pra Sejarah Angka Nol.

Algortima Euclid dalam Bahasa Pemograman 


Dengan kecanggihan teknologi, serta perkembangan matematika yang terintegrasi dalam
beberapa bahasa pemograman maka algoritma Euclid ini bisa dibuat dalam bentuk program
komputasi. Dengan mengunakan bahasa pemograman maka cukup dengan melakukan input
bilangan yang akan dicari akan ditemukan langsung FPB dari kedua bilangan tersebut. Berikut
salah satu contoh code yang dikutip dari wikicode.

 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.

Berapakah FPB dari 3087 dan 6958 ?

6958 = 3087 . 2 + 784

3087 = 784 . 3 + 735

784   = 735 . 1 + 49

735   = 49 . 15                 -----> tidak bersisa

FPB(3087 , 6958) = 49

Jadi, FPB dari 3087 dan 6958 adalah 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)

Dapat juga dituliskan secara prosedural :


198 = 110 x 1 + 88
110 = 88 x 1 + 22
88 = 22 x 4 + 0
Berdasarkan prosedur di atas, sekarang akan dibuat implementasinya di 4 bahasa pemrograman (C/C++,
Assembly, Pascal, dan BASIC). Implementasinya akan berbentuk fungsi FPB dengan input 2 bilangan bulat
(integer) 32-bit, dan output juga integer. Berikut ini adalah kode-kode fungsi FPB algoritma Euclidean di 4
bahasa tersebut :
C/C++
01 int FPB(int a, int b)

02 {

03     if (a < b)

04        {int t = a; a = b; b = t;} // Tukar a dan b jika a < b

05  

06     int r = 0;

07  

08     do

09     {

10         r = a % b;

11         a = b;

12         b = r;

13     } while (r); // Teruskan loop hanya jika r tidak 0


14  

15     return a;

16 }

Assembly
01 FPB PROC

02 ; Fungsi : FPB(a,b)

03 ; Input  : (a,b) -> (eax, ebx)

04 ; Output : FPB -> eax

05  

06     pushad             ; Simpan semua register

07     cmp eax, ebx   ; Bandingkan eax dan ebx

08     ja  startloop  ; Jika  a > b, langsung ke startloop

09     xchg    eax, ebx   ; Jika tidak, tukar isi eax dan ebx

10 startloop:

11     xor edx, edx   ; edx = 0

12     div ebx        ; eax / edx, sisanya akan disimpan di edx

13     cmp edx, 0     ; Bandingkan edx dan 0

14     je  endloop    ; Jika edx = 0, hentikan loop ke endloop

15     mov eax, ebx   ; eax = ebx

16     mov ebx, edx   ; ebx = edx

17     jmp startloop  ; Mulai lagi loop

18 endloop:

19     popad              ; Kembalikan semua register ke asal

20     mov eax, ebx       ; Simpan nilai FPB di eax

21     ret                ; Kembali ke pemanggil

22  

23 FPB ENDP

Pascal
01 Function FPB(a, b : Integer) : Integer;

02  

03 Var t, r : Integer;
04  

05 Begin

06  If (a < b) Then

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  

05     If a < b Then t = a: a = b: b = t

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:

1. Tentukan FPB(9.800, 180)

Jawab:

9800 = 180*54+80

180   = 80*2+20

80     = 20*4

Jadi FPB(9.800, 180) = 20

2. Tentukan FPB(10.587, 534)

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

Jadi FPB(10587, 534) = 3

Anda mungkin juga menyukai