Hari 4: Kontrol Alur: If-Else, Loop, & Fungsi

Belajar kontrol alur Python: if-else, for/while loop, fungsi. Praktik dengan data nyata! Kuasai logika pemrograman untuk analisis data.

kontrol alur python, if-else python, loop python, fungsi python, logika pemrograman

Keywords: kontrol alur python, if-else python, loop python, fungsi python, logika pemrograman

Dari Struktur Data ke Logika Program

Di Hari 3, kita telah menguasai struktur data Python (list, tuple, dictionary) yang memungkinkan kita menyimpan dan mengorganisir data secara efisien. Sekarang, kita perlu belajar bagaimana mengendalikan alur eksekusi program berdasarkan kondisi tertentu dan mengotomatisasi tugas berulang.

Bayangkan Anda memiliki daftar penjualan harian dan ingin mengetahui transaksi mana yang melebihi target. Atau Anda perlu memproses setiap baris dalam dataset ribuan pelanggan. Tanpa kontrol alur yang tepat, Anda harus menulis kode berulang-ulang secara manual – sesuatu yang sangat tidak efisien dan rentan error.

Logika adalah otak program. Kuasai if-else, loop, dan fungsi di Hari 4!

Setiap program yang powerful memiliki kemampuan membuat keputusan, mengulang tugas, dan mengorganisir kode menjadi blok-blok yang dapat digunakan kembali. Hari ini, kita akan mempelajari tiga konsep fundamental yang akan mengubah cara Anda berpikir tentang pemrograman: pernyataan kondisional (if-else), perulangan (loop), dan fungsi. Ini adalah “otak” di balik setiap analisis data otomatis yang akan Anda bangun di masa depan.

Pernyataan Kondisional: If-Else untuk Pengambilan Keputusan

Pernyataan if-else memungkinkan program Anda membuat keputusan berdasarkan kondisi tertentu. Ini seperti percabangan di jalan – program akan mengambil jalur yang berbeda tergantung pada apakah kondisi terpenuhi atau tidak.

Sintaks Dasar If-Else

if kondisi:
    # Kode yang dijalankan jika kondisi True
else:
    # Kode yang dijalankan jika kondisi False

Contoh Implementasi

# Mengecek status kelulusan
nilai = 78

if nilai >= 75:
    print("Selamat! Anda lulus.")
else:
    print("Maaf, Anda belum lulus.")

If-Else Bertingkat

Untuk kondisi yang lebih kompleks, kita bisa menggunakan elif (else if):

# Menentukan kategori nilai
nilai = 85

if nilai >= 90:
    print("A")
elif nilai >= 80:
    print("B")
elif nilai >= 70:
    print("C")
elif nilai >= 60:
    print("D")
else:
    print("E")

Operator Logika dalam Kondisi

Kita bisa menggabungkan beberapa kondisi menggunakan operator logika:

  • and: Kedua kondisi harus True
  • or: Salah satu kondisi harus True
  • not: Membalikkan nilai boolean
# Mengecek kelayakan kredit
usia = 28
penghasilan = 8000000
riwayat_kredit = "baik"

if usia >= 21 and penghasilan >= 5000000 and riwayat_kredit == "baik":
    print("Kredit disetujui")
else:
    print("Kredit ditolak")

Perulangan (Loop): Mengotomatisasi Tugas Berulang

Loop memungkinkan kita mengeksekusi blok kode berulang kali tanpa menulis ulang kode tersebut. Python memiliki dua jenis loop utama: for dan while.

For Loop: Iterasi pada Urutan Tertentu

For loop digunakan ketika kita tahu berapa kali iterasi akan dilakukan, biasanya untuk mengiterasi elemen dalam koleksi data.

# Menghitung total penjualan
penjualan = [1200000, 3500000, 2800000, 4200000]
total = 0

for nilai in penjualan:
    total += nilai
    
print(f"Total penjualan: Rp {total:,}")

While Loop: Iterasi Berdasarkan Kondisi

