Modul 2 : Algoritma dan Pemrograman Lanjut
1. Tujuan Pembelajaran 🎯
Selamat datang di kelas Koding! 🚀
Selama 7 pertemuan ke depan, kita tidak sekadar mengetik kode, tapi belajar merancang solusi. Di akhir modul ini, kamu akan mampu:
Menganalisis & Memecah Masalah
Membagi masalah besar menjadi fungsi-fungsi kecil (modular programming) menggunakan Python.
Menerapkan Algoritma
Menggunakan algoritma Searching dan Sorting untuk menyaring dan mengatur data seperti sistem di dunia nyata.
Membangun Proyek AI
Merancang aplikasi Rule-based AI/Chatbot sederhana (seperti sistem rekomendasi) secara berkolaborasi dengan temanmu.
Sebelum kita mulai ngoding, mari kita pikirkan hal ini sejenak:
"Pernah nggak kamu mikir, pas nyari nama kontak mantan (eh, teman) di HP, gimana cara HP-mu bisa menemukan nama itu dalam hitungan milidetik dari ribuan kontak yang ada?"
"Kalau kamu disuruh bikin aplikasi sekelas Gojek, mending nulis 10.000 baris kode numpuk di satu tempat, atau dibagi-bagi jadi kotak-kotak rapi seperti 'Fitur GoRide', 'Fitur GoFood', dll?"
A. Modular Programming (Fungsi / def)
Bayangkan kode Python itu seperti Bongkar Pasang Lego atau Resep Nasi Goreng. Fungsi (Modular) ibarat bumbu dasar yang sudah diulek dan disimpan di kulkas. Kapan saja kamu butuh bikin nasi goreng, tinggal ambil (panggil) bumbunya. Kamu tidak perlu ngulek dari awal lagi!
- Sintaks Dasar: Menggunakan
def nama_fungsi(parameter):lalu diakhiri denganreturn. - Kenapa penting? Agar kode rapi, gampang diperbaiki (debug), dan enak kalau mau kerja bareng teman.
Blueprint Sintaks Proyek (Python)
Ini adalah gambaran kerangka kode yang akan kita gunakan pada proyek akhir (Chatbot) di tahap selanjutnya. Perhatikan bagaimana masalah besar dipecah menjadi fungsi-fungsi kecil!
# 1. DATABASE (List Data) database = [ {"nama": "Kopi Senja", "harga": 15000}, {"nama": "Kafe Murah", "harga": 10000} ] # 2. FUNGSI MODULAR: Algoritma Searching def cari_kafe(keyword): hasil = [] for kafe in database: if keyword.lower() in kafe["nama"].lower(): hasil.append(kafe) return hasil # 3. FUNGSI MODULAR: Algoritma Sorting def urutkan_termurah(data): # (Terapkan Bubble Sort atau list.sort() di sini) return sorted(data, key=lambda x: x["harga"]) # 4. FUNGSI UTAMA (Menggabungkan semua fungsi) def mulai_chatbot(): keyword = input("Cari kafe apa? ") # Memanggil fungsi pencarian & pengurutan data_ketemu = cari_kafe(keyword) data_urut = urutkan_termurah(data_ketemu) print("Hasil Rekomendasi:", data_urut) # Jalankan program mulai_chatbot()
B. Algoritma (Pencarian & Pengurutan)
"Gimana caranya Spotify tahu lagu kesukaanmu lalu mengurutkannya?"
Searching (Mencari)
Ada Linear Search (dicek satu-satu dari awal sampai akhir) dan Binary Search (datanya dibelah dua biar cepat, tapi syaratnya harus urut dulu).
Sorting (Mengurutkan)
Mengatur data yang acak jadi rapi. Contohnya Bubble Sort (membandingkan dua data bersebelahan, kalau posisinya salah, ditukar posisinya).
Saatnya tangan kita kotor dengan kode! Ingat aturan emas kelas kita:
"Error is Normal. Google it first, ask later!"
Aktivitas A: Refaktor Kode Rahasia (Pert. 3-4)
Misi: Kamu akan diberikan barisan kode Python yang berantakan tanpa fungsi. Tugas kelompokmu adalah merapikannya (refactoring) menjadi minimal 3 fungsi modular!
Latihan: Kita akan bermain dengan data tipe List. Kamu akan membuat sistem pencarian judul buku di perpustakaan maya dan mengurutkan nilai tryout dari yang tertinggi.
Aktivitas B: Hackathon Proyek AI! (Pert. 5-6)
Sistem Kerja:
- Kamu berpasangan (Pair Programming): Satu jadi Driver (yang ngetik), satu jadi Navigator (yang mikir logika).
- User (pengguna) akan mengetik keyword tertentu (contoh: "Kafe Murah").
- Programmu memanggil fungsi, menggunakan algoritma Searching untuk mencari keyword di dalam List database, dan menampilkan hasilnya menggunakan algoritma Sorting dari harga termurah.
Showcase & Bug Journal
Saatnya pamer karya! Kita akan mencoba chatbot buatan teman-temanmu secara langsung di Pertemuan ke-7.
📝 Jurnal Refleksi (Format 3-2-1)
Setelah showcase, lengkapi jurnal di bawah ini di buku catatanmu:
- 3 Hal baru yang aku pelajari dari bikin program ini: ...
- 2 Momen "AHA!" atau bagian paling seru pas ngoding: ...
- 1 Kesulitan/Bug paling ngeselin dan bagaimana cara aku menyelesaikannya: ...
SMA Kristen Barana © 2025/2026

0 Komentar:
Posting Komentar
Berlangganan Posting Komentar [Atom]
<< Beranda