Python & AI Tutorials Logo
Pemrograman Python

8. Membuat Keputusan dengan Pernyataan if

Dalam program yang sudah kita tulis sejauh ini, Python mengeksekusi setiap baris kode dari atas ke bawah, satu pernyataan demi satu pernyataan. Tapi program di dunia nyata perlu membuat keputusan—mengeksekusi kode yang berbeda bergantung pada kondisi yang berbeda. Haruskah kita menampilkan pesan error? Haruskah kita menghitung diskon? Haruskah kita meminta input lagi? Jawabannya bergantung pada situasi.

Pernyataan kondisional (conditional statements) memungkinkan programmu membuat keputusan ini. Pernyataan ini memungkinkan Python mengeksekusi blok kode tertentu hanya ketika kondisi tertentu bernilai benar, dan melewatinya jika tidak. Bab ini memperkenalkan pernyataan if Python dan variasinya, yang menjadi dasar pengambilan keputusan dalam programmu.

Dengan menguasai pernyataan kondisional, kamu akan bisa menulis program yang merespons secara cerdas terhadap input pengguna, menangani berbagai skenario dengan tepat, dan menyelesaikan masalah yang membutuhkan penalaran logis.

8.1) Pernyataan if Sederhana

Bentuk pengambilan keputusan paling dasar di Python adalah pernyataan if sederhana (simple if statement). Ini memberi tahu Python: "Jika kondisi ini benar, jalankan blok kode ini. Kalau tidak, lewati dan lanjutkan."

8.1.1) Struktur Pernyataan if

Berikut sintaks dasar dari sebuah pernyataan if:

python
if condition:
    # Kode yang dieksekusi jika condition bernilai True
    statement1
    statement2
    # ... lebih banyak pernyataan

Mari kita uraikan setiap bagiannya:

  1. Keyword if: Ini memulai pernyataan kondisional
  2. Kondisi (condition): Ekspresi boolean yang dievaluasi menjadi True atau False (dari Bab 7)
  3. Titik dua (:): Ini wajib dan menandai akhir baris kondisi
  4. Blok kode yang diindentasi: Semua pernyataan yang diindentasi di bawah if dieksekusi hanya ketika kondisi bernilai True

Indentasi itu krusial di Python. Baris-baris yang diindentasi membentuk sebuah blok kode (code block) yang menjadi bagian dari pernyataan if. Python menggunakan indentasi (biasanya 4 spasi) untuk menentukan pernyataan mana yang merupakan bagian dari blok kondisional.

Berikut contoh sederhana:

python
# temperature_check.py
temperature = 30
 
if temperature > 25:
    print("It's a warm day!")
    print("Consider wearing light clothing.")
 
print("Have a great day!")  # Ini selalu dieksekusi

Output:

It's a warm day!
Consider wearing light clothing.
Have a great day!

Dalam contoh ini:

  • Kondisi temperature > 25 bernilai True (karena 30 > 25)
  • Kedua pernyataan print() yang diindentasi dieksekusi karena mereka bagian dari blok if
  • Pernyataan print() terakhir selalu dieksekusi karena tidak diindentasi—jadi bukan bagian dari blok if

Sekarang mari lihat apa yang terjadi ketika kondisinya False:

python
# temperature_check_cool.py
temperature = 18
 
if temperature > 25:
    print("It's a warm day!")
    print("Consider wearing light clothing.")
 
print("Have a great day!")  # Ini selalu dieksekusi

Output:

Have a great day!

Kali ini:

  • Kondisi temperature > 25 bernilai False (karena 18 tidak lebih besar dari 25)
  • Kedua pernyataan yang diindentasi dilewati sepenuhnya
  • Hanya print() terakhir yang dieksekusi karena berada di luar blok if

Ya

Tidak

Mulai

Apakah kondisi True?

Jalankan blok terindentasi

Lewati blok terindentasi

Lanjutkan dengan sisa program

Selesai

8.1.2) Menggunakan Kondisi dari Bab 7

Ekspresi boolean apa pun dari Bab 7 bisa digunakan sebagai kondisi dalam pernyataan if. Ini termasuk:

Operator perbandingan (comparison operators):

python
# voting_eligibility.py
age = 16
 
