A. Konsep Dasar Percabangan Majemuk
1. Pengertian Percabangan Majemuk
Percabangan majemuk adalah struktur kontrol yang memungkinkan program membuat keputusan berdasarkan beberapa kondisi sekaligus. Berbeda dengan percabangan sederhana (if-else) yang hanya mempertimbangkan dua kemungkinan, percabangan majemuk dapat menangani banyak skenario.
2. Bentuk-bentuk Percabangan Majemuk
a. If-Else Bertingkat (Nested If)
if kondisi1:# kode jika kondisi1 benarelif kondisi2:# kode jika kondisi2 benarelif kondisi3:# kode jika kondisi3 benarelse:# kode jika semua kondisi salah
b. Percabangan dengan Operator Logika
if kondisi1 and kondisi2:# kode jika kondisi1 DAN kondisi2 benarif kondisi1 or kondisi2:# kode jika kondisi1 ATAU kondisi2 benar
3. Contoh Implementasi
# Contoh penentuan grade nilainilai = 85if nilai >= 90:grade = "A"elif nilai >= 80:grade = "B"elif nilai >= 70:grade = "C"elif nilai >= 60:grade = "D"else:grade = "E"
B. Konsep Dasar Perulangan (Loop)
1. Pengertian Perulangan
Perulangan adalah struktur kontrol yang mengulang eksekusi blok kode selama kondisi tertentu terpenuhi.
2. Jenis-jenis Perulangan
a. For Loop (Perulangan Terhitung)
for i in range(5): # mengulang 5 kaliprint(f"Perulangan ke-{i+1}")
b. While Loop (Perulangan Bersyarat)
counter = 0while counter < 5:print(f"Counter: {counter}")counter += 1
3. Kontrol Perulangan
break: Menghentikan perulangancontinue: Melompat ke iterasi berikutnyaelsedalam loop: Dieksekusi ketika loop selesai secara normal
C. Integrasi Percabangan dan Perulangan
Contoh Program Terintegrasi
# Program menghitung rata-rata dengan validasijumlah_data = 0total = 0while True:nilai = float(input("Masukkan nilai (-1 untuk berhenti): "))if nilai == -1:breakelif nilai < 0 or nilai > 100:print("Nilai tidak valid! Masukkan nilai 0-100")continuetotal += nilaijumlah_data += 1if jumlah_data > 0:rata_rata = total / jumlah_dataprint(f"Rata-rata: {rata_rata:.2f}")else:print("Tidak ada data yang dimasukkan")
TUGAS: MINI PROYEK KREATIF BERBASIS JURUSAN
PETUNJUM UMUM
Buat program menggunakan Python yang mengintegrasikan percabangan majemuk dan perulangan
Program harus relevan dengan jurusan masing-masing
Tambahkan kreativitas dalam antarmuka dan fitur
Presentasikan program di depan kelas dengan menjelaskan algoritmanya
TUGAS SPESIFIK JURUSAN
1. UNTUK JURUSAN TJKT (Teknik Jaringan Komputer dan Telekomunikasi)
Judul: "Network Configuration Assistant"
Spesifikasi Program:
"""Fitur Wajib:1. Menu utama dengan percabangan majemuk2. Validasi IP Address menggunakan perulangan dan percabangan3. Simulasi ping test dengan loop4. Rekomendasi konfigurasi berdasarkan kelas IP5. Log aktivitas konfigurasi"""# Contoh strukturdef validasi_ip(ip):# Implementasi validasi segmen IP 0-255passdef subnet_calculator():# Hitung subnet berdasarkan kelas IPpassdef ping_simulasi(ip):# Simulasi ping dengan hasil randompass
Kriteria Penilaian:
Kompleksitas validasi IP (30%)
Akurasi perhitungan subnet (30%)
Kreativitas antarmuka (20%)
Dokumentasi kode (20%)
HASIL PROGRAM YANG DIHARAPKAN
2. UNTUK JURUSAN TATA BUSANA
Judul: "Fabric Calculator & Pattern Assistant"
Spesifikasi Program:
"""Fitur Wajib:1. Kalkulator kebutuhan kain dengan berbagai jenis bahan2. Rekomendasi pola berdasarkan tipe tubuh (percabangan majemuk)3. Perhitungan biaya dengan diskon bertingkat4. Simulasi percetakan pola dengan perulangan5. Katalog bahan dengan filter"""# Contoh strukturdef hitung_kebutuhan(panjang, lebar, jenis_bahan):# Hitung kebutuhan kain dengan waste factorpassdef rekomendasi_pola(tinggi, berat, bentuk_tubuh):# Berikan rekomendasi pola sesuai karakteristikpassdef simulasi_pola(jumlah_layer):# Tampilkan simulasi pola berlapispass
Data Referensi:
Waste factor: Katun (15%), Sutra (20%), Denim (10%)
Harga/meter: Katun (Rp 50.000), Sutra (Rp 150.000), Denim (Rp 75.000)
Diskon: >10m (5%), >20m (10%), >50m (15%)
Kriteria Penilaian:
Akurasi perhitungan (30%)
Relevansi rekomendasi (30%)
Visualisasi output (20%)
Kelengkapan fitur (20%)
Judul: "Motorcycle Maintenance Simulator"
Spesifikasi Program:
"""Fitur Wajib:1. Sistem diagnosa kerusakan dengan pohon keputusan (percabangan majemuk)2. Jadwal perawatan berkala dengan reminder3. Kalkulator biaya servis dengan komponen dinamis4. Simulasi uji performa dengan perulangan5. History perawatan"""# Contoh strukturdef diagnosa_mesin(gejala):# Pohon keputusan untuk identifikasi masalahpassdef jadwal_servis(km_terakhir, tipe_motor):# Generate jadwal servis berikutnyapassdef simulasi_test(kecepatan, durasi):# Simulasi uji ketahananpass
Data Teknis:
Interval servis: Bebek (2000 km), Sport (1500 km), Matic (2500 km)
Komponen servis: Oli, Filter, Busi, Kampas Rem
Harga: Variasikan berdasarkan jenis motor
Kriteria Penilaian:
Kedalaman diagnosa (30%)
Akurasi perhitungan (30%)
Realisme simulasi (20%)
Usabilitas program (20%)
HASIL PROGRAM YANG DIHARAPKAN
FORMAT PENGUMPULAN
Struktur Folder:
NamaSiswa_Kelas_Jurusan/├── program.py├── dokumentasi.txt├── test_cases.txt└── presentasi.pptx (opsional)
Dokumentasi Wajib:
Deskripsi Program: Minimal 100 kata
Algoritma Utama: Flowchart atau pseudocode
Fitur Implementasi: List fitur yang berhasil dibuat
Kesulitan & Solusi: Refleksi pembelajaran
Ide Pengembangan: Fitur yang bisa ditambahkan
Teknis:
Deadline: 1 minggu dari pemberian tugas
Presentasi: 5-10 menit per kelompok
Bahasa pemrograman: Python (disarankan)
Boleh bekerja berkelompok (maks 3 orang)
RUBRIK PENILAIAN
| Kriteria | Bobot | Deskripsi |
|---|---|---|
| Fungsionalitas | 40% | Program berjalan tanpa error, semua fitur wajib terimplementasi |
| Relevansi Jurusan | 20% | Program sesuai konteks keahlian jurusan |
| Kreativitas | 15% | Inovasi dalam fitur atau antarmuka |
| Kompleksitas Algoritma | 15% | Penggunaan percabangan dan perulangan yang optimal |
| Dokumentasi | 10% | Kelengkapan dan kejelasan dokumentasi |
CONTOH IMPLEMENTASI AWAL
Template Program Dasar:
# ===============================# PROGRAM: [NAMA PROGRAM]# JURUSAN: [NAMA JURUSAN]# NAMA: [NAMA SISWA]# ===============================def tampilkan_menu():print("\n" + "="*40)print("SELAMAT DATANG DI [NAMA PROGRAM]")print("="*40)print("1. Fitur Pertama")print("2. Fitur Kedua")print("3. Fitur Ketiga")print("4. Keluar")print("="*40)def main():while True:tampilkan_menu()pilihan = input("Masukkan pilihan (1-4): ")if pilihan == "1":# Implementasi fitur 1passelif pilihan == "2":# Implementasi fitur 2passelif pilihan == "3":# Implementasi fitur 3passelif pilihan == "4":print("Terima kasih telah menggunakan program!")breakelse:print("Pilihan tidak valid! Silakan coba lagi.")if __name__ == "__main__":main()
TIPS PENGERJAAN:
Rencanakan Algoritma Sebelum coding, buat flowchart/pseudocode
Kembangkan Bertahap Mulai dari fitur sederhana, lalu tambahkan kompleksitas
Testing Berkala Test setiap fitur yang selesai dibuat
Gunakan Fungsi Pecah kode menjadi fungsi-fungsi kecil
Komunikasikan Diskusikan masalah dengan teman/guru
"Kreativitas dalam pemrograman bukan hanya tentang menulis kode, tapi tentang menyelesaikan masalah nyata dengan logika yang elegan."
Selamat mengerjakan dan berkreasi! 🚀






