Cara menggunakan mencari kpk python

Skip to content

Berikut ini kita membuat contoh program Python untuk menemukan faktor suatu bilangan. Sebelumnya, Anda sudah harus memahami dasar Python berikut:

  • Pernyataan if…else
  • Perulangan menggunakan for
  • Fungsi

Source Code

# Program Python untuk menemukan faktor bilangan

# Mendefinisikan fungsi
def print_faktor(x):
    """Fungsi menerima input bilangan dan mencetak faktornya"""

    print("Faktor dari", x, "adalah:")
    for i in range(1, x+1):
        if x % i == 0:
            print(i)

# Input bilangan yang akan dicari faktornya
num = int(input("Masukkan bilangan: "))

print_faktor(num)

Output

Masukkan bilangan: 270
Faktor dari 270 adalah:
1
2
3
5
6
9
10
15
18
27
30
45
54
90
135
270

Penjelasan Program

Pada program di atas, bilangan yang akan dicari faktornya diinput dan disimpan dalam variabel num.

Kita mendefinisikan sebuah fungsi yaitu print_faktor(), yang memiliki satu parameter yaitu x. Di fungsi ini kita menggunakan perulangan dari 1 s/d x + 1. Semua bilangan yang bisa membagi x dengan sempurna akan ditampilkan ke layar.

Pada baris terakhir, kita memanggil fungsi print_faktor(num), dan hasilnya faktor – faktor dari num ditampilkan ke layar.

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:

  • Perulangan
  • Fungsi

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.

Menemukan KPK (Kelipatan Persekutuan Terkecil)

Kelipatan Persekutuan Terkecil adalah bilangan terkecil yang merupakan kelipatan persekutuan dari kedua bilangan tersebut.

Contoh:
Temukan KPK dari dua angka berikut

import numpy as np

num1 = 4
num2 = 6

x = np.lcm(num1, num2)

print(x)

Mengembalikan: 12 karena 12 adalah kelipatan persekutuan terendah dari kedua bilangan (4 * 3 = 12 dan 6 * 2 = 12).

Menemukan KPK dalam Array

Untuk menemukan Kelipatan Persekutuan Terkecil dari semua nilai dalam array, kita dapat menggunakan metode reduce().

Metode reduce() akan menggunakan ufunc, dalam hal ini fungsi lcm(), pada setiap elemen, dan mengurangi array per satu dimensi.

Contoh:
Temukan KPK dari nilai-nilai dari array berikut

import numpy as np

arr = np.array([3, 6, 9])

x = np.lcm.reduce(arr)

print(x)

Mengembalikan: 18 karena 18 adalah kelipatan persekutuan terendah dari ketiga bilangan (3 * 6 = 18, 6 * 3 = 18 dan 9 * 2 = 18).

Contoh
Temukan KPK dari semua array di mana array tersebut berisi semua bilangan bulat dari 1 hingga 10

import numpy as np

arr = np.arange(1, 11)

x = np.lcm.reduce(arr)

print(x)