if age >= 18:
    print("You are eligible to vote.")
# Tidak ada yang tercetak karena 16 >= 18 bernilai False
 
score = 85
 
if score >= 60:
    print("You passed the exam!")  # Output: You passed the exam!

Pengujian keanggotaan (membership tests) dengan in dan not in:

python
# user_access.py
username = "alice"
banned_users = ["bob", "charlie", "dave"]
 
if username not in banned_users:
    print(f"Welcome, {username}!")  # Output: Welcome, alice!
 
favorite_color = "blue"
 
if "u" in favorite_color:
    print("Your favorite color contains the letter 'u'.")  # Output: Your favorite color contains the letter 'u'.

Nilai boolean langsung (direct boolean values):

python
# weather_check.py
is_raining = True
 
if is_raining:
    print("Don't forget your umbrella!")  # Output: Don't forget your umbrella!

Truthiness dan falsiness (dari Bab 7.4):

python
# name_input.py
user_input = input("Enter your name: ")
 
if user_input:  # String kosong bersifat falsy, yang tidak kosong bersifat truthy
    print(f"Hello, {user_input}!")
else:
    print("You didn't enter a name.")

8.1.3) Banyak Pernyataan dalam Blok if

Kamu bisa memasukkan sebanyak apa pun pernyataan yang kamu perlukan dalam sebuah blok if. Semua pernyataan yang diindentasi di bawah baris if adalah bagian dari blok tersebut:

python
# bank_withdrawal.py
balance = 1500
withdrawal = 200
 
if withdrawal <= balance:
    balance = balance - withdrawal  # Kurangi saldo dengan jumlah penarikan
    print(f"Withdrawal successful!")
    print(f"Your new balance is: ${balance}")
    print("Thank you for your transaction.")
 
print("Transaction complete.")  # Selalu dieksekusi

Output:

Withdrawal successful!
Your new balance is: $1300
Thank you for your transaction.
Transaction complete.

Keempat pernyataan dieksekusi karena withdrawal <= balance bernilai True. Jika kita ubah penarikan menjadi 2000:

python
# bank_withdrawal_insufficient.py
balance = 1500
withdrawal = 2000
 
if withdrawal <= balance:
    balance = balance - withdrawal
    print(f"Withdrawal successful!")
    print(f"Your new balance is: ${balance}")
    print("Thank you for your transaction.")
 
print("Transaction complete.")  # Selalu dieksekusi

Output:

Transaction complete.

Sekarang tidak ada pernyataan terindentasi yang dieksekusi karena kondisinya False. Saldo tetap tidak berubah di 1500.

8.2) Menggunakan if-else untuk Pilihan Entah-Atau

Sering kali kamu perlu memilih antara dua alternatif: mengeksekusi satu blok kode jika kondisi benar, dan blok yang berbeda jika salah. Pernyataan if-else (if-else statement) menangani pengambilan keputusan entah-atau ini.

8.2.1) Struktur if-else

Berikut sintaksnya:

python
if condition:
    # Kode yang dieksekusi jika condition bernilai True
    statement1
    statement2
else:
    # Kode yang dieksekusi jika condition bernilai False
    statement3
    statement4

Klausa else menyediakan jalur alternatif. Tepat satu dari dua blok akan dieksekusi—tidak pernah keduanya, dan tidak pernah tidak ada.

Ya

Tidak

Mulai

Apakah kondisi True?

Jalankan blok if

Jalankan blok else

Lanjutkan dengan sisa program

Selesai

Mari lihat contoh yang praktis:

python
# age_verification.py
age = int(input("Enter your age: "))
 
if age >= 18:
    print("You are an adult.")
    print("You can vote in elections.")
else:
    print("You are a minor.")
    print("You cannot vote yet.")
 
print("Thank you for providing your age.")

Jika kamu memasukkan 25:

You are an adult.
You can vote in elections.
Thank you for providing your age.

Jika kamu memasukkan 15:

You are a minor.
You cannot vote yet.
Thank you for providing your age.

Perhatikan bahwa tepat satu dari dua blok dieksekusi, bergantung pada kondisi. Pernyataan print() terakhir selalu dieksekusi karena berada di luar kedua blok.

8.2.2) Membuat Keputusan Biner

