1. Identitas
| Komponen | Keterangan |
| Nama Sekolah | SMK Salafiyah |
| Mata Pelajaran | Permodelan Perangkat Lunak |
| Kategori Mapel | Produktif |
| Kelas | X |
| Tema Pokok | Logika dan Algoritma Pemrograman |
| Alokasi Waktu | 6 Pertemuan × 4 JP × 45 menit = 24 JP |
2. Tujuan Pembelajaran
- Menguraikan tahapan penyelesaian masalah komputasional: Murid mampu membedah masalah menjadi langkah kecil agar terbiasa berpikir sistematis dalam menghadapi tugas teknis di dunia kerja.
- Menerapkan aturan variabel dan tipe data: Murid mampu menampung data dengan benar agar program dapat berjalan tanpa error sintaksis.
- Mendemonstrasikan input/output: Murid mampu membuat program interaktif agar hasil kerja mereka dapat dirasakan manfaatnya oleh pengguna.
- Membangun alur logika percabangan: Murid mampu membuat keputusan otomatis berdasarkan kondisi tertentu agar program memiliki kecerdasan dasar.
- Memecahkan kasus iteratif: Murid mampu menggunakan perulangan untuk efisiensi kode agar pekerjaan berulang tidak perlu ditulis manual secara boros.
- Mendiagnosis kesalahan sintaks: Murid mampu membaca pesan error agar mereka mandiri dalam memperbaiki masalah tanpa harus selalu bergantung pada guru.
Profil Pelajar Pancasila
- Mandiri: Murid mencoba memperbaiki error di konsol secara mandiri sebelum bertanya, menumbuhkan kepercayaan diri teknis.
- Gotong Royong: Murid melalui sistem tutor sebaya saling membantu menjelaskan logika yang sulit dengan bahasa yang lebih sederhana.
- Bernalar Kritis: Murid menganalisis mengapa sebuah kode gagal bekerja dengan membaca petunjuk pesan error.
3. Pemahaman Bermakna & Pertanyaan Pemantik
Pemahaman Bermakna: Logika pemrograman itu seperti resep memasak nasi goreng di dapur atau cara menghitung zakat fitrah di desa; jika urutannya salah atau bahannya keliru, maka hasil akhirnya tidak akan bisa dinikmati oleh orang lain.
- Jika kamu ingin membuat kopi, apakah air panas harus dimasukkan sebelum atau sesudah bubuk kopi?
- Bagaimana cara kita memberi tahu teman cara pergi ke pasar jika jalanannya bercabang dua?
- Apa yang terjadi jika kita menyebut "satu gelas" padahal yang diminta adalah "satu sendok" saat membantu ibu di dapur?
4. Desain Pembelajaran & Bahan Ajar
Model: Project Based Learning (PjBL) — agar murid belajar melalui produk nyata yang relevan dengan kehidupan mereka.
Metode:
- Tutor Sebaya: Murid yang sudah paham membantu temannya agar suasana kelas lebih cair dan tidak tegang.
- Scaffolding: Guru memberikan potongan kode (template) yang bisa diisi murid agar mereka tidak merasa terbebani memulai dari nol.
Alat & Bahan:
- Laptop/PC dengan Python IDLE atau Thonny IDE.
- Modul "Kartu Algoritma" (berisi visualisasi logika).
- Lembar kerja "Detektif Error" (panduan memperbaiki kode).
- Proyektor untuk demonstrasi visual.
- Sticky notes untuk refleksi akhir.
Strategi Diferensiasi:
- Murid Tertinggal: Diberikan kartu bantuan (cheat sheet) sintaks dan potongan kode siap pakai (fill-in-the-blank).
- Murid Cepat: Diberikan tantangan tambahan untuk memodifikasi program agar lebih kompleks (misal: penambahan fitur hitung pajak).
- Murid dengan hambatan motorik/penglihatan: Penggunaan keyboard dengan font besar dan pendampingan tutor sebaya yang lebih intensif.
5. Langkah-langkah Pembelajaran
Pertemuan 1: Dasar Algoritma & Lingkungan Python
Kegiatan Awal (15 menit)
- [3 mnt] Guru menyapa dengan hangat: "Selamat pagi calon ahli IT, siapa yang tadi pagi sudah membantu orang tua di rumah?"
- [5 mnt] Murid menceritakan urutan kegiatan pagi mereka (mandi, sarapan, berangkat sekolah).
- [5 mnt] Guru bertanya: "Apa yang terjadi jika urutan itu dibalik, misalnya pakai sepatu dulu baru kaos kaki?"
- [2 mnt] Guru menjelaskan tujuan: mengenal Python sebagai alat untuk menyusun urutan perintah.
Kegiatan Inti (90 menit)
- [10 mnt] Guru mendemonstrasikan algoritma sederhana membuat teh manis menggunakan slide visual.
- [10 mnt] Murid menuliskan langkah membuat teh manis dalam bentuk daftar (pseudocode).
- [10 mnt] Guru mengenalkan software Python dan cara membuka konsol.
- [15 mnt — CHECKPOINT] Murid berpasangan memastikan software terinstal; murid A membuka, murid B mengecek apakah muncul tanda `>>>`.
- [10 mnt] Murid mengetik perintah `print("Halo Dunia")`.
- [15 mnt] Murid mencoba mencetak nama mereka sendiri.
- [10 mnt — CHECKPOINT] Pasangan saling mengecek apakah ada tanda kutip yang lupa ditutup.
- [10 mnt] Guru merangkum: "Program adalah instruksi yang harus tepat urutannya."
Kegiatan Penutup (15 menit)
- [5 mnt] Refleksi: "Apa bagian paling sulit saat mengetik kode pertama tadi?"
- [3 mnt] Murid menuliskan kendala di sticky note.
- [5 mnt] Guru: "Kalian luar biasa, baru hari pertama sudah bisa membuat komputer bicara."
- [2 mnt] Preview: "Besok kita akan belajar menyimpan angka di dalam komputer."
Pertemuan 2: Variabel & Tipe Data
Kegiatan Awal (15 menit)
- [3 mnt] Guru mengulas materi sebelumnya tentang perintah cetak.
- [5 mnt] Murid menjawab pertanyaan: "Bagaimana jika komputer harus mengingat umur kita?"
- [5 mnt] Guru menggunakan analogi: "Variabel itu seperti toples, ada toples gula dan toples garam."
- [2 mnt] Tujuan: Mampu menyimpan data (angka/teks) di variabel.
Kegiatan Inti (90 menit)
- [10 mnt] Guru mendemonstrasikan variabel: `nama = "Budi"`, `umur = 15`.
- [10 mnt] Murid mencoba membuat variabel nama dan umur sendiri.
- [10 mnt] Guru menjelaskan aturan penulisan variabel (tidak boleh pakai spasi).
- [15 mnt — CHECKPOINT] Tutor sebaya mengecek apakah teman sebangkunya menggunakan spasi pada nama variabel.
- [10 mnt] Murid menggabungkan variabel ke dalam print: `print(nama, umur)`.
- [15 mnt] Murid bereksperimen dengan tipe data angka.
- [10 mnt — CHECKPOINT] Pasangan saling menukar laptop untuk mencari apakah ada variabel yang belum terdefinisi (NameError).
- [10 mnt] Guru memberikan apresiasi pada pasangan yang paling cepat memperbaiki error.
Kegiatan Penutup (15 menit)
- [5 mnt] Refleksi: "Kenapa variabel tidak boleh ada spasi?"
- [3 mnt] Murid menjawab dengan analogi toples.
- [5 mnt] Guru: "Kesalahan itu biasa, yang penting kita tahu cara memperbaikinya."
- [2 mnt] Preview: "Besok kita belajar membuat program tanya jawab."
Pertemuan 3: Input & Output
Kegiatan Awal (15 menit)
- [3 mnt] Guru bertanya: "Bagaimana jika komputer yang bertanya pada kita?"
- [5 mnt] Murid berdiskusi tentang interaksi ATM atau kasir swalayan.
- [5 mnt] Guru mendemonstrasikan fungsi `input()`.
- [2 mnt] Tujuan: Membuat program interaktif.
Kegiatan Inti (90 menit)
- [10 mnt] Guru mendemonstrasikan: `nama = input("Siapa namamu?")`.
- [10 mnt] Murid membuat program tanya jawab sederhana.
- [10 mnt] Guru menjelaskan perbedaan input angka dan teks (casting).
- [15 mnt — CHECKPOINT] Tutor sebaya memastikan teman menggunakan `int()` untuk angka.
- [10 mnt] Murid membuat program "Hitung Umur Tahun Depan".
- [15 mnt] Murid mempraktikkan program interaktif tersebut.
- [10 mnt — CHECKPOINT] Pasangan mencoba program satu sama lain dan memberikan masukan.
- [10 mnt] Guru memberikan pujian pada program yang paling kreatif.
Kegiatan Penutup (15 menit)
- [5 mnt] Refleksi: "Apa gunanya fungsi input bagi pengguna program?"
- [3 mnt] Murid menuliskan jawaban di buku catatan.
- [5 mnt] Guru: "Kalian sudah bisa membuat program yang 'mendengar' manusia."
- [2 mnt] Preview: "Besok kita akan belajar membuat program yang bisa memilih (if/else)."
Pertemuan 4: Percabangan (If, Elif, Else)
Kegiatan Awal (15 menit)
- [3 mnt] Guru: "Jika hari hujan, kita bawa payung. Jika tidak, kita pakai topi. Itu logika!"
- [5 mnt] Murid memberi contoh keputusan lain di kehidupan sehari-hari.
- [5 mnt] Guru mendemonstrasikan struktur `if-else`.
- [2 mnt] Tujuan: Membuat program yang bisa mengambil keputusan.
Kegiatan Inti (90 menit)
- [10 mnt] Guru mendemonstrasikan program "Lulus/Tidak Lulus" berdasarkan nilai.
- [10 mnt] Murid menuliskan logika percabangan di kertas sebelum mengetik.
- [10 mnt] Guru menjelaskan indentasi (spasi menjorok) di Python.
- [15 mnt — CHECKPOINT] Tutor sebaya mengecek indentasi teman sebangkunya.
- [10 mnt] Murid memperbaiki error indentasi.
- [15 mnt] Murid mengembangkan program dengan `elif`.
- [10 mnt — CHECKPOINT] Pasangan menguji program dengan input nilai berbeda.
- [10 mnt] Guru memberikan konfirmasi klasikal tentang pentingnya indentasi.
Kegiatan Penutup (15 menit)
- [5 mnt] Refleksi: "Apa yang terjadi jika indentasi salah?"
- [3 mnt] Murid menjawab: "Program error/tidak jalan."
- [5 mnt] Guru: "Kalian semakin mahir, jangan menyerah jika ada error."
- [2 mnt] Preview: "Besok kita belajar mengulang-ulang perintah."
Pertemuan 5: Perulangan (For & While)
Kegiatan Awal (15 menit)
- [3 mnt] Guru: "Jika harus menulis 'Saya akan rajin' 100 kali, apakah kalian mau?"
- [5 mnt] Murid menjawab: "Capek!"
- [5 mnt] Guru: "Komputer tidak pernah capek, kita pakai perulangan."
- [2 mnt] Tujuan: Memahami `for` dan `while`.
Kegiatan Inti (90 menit)
- [10 mnt] Guru mendemonstrasikan `for i in range(5)`.
- [10 mnt] Murid mencoba mencetak angka 1-10.
- [10 mnt] Guru menjelaskan kapan pakai `while` (kondisi).
- [15 mnt — CHECKPOINT] Tutor sebaya membantu teman yang terjebak di *infinite loop*.
- [10 mnt] Murid membuat program hitung mundur.
- [15 mnt] Murid mempraktikkan perulangan untuk menampilkan tabel perkalian.
- [10 mnt — CHECKPOINT] Pasangan saling mengecek kebenaran hasil perkalian.
- [10 mnt] Guru memberikan apresiasi pada murid yang berhasil membuat tabel perkalian.
Kegiatan Penutup (15 menit)
- [5 mnt] Refleksi: "Apa bedanya `for` dan `while`?"
- [3 mnt] Murid menjawab dengan bahasa sendiri.
- [5 mnt] Guru: "Kalian sudah bisa memerintahkan komputer bekerja berulang kali."
- [2 mnt] Preview: "Besok adalah hari terakhir, kita buat proyek besar!"
Pertemuan 6: Diagnosis Error & Proyek Akhir
Kegiatan Awal (15 menit)
- [3 mnt] Guru: "Siapa yang pernah melihat tulisan merah di konsol?"
- [5 mnt] Murid berbagi pengalaman saat error.
- [5 mnt] Guru mengajarkan cara membaca pesan error (baris ke berapa, jenis error).
- [2 mnt] Tujuan: Menjadi detektif kode.
Kegiatan Inti (90 menit)
- [10 mnt] Guru mendemonstrasikan cara membaca *SyntaxError*.
- [10 mnt] Murid diberi kode rusak untuk diperbaiki.
- [10 mnt] Guru menjelaskan proyek akhir: "Program Kasir Sederhana".
- [15 mnt — CHECKPOINT] Tutor sebaya membantu teman merencanakan alur proyek.
- [10 mnt] Murid mulai mengerjakan proyek.
- [15 mnt] Murid menyelesaikan proyek dengan bantuan guru.
- [10 mnt — CHECKPOINT] Pasangan melakukan *peer review* proyek.
- [10 mnt] Guru menampilkan proyek terbaik dan memberi apresiasi.
Kegiatan Penutup (15 menit)
- [5 mnt] Refleksi akhir: "Apa hal paling berkesan dari belajar Python?"
- [3 mnt] Murid mengungkapkan perasaan mereka.
- [5 mnt] Guru: "Kalian adalah masa depan teknologi Indonesia!"
- [2 mnt] Penutup: Doa dan apresiasi seluruh kelas.
6. Asesmen
Diagnostik
- Apakah kamu pernah menggunakan komputer sebelumnya?
- Apakah kamu merasa nyaman mengetik menggunakan keyboard?
- Bagaimana perasaanmu saat melihat kode/tulisan teknis? (Senang/Bingung/Takut)
- Pernahkah kamu membantu orang tua mengatur jadwal kerja di rumah?
- Apa aplikasi komputer yang paling sering kamu gunakan?
Tindak lanjut: Murid yang takut/bingung akan dipasangkan dengan tutor sebaya yang sabar dan diberikan materi visual tambahan.
Formatif
Indikator:
- Keaktifan berpartisipasi dalam diskusi kelompok.
- Ketepatan dalam memperbaiki error berdasarkan pesan di konsol.
- Kemampuan menjelaskan kembali logika kode kepada teman.
Umpan balik lembut:
- "Coba perhatikan baris ini, sepertinya komputernya minta tanda kutip, bantu dia ya?"
- "Wah, logikamu sudah benar, hanya kurang sedikit di spasi, yuk perbaiki bersama."
Sumatif
Deskripsi Proyek: "Kasir Warung Pintar". Murid membuat program yang meminta input nama barang, harga, dan jumlah, lalu menampilkan total belanjaan dengan diskon jika belanja di atas jumlah tertentu.
Akomodasi Slow Learner: Disediakan lembar "Peta Kode" yang berisi alur logika dalam bentuk flowchart dan potongan kode yang tinggal disalin-tempel ke editor.
| Kriteria |
Belum Tercapai |
Cukup |
Baik |
Sangat Baik |
| Logika Algoritma |
Belum mampu menyusun urutan |
Urutan benar, tapi logika bercabang salah |
Urutan dan logika benar |
Logika efisien dan kreatif |
| Sintaks Python |
Banyak error sintaks |
Ada sedikit error sintaks |
Sintaks bersih dan rapi |
Sintaks sangat rapi dan komentar jelas |
| Diagnosis Error |
Tidak mampu membaca error |
Mampu membaca, butuh bantuan |
Mampu memperbaiki error sendiri |
Mampu membantu orang lain memperbaiki error |
| Proyek Akhir |
Program tidak berjalan |
Program berjalan, ada bug |
Program berjalan lancar |
Program berjalan, ada fitur tambahan |
Mengetahui,
Kepala SMK Salafiyah
Erni Sofa Nugraha, S. Pd
NIP. -
Guru Mata Pelajaran
Moch Chamdan Yuwafi, S.ST.
NIP. ........................................