While loop terus mengeksekusi selama kondisi tertentu terpenuhi. Kita harus berhati-hati untuk menghindari infinite loop.

# Simulasi penghitung mundur
countdown = 5

while countdown > 0:
    print(f"Hitung mundur: {countdown}")
    countdown -= 1
    
print("Mulai!")

Loop dengan Break dan Continue

  • break: Menghentikan loop secara prematur
  • continue: Melompati iterasi saat ini dan melanjutkan ke iterasi berikutnya
# Mencari produk tertentu dalam daftar
produk = ["Laptop", "Mouse", "Keyboard", "Monitor"]
cari = "Keyboard"

for item in produk:
    if item == cari:
        print(f"Ditemukan: {item}")
        break
    else:
        print(f"Bukan {cari}, lanjut mencari...")

Nested Loop (Loop Bersarang)

Kita bisa menempatkan loop di dalam loop lain untuk struktur data yang lebih kompleks:

# Menampilkan tabel perkalian
for i in range(1, 6):
    for j in range(1, 6):
        print(f"{i*j:3}", end=" ")
    print()  # Baris baru

Fungsi: Memblok Kode untuk Digunakan Kembali

Fungsi adalah blok kode terorganisir yang dapat digunakan kembali untuk melakukan tugas tertentu. Mereka membantu kita:

  • Menghindari pengulangan kode (DRY principle)
  • Membuat kode lebih modular dan mudah dibaca
  • Mempermudah pengujian dan debugging

Membuat dan Memanggil Fungsi

# Fungsi sederhana
def sapa():
    print("Halo, selamat datang di dunia data!")

# Memanggil fungsi
sapa()

Fungsi dengan Parameter

Parameter memungkinkan kita memberikan input ke fungsi:

# Fungsi dengan parameter
def sapa_nama(nama):
    print(f"Halo {nama}, selamat datang!")

# Memanggil dengan argumen
sapa_nama("Budi")

Fungsi dengan Return Value

Fungsi bisa mengembalikan nilai menggunakan kata kunci return:

# Fungsi menghitung luas persegi
def luas_persegi(sisi):
    return sisi * sisi

# Menggunakan nilai return
hasil = luas_persegi(5)
print(f"Luas persegi: {hasil}")

Fungsi dengan Parameter Default

Kita bisa memberikan nilai default untuk parameter:

# Fungsi dengan parameter default
def hitung_pajak(harga, rate=0.1):
    return harga * rate

# Memanggil dengan dan tanpa parameter rate
pajak1 = hitung_pajak(1000000)      # Menggunakan default rate 10%
pajak2 = hitung_pajak(1000000, 0.15) # Menggunakan rate 15%

print(f"Pajak 10%: Rp {pajak1:,}")
print(f"Pajak 15%: Rp {pajak2:,}")

Studi Kasus: Filter Data Penjualan di Atas Target

Mari kita terapkan semua konsep hari ini dalam skenario nyata: menganalisis data penjualan dan mengidentifikasi transaksi yang melebihi target.

Kasus: Sebuah perusahaan memiliki target penjualan minimum Rp 2.000.000 per transaksi. Kita perlu:

  1. Menampilkan semua transaksi di atas target
  2. Menghitung total nilai transaksi di atas target
  3. Menghitung persentase transaksi di atas target
# Data penjualan (dalam ribuan rupiah)
data_penjualan = [
    {"tanggal": "2023-01-01", "nilai": 1500},
    {"tanggal": "2023-01-02", "nilai": 3200},
    {"tanggal": "2023-01-03", "nilai": 1800},
    {"tanggal": "2023-01-04", "nilai": 4500},
    {"tanggal": "2023-01-05", "nilai": 2100},
    {"tanggal": "2023-01-06", "nilai": 900},
    {"tanggal": "2023-01-07", "nilai": 3800}
]

target = 2000  # Target dalam ribuan rupiah

# Fungsi untuk filter transaksi di atas target
def filter_penjualan_di_atas_target(data, target):
    hasil = []
    for transaksi in data:
        if transaksi["nilai"] > target:
            hasil.append(transaksi)
    return hasil