if-else sangat cocok untuk keputusan biner ketika hanya ada tepat dua kemungkinan hasil:

python
# even_odd_checker.py
number = int(input("Enter a number: "))
 
if number % 2 == 0:
    print(f"{number} is even.")
else:
    print(f"{number} is odd.")
python
# password_verification.py
stored_password = "python123"
entered_password = input("Enter password: ")
 
if entered_password == stored_password:
    print("Access granted.")
    print("Welcome to the system!")
else:
    print("Access denied.")
    print("Incorrect password.")

8.3) Banyak Pilihan dengan if-elif-else

Keputusan di dunia nyata sering melibatkan lebih dari dua opsi. Haruskah kita mengenakan biaya pengiriman standar, pengiriman ekspres, atau pengiriman semalam? Apakah sebuah nilai adalah A, B, C, D, atau F? Rangkaian if-elif-else menangani banyak alternatif yang saling eksklusif.

8.3.1) Struktur if-elif-else

Berikut sintaksnya:

python
if condition1:
    # Eksekusi jika condition1 bernilai True
    block1
elif condition2:
    # Eksekusi jika condition1 bernilai False dan condition2 bernilai True
    block2
elif condition3:
    # Eksekusi jika condition1 dan condition2 bernilai False, dan condition3 bernilai True
    block3
else:
    # Eksekusi jika semua kondisi bernilai False
    block4

Poin penting tentang rangkaian if-elif-else:

  1. elif adalah singkatan dari "else if": Ini menyediakan kondisi tambahan untuk dicek
  2. Urutan itu penting: Python mengecek kondisi dari atas ke bawah
  3. Kecocokan pertama menang: Begitu sebuah kondisi bernilai True, blok itu dieksekusi dan sisanya dilewati
  4. Tepat satu blok yang dieksekusi: Paling banyak satu blok dalam rangkaian yang akan berjalan
  5. else bersifat opsional: Ini menangkap semua kasus yang tidak ditangani oleh kondisi sebelumnya

Ya

Tidak

Ya

Tidak

Ya

Tidak

Mulai

Apakah condition1 True?

Jalankan block1

Apakah condition2 True?

Jalankan block2

Apakah condition3 True?

Jalankan block3

Jalankan blok else

Lanjutkan dengan sisa program

Selesai

Mari lihat contoh yang praktis:

python
# grade_calculator.py
score = int(input("Enter your exam score (0-100): "))
 
if score >= 90:
    grade = "A"
    print("Excellent work!")
elif score >= 80:
    grade = "B"
    print("Good job!")
elif score >= 70:
    grade = "C"
    print("Satisfactory.")
elif score >= 60:
    grade = "D"
    print("You passed, but consider reviewing the material.")
else:
    grade = "F"
    print("Unfortunately, you did not pass.")
 
print(f"Your grade is: {grade}")

Jika kamu memasukkan 85:

Good job!
Your grade is: B

Mari telusuri apa yang terjadi:

  1. Cek score >= 90: False (85 tidak >= 90), jadi lewati blok ini
  2. Cek score >= 80: True (85 >= 80), jadi eksekusi blok ini
  3. Lewati semua blok elif dan else yang tersisa karena kita sudah menemukan kecocokan

Jika kamu memasukkan 55:

Unfortunately, you did not pass.
Your grade is: F

Semua kondisi bernilai False, jadi blok else dieksekusi.

8.3.2) Mengapa Urutan Penting dalam Rangkaian elif

Urutan kondisi itu krusial karena Python berhenti mengecek begitu menemukan kondisi True. Perhatikan sistem penilaian yang salah ini:

python
# URUTAN SALAH - Jangan lakukan ini!
score = 85
 
if score >= 60:  # Ini akan cocok duluan!
    grade = "D"
elif score >= 70:
    grade = "C"
elif score >= 80:
    grade = "B"
elif score >= 90:
    grade = "A"
else:
    grade = "F"
 
print(f"Your grade is: {grade}")  # Output: Your grade is: D

Ini menghasilkan output yang salah! Skor 85 seharusnya B, tetapi malah mendapat D karena score >= 60 dicek lebih dulu dan bernilai True. Python tidak pernah mencapai kondisi score >= 80.

