Semester 2
17 modul ajar · X TJKT · Fase E
CONTROL FLOW
2 minggu — percabangan dan perulangan
Operator & Percabangan
Isi Pokok
• Operator aritmatika: +, -, *, /, //, % • Operator perbandingan: ==, !=, >, < • Operator logika: and, or, not • Percabangan: if, if-else, if-elif-else
Kegiatan Praktik
• Praktik operator aritmatika • Buat program penentuan ganjil/genap • Buat program nilai huruf (A/B/C/D)
Perulangan
Isi Pokok
• For loop: `for i in range(10):` • While loop: `while kondisi:` • Range: start, stop, step • Break & Continue
Kegiatan Praktik
• Cetak angka 1-10 dengan for loop • Hitung jumlah bilangan genap dengan while • Eksperimen break vs continue
PYTHON MENENGAH
5 minggu — function, data structure, file
Function
Isi Pokok
• `def nama_fungsi(parameter):` • Parameter & return • Scope: global vs local • Default parameter
Kegiatan Praktik
• Buat fungsi penjumlahan • Buat fungsi dengan return value • Eksperimen scope global vs local
List & Tuple
Isi Pokok
• List: `[1, 2, 3]` — mutable • Operasi: append, remove, index, sorting • Slicing: `list[awal:akhir]` • List comprehension
Kegiatan Praktik
• Buat list nama siswa • Praktik append, remove, sort • Buat list comprehension sederhana
Dictionary & Set
Isi Pokok
• Dictionary: `{"nama": "Budi"}` — key: value • Operasi dict: akses, tambah, hapus • Set: `{1, 2, 3}` — unik • Operasi set: union, intersection
Kegiatan Praktik
• Buat dictionary data siswa • Praktik operasi dictionary • Eksperimen set (hapus duplikat)
String Manipulation
Isi Pokok
• Method: split(), join(), replace() • upper(), lower(), strip() • find(), count() • f-string untuk format
Kegiatan Praktik
• Praktik split nama depan/belakang • Ganti kata dalam kalimat • Format output dengan f-string
File Handling
Isi Pokok
• `open("file.txt", "r")` — baca • `open("file.txt", "w")` — tulis • `with open(...) as f:` — context manager • Format: TXT, CSV
Kegiatan Praktik
• Tulis data siswa ke file • Baca isi file • Simpan data dalam format CSV
COMPUTATIONAL THINKING LANJUT
2 minggu — rekursi dan graf
Rekursi
Isi Pokok
• Fungsi yang memanggil diri sendiri • Base case: kondisi berhenti • Faktorial: `n * faktorial(n-1)` • Fibonacci: `fib(n-1) + fib(n-2)`
Kegiatan Praktik
• Visualisasi pemanggilan rekursi • Praktik fungsi faktorial • Praktik fungsi fibonacci • Bandingkan vs perulangan
Graf Sederhana
Isi Pokok
• Node & edge • Graf berarah vs tidak berarah • Adjacency list/matrix • BFS: mencari dari terdekat • DFS: mencari sampai mentok
Kegiatan Praktik
• Buat graf peta sekolah • Implementasi BFS sederhana • Implementasi DFS sederhana • Bandingkan BFS vs DFS
MINI PROYEK
3 minggu — praktik coding
Praktik — Kalkulator
Isi Pokok
• Penjumlahan, pengurangan, perkalian, pembagian • Pangkat, modulus • Input dari user dengan menu • Error handling: pembagian nol
Kegiatan Praktik
• Buat program kalkulator lengkap • Tambah menu pilihan • Handle error pembagian nol
Praktik — Tebak Angka
Isi Pokok
• Angka acak 1-100 • Input tebakan dari user • Clue: lebih besar/kecil • Batas percobaan
Kegiatan Praktik
• Buat game tebak angka • Tambah clue untuk user • Batasi jumlah percobaan
Praktik — To-Do List
Isi Pokok
• Tambah, hapus, lihat, tandai selesai • Simpan data di list/dictionary • Simpan ke file agar tidak hilang • Menu pilihan untuk user
Kegiatan Praktik
• Buat program to-do list • Tambah fitur simpan ke file • Buat menu interaktif
OOP & MINI PROYEK LENGKAP
4 minggu — OOP + proyek integrasi
OOP Dasar
Isi Pokok
• Class: blueprint/cetakan • Object: instance dari class • Method: fungsi di class • `__init__`: constructor
Kegiatan Praktik
• Buat class Siswa • Buat object dari class • Tambah method dan attribute
Mini Proyek — Perancangan
Isi Pokok
• Pemilihan topik proyek • Dekomposisi masalah • Menulis algoritma • Merancang struktur program
Kegiatan Praktik
• Pilih topik dari daftar • Pecah menjadi sub-tugas • Tulis algoritma untuk setiap tugas • Rancang struktur program
Mini Proyek — Pengembangan
Isi Pokok
• Coding: implementasi kode • Testing: uji dengan berbagai input • Debugging: perbaiki error • Optimasi: sederhanakan kode
Kegiatan Praktik
• Implementasi kode Python • Test program • Perbaiki bug • Optimasi performa
Presentasi & Ujian
Isi Pokok
• Presentasi proyek per kelompok • Tanya jawab • Ujian praktik: function, list, file, rekursi, graf • Review materi
Kegiatan Praktik
• Presentasi 5 menit per kelompok • Siswa lain bertanya • Ujian praktik • Review akhir
Daftar Modul
Operator & Percabangan
Mengenal operator dan percabangan (if-elif-else) dalam Python.
Perulangan
Mengenal for loop dan while loop dalam Python.
Function
Mengenal fungsi dalam Python: def, parameter, return, scope.
List & Tuple
Mengenal list dan tuple sebagai struktur data dalam Python.
Dictionary & Set
Mengenal dictionary dan set sebagai struktur data dalam Python: key-value pairs, operasi dictionary, set unik, union/intersection/difference.
String Manipulation
Mengenal operasi string lanjutan dalam Python: methods (split, join, replace, upper, lower, strip), find, count, startswith, endswith, f-string, dan slicing.
File Handling
Mengenal operasi file dalam Python: open, read, write, append, context manager (with), format txt dan csv.
Mini Proyek Python Menengah
Mengintegrasikan semua konsep Python menengah dalam proyek nyata: kalkulator dengan menu, operasi aritmatika, error handling, dan penyimpanan riwayat.
Rekursi: Konsep Dasar
Mengenal rekursi sebagai teknik pemrograman di mana fungsi memanggil dirinya sendiri, termasuk base case, recursive case, dan visualisasi stack.
Rekursi: Fibonacci & Factorial
Menerapkan rekursi pada kasus nyata: Fibonacci dan Factorial, termasuk optimasi memoization dan perbandingan performa.
Graf: Konsep Dasar
Mengenal graf sebagai struktur data: definisi node/edge, jenis graf berarah/tidak berarah, dan representasi adjacency list/matrix.
Graf: BFS & DFS
Mengimplementasikan algoritma BFS (Breadth-First Search) dan DFS (Depth-First Search) untuk menjelajahi graf, termasuk implementasi Python dan aplikasi pencarian path.
Mini Proyek: Rekursi & Graf
Mengintegrasikan rekursi dan graf dalam proyek nyata — maze solver, pathfinding, dan pencarian rute terpendek.
OOP: Class & Object
Mengenal Object-Oriented Programming: class, object, method, constructor __init__, attribute, dan self.
OOP: Inheritance & Polymorphism
Mengenal inheritance, method overriding, super(), polymorphism, dan isinstance dalam Python.
Ujian Praktik Semester 2
Evaluasi akhir kompetensi Python menengah: function, list, file handling, rekursi, graf, dan OOP.
Timeline Pembelajaran — Semester 2
Timeline dan rangkuman pembelajaran Koding dan Kecerdasan Artifisial Kelas X Semester 2: Python Menengah & Problem Solving