Last active
October 19, 2023 09:01
-
-
Save kafri8889/9b98e1d4352daba48ceb5c4811079f97 to your computer and use it in GitHub Desktop.
Check if given number is prime or not
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
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