Selalu urutkan kondisi dari yang paling spesifik ke yang paling tidak spesifik:

python
# URUTAN BENAR
score = 85
 
if score >= 90:  # Paling spesifik
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
elif score >= 60:
    grade = "D"
else:  # Paling tidak spesifik
    grade = "F"
 
print(f"Your grade is: {grade}")  # Output: Your grade is: B

8.3.3) Menggunakan elif Tanpa else

Klausa else bersifat opsional. Terkadang kamu hanya ingin menangani kasus-kasus tertentu dan tidak melakukan apa pun untuk yang lain:

python
# weekend_checker.py
day = input("Enter a day of the week: ").lower()
 
if day == "saturday" or day == "sunday":
    print("It's the weekend! Time to relax.")
elif day == "friday":
    print("It's Friday! The weekend is almost here.")
elif day in ["monday", "tuesday", "wednesday", "thursday"]:
    print("It's a weekday. Time to work or study.")
# Tidak ada klausa else - jika tidak ada yang cocok, tidak terjadi apa-apa
 
print("Have a great day!")

Jika kamu memasukkan "holiday":

Have a great day!

Tidak ada kondisi yang cocok, dan tidak ada klausa else, jadi hanya print() terakhir yang dieksekusi.

8.4) Pernyataan if Bertingkat (Nested)

Terkadang kamu perlu membuat keputusan di dalam keputusan. Pernyataan if bertingkat (nested if statements) menempatkan satu kondisional di dalam kondisional lainnya, sehingga kamu bisa mengecek kondisi tambahan hanya setelah kondisi awal terpenuhi.

8.4.1) Memahami Kondisional Bertingkat

Pernyataan if bertingkat itu kuat karena memungkinkanmu menghindari pengecekan kondisi yang belum masuk akal. Misalnya, tidak ada gunanya meminta password jika pengguna tidak punya akun. Nesting memungkinkanmu menyusun logika agar sesuai dengan proses pengambilan keputusan di dunia nyata, di mana beberapa pertanyaan baru masuk akal setelah pertanyaan lain dijawab.

Sebuah pernyataan if bertingkat hanyalah sebuah pernyataan if (atau rangkaian if-elif-else) di dalam blok if lain:

python
if outer_condition:
    # Kode ini dieksekusi jika outer_condition bernilai True
    if inner_condition:
        # Kode ini dieksekusi jika KEDUA kondisi bernilai True
        inner_block
    else:
        # Ini dieksekusi jika outer_condition True tetapi inner_condition False
        inner_else_block
else:
    # Ini dieksekusi jika outer_condition False
    outer_else_block

Pernyataan if di dalam hanya dievaluasi jika kondisi luar bernilai True. Ini membuat hierarki keputusan.

Tidak

Ya

Ya

Tidak

Mulai

Kondisi luar True?

Jalankan blok else luar

Kondisi dalam True?

Jalankan blok if dalam

Jalankan blok else dalam

Lanjutkan

Selesai

Berikut contoh sederhana:

python
# account_login.py
has_account = input("Do you have an account? (yes/no): ").lower() == "yes"
 
if has_account:
    print("Welcome back!")
    password = input("Enter your password: ")
    
    if password == "secret123":
        print("Login successful!")
        print("Access granted to your dashboard.")
    else:
        print("Incorrect password.")
        print("Access denied.")
else:
    print("Please create an account first.")
    print("Visit our registration page.")

Jika kamu menjawab "yes" dan memasukkan password yang benar:

Welcome back!
Login successful!
Access granted to your dashboard.

Jika kamu menjawab "yes" tetapi memasukkan password yang salah:

Welcome back!
Incorrect password.
Access denied.

Jika kamu menjawab "no":

Please create an account first.
Visit our registration page.

Perhatikan bagaimana pengecekan password hanya terjadi jika pengguna memiliki akun. Ini adalah manfaat utama nesting—kamu bisa menghindari pengecekan yang tidak perlu.

8.4.2) Kapan Menggunakan Pernyataan if Bertingkat

