Menentukan Faktor Persekutuan Terbesar (FPB) Menggunakan Python

Faktor Persekutuan Terbesar (FPB) atau dalam bahasa Inggris sering disebut Greatest Common Divisor (GCD) dari dua buah bilangan adalah bilangan positif terbesar yang dapat membagi habis kedua bilangan tersebut.

Sebelumnya memahami contoh ini, Anda sudah harus menguasai dasar – dasar pemrograman Python yaitu:

Ada dua cara yang akan kita gunakan. Pertama dengan menggunakan looping biasa, dan kedua menggunakan algoritma Euclidean.


Source Code

  1. Source code menggunakan looping
# Program Python untuk menemukan FPB dua buah bilangan

# mendefinisikan fungsi
def hitung_FPB(x, y):

# memilih bilangan yang paling kecil
    if x > y:
        smaller = y
    else:
        smaller = x
    for i in range(1, smaller+1):
        if((x % i == 0) and (y % i == 0)):
            fpb = i
            
    return fpb

num1 = 96
num2 = 24

# hilangkan tanda # untuk meminta inputan dari user
# num1 = int(input("Enter first number: "))
# num2 = int(input("Enter second number: "))

print("FPB dari", num1,"dan", num2," =", hitung_FPB(num1, num2))

Output

FPB dari 96 dan 24 = 24

Pada contoh di atas, kita menyimpan bilangan 1 dan 2 di dalam variabel num1 dan num2. Variabel tersebut kita masukkan sebagai argumen fungsi hitung_FPB.

Di fungsi tersebut, kita menentukan bilangan terkecil di antara dua bilangan karena FPB hanya bisa lebih kecil atau sama dengan bilangan yang terkecil. Kita menggunakan loop for dari 1 sampai bilangan tersebut.

Di tiap perulangan, kita mengecek apakah bilangan kita membagi habis kedua bilangan input. Jika iya, maka itulah FPB yang dicari.


2. Source code menggunakan algoritma Euclidean

Dalam algoritma Euclidean, kita membagi bilangan yang lebih besar dengan yang lebih kecil dan menyimpan sisanya. Kemudian kita bagi bilangan yang lebih kecil dengan sisanya. Begitu terus berulang sampai sisanya 0.

def hitung_FPB(x, y):
   # Fungsi ini menggunakan algoritma Euclidean
   while(y):
       x, y = y, x % y
   return x

fpb = hitung_FPB(200, 150)
print("FPB dari", num1,"dan", num2," =", hitung_FPB(num1, num2))

Output

FPB dari 200 dan 150 = 50

Pada contoh di atas, kita melakukan perulangan sampai y bernilai 0. Pernyataan x, y = y, x % y adalah tips melakukan pertukaran nilai di Python. Di tiap perulangan, kita menyimpan nilai y dalam x dan sisanya (x % y) di dalam y. Ketika y sudah bernilai 0 maka perulangan akan berhenti dan x berisi FPB.