# Fungsi menghitung total nilai
def hitung_total(data):
    total = 0
    for transaksi in data:
        total += transaksi["nilai"]
    return total

# Memfilter transaksi di atas target
penjualan_di_atas_target = filter_penjualan_di_atas_target(data_penjualan, target)

# Menghitung total dan persentase
total_semua = hitung_total(data_penjualan)
total_di_atas_target = hitung_total(penjualan_di_atas_target)
persentase = (len(penjualan_di_atas_target) / len(data_penjualan)) * 100

# Menampilkan hasil
print("=== Transaksi di Atas Target ===")
for transaksi in penjualan_di_atas_target:
    print(f"Tanggal: {transaksi['tanggal']}, Nilai: Rp {transaksi['nilai']:,}")

print(f"\nTotal semua transaksi: Rp {total_semua:,}")
print(f"Total transaksi di atas target: Rp {total_di_atas_target:,}")
print(f"Persentase transaksi di atas target: {persentase:.1f}%")

Output program ini akan menampilkan:

=== Transaksi di Atas Target ===
Tanggal: 2023-01-02, Nilai: Rp 3,200
Tanggal: 2023-01-04, Nilai: Rp 4,500
Tanggal: 2023-01-05, Nilai: Rp 2,100
Tanggal: 2023-01-07, Nilai: Rp 3,800

Total semua transaksi: Rp 17,800
Total transaksi di atas target: Rp 13,600
Persentase transaksi di atas target: 57.1%

Contoh Praktik: Fungsi Hitung Rata-Rata Nilai

Sekarang, mari kita buat fungsi yang lebih umum yang bisa Anda gunakan dalam berbagai skenario analisis data: fungsi untuk menghitung rata-rata nilai dalam sebuah list.

def hitung_rata_rata(data):
    if len(data) == 0:
        return 0  # Menghindari pembagian dengan nol
    
    total = 0
    for nilai in data:
        total += nilai
        
    return total / len(data)

# Contoh penggunaan
nilai_siswa = [85, 90, 78, 92, 88]
rata_rata = hitung_rata_rata(nilai_siswa)
print(f"Rata-rata nilai siswa: {rata_rata:.1f}")

# Contoh lain: rata-rata penjualan
penjualan = [1200000, 3500000, 2800000, 4200000]
rata_penjualan = hitung_rata_rata(penjualan)
print(f"Rata-rata penjualan: Rp {rata_penjualan:,.0f}")

Kesimpulan

Hari ini kita telah mempelajari tiga konsep fundamental yang menjadi tulang punggung pemrograman Python:

  1. If-Else: Membuat program Anda cerdas dengan kemampuan pengambilan keputusan berdasarkan kondisi
  2. Loop: Mengotomatisasi tugas berulang untuk memproses koleksi data secara efisien
  3. Fungsi: Membuat kode modular, dapat digunakan kembali, dan lebih mudah dikelola

Kontrol alur ini adalah alat penting yang akan Anda gunakan setiap hari sebagai data analyst. Dari filtering data sederhana hingga membangun pipeline analisis kompleks, semua bergantung pada pemahaman kuat akan konsep-konsep ini.

Dengan menguasai if-else, loop, dan fungsi, Anda sekarang memiliki kemampuan untuk:

  • Menganalisis data secara kondisional
  • Memproses dataset besar secara otomatis
  • Membangun alat analisis yang dapat digunakan kembali

Buat fungsi hitung rata-rata nilai. Share kode Anda di kolom komentar! Coba variasi seperti menambahkan parameter untuk mengabaikan nilai terendah/tertinggi, atau menghitung median. Di Hari 5, kita akan melangkah ke dunia database dengan mempelajari dasar-dasar SQL – bahasa penting lainnya untuk data analyst. Tetap semangat belajar!

#Python #Logika #Pemula #PythonDasar #BelajarCoding #DataScience

Leave a Comment