Pernyataan if bertingkat berguna ketika:

  1. Keputusan bergantung pada keputusan sebelumnya: Kamu perlu mengecek sesuatu hanya setelah kondisi lain terpenuhi
  2. Membuat pohon keputusan: Setiap level mempersempit kemungkinan
  3. Memvalidasi prasyarat (prerequisites): Cek syarat dasar sebelum mengecek syarat yang lebih detail
  4. Menghindari pengecekan yang tidak perlu: Lewati operasi yang mahal ketika kondisi awal gagal

Contoh: Kelayakan untuk pinjaman

python
# loan_eligibility.py
age = int(input("Enter your age: "))
 
if age >= 18:
    print("Age requirement met.")
    income = float(input("Enter your annual income: $"))
    
    if income >= 30000:
        print("Income requirement met.")
        credit_score = int(input("Enter your credit score: "))
        
        if credit_score >= 650:
            print("Congratulations! You are eligible for a loan.")
            print("Please proceed to the application form.")
        else:
            print("Sorry, your credit score is too low.")
            print("Minimum required: 650")
    else:
        print("Sorry, your income is too low.")
        print("Minimum required: $30,000")
else:
    print("Sorry, you must be 18 or older to apply.")

Ini membuat sebuah pohon keputusan di mana setiap level bergantung pada level sebelumnya. Jika usia di bawah 18, kita tidak pernah menanyakan pendapatan atau skor kredit.

8.4.3) Menghindari Nesting yang Berlebihan

Meskipun nesting itu kuat, terlalu banyak level membuat kode sulit dibaca dan dipahami. Perhatikan contoh yang sangat bertingkat ini:

python
# Terlalu bertingkat - sulit diikuti
if condition1:
    if condition2:
        if condition3:
            if condition4:
                if condition5:
                    print("All conditions met!")

Ini sulit dibaca dan dirawat. Berikut strategi untuk mengurangi nesting:

Strategi 1: Gabungkan kondisi ketika sesuai

Kita akan mempelajari operator and secara detail di Bab 9, tapi untuk sekarang, ketahuilah bahwa operator ini memungkinkanmu mengecek banyak kondisi sekaligus:

python
# Lebih baik: Gunakan 'and' untuk menggabungkan kondisi (Bab 9 akan menjelaskan ini sepenuhnya)
# Kita akan mempelajari 'and' di Bab 9, tapi untuk sekarang, ketahuilah bahwa ini mengecek
# bahwa semua kondisi bernilai true
if condition1 and condition2 and condition3 and condition4 and condition5:
    print("All conditions met!")

Strategi 2: Gunakan return lebih awal (early returns) (saat bekerja dengan fungsi (functions), yang akan kita pelajari di Bab 19):

python
# Dalam sebuah fungsi, kita bisa return lebih awal
def check_eligibility(age, income, credit_score):
    if age < 18:
        return "Too young"
    if income < 30000:
        return "Income too low"
    if credit_score < 650:
        return "Credit score too low"
    return "Eligible"

Strategi 3: Ratakan dengan elif ketika sesuai:

python
# Daripada nested if yang mengecek rentang
if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
# ... dan seterusnya

8.5) Kesalahan Umum pada Pernyataan if (Indentasi, Titik Dua, dan Logika)

Bahkan programmer berpengalaman pun membuat kesalahan dengan pernyataan if. Bagian ini membahas error paling umum yang ditemui pemula dan cara menghindarinya.

8.5.1) Error Indentasi

Python menggunakan indentasi untuk menentukan pernyataan mana yang termasuk dalam blok tertentu. Indentasi yang salah adalah salah satu sumber error yang paling umum.

Masalah 1: Indentasi hilang

python
# SALAH - IndentationError
age = 20
 
if age >= 18:
print("You are an adult.")  # Tidak diindentasi!

Ini menghasilkan:

  File "example.py", line 4
    print("You are an adult.")
    ^
IndentationError: expected an indented block

Solusi: Selalu indentasi blok di bawah pernyataan if:

python
# BENAR
age = 20
 
if age >= 18:
    print("You are an adult.")  # Diindentasi dengan benar

Masalah 2: Indentasi tidak konsisten

python
# SALAH - Mencampur spasi dan tab, atau spasi yang tidak konsisten
if temperature > 30:
    print("It's hot!")
      print("Stay hydrated!")  # Spasi ekstra - indentasi tidak konsisten

