Skip to content

Instantly share code, notes, and snippets.

@kafri8889
Last active October 19, 2023 09:01
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kafri8889/9b98e1d4352daba48ceb5c4811079f97 to your computer and use it in GitHub Desktop.
Save kafri8889/9b98e1d4352daba48ceb5c4811079f97 to your computer and use it in GitHub Desktop.
Check if given number is prime or not
"""
Pertama, buat function yang bernama "isPrimeNumber".
Apa itu ffunction?
Singkatnya function/method adalah suatu blok kode yang melakukan tugas tertentu (sesuai programmernya mau bikin apaan).
salahh satu kegunaan function adl bisa mengurangi boilerplate code (kode yang dipakai berulang kali tanpa perbedaan)
Flownya kayak gini:
INPUT => EKSEKUSI KODE => OUTPUT (opsional)
"""
def isPrimeNumber(n):
if n <= 1:
print(n, "bukan bilangan prima atau bilangan natural")
return
"""
Pertama kita bakal nge-looping dari 2 sampai n, misalnya n = 6, berarti program bakal nge-looping n - 2 = 6 - 2 = 4 kali.
Jadi variabel "i" dibawah setiap perulangannya punya nilai 2, 3, 4, dan 5. Biar lebih paham liat dibawah:
looping ke-1: i = 2
looping ke-2: i = 3
looping ke-3: i = 4
looping ke-4: i = 5
"""
for i in range(2, n):
"""
Nah, setiap looping kita ngecek ni, value n itu habis ga kalo di bagi i?,
ngeceknya pake modulus, kayak di pelajaran PTKI A, kalo habis, berarti n bukan bilangan prima,
kalo misalkan sampe index (i) terakhir (n - 1) itu kondisi "n % i == 0"-nya belum terpenuhi juga (nggak menghasilkan "true"),
Berarti n itu bilangan prima
Contoh 1:
n = 8, di looping ke-1 kita cek 8 habis ga di bagi sama 2? => 8 % 2 = 4 sisa 0, nah, kan habis tu, berarti 8 bukan prima
Contoh 2:
n = 11, kita cek ke setiap looping:
looping ke-1: 11 % 2 == 0 => false (sisa 1)
looping ke-2: 11 % 3 == 0 => false (sisa 2)
looping ke-3: 11 % 4 == 0 => false (sisa 3)
looping ke-4: 11 % 5 == 0 => false (sisa 1)
looping ke-5: 11 % 6 == 0 => false (sisa 5)
looping ke-6: 11 % 7 == 0 => false (sisa 4)
looping ke-7: 11 % 8 == 0 => false (sisa 3)
looping ke-8: 11 % 9 == 0 => false (sisa 2)
looping ke-9: 11 % 10 == 0 => false (sisa 1)
Nah, karena sampe looping terakhir kondisi if-nya belum terpenuhi juga, berarti n = 11 adalah bilangan prima
"""
if n % i == 0:
# "//" digunakan untuk membulatkan kebawah (ceil)
# walaupun nilainnya "x.99" tetap aka dibulatkan kebawah menjadi "x"
print(n, "bukan bilangan prima, karena bisa dibagi dengan", n // i)
return # panggil return untuk menghentikan pengeksesusian kode didalam function ini
# Kalo kondisi if tidak terpenuhi sampe looping terakhir, print bil prima
print(n, "adalah bilangan prima")
def isPrimeNumber2(n):
if n > 1:
for i in range(2, n):
if n % i == 0:
print(n, "bukan prima karena bisa dibagi dengan", n // i)
# kode ibu yg salah ada dibagian ini
# harusnya "i" nya bukan kapital "I"
# print(I, "kali", num // I, "=", num) <== salah
break
else:
print(n, "adalah prima")
else:
print(n, "bukan prima")
if __name__ == '__main__':
while True:
inp = int(input("Masukin angka: "))
isPrimeNumber(inp)
# isPrimeNumber2(inp)
print()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment