MODUL AJAR Informatika — Kelas 11 (Fase F) Topik: Bab 4 — Pengembangan Kemampuan Berpikir Komputasional dan Implementasi Algoritma INFORMASI UMUM| Mata Pelajaran | Informatika |
|---|
| Fase / Kelas | Fase F / Kelas 11 |
|---|
| Topik | Bab 4 — Pengembangan Kemampuan Berpikir Komputasional dan Implementasi Algoritma |
|---|
| Alokasi Waktu | 49 JP (49 x 45 menit = 2205 menit) |
|---|
| Jumlah Pertemuan | 20 |
|---|
| Tahun Ajaran | 2026/2027 |
|---|
| Semester | 2 |
|---|
TUJUAN PEMBELAJARAN- TP 11.4.1 Menganalisis persoalan yang menghasilkan lebih dari satu solusi dengan beberapa strategi algoritmik
- TP 11.4.2 Menjustifikasi efisiensi, kelebihan, dan keterbatasan dari setiap alternatif solusi persoalan komputasi
- TP 11.4.3 Menerapkan solusi terbaik, paling efisien, dan optimal dengan merancang struktur data yang lebih kompleks dan abstrak
- TP 11.4.4 Mengembangkan program komputer terstruktur dalam notasi algoritma berdasarkan strategi algoritmik yang tepat
- TP 11.4.5 Menyempurnakan algoritma standar ke dalam kode sumber program dengan memperhatikan kualitasnya
- TP 11.4.6 Mengimplementasikan program yang menggunakan struktur data kompleks dan tepat menggunakan library atau perangkat yang tersedia
PROFIL LULUSAN| Dimensi | Disasar |
|---|
| Keimanan dan Ketakwaan terhadap Tuhan Yang Maha Esa | | | Kewargaan | | | Penalaran Kritis | ✓ | | Kreativitas | ✓ | | Kolaborasi | ✓ | | Kemandirian | ✓ | | Kesehatan | | | Komunikasi | |
PERTANYAAN PEMANTIK- Bagaimana cara kita memodelkan persoalan lintasan terbang burung berpeluncur ketapel ke dalam bentuk matematis dan logika komputasi?
- Apakah ada lebih dari satu strategi komputasi untuk menentukan apakah seekor burung dapat mencapai atau melampaui sarangnya di pohon?
- Mengapa suatu persoalan alokasi atau pencarian data stok darah darurat dapat diselesaikan dengan lebih dari satu cara kerja algoritma?
- Bagaimana kita membedakan logika pemecahan persoalan stok darah antara pendekatan pencarian bertahap (linear/brute force) dengan pendekatan berbasis prioritas atau pengelompokan (greedy/hashing)?
- Bagaimana kita memodelkan penentuan kombinasi genotipe persilangan dihibrid dan perhitungan pereaksi pembatas kimia ke dalam langkah-langkah komputasi?
- Apakah pendekatan brute force selalu menjadi satu-satunya cara, ataukah ada strategi pencarian berbasis aturan kombinatorika dan formula analitik langsung yang menghasilkan solusi serupa?
- Jika ada dua algoritma berbeda yang sama-sama menghasilkan lintasan burung yang akurat, bagaimana kita menentukan mana yang paling hemat memori dan cepat dieksekusi?
- Mengapa menyimpan semua jejak koordinat setiap detik membutuhkan memori lebih besar dibandingkan hanya menghitung rumus titik puncak saat dibutuhkan?
- Jika data pendonor darah bertambah dari 1.000 orang menjadi 30 juta orang, mengapa algoritma pencarian linear sederhana tidak lagi memadai?
- Apa konsekuensi trade-off antara kecepatan pencarian data golongan darah dengan pemakaian kapasitas memori pada sistem basis data rumah sakit?
- Jika sebuah simulasi persilangan tanaman melibatkan 10 gen trihibrid hingga polihibrid, mengapa pendekatan pencacahan kombinasi satu per satu secara langsung (brute-force) akan mengalami ledakan komputasi dibandingkan menggunakan rumus kombinatorika peluang?
- Dalam penyetaraan reaksi kimia stoikiometri, kapan metode pencarian coba-coba (brute force iterative) masih dapat diterima dan kapan kita mutlak memerlukan eliminasi aljabar matriks ditinjau dari efisiensi waktu eksekusi?
- Jika kita memiliki 100 ekor burung dengan sudut peluncuran, kecepatan awal, dan tinggi pohon sasaran yang berbeda-beda, bagaimana cara paling efisien menyimpannya dalam memori komputer tanpa membuat ratusan variabel terpisah?
- Mengapa struktur data larik 2 dimensi (matriks) lebih optimal dibandingkan larik 1 dimensi terpisah dalam mengelola atribut simulasi gerak burung?
- Bagaimana memastikan kantong darah yang pertama kali masuk kedaluwarsa diambil lebih dulu dalam sistem inventaris bank darah?
- Mengapa pemilihan struktur data antrean (Queue) atau tumpukan (Stack) menentukan efisiensi pencarian dan pengambilan darah saat kondisi darurat?
- Bagaimana kita merepresentasikan data persilangan tanaman yang memiliki banyak atribut (seperti genotipe, fenotipe bunga, bentuk biji, dan persentase peluang kemunculan) secara rapi dan optimal dalam satu kesatuan struktur data?
- Mengapa tipe rekaman data (record/struct) di dalam struktur larik (array of records) lebih optimal dibandingkan memecahnya menjadi banyak larik satu dimensi terpisah yang tidak saling terikat?
- Bagaimana kita menuangkan logika perhitungan lintasan burung peluncur ke dalam bentuk notasi pseudocode yang terstruktur dan siap dikonversi ke bahasa pemrograman?
- Mengapa struktur kontrol percabangan dan perulangan dalam pseudocode harus ditulis secara sistematis dan rapi sebelum penulisan kode sumber sebenarnya?
- Bagaimana membagi persoalan rumit pencatatan dan distribusi kantong darah menjadi subprogram prosedural yang terstruktur rapi?
- Mengapa penggunaan prosedur dan fungsi dengan parameter formal yang tepat membuat notasi algoritma lebih mudah diverifikasi kebenarannya?
- Mengapa perumusan algoritma untuk perhitungan kimia yang rumit seperti stoikiometri lebih teratur dan minim galat jika dipecah ke dalam modul atau fungsi terpisah?
- Bagaimana cara merepresentasikan dekomposisi rumus mol, pereaksi pembatas, dan massa zat ke dalam notasi algoritma pseudocode yang terstruktur?
- Mengapa kode program pencarian data donor darah yang berjalan benar belum tentu tergolong program yang berkualitas atau bersih (clean code)?
- Bagaimana cara menyempurnakan fungsi algoritma pencarian standar agar mudah dibaca, modular, dan memiliki penamaan variabel yang bermakna?
- Mengapa data hasil persilangan tanaman yang sangat banyak perlu diurutkan, dan bagaimana algoritma standar pengurutan dapat disempurnakan agar kodenya bersih dan efisien?
- Bagaimana cara kita menyempurnakan kode sumber program pengurutan agar mudah dibaca, modular, dan bebas dari galat logika saat mengolah data rasio fenotipe/genotipe tanaman?
- Mengapa program simulasi perhitungan kimia yang sudah benar hasilnya tetap perlu disempurnakan kualitas kode sumbernya?
- Bagian mana dari kode sumber simulasi stoikiometri yang paling rentan menimbulkan galat logika jika data masukan tidak divalidasi dengan baik?
- Bagaimana struktur data bertingkat (seperti daftar objek/rekaman data) dapat dipetakan langsung ke dalam komponen visual antarmuka aplikasi mobile?
- Mengapa penggunaan library komponen UI (User Interface) mempermudah pemrogram dalam mengelola dan menampilkan struktur data yang kompleks pada layar ponsel?
- Bagaimana sebuah aplikasi ponsel dapat memutar berkas audio yang berbeda hanya dengan menekan satu tombol pemutar lagu?
- Bagaimana kita menyimpan daftar putar (playlist) lagu beserta judul dan nama berkas suaranya menggunakan struktur data kompleks di dalam program?
- Bagaimana sebuah program aplikasi dapat mengenali objek atau teks menggunakan library kecerdasan buatan yang sudah tersedia?
- Struktur data apa yang paling tepat untuk menampung hasil klasifikasi berupa pasangan label dan probabilitas kepercayaan dari library AI?
- Bagaimana cara memodifikasi struktur data kompleks agar dapat mengintegrasikan beberapa modul library sekaligus ke dalam satu aplikasi perangkat bergerak?
- Mengapa penataan field rekaman (struct/class/dictionary) harus tepat saat menghubungkan library antarmuka, media, dan kecerdasan buatan secara bersamaan?
- Bagaimana kita membuktikan secara komputasional bahwa struktur data kompleks dan strategi algoritmik yang kita pilih benar-benar paling efisien?
- Mengapa kualitas kode sumber dan integrasi library standar sangat menentukan keberhasilan sebuah sistem perangkat lunak saat diuji dengan berbagai kasus ekstrem?
KEGIATAN PEMBELAJARANPertemuan 1 — Menganalisis Persoalan Simulasi Gerak Burung dengan Alternatif Strategi Algoritmik — 3 JP (3 x 45 menit = 135 menit)Tujuan Pertemuan:- TP 11.4.1 Menganalisis persoalan yang menghasilkan lebih dari satu solusi dengan beberapa strategi algoritmik
Pendahuluan:- Guru membuka kelas dengan salam, memeriksa kesiapan belajar dan presensi murid, serta mengondisikan suasana ruang kelas yang kondusif (5 menit).
- Guru menyampaikan tujuan pembelajaran pertemuan ini, yaitu menganalisis persoalan komputasi simulasi gerak peluru burung dan merumuskan dekomposisi serta alternatif strategi algoritmiknya (5 menit).
- Guru melaksanakan asesmen awal singkat: murid menjawab 2 pertanyaan pemantik diagnostik pada lembar cepat mengenai dekomposisi parameter input (sudut S, kecepatan awal V, gravitasi g, tinggi pohon T) dan rumus fisika ketinggian maksimum H_max = (V^2 * sin^2(S)) / (2 * g) serta perbandingannya dengan T (acuan jawaban: variabel input = S, V, g=10, T; kondisi sukses burung 1 jika H_max >= T, gagal bernilai 0 jika H_max < T) (10 menit).
Kegiatan Inti:Memahami (Berkesadaran, Bermakna):- Murid mencermati lembar kasus LD-K11-01 yang memuat spesifikasi simulasi gerak burung: N burung dengan parameter sudut elevasi S (0-90 derajat), kecepatan awal V, gravitasi tetap g=10, dan tinggi target pohon T (15 menit).
- Murid mengidentifikasi komponen dekomposisi persoalan: konversi sudut derajat ke radian (rad = S * pi / 180), perhitungan ketinggian puncak parabola H_max = (V^2 * (sin(rad))^2) / (20), serta penentuan status biner (1 jika H_max >= T, 0 jika sebaliknya) (15 menit).
Mengaplikasi (Menggembirakan, Bermakna):- Secara berpasangan, murid memainkan tantangan komputasi 'Uji Dua Strategi Simulasi': murid merumuskan dan menganalisis 2 alternatif strategi penyelesaian untuk persoalan gerak burung, yaitu Strategi A: Perhitungan Langsung Analitik (Closed-form Formula) menghitung H_max lalu membandingkan langsung dengan T; dan Strategi B: Pendekatan Simulasi Numerik Berbasis Waktu (Iterasi Diskrit per delta_t) yang menelusuri lintasan ketinggian y(t) langkah demi langkah hingga kecepatan vertikal Vy <= 0 atau y melampaui T (30 menit).
- Setiap pasangan menguji kedua alternatif strategi algoritmik tersebut menggunakan 3 set data uji masukan konkret berikut:
- Kasus 1: S = 30, V = 20, T = 4 (acuan: sin(30)=0.5; H_max = (400 * 0.25) / 20 = 5.0; karena 5.0 >= 4 maka Status = 1, H_max = 5.00)
- Kasus 2: S = 45, V = 10, T = 3 (acuan: sin(45)=0.7071; sin^2=0.5; H_max = (100 * 0.5) / 20 = 2.5; karena 2.5 < 3 maka Status = 0, H_max = 2.50)
- Kasus 3: S = 90, V = 25, T = 30 (acuan: sin(90)=1.0; H_max = (625 * 1.0) / 20 = 31.25; karena 31.25 >= 30 maka Status = 1, H_max = 31.25)
Murid mencatat hasil keluaran status dan nilai H_max dari analisis kedua alternatif strategi pada Buku Kerja Siswa (30 menit).
Merefleksi (Berkesadaran):- Murid bersama pasangannya menukar Buku Kerja Siswa dengan pasangan lain untuk saling menelaah kelengkapan analisis kedua alternatif strategi komputasi dan ketepatan status keluaran pada ketiga set data uji (15 menit).
Penutup:- Guru memberikan penguatan terhadap hasil analisis persoalan murid bahwa suatu persoalan simulasi dapat dipecahkan melalui strategi perhitungan analitik langsung maupun simulasi numerik diskrit (5 menit).
- Murid dan guru menyimpulkan alur analisis berpikir komputasional hari ini dan guru menyampaikan topik pertemuan berikutnya mengenai studi kasus bank darah tanpa memberikan pekerjaan rumah coding karena difokuskan pada analisis algoritma (5 menit).
Diferensiasi:- Konten: Murid yang membutuhkan bimbingan diberikan lembar panduan dekomposisi rumus dengan konversi trigonometri siap pakai; murid yang telah mahir diberikan persoalan analisis tambahan dengan variasi sudut peluncuran desimal.
- Proses: Kerja berpasangan saling melengkapi pemahaman (peer-assisted learning), di mana guru memberikan scaffolding bertahap saat murid menganalisis langkah iterasi simulasi numerik.
- Produk: Format penyajian analisis alternatif strategi pada Buku Kerja Siswa dapat berupa tabel komparasi alur dekomposisi strategi atau bagan alur logika.
Asesmen Pertemuan:Awal:- Soal diagnostik awal tertulis: 1) Sebutkan 4 besaran masukan utama yang dibutuhkan untuk menghitung capaian gerak burung pada ketapel! 2) Jika kecepatan awal V=10 m/s, sudut S=30 derajat (sin 30 = 0.5), g=10 m/s^2, dan tinggi pohon T=1.5 m, tentukan H_max dan apakah burung mampu mencapai sarang (status 1 atau 0)? (Acuan jawaban: 1) Besaran masukan: Sudut elevasi S, Kecepatan awal V, Gravitasi g, Tinggi pohon T; 2) H_max = (10^2 * 0.5^2) / (2*10) = (100 * 0.25) / 20 = 1.25 meter; karena 1.25 < 1.5, maka burung gagal mencapai pohon, status = 0).
Proses:- Pemeriksaan lembar Buku Kerja Siswa pada aktivitas LD-K11-01 mengenai analisis persoalan simulasi gerak burung: murid menganalisis 2 strategi penyelesaian (Strategi A: rumus analitik langsung H_max; Strategi B: simulasi numerik langkah waktu diskrit delta_t) dan menguji ketepatan status dan H_max pada 3 set data masukan (Kasus 1: Status=1, H_max=5.0; Kasus 2: Status=0, H_max=2.5; Kasus 3: Status=1, H_max=31.25).
Akhir Pertemuan:- Cek pemahaman akhir sesi: Murid menuliskan ringkasan singkat berupa 1 paragraf yang membedakan alur kerja strategi analitik formula langsung dan alur kerja strategi iterasi numerik langkah waktu dalam memecahkan persoalan simulasi burung (Kriteria penerimaan operasional: jawaban menyebutkan bahwa strategi analitik langsung menggunakan formula matematis puncak parabola sekali hitung, sedangkan strategi numerik menelusuri titik-titik ketinggian waktu demi waktu y(t) secara berulang hingga puncak tercapai).
Formatif:- Penilaian asesmen awal diagnostik kesiapan variabel komputasi gerak parabola
- Observasi lembar kerja analisis persoalan dan verifikasi 3 set data uji simulasi burung
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Menganalisis Persoalan Simulasi Gerak Burung | Belum mampu mengidentifikasi variabel masukan persoalan (S, V, g, T) dan belum merumuskan relasi penentuan ketinggian maksimum terhadap tinggi pohon. | Mampu mengidentifikasi 4 variabel masukan persoalan secara tepat, namun belum mampu merumuskan dekomposisi logika penentuan status ketercapaian sarang burung. | Mampu menganalisis persoalan dengan mengidentifikasi variabel masukan serta merumuskan satu strategi algoritmik analitik secara tepat beserta verifikasi status uji. | Mampu menganalisis persoalan secara mendalam dengan menghasilkan dan membedakan dua alternatif strategi algoritmik (analitik formula dan simulasi numerik diskrit) serta menguji ketepatan statusnya secara konsisten dan mandiri pada seluruh data uji. | | Perumusan Alternatif Strategi Algoritmik | Belum mampu merumuskan alternatif langkah strategi algoritmik untuk menyelesaikan persoalan simulasi burung. | Merumuskan alur strategi algoritmik namun hanya mencakup perhitungan dasar tanpa penentuan alternatif solusi yang menghasilkan status biner. | Merumuskan alur strategi algoritmik analitik secara terstruktur yang membandingkan H_max dengan T untuk menghasilkan keluaran status yang tepat. | Merumuskan dua alternatif strategi algoritmik (pendekatan analitik langsung dan iterasi numerik langkah waktu) secara terstruktur, lengkap dengan logika penanganan kondisi masukan dan penentuan status secara tepat. |
Refleksi Pertemuan:Guru:- Apakah murid dapat memahami konversi formulasi fisik-matematis ke dalam bentuk variabel dan relasi logika berpikir komputasional?
- Bagian analisis mana dari perbandingan dua strategi (analitik vs simulasi diskrit) yang paling banyak membutuhkan bimbingan guru?
Murid:- Bagaimana pemahaman saya tentang memecahkan masalah lintasan gerak burung dengan dekomposisi komputasional?
- Manakah dari kedua alternatif strategi (analitik langsung atau simulasi numerik berulang) yang menurut saya lebih intuitif dipahami dan mengapa?
Pertemuan 2 — Menganalisis Persoalan Pengelolaan Bank Darah dengan Alternatif Strategi Algoritmik — 3 JP (3 x 45 menit = 135 menit)Tujuan Pertemuan:- TP 11.4.1 Menganalisis persoalan yang menghasilkan lebih dari satu solusi dengan beberapa strategi algoritmik
Pendahuluan:- Guru membuka kelas dengan salam, memeriksa kesiapan belajar murid, dan memimpin doa bersama (5 menit).
- Guru mengaitkan materi pertemuan sebelumnya tentang simulasi gerak burung dengan persoalan baru, yaitu Pengelolaan Bank Darah, serta menyampaikan tujuan pembelajaran hari ini yakni menganalisis persoalan pengelolaan donor darah yang dapat diselesaikan dengan beberapa alternatif strategi algoritmik (5 menit).
- Guru melaksanakan asesmen awal singkat secara lisan dengan memberikan 1 pertanyaan diagnostik: 'Jika ada 100 kantong darah acak dan kita mencari golongan O rhesus negatif yang paling mendekati kedaluwarsa, sebutkan 2 alternatif cara komputasi yang bisa dilakukan!' (acuan jawaban benar: Alternatif 1: Pencarian berurutan/linear search memeriksa seluruh kantong satu per satu sambil mencatat tanggal terdekat; Alternatif 2: Mengurutkan kantong berdasarkan tanggal lalu mencari golongan yang cocok, atau memfilter dulu ke dalam kelompok golongan O- lalu mencari nilai minimumnya) (5 menit).
Kegiatan Inti:Memahami (Berkesadaran, Bermakna):- Murid menyimak pemaparan studi kasus Pengelolaan Bank Darah (Aktivitas LD-K11-03): persoalan pencocokan kebutuhan darah pasien darurat dengan stok Donor Darah Sukarela (DDS) serta penanganan antrean permintaan (15 menit).
- Murid dalam kelompok berpasangan menganalisis spesifikasi masukan, batasan persoalan (misal: kompatibilitas golongan darah ABO dan rhesus, tanggal kedaluwarsa), dan mengidentifikasi minimal 2 alternatif strategi algoritmik untuk memecahkan persoalan pencarian stok darah tersebut (prinsip berkesadaran: murid sadar bahwa persoalan yang sama dapat diselesaikan melalui sudut pandang strategi yang berbeda) (15 menit).
Mengaplikasi (Bermakna, Menggembirakan):- Murid berpasangan mengikuti tantangan interaktif 'Pilah Algoritma Darah' (joyful challenge), di mana tiap pasangan diberikan 3 kartu skenario permintaan darah: (1) Skenario A: Pasien kritis butuh golongan B+ segera dari 50 pendonor acak; (2) Skenario B: Menyalurkan 200 kantong darah hampir kedaluwarsa ke 10 rumah sakit; (3) Skenario C: Memilih pendonor terdekat dari daftar 1.000 DDS (20 menit).
- Setiap murid secara individu dalam format berpasangan menuliskan analisis dekomposisi persoalan dan merumuskan minimal 2 alternatif strategi algoritmik untuk skenario bank darah pada Lembar Kerja (LK) (acuan LK: Skenario A -> Alternatif 1: Linear Search satu per satu hingga ketemu B+, Alternatif 2: Pengelompokan/Hashing golongan darah lalu ambil instan; Skenario B -> Alternatif 1: Greedy memilih kantong dengan sisa hari paling sedikit terlebih dahulu, Alternatif 2: Sorting seluruh stok berdasarkan tanggal lalu distribusi berurutan; Skenario C -> Alternatif 1: Brute force hitung semua jarak, Alternatif 2: Filter radius wilayah lalu urutkan jarak) (35 menit).
Merefleksi (Berkesadaran):- Murid saling bertukar lembar kerja analisis dengan pasangannya, menelaah apakah pasangan sudah berhasil merumuskan minimal 2 alternatif strategi algoritmik yang logis dan valid untuk setiap skenario bank darah yang disajikan (15 menit).
- Murid bersama pasangannya menuliskan catatan refleksi mengenai perbedaan logika dasar dari alternatif strategi yang telah mereka temukan dalam Buku Kerja Murid (10 menit).
Penutup:- Guru bersama murid menyimpulkan kembali bagaimana suatu persoalan pengelolaan bank darah dapat dianalisis ke dalam beberapa alternatif strategi algoritmik (5 menit).
- Guru memberikan umpan balik penguatan terhadap hasil analisis algoritma murid dan mengingatkan bahwa rancangan ini akan dilanjutkan pembahasannya pada analisis efisiensi di pertemuan mendatang, lalu menutup pembelajaran dengan doa dan salam (5 menit).
Diferensiasi:- Konten: Murid yang membutuhkan bimbingan diberikan panduan alur logika berupa bagan pohon keputusan sederhana; murid yang mahir diberikan batasan data tambahan dengan volume data pendonor yang lebih besar (skala kota/nasional).
- Proses: Pada murid yang belum lancar menganalisis, guru mendampingi perumusan alternatif strategi langkah-demi-langkah; murid mahir menganalisis mandiri bersama pasangan tanpa intervensi perancangan.
- Produk: Format penyajian analisis tetap sama pada lembar kerja, namun murid mahir menyajikan lebih dari 2 alternatif strategi algoritmik untuk tiap skenario.
Asesmen Pertemuan:Awal:- Pertanyaan diagnostik: 'Jika ada 100 kantong darah acak dan kita mencari golongan O rhesus negatif yang paling mendekati kedaluwarsa, sebutkan 2 alternatif cara komputasi yang bisa dilakukan!' (acuan jawaban: Alternatif 1: Pencarian berurutan/linear search memeriksa seluruh kantong satu per satu sambil mencatat tanggal terdekat; Alternatif 2: Mengurutkan kantong berdasarkan tanggal lalu mencari golongan yang cocok, atau memfilter dulu ke dalam kelompok golongan O- lalu mencari nilai minimumnya).
Proses:- Lembar telaah analisis 3 skenario bank darah: (1) Skenario A: Pasien kritis butuh golongan B+ segera dari 50 pendonor acak; (2) Skenario B: Menyalurkan 200 kantong darah hampir kedaluwarsa ke 10 rumah sakit; (3) Skenario C: Memilih pendonor terdekat dari daftar 1.000 DDS. Dinilai ketepatan merumuskan minimal 2 alternatif strategi algoritmik yang valid untuk ketiga skenario sesuai acuan berikut: [Skenario A: Alternatif 1 = Linear Search, Alternatif 2 = Hashing/Pengelompokan golongan; Skenario B: Alternatif 1 = Greedy berbasis sisa hari terpendek, Alternatif 2 = Sorting tanggal kedaluwarsa lalu alokasi berurutan; Skenario C: Alternatif 1 = Brute force jarak, Alternatif 2 = Filter wilayah diikuti sorting jarak].
Akhir Pertemuan:- Cek pemahaman tertulis singkat di akhir sesi: 'Tuliskan 2 alternatif strategi algoritmik untuk menyelesaikan masalah penentuan urutan donor darah prioritas berdasarkan tingkat urgensi pasien!' (acuan jawaban: Alternatif 1: Pendekatan antrean berprioritas/Priority Queue berbasis skor kegawatan; Alternatif 2: Pengurutan data (Sorting) berulang setiap ada pembaruan data pasien berdasarkan atribut tingkat keparahan).
Formatif:- Tanya jawab diagnostik awal kesiapan analisis multi-strategi algoritmik
- Observasi unjuk kerja analisis persoalan dan alternatif strategi pada aktivitas berpasangan
- Pemeriksaan lembar kerja telaah alternatif strategi algoritmik pengelolaan bank darah
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Menganalisis persoalan dengan alternatif strategi algoritmik | Belum mampu menganalisis persoalan bank darah dan hanya merumuskan 1 alternatif strategi yang belum tepat. | Mampu menganalisis persoalan bank darah tetapi hanya merumuskan 1 alternatif strategi algoritmik yang tepat untuk 3 skenario yang diberikan. | Mampu menganalisis persoalan bank darah dan merumuskan tepat 2 alternatif strategi algoritmik yang valid untuk seluruh (3 dari 3) skenario persoalan sesuai acuan. | Mampu menganalisis persoalan bank darah secara komprehensif serta merumuskan lebih dari 2 alternatif strategi algoritmik yang valid untuk seluruh skenario persoalan secara mandiri. |
Refleksi Pertemuan:Guru:- Apakah alur analisis persoalan pengelolaan bank darah mampu memandu murid menemukan lebih dari satu alternatif strategi algoritmik secara mandiri?
- Apakah tantangan berpasangan pada tahap Mengaplikasi berhasil menciptakan suasana belajar yang menggembirakan dan memicu nalar kritis murid?
Murid:- Apakah saya dapat melihat bahwa satu masalah komputasi pengelolaan darah bisa diselesaikan dengan strategi algoritmik yang berbeda?
- Bagian analisis mana yang paling menantang saat merumuskan alternatif solusi bersama pasangan saya?
Pertemuan 3 — Menganalisis Persoalan Persilangan Tanaman dan Simulasi Kimia dengan Alternatif Strategi Algoritmik — 3 JP (3 x 45 menit = 135 menit)Tujuan Pertemuan:- TP 11.4.1 Menganalisis persoalan yang menghasilkan lebih dari satu solusi dengan beberapa strategi algoritmik
Pendahuluan:- Guru membuka kelas dengan salam, memeriksa kehadiran murid, dan menciptakan suasana belajar yang kondusif (5 menit).
- Guru menyampaikan tujuan pembelajaran pertemuan ini, yaitu menganalisis persoalan persilangan tanaman (Hukum Mendel) dan simulasi kimia (stoikiometri) untuk memunculkan alternatif strategi algoritmik (5 menit).
- Murid mengerjakan asesmen awal singkat untuk memetakan pemahaman awal mengenai dekomposisi masalah ilmiah ke strategi algoritmik (10 menit).
Kegiatan Inti:Memahami (Berkesadaran, Bermakna):- Murid mencermati 2 deskripsi persoalan sains: (1) Persilangan Tanaman Dihibrid (menghitung probabilitas fenotipe keturunan dari persilangan heterozigot BbKk x BbKk) dan (2) Stoikiometri Kimia (menentukan pereaksi pembatas dan mol produk air pada reaksi 2 H2 + O2 -> 2 H2O) (10 menit).
- Secara berkesadaran, murid mengidentifikasi input, proses, output, serta kendala dari masing-masing kasus persoalan secara analitis (15 menit).
Mengaplikasi (Menggembirakan, Bermakna):- Murid berpasangan memainkan aktivitas tantangan tebak rute 'Algorithmic Duel': memilih antara pendekatan eksplorasi menyeluruh (brute-force enumerasi tabel Punnett / simulasi iteratif per mol) atau pendekatan formula langsung (kombinatorika perkalian probabilitas independen / perbandingan rasio mol terhadap koefisien reaksi) secara interaktif dan menyenangkan (15 menit).
- Murid secara berpasangan menganalisis persoalan persilangan tanaman dan merumuskan 2 alternatif strategi penyelesaian (Strategi A: Enumerasi menyeluruh 16 sel Punnett; Strategi B: Perkalian aturan probabilitas independen gen B dan K) ke dalam lembar kerja analisis (30 menit).
- Murid melanjutkan analisis persoalan stoikiometri kimia dengan merumuskan 2 alternatif strategi penyelesaian (Strategi A: Simulasi deplesi pereaksi berulang dalam loop; Strategi B: Perhitungan analitis rasio mol/koefisien minimum secara langsung) ke dalam lembar kerja analisis (20 menit).
Merefleksi (Berkesadaran):- Murid bertukar lembar analisis dengan pasangan lain untuk saling menelaah apakah kedua strategi yang diajukan benar-benar menyelesaikan persoalan dengan alur logika yang valid (15 menit).
Penutup:- Murid menyimpulkan bahwa satu persoalan komputasi sains dapat diselesaikan melalui lebih dari satu strategi algoritmik yang berbeda karakteristik alurnya (5 menit).
- Guru memberikan umpan balik umum terhadap hasil analisis lembar kerja murid dan menutup pembelajaran dengan doa bersama (5 menit).
Diferensiasi:- Konten: Murid yang membutuhkan bimbingan diberikan kartu panduan struktur dekomposisi variabel input-output, sedangkan murid yang siap diberikan persoalan trihibrid (3 sifat beda) untuk dianalisis alternatif strateginya.
- Proses: Scaffolding bertahap bagi pasangan yang belum terbiasa merumuskan alur strategi algoritmik dari kasus biologi/kimia.
- Produk: Format penyajian analisis strategi pada lembar kerja dapat berupa diagram alur logika atau poin dekomposisi langkah komputasi.
Asesmen Pertemuan:Awal:- Tes diagnostik singkat berupa 2 pertanyaan: (1) 'Bagaimana menentukan semua kombinasi alel dari induk AaBb?' (acuan jawaban: mengombinasikan alel gen pertama {A, a} dengan gen kedua {B, b} menghasilkan 4 kombinasi gamet: AB, Ab, aB, ab); (2) 'Jika tersedia 4 mol H2 dan 3 mol O2 pada reaksi 2 H2 + O2 -> 2 H2O, zat mana yang habis bereaksi terlebih dahulu?' (acuan jawaban: H2 menjadi pereaksi pembatas karena rasio mol per koefisien 4/2 = 2 lebih kecil daripada 3/1 = 3).
Proses:- Pemeriksaan lembar kerja analisis alternatif strategi algoritmik pada Kasus 1 (Persilangan Tanaman): Strategi A (Enumerasi 16 sel Punnett) dan Strategi B (Perkalian independen probabilitas gen); serta Kasus 2 (Stoikiometri): Strategi A (Simulasi iteratif deplesi mol) dan Strategi B (Kalkulasi analitis rasio mol/koefisien). Dinilai berdasarkan ketepatan dekomposisi persoalan dan kejelasan alur logika kedua alternatif.
Akhir Pertemuan:- Cek pemahaman akhir: Murid menuliskan dekomposisi 1 persoalan baru: penentuan pereaksi pembatas pada reaksi N2 + 3 H2 -> 2 NH3 dengan input 2 mol N2 dan 5 mol H2 menggunakan 2 alternatif cara (acuan jawaban: Alternatif 1 memeriksa pengurangan iteratif mol reaktan sesuai perbandingan 1:3; Alternatif 2 menghitung nilai rasio 2/1 = 2 untuk N2 dan 5/3 = 1.67 untuk H2, sehingga langsung mengidentifikasi H2 sebagai pereaksi pembatas).
Formatif:- Penilaian lembar kerja analisis alternatif strategi algoritmik untuk kasus persilangan tanaman dan stoikiometri
- Observasi diskusi telaah analitis antar-pasangan saat menelaah validitas alur strategi
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Menganalisis Persoalan Persilangan Tanaman dengan Alternatif Strategi Algoritmik | Belum mampu mengidentifikasi komponen persoalan persilangan tanaman dan belum mampu menghasilkan alternatif strategi algoritmik yang valid. | Mampu mengidentifikasi komponen persoalan persilangan tanaman, namun hanya mampu merumuskan 1 strategi algoritmik (misalnya hanya enumerasi Punnett). | Mampu menganalisis persoalan persilangan tanaman dengan merumuskan 2 alternatif strategi algoritmik (enumerasi tabel Punnett dan perkalian aturan probabilitas independen) secara tepat. | Mampu menganalisis persoalan persilangan tanaman secara mandiri dan mendalam dengan merumuskan 2 alternatif strategi algoritmik yang tepat serta menguraikan alur dekomposisi logika tiap strategi secara komprehensif. | | Menganalisis Persoalan Simulasi Stoikiometri Kimia dengan Alternatif Strategi Algoritmik | Belum mampu mengidentifikasi komponen persoalan stoikiometri dan belum mampu menghasilkan alternatif strategi algoritmik yang valid. | Mampu mengidentifikasi komponen persoalan stoikiometri, namun hanya mampu merumuskan 1 strategi algoritmik (misalnya hanya perhitungan analitis rasio). | Mampu menganalisis persoalan stoikiometri dengan merumuskan 2 alternatif strategi algoritmik (simulasi loop deplesi berulang dan perbandingan analitis rasio mol/koefisien) secara tepat. | Mampu menganalisis persoalan stoikiometri secara mandiri dan mendalam dengan merumuskan 2 alternatif strategi algoritmik yang tepat serta menguraikan alur dekomposisi logika tiap strategi secara komprehensif. |
Refleksi Pertemuan:Guru:- Apakah murid dapat melihat keterkaitan pemodelan sains (biologi dan kimia) ke dalam bentuk strategi komputasi tanpa merasa terbebani rumus teknis?
- Apakah aktivitas berpasangan dan tantangan interaktif berhasil memfasilitasi murid dalam menemukan lebih dari satu alternatif solusi?
Murid:- Bagian mana dari perumusan strategi algoritmik persilangan atau stoikiometri yang paling menantang bagiku?
- Bagaimana merumuskan lebih dari satu alternatif strategi membantuku memahami persoalan secara lebih mendalam?
Pertemuan 4 — Menjustifikasi Efisiensi Waktu dan Memori dari Alternatif Solusi Simulasi Gerak Burung — 3 JP (3 x 45 menit = 135 menit)Tujuan Pertemuan:- TP 11.4.2 Menjustifikasi efisiensi, kelebihan, dan keterbatasan dari setiap alternatif solusi persoalan komputasi
Pendahuluan:- Guru membuka kelas dengan salam, doa bersama, dan mengecek kehadiran murid (5 menit).
- Guru menyampaikan tujuan pembelajaran pertemuan ini, yaitu menjustifikasi efisiensi waktu, penggunaan memori, kelebihan, dan keterbatasan dari alternatif solusi pada simulasi gerak burung (5 menit).
- Guru memberikan asesmen awal diagnostik singkat melalui 2 pertanyaan tertulis di papan tulis mengenai kompleksitas dan penggunaan variabel pada persoalan gerak peluru/burung (10 menit).
Kegiatan Inti:Memahami (Berkesadaran, Bermakna):- Murid mencermati lembar telaah komparasi yang memuat 2 alternatif solusi persoalan simulasi gerak burung: Solusi A (pendekatan simulasi langkah-demi-langkah / iterative time-stepping dt=0.1s yang mencatat seluruh titik lintasan ke dalam larik) dan Solusi B (pendekatan formula analitik langsung fisika parabola untuk menghitung tinggi maksimum Ymax = (V^2 * sin^2(S)) / (2*g) secara langsung tanpa menyimpan riwayat lintasan) (15 menit).
- Murid bersama bimbingan guru menganalisis kebutuhan operasi perhitungan (waktu komputasi) dan alokasi variabel/larik (ruang memori) dari kedua alternatif solusi tersebut (15 menit).
Mengaplikasi (Menggembirakan, Bermakna):- Murid secara berpasangan mengikuti 'Tantangan Detektif Algoritma': setiap pasangan menganalisis skenario data peluncuran N burung (N=1.000 hingga N=100.000) dan menjustifikasi solusi mana yang lebih efisien dari segi waktu dan memori, serta menuliskan kelebihan dan keterbatasannya pada Lembar Analisis (30 menit).
- Murid saling menukarkan Lembar Analisis dengan pasangan di sebelahnya untuk memverifikasi kesesuaian justifikasi efisiensi waktu, efisiensi memori, kelebihan, dan keterbatasan berdasarkan parameter kasus uji (15 menit).
Merefleksi (Berkesadaran):- Murid secara individu mengevaluasi hasil justifikasinya dan menuliskan kesimpulan di buku kerja mengenai kapan solusi iteratif langkah-demi-langkah tepat dipilih (misal: saat ada hambatan udara non-linear) dan kapan solusi analitik formula tepat dipilih (misal: saat hanya butuh status puncak secara instan untuk data massal) (20 menit).
Penutup:- Guru bersama murid menyimpulkan prinsip justifikasi efisiensi waktu dan memori pada pemilihan alternatif algoritma simulasi komputasi (15 menit).
- Guru menutup pertemuan dengan memberikan arahan pengantar untuk topik pertemuan berikutnya (analisis kasus bank darah) dan berdoa bersama (5 menit).
Diferensiasi:- Konten: Murid yang membutuhkan bimbingan diberikan panduan perbandingan tabel parameter (jumlah baris operasi loop vs baris rumus tunggal); murid mahir diberikan data uji N sangat besar (ekstrem) serta variasi skenario tambahan hambatan angin konstan.
- Proses: Murid dengan kesiapan belajar awal rendah didampingi secara langsung oleh guru dalam menghitung estimasi alokasi elemen larik; murid yang mandiri bekerja berpasangan menyelesaikan analisis secara otonom.
- Produk: Tingkat kedalaman justifikasi pada Lembar Analisis disesuaikan: mencakup perbandingan kualitatif mendasar hingga perhitungan notasi kebutuhan memori/operasi secara rinci.
Asesmen Pertemuan:Awal:- Pertanyaan diagnostik: (1) 'Jika sebuah simulasi burung membutuhkan 1.000 langkah waktu dan tiap koordinat (X,Y) disimpan dalam larik, berapa total nilai koordinat yang disimpan di memori?' (acuan: 1.000 langkah * 2 nilai = 2.000 nilai floating-point/koordinat); (2) 'Jika program hanya perlu menentukan apakah burung melampaui tinggi pohon T atau tidak, apakah wajib menyimpan seluruh titik lintasan yang sudah dilewati?' (acuan: Tidak wajib, cukup menyimpan atau menghitung nilai ketinggian maksimum saja).
Proses:- Observasi formatif saat pengerjaan Tantangan Detektif Algoritma: memeriksa ketepatan analisis lembar kerja murid pada perbandingan Solusi A vs Solusi B. Acuan kunci: (1) Efisiensi Waktu: Solusi B lebih efisien karena membutuhkan waktu O(1) rumus konstan per burung, sedangkan Solusi A membutuhkan O(K) iterasi waktu per burung (di mana K = total langkah simulasi); (2) Efisiensi Memori: Solusi B menggunakan memori O(1) karena hanya menyimpan variabel skalar tunggal, sedangkan Solusi A menggunakan O(K) memori untuk larik koordinat; (3) Kelebihan Solusi A: dapat memetakan detail lintasan visual di setiap detik, keterbatasan Solusi A: boros memori dan lambat jika N dan rentang waktu besar; (4) Kelebihan Solusi B: sangat cepat dan hemat memori untuk jutaan burung, keterbatasan Solusi B: tidak dapat menampilkan lintasan kurva visual titik demi titik.
Akhir Pertemuan:- Cek pemahaman akhir (lembar keluar): Murid menuliskan justifikasi tertulis 1 paragraf untuk skenario: 'Sebuah game mobile simulasi burung harus memproses 50.000 burung sekaligus dalam waktu nyata pada perangkat ponsel berspesifikasi rendah tanpa menampilkan grafis lintasan penuh.' Acuan kriteria: Murid memilih Solusi B (analitik langsung) dengan justifikasi tepat yaitu meminimalkan beban komputasi perulangan (efisiensi waktu O(1)) dan menghindari alokasi array besar pada RAM ponsel (efisiensi memori).
Formatif:- Penilaian proses lembar kerja justifikasi efisiensi waktu dan memori alternatif solusi simulasi burung
- Cek pemahaman diagnostik awal dan asesmen akhir tertulis singkat
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Justifikasi Efisiensi Waktu Alternatif Solusi | Belum mampu membandingkan banyaknya langkah operasi perhitungan antara Solusi A (iteratif langkah-demi-langkah) dan Solusi B (formula langsung). | Mampu menyebutkan bahwa Solusi B lebih cepat daripada Solusi A namun belum dapat memberikan alasan perbedaan jumlah perulangan/operasi hitungnya. | Mampu menjustifikasi bahwa Solusi B membutuhkan waktu eksekusi lebih efisien karena komputasi konstan O(1) langsung rumus, sedangkan Solusi A memerlukan iterasi berulang sejumlah langkah waktu O(K). | Mampu menjustifikasi efisiensi waktu Solusi A dan B secara komprehensif, terukur pada berbagai ukuran masukan data N burung, serta menguraikan dampaknya terhadap beban CPU secara mandiri dan konsisten. | | Justifikasi Efisiensi Memori Alternatif Solusi | Belum mampu membedakan kebutuhan ruang penyimpanan variabel skalar tunggal dengan struktur larik penyimpan lintasan. | Mampu menyebutkan bahwa Solusi A membutuhkan memori lebih banyak tetapi belum tepat mengidentifikasi variabel larik sebagai penyebabnya. | Mampu menjustifikasi bahwa Solusi B hemat memori karena hanya menggunakan variabel skalar O(1), sedangkan Solusi A membutuhkan ruang memori sebanding dengan jumlah langkah simulasi O(K) untuk menyimpan larik titik koordinat. | Mampu menjustifikasi efisiensi memori kedua solusi dengan tepat, menghitung perkiraan konsumsi memori untuk masukan ekstrem, serta menjelaskan implikasi alokasi memori secara mandiri. | | Justifikasi Kelebihan dan Keterbatasan Solusi | Belum mampu mengidentifikasi kelebihan maupun keterbatasan dari masing-masing alternatif solusi simulasi burung. | Mampu menyebutkan satu kelebihan atau keterbatasan dari salah satu solusi namun belum mencakup kedua alternatif solusi. | Mampu menjustifikasi kelebihan dan keterbatasan kedua solusi (Solusi A unggul dalam visualisasi lintasan riil tapi terbatas pada performa skala besar; Solusi B unggul dalam kecepatan skala besar tapi terbatas karena tidak memiliki data detail koordinat intermediate). | Mampu menjustifikasi kelebihan dan keterbatasan kedua solusi secara mendalam dan kontekstual, serta merekomendasikan skenario penerapan yang tepat untuk masing-masing solusi secara mandiri. |
Refleksi Pertemuan:Guru:- Apakah seluruh murid telah mampu membedakan efisiensi algoritma dari sudut pandang waktu (banyak operasi) dan memori (alokasi variabel)?
- Bagian justifikasi mana yang paling sering membuat murid keliru antara kelebihan fungsional dengan efisiensi komputasi?
Murid:- Apakah saya sudah memahami mengapa rumus langsung lebih efisien daripada perulangan titik waktu pada simulasi burung jika hanya mencari status ketinggian puncak?
- Faktor apa yang paling menantang bagi saya saat membandingkan konsumsi memori dari dua algoritma yang berbeda?
Pertemuan 5 — Menjustifikasi Kelebihan dan Keterbatasan Solusi pada Pengelolaan Bank Darah — 3 JP (3 x 45 menit = 135 menit)Tujuan Pertemuan:- TP 11.4.2 Menjustifikasi efisiensi, kelebihan, dan keterbatasan dari setiap alternatif solusi persoalan komputasi
Pendahuluan:- Guru membuka kelas dengan salam, memeriksa kehadiran murid, dan menciptakan suasana belajar yang kondusif (5 menit).
- Guru menyampaikan tujuan pembelajaran pertemuan ke-5, yaitu menjustifikasi efisiensi, kelebihan, dan keterbatasan dari alternatif solusi komputasi pada kasus pengelolaan data bank darah (5 menit).
- Guru melaksanakan asesmen awal diagnostik singkat menggunakan 2 pertanyaan tertulis: (1) Mengapa pencarian berurutan satu per satu memakan waktu lama jika ukuran data bertambah besar? (Acuan: waktu eksekusi sebanding linier dengan jumlah data/O(N), sehingga pada data masif pencarian menjadi lambat); (2) Sebutkan alternatif metode pengelompokan data agar pencarian stok darah lebih cepat! (Acuan: pengelompokan berdasarkan indeks golongan darah/tabel pemetaan/hashing atau pengurutan data terlebih dahulu) (10 menit).
Kegiatan Inti:Memahami (Berkesadaran, Bermakna):- Murid mencermati pemaparan dua alternatif solusi komputasi untuk Problem Pengelolaan Bank Darah (Subproblem 4 - skala 30 juta data DDS dan 100.000 desa dengan syarat eksekusi maksimal 1 detik): Solusi A (Pencarian Linear pada Larik Tunggal Tak Terurut) dan Solusi B (Pencarian Terindeks Menggunakan Tabel Pengelompokan Berdasarkan Golongan Darah dan Rhesus) (15 menit).
- Murid secara mandiri menganalisis perbandingan teoritis kedua solusi: Solusi A memiliki struktur penyimpanan sederhana namun waktu pencarian O(N) lambat pada 30 juta data, sedangkan Solusi B membutuhkan alokasi memori awal lebih terstruktur tetapi waktu pencarian O(1) atau O(k) sangat cepat (15 menit).
Mengaplikasi (Menggembirakan, Bermakna):- Murid dibagi berpasangan untuk memainkan 'Tantangan Detektif Stok Darah': setiap pasangan diberikan Lembar Kasus berisi 3 skenario kueri donor darah mendesak beserta 2 kartu deskripsi solusi komputasi (Solusi 1: Pencarian Linear Berurutan; Solusi 2: Tabel Partisi Indeks Golongan Darah), lalu berlomba menjustifikasi solusi mana yang memenuhi batas toleransi waktu eksekusi 1 detik secara tepat (20 menit).
- Secara berpasangan, murid menyusun Lembar Justifikasi Komparatif yang memuat evaluasi kelebihan, keterbatasan, dan efisiensi waktu serta memori untuk 3 aspek komputasi bank darah berikut: (1) Pencarian donor darurat 30 juta data (Acuan: Solusi 2 unggul efisiensi waktu karena akses langsung O(1) pada partisi golongan darah, keterbatasan Solusi 1 adalah waktu O(N) melampaui batas 1 detik); (2) Penambahan data pendonor baru (Acuan: Solusi 1 unggul kemudahan penyisipan di akhir larik O(1) tanpa overhead indeks, keterbatasan Solusi 2 memerlukan alokasi pemetaan indeks); (3) Efisiensi memori (Acuan: Solusi 1 unggul memori kompak tanpa struktur pointer/tabel bantu, keterbatasan Solusi 2 membutuhkan memori ekstra untuk tabel partisi/indeks) (30 menit).
- Pasangan murid saling bertukar lembar justifikasi dengan pasangan lain untuk saling menelaah dan memvalidasi ketepatan argumen efisiensi, kelebihan, dan keterbatasan solusi yang dirumuskan (15 menit).
Merefleksi (Berkesadaran):- Murid bersama guru membahas hasil justifikasi komparatif dan menarik kesimpulan konseptual mengenai prinsip trade-off antara kompleksitas waktu dan kompleksitas memori dalam perancangan algoritma bank darah (10 menit).
Penutup:- Guru memberikan penguatan dan umpan balik terhadap ketepatan justifikasi efisiensi, kelebihan, dan keterbatasan alternatif solusi yang telah dirumuskan murid (5 min).
- Guru menyampaikan asesmen akhir berupa 1 pertanyaan cek pemahaman: 'Manakah solusi terbaik untuk sistem bank darah berkapasitas 30 juta data jika server memiliki batasan waktu respons < 1 detik namun memiliki kapasitas RAM melimpah? Justifikasikan pilihanmu!' (Acuan: Solusi tabel indeks partisi golongan darah, karena menjamin kecepatan pencarian O(1) konstan memenuhi batas 1 detik dengan menoleransi konsumsi memori tabel tambahan) (5 menit).
- Guru menutup pertemuan dengan doa dan mengingatkan topik berikutnya mengenai analisis pada kasus persilangan tanaman (5 menit).
Diferensiasi:- Konten: Menyediakan lembar kasus dengan tabel perbandingan kompleksitas waktu (Big-O) visual untuk murid yang membutuhkan scaffolding analisis komputasi.
- Proses: Memberikan bimbingan terarah bagi pasangan yang kesulitan memisahkan aspek efisiensi waktu dan konsumsi memori, serta memberikan studi kasus tantangan tambahan (skala data 100 juta dengan kendala memori terbatas) untuk murid yang cepat.
- Produk: Format penulisan justifikasi dapat berupa tabel komparasi terstruktur atau teks argumentatif analitis sesuai kenyamanan pasangan murid.
Asesmen Pertemuan:Awal:- Diagnostik awal: 2 pertanyaan tertulis di awal pembelajaran. (1) Mengapa pencarian berurutan satu per satu memakan waktu lama jika ukuran data bertambah besar? (Acuan jawaban: waktu pencarian sebanding linier dengan jumlah data N / O(N), sehingga pada jutaan data waktu komputasi melonjak drastis); (2) Sebutkan alternatif metode pengelompokan data agar pencarian stok darah lebih cepat! (Acuan jawaban: membagi data ke dalam ember/partisi golongan darah atau menggunakan indeks pemetaan/hash table sehingga pencarian tidak memeriksa seluruh data).
Proses:- Formatif proses: Pemeriksaan lembar kerja justifikasi murid terhadap 3 aspek komparasi solusi bank darah (Pencarian donor darurat, Penambahan data baru, Efisiensi memori) dengan kriteria ketepatan analisis Big-O waktu dan kebutuhan ruang memori sesuai acuan Lembar Kasus.
Akhir Pertemuan:- Cek pemahaman akhir: 1 butir pertanyaan tertulis: 'Manakah solusi terbaik untuk sistem bank darah berkapasitas 30 juta data jika server memiliki batasan waktu respons < 1 detik namun memiliki kapasitas RAM melimpah? Justifikasikan pilihanmu!' (Acuan jawaban: Solusi partisi indeks/tabel pengelompokan golongan darah dipilih karena menjamin kompleksitas waktu pencarian O(1) yang memenuhi syarat waktu respons di bawah 1 detik, di mana keterbatasan penggunaan memori tambahan untuk struktur indeks dapat diabaikan karena kapasitas RAM server mencukupi).
Formatif:- Penilaian diagnostik awal berupa tes lisan/tulis pemahaman konsep skalabilitas data pencarian
- Observasi unjuk kerja diskusi berpasangan saat menyusun justifikasi kelebihan, keterbatasan, dan efisiensi waktu/memori
- Penilaian lembar kerja justifikasi komparatif solusi pengelolaan bank darah
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Justifikasi Efisiensi Waktu dan Memori Alternatif Solusi | Belum mampu mengidentifikasi perbandingan efisiensi waktu maupun memori antara solusi pencarian linear dan solusi tabel partisi indeks. | Mampu mengidentifikasi perbedaan kecepatan eksekusi tetapi belum mampu menjustifikasi keterkaitan efisiensi waktu dan keterbatasan memori secara logis berdasarkan ukuran data. | Mampu menjustifikasi efisiensi waktu dan konsumsi memori dari kedua alternatif solusi komputasi bank darah secara tepat pada sebagian besar aspek kasus. | Mampu menjustifikasi secara komprehensif efisiensi waktu (O(N) vs O(1)), trade-off konsumsi memori, serta batas kritis 1 detik pada 3 aspek kasus bank darah secara tepat dan mandiri. | | Justifikasi Kelebihan dan Keterbatasan Alternatif Solusi | Belum mampu menyebutkan kelebihan maupun keterbatasan dari alternatif solusi yang dianalisis. | Menyebutkan kelebihan atau keterbatasan satu solusi saja tanpa membandingkan kedua alternatif solusi secara berimbang. | Menjustifikasi kelebihan dan keterbatasan kedua alternatif solusi (pencarian linear vs partisi indeks) pada konteks pengelolaan bank darah secara tepat sesuai acuan kasus. | Menjustifikasi kelebihan dan keterbatasan kedua solusi secara mendalam dan sistematis pada berbagai skenario beban komputasi (penambahan data dan pencarian darurat). |
Refleksi Pertemuan:Guru:- Apakah aktivitas berpasangan 'Tantangan Detektif Stok Darah' efektif membantu murid memahami trade-off antara waktu eksekusi dan pemakaian memori?
- Bagian justifikasi mana yang paling banyak mengalami miskonsepsi pada murid terkait batasan komputasi 30 juta data?
Murid:- Bagaimana saya menimbang pilihan antara algoritma yang hemat memori tetapi lambat dengan algoritma yang sangat cepat tetapi membutuhkan struktur memori tambahan?
- Apakah saya sudah mampu memberikan alasan logis saat memilih solusi algoritma terbaik untuk kebutuhan sistem yang memiliki batasan waktu ketat?
Pertemuan 6 — Menjustifikasi Efisiensi dan Keterbatasan Solusi pada Persilangan Tanaman dan Stoikiometri — 3 JP (3 x 45 menit = 135 menit)Tujuan Pertemuan:- TP 11.4.2 Menjustifikasi efisiensi, kelebihan, dan keterbatasan dari setiap alternatif solusi persoalan komputasi
Pendahuluan:- Guru membuka pembelajaran dengan salam, memeriksa kehadiran, dan menyampaikan alur kegiatan pertemuan ke-6 tentang justifikasi efisiensi waktu, memori, serta keterbatasan solusi komputasi pada kasus persilangan tanaman dan stoikiometri kimia (5 menit).
- Guru melaksanakan asesmen awal diagnostik singkat menggunakan 2 pertanyaan tertulis: (1) Sebutkan kompleksitas waktu pencarian brute-force untuk n gen jika setiap gen memiliki 2 alel independen? (acuan: O(2^n) atau eksponensial); (2) Mana yang lebih efisien memori untuk menyetarakan reaksi kimia kompleks: tabel iterasi koefisien 1..100 atau representasi matriks aljabar? (acuan: matriks aljabar karena ukuran memori tetap proporsional terhadap jumlah unsur/senyawa O(m*n), sedangkan tabel iterasi berisiko ledakan kombinasi O(k^n)) (10 menit).
Kegiatan Inti:Memahami (Berkesadaran, Bermakna):- Murid mencermati pemaparan komparatif mengenai dua domain persoalan komputasi: (a) Kasus 1 Persilangan Tanaman dengan Solusi A (Pencacahan Kotak Punnett/Brute Force Kombinatorik) vs Solusi B (Perkalian Peluang Probabilistik Independen); (b) Kasus 2 Stoikiometri Kimia dengan Solusi A (Pencarian Eksplorasi Nilai Koefisien Brute-Force) vs Solusi B (Penyelesaian Sistem Persamaan Linear Homogen dengan Eliminasi Gauss-Jordan) (20 menit).
- Murid secara berkesadaran menganalisis parameter efisiensi komputasi: Big-O waktu eksekusi terhadap pertambahan parameter n (jumlah gen atau jumlah senyawa), serta konsumsi struktur memori penyimpan keadaan (20 menit).
Mengaplikasi (Menggembirakan, Bermakna):- Secara berpasangan, murid mengikuti tantangan menggembirakan 'Duel Justifikasi Solusi': setiap pasangan menerima Lembar Kerja Studi Kasus berisi 2 skenario uji (Persilangan Polihibrid n=10 dan Penyetaraan Reaksi Redoks 5 Senyawa). Murid berlomba mengisi tabel justifikasi dengan menentukan estimasi kompleksitas waktu, memori, kelebihan, serta batasan maksimal n agar program tidak mengalami time limit exceeded (40 menit).
- Setiap pasangan murid bertukar lembar kerja justifikasi dengan pasangan lain untuk saling menelaah ketepatan justifikasi berdasarkan kriteria operasional yang disediakan guru (20 menit).
Merefleksi (Berkesadaran):- Murid bersama guru menyintesis hasil justifikasi efisiensi: Solusi probabilitas unggul dalam waktu O(n) dan memori O(1) untuk persilangan tanaman independen namun terbatas jika terdapat gen terpaut (linkage); eliminasi aljabar matriks unggul terprediksi O(n^3) dan memori O(n^2) untuk reaksi kimia kompleks namun terbatas pada penanganan koefisien pecahan/invalid jika sistem singular (10 menit).
Penutup:- Murid mengerjakan asesmen akhir singkat (cek pemahaman mandiri) mengenai pemberian justifikasi pemilihan algoritma terbaik pada kasus stoikiometri berskala besar (5 menit).
- Guru memberikan penguatan umpan balik terhadap hasil telaah justifikasi murid, lalu menyampaikan agenda pertemuan berikutnya (Pertemuan 7: Merancang Struktur Data Larik Multidimensi untuk Simulasi Burung) dan menutup pembelajaran dengan doa bersama (5 menit).
Diferensiasi:- Konten: Menyediakan lembar kasus dengan variasi tingkat kompleksitas: variasi n=3 (trihibrid) untuk murid yang butuh bimbingan terstruktur, hingga n=15 (polihibrid kompleks) dan reaksi redoks berantai untuk murid yang siap tantangan lebih tinggi.
- Proses: Murid yang membutuhkan bimbingan diberikan panduan komparasi bertahap (tabel panduan Big-O); murid yang cepat diarahkan menganalisis kasus batas (boundary condition) ketika asumsi hukum Mendel tidak terpenuhi (misal tautan gen).
- Produk: Format penyajian justifikasi pada lembar kerja: murid dapat mengisi tabel matriks keputusan komparatif atau menyusun uraian paragraf argumen komparasi efisiensi.
Asesmen Pertemuan:Awal:- Dua pertanyaan diagnostik penguasaan konsep efisiensi komputasi: Butir 1: 'Tentukan kompleksitas waktu algoritma brute-force pembentukan kombinasi alel untuk n gen mandiri jika tiap gen memiliki 2 kemungkinan alel?' (Kunci/acuan: O(2^n) atau kompleksitas eksponensial karena setiap gen menggandakan jumlah cabang kombinasi). Butir 2: 'Manakah alternatif solusi yang memiliki konsumsi memori lebih efisien untuk menyetarakan reaksi kimia kompleks: (A) Membuat tabel eksplorasi nilai koefisien 1 sampai 100 secara menyeluruh, atau (B) Menyimpan koefisien atom dalam representasi matriks aljabar m x n?' (Kunci/acuan: Solusi B/matriks aljabar, karena memori yang dialokasikan pasti berukuran m x n, sedangkan eksplorasi tabel menyeluruh berisiko ledakan kombinasi memori berukuran eksponensial k^n).
Proses:- Observasi formatif saat murid mengisi Lembar Analisis Justifikasi pada dua kasus wajib: Kasus A (Persilangan Tanaman): membandingkan Solusi A1 (Brute-Force Tabel Punnett: Kompleksitas Waktu O(4^n), Memori O(4^n), Kelebihan: visualisasi genotipe lengkap per anakan, Keterbatasan: time limit/memori habis saat n > 10) vs Solusi A2 (Kaidah Peluang Mendel: Kompleksitas Waktu O(n), Memori O(1), Kelebihan: instan untuk menghitung probabilitas fenotipe spesifik, Keterbatasan: tidak memetakan daftar individu secara eksplisit). Kasus B (Stoikiometri Kimia): membandingkan Solusi B1 (Brute-Force Iteratif Koefisien: Kompleksitas Waktu O(k^v) dengan k batas nilai koefisien dan v jumlah zat, Memori O(1), Kelebihan: mudah dirancang tanpa konsep aljabar rumit, Keterbatasan: macet/lambat jika koefisien bernilai besar > 20) vs Solusi B2 (Eliminasi Gauss-Jordan Matriks: Kompleksitas Waktu O(v^3), Memori O(v^2), Kelebihan: deterministik dan sangat cepat untuk reaksi rantai panjang, Keterbatasan: memerlukan algoritma pencarian kelipatan persekutuan terkecil untuk mengonversi hasil desimal/pecahan ke bilangan bulat bulat positif terkecil).
Akhir Pertemuan:- Cek pemahaman akhir (2 butir tertulis): Butir 1: 'Berikan justifikasi mengapa Solusi Kaidah Peluang Mendel lebih efisien dibanding Pembuatan Tabel Punnett untuk menghitung peluang fenotipe pada 8 gen heterozigot!' (Kunci/acuan: Karena kaidah peluang memiliki kompleksitas waktu linier O(n) dengan 8 kali perkalian pecahan, sedangkan tabel Punnett membutuhkan O(4^8) = 65.536 operasi pencacahan kombinasi yang memboroskan waktu CPU dan memori). Butir 2: 'Sebutkan 1 keterbatasan metode Eliminasi Gauss-Jordan pada penyetaraan reaksi kimia stoikiometri!' (Kunci/acuan: Keterbatasannya adalah menghasilkan solusi dalam bentuk pecahan/skalar kontinu sehingga memerlukan langkah tambahan algoritma KPK untuk konversi bilangan bulat bulat terkecil, serta gagal menyelesaikan secara langsung jika matriks stoikiometri menghasilkan banyak solusi bebas/multireaksi tanpa batasan tambahan).
Formatif:- Penilaian proses unjuk kerja analisis tabel justifikasi efisiensi algoritma (persilangan tanaman & stoikiometri)
- Cek pemahaman tertulis pada asesmen awal diagnostik dan asesmen akhir pertemuan
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Justifikasi Efisiensi Waktu dan Memori | Belum mampu membedakan tingkat efisiensi waktu dan memori antara alternatif solusi brute force dan solusi analitis/matematis pada kedua kasus. | Mampu menyebutkan alternatif yang lebih cepat/hemat memori namun belum menyertakan argumen komputasi (notasi Big-O atau laju pertumbuhan data n) secara tepat. | Mampu menjustifikasi efisiensi waktu dan memori dari kedua alternatif solusi pada kasus persilangan tanaman dan stoikiometri dengan argumen komputasi yang tepat sesuai acuan materi. | Mampu menjustifikasi efisiensi waktu dan memori secara mendalam, presisi, serta mengaitkannya dengan ambang batas batas parameter n (analisis boundary condition kapan algoritma optimal beralih). | | Justifikasi Kelebihan dan Keterbatasan Solusi | Hanya menyebutkan kelebihan atau keterbatasan secara umum tanpa konteks persoalan komputasi persilangan tanaman maupun stoikiometri. | Mampu mengidentifikasi kelebihan dan keterbatasan salah satu kasus saja secara tepat sesuai konteks komputasi. | Mampu menjustifikasi kelebihan dan keterbatasan dari seluruh alternatif solusi pada kasus persilangan tanaman dan stoikiometri kimia secara lengkap sesuai kriteria. | Mampu menjustifikasi kelebihan dan keterbatasan seluruh solusi secara komparatif, kritis, serta memberikan rekomendasi adaptasi algoritma saat menghadapi kondisi anomali data. |
Refleksi Pertemuan:Guru:- Apakah alur perbandingan dua kasus sains (Biologi dan Kimia) efektif memfasilitasi murid dalam menjustifikasi efisiensi komputasi?
- Bagian mana dari justifikasi kompleksitas waktu (Big-O) yang masih membingungkan bagi sebagian murid dan memerlukan perbaikan scaffolding?
Murid:- Apakah saya sudah mampu menjelaskan alasan komputasional mengapa pendekatan peluang/matriks jauh lebih efisien dibanding pencarian brute force?
- Kapan saya harus memilih solusi yang sederhana meskipun lambat, dan kapan saya wajib menggunakan solusi yang lebih terstruktur dan efisien?
Pertemuan 7 — Menerapkan Solusi Optimal dengan Merancang Struktur Data Larik Multidimensi untuk Simulasi Burung — 3 JP (3 x 45 menit = 135 menit)Tujuan Pertemuan:- TP 11.4.3 Menerapkan solusi terbaik, paling efisien, dan optimal dengan merancang struktur data yang lebih kompleks dan abstrak
Pendahuluan:- Guru membuka pelajaran dengan salam, berdoa bersama, memeriksa kehadiran murid, serta menyiapkan suasana belajar yang kondusif (5 menit).
- Guru menyampaikan tujuan pembelajaran pertemuan ke-7, yaitu merancang struktur data larik multidimensi untuk menerapkan solusi optimal pada persoalan simulasi peluncuran burung (5 menit).
- Guru melaksanakan asesmen awal singkat untuk mengecek kesiapan konsep indeks larik dan representasi data tabular: murid menjawab 2 pertanyaan diagnostik pada selembar kertas/papan tulis mini (10 menit).
Kegiatan Inti:Memahami (Berkesadaran, Bermakna):- Guru menyajikan persoalan simulasi gerak N burung (subproblem 4) di mana setiap burung ke-i memiliki 3 parameter input (sudut S, kecepatan awal V, tinggi pohon T) dan 2 hasil komputasi (tinggi maksimum Hmax dan status ketercapaian sarang 0 atau 1) (10 menit).
- Murid mencermati pemodelan struktur data larik multidimensi: larik 2 dimensi dataBurung[N][5] di mana indeks baris [i] merepresentasikan nomor burung (0 s.d. N-1), dan indeks kolom merepresentasikan atribut: kolom 0 = S, kolom 1 = V, kolom 2 = T, kolom 3 = Hmax, kolom 4 = Status (15 menit).
- Murid secara berpasangan menganalisis keunggulan pengorganisasian data menggunakan larik multidimensi dibandingkan membuat 5 larik 1 dimensi terpisah dalam hal keteraturan akses memori, keterbacaan struktur program, dan kemudahan iterasi penelusuran (15 menit).
Mengaplikasi (Bermakna, Menggembirakan):- Murid menerima Lembar Kerja Perancangan Struktur Data berisi data uji 3 ekor burung: Burung 1 (S=37, V=100, T=100), Burung 2 (S=37, V=100, T=200), dan Burung 3 (S=53, V=50, T=60) dengan rumus Hmax = (V * sin(S))^2 / (2 * g) di mana g = 10, sin(37)=0.6, sin(53)=0.8 (10 menit).
- Dalam aktivitas tantangan berpasangan 'Matriks Peluncuran Burung', murid merancang spesifikasi matriks dataBurung[3][5], menentukan tipe data setiap sel (float/integer), dan memetakan nilai input serta hasil hitung ke dalam sel matriks yang tepat (15 menit).
- Setiap pasangan murid saling menukar rancangan tabel matriks untuk saling memverifikasi (peer-check) ketepatan pemetaan indeks larik [baris][kolom] dan hasil kalkulasi pada sel matriks (15 menit).
Merefleksi (Berkesadaran):- Murid bersama guru menyimpulkan bahwa pengorganisasian larik multidimensi mengelompokkan entitas burung secara utuh per baris sehingga algoritma komputasi dapat memproses data secara sistematis melalui perulangan indeks (15 menit).
- Murid menuliskan refleksi mandiri di Buku Kerja Siswa mengenai ketelitian dalam menentukan indeks baris-kolom dan memilih tipe data matriks (10 menit).
Penutup:- Guru memberikan umpan balik menyeluruh terhadap hasil perancangan struktur data larik multidimensi yang telah dikerjakan murid (5 menit).
- Guru menyampaikan keterkaitan materi hari ini dengan pertemuan berikutnya (Pertemuan 8: perancangan struktur data antrean dan tumpukan pada bank darah), lalu menutup sesi dengan doa dan salam (5 menit).
Diferensiasi:- Konten: Murid yang membutuhkan perancangan bertahap diberikan bantuan berupa kisi-kisi template tabel berlabel indeks baris dan kolom. Murid yang mahir diberikan tantangan data matriks 3 dimensi untuk mengelompokkan burung berdasarkan kategori ketapel/kelompok peluncuran.
- Proses: Pada tahap Mengaplikasi, murid yang masih ragu memetakan sel dibimbing secara terbimbing oleh guru dengan contoh 1 baris, sementara murid mahir bekerja mandiri menyelesaikan seluruh sel data.
- Produk: Rancangan tabel larik multidimensi dapat disajikan dalam format notasi tabel deklarasi matriks atau diagram sel memori terstruktur.
Asesmen Pertemuan:Awal:- Soal Diagnostik Singkat (dikerjakan 5-10 menit):
1. Jika sebuah larik 1 dimensi bernama 'kecepatan' memiliki ukuran 4 elemen, tuliskan indeks seluruh elemennya dari awal hingga akhir! (Acuan kunci: indeks 0, 1, 2, 3 atau 1, 2, 3, 4 bila berbasis 1; acuan baku pemrograman berbasis 0: indeks 0, 1, 2, 3).
2. Pada matriks 2 dimensi ukuran 2x3, sel A[1][2] menunjukkan elemen pada baris ke berapa dan kolom ke berapa? (Acuan kunci: baris indeks 1 / baris kedua, kolom indeks 2 / kolom ketiga).
Proses:- Observasi formatif saat pengerjaan tantangan 'Matriks Peluncuran Burung': memeriksa ketepatan murid dalam mendeklarasikan dimensi matriks dataBurung[3][5], menentukan tipe data tiap kolom, dan mengisi nilai sel matriks untuk 3 data uji burung sesuai acuan kunci:
- Burung 1 (indeks baris 0): [0][0]=37, [0][1]=100, [0][2]=100, [0][3]=180.00, [0][4]=1
- Burung 2 (indeks baris 1): [1][0]=37, [1][1]=100, [1][2]=200, [1][3]=180.00, [1][4]=0
- Burung 3 (indeks baris 2): [2][0]=53, [2][1]=50, [2][2]=60, [2][3]=80.00, [2][4]=1
(Catatan hitung: Hmax Burung 1 = (100*0.6)^2 / (2*10) = 3600/20 = 180; karena 180 >= 100 maka status 1. Hmax Burung 2 = 180; karena 180 < 200 maka status 0. Hmax Burung 3 = (50*0.8)^2 / (2*10) = 1600/20 = 80; karena 80 >= 60 maka status 1).
Akhir Pertemuan:- Cek Pemahaman Reflektif Akhir Sesi:
Murid menjawab 2 butir pertanyaan di lembar kerja:
1. Tuliskan notasi pemanggilan sel yang menyimpan nilai Hmax dari Burung ke-2 pada matriks dataBurung yang telah dirancang! (Acuan kunci: dataBurung[1][3]).
2. Jelaskan alasan pemilihan tipe data matriks float/real dibanding integer pada perancangan struktur data simulasi burung ini! (Kriteria penerimaan: murid menjelaskan bahwa komponen kecepatan, trigonometri sinus, dan hasil ketinggian maksimum Hmax menghasilkan bilangan riil/desimal sehingga memerlukan tipe data pecahan/float agar nilai tidak mengalami pemotongan/truncation presisi).
Formatif:- Penilaian asesmen awal mengenai pengindeksan larik dan bentuk tabular
- Observasi unjuk kerja perancangan struktur data larik multidimensi pada lembar kerja
- Cek pemahaman akhir mengenai pembacaan indeks sel matriks [baris][kolom]
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Perancangan Struktur Data Larik Multidimensi | Belum mampu menentukan ukuran dimensi baris dan kolom yang tepat untuk merepresentasikan atribut simulasi burung ke dalam larik 2 dimensi. | Mampu menentukan ukuran dimensi larik 2 dimensi, namun belum tepat dalam mendefinisikan pemetaan atribut kolom dan tipe datanya. | Mampu merancang struktur data larik multidimensi dengan dimensi ukuran, penamaan kolom, dan tipe data yang tepat untuk seluruh data simulasi burung. | Mampu merancang struktur data larik multidimensi secara mandiri, tepat, dan optimal disertai pemetaan sel memori yang lengkap serta penanganan presisi tipe data pecahan secara konsisten. | | Penerapan Nilai dan Hasil Komputasi pada Sel Matriks | Salah mengisi nilai input dan hasil komputasi pada sel larik multidimensi untuk ketiga data uji burung. | Tepat mengisi nilai input dan komputasi pada sel matriks untuk 1 data uji burung sesuai acuan kunci. | Tepat mengisi nilai input dan hasil komputasi pada sel matriks untuk 2-3 data uji burung sesuai acuan kunci dengan sedikit bantuan. | Tepat dan mandiri mengisi seluruh nilai input serta hasil komputasi status dan Hmax pada seluruh sel matriks untuk 3 data uji burung sesuai acuan kunci. |
Refleksi Pertemuan:Guru:- Apakah murid dapat memahami konsep pengelompokan data multi-atribut ke dalam struktur larik multidimensi secara visual dan abstrak?
- Bagian mana dari perancangan matriks (penentuan indeks baris vs kolom atau tipe data) yang paling sering menimbulkan kekeliruan pada murid?
- Apakah alokasi waktu untuk aktivitas tantangan berpasangan sudah mencukupi bagi murid untuk menuntaskan lembar kerja?
Murid:- Bagian mana yang paling menantang saat memetakan data simulasi burung ke dalam baris dan kolom matriks?
- Apa keuntungan utama yang saya rasakan ketika data banyak burung dikumpulkan dalam satu larik 2 dimensi daripada variabel yang terpisah-pisah?
Pertemuan 8 — Menerapkan Solusi Optimal dengan Merancang Struktur Data Antrean dan Tumpukan pada Bank Darah — 3 JP (3 x 45 menit = 135 menit)Tujuan Pertemuan:- TP 11.4.3 Menerapkan solusi terbaik, paling efisien, dan optimal dengan merancang struktur data yang lebih kompleks dan abstrak
Pendahuluan:- Guru membuka kelas dengan salam, memeriksa kesiapan belajar, dan memimpin doa bersama (5 menit).
- Guru mengaitkan materi pertemuan sebelumnya mengenai justifikasi efisiensi dengan memberikan asesmen diagnostik singkat: murid diminta menentukan prinsip kerja FIFO (First-In-First-Out) dan LIFO (Last-In-First-Out) pada 2 kasus operasional: (1) Pasien yang mengantre transfusi darah, dan (2) Kantong darah yang ditumpuk di rak pendingin dari atas (acuan jawaban: kasus 1 = FIFO/Queue; kasus 2 = LIFO/Stack) (10 menit).
Kegiatan Inti:Memahami (Berkesadaran, Bermakna):- Murid menyimak pemodelan konsep struktur data abstrak Queue (operasi enqueue, dequeue, peek) dan Stack (operasi push, pop, peek) serta representasinya dalam pengelolaan logistik bank darah (kantung darah masuk dan keluar berdasarkan waktu kedaluwarsa) (15 menit).
- Murid dalam kelompok berpasangan menganalisis spesifikasi kebutuhan persoalan Subproblem Pengelolaan Bank Darah: mengidentifikasi entitas kantong darah (ID, golongan darah, rhesus, tanggal masuk, tanggal kedaluwarsa) dan operasi yang dibutuhkan untuk menjaga ketersediaan darah secara optimal (15 menit).
Mengaplikasi (Menggembirakan, Bermakna):- Murid memainkan simulasi interaktif berpasangan 'Simulasi Alur Darah': satu murid berperan sebagai petugas input (enqueue/push) dan pasangannya sebagai penyalur darah darurat (dequeue/pop) menggunakan 4 kartu instruksi alur fisik: (1) Darah A masuk pertama, (2) Darah B masuk kedua, (3) Darah C masuk ketiga, (4) Permintaan darah darurat dikeluarkan (acuan: bila model Queue darah keluar adalah A; bila model Stack darah keluar adalah C) untuk membuktikan cara kerja kedua struktur data secara langsung dan menyenangkan (20 menit).
- Murid secara mandiri dalam kelompok merancang struktur data abstrak antrean (Queue) untuk alur donor/penerima darah darurat dan struktur data tumpukan/antrean berprioritas (Stack/Priority Queue) untuk penataan fisik kantung darah di ruang pendingin pada Lembar Kerja Desain Struktur Data (40 menit).
Merefleksi (Berkesadaran):- Murid bersama pasangannya saling menukar dan menelusuri (tracing) rancangan struktur data yang telah dibuat untuk memverifikasi apakah alur data yang dirancang mampu mencegah darah kedaluwarsa dan melayani kebutuhan darurat secara optimal (15 menit).
Penutup:- Guru bersama murid menyimpulkan hasil penerapan struktur data antrean dan tumpukan dalam optimalisasi sistem bank darah (10 menit).
- Guru memberikan penguatan terhadap hasil kerja murid serta menginformasikan materi pertemuan 9 mengenai rancangan tipe data rekaman (record) untuk persilangan tanaman, lalu menutup sesi dengan doa (5 menit).
Diferensiasi:- Konten: Menyediakan diagram alur visual operasi Queue dan Stack bagi kelompok yang membutuhkan dukungan visual konkret.
- Proses: Memberikan bimbingan terstruktur (scaffolding) berupa template perancangan medan atribut bagi murid yang masih kesulitan, dan memberikan tantangan perancangan Circular Queue bagi murid yang cepat paham.
- Produk: Rancangan struktur data dapat disajikan dalam bentuk diagram kelas abstrak, notasi struktur data C/Pascal, atau spesifikasi ADT tertulis lengkap.
Asesmen Pertemuan:Awal:- Tes diagnostik singkat lisan/tulisi 2 butir: Menentukan mekanisme FIFO vs LIFO pada kasus: (1) Alur antrean donor darah di loket PMI (acuan: FIFO/Queue); (2) Pengambilan tabung darah dari wadah vertikal atas (acuan: LIFO/Stack).
Proses:- Pemeriksaan lembar kerja perancangan ADT Queue dan Stack: murid merancang struktur data dengan elemen data kantong darah (ID, Golongan Darah, Tanggal Masuk, Tanggal Kedaluwarsa) beserta operasi dasar (enqueue/dequeue atau push/pop) secara tepat sesuai acuan fungsi penanganan stok darah.
Akhir Pertemuan:- Cek pemahaman 2 butir soal reflektif di akhir sesi: (1) Manakah struktur data yang tepat untuk memastikan kantong darah terlama dipakai lebih dulu (acuan: Queue/FIFO)?; (2) Apa risiko jika penataan stok darah di rak vertikal menggunakan prinsip Stack murni tanpa rotasi (acuan: Darah di tumpukan paling bawah berisiko kedaluwarsa karena tidak pernah terambil/terjebak di dasar)?
Formatif:- Penilaian proses perancangan struktur data Queue dan Stack pada Lembar Kerja Desain Struktur Data Bank Darah
- Observasi unjuk kerja penelusuran (tracing) operasi struktur data berpasangan
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Perancangan Struktur Data Antrean (Queue) | Belum mampu mendefinisikan elemen data dan operasi dasar Queue (enqueue dan dequeue) untuk bank darah secara tepat. | Mampu mendefinisikan elemen data namun operasi dasar Queue (enqueue dan dequeue) belum runtut dan masih keliru dalam penanganan penunjuk pointer awal/akhir. | Mampu merancang struktur data Queue secara tepat mencakup elemen data kantong darah dan operasi enqueue, dequeue, serta peek secara konsisten. | Mampu merancang struktur data Queue secara optimal dan lengkap, mencakup penanganan kondisi khusus (queue penuh/kosong) serta adaptasi antrean prioritas untuk kondisi darurat secara mandiri. | | Perancangan Struktur Data Tumpukan (Stack) | Belum mampu memodelkan operasi push dan pop tumpukan pada penyimpanan kantong darah. | Mampu memodelkan operasi dasar Stack namun mekanisme batas kapasitas penyimpanan dan penanganan elemen teratas belum tepat. | Mampu merancang struktur data Stack secara tepat dengan penanganan operasi push, pop, dan kondisi top of stack pada penyimpanan darah. | Mampu merancang struktur data Stack secara optimal disertai mekanisme inspeksi seluruh tumpukan untuk pencegahan kedaluwarsa secara mandiri dan komprehensif. |
Refleksi Pertemuan:Guru:- Apakah alokasi waktu kegiatan perancangan struktur data antrean dan tumpukan mencukupi bagi seluruh kelompok?
- Bagian mana dari konsep struktur data abstrak (Queue/Stack) yang paling banyak memerlukan bimbingan guru?
Murid:- Apakah saya sudah memahami perbedaan mendasar implementasi prinsip FIFO dan LIFO dalam persoalan nyata bank darah?
- Bagaimana rancangan antrean yang saya buat dapat membantu rumah sakit menyelamatkan pasien dengan lebih efisien?
Pertemuan 9 — Menerapkan Solusi Optimal dengan Merancang Struktur Data Kompleks Tipe Rekaman Data Persilangan Tanaman — 3 JP (3 x 45 menit = 135 menit)Tujuan Pertemuan:- TP 11.4.3 Menerapkan solusi terbaik, paling efisien, dan optimal dengan merancang struktur data yang lebih kompleks dan abstrak
Pendahuluan:- Guru membuka kelas dengan salam, memeriksa kehadiran, menyiapkan kondisi fisik dan psikis murid, serta mengulas kaitan studi kasus persilangan tanaman Hukum Mendel dengan representasi data komputasi (5 menit).
- Guru melaksanakan asesmen awal diagnostik singkat dengan menyajikan 2 cuplikan skenario penyimpanan data persilangan tanaman di papan tulis untuk dijawab cepat oleh murid secara lisan: (1) Skenario A menyimpan genotipe di larik teks dan fenotipe di larik teks terpisah, apa resiko sinkronisasi indeksnya? (acuan: inkonsistensi atau data tertukar jika terjadi manipulasi/sorting); (2) Bagaimana mendefinisikan tipe komposit yang menggabungkan genotipe, fenotipe, dan peluang dalam satu entitas? (acuan: menggunakan tipe record/struct) (10 menit).
Kegiatan Inti:Memahami (Bermakna, Berkesadaran):- Murid menyimak demonstrasi guru tentang perancangan tipe bentukan/rekaman data (record/struct `Tanaman`) yang memuat atribut heterogen: `genotipe` (string), `fenotipe_warna` (string), `fenotipe_bentuk` (string), dan `peluang_muncul` (float) untuk memodelkan individu hasil persilangan monohibrid dan dihibrid (15 menit).
- Murid secara kritis menganalisis perbandingan abstraksi penyimpanan: antara 'parallel arrays' (larik paralel tak terhubung) vs 'array of records' (larik rekaman data terstruktur) ditinjau dari keutuhan data dan keterbacaan algoritma (15 menit).
Mengaplikasi (Menggembirakan, Bermakna):- Murid memainkan 'Tantangan Gamet Match': secara berpasangan, murid mencocokkan kartu gamet parental (misal: BbTt x BbTt) ke dalam papan punnett square digital/manual untuk menghitung frekuensi kombinasi genotipe dan fenotipe yang akan dimasukkan ke dalam tabel rekaman (15 menit).
- Murid dalam kelompok berpasangan mengerjakan Lembar Kerja Perancangan Struktur Data Kompleks Persilangan Tanaman: merancang definisi tipe data rekaman `DataKeturunan` yang terdiri atas atribut `kode_genotipe` (teks), `sifat_tampak` (teks), `jumlah_kombinasi` (bilangan bulat), dan `rasio_persen` (bilangan desimal), lalu memetakan 16 kotak Punnett persilangan dihibrid heterozigot ke dalam sebuah larik bertipe rekaman tersebut (`koleksiHasil: array[1..16] of DataKeturunan`) (45 menit).
Merefleksi (Berkesadaran):- Murid saling menukar hasil rancangan lembar kerja dengan pasangan meja lain untuk memeriksa kelengkapan tipe field atribut dan konsistensi struktur larik rekaman data yang telah dirancang (15 menit).
- Murid secara sadar mengevaluasi mengapa perancangan tipe rekaman data mempermudah pengorganisasian data biologis yang kompleks dibandingkan struktur data primitif tunggal (10 menit).
Penutup:- Guru memberikan penguatan terhadap abstraksi tipe rekaman data (record) dan larik multidimensi/koleksi rekaman sebagai pondasi penerapan solusi komputasi yang optimal (5 minit).
- Guru bersama murid melakukan asesmen akhir/cek pemahaman singkat serta mengingatkan bahan persiapan untuk pertemuan berikutnya tentang penulisan pseudocode algoritma, kemudian menutup pembelajaran dengan doa dan salam (5 menit).
Diferensiasi:- Konten: Menyediakan contoh diagram skema struktur data rekaman untuk kasus persilangan monohibrid (1 sifat beda) sebagai perancah bagi murid yang membutuhkan scaffolding, serta studi kasus trihibrid (3 sifat beda dengan 64 kombinasi) untuk kelompok mahir.
- Proses: Memberikan bimbingan terarah bagi pasangan yang kesulitan memetakan field data heterogen, sedangkan kelompok yang cepat diarahkan menyusun rekaman hierarkis (record di dalam record).
- Produk: Desain skema tipe rekaman data pada lembar kerja disajikan dalam bentuk diagram kelas/skema struct disertai tabel instansiasi data persilangan.
Asesmen Pertemuan:Awal:- Tes diagnostik lisan singkat berupa 2 pertanyaan pemahaman konsep struktur data komposit: (1) Apa kelemahan menyimpan 3 atribut persilangan pada 3 larik terpisah? (acuan jawaban: rawan inkonsistensi saat pemilahan/pengurutan data dan penanganan indeks tidak padu); (2) Konsep apa yang digunakan untuk mengelompokkan atribut dengan tipe berbeda ke dalam satu tipe baru? (acuan jawaban: record/struct/tipe bentukan bentukan heterogen).
Proses:- Penilaian formatif lembar kerja perancangan struktur data kompleks: guru memverifikasi ketepatan pendefinisian tipe rekaman `DataKeturunan` yang memuat minimal 4 atribut wajib: (1) genotipe (tipe string/teks, acuan contoh: 'BBTT', 'BbTt'), (2) fenotipe (tipe string/teks, acuan contoh: 'Bulat Kuning'), (3) frekuensi (tipe integer/bulat, acuan contoh: 4), (4) proporsi/persentase (tipe real/float, acuan contoh: 25.0), serta ketepatan representasi larik rekaman (array of record) penyimpanannya.
Akhir Pertemuan:- Cek pemahaman tertulis singkat di akhir sesi: Murid menuliskan deklarasi tipe data rekaman (record) untuk entitas 'HasilPersilangan' yang memuat 3 field: nama_fenotipe (string), simbol_genotipe (string), dan probabilitas (real) (acuan jawaban: struktur record dengan pendefinisian 3 field beserta tipe data yang cocok: field 1 string, field 2 string, field 3 real/float).
Formatif:- Observasi unjuk kerja dan lembar telaah rancangan struktur data rekaman persilangan tanaman selama kerja berpasangan
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Perancangan Tipe Rekaman Data (Record) | Belum mampu mendefinisikan tipe rekaman data, masih menggunakan larik primitif terpisah secara tidak terstruktur. | Mampu mendefinisikan tipe rekaman data namun field atributnya belum lengkap (kurang dari 3 field) atau tipe datanya belum sesuai peruntukan data persilangan. | Mampu merancang tipe rekaman data secara tepat yang memuat minimal 4 atribut data persilangan (genotipe, fenotipe, frekuensi, persentase) dengan tipe data yang valid. | Mampu merancang tipe rekaman data secara komprehensif dan optimal, memuat atribut lengkap beserta struktur rekaman tersarang (nested record/array of records) secara mandiri dan presisi. | | Penerapan Solusi Optimal pada Koleksi Data | Belum mampu memetakan hasil persilangan ke dalam struktur larik bertipe rekaman data. | Mampu memetakan sebagian data hasil persilangan ke dalam larik rekaman namun masih terdapat kesalahan indeks atau ketidaksesuaian tipe atribut. | Mampu memetakan seluruh data variasi hasil persilangan (minimal 16 kombinasi Punnett Square dihibrid) ke dalam larik rekaman data secara konsisten dan terorganisasi. | Mampu memetakan seluruh data variasi hasil persilangan ke dalam larik rekaman data secara optimal dan efisien, serta mampu menangani agregasi data genotipe sejenis secara tepat. |
Refleksi Pertemuan:Guru:- Apakah alur pembelajaran perancangan tipe rekaman data (record) berhasil membantu murid mengabstraksikan data persilangan biologi ke dalam konsep informatika secara terstruktur?
- Bagian mana dari aktivitas rancangan struktur data kompleks yang masih memerlukan bimbingan tambahan bagi murid yang lambat?
Murid:- Apa keuntungan nyata yang saya rasakan saat mengelompokkan berbagai atribut persilangan ke dalam satu tipe data rekaman dibandingkan menggunakan larik terpisah?
- Bagaimana pemahaman tentang tipe rekaman data ini membantu saya dalam merancang solusi persoalan data di kehidupan nyata?
Pertemuan 10 — Mengembangkan Program Terstruktur dalam Notasi Algoritma Pseudocode Berdasarkan Strategi Simulasi Burung — 2 JP (2 x 45 menit = 90 menit)Tujuan Pertemuan:- TP 11.4.4 Mengembangkan program komputer terstruktur dalam notasi algoritma berdasarkan strategi algoritmik yang tepat
Pendahuluan:- Guru membuka pelajaran, menyapa murid, memeriksa kehadiran, dan mengkondisikan kelas dalam suasana belajar yang tertib (3 menit).
- Guru menyampaikan tujuan pembelajaran pertemuan ke-10, yaitu mengembangkan program komputer terstruktur dalam notasi pseudocode untuk kasus simulasi gerak peluncuran burung (3 menit).
- Guru melaksanakan asesmen awal diagnostik singkat dengan menampilkan 2 potongan notasi pseudocode dan meminta murid mengidentifikasi kebenaran struktur instruksi sekuensial dan seleksinya pada lembar diagnostik (acuan jawaban: potongan 1 valid terstruktur dengan blok IF-THEN-ELSE tertutup ENDIF; potongan 2 tidak valid karena variabel digunakan sebelum diinisialisasi dan blok percabangan tidak ditutup) (9 menit).
Kegiatan Inti:Memahami (Berkesadaran, Bermakna):- Murid menyimak penjelasan guru tentang konvensi penulisan notasi algoritma pseudocode terstruktur yang mencakup blok Header (judul algoritma), Deklarasi (kamus data/variabel beserta tipe data: N bertipe integer, S bertipe real, V bertipe real, T bertipe real, Hmax bertipe real, status bertipe integer), dan Deskripsi Algoritma (input, rumus komputasi lintasan Hmax = (V * V * (sin(S * pi / 180))^2) / (2 * g) dengan g = 10, struktur seleksi status = 1 jika Hmax >= T dan 0 jika sebaliknya, serta output) (15 menit).
- Murid menganalisis contoh notasi pseudocode terstruktur untuk pemrosesan 1 burung dan membedah keterkaitan antara strategi algoritmik sekuensial dengan ketepatan pemodelan rumus ketinggian gerak peluru secara mendalam (10 menit).
Mengaplikasi (Menggembirakan, Bermakna):- Murid mengikuti tantangan menggembirakan 'Pseudocode Relay Race': secara cepat berpasangan saling menyusun urutan 4 potongan blok notasi algoritma acak menjadi struktur logika yang utuh dan runtut di meja masing-masing (potongan: [1] Deklarasi variabel, [2] Input nilai N, S, V, T, [3] Hitung Hmax dan bandingkan dengan T, [4] Tampilkan status dan Hmax; urutan tepat: 1-2-3-4) (10 menit).
- Secara mandiri, murid mengembangkan program terstruktur dalam notasi pseudocode lengkap untuk persoalan simulasi gerak burung Subproblem 4 (memproses N burung menggunakan perulangan FOR atau WHILE terstruktur, membaca S, V, T untuk setiap burung, menghitung Hmax, menentukan status ketinggian 1 atau 0, serta menampilkan output format: 'Status Burung i : status' dan 'Ketinggian: Hmax') pada Buku Kerja Siswa (acuan isi terstruktur: (1) Header algoritma, (2) Deklarasi N, i, S, V, T, Hmax, status, (3) Input N, (4) Perulangan i dari 1 sampai N, (5) Di dalam perulangan: Input S, V, T; Hmax <- (V^2 * (sin(S*pi/180))^2)/(2*10); IF Hmax >= T THEN status <- 1 ELSE status <- 0 ENDIF; Output 'Status Burung ', i, ' : ', status; Output 'Ketinggian: ', Hmax; (6) ENDFOR) (25 menit).
Merefleksi (Berkesadaran):- Murid memeriksa kembali rancangan pseudocode yang telah dibuatnya menggunakan daftar periksa mandiri (kelengkapan deklarasi tipe data, kejelasan indentasi, dan ketepatan sintaks percabangan/perulangan) untuk memastikan keterstrukturannya sebelum program ditranslasikan ke kode sumber pada pertemuan berikutnya (10 menit).
Penutup:- Murid dan guru menyimpulkan prinsip utama pengembangan program terstruktur dalam notasi algoritma pseudocode (blok deklarasi yang jelas, runtutan komputasi yang valid, dan konstruksi perulangan serta seleksi yang tertutup rapi) (3 menit).
- Guru memberikan umpan balik umum terhadap hasil kerja murid serta menginformasikan materi pertemuan berikutnya, yaitu pengembangan program terstruktur notasi prosedural kasus bank darah, kemudian menutup sesi dengan doa dan salam (2 menit).
Diferensiasi:- Konten: Murid yang membutuhkan bimbingan diberikan kartu panduan struktur sintaks pseudocode (kerangka Header, Deklarasi, Deskripsi Algoritma beserta rumus trigonometri siap pakai); murid yang cepat diarahkan langsung merancang pseudocode dari spesifikasi teks masalah.
- Proses: Guru memberikan scaffolding terpandu pada penulisan blok perulangan bagi murid yang mengalami kesulitan; murid cepat diberikan tantangan memperluas batasan variabel masukan sudut (validasi nilai S antara 0 sampai 90 derajat dalam notasi pseudocode).
- Produk: Seluruh murid menghasilkan notasi algoritma pseudocode terstruktur untuk kasus N burung; murid dengan pemahaman lebih mendalam menambahkan penanganan validasi input nilai kecepatan non-negatif pada blok pseudocode.
Asesmen Pertemuan:Awal:- Murid menganalisis 2 potongan notasi pseudocode pada lembar diagnostik: Potongan A (PROGRAM Hitung; DEKLARASI x: integer; ALGORITMA: READ(x); IF x > 0 THEN WRITE('Positif') ELSE WRITE('Non-Positif') ENDIF) dan Potongan B (PROGRAM Hitung; ALGORITMA: WRITE(x); READ(x); IF x > 0 THEN WRITE('Positif')). Murid menentukan kevalidan struktur keduanya. Acuan jawaban: Potongan A VALID karena memiliki deklarasi variabel dan blok seleksi tertutup; Potongan B TIDAK VALID karena variabel x dipakai sebelum dideklarasi/dibaca dan blok IF tidak ditutup.
Proses:- Observasi keteraturan logika dan pemeriksaan lembar Buku Kerja Siswa saat murid menyusun notasi algoritma pseudocode terstruktur untuk simulasi gerak N burung. Kriteria penilaian: (1) Adanya blok Header, Deklarasi, dan Algoritma; (2) Ketepatan perulangan i dari 1 hingga N; (3) Ketepatan rumus komputasi Hmax = (V^2 * (sin(S*pi/180))^2)/(2*10); (4) Ketepatan struktur IF Hmax >= T THEN status <- 1 ELSE status <- 0 ENDIF; (5) Kesesuaian output status dan Hmax.
Akhir Pertemuan:- Cek pemahaman mandiri di akhir sesi berupa pemeriksaan 3 pernyataan ceklis pada buku kerja: (1) Seluruh variabel (N, S, V, T, Hmax, status) telah terdefinisi tipe datanya di blok kamus data; (2) Logika perulangan memproses N data burung secara berurutan; (3) Blok kondisi percabangan memiliki penutup ENDIF yang jelas (acuan: seluruh 3 ceklis terisi 'Ya' disertai bukti baris kode pseudocode terkait).
Formatif:- Asesmen diagnostik tertulis singkat tentang verifikasi kevalidan struktur blok notasi pseudocode pada awal pertemuan.
- Penilaian kinerja penulisan notasi pseudocode terstruktur pada lembar kerja saat tahap mengaplikasi menggunakan rubrik ketercapaian algoritma terstruktur.
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Pengembangan Notasi Pseudocode Terstruktur | Notasi pseudocode belum terstruktur, tidak memisahkan blok deklarasi dan algoritma, serta belum memuat instruksi seleksi atau perulangan yang benar untuk kasus simulasi gerak burung. | Notasi pseudocode memuat pemisahan deklarasi dan algoritma, namun logika perulangan atau seleksi kondisi perbandingan ketinggian burung (Hmax terhadap T) masih keliru atau tidak tertutup rapi. | Notasi pseudocode dikembangkan secara terstruktur dengan blok header, deklarasi, dan algoritma yang tepat, mencakup perulangan N burung, rumus ketinggian, serta seleksi kondisi status secara benar dengan sedikit bantuan. | Notasi pseudocode dikembangkan secara terstruktur, lengkap, rapi (indentasi konsisten), akurat dalam perulangan N data burung, rumus fisika komputasi, dan seleksi status ketinggian secara mandiri. |
Refleksi Pertemuan:Guru:- Apakah alokasi waktu 90 menit mencukupi bagi murid untuk merancang notasi pseudocode terstruktur secara mandiri?
- Bagian mana dari notasi pseudocode (deklarasi, perulangan N data, atau rumus komputasi) yang paling banyak memerlukan bimbingan guru?
Murid:- Apakah saya sudah mampu menuliskan logika percabangan dan perulangan ke dalam notasi pseudocode secara terstruktur dan rapi?
- Langkah apa yang perlu saya teliti kembali agar notasi algoritma yang saya buat mudah diterjemahkan ke dalam bahasa pemrograman?
Pertemuan 11 — Mengembangkan Program Terstruktur dalam Notasi Algoritma Prosedural untuk Kasus Pengelolaan Bank Darah — 2 JP (2 x 45 menit = 90 menit)Tujuan Pertemuan:- TP 11.4.4 Mengembangkan program komputer terstruktur dalam notasi algoritma berdasarkan strategi algoritmik yang tepat
Pendahuluan:- Guru membuka kelas dengan salam, memeriksa kehadiran murid, dan menyampaikan target pembelajaran yaitu mengembangkan program komputer terstruktur dalam notasi algoritma prosedural (pseudocode berpembagian modul/prosedur) untuk kasus Pengelolaan Bank Darah (5 menit).
- Guru melaksanakan asesmen awal diagnostik melalui 2 butir pertanyaan di papan tulis: (1) Sebutkan 2 komponen utama penyusun struktur sebuah prosedur dalam notasi algoritma prosedural! (acuan: nama prosedur/parameter dan badan aksi/instruksi lokal); (2) Jelaskan perbedaan mendasar antara prosedur dan fungsi dalam algoritma terstruktur! (acuan: fungsi mengembalikan nilai balikan/return value tertentu melalui namanya, sedangkan prosedur menjalankan serangkaian aksi instruksi tanpa mengembalikan nilai balikan langsung) (10 menit).
Kegiatan Inti:Memahami (Berkesadaran):- Murid mencermati dekomposisi spesifikasi algoritma kasus Pengelolaan Bank Darah yang disajikan guru, meliputi kebutuhan 3 subprogram utama: Prosedur TambahKantong(input data, input-output stok), Fungsi CekKetersediaan(input gol_darah, input stok) -> boolean, dan Prosedur AlokasiDarah(input gol_darah, input jumlah, input-output stok) (10 menit).
- Murid menyimak demonstrasi guru tentang aturan konvensi notasi algoritma terstruktur (deklarasi tipe data, pendefinisian parameter masukan/keluaran `input/output`, serta struktur kontrol kondisional dan perulangan standar) (10 menit).
Mengaplikasi (Menggembirakan, Bermakna):- Murid mengikuti tantangan 'Tebak Jejak Prosedur': secara berpasangan, murid menelusuri (tracing) potongan algoritma prosedural verifikasi donor dan mencocokkan hasil perubahan nilai parameter output stok darah berdasarkan 3 data uji masukan yang diberikan (A, B, O) untuk memastikan kebenaran alur logika dengan penuh semangat (10 menit).
- Secara mandiri, murid mengembangkan program terstruktur dalam notasi algoritma prosedural lengkap (meliputi judul, kamus data terstruktur, subprogram Prosedur TambahKantong, Fungsi CekKetersediaan, Prosedur AlokasiDarah, dan algoritma utama/driver) pada Lembar Aktivitas LD-K11-03 kasus Bank Darah (25 menit).
Merefleksi (Berkesadaran):- Murid melakukan penelusuran balik (desk checking/dry-run) terhadap rancangan notasi algoritma prosedural yang telah dikembangkannya untuk memvalidasi apakah penanganan parameter input/output dan pemanggilan modul sudah terstruktur dan bebas dari kesalahan logika (10 menit).
Penutup:- Murid dan guru menyimpulkan prinsip modularitas dalam penyusunan program terstruktur menggunakan notasi algoritma prosedural untuk studi kasus sistem bank darah (5 menit).
- Guru memberikan umpan balik atas hasil penyusunan algoritma murid dan mengingatkan materi pertemuan berikutnya tanpa tugas rumah tambahan (5 menit).
Diferensiasi:- Konten: Murid yang membutuhkan bimbingan diberikan kartu panduan struktur sintaks notasi prosedural (template header prosedur, deklarasi parameter formal, dan format pengendali); murid mahir diberikan batasan kompleksitas tambahan berupa validasi tanggal kedaluwarsa kantong darah pada parameter prosedur.
- Proses: Murid mandiri mengembangkan algoritma secara langsung dari spesifikasi teks, sedangkan murid yang memerlukan scaffolding dipandu mengurai kamus data variabel sebelum menyusun badan instruksi subprogram.
- Produk: Format penulisan notasi algoritma mengikuti gaya teks pseudocode prosedural terstruktur yang disepakati, dengan kedalaman penanganan modul disesuaikan dengan kesiapan murid.
Asesmen Pertemuan:Awal:- Diagnostik pemahaman notasi algoritma prosedural (2 butir): (1) Komponen utama struktur modul prosedur; (2) Perbedaan mekanisme nilai balikan antara prosedur dan fungsi. Acuan kunci: (1) Header/nama prosedur dengan parameter formal, dan bodi instruksi aksi/kamus lokal; (2) Fungsi mengembalikan suatu nilai (return value), prosedur mengeksekusi instruksi/mengubah status parameter passing by reference tanpa nilai kembalian langsung.
Proses:- Formatif pengembangan notasi algoritma: Pemeriksaan ketepatan perancangan subprogram Prosedur TambahKantong, Fungsi CekKetersediaan, Prosedur AlokasiDarah, kesesuaian parameter passing (input vs input-output), dan konsistensi struktur pemanggilan pada algoritma utama.
Akhir Pertemuan:- Cek pemahaman terstruktur mandiri di penutup: Murid menuliskan ringkasan modul driver (algoritma utama) yang memanggil 3 subprogram yang dirancang. Kriteria penerimaan operasional: Driver memuat inisialisasi struktur data stok bank darah, pemanggilan Prosedur TambahKantong, pemanggilan Fungsi CekKetersediaan dalam struktur percabangan IF, dan eksekusi Prosedur AlokasiDarah dengan argumen aktual yang cocok tipe datanya.
Formatif:- Penilaian proses lembar kerja notasi algoritma prosedural terstruktur kasus Bank Darah
- Pengamatan keterlaksanaan dry-run penelusuran parameter prosedur
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Pengembangan Dekomposisi Prosedural Notasi Algoritma | Belum mampu menyusun modul prosedur/fungsi terpisah; instruksi algoritma masih ditulis menyatu dalam satu blok tanpa pembagian parameter. | Mengembangkan notasi algoritma dengan membagi modul subprogram, namun deklarasi parameter formal (input/output) belum konsisten atau salah dalam pemilahan fungsi versus prosedur. | Mengembangkan notasi algoritma terstruktur secara tepat menjadi subprogram prosedur dan fungsi terpisah dengan spesifikasi parameter input dan output yang benar pada kasus Bank Darah. | Mengembangkan notasi algoritma terstruktur secara utuh, rapi, tepat, dan mandiri dengan perancangan modularitas subprogram yang efisien serta penanganan kondisi batas data stok secara tuntas. | | Keterstrukturan Notasi Algoritma dan Alur Kontrol | Notasi pseudocode tidak terstruktur, logika alur percabangan dan perulangan rancu atau melompati aturan kontrol standar. | Notasi pseudocode menggunakan struktur kontrol sekuensial dan seleksi, namun mekanisme pemanggilan subprogram pada algoritma utama masih terdapat inkonsistensi nama argumen. | Notasi pseudocode terstruktur rapi dengan tata cara penulisan algoritma prosedural standar, alur percabangan, dan pemanggilan antar-modul berjalan runtut. | Notasi pseudocode terstruktur sangat sistematis, penamaan variabel dan modul konsisten, modul driver terintegrasi sempurna dengan seluruh subprogram secara mandiri tanpa galat logika. |
Refleksi Pertemuan:Guru:- Apakah murid telah memahami esensi pemisahan masalah menjadi modul prosedur dan fungsi dalam notasi algoritma terstruktur?
- Apakah alokasi waktu penelusuran (dry-run) algoritma cukup untuk membantu murid menemukan kesalahan logika mereka sendiri?
Murid:- Bagian mana dari pendefinisian parameter prosedur (input vs output) pada kasus bank darah yang menurut saya paling menantang?
- Bagaimana penyusunan algoritma secara modular membantu saya berpikir lebih teratur dalam memecahkan masalah komputasi?
Pertemuan 12 — Mengembangkan Program Terstruktur dalam Notasi Algoritma Moduler untuk Kasus Stoikiometri — 2 JP (2 x 45 menit = 90 menit)Tujuan Pertemuan:- TP 11.4.4 Mengembangkan program komputer terstruktur dalam notasi algoritma berdasarkan strategi algoritmik yang tepat
Pendahuluan:- Guru membuka kelas dengan salam, memeriksa kehadiran murid, dan menyampaikan tujuan pembelajaran yaitu mengembangkan program terstruktur dalam notasi algoritma moduler untuk kasus stoikiometri (3 menit).
- Guru melaksanakan asesmen awal diagnostik melalui 2 pertanyaan singkat tertulis untuk memeriksa pemahaman dasar mengenai notasi subprogram/fungsi dan rumus dasar mol dalam pemrograman: (1) 'Tuliskan kepala notasi algoritma berupa fungsi yang menerima massa (real) dan massa molar Mr (real) lalu menghasilkan nilai mol (real)'; (2) 'Sebutkan 3 komponen utama dalam struktur notasi algoritma moduler' (acuan jawaban: (1) fungsi hitungMol(massa: real, mr: real) -> real; (2) nama modul/fungsi, parameter masukan/keluaran, dan badan algoritma/instruksi terstruktur) (7 menit).
Kegiatan Inti:Memahami (Berkesadaran, Bermakna):- Murid menyimak telaah kasus stoikiometri reaksi sederhana (misalnya pembentukan air: 2H2 + O2 -> 2H2O atau pembentukan amonia: N2 + 3H2 -> 2NH3) dan mencermati pemodelan komputasi yang didekomposisi menjadi tiga modul fungsional: fungsi hitungMol, fungsi cariPereaksiPembatas, dan fungsi hitungMassaProduk (15 menit).
- Murid mengidentifikasi spesifikasi antarmuka tiap modul dalam notasi pseudocode standar yang mencakup tipe parameter formal, tipe nilai kembalian, serta runtunan instruksi percabangan dan perhitungannya (15 menit).
Mengaplikasi (Menggembirakan, Bermakna):- Murid mengikuti tantangan berpasangan 'Tebak Alur Modul' secara interaktif: setiap pasangan saling menguji kartu fragmen pseudocode acak yang berisi modul stoikiometri rumpang untuk dipasangkan dengan input-output yang tepat secara cepat dan menyenangkan (10 menit).
- Murid secara mandiri mengembangkan rancangan program terstruktur lengkap dalam notasi pseudocode moduler pada lembar kerja kasus stoikiometri pembentukan gas amonia (N2 + 3H2 -> 2NH3) yang terdiri atas modul fungsi 'hitung_mol(massa, mr)', fungsi 'tentukan_pembatas(mol_N2, mol_H2)', prosedur 'hitung_stoikiometri()', dan program utama, dengan memastikan kejelasan variabel masukan, logika komputasi, dan struktur moduler (25 menit).
Merefleksi (Berkesadaran):- Murid menelaah kembali hasil notasi algoritma moduler miliknya dengan memverifikasi keterlacakan alur variabel dan parameter menggunakan lembar penelusuran (trace table) sederhana (10 menit).
Penutup:- Murid bersama guru menyimpulkan prinsip modularitas dalam penyusunan notasi algoritma terstruktur untuk menyelesaikan persoalan komputasi sains (3 menit).
- Guru memberikan umpan balik penguatan terhadap ketepatan notasi algoritma moduler dan menginformasikan aktivitas pertemuan berikutnya terkait penyempurnaan kode sumber (2 menit).
Diferensiasi:- Konten: Murid yang membutuhkan bimbingan diberikan panduan sintaks modul pseudocode terstruktur dan template kerangka subprogram; murid yang cepat diberikan kasus reaksi stoikiometri dengan rasio koefisien bertingkat (misal pembakaran hidrokarbon CxHy).
- Proses: Murid yang masih kesulitan dipandu langkah demi langkah mendefinisikan parameter fungsi, sedangkan murid mahir langsung merancang modularisasi lengkap tanpa scaffolding.
- Produk: Notasi algoritma pseudocode terstruktur kasus stoikiometri dengan kompleksitas reaksi standar (untuk reguler) atau reaksi dengan sisa pereaksi ganda (untuk pengayaan).
Asesmen Pertemuan:Awal:- Tes diagnostik singkat tertulis 2 butir: (1) Penulisan deklarasi fungsi hitungMol(massa, mr) -> real; (2) Menyebutkan 3 komponen pembangun notasi modul algoritma (acuan: (1) fungsi hitungMol(massa: real, mr: real) -> real { return massa / mr }; (2) nama modul/fungsi, parameter input/output, badan modul/algoritma instruksi).
Proses:- Pemeriksaan draf notasi pseudocode murid saat tahap Mengaplikasi dengan kriteria ketepatan: modularitas fungsi terpisah (hitung_mol, tentukan_pembatas), ketepatan passing parameter, dan instruksi terstruktur (runtunan dan percabangan).
Akhir Pertemuan:- Cek pemahaman tertulis 1 butir di akhir sesi: 'Tuliskan struktur blok pemanggilan modul fungsi tentukan_pembatas di dalam program utama beserta penampung hasilnya' (acuan: p_pembatas <- tentukan_pembatas(mol_A, mol_B, koef_A, koef_B)).
Formatif:- Penilaian lembar kerja perancangan notasi algoritma moduler (pseudocode) kasus stoikiometri
- Observasi ketepatan alur modul dan penelusuran trace table saat latihan mandiri
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Keterstrukturan Notasi Algoritma Moduler Kasus Stoikiometri | Belum mampu memecah program ke dalam notasi modul terpisah; seluruh alur stoikiometri ditulis menumpuk dalam satu blok tanpa notasi fungsi/prosedur yang jelas. | Mampu menuliskan notasi modul algoritma namun pembagian fungsi masih belum tepat (misal modul hitung mol belum terpisah dari penentuan pereaksi pembatas) dan parameter belum didefinisikan lengkap. | Mampu mengembangkan notasi algoritma moduler terstruktur dengan tepat untuk kasus stoikiometri yang memisahkan fungsi perhitungan mol, modul pereaksi pembatas, dan alur program utama secara runtut. | Mampu mengembangkan notasi algoritma moduler terstruktur secara mandiri, lengkap, dan presisi, mencakup penanganan kondisi khusus (seperti pereaksi ekuivalen/habis bereaksi bersamaan) dengan notasi subprogram dan passing parameter yang sangat teratur. |
Refleksi Pertemuan:Guru:- Apakah alokasi waktu 90 menit mencukupi bagi murid untuk memahami abstraksi pemecahan modul stoikiometri dan menuliskannya dalam notasi algoritma terstruktur?
- Bagian mana dari notasi modularitas (deklarasi parameter, nilai kembalian, atau pemanggilan modul) yang paling banyak mengalami miskonsepsi oleh murid?
Murid:- Apakah saya sudah memahami bagaimana cara memecah masalah perhitungan stoikiometri menjadi fungsi-fungsi kecil dalam notasi pseudocode?
- Kesulitan apa yang saya temui saat menghubungkan parameter antar-modul algoritma dalam program terstruktur ini?
Pertemuan 13 — Menyempurnakan Algoritma Standar Pencarian ke dalam Kode Sumber Program Bersih Pengelolaan Bank Darah — 2 JP (2 x 45 menit = 90 menit)Tujuan Pertemuan:- TP 11.4.5 Menyempurnakan algoritma standar ke dalam kode sumber program dengan memperhatikan kualitasnya
Pendahuluan:- Guru membuka pembelajaran dengan salam, memeriksa kesiapan belajar dan kehadiran murid di laboratorium komputer (3 menit).
- Guru menyampaikan tujuan pembelajaran pertemuan ke-13, yaitu menyempurnakan algoritma standar pencarian (linear/binary search) ke dalam kode sumber program bersih (clean code) untuk kasus pengelolaan bank darah (4 menit).
- Murid mengerjakan asesmen awal singkat untuk mendeteksi pemahaman struktur dasar fungsi algoritma pencarian standar dan indikator kode bersih (8 menit).
Kegiatan Inti:Memahami (Berkesadaran, Bermakna):- Murid mencermati contoh kode sumber program pencarian donor darah yang bekerja benar namun tidak berkualitas: fungsi monolitik tanpa modularisasi, penamaan variabel acak (misal: 'x', 'temp1'), tanpa validasi kondisi batas data kosong, dan minim dokumentasi (10 menit).
- Murid menganalisis 4 kaidah kualitas kode bersih pada algoritma pencarian: (1) Penamaan pengenal/variabel deskriptif dan konsisten, (2) Pemisahan modularitas fungsi pencarian terpisah dari input/output, (3) Penanganan kondisi batas data (larik kosong atau data tidak ditemukan), (4) Indentasi serta dokumentasi ringkas yang bermakna (10 menit).
Mengaplikasi (Menggembirakan, Bermakna):- Murid secara berpasangan mengikuti tantangan interaktif 'Refactoring Code Race' di mana setiap pasangan berlomba menyempurnakan cuplikan kode pencarian donor darah kotor menjadi kode bersih standar dengan menerapkan kaidah modularitas dan penamaan variabel secara cepat dan tepat (15 menit).
- Murid secara mandiri menyempurnakan kode sumber program pencarian stok kantong darah (pencarian berdasarkan rhesus dan golongan darah) pada berkas latihan, mengubah algoritma pencarian linear/biner standar yang belum rapi menjadi kode sumber bersih yang memenuhi seluruh 4 kaidah kualitas (25 menit).
Merefleksi (Berkesadaran):- Murid meneliti kembali baris kode hasil penyempurnaannya secara teliti untuk memastikan seluruh fungsi terkompilasi tanpa kesalahan dan memenuhi standar keterbacaan serta modularitas kode (10 menit).
Penutup:- Murid bersama guru menyimpulkan pentingnya menulis kode program pencarian yang bersih dan berkualitas demi pemeliharaan sistem perangkat lunak jangka panjang (3 menit).
- Murid mengerjakan cek pemahaman asesmen akhir mengenai kriteria kode sumber pencarian yang berkualitas (2 menit).
Diferensiasi:- Konten: Murid yang membutuhkan bimbingan diberikan panduan refactoring terpandu berisi daftar periksa nama variabel dan struktur fungsi pencarian; murid mahir diberikan kode sumber pencarian biner dengan variasi struktur data bentukan rekaman donor darah yang lebih banyak.
- Proses: Murid dengan kecepatan belajar tinggi bekerja mandiri mengoptimasi modularitas fungsi; murid yang membutuhkan pendampingan mendapatkan penguatan langkah demi langkah dalam memisahkan fungsi pencarian dari fungsi utama.
- Produk: Seluruh murid menghasilkan artefak kode sumber program pencarian donor darah yang disempurnakan memenuhi kaidah penamaan, modularitas, kondisi batas, dan keterbacaan.
Asesmen Pertemuan:Awal:- Murid mengidentifikasi 3 masalah kualitas pada cuplikan kode pencarian: 'int f(int a[], int n, int k){for(int i=0;i<n;i++){if(a[i]==k)return i;}return -1;}' (acuan jawaban: (1) Penamaan fungsi dan parameter tidak deskriptif/hanya satu huruf, (2) Ketiadaan dokumentasi/keterangan tujuan fungsi, (3) Ketiadaan validasi ukuran larik n <= 0 sebelum perulangan).
Proses:- Observasi formatif saat pengerjaan refactoring mandiri: memeriksa keterpenuhan 4 kaidah kode bersih pada penyempurnaan algoritma pencarian (penamaan pengenal deskriptif, modularitas fungsi terpisah dari I/O, penanganan batas pencarian/data nihil, serta kerapian indentasi dan komentar fungsional).
Akhir Pertemuan:- Cek pemahaman akhir: Murid menentukan 2 alasan utama mengapa fungsi pencarian harus dipisahkan dari proses input/output terminal (acuan jawaban: (1) Memenuhi prinsip modularitas/tanggung jawab tunggal agar fungsi dapat digunakan ulang di bagian program lain, (2) Mempermudah proses pengujian fungsi secara independen tanpa bergantung interaksi pengguna).
Formatif:- Penilaian kinerja perbaikan kode sumber (refactoring) algoritma pencarian donor darah menggunakan lembar observasi kualitas kode program.
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Penyempurnaan Penamaan Variabel dan Fungsi Pencarian | Belum mengganti nama variabel dan fungsi, masih menggunakan variabel satu huruf yang tidak deskriptif. | Mengganti sebagian nama variabel pencarian namun penamaan fungsi dan parameter masih belum sepenuhnya deskriptif. | Menyempurnakan seluruh nama fungsi, parameter, dan variabel pencarian donor darah secara deskriptif dan konsisten dengan tepat. | Menyempurnakan seluruh penamaan fungsi, parameter, dan variabel pencarian secara mandiri dengan kaidah penamaan baku (camelCase/snake_case) yang sangat deskriptif dan konsisten. | | Penyempurnaan Struktur Modularitas dan Penanganan Batas Fungsi | Fungsi pencarian masih bercampur dengan proses cetak/input terminal dan tidak menangani kondisi data kosong. | Fungsi pencarian sudah dipisahkan dari input terminal namun masih memuat perintah cetak langsung dan belum menangani kondisi batas larik kosong. | Fungsi pencarian terpisah secara modular mengembalikan nilai indeks/status serta menangani kondisi batas data kosong atau tidak ditemukan dengan tepat. | Fungsi pencarian terpisah secara modular, mengembalikan nilai kembalian terstruktur, menangani seluruh kondisi batas secara efisien dan mandiri. | | Kerapian Format Indentasi dan Dokumentasi Kode | Kode program tidak memiliki indentasi yang konsisten dan tanpa dokumentasi/komentar penjelas. | Sebagian baris kode memiliki indentasi rapi namun penempatan komentar masih belum menjelaskan tujuan fungsi. | Seluruh baris kode memiliki indentasi yang rapi, terstruktur, serta memuat komentar dokumentasi fungsi pencarian yang jelas. | Seluruh kode memiliki indentasi sempurna, mematuhi standar gaya penulisan kode bersih, serta memuat dokumentasi prakondisi dan pascakondisi secara lengkap. |
Refleksi Pertemuan:Guru:- Apakah murid mengalami kendala teknis saat memisahkan blok algoritma pencarian menjadi subprogram/fungsi modular yang bersih?
- Bagaimana keterlibatan murid dalam aktivitas pengubahan kode sumber dari segi pemahaman kaidah penulisan kode berkualitas?
Murid:- Bagian mana dari kaidah penulisan kode bersih yang paling menantang saat menyempurnakan algoritma pencarian tadi?
- Langkah perbaikan apa yang akan saya terapkan saat menulis kode algoritma pada program-program berikutnya agar langsung rapi dan mudah dirawat?
Pertemuan 14 — Menyempurnakan Algoritma Standar Pengurutan ke dalam Kode Sumber Program Persilangan Tanaman — 2 JP (2 x 45 menit = 90 menit)Tujuan Pertemuan:- TP 11.4.5 Menyempurnakan algoritma standar ke dalam kode sumber program dengan memperhatikan kualitasnya
Pendahuluan:- Guru membuka pelajaran dengan salam, berdoa bersama, memeriksa kehadiran murid, dan memastikan kesiapan lingkungan belajar (3 menit).
- Guru menyampaikan tujuan pembelajaran pertemuan ke-14, yaitu menyempurnakan algoritma standar pengurutan ke dalam kode sumber program pengurutan data persilangan tanaman dengan memperhatikan kualitasnya (3 menit).
- Guru melaksanakan asesmen diagnostik singkat dengan menampilkan potongan kode pengurutan Bubble Sort yang tidak rapi (tanpa indentasi, penamaan variabel ambigu) dan menanyakan aspek kualitas apa yang perlu diperbaiki (4 menit).
Kegiatan Inti:Memahami (Berkesadaran, Bermakna):- Murid mengamati dan menganalisis kode sumber awal algoritma pengurutan (Bubble Sort / Insertion Sort) data persilangan tanaman yang memiliki kelemahan kualitas: variabel satu huruf (misal: x, y), pengulangan kode redundan, dan tidak ada fungsi pemilah (15 menit).
- Murid menyimak penjelasan dan berdiskusi terpandu mengenai kriteria kualitas kode sumber program: modularitas (pemisahan fungsi perbandingan dan penukaran/swap), keterbacaan (penamaan variabel bermakna seperti persentaseFenotipe, namaTanaman), penanganan kondisi batas, serta penyempurnaan loop pengurutan (early exit/flag swapped) (10 menit).
Mengaplikasi (Menggembirakan, Bermakna):- Murid secara berpasangan mengikuti tantangan interaktif 'Refactor Rally': murid mengunduh lembar kerja kode sumber persilangan tanaman yang belum optimal, lalu beradu cepat dan cermat menyempurnakan kode fungsi pengurutan standar dengan menambahkan mekanisme flag penghenti iterasi, penamaan identifier deskriptif, dan fungsi modular terpisah (20 menit).
- Murid menguji kode sumber yang telah disempurnakan menggunakan 3 kasus uji data persilangan tanaman di komputer/IDE masing-masing untuk memastikan algoritma pengurutan menghasilkan urutan data yang tepat (turun/descending berdasarkan rasio) tanpa galat (15 menit).
- Secara berpasangan, murid saling bertukar kode program untuk melakukan code review mandiri menggunakan lembar periksa kualitas kode sumber (penamaan, modularitas, efisiensi loop) (10 menit).
Merefleksi (Berkesadaran):- Murid mengevaluasi perbedaan performa dan keterbacaan antara kode sumber sebelum dan sesudah disempurnakan pada lembar kerja refleksi (5 menit).
Penutup:- Guru bersama murid menyimpulkan prinsip utama dalam menyempurnakan kode sumber algoritma pengurutan standar agar berkualitas tinggi (keterbacaan, efisiensi loop, struktur fungsi bersih) (3 menit).
- Guru memberikan umpan balik umum terhadap hasil code review murid serta menginformasikan materi pertemuan berikutnya mengenai penyempurnaan algoritma simulasi, lalu menutup pembelajaran dengan doa (2 menit).
Diferensiasi:- Konten: Menyediakan kode sumber dasar dengan dua tingkat kerumitan: pengurutan larik satu dimensi sederhana (frekuensi fenotipe) untuk kelompok reguler, dan pengurutan larik objek/rekaman data tanaman berbilang atribut untuk kelompok cepat.
- Proses: Memberikan panduan langkah pembersihan kode (code refactoring checklist) terstruktur bagi murid yang membutuhkan bimbingan, sementara murid yang mahir langsung menyempurnakan algoritma pengurutan menjadi varian yang lebih efisien (misalnya Insertion Sort teroptimasi).
- Produk: Kode sumber hasil penyempurnaan dapat berupa satu file modular dengan dokumentasi komentar kode standar atau fungsi terpisah siap pakai dalam proyek program persilangan tanaman.
Asesmen Pertemuan:Awal:- Diagnostik awal: Murid mengamati kode rumpang Bubble Sort: `for i in range(n): for j in range(0, n-i-1): if a[j] < a[j+1]: ...`. Pertanyaan: (1) Bagaimana menambahkan mekanisme 'early exit' jika data sudah terurut? (2) Ubah nama variabel `a` menjadi bermakna konteks biologi. Kriteria/Acuan: (1) Menambahkan variabel boolean `swapped = False` sebelum loop dalam dan memeriksa `if not swapped: break` setelah loop dalam; (2) Mengganti nama array `a` menjadi `data_fenotipe` atau `persentase_tanaman`.
Proses:- Observasi formatif saat sesi 'Refactor Rally': Guru memeriksa ketercapaian penyempurnaan kode sumber berdasarkan 3 kasus uji: Kasus 1 data terurut sebagian: `[75.0, 25.0, 50.0]` -> hasil terurut turun `[75.0, 50.0, 25.0]`; Kasus 2 data identik: `[50.0, 50.0]` -> hasil `[50.0, 50.0]`; Kasus 3 data banyak acak: `[12.5, 37.5, 6.25, 18.75, 25.0]` -> hasil `[37.5, 25.0, 18.75, 12.5, 6.25]`. Kode dinilai benar jika ketiga kasus uji lolos dan kode telah menerapkan penamaan identifier baku serta fungsi pembanding modular.
Akhir Pertemuan:- Cek pemahaman di akhir sesi: Murid menjawab 2 butir pertanyaan singkat di lembar kerja: (1) Apa dampak pemberian variabel penanda/flag `swapped` terhadap kualitas waktu eksekusi Bubble Sort pada kasus data persilangan yang hampir terurut? (Acuan: Mengurangi iterasi loop luar menjadi O(n) saat kondisi terbaik karena proses langsung berhenti jika tidak ada pertukaran elemen); (2) Tuliskan 1 contoh pemisahan fungsi modular yang meningkatkan kualitas kode pengurutan persilangan! (Acuan: Memisahkan fungsi penukaran data `tukar(data, i, j)` atau fungsi pembanding `bandingkanRasio(tanamanA, tanamanB)` agar fungsi utama `urutkanData()` tidak redundan).
Formatif:- Penilaian proses unjuk kerja penyempurnaan kode sumber algoritma pengurutan
- Lembar periksa penilaian antar-teman (peer code review)
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Penyempurnaan Logika Algoritma Pengurutan | Belum mampu menyempurnakan algoritma pengurutan standar; kode masih menghasilkan galat sintaks atau gagal mengurutkan data persilangan tanaman. | Mampu menyempurnakan algoritma pengurutan hingga berhasil mengurutkan data persilangan dengan benar pada 1 dari 3 kasus uji acuan, namun belum menerapkan optimasi penghentian iterasi (early exit). | Mampu menyempurnakan algoritma pengurutan standar secara tepat untuk ketiga kasus uji acuan dan menerapkan penanda optimasi iterasi secara terstruktur. | Mampu menyempurnakan algoritma pengurutan standar secara mandiri, lulus ketiga kasus uji acuan dengan optimal, serta mengimplementasikan penanganan kondisi batas data persilangan tanaman secara menyeluruh. | | Kualitas Kode Sumber (Keterbacaan dan Modularitas) | Kode sumber ditulis tidak rapi, tanpa indentasi konsisten, nama variabel ambigu (satu huruf acak), dan seluruh algoritma menumpuk dalam satu blok. | Kode sumber memiliki indentasi yang benar tetapi sebagian besar variabel belum mencerminkan domain persilangan tanaman dan belum dipisahkan ke dalam modul fungsi. | Kode sumber ditulis bersih, menerapkan penamaan identifier deskriptif sesuai konteks persilangan tanaman, dan memisahkan fungsi pendukung (modular) dengan tepat. | Kode sumber ditulis dengan kualitas sangat tinggi: indentasi konsisten, penamaan variabel sangat ekspresif, modularitas fungsi tertata rapi, dan dilengkapi dokumentasi komentar kode yang jelas. |
Refleksi Pertemuan:Guru:- Apakah aktivitas tantangan 'Refactor Rally' secara berpasangan mampu memotivasi murid menulis kode yang lebih berkualitas?
- Bagian mana dari konsep penyempurnaan algoritma standar (modularitas atau optimasi loop) yang masih membutuhkan penjelasan tambahan pada murid?
Murid:- Apakah saya sudah mampu mengubah kode pengurutan yang berantakan menjadi kode sumber yang rapi dan mudah dibaca orang lain?
- Bagian mana yang paling menantang ketika menguji kode pengurutan data persilangan tanaman dengan kasus uji yang diberikan?
Pertemuan 15 — Menyempurnakan Algoritma Standar Simulasi ke dalam Kode Sumber Program Stoikiometri Berkualitas — 2 JP (2 x 45 menit = 90 menit)Tujuan Pertemuan:- TP 11.4.5 Menyempurnakan algoritma standar ke dalam kode sumber program dengan memperhatikan kualitasnya
Pendahuluan:- Guru membuka sesi dengan salam, memeriksa kesiapan belajar, dan meninjau kehadiran murid (3 menit).
- Guru menyampaikan tujuan pembelajaran pertemuan ke-15, yaitu menyempurnakan algoritma standar simulasi stoikiometri (perhitungan mol, pereaksi pembatas, dan massa zat produk) ke dalam bentuk kode sumber program yang berkualitas (keterbacaan penamaan variabel, modularitas fungsi, dan validasi masukan) (4 menit).
- Guru melaksanakan asesmen awal singkat: murid diminta mengidentifikasi 3 kelemahan teknis dari potongan kode berikut: 'x = float(input()); y = float(input()); z = (x/2)*18; print(z)' (Acuan kelemahan: (1) Penamaan variabel 'x', 'y', 'z' tidak deskriptif terhadap besaran massa/mol/massa molar; (2) Ketiadaan validasi nilai non-negatif; (3) Logika perhitungan disatukan tanpa pemisahan fungsi modular) (8 menit).
Kegiatan Inti:Memahami (Berkesadaran, Bermakna):- Murid mencermati pemaparan guru mengenai 3 pilar kualitas kode sumber program simulasi: konvensi penamaan pengenal (meaningful naming), modularisasi logika simulasi stoikiometri (fungsi hitung_mol, tentukan_pereaksi_pembatas, hitung_massa_produk), dan penanganan galat masukan (input validation) (10 menit).
- Secara berpasangan, murid menelaah sebuah berkas kode sumber simulasi reaksi pembentukan air: 2 H2 + O2 -> 2 H2O yang masih belum berkualitas (variabel satu huruf, fungsi menumpuk dalam satu blok utama, dan pembagian langsung tanpa cek nol) untuk membedah bagian mana yang harus disempurnakan (10 menit).
Mengaplikasi (Menggembirakan):- Murid melakukan aktivitas berpasangan 'Tantangan Kode Bersih Stoikiometri' (Aktivitas Ayo Membuat Program LD-K11-08) dengan mengunduh dan menyempurnakan kode sumber simulasi reaksi amonia: N2 + 3 H2 -> 2 NH3 (Mr N2 = 28, Mr H2 = 2, Mr NH3 = 17) ke lingkungan pemrograman (Python/C++) (25 menit).
- Murid menerapkan 3 aturan penyempurnaan kode: (1) Mengubah variabel menjadi nama bermakna (massa_N2, massa_H2, mol_N2, mol_H2, pereaksi_pembatas); (2) Memisahkan perhitungan ke dalam minimal dua fungsi modular (fungsi konversi massa ke mol dan fungsi penentuan mol produk); (3) Menambahkan validasi agar massa masukan bernilai > 0 (15 menit).
- Murid saling menukar kode sumber dengan pasangan sebelahnya untuk menguji eksekusi menggunakan 2 kasus uji: Kasus 1: 28 gram N2 dan 9 gram H2 (Acuan hasil: pereaksi pembatas N2, mol NH3 terbentuk = 2.0 mol, massa NH3 = 34.0 gram); Kasus 2: 14 gram N2 dan 2 gram H2 (Acuan hasil: pereaksi pembatas H2, mol NH3 terbentuk = 0.67 mol, massa NH3 = 11.33 gram) (10 menit).
Merefleksi (Berkesadaran):- Murid mengevaluasi kemudahan membaca kode sumber milik pasangannya sebelum dan sesudah disempurnakan serta mendokumentasikan perbaikannya dalam buku kerja (3 menit).
Penutup:- Guru bersama murid menyimpulkan prinsip penulisan kode sumber berkualitas pada algoritma simulasi (variabel deskriptif, modularitas fungsi, dan validasi data masukan) (1 menit).
- Guru memberikan cek pemahaman akhir secara lisan/catatan ringkas dan menutup pembelajaran dengan salam (1 menit).
Diferensiasi:- Konten: Menyediakan templat kode sumber beranotasi komentar petunjuk bagi murid yang membutuhkan perancah (scaffolding), serta menyediakan teks kode tanpa komentar untuk murid mahir.
- Proses: Bagi murid yang memerlukan bantuan, guru membimbing langsung penulisan struktur fungsi; bagi murid yang mahir, diberikan tantangan menyempurnakan penanganan rasio koefisien dinamis.
- Produk: Semua murid menghasilkan berkas kode sumber simulasi stoikiometri yang lolos 2 kasus uji; murid mahir menambahkan pesan galat penjelas yang lebih spesifik.
Asesmen Pertemuan:Awal:- Diagnostik identifikasi 3 kelemahan kualitas kode: murid menganalisis kode 'x = float(input()); y = float(input()); z = (x/2)*18; print(z)'. Acuan jawaban benar: (1) Penamaan variabel 'x', 'y', 'z' tidak bermakna/tidak deskriptif; (2) Tidak ada validasi masukan angka non-negatif; (3) Logika komputasi menumpuk tanpa abstraksi fungsi modular.
Proses:- Observasi formatif selama pengerjaan Tantangan Kode Bersih Stoikiometri: mengamati ketepatan pembagian fungsi, penerapan nama variabel sesuai besaran kimia, dan keberhasilan uji eksekusi pada Kasus 1 (28g N2, 9g H2 -> 34g NH3) dan Kasus 2 (14g N2, 2g H2 -> 11.33g NH3).
Akhir Pertemuan:- Cek pemahaman akhir: Murid menuliskan satu indikator utama yang membedakan kode sumber pemula dengan kode sumber berkualitas pada program simulasi sains (Acuan kriteria: menyebutkan keterbacaan/pemeliharaan kode melalui penamaan variabel bermakna, pemisahan fungsi secara modular, atau adanya validasi masukan).
Formatif:- Penilaian unjuk kerja penulisan dan penyempurnaan kode program simulasi stoikiometri menggunakan rubrik kualitas kode (keterbacaan pengenal, modularitas, validasi, dan ketepatan keluaran uji).
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Penyempurnaan Penamaan Variabel dan Keterbacaan Kode | Belum mengubah variabel acak/satu huruf menjadi nama variabel yang deskriptif terhadap besaran simulasi stoikiometri. | Mengubah sebagian variabel (1-2 variabel) menjadi nama deskriptif, tetapi masih terdapat variabel abstrak/satu huruf pada alur utama. | Mengubah seluruh variabel menjadi nama deskriptif yang konsisten (seperti massa_N2, mol_H2, pereaksi_pembatas) sehingga alur simulasi mudah dibaca. | Mengubah seluruh variabel menjadi deskriptif secara konsisten dan menambahkan dokumentasi baris (docstring/inline comment) yang memperjelas algoritma simulasi secara mandiri. | | Penyempurnaan Struktur Modular dan Validasi Kode | Belum memisahkan kode ke dalam fungsi modular dan tidak menerapkan validasi masukan (kode masih skrip linier tunggal). | Membuat fungsi terpisah tetapi logika konversi mol dan penentuan pereaksi pembatas masih tercampur serta validasi masukan belum berjalan. | Menyempurnakan kode ke dalam minimal dua fungsi terpisah (konversi mol dan kalkulasi pereaksi pembatas) serta memvalidasi masukan angka positif secara tepat sesuai 2 kasus uji acuan. | Menyempurnakan kode secara modular penuh dengan pemisahan fungsi independen, validasi masukan lengkap dan penanganan nilai batas (boundary test) secara mandiri. |
Refleksi Pertemuan:Guru:- Apakah alokasi waktu 90 menit cukup bagi seluruh pasangan murid untuk mengidentifikasi dan merefaktor kode sumber simulasi stoikiometri?
- Bagian mana dari konsep modularitas fungsi yang masih menjadi kendala terbesar bagi murid saat menyempurnakan algoritma simulasi?
Murid:- Apakah kode program yang saya sempurnakan saat ini jauh lebih mudah dipahami dan dirawat dibandingkan draf kode awal?
- Langkah perbaikan apa yang paling berdampak besar dalam mencegah galat saat program simulasi diuji dengan data masukan kimia?
Pertemuan 16 — Mengimplementasikan Program Berstruktur Data Kompleks Menggunakan Library Antarmuka Mobile Starter — 2 JP (2 x 45 menit = 90 menit)Tujuan Pertemuan:- TP 11.4.6 Mengimplementasikan program yang menggunakan struktur data kompleks dan tepat menggunakan library atau perangkat yang tersedia
Pendahuluan:- Guru membuka kelas dengan salam, memeriksa kehadiran murid, dan menyampaikan tujuan pembelajaran terkait implementasi program berstruktur data kompleks menggunakan library antarmuka mobile starter (3 menit).
- Guru melaksanakan asesmen awal singkat untuk mengecek kesiapan murid dalam memahami konsep library antarmuka mobile dan struktur data array of objects melalui kuis 2 butir diagnostik (7 menit).
Kegiatan Inti:Memahami (Berkesadaran, Bermakna):- Murid menyimak demonstrasi pemanfaatan library antarmuka mobile starter (seperti ListView / RecyclerView / LazyColumn / komponen Card UI) untuk memetakan struktur data larik objek rekaman (15 menit).
- Murid secara mandiri menelaah potongan kode starter project dan mengidentifikasi bagaimana variabel berstruktur data kompleks (kumpulan record dengan atribut id, nama, kategori, dan nilai status) dihubungkan ke adaptor/komponen tampilan library antarmuka (10 menit).
Mengaplikasi (Menggembirakan, Bermakna):- Murid mengikuti tantangan 'Mobile UI Coding Challenge' secara antusias dengan melengkapi kode fungsi binding data pada komponen ListView/Card menggunakan library antarmuka yang disediakan (20 menit).
- Murid mengimplementasikan penambahan fitur interaksi dinamis pada program mobile, yaitu membaca struktur data kompleks bertipe list of records dan menampilkannya secara tepat ke dalam elemen antarmuka aplikasi mobile murid masing-masing (15 menit).
Merefleksi (Berkesadaran):- Murid menguji eksekusi program pada emulator/perangkat ponsel dan mengecek kecocokan data yang tampil di layar antarmuka dengan data sumber di struktur data array of objects (5 menit).
- Murid menyimpulkan peran penggunaan library antarmuka dalam mempermudah penanganan struktur data kompleks pada aplikasi mobile (5 menit).
Penutup:- Guru dan murid menyimpulkan pembelajaran mengenai implementasi struktur data kompleks pada library antarmuka mobile starter (5 menit).
- Guru memberikan penguatan terhadap hasil kerja kode program murid, menyampaikan materi lanjutan tentang library media dan suara pada pertemuan berikutnya, serta menutup sesi pembelajaran dengan doa bersama (5 menit).
Diferensiasi:- Konten: Menyediakan lembar referensi sintaks binding adapter komponen UI bagi murid yang membutuhkan scaffolding struktur kode.
- Proses: Murid yang sudah mahir dapat mengimplementasikan manipulasi data tambahan (seperti filtering data record pada tampilan list UI) secara mandiri.
- Produk: Variasi bentuk antarmuka data list (tampilan card bertingkat atau list baris standar) disesuaikan dengan eksplorasi library yang dipilih murid.
Asesmen Pertemuan:Awal:- Kuis diagnostik 2 butir: (1) Manakah struktur data yang tepat untuk menyimpan daftar 10 pengguna aplikasi beserta nama dan skornya? (Acuan kunci: Array of objects / list of records dengan atribut nama dan skor). (2) Apa fungsi utama adapter/library UI ListView pada aplikasi mobile? (Acuan kunci: Menghubungkan koleksi data/struktur data ke elemen tampilan daftar visual pada layar antarmuka).
Proses:- Penilaian unjuk kerja pengkodean (live coding): guru memeriksa keberhasilan murid dalam mengimpor library antarmuka, mendeklarasikan struktur data kompleks (list of objects minimal 3 item dengan atribut id, nama, status), dan melakukan binding data ke komponen visual UI aplikasi mobile tanpa runtime error (Acuan: kode program berhasil menampilkan data ke elemen layar antarmuka secara presisi).
Akhir Pertemuan:- Cek pemahaman penutup: Murid menunjukkan hasil eksekusi program di emulator/ponsel dengan kriteria verifikasi: 1) Struktur data memuat minimal 3 rekaman data objek valid; 2) Seluruh rekaman data terpapar pada komponen antarmuka library mobile sesuai posisi visual masing-masing (Acuan: tampilan layar ponsel memuat daftar item data yang sesuai dengan elemen data dalam kode program).
Formatif:- Pemeriksaan diagnostik awal kesiapan konsep struktur data record dan library antarmuka
- Observasi unjuk kerja implementasi kode program berstruktur data kompleks dengan library antarmuka mobile starter
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Implementasi Struktur Data Kompleks pada Library Antarmuka Mobile | Belum mampu menyusun struktur data kompleks atau kode program mengalami kegagalan kompilasi saat dihubungkan ke library antarmuka mobile. | Mampu menyusun struktur data kompleks, namun pengikatan (binding) data ke library antarmuka baru menampilkan sebagian data atau masih memerlukan bimbingan penuh guru. | Mampu mengimplementasikan struktur data kompleks secara tepat ke dalam library antarmuka mobile starter hingga seluruh data tampil dengan benar di layar antarmuka secara mandiri. | Mampu mengimplementasikan struktur data kompleks secara lengkap, tepat, dan efisien ke dalam library antarmuka mobile starter, serta menambahkan penanganan interaksi data dinamis secara mandiri tanpa galat. |
Refleksi Pertemuan:Guru:- Apakah alokasi waktu 90 menit mencukupi bagi seluruh murid untuk mengkonfigurasi library antarmuka starter dan menjalankan program pada emulator/perangkat?
- Bagian mana dari konsep binding struktur data kompleks ke antarmuka visual yang paling membutuhkan bimbingan intensif?
Murid:- Kendala apa yang saya hadapi saat menghubungkan struktur data larik objek ke komponen antarmuka aplikasi mobile?
- Bagaimana penggunaan library mempermudah saya mengorganisasi tampilan data aplikasi mobile dibandingkan membuatnya secara manual tanpa library?
Pertemuan 17 — Mengimplementasikan Program Berstruktur Data Kompleks Menggunakan Library Media dan Suara Perangkat — 2 JP (2 x 45 menit = 90 menit)Tujuan Pertemuan:- TP 11.4.6 Mengimplementasikan program yang menggunakan struktur data kompleks dan tepat menggunakan library atau perangkat yang tersedia
Pendahuluan:- Guru membuka kelas dengan salam, memeriksa kehadiran murid, dan menyiapkan kesiapan belajar perangkat komputer/ponsel (3 menit).
- Guru menyampaikan tujuan pembelajaran pertemuan ke-17, yaitu mengimplementasikan program berstruktur data kompleks (larik rekaman data/list of pairs) menggunakan library media dan suara perangkat (contoh komponen Player pada App Inventor) (4 menit).
- Guru melaksanakan asesmen awal singkat melalui kuis lisan/tertulis untuk memeriksa pemahaman fungsi komponen Player dan pengindeksan data audio (5 menit).
Kegiatan Inti:Memahami (Bermakna):- Murid menyimak demonstrasi guru mengenai mekanisme kerja library media (komponen Player) dalam memuat properti Source berkas suara dan memanggil fungsi pemutar seperti call Player1.Start serta call Player1.Stop (10 menit).
- Murid menelaah kode contoh perancangan struktur data kompleks berupa list of pairs (daftar pasangan kunci-nilai atau list 2 dimensi) yang memetakan indeks tombol lagu dengan metadata rekaman: [[1, "pidato.mp3", "Pidato Kemerdekaan"], [2, "lagu.mp3", "Indonesia Raya"]] (10 menit).
Mengaplikasi (Bermakna, Menggembirakan):- Murid dalam tantangan berpasangan 'Soundboard Playlist Challenge' mengonstruksi program aplikasi mobile yang mengintegrasikan library audio Player dengan struktur data playlist berisi 3 entri suara (15 menit).
- Murid mengimplementasikan blok logika pemanggilan library suara: mengambil elemen Source dari struktur data playlist berdasarkan pilihan pengguna dan mengeksekusi blok call Player.Start (15 menit).
- Murid melakukan pengujian langsung pada simulator/perangkat ponsel untuk memastikan berkas audio tereksekusi dengan benar sesuai elemen struktur data yang dipilih (10 menit).
Merefleksi (Berkesadaran):- Murid mengecek ketepatan implementasi kodenya menggunakan lembar periksa mandiri dan memperbaiki galat pengindeksan list atau kesalahan path berkas audio pada library (10 menit).
Penutup:- Guru bersama murid menyimpulkan cara mengimplementasikan struktur data kompleks untuk mengelola playlist pada library pemutar suara perangkat (5 menit).
- Guru memberikan umpan balik pelaksanaan tugas dan mengingatkan materi pertemuan berikutnya mengenai integrasi library kecerdasan buatan, lalu menutup kelas dengan doa dan salam (3 menit).
Diferensiasi:- Konten: Menyediakan template potongan kode blok struktur data list bagi murid yang memerlukan bimbingan bertahap, serta modul referensi dokumentasi event library Player bagi murid yang siap belajar mandiri.
- Proses: Murid yang membutuhkan bimbingan diberikan panduan langkah terarah membuat 2 elemen data lagu, sedangkan murid yang mahir diberikan tantangan mengimplementasikan struktur data playlist berisi 4 hingga 5 elemen lagu lengkap dengan mekanisme tombol 'Next' dan 'Previous'.
- Produk: Program aplikasi mobile pemutar audio dengan struktur data minimal 3 pasangan elemen data (judul dan nama file) yang terintegrasi dengan library pemutar suara.
Asesmen Pertemuan:Awal:- Guru memberikan 2 pertanyaan diagnostik singkat: (1) Sebutkan fungsi utama method call Player.Start pada library media perangkat! (Acuan jawaban: Berfungsi untuk memulai atau memutar berkas audio yang telah dimuat pada properti Source); (2) Jika diberikan struktur data playlist = [["lagu1.mp3", "Halo"], ["lagu2.mp3", "Hai"]], bagaimana cara mengambil nama berkas lagu kedua? (Acuan jawaban: Mengakses indeks baris ke-2 kolom ke-1 / playlist[2][1] atau select list item indeks 2 lalu get item 1).
Proses:- Pengamatan ketercapaian tugas praktik implementasi program: Guru memeriksa apakah murid berhasil menginisialisasi variabel struktur data list 2 dimensi berisi data 3 file audio (acuan: item 1: ["pidato.mp3", "Pidato"], item 2: ["lagu.mp3", "Lagu Kebangsaan"], item 3: ["bel.mp3", "Bel Sekolah"]) dan menghubungkannya ke blok call Player1.Start.
Akhir Pertemuan:- Cek pemahaman penutup berupa latihan penelusuran kode mandiri: Murid menuliskan luaran/perilaku program jika indeks yang dipanggil adalah elemen ke-3 dari playlist di atas (Acuan jawaban: properti Player1.Source diatur ke "bel.mp3" dan aplikasi memutar audio suara Bel Sekolah).
Formatif:- Kuis diagnostik singkat di awal pertemuan untuk mengukur pemahaman komponen Player dan pengaksesan data.
- Observasi unjuk kerja implementasi blok kode integrasi struktur data dengan library media Player pada lembar kerja praktikum.
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Implementasi Struktur Data Kompleks untuk Media | Belum mampu mendeklarasikan struktur data kompleks (list of pairs/multidimensi) untuk menyimpan informasi berkas audio dan judul lagu. | Mampu mendeklarasikan struktur data kompleks tetapi belum tepat dalam menentukan relasi indeks pasangan data audio (misal hanya 1 berkas atau format list tidak terstruktur). | Mampu mengimplementasikan struktur data kompleks berupa list minimal 3 pasang data (nama berkas suara dan judul) dengan tepat secara mandiri. | Mampu mengimplementasikan struktur data kompleks minimal 3 pasang data dengan tepat, serta menambahkan mekanisme navigasi dinamis (indeks maju/mundur) pada struktur data secara mandiri. | | Integrasi Library Media dan Suara Perangkat | Belum mampu memasang atau memanggil blok fungsi dasar library media (Player) ke dalam program. | Mampu memanggil library Player tetapi pemanggilan berkas suara masih bersifat statis (hardcoded), belum mengambil nilai dari struktur data. | Mampu mengintegrasikan pemanggilan fungsi library Player (call Player.Start) dengan menyetel nilai properti Source secara dinamis dari struktur data yang dirancang. | Mampu mengintegrasikan seluruh fungsi library Player (Start, Stop, Pause) secara konsisten dan tepat berdasarkan pengambilan elemen struktur data kompleks secara mandiri. |
Refleksi Pertemuan:Guru:- Apakah alokasi waktu 90 menit mencukupi bagi murid untuk merancang struktur data sekaligus menguji integrasi library Player di ponsel/simulator?
- Bagian mana dari integrasi blok library media dan pengindeksan list yang paling banyak menimbulkan kendala teknis bagi murid?
Murid:- Apakah saya sudah memahami bagaimana cara library media ponsel mengakses berkas audio melalui nilai yang tersimpan di struktur data?
- Kendala apa yang saya temui saat menghubungkan indeks daftar putar dengan pemutaran suara pada aplikasi?
Pertemuan 18 — Mengimplementasikan Program Berstruktur Data Kompleks Menggunakan Library Kecerdasan Buatan Perangkat — 2 JP (2 x 45 menit = 90 menit)Tujuan Pertemuan:- TP 11.4.6 Mengimplementasikan program yang menggunakan struktur data kompleks dan tepat menggunakan library atau perangkat yang tersedia
Pendahuluan:- Guru membuka kelas dengan salam, memeriksa kehadiran murid, dan menciptakan suasana belajar yang kondusif (3 menit).
- Guru menyampaikan tujuan pembelajaran pertemuan ke-18, yaitu mengimplementasikan program berstruktur data kompleks menggunakan library kecerdasan buatan perangkat untuk klasifikasi gambar/citra (4 menit).
- Guru melaksanakan asesmen awal diagnostik melalui 2 pertanyaan teknis singkat secara tertulis/lisan: (1) 'Sebutkan struktur data yang tepat untuk menyimpan pasangan label objek dan nilai probabilitas keyakinan!', acuan jawaban: Dictionary/Map/Rekaman berpasangan key-value; (2) 'Mengapa kita menggunakan library AI siap pakai pada aplikasi perangkat?', acuan jawaban: Karena library menyediakan model terlatih sehingga pemrogram tidak perlu melatih dan mengimplementasikan algoritma jaringan saraf tiruan dari nol (8 menit).
Kegiatan Inti:Memahami (Berkesadaran, Bermakna):- Murid menyimak demonstrasi guru mengenai mekanisme pemanggilan method inferensi pada library kecerdasan buatan perangkat (misalnya MediaPipe Image Classification atau Google ML Kit Image Labeler) dan format luaran yang dihasilkannya (10 menit).
- Murid menelaah struktur data kompleks penampung luaran AI berupa daftar rekaman/objek (list of struct/dictionary) dengan field: 'label' bertipe String dan 'confidence' bertipe Float/Real (10 menit).
Mengaplikasi (Menggembirakan, Bermakna):- Guru memberikan tantangan pemrograman interaktif 'AI Bug-Hunt & Code Run': murid menerima kerangka program dengan library AI yang belum lengkap bagian deklarasi penampung dan penguraian datanya (10 menit).
- Murid secara mandiri menuliskan kode implementasi pemanggilan library AI, mendeklarasikan struktur data kompleks (list of struct/dictionary), serta mengisi struktur data tersebut dengan hasil inferensi dari 3 sampel gambar uji (gambar: daun, burung, mobil) (25 menit).
- Murid menguji jalannya program untuk memastikan data hasil inferensi tersimpan secara tepat pada struktur data kompleks dan dapat ditampilkan kembali dengan format: label objek beserta skor keyakinan probabilitasnya (10 menit).
Merefleksi (Berkesadaran):- Murid mengevaluasi ketepatan alur kerja program dan struktur data yang digunakannya dalam menampung luaran library AI, mengidentifikasi apakah terdapat galat tipe data atau kegagalan saat membaca atribut hasil klasifikasi (5 menit).
Penutup:- Guru memberikan penguatan teknis terkait integrasi library kecerdasan buatan dengan struktur data kompleks pada arsitektur perangkat lunak modern (3 menit).
- Murid dan guru menyimpulkan capaian teknis hari ini serta mengaitkannya dengan kesiapan mengintegrasikan seluruh komponen library perangkat pada pertemuan berikutnya (2 menit).
Diferensiasi:- Konten: Menyediakan contoh potongan kode deklarasi struktur data rekaman/dictionary untuk murid yang membutuhkan bantuan; serta dokumentasi API library AI perangkat lengkap untuk murid yang berpencapaian tinggi.
- Proses: Murid yang membutuhkan bimbingan diberikan panduan langkah demi langkah dalam memetakan luaran method inferensi ke dalam dictionary; murid yang mahir secara mandiri mengimplementasikan penyaringan nilai keyakinan (threshold confidence > 0.70) ke dalam struktur datanya.
- Produk: Kode sumber program implementasi library AI dengan struktur data kompleks yang berhasil dieksekusi dan menampilkan hasil klasifikasi secara terstruktur.
Asesmen Pertemuan:Awal:- Pertanyaan diagnostik pra-pembelajaran: (1) Sebutkan struktur data yang tepat untuk menyimpan pasangan label objek dan nilai skor probabilitas keyakinan! (Acuan: Dictionary/Map atau List of Struct bertipe String dan Float); (2) Jelaskan fungsi utama library kecerdasan buatan pada aplikasi perangkat! (Acuan: Menyediakan fungsi inferensi/prediksi model terlatih tanpa harus membangun model AI dari nol).
Proses:- Pengamatan langsung saat murid menuliskan kode program: (1) Ketepatan mengimpor dan memanggil method library kecerdasan buatan perangkat; (2) Ketepatan merancang struktur data kompleks (list of struct/dictionary) penampung luaran AI; (3) Keberhasilan menjalankan kode inferensi pada 3 sampel gambar uji (daun, burung, mobil) hingga menghasilkan luaran label dan skor kepercayaan.
Akhir Pertemuan:- Cek pemahaman teknis mandiri di akhir kegiatan inti: Murid menjalankan program dengan 1 sampel gambar tambahan, dan guru memeriksa apakah struktur data menampung data klasifikasi dengan format pasangan kunci-nilai yang tepat (Acuan: struktur data terisi rekaman dengan minimal 1 pasang 'label': String dan 'confidence': Float > 0.0).
Formatif:- Penilaian unjuk kerja pemrograman integrasi library kecerdasan buatan perangkat menggunakan lembar observasi kode sumber dan eksekusi program.
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Implementasi Library Kecerdasan Buatan dan Struktur Data Kompleks | Belum mampu mengimpor library kecerdasan buatan dan belum mampu mendeklarasikan struktur data kompleks untuk menampung hasil inferensi. | Mampu memanggil method inferensi library kecerdasan buatan, tetapi struktur data yang dirancang belum tepat (misalnya hanya menampung string tunggal tanpa nilai probabilitas keyakinan) sehingga timbul galat tipe data. | Mampu mengimplementasikan program dengan library kecerdasan buatan dan berhasil merancang struktur data kompleks (list of struct/dictionary) untuk menampung hasil klasifikasi secara lengkap dan tanpa galat secara mandiri. | Mampu mengimplementasikan program berstruktur data kompleks menggunakan library kecerdasan buatan secara mandiri, serta menerapkan logika filter ambang batas keyakinan (confidence threshold) pada penampung data secara konsisten dan optimal. |
Refleksi Pertemuan:Guru:- Apakah alokasi waktu 2 JP mencukupi bagi seluruh murid untuk mengunduh/memanggil library kecerdasan buatan dan melakukan pengujian program?
- Bagian mana dari integrasi method library AI dan struktur data kompleks yang paling sering menimbulkan kendala sintaksis pada murid?
Murid:- Apakah saya sudah memahami bagaimana cara mengambil data keluaran dari method library AI ke dalam struktur data dictionary/rekaman?
- Kendala apa yang saya temui saat menguji program klasifikasi gambar menggunakan library kecerdasan buatan perangkat?
Pertemuan 19 — Mengimplementasikan Program Modifikasi Berstruktur Data Kompleks Menggunakan Library Perangkat Lengkap — 2 JP (2 x 45 menit = 90 menit)Tujuan Pertemuan:- TP 11.4.6 Mengimplementasikan program yang menggunakan struktur data kompleks dan tepat menggunakan library atau perangkat yang tersedia
Pendahuluan:- Guru membuka sesi pembelajaran dengan salam, memeriksa kehadiran murid, dan menyampaikan ruang lingkup aktivitas yaitu modifikasi program berstruktur data kompleks yang mengintegrasikan multilibary perangkat lengkap (antarmuka, media/suara, dan modul kecerdasan buatan) (5 menit).
- Guru melaksanakan asesmen awal diagnostik melalui 2 butir pertanyaan tertulis singkat: (1) 'Struktur data apa yang tepat untuk menyimpan riwayat hasil deteksi objek beserta label, tingkat keyakinan (confidence), dan file audio penjelasnya?' (Acuan: Rekaman/Class/Dictionary dengan pasangan field: label [string], skor [float], audio [string], yang disimpan dalam array/list dinamis), (2) 'Sebutkan fungsi menghubungkan method library suara dan library AI ke dalam elemen visual tombol antarmuka!' (Acuan: Mengikat aksi klik/event listener tombol agar memanggil fungsi inferensi AI dan secara langsung memicu pemutaran berkas suara) (10 menit).
Kegiatan Inti:Memahami (Berkesadaran, Bermakna):- Murid mencermati demonstrasi kode sumber kerangka aplikasi mobile terintegrasi yang memuat struktur data rekaman 'ItemKlasifikasi' (berisi field: id, namaLabel, confidence, fileSuara) dan antarmuka pemilih fitur (15 menit).
- Murid menelaah spesifikasi modifikasi kode: menambahkan field 'statusValidasi' bertipe boolean pada struktur data rekaman serta menambahkan pemanggilan library media audio ketika klasifikasi AI menghasilkan tingkat keyakinan di atas 0.80 (10 menit).
Mengaplikasi (Menggembirakan, Bermakna):- Murid secara mandiri melakukan modifikasi pada kode sumber program mobile di lingkungan pengembangan (IDE/App Builder): memperbarui definisi struktur data rekaman kompleks untuk menampung field baru ('statusValidasi'), lalu menghubungkannya dengan alur library AI dan pemutar media perangkat (15 menit).
- Murid menjalankan simulasi pengujian interaktif berupa tantangan 'Live Testing Bug-Free': murid menguji program dengan memasukkan 3 sampel input citra/data uji secara langsung ke emulator/perangkat ponsel dan memastikan program berjalan stabil tanpa eror, memutar audio secara otomatis, dan memperbarui tampilan antarmuka (15 menit).
Merefleksi (Berkesadaran):- Murid melakukan verifikasi mandiri terhadap ketepatan implementasi kodenya menggunakan lembar periksa mandiri (self-checklist) yang memastikan struktur data kompleks berhasil dimodifikasi dan seluruh pemanggilan fungsi library perangkat lengkap bekerja harmonis (10 menit).
Penutup:- Guru memberikan penguatan teknis dan umpan balik langsung terhadap keterhubungan struktur data kompleks dengan rangkaian library perangkat lengkap (5 menit).
- Murid menyelesaikan 1 butir kuis cek pemahaman singkat sebagai asesmen akhir dan guru mengingatkan persiapan teknis untuk pertemuan berikutnya (Pertemuan 20) tanpa menyatakan bahwa materi bab telah berakhir (5 menit).
Diferensiasi:- Konten: Menyediakan scaffold kode berupa kerangka struktur data parsial bagi murid yang memerlukan bimbingan, serta menyediakan skema integrasi 4-5 field rekaman lanjutan bagi murid yang belajar lebih cepat.
- Proses: Murid yang membutuhkan bimbingan diberikan panduan langkah demi langkah dalam mendeklarasikan field struktur data dan event library, sedangkan murid yang cepat langsung melakukan modifikasi mandiri secara menyeluruh.
- Produk: Semua murid menghasilkan artefak kode modifikasi fungsional; murid cepat menambahkan logika filter nilai confidence ganda pada struktur data kompleks.
Asesmen Pertemuan:Awal:- Diagnostik tertulis 2 butir soal: (1) Sebutkan rancangan struktur data rekaman kompleks untuk menyimpan histori keluaran deteksi AI multi-atribut! (Acuan: Rekaman/Class/Dictionary dengan atribut label [string], skor [float], pathAudio [string] dalam list), (2) Bagaimana mekanisme pemanggilan audio berdasarkan status hasil inferensi AI? (Acuan: Menggunakan percabangan if kondisional yang memanggil fungsi pemutar audio library jika kondisi terpenuhi).
Proses:- Pemeriksaan langsung terhadap artefak kode modifikasi program: (1) Ketepatan penambahan field rekaman struktur data kompleks, (2) Keterpaduan sintaks pemanggilan library perangkat lengkap (antarmuka, suara, AI) yang bebas dari galat kompilasi/run-time.
Akhir Pertemuan:- Cek pemahaman akhir: 'Tuliskan sebaris pemanggilan fungsi library suara yang dieksekusi saat elemen struktur data rekaman dataUji.confidence > 0.80!' (Acuan: if (dataUji.confidence > 0.80) { MediaSound.play(dataUji.fileSuara); }).
Formatif:- Asesmen awal diagnostik melalui 2 pertanyaan tertulis di pendahuluan.
- Observasi unjuk kerja modifikasi kode berstruktur data kompleks dan integrasi library perangkat lengkap pada tahap mengaplikasi.
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Implementasi Struktur Data Kompleks pada Program | Belum mampu memodifikasi struktur data kompleks (rekaman/class) dalam kode program sehingga program mengalami eror sintaks deklarasi. | Mampu memodifikasi struktur data rekaman kompleks namun penambahan field data belum terhubung dengan variabel penyimpan data aplikasi. | Mampu mengimplementasikan modifikasi struktur data rekaman kompleks secara tepat dan terintegrasi dengan variabel penyimpanan data program. | Mampu mengimplementasikan modifikasi struktur data rekaman kompleks secara tepat, lengkap dengan penanganan variasi field baru, serta terorganisasi sangat rapi tanpa eror. | | Integrasi Library Perangkat Lengkap | Belum mampu memanggil fungsi dari library antarmuka, media, maupun AI ke dalam kode program yang dimodifikasi. | Mampu mengintegrasikan satu jenis library (antarmuka saja) namun integrasi dengan modul library suara dan AI belum berfungsi. | Mampu mengintegrasikan seluruh library perangkat lengkap (antarmuka, media suara, dan kecerdasan buatan) ke dalam program modifikasi secara tepat. | Mampu mengintegrasikan seluruh library perangkat lengkap ke dalam program modifikasi secara mandiri, optimal, dan berjalan stabil pada seluruh kasus uji. |
Refleksi Pertemuan:Guru:- Apakah murid mengalami hambatan sintaksis saat mengaitkan modul library perangkat lengkap dengan field pada struktur data kompleks?
- Bagaimana efektivitas tantangan simulasi langsung dalam meningkatkan keterlibatan aktif murid saat memprogram?
Murid:- Bagian mana dari modifikasi struktur data rekaman kompleks dan pengikatan library perangkat yang paling menantang bagi saya?
- Strategi apa yang paling membantu saya ketika memperbaiki kesalahan (debugging) integrasi library tadi?
Pertemuan 20 — Asesmen Sumatif Bab — 2 JP (2 x 45 menit = 90 menit)Tujuan Pertemuan:- TP 11.4.1 Menganalisis persoalan yang menghasilkan lebih dari satu solusi dengan beberapa strategi algoritmik
- TP 11.4.2 Menjustifikasi efisiensi, kelebihan, dan keterbatasan dari setiap alternatif solusi persoalan komputasi
- TP 11.4.3 Menerapkan solusi terbaik, paling efisien, dan optimal dengan merancang struktur data yang lebih kompleks dan abstrak
- TP 11.4.4 Mengembangkan program komputer terstruktur dalam notasi algoritma berdasarkan strategi algoritmik yang tepat
- TP 11.4.5 Menyempurnakan algoritma standar ke dalam kode sumber program dengan memperhatikan kualitasnya
- TP 11.4.6 Mengimplementasikan program yang menggunakan struktur data kompleks dan tepat menggunakan library atau perangkat yang tersedia
Pendahuluan:- Guru membuka sesi asesmen sumatif, memeriksa kehadiran murid di laboratorium komputer, dan memimpin doa bersama secara khidmat (3 menit).
- Guru menyampaikan tujuan asesmen sumatif akhir Bab 4 yang mengukur ketercapaian TP 11.4.1 sampai TP 11.4.6 melalui dua bagian terintegrasi: analisis perancangan tertulis dan unjuk kerja pemrograman komputer secara individual (2 menit).
Kegiatan Inti:Memahami (Berkesadaran):- Guru membagikan naskah Asesmen Sumatif Bagian 1 dan menjelaskan tata tertib asesmen serentak yang menuntut kejujuran serta kemandirian penuh (3 menit).
- Murid membaca secara teliti spesifikasi studi kasus komputasi yang disajikan pada naskah: 'Sistem Optimasi Distribusi Logistik Darah PMI dengan Batasan Kedaluwarsa dan Prioritas Golongan Darah Darurat' yang memuat kebutuhan analisis alternatif solusi greedy vs dynamic programming, estimasi kompleksitas O-besaran, perancangan tipe rekaman (record/struct) terindeks antrean prioritas, serta spesifikasi pseudocode modul penyaluran (2 menit).
Mengaplikasi (Bermakna):- Murid mengerjakan Asesmen Sumatif Bagian 1 secara individual dan serentak di lembar kerja fisik selama 35 menit: menganalisis 2 alternatif solusi algoritmik (Greedy berbasis kedaluwarsa terdekat vs Pemrograman Dinamis/Knapsack 0-1 berbasis bobot urgensi), menuliskan justifikasi efisiensi waktu Big-O dan ruang memori beserta kelebihan-keterbatasannya, merancang skema struktur data kompleks (tipe data bentukan/struct 'KantongDarah' berisi ID, Golongan, Volume, TanggalKedaluwarsa, dan StatusUrgensi yang diorganisasikan dalam larik antrean prioritas), serta menuliskan pseudocode algoritma fungsi pemilihan kantong darah yang valid (35 menit).
- Guru mengumpulkan lembar jawaban Bagian 1 secara tertib serentak, lalu menginstruksikan murid login ke lingkungan pengembangan (IDE) komputer lab untuk bersiap memulai Bagian 2 (2 menit).
- Murid mengerjakan Asesmen Sumatif Bagian 2 secara mandiri di komputer masing-masing selama 38 menit: menyempurnakan kode program starter yang diberikan menjadi kode sumber bersih (clean code, penamaan variabel deskriptif, modular dengan fungsi/prosedur, penanganan edge case array kosong) dan mengimplementasikan struktur data tipe bentukan/antrean prioritas menggunakan library standar bahasa pemrograman (misalnya C++ STL <queue>/<vector> atau Python heapq/dataclass) untuk menyelesaikan persoalan simulasi antrean darah darurat, kemudian mengujinya secara serentak terhadap 3 berkas kasus uji input-output otomatis yang disediakan sistem (38 menit).
Merefleksi (Berkesadaran):- Murid memastikan berkas kode sumber program akhir telah tersimpan pada repositori lokal/direktori ujian masing-masing sesuai format penamaan yang ditentukan ('SumatifB4_NISN_Nama.ext') dan melakukan verifikasi mandiri bahwa seluruh tahapan asesmen telah terselesaikan secara tuntas (3 menit).
Penutup:- Guru mengunci akses pengumpulan berkas program, merangkum perjalanan belajar murid sepanjang Bab 4 mengenai integrasi pemikiran komputasional dan implementasi algoritma terstruktur, serta mengapresiasi integritas kerja mandiri seluruh murid (2 menit).
Diferensiasi:- Konten: Akomodasi aksesibilitas tata letak naskah soal cetak dengan ukuran teks standar atau pembesaran huruf bagi murid yang membutuhkan tanpa mengubah bobot soal komputasi yang diuji.
- Proses: Pengaturan posisi tempat duduk laboratorium komputer yang memadai dan penyesuaian kontras layar monitor IDE bagi murid dengan hambatan penglihatan.
- Produk: Format eksekusi bahasa pemrograman disesuaikan dengan bahasa resmi yang dipelajari di kelas (C++ atau Python), dengan standar spesifikasi input-output kasus uji yang identik.
Asesmen Pertemuan:Awal:- Pengecekan kesiapan asesmen: verifikasi kesiapan lembar kerja fisik dan ketersediaan akun compiler/IDE di komputer lab masing-masing murid sebelum pengerjaan dimulai (acuan kesiapan: lingkungan IDE C++/Python dapat mengompilasi kode program pengujian dasar Hello World tanpa galat konfigurasi).
Proses:- Pemantauan keterlaksanaan kerja mandiri selama 35 menit Bagian 1 dan 38 menit Bagian 2 menggunakan lembar observasi ketertiban asesmen sumatif (memastikan tidak ada interaksi antarmurid, kecurangan kode, atau pembukaan sumber eksternal non-izin).
Sumatif Bab:- penilaian kinerja terintegrasi (analisis rancangan algoritma dan unjuk kerja pemrograman komputer serentak): lembar kerja analisis rancangan algoritma dan kode sumber program teruji yang mengimplementasikan struktur data kompleks dengan library
- penilaian kinerja analisis dan perancangan terstruktur serentak: lembar kerja tertulis individual berisi identifikasi alternatif solusi komputasi, justifikasi efisiensi dan keterbatasan, skema rancangan struktur data kompleks/abstrak, serta spesifikasi notasi algoritma terstruktur yang dikerjakan serentak oleh seluruh murid (40 menit; individual; instrumen: rubrik analitik perancangan algoritma dan struktur data)
- unjuk kerja pemrograman serentak di lab komputer: berkas kode sumber program mandiri hasil penyempurnaan algoritma standar dan implementasi struktur data kompleks menggunakan library/perangkat yang tersedia, teruji dengan kasus uji yang diberikan guru dan dikerjakan serentak di komputer masing-masing (50 menit; individual; instrumen: rubrik unjuk kerja kualitas kode sumber dan lembar uji fungsionalitas program)
Sumatif:- penilaian kinerja terintegrasi (analisis rancangan algoritma dan unjuk kerja pemrograman komputer serentak): lembar kerja analisis rancangan algoritma dan kode sumber program teruji yang mengimplementasikan struktur data kompleks dengan library
- penilaian kinerja analisis dan perancangan terstruktur serentak: lembar kerja tertulis individual berisi identifikasi alternatif solusi komputasi, justifikasi efisiensi dan keterbatasan, skema rancangan struktur data kompleks/abstrak, serta spesifikasi notasi algoritma terstruktur yang dikerjakan serentak oleh seluruh murid (40 menit; individual; instrumen: rubrik analitik perancangan algoritma dan struktur data)
- unjuk kerja pemrograman serentak di lab komputer: berkas kode sumber program mandiri hasil penyempurnaan algoritma standar dan implementasi struktur data kompleks menggunakan library/perangkat yang tersedia, teruji dengan kasus uji yang diberikan guru dan dikerjakan serentak di komputer masing-masing (50 menit; individual; instrumen: rubrik unjuk kerja kualitas kode sumber dan lembar uji fungsionalitas program)
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Menganalisis persoalan dengan alternatif strategi algoritmik (TP 11.4.1) | Hanya mengidentifikasi satu strategi penyelesaian dan belum mampu menguraikan alternatif strategi komputasi yang relevan. | Menyebutkan dua alternatif strategi algoritmik (Greedy dan Dynamic Programming) namun belum menganalisis langkah pemecahan persoalan secara rinci. | Menganalisis persoalan dengan tepat menggunakan dua alternatif strategi algoritmik (Greedy berbasis prioritas lokal dan Dynamic Programming berbasis optimasi kapasitas) sesuai acuan skenario. | Menganalisis persoalan secara mendalam dan terperinci dengan membandingkan mekanisme kerja kedua strategi algoritmik terhadap variasi parameter batasan persoalan. | | Menjustifikasi efisiensi, kelebihan, dan keterbatasan alternatif solusi (TP 11.4.2) | Belum mampu menyajikan justifikasi efisiensi waktu/memori atau justifikasi tidak menggunakan notasi asimptotik yang tepat. | Menuliskan notasi Big-O untuk salah satu strategi namun belum mampu menjelaskan kelebihan dan keterbatasan komputasionalnya. | Menjustifikasi efisiensi waktu dan memori kedua strategi secara tepat sesuai acuan (Greedy O(N log N) waktu dan O(N) ruang; DP O(N*W) waktu dan ruang) beserta kelebihan dan keterbatasannya. | Menjustifikasi efisiensi, kelebihan, dan keterbatasan kedua alternatif secara komprehensif disertai analisis titik kritis perubahan performa solusi saat ukuran data membesar. | | Menerapkan solusi optimal dengan merancang struktur data kompleks (TP 11.4.3) | Hanya menggunakan tipe data primitif sederhana tanpa merancang tipe data bentukan atau pengorganisasian data terstruktur. | Merancang tipe data rekaman (record/struct) namun atribut belum lengkap atau tipe hubungan antardata belum mencerminkan kebutuhan antrean prioritas. | Merancang skema tipe data rekaman (struct KantongDarah) dengan atribut lengkap (ID, golongan, kedaluwarsa, urgensi) yang terorganisasi dalam struktur larik antrean prioritas secara tepat. | Merancang struktur data bentukan kompleks dan abstrak secara modular, efisien dalam alokasi memori, serta sangat adaptif terhadap operasi penambahan dan penghapusan data. | | Mengembangkan notasi algoritma terstruktur (TP 11.4.4) | Pseudocode tidak terstruktur, logika alur lompat-lompat, atau menggunakan sintaks ambigu yang tidak merepresentasikan algoritma valid. | Mengembangkan pseudocode dengan struktur sekuensial dan percabangan dasar, tetapi logika seleksi antrean prioritas belum tuntas. | Mengembangkan algoritma terstruktur dalam notasi pseudocode yang valid, memuat fungsi/prosedur pemilihan kantong darah, percabangan kondisi, dan perulangan yang logis. | Mengembangkan notasi pseudocode yang sangat rapi, modular, efisien secara logika, serta memiliki penanganan kondisi batas (edge cases) secara presisi. | | Menyempurnakan algoritma ke dalam kode sumber berkualitas (TP 11.4.5) | Kode program mengalami galat sintaks (compile error), penamaan variabel tidak jelas, atau tidak terdapat modularisasi fungsi. | Program dapat terkompilasi namun kualitas kode rendah (tidak ada komentar penjelasan, penamaan variabel membingungkan, dan logika program masih menyatu dalam satu blok fungsi utama). | Menyempurnakan algoritma standar ke dalam kode sumber berkualitas baik: terstruktur dalam fungsi, bersih, penamaan pengenal deskriptif, dan menangani kondisi batas data kosong. | Kode sumber memiliki kualitas istimewa: sangat bersih (clean code), modular, terdokumentasi rapi, efisien, serta menerapkan prinsip pertahanan terhadap galat input (robust). | | Mengimplementasikan struktur data kompleks dengan library perangkat (TP 11.4.6) | Gagal mengimpor/menggunakan library struktur data yang ditentukan dan program tidak dapat mengeksekusi data uji yang diberikan. | Berhasil menggunakan library standar perangkat namun implementasi struktur data kompleks hanya mampu meloloskan 1 dari 3 kasus uji standar. | Mengimplementasikan struktur data kompleks secara tepat menggunakan library standar (seperti <queue>/<vector> atau heapq) dan berhasil meloloskan minimal 2 dari 3 kasus uji standar (acuan: Kasus Uji 1 dan 2 lolos output tepat). | Mengimplementasikan struktur data kompleks dengan library secara sempurna dan program berhasil meloloskan seluruh (3 dari 3) kasus uji standar komputasi dengan waktu eksekusi optimal. |
Refleksi Pertemuan:Guru:- Berdasarkan hasil asesmen sumatif terintegrasi, pada indikator TP manakah murid masih mengalami kesulitan terbesar: perumusan notasi asimptotik efisiensi, perancangan pseudocode, atau penulisan sintaks library struktur data kompleks?
- Apakah alokasi waktu 35 menit perancangan tertulis dan 38 menit pemrograman lab sudah memberikan gambaran objektif terhadap kapasitas berpikir komputasional mandiri murid?
Murid:- Bagian manakah dari asesmen sumatif tadi yang paling menantang bagimu: membuktikan efisiensi algoritma secara matematis di lembar kerja atau memperbaiki bug implementasi library pada kode program?
- Bagaimana pemahaman tentang struktur data kompleks dan efisiensi algoritma pada Bab 4 ini membantumu melihat cara kerja aplikasi perangkat lunak di dunia nyata?
SUMBER BELAJAR- Buku Panduan Guru Informatika SMA Kelas XI (Edisi Revisi), Bab 4 Aktivitas LD-K11-01
- Buku Siswa Informatika SMA Kelas XI (Edisi Revisi), Bab 4 Subbab A: Menerapkan Strategi Algoritmik dan Pemrograman
- Lembar Kasus dan Buku Kerja Siswa (BKS) Simulasi Gerak Burung
- Buku Panduan Guru Informatika untuk SMA/MA Kelas XI (Edisi Revisi), Bab 4
- Buku Siswa Informatika untuk SMA/MA Kelas XI (Edisi Revisi), Bab 4, Aktivitas LD-K11-03
- Lembar Kerja Analisis Kasus Pengelolaan Bank Darah dan Kartu Skenario Algoritma
- Buku Panduan Guru Informatika SMA/MA Kelas XI (Edisi Revisi), Bab 4 Aktivitas LD-K11-05 dan LD-K11-07
- Buku Siswa Informatika SMA/MA Kelas XI (Edisi Revisi), Bab 4 Subbab Problem Persilangan Tanaman dan Stoikiometri Kimia
- Lembar Kerja Analisis Berpikir Komputasional Sains (Persilangan Tanaman & Stoikiometri)
- Buku Panduan Guru Informatika SMA/MA Kelas XI (Edisi Revisi), Bab 4
- Buku Siswa Informatika SMA/MA Kelas XI (Edisi Revisi), Subbab Simulasi Burung
- Lembar Kerja Analisis Efisiensi Solusi Komputasi Simulasi Burung
- Papan tulis dan spidol / Perangkat komputer presentasi
- Buku Panduan Guru Informatika SMA/MA Kelas XI (Edisi Revisi), Bab 4, Kementerian Pendidikan, Kebudayaan, Riset, dan Teknologi
- Buku Teks Siswa Informatika SMA/MA Kelas XI (Edisi Revisi), Bab 4 Subproblem 4 Pengelolaan Bank Darah
- Lembar Kerja Aktivitas Komparasi Algoritma dan Skenario Kasus Skalabilitas Bank Darah
- Buku Panduan Guru Informatika SMA Kelas XI (Edisi Revisi), Bab 4 Aktivitas LD-K11-05 & LD-K11-07
- Buku Siswa Informatika SMA Kelas XI (Edisi Revisi), Bab 4 Subproblem Persilangan Tanaman & Stoikiometri
- Lembar Analisis Algoritma Komparatif Stoikiometri dan Polihibrid Mendel
- Buku Panduan Guru Informatika SMA Kelas XI, Kementerian Pendidikan, Kebudayaan, Riset, dan Teknologi Republik Indonesia, Bab 4.
- Buku Siswa Informatika SMA Kelas XI, Kementerian Pendidikan, Kebudayaan, Riset, dan Teknologi Republik Indonesia, Aktivitas LD-K11-01 dan LD-K11-02.
- Lembar Kerja Aktivitas 'Matriks Peluncuran Burung' (Perancangan Struktur Data Larik 2 Dimensi).
- Buku Siswa Informatika SMA/MA Kelas XI, Kementerian Pendidikan, Kebudayaan, Riset, dan Teknologi Republik Indonesia
- Buku Panduan Guru Informatika SMA/MA Kelas XI, Kementerian Pendidikan, Kebudayaan, Riset, dan Teknologi Republik Indonesia
- Lembar Kerja Siswa: Perancangan ADT Queue dan Stack Kasus Bank Darah
- Kartu Instruksi Simulasi Alur Penanganan Kantong Darah
- Buku Panduan Guru Informatika untuk SMA/MA Kelas XI (Edisi Revisi), Pusat Perbukuan Balai Pustaka
- Buku Panduan Siswa Informatika untuk SMA/MA Kelas XI (Edisi Revisi), Bab 4 Subproblem Persilangan Tanaman (Aktivitas LD-K11-05)
- Lembar Kerja Aktivitas Perancangan Struktur Data Rekaman Persilangan Tanaman
- Set Kartu Gamet Punnett Square untuk simulasi 'Tantangan Gamet Match'
- Buku Panduan Guru Informatika Kelas XI Edisi Revisi, Kemendikbudristek 2023 (Bab 4, Aktivitas LD-K11-01 dan LD-K11-02).
- Buku Siswa Informatika Kelas XI Edisi Revisi, Kemendikbudristek 2023, Halaman 134-139.
- Buku Kerja Siswa (BKS) / Lembar Kerja Perancangan Notasi Algoritma.
- Buku Panduan Guru Informatika SMA Kelas XI (Edisi Revisi), Kementerian Pendidikan, Kebudayaan, Riset, dan Teknologi, Bab 4 Aktivitas LD-K11-03
- Buku Siswa Informatika SMA Kelas XI (Edisi Revisi), Kementerian Pendidikan, Kebudayaan, Riset, dan Teknologi, Subproblem Pengelolaan Bank Darah
- Lembar Kerja Notasi Algoritma Prosedural dan Papan Tulis/Spidol
- Buku Panduan Guru Informatika SMA Kelas XI, Kementerian Pendidikan, Kebudayaan, Riset, dan Teknologi
- Buku Siswa Informatika SMA Kelas XI (Aktivitas LD-K11-07: Ayo Merancang Program Simulasi Stoikiometri)
- Lembar Kerja Notasi Algoritma Moduler dan Slide Bagan Alir Kasus Stoikiometri
- Buku Panduan Guru Informatika untuk SMA/MA Kelas XI (Edisi Revisi), Bab 4: Pengembangan Kemampuan Berpikir Komputasional dan Implementasi Algoritma.
- Buku Siswa Informatika Kelas XI SMA/MA (Edisi Revisi), Aktivitas Ayo Merancang & Ayo Membuat Program Pengelolaan Bank Darah.
- Lingkungan Pengembangan Terpadu (IDE C++/Python/Java) dan Lembar Kerja Siswa Refactoring Clean Code.
- Buku Panduan Guru Informatika untuk SMA/MA Kelas XI (Edisi Revisi), Pusat Perbukuan Balai Pustaka/Kemendikbudristek
- Buku Siswa Informatika untuk SMA/MA Kelas XI (Edisi Revisi), Bab 4, Kemendikbudristek
- Lingkungan Pengembangan Terintegrasi (IDE) Python / C++ (seperti VS Code, PyCharm, atau IDE daring seperti Replit)
- Lembar Kerja Siswa: Kasus Uji dan Templat Refactoring Algoritma Pengurutan Persilangan Tanaman
- Buku Panduan Guru Informatika SMA Kelas XI (Edisi Revisi), Bab 4 Aktivitas LD-K11-08.
- Buku Siswa Informatika SMA Kelas XI (Edisi Revisi), Bab 4 Topik Problem Simulasi Stoikiometri.
- Lingkungan Kompilasi/Interpreter Pemrograman (Python IDE / IDLE / VS Code / GDB Online).
- Buku Siswa Informatika SMA/MA Kelas XI (Edisi Revisi), Bab 4
- Perangkat IDE/Lingkungan Pengembangan Aplikasi Mobile (Android Studio / App Inventor / Flutter starter kit) dan emulator/perangkat ponsel pendukung
- Buku Panduan Guru Informatika SMA/MA Kelas XI (Edisi Revisi), Bab 4 Pengembangan Kemampuan Berpikir Komputasional dan Implementasi Algoritma.
- Buku Siswa Informatika SMA/MA Kelas XI (Edisi Revisi), Bab 4 Aktivitas LD-K11-10 & LD-K11-11 Pemrograman Mobile dan Library Media.
- Perangkat komputer/laptop dengan koneksi internet dan akses MIT App Inventor (atau perangkat lunak blok sejenis), serta gawai ponsel/tablet Android untuk live testing.
- Buku Siswa Informatika SMA Kelas XI (Kemendikbudristek 2023), Bab 4 Subbab Implementasi Library AI dan Aplikasi Mobile
- Buku Panduan Guru Informatika SMA Kelas XI (Kemendikbudristek 2023), Bab 4
- Dokumentasi API Library Kecerdasan Buatan (Google ML Kit / MediaPipe Vision Tasks)
- Perangkat komputer/laptop dengan IDE pemrograman (Python/Java/Kotlin) dan paket sampel gambar uji.
- Buku Siswa Informatika SMA/MA Kelas XI (Edisi Revisi), Bab 4.
- Buku Panduan Guru Informatika SMA/MA Kelas XI.
- Komputer/Laptop dengan IDE Pemrograman atau Platform Pembuat Aplikasi Mobile (App Inventor/Flutter/React Native) dan Perangkat Ponsel/Emulator.
- Buku Panduan Guru Informatika SMA/MA Kelas XI, Kementerian Pendidikan, Kebudayaan, Riset, dan Teknologi RI, 2024
- Buku Siswa Informatika SMA/MA Kelas XI, Kementerian Pendidikan, Kebudayaan, Riset, dan Teknologi RI, 2024 (Bab 3 & Bab 4)
- Naskah Lembar Kerja Asesmen Sumatif Bagian 1 (Analisis dan Notasi Algoritma)
- Lingkungan Pengembangan Terpadu (IDE C++/Code::Blocks/VS Code/Python IDLE) di Laboratorium Komputer Sekolah
- Berkas Kasus Uji Otomatis Sistem Logistik Darah (Test Cases 1, 2, dan 3)
|