Solusi: Gunakan indentasi yang konsisten (4 spasi adalah standar Python):

python
# BENAR
if temperature > 30:
    print("It's hot!")
    print("Stay hydrated!")  # Level indentasi yang sama

Masalah 3: Indentasi nesting yang salah

python
# SALAH - Level indentasi tidak tepat
if has_account:
    print("Welcome!")
    if password == "correct":
    print("Login successful!")  # Seharusnya lebih terindentasi

Solusi: Setiap level bertingkat membutuhkan indentasi tambahan:

python
# BENAR
if has_account:
    print("Welcome!")
    if password == "correct":
        print("Login successful!")  # Indentasi benar untuk blok bertingkat

8.5.2) Titik Dua yang Hilang

Titik dua (:) di akhir baris if, elif, dan else itu wajib. Melupakannya adalah kesalahan yang sangat umum:

python
# SALAH - SyntaxError: missing colon
if age >= 18
    print("Adult")

Ini menghasilkan:

  File "example.py", line 2
    if age >= 18
                ^
SyntaxError: invalid syntax

Solusi: Selalu sertakan titik dua:

python
# BENAR
if age >= 18:
    print("Adult")

Hal yang sama berlaku untuk elif dan else:

python
# BENAR - Semua titik dua ada
if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
else:
    grade = "F"

8.5.3) Operator Perbandingan yang Salah

Masalah 1: Menggunakan assignment (=) alih-alih perbandingan (==)

python
# SALAH - Ini menetapkan 18 ke age, bukan membandingkan!
age = 20
 
if age = 18:  # SyntaxError
    print("You are 18")

Solusi: Gunakan == untuk perbandingan:

python
# BENAR
age = 20
 
if age == 18:
    print("You are 18")

8.5.4) Kode Tidak Pernah Tercapai Karena Error Logika

Masalah: Kondisi yang tidak mungkin bernilai True

python
# SALAH - elif tidak akan pernah dieksekusi
score = 85
 
if score >= 60:
    print("You passed!")
elif score >= 80:  # Ini tidak akan pernah dieksekusi!
    print("You got a B!")

Jika score adalah 85, kondisi pertama (score >= 60) bernilai True, jadi elif tidak pernah dicek. Urutannya salah.

Solusi: Urutkan kondisi dari yang paling spesifik ke yang paling tidak spesifik:

python
# BENAR
score = 85
 
if score >= 80:
    print("You got a B!")
elif score >= 60:
    print("You passed!")

8.5.5) Blok if Kosong

Kamu tidak bisa memiliki blok if yang kosong di Python:

python
# SALAH - SyntaxError
if temperature > 30:
    # Nanti saya tambahkan kode di sini
 
print("Done")

Ini menghasilkan:

  File "example.py", line 3
    print("Done")
    ^
IndentationError: expected an indented block

Solusi: Gunakan pernyataan pass sebagai placeholder (dibahas di bagian berikutnya):

python
# BENAR - Menggunakan pass sebagai placeholder
if temperature > 30:
    pass  # TODO: Tambahkan kode di sini nanti
 
print("Done")

8.6) Menggunakan pass sebagai Placeholder dalam Blok

Terkadang saat menulis kode, kamu tahu kamu butuh pernyataan if tetapi belum memutuskan kode apa yang harus dimasukkan ke dalamnya. Python tidak mengizinkan blok kode kosong, jadi kamu butuh cara untuk membuat blok yang valid tetapi "tidak melakukan apa-apa". Di sinilah pernyataan pass berperan.

8.6.1) Apa itu pass?

Pernyataan pass adalah operasi null (null operation)—ketika Python mengeksekusinya, tidak terjadi apa-apa. Ini adalah placeholder yang memungkinkanmu menulis kode yang benar secara sintaks meskipun implementasinya belum siap.

python
if condition:
    pass  # Tidak melakukan apa-apa untuk sekarang

Anggap pass sebagai cara untuk memberi tahu Python: "Saya tahu saya butuh kode di sini, tapi akan saya isi nanti." Ini sangat berguna selama pengembangan ketika kamu sedang membuat kerangka struktur programmu.

8.6.2) Mengapa pass Diperlukan

