Modul 2 ‐ CPMK 0802 ‐ Percabangan dan Perulangan. - regitapermata30/Modul-Algoritma-Pemrograman GitHub Wiki

Tujuan

Setelah menyelesaikan bab ini, peserta didik diharapkan dapat:

  1. Memahami operator relasional dan operator logika dalam Python.
  2. Menggunakan perintah if untuk membuat keputusan berdasarkan kondisi tertentu.
  3. Mengetahui cara menghitung luas segitiga dengan menggunakan percabangan.
  4. Memahami pernyataan if bertingkat dan pernyataan if bersarang.
  5. Melakukan latihan soal untuk menguji pemahaman mereka tentang perintah percabangan dalam Python.
  6. Memahami cara kerja perintah for dan while dalam Python.
  7. Menggunakan perintah break dan continue untuk mengendalikan aliran program.
  8. Menyelesaikan latihan soal looping atau perulangan.

Materi

Operator Relasional

Operator relasional digunakan untuk membandingkan dua nilai. Hasil dari perbandingan ini adalah nilai boolean, yaitu True atau False.

# Perbandingan nilai integer

a = 10
b = 20

print(a == b)  # False
print(a != b)  # True
print(a < b)  # True
print(a > b)  # False
print(a <= b)  # True
print(a >= b)  # False

# Perbandingan nilai string

nama1 = "Andi"
nama2 = "Budi"

print(nama1 == nama2)  # False
print(nama1 != nama2)  # True
print(nama1 < nama2)  # False
print(nama1 > nama2)  # True
print(nama1 <= nama2)  # False
print(nama1 >= nama2)  # True

Pada contoh kode di atas, kita menggunakan operator relasional untuk membandingkan nilai dua variabel. Hasil dari perbandingan ini adalah nilai boolean, yaitu True atau False.

  • True berarti kondisi terpenuhi
  • False berarti kondisi tidak terpenuhi

Perintah if

Perintah if digunakan untuk melakukan suatu tindakan jika kondisi tertentu terpenuhi.

# Menentukan apakah bilangan ganjil atau genap

bil = 10

if bil % 2 == 0:
    print("Bilangan genap")
else:
    print("Bilangan ganjil")

Pada contoh kode di atas, kita menggunakan perintah if untuk menentukan apakah bilangan tersebut merupakan bilangan ganjil atau genap.

  • if adalah kata kunci untuk memulai perintah if
  • bil % 2 == 0 adalah kondisi yang akan diuji
  • bil == 2 adalah tindakan yang akan dilakukan jika kondisi terpenuhi
  • else adalah kata kunci untuk memulai blok kode yang akan dijalankan jika kondisi tidak terpenuhi
  • print("Bilangan ganjil") adalah tindakan yang akan dilakukan jika kondisi tidak terpenuhi

Operator Logika

Operator logika digunakan untuk menggabungkan dua atau lebih kondisi.

# Menentukan apakah nilai lebih besar dari 10 dan kurang dari 20

nilai = 15

if nilai > 10 and nilai < 20:
    print("Nilai valid")
else:
    print("Nilai tidak valid")

Pada contoh kode di atas, kita menggunakan operator logika untuk menggabungkan dua kondisi.

  • and berarti kedua kondisi harus benar
  • or berarti salah satu kondisi harus benar
  • not berarti negasi kondisi

Luas Segitiga dengan Percabangan

Luas segitiga dapat dihitung dengan menggunakan rumus:

luas = (alas * tinggi) / 2

Dengan menggunakan percabangan, kita dapat membuat program untuk menghitung luas segitiga dengan input dari pengguna.

# Menentukan luas segitiga

alas = float(input("Masukkan alas segitiga: "))
tinggi = float(input("Masukkan tinggi segitiga: "))

if alas <= 0 or tinggi <= 0:
    print("Nilai alas atau tinggi tidak valid")
else:
    luas = (alas * tinggi) / 2
    print("Luas segitiga:", luas)

Pada contoh kode di atas, kita menggunakan percabangan untuk menentukan apakah nilai alas dan tinggi segitiga valid. Jika nilai alas atau tinggi tidak valid, maka akan ditampilkan pesan kesalahan. Jika nilai alas dan tinggi valid, maka akan dihitung luas segitiga dan ditampilkan hasilnya.

Pernyataan if Bertingkat

Pernyataan if bertingkat digunakan untuk menguji lebih dari satu kondisi.

# Menentukan apakah bilangan positif, negatif, atau nol

bil = float(input("Masukkan bilangan: "))

if bil > 0:
    print("Bilangan positif")
elif bil < 0:
    print("Bilangan negatif")
else:
    print("Bilangan nol")

Pada contoh kode di atas, kita menggunakan pernyataan if bertingkat untuk menentukan apakah bilangan tersebut merupakan bilangan positif, negatif, atau nol.

  • if adalah kata kunci untuk memulai blok kode pertama
  • bil > 0 adalah kondisi yang akan diuji untuk blok kode pertama
  • print("Bilangan positif") adalah tindakan yang akan dilakukan jika kondisi pertama terpenuhi
  • elif adalah kata kunci untuk memulai blok kode kedua
  • bil < 0 adalah kondisi yang akan diuji untuk blok kode kedua
  • print("Bilangan negatif") adalah tindakan yang akan dilakukan jika kondisi kedua terpenuhi

Pernyataan if Bersarang

Pernyataan if bersarang digunakan untuk menguji kondisi yang saling bergantung.

# Menentukan apakah bilangan positif, negatif, atau nol, dan apakah bilangan tersebut merupakan bilangan prima

bil = float(input("Masukkan bilangan: "))