Python mewajibkan setidaknya satu pernyataan di setiap blok kode. Blok kosong menyebabkan error sintaks:

python
# SALAH - Ini menyebabkan error
if age >= 18:
    # TODO: Tambahkan logika dewasa di sini
 
print("Done")

Error:

  File "example.py", line 3
    print("Done")
    ^
IndentationError: expected an indented block

Menggunakan pass membuat kode valid secara sintaks:

python
# BENAR - Menggunakan pass sebagai placeholder
if age >= 18:
    pass  # TODO: Tambahkan logika dewasa di sini
 
print("Done")

8.6.3) Penggunaan Umum pass

Penggunaan 1: Placeholder selama pengembangan

Saat kamu membuat garis besar struktur program tetapi belum mengimplementasikan semuanya:

python
# user_system.py
user_type = input("Enter user type (admin/user/guest): ").lower()
 
if user_type == "admin":
    pass  # TODO: Implementasikan fitur admin
elif user_type == "user":
    pass  # TODO: Implementasikan fitur user
elif user_type == "guest":
    print("Welcome, guest! Limited access granted.")
else:
    print("Invalid user type.")

Ini memungkinkanmu menjalankan program dan menguji bagian yang sudah kamu implementasikan sambil meninggalkan placeholder untuk pekerjaan selanjutnya.

Penggunaan 2: Sengaja tidak melakukan apa-apa pada salah satu cabang

Terkadang kamu memang ingin tidak melakukan apa pun dalam kasus tertentu tetapi perlu menangani kasus lain:

python
# positive_numbers.py
# Hanya memproses bilangan positif
number = int(input("Enter a number: "))
 
if number > 0:
    result = number * 2
    print(f"Double of {number} is {result}")
elif number == 0:
    pass  # Nol valid tetapi tidak memerlukan tindakan
else:
    print("Negative numbers are not allowed.")

8.6.4) pass dalam Konteks Lain

Meskipun kita berfokus pada pass dalam pernyataan if, kamu akan menemukannya di konteks lain saat kamu belajar lebih banyak Python:

  • Functions (Bab 20): Placeholder untuk body fungsi
  • Classes (Bab 31): Placeholder untuk definisi class
  • Loops (Bab 11-12): Placeholder untuk body loop
  • Exception handlers (Bab 29): Sengaja mengabaikan error

Untuk sekarang, ingat bahwa pass adalah alatmu untuk membuat blok kode yang valid tetapi kosong saat kamu membutuhkannya.


Menggabungkan Semuanya

Di bab ini, kamu sudah belajar cara membuat programmu menjadi cerdas dan responsif dengan menggunakan pernyataan kondisional. Mari tinjau konsep-konsep kuncinya:

Pernyataan if sederhana mengeksekusi kode hanya ketika kondisi benar:

python
if temperature > 30:
    print("It's hot outside!")

Pernyataan if-else memilih antara dua alternatif:

python
if age >= 18:
    print("Adult")
else:
    print("Minor")

Rangkaian if-elif-else menangani banyak opsi yang saling eksklusif:

python
if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
else:
    grade = "F"

Pernyataan if bertingkat membuat keputusan di dalam keputusan:

python
if has_account:
    if password_correct:
        print("Welcome!")
    else:
        print("Wrong password")
else:
    print("Create an account")

Kesalahan umum yang perlu dihindari:

  • Titik dua yang hilang setelah if, elif, dan else
  • Indentasi yang salah atau tidak konsisten
  • Menggunakan = alih-alih == untuk perbandingan
  • Urutan yang salah dalam rangkaian elif
  • Blok kosong tanpa pass

Pernyataan pass berfungsi sebagai placeholder untuk blok kosong selama pengembangan.

Sekarang kamu punya alat untuk menulis program yang membuat keputusan cerdas berdasarkan kondisi. Di bab berikutnya, kita akan belajar tentang operator logika boolean (boolean logic operators) (and, or, not) yang memungkinkanmu menggabungkan banyak kondisi menjadi logika pengambilan keputusan yang lebih canggih. Ini akan membuat pernyataan if-mu menjadi lebih kuat dan ekspresif.

© 2025. Primesoft Co., Ltd.
support@primesoft.ai