if bil > 0:
    # Bilangan positif
    if bil % 2 == 0:
        print("Bilangan positif dan genap")
    else:
        print("Bilangan positif dan bukan genap")
elif bil < 0:
    # Bilangan negatif
    print("Bilangan negatif")
else:
    # Bilangan nol
    print("Bilangan nol")

Pada contoh kode di atas, kita menggunakan pernyataan if bersarang untuk menentukan apakah bilangan tersebut merupakan bilangan positif, negatif, atau nol, dan apakah bilangan tersebut merupakan bilangan genap.

  • if adalah kata kunci untuk memulai blok kode pertama
  • bil > 0 adalah kondisi yang akan diuji untuk blok kode pertama
  • if adalah kata kunci untuk memulai blok kode bersarang
  • bil == 2 adalah kondisi yang akan diuji untuk blok kode bersarang
  • print("Bilangan positif dan prima") adalah tindakan yang akan dilakukan jika kondisi bersarang terpenuhi
  • else adalah kata kunci untuk memulai blok kode else
  • print("Bilangan positif dan bukan prima") adalah tindakan yang akan dilakukan jika kondisi bersarang tidak terpenuhi

Latihan Soal

Latihan soal diberikan untuk menguji pemahaman peserta tentang materi perintah percabangan. Berikut adalah beberapa contoh soal yang mudah:

  1. Buatlah program sederhana yang meminta pengguna memasukkan usianya dan kemudian mencetak pesan "Anda sudah dewasa" jika usianya 18 tahun atau lebih, dan mencetak pesan "Anda belum dewasa" jika usianya di bawah 18 tahun.
  2. Buatlah program yang meminta input dari pengguna yaitu sebuah bilangan, apakah bilangan bulat yang diinputkan itu adalah bilangan berkelipatan 15 atau bukan. jika ya, maka keluarkan output "Bilangan anda adalah bilangan kelipatan 15", jika bukan, maka "Bilangan anda bukan kelipatan 15"
  3. Buatlah program yang meminta pengguna memasukkan sebuah bilangan bulat, lalu menentukan apakah bilangan tersebut positif, negatif, atau nol, dan mencetak pesan sesuai.
  4. Buatlah program Python yang menghitung diskon berdasarkan total belanja. Jika total belanja lebih dari 100.000, berikan diskon sebesar 10%.
  5. Buatlah program yang meminta pengguna memasukkan sebuah tahun, dan mencetak pesan "Tahun kabisat" jika tahun tersebut adalah tahun kabisat atau mencetak pesan "Bukan tahun kabisat" jika bukan tahun kabisat.
  6. Buat program Python untuk menentukan jenis segitiga berdasarkan panjang sisi-sisinya. Jika ketiga sisi sama panjang, segitiga adalah segitiga sama sisi. Jika dua sisi sama panjang, segitiga adalah segitiga sama kaki. Jika tidak ada sisi yang sama panjang, segitiga adalah segitiga sembarang.
  7. Buat program Python untuk menentukan kategori berat badan berdasarkan indeks massa tubuh (BMI) pengguna. Jika BMI kurang dari 18.5, kategori adalah "Kurus". Jika BMI antara 18.5 dan 24.9, kategori adalah "Normal". Jika BMI antara 25 dan 29.9, kategori adalah "Gemuk". Jika BMI 30 atau lebih, kategori adalah "Obesitas".

Perintah for

Perintah for digunakan untuk mengulangi blok kode tertentu sejumlah kali. Blok kode tersebut akan dieksekusi sebanyak jumlah elemen dalam iterable.

for i in range(1, 25):
    print("Goku memukul Luffy untuk yg ke", i, "kalinya")

perintah while

Perintah while digunakan untuk mengulangi blok kode tertentu selama kondisi tertentu terpenuhi.

luffy = "sadar"
while luffy != "pingsan":
    print("Goku memukul Luffy")
    luffy = input()

Penjelasan:

  1. Baris pertama kode akan menginisialisasi variabel luffy dengan nilai string "sadar".
  2. Baris kedua kode akan memeriksa apakah variabel luffy tidak sama dengan "pingsan". Jika ya, maka blok kode di dalam loop akan dieksekusi.
  3. Baris ketiga kode akan mencetak "Goku memukul Luffy" ke layar.
  4. Baris keempat kode akan meminta inputan user sebagai nilai dari variabel luffy.

Perintah break

Perintah break digunakan untuk menghentikan eksekusi loop saat ini.

for i in range(1, 11):
    if i == 5:
        break
    print(i)

Penjelasan:

  1. Baris pertama kode akan menginisialisasi variabel i dengan nilai 1.
  2. Baris kedua kode akan memeriksa apakah nilai i sama dengan 5. Jika ya, maka perintah break akan dieksekusi.
  3. Perintah break akan menghentikan eksekusi loop dan melanjutkan ke baris kode berikutnya.

Perintah continue

Perintah continue digunakan untuk menghentikan eksekusi blok kode saat ini, tetapi melanjutkan ke iterasi berikutnya.

for i in range(1, 11):
    if i % 2 == 0:
        continue
    print(i)

Penjelasan:

  1. Baris pertama kode akan menginisialisasi variabel i dengan nilai 1.
  2. Baris kedua kode akan memeriksa apakah nilai i habis dibagi 2. Jika ya, maka perintah continue akan dieksekusi.
  3. Perintah continue akan menghentikan eksekusi blok kode saat ini dan melanjutkan ke iterasi berikutnya.

Latihan Soal

  1. Buatlah program yang mencetak angka ganjil dari 1 hingga 100.
  2. Buatlah program yang mencetak angka prima dari 1 hingga 100.
  3. Buatlah program yang mencetak angka fibonacci dari 1 hingga 100.