MODUL AJAR Koding dan Kecerdasan Artifisial — Kelas 11 (Fase F) Topik: Bab 4 — Data Encoding dan Integrasi Basis Data dalam Aplikasi INFORMASI UMUM| Mata Pelajaran | Koding dan Kecerdasan Artifisial |
|---|
| Fase / Kelas | Fase F / Kelas 11 |
|---|
| Topik | Bab 4 — Data Encoding dan Integrasi Basis Data dalam Aplikasi |
|---|
| Alokasi Waktu | 24 JP (24 x 45 menit = 1080 menit) |
|---|
| Jumlah Pertemuan | 10 |
|---|
| Tahun Ajaran | 2026/2027 |
|---|
| Semester | 2 |
|---|
TUJUAN PEMBELAJARAN- TP 11.4.1 Menjelaskan konsep data encoding untuk penyiapan data dalam pengembangan aplikasi
- TP 11.4.2 Menerapkan teknik data encoding pada dataset untuk kebutuhan pengolahan data
- TP 11.4.3 Menerapkan struktur tabel basis data relasional untuk penyimpanan data aplikasi
- TP 11.4.4 Menerapkan koneksi basis data ke dalam pengembangan aplikasi untuk manipulasi data
PROFIL LULUSAN| Dimensi | Disasar |
|---|
| Keimanan dan Ketakwaan terhadap Tuhan Yang Maha Esa | | | Kewargaan | | | Penalaran Kritis | ✓ | | Kreativitas | | | Kolaborasi | ✓ | | Kemandirian | ✓ | | Kesehatan | | | Komunikasi | ✓ |
PERTANYAAN PEMANTIK- Bagaimana komputer memproses data teks atau kategori seperti 'Laki-laki' dan 'Perempuan' padahal mesin hanya mengenali angka numerik?
- Mengapa data mentah perlu diubah bentuknya (di-encode) terlebih dahulu sebelum digunakan oleh algoritma atau aplikasi?
- Mengapa data seperti warna baju atau ukuran baju tidak bisa langsung dihitung dan diproses oleh algoritma komputer tanpa encoding?
- Apa perbedaan mendasar antara data kategori yang memiliki urutan tingkatan dengan data kategori yang posisinya setara?
- Bagaimana cara komputer atau model kecerdasan artifisial memproses data teks seperti jenis kendaraan atau tingkatan kelas?
- Kapan kita harus mempertahankan urutan data saat mengubah teks menjadi angka, dan kapan urutan tersebut tidak boleh memiliki bobot nilai hierarki?
- Bagaimana komputer dapat memproses kategori seperti jenis makanan atau destinasi wisata tanpa salah mengartikannya sebagai peringkat angka?
- Kapan kita harus menggunakan representasi biner (0 dan 1) dalam banyak kolom dibandingkan representasi bit ringkas saat melakukan encoding data?
- Mengapa dalam suatu sistem basis data aplikasi, setiap data pengguna atau transaksi harus memiliki satu penanda identitas yang tidak boleh kembar?
- Apa dampaknya jika kolom tanggal lahir atau nominal harga disimpan menggunakan tipe data teks sembarangan?
- Bagaimana sebuah aplikasi toko daring dapat mengetahui barang apa saja yang dibeli oleh pelanggan tertentu tanpa harus menulis ulang data pelanggan di setiap baris transaksi?
- Apa yang terjadi pada integritas data aplikasi jika sebuah tabel anak merujuk pada data induk yang kuncinya tidak valid atau tidak ditemukan?
- Bagaimana sebuah program Python dapat terhubung dan berkomunikasi langsung dengan file basis data SQLite di komputer lokal?
- Mengapa objek cursor dan perintah penutupan koneksi (conn.close()) sangat penting saat memprogram koneksi basis data?
- Setelah aplikasi Python kita terhubung ke berkas basis data SQLite, bagaimana cara script mengirimkan data baru agar tersimpan secara permanen?
- Bagaimana script Python membaca baris-baris data dari tabel basis data dan menampilkannya kembali ke layar terminal aplikasi?
- Bagaimana aplikasi memastikan data yang salah dapat diperbarui atau data usang dihapus tanpa merusak integritas tabel basis data?
- Mengapa penulisan klausa WHERE sangat krusial saat menjalankan perintah UPDATE dan DELETE melalui skrip koneksi basis data?
- Bagaimana memastikan data teks kategorikal dan skema tabel relasional terintegrasi sempurna tanpa inkonsistensi tipe saat dihubungkan ke aplikasi?
- Mengapa eksekusi manipulasi data terstruktur melalui skrip program memerlukan pemahaman logika kueri dan pra-pemrosesan encoding yang tepat?
KEGIATAN PEMBELAJARANPertemuan 1 — Menjelaskan Konsep Dasar Data Encoding dan Perannya dalam Pengembangan Aplikasi — 3 JP (3 x 45 menit = 135 menit)Tujuan Pertemuan:- TP 11.4.1 Menjelaskan konsep data encoding untuk penyiapan data dalam pengembangan aplikasi
Pendahuluan:- Guru membuka pembelajaran dengan salam, menyapa murid, dan memandu doa bersama untuk membangun kesadaran awal (5 menit).
- Guru melaksanakan asesmen awal diagnostik melalui 2 pertanyaan singkat: (1) 'Apa arti kata encoding secara umum?' dan (2) 'Mengapa mesin komputer membutuhkan data dalam bentuk numerik?' (acuan: encoding adalah proses pengubahan data dari satu bentuk ke bentuk lain; mesin hanya dapat melakukan operasi matematis pada representasi biner/numerik) (10 menit).
- Guru menyampaikan tujuan pembelajaran pertemuan ini, yaitu menjelaskan konsep data encoding dan fungsinya dalam penyiapan data pada aplikasi, serta mengaitkannya dengan aplikasi sehari-hari seperti e-commerce dan transportasi daring (5 menit).
Kegiatan Inti:Memahami (Berkesadaran, Bermakna):- Murid mengamati paparan materi mengenai konsep data encoding, batasan pemrosesan mesin berbasis numerik, dan tahapan pra-pemrosesan data sebelum integrasi ke sistem (15 menit).
- Murid secara kritis menelaah studi kasus dataset profil pengguna aplikasi yang memuat data kategori non-numerik (seperti status keanggotaan: Bronze, Silver, Gold) dan mengidentifikasi mengapa data tersebut harus dikonversi melalui encoding (15 menit).
Mengaplikasi (Menggembirakan, Bermakna):- Murid berpartisipasi dalam aktivitas tantangan interaktif 'Kuis Kode Mesin': murid secara berpasangan menebak representasi numerik sederhana dari 4 kartu data kategori (Kartu: [Ukuran Baju: S, M, L], [Status Pesanan: Diproses, Dikirim, Selesai], [Metode Bayar: Tunai, Transfer], [Kota: Jakarta, Bandung, Surabaya]) dan mendiskusikan mengapa pengodean tersebut mempermudah penyimpanan dan komputasi (25 menit).
- Murid secara mandiri menyusun lembar kerja analisis untuk menjelaskan definisi encoding, fungsi encoding dalam penyiapan data, serta 2 dampak apabila data non-numerik tidak di-encode sebelum diproses dalam modul aplikasi (15 menit).
Merefleksi (Berkesadaran):- Murid secara bergiliran menyampaikan poin penting pemahaman mereka mengenai fungsi data encoding dalam pengembangan aplikasi dan saling melengkapi argumen dengan bimbingan guru (15 menit).
- Murid mencatat refleksi diri tentang kesadaran pentingnya validitas dan keteraturan representasi data dalam sistem digital (15 menit).
Penutup:- Guru bersama murid menyimpulkan pembelajaran mengenai konsep dasar encoding sebagai fondasi penyiapan data dalam aplikasi (10 menit).
- Guru menginformasikan fokus materi pertemuan berikutnya (karakteristik data nominal dan ordinal) serta menutup sesi dengan salam (5 menit).
Diferensiasi:- Konten: Murid yang memerlukan bimbingan diberikan analogi konkret seperti sandi morse atau nomor antrean bank; murid dengan pemahaman cepat diberikan contoh skenario dataset aplikasi berskala besar.
- Proses: Pendampingan terarah secara individual untuk murid yang belum memahami representasi numerik, sementara murid yang sudah mahir menganalisis konsekuensi encoding secara mandiri.
- Produk: Uraian penjelasan murid dapat berupa bagan konsep alur data atau deskripsi tertulis terstruktur mengenai peran data encoding.
Asesmen Pertemuan:Awal:- Pertanyaan diagnostik lisan/tulis: (1) Apa yang dimaksud dengan encoding data? (Acuan jawaban: Proses konversi data mentah/non-numerik menjadi format kode atau numerik tertentu yang dapat dipahami dan diolah oleh sistem komputer). (2) Mengapa data teks seperti nama kategori perlu diubah bentuknya sebelum diolah oleh algoritma aplikasi? (Acuan jawaban: Karena komputasi komputer dan algoritma analitik bekerja berbasis operasi matematika/angka, sehingga teks membutuhkan representasi numerik).
Proses:- Lembar Kerja Siswa: Menjelaskan konsep data encoding dan perannya dengan 3 butir soal: (1) Jelaskan definisi data encoding! (Acuan: Pengubahan format representasi data mentah ke representasi kode/numerik standar). (2) Jelaskan 2 alasan mengapa data encoding esensial dalam tahap pra-pemrosesan data aplikasi! (Acuan: [a] Kompatibilitas dengan mesin pemroses, [b] Efisiensi penyimpanan dan manipulasi data). (3) Jelaskan apa yang terjadi jika aplikasi memproses data kategori string tanpa standarisasi encoding! (Acuan: Terjadi galat/error komputasi, inkonsistensi tipe data, atau algoritma tidak dapat mengeksekusi operasi matematis).
Akhir Pertemuan:- Pengecekan pemahaman akhir (exit ticket): Murid menuliskan 1 kalimat rangkuman mengenai esensi data encoding dalam aplikasi (Kriteria penerimaan: Memuat konsep pengubahan representasi data agar dapat diproses oleh sistem/komputer secara tepat).
Formatif:- Pemeriksaan lembar kerja penjelasan konsep data encoding dan perannya dalam aplikasi
- Observasi partisipasi dan penalaran dalam tantangan Kuis Kode Mesin
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Penjelasan konsep dasar data encoding | Belum mampu mendefinisikan data encoding atau penjelasan keliru mengenai perubahan bentuk data. | Mampu mendefinisikan data encoding sebagai proses pengubahan data namun belum menyebutkan tujuan representasi numerik/sistem. | Mampu menjelaskan definisi data encoding sebagai proses pengubahan data non-numerik/mentah menjadi format numerik/standar sistem secara tepat. | Mampu menjelaskan konsep data encoding secara komprehensif, tepat, dan mengaitkannya secara mendalam dengan cara kerja komputasi sistem digital secara mandiri. | | Penjelasan peran encoding dalam penyiapan data aplikasi | Belum mampu menjelaskan peran dan urgensi encoding dalam penyiapan data pengembangan aplikasi. | Menjelaskan 1 peran encoding dalam penyiapan data aplikasi namun penjelasannya masih terbatas dan belum operasional. | Menjelaskan minimal 2 peran data encoding dalam penyiapan data aplikasi (kompatibilitas sistem dan efisiensi olah data) secara tepat. | Menjelaskan secara mendalam lebih dari 2 peran data encoding beserta konsekuensi teknis jika encoding tidak dilakukan pada aplikasi secara runtut dan logis. |
Refleksi Pertemuan:Guru:- Apakah seluruh murid sudah memahami alasan mendasar mengapa komputer memerlukan data ter-encode?
- Bagian mana dari langkah Memahami dan Mengaplikasi yang paling efektif membangkitkan keaktifan murid?
Murid:- Apa hal baru yang saya pahami tentang cara komputer mengolah data berbentuk teks?
- Mengapa proses data encoding penting dipelajari sebelum kita membangun aplikasi berbasis data?
Pertemuan 2 — Menjelaskan Karakteristik Jenis Data Kategorikal Nominal dan Ordinal untuk Penyiapan Encoding Data — 3 JP (3 x 45 menit = 135 menit)Tujuan Pertemuan:- TP 11.4.1 Menjelaskan konsep data encoding untuk penyiapan data dalam pengembangan aplikasi
Pendahuluan:- Guru membuka kelas dengan salam, memeriksa kesiapan belajar murid, dan memimpin doa bersama (5 menit).
- Guru menyampaikan tujuan pembelajaran pertemuan ke-2, yaitu menjelaskan karakteristik data kategorikal nominal dan ordinal untuk penyiapan encoding data dalam aplikasi (5 menit).
- Guru melaksanakan asesmen awal diagnostik singkat dengan menampilkan 2 contoh data di layar: (1) Warna Baju: Merah, Biru, Hijau; (2) Ukuran Baju: S, M, L, XL, lalu menanyakan apakah keduanya memiliki tingkatan nilai (acuan: Warna baju = tidak bertingkat/setara; Ukuran baju = bertingkat/memiliki urutan ukuran) (10 menit).
Kegiatan Inti:Memahami (Bermakna):- Murid menyimak paparan guru mengenai konsep data kategorikal dalam dataset aplikasi, di mana komputer membutuhkan representasi angka melalui encoding karena tidak memahami makna teks secara langsung (15 menit).
- Murid mencermati pemodelan perbandingan karakteristik dua tipe data kategorikal: data nominal (kategori tanpa hierarki/urutan, contoh: Jenis Kelamin, Warna, Asal Kota) dan data ordinal (kategori dengan hierarki/tingkatan logis berurutan, contoh: Jenjang Pendidikan SD-SMP-SMA, Tingkat Kepuasan Kurang-Cukup-Puas) (15 menit).
- Murid menganalisis penjelasan guru tentang konsekuensi pemilihan teknik encoding pada kedua jenis data tersebut dalam penyiapan data, agar representasi numerik tidak menimbulkan bias nilai matematika palsu pada algoritma (10 menit).
Mengaplikasi (Menggembirakan):- Murid secara berpasangan mengikuti permainan cepat 'Pilahan Kartu Data' (Joyful Challenge): setiap pasangan menerima lembar instrumen yang memuat 6 atribut data: (1) Golongan Darah (A, B, AB, O), (2) Status Kelulusan (Lulus, Tidak Lulus), (3) Peringkat Kelas (Juara 1, Juara 2, Juara 3), (4) Metode Pembayaran (Tunai, QRIS, Transfer), (5) Tingkat Kepedasan Makanan (Level 1, Level 2, Level 3), (6) Skala Kualitas Produk (Buruk, Sedang, Baik) (10 menit).
- Setiap pasangan berkolaborasi mengklasifikasikan ke-6 atribut tersebut ke dalam kolom 'Nominal' atau 'Ordinal' serta menuliskan penjelasan alasan karakteristiknya pada Lembar Kerja Penyiapan Encoding (acuan: Data Nominal = butir 1, 2, 4 karena kategori setara tanpa peringkat; Data Ordinal = butir 3, 5, 6 karena kategori memiliki urutan hierarkis bertingkat) (10 menit).
- Perwakilan pasangan membacakan hasil penjelasan klasifikasinya, sementara pasangan lain saling memverifikasi ketepatan identifikasi jenis data dan logikanya terhadap penyiapan encoding aplikasi (15 menit).
Merefleksi (Berkesadaran):- Murid dipandu guru menyimpulkan miskonsepsi umum: meluruskan bahwa data nominal tidak boleh diberi encoding angka bertingkat seolah-olah satu kategori lebih bernilai dari kategori lain (10 menit).
- Murid menuliskan refleksi singkat dalam buku catatan mengenai pemahaman membedakan nominal vs ordinal dan mengapa pemahaman ini mutlak dibutuhkan sebelum melakukan tahapan teknik encoding di pertemuan selanjutnya (15 menit).
Penutup:- Guru memberikan umpan balik atas pemahaman klasifikasi data yang telah dilakukan seluruh murid (5 menit).
- Guru menyampaikan keterkaitan materi pertemuan ini dengan pertemuan ke-3 (Teknik Label Encoding dan Ordinal Encoding menggunakan Python) serta menutup sesi dengan salam dan doa (10 menit).
Diferensiasi:- Konten: Murid yang membutuhkan bimbingan diberikan kartu data dengan petunjuk visual pembanding (ada/tidaknya simbol panah tingkatan); murid mahir diberikan dataset aplikasi yang memuat nilai kategori berlabel angka ambigu (misalnya Kelas 10, 11, 12 vs Kode Pos 10110, 10120) untuk dijelaskan jenis kategorikalnya.
- Proses: Murid yang masih kesulitan dipandu langsung oleh guru dengan pertanyaan bertahap, sementara murid yang cepat menyelesaikan klasifikasi membantu rekannya dengan memberikan petunjuk tanpa memberi jawaban langsung.
- Produk: Seluruh murid menyusun penjelasan klasifikasi pada lembar kerja; murid mahir menambahkan catatan risiko eror/bias algoritma jika terjadi salah penentuan encoding pada atribut tersebut.
Asesmen Pertemuan:Awal:- Pertanyaan diagnostik lisan pada pendahuluan: 'Dari dua data ini: (1) Warna Baju (Merah, Biru, Hijau) dan (2) Ukuran Baju (S, M, L, XL), manakah yang datanya memiliki tingkatan nilai urutan dan mana yang setara?' (Acuan jawaban: Ukuran baju memiliki tingkatan logis urutan ukuran kecil ke besar; warna baju setara/tidak berperingkat tingkatan).
Proses:- Pemeriksaan Lembar Kerja 'Pilahan Kartu Data' pada 6 butir atribut: (1) Golongan Darah (A, B, AB, O), (2) Status Kelulusan (Lulus, Tidak Lulus), (3) Peringkat Kelas (Juara 1, Juara 2, Juara 3), (4) Metode Pembayaran (Tunai, QRIS, Transfer), (5) Tingkat Kepedasan Makanan (Level 1, Level 2, Level 3), (6) Skala Kualitas Produk (Buruk, Sedang, Baik). Acuan: Nominal = butir 1, 2, 4; Ordinal = butir 3, 5, 6. Indikator: Murid tepat mengelompokkan dan menuliskan alasan karakteristik urutan hierarki.
Akhir Pertemuan:- Cek pemahaman tertulis singkat (tiket keluar) berisi 2 soal: 'Sebutkan jenis data kategorikal untuk data (a) Tingkat Kepuasan Layanan (Sangat Puas, Puas, Kecewa) dan (b) Asal Kota Domisili (Jakarta, Bandung, Surabaya), lalu jelaskan alasan karakteristiknya untuk penyiapan encoding!' (Acuan: (a) Ordinal, karena memiliki urutan tingkatan kepuasan bertingkat; (b) Nominal, karena nama kota tidak memiliki tingkatan/setara sehingga tidak boleh diasumsikan bernilai hierarki numerik).
Formatif:- Penilaian proses Lembar Kerja 'Pilahan Kartu Data': ketepatan mengklasifikasikan 6 atribut data ke dalam jenis nominal dan ordinal beserta kejelasan alasannya.
- Observasi partisipasi dan penalaran kritis saat membedakan karakteristik data bertingkat dan data setara.
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Penjelasan Karakteristik Jenis Data Kategorikal (Nominal dan Ordinal) | Mampu mengidentifikasi kurang dari 3 atribut dengan benar dan belum mampu menjelaskan perbedaan karakteristik urutan/tingkatan antara data nominal dan ordinal. | Mampu mengidentifikasi 3-4 atribut data dengan benar dan menjelaskan karakteristik urutan secara sederhana namun masih keliru pada logika implikasi penyiapan encoding. | Mampu mengidentifikasi 5-6 atribut data (Nominal: 1, 2, 4; Ordinal: 3, 5, 6) dengan benar dan mampu menjelaskan karakteristik hierarki/urutan data secara tepat untuk penyiapan encoding. | Mampu mengidentifikasi seluruh 6 atribut data dengan tepat, menjelaskan karakteristik perbedaan nominal dan ordinal secara komprehensif, serta mampu menguraikan risiko bias algoritma jika terjadi kesalahan identifikasi tipe data kategorikal. |
Refleksi Pertemuan:Guru:- Apakah murid dapat memahami dengan jelas perbedaan karakteristik data nominal dan ordinal melalui analogi dan aktivitas pengelompokan kartu data?
- Bagian penjelasan mana yang masih membuat murid rancu antara data kategori yang setara dengan data yang memiliki urutan hierarkis?
Murid:- Hal baru apa yang paling kamu pahami tentang perbedaan data nominal dan ordinal hari ini?
- Menurutmu, mengapa kita tidak boleh sembarangan memberi angka bertingkat pada data yang sebenarnya tidak memiliki urutan?
Pertemuan 3 — Menerapkan Teknik Label Encoding dan Ordinal Encoding pada Dataset Menggunakan Python — 3 JP (3 x 45 menit = 135 menit)Tujuan Pertemuan:- TP 11.4.2 Menerapkan teknik data encoding pada dataset untuk kebutuhan pengolahan data
Pendahuluan:- Guru membuka sesi pembelajaran, menyapa murid, dan memimpin doa bersama (3 menit).
- Guru menyampaikan tujuan pembelajaran pertemuan ini, yaitu menerapkan teknik label encoding dan ordinal encoding pada dataset menggunakan Python (4 menit).
- Guru melaksanakan asesmen awal singkat untuk mendiagnosis pemahaman dasar murid mengenai perbedaan data nominal dan data bertingkat/ordinal menggunakan 3 pertanyaan lisan cepat (8 menit).
Kegiatan Inti:Memahami (Bermakna):- Murid menyimak demonstrasi guru di proyektor tentang sintaks pengodean pustaka Python: penerapan LabelEncoder dari sklearn.preprocessing untuk data nominal dan OrdinalEncoder untuk data berjenjang (15 menit).
- Murid secara berpasangan mencermati contoh kasus dataset transportasi 'Kendaraan' (Motor, Mobil, Sepeda) dan dataset kualitas 'Tingkat Kepuasan' (Rendah, Sedang, Tinggi) untuk menentukan pemetaan numerik yang tepat (10 menit).
Mengaplikasi (Menggembirakan, Berkesadaran):- Murid mengikuti 'Tantangan Koding Cepat 1': menyalin dan menjalankan skrip Python LabelEncoder pada dataset aktivitas siswa (kolom 'Aplikasi': 'YouTube', 'TikTok', 'Instagram', 'Zenius') di lingkungan Google Colab/IDE masing-masing hingga menghasilkan array data numerik (25 menit).
- Murid mengikuti 'Tantangan Koding Cepat 2': menyusun skrip Python OrdinalEncoder dengan menetapkan urutan eksplisit categories=[['Buruk', 'Cukup', 'Baik', 'Sangat Baik']] pada dataset evaluasi performa hingga menghasilkan kode integer berurutan 0 sampai 3 (30 menit).
- Guru berkeliling mengobservasi eksekusi kode setiap murid dan memverifikasi ketepatan sintaks serta output array yang terbentuk (15 menit).
Merefleksi (Berkesadaran, Bermakna):- Murid membandingkan hasil luaran data frame asli dengan data frame setelah proses fit_transform untuk memastikan keselarasan representasi angka dengan data awal (10 menit).
- Murid menuliskan catatan ringkas pada buku kerja mengenai alasan teknis mengapa OrdinalEncoder membutuhkan penentuan urutan kategori sedangkan LabelEncoder mengurutkan kategori secara otomatis berdasarkan abjad (5 menit).
Penutup:- Murid dan guru menyimpulkan alur teknis penerapan teknik Label Encoding dan Ordinal Encoding menggunakan pustaka sklearn pada dataset (5 menit).
- Guru memberikan penguatan instruksional dan menutup pertemuan dengan doa serta salam (5 menit).
Diferensiasi:- Konten: Murid yang membutuhkan bimbingan diberikan panduan sintaks terstruktur (scaffolding kode per baris), sedangkan murid yang cepat diberikan dataset tambahan dengan 6 variasi tingkatan kategori ordinal.
- Proses: Murid yang masih bingung urutan pemetaan dibimbing secara langsung saat pembuatan parameter categories pada OrdinalEncoder.
- Produk: Semua murid menghasilkan berkas notebook (.ipynb atau .py) yang memuat eksekusi kode LabelEncoder dan OrdinalEncoder yang berhasil dijalankan tanpa galat sintaks.
Asesmen Pertemuan:Awal:- Pertanyaan diagnostik lisan awal: (1) 'Apakah label kategori warna Merah, Kuning, Hijau memiliki urutan tingkatan nilai?' (acuan: Tidak, data bersifat nominal), (2) 'Apakah label ukuran baju S, M, L, XL memiliki urutan tingkatan?' (acuan: Ya, data bersifat ordinal), (3) 'Manakah yang tepat dikonversi dengan urutan hierarki berjenjang?' (acuan: ukuran baju S, M, L, XL).
Proses:- Observasi unjuk kerja praktik koding: Ketepatan murid menuliskan sintaks import LabelEncoder dan OrdinalEncoder dari sklearn.preprocessing, inisialisasi objek, pemanggilan metode fit_transform(), dan kesesuaian output numerik pada 2 dataset uji (Dataset 1 Kolom 'Aplikasi' memetakan 4 kategori nominal unik menjadi 0, 1, 2, 3; Dataset 2 Kolom 'Rating' memetakan 'Buruk'->0, 'Cukup'->1, 'Baik'->2, 'Sangat Baik'->3 secara berurutan).
Akhir Pertemuan:- Cek pemahaman tertulis singkat (2 soal): (1) Tuliskan satu baris perintah Python untuk menerapkan fit_transform LabelEncoder pada series data df['Aplikasi']! (acuan kunci: df['Aplikasi_Encoded'] = encoder.fit_transform(df['Aplikasi'])); (2) Jika diberikan kategori ['SD', 'SMP', 'SMA'], sebutkan hasil pemetaan OrdinalEncoder dari terendah ke tertinggi mulai dari indeks 0! (acuan kunci: 'SD'=0, 'SMP'=1, 'SMA'=2).
Formatif:- Penilaian kinerja penulisan kode program Python LabelEncoder dan OrdinalEncoder pada lembar kerja praktikum koding.
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Penerapan Sintaks Label Encoding dengan Python | Belum mampu mengimpor modul sklearn.preprocessing dan kode program mengalami galat sintaks saat memanggil metode fit_transform pada dataset. | Mampu mengimpor modul pustaka LabelEncoder, namun terdapat kesalahan parameter data input sehingga fungsi fit_transform belum menghasilkan output kolom numerik. | Mampu menuliskan sintaks LabelEncoder secara lengkap dan berhasil mengubah data kategorikal kolom 'Aplikasi' menjadi data numerik (0, 1, 2, 3) secara mandiri. | Mampu menerapkan sintaks LabelEncoder secara mandiri, tanpa galat, serta tepat menginterpretasikan hasil pemetaan kelas menggunakan atribut classes_. | | Penerapan Sintaks Ordinal Encoding dengan Penentuan Hierarki Kategori | Belum mampu menyusun objek OrdinalEncoder dan belum memahami cara memasukkan parameter daftar urutan kategori pada kode program. | Mampu membuat objek OrdinalEncoder namun susunan hierarki kategori pada parameter categories belum berurutan sesuai tingkatan logika data. | Mampu menerapkan OrdinalEncoder dengan parameter susunan tingkatan yang tepat (Buruk=0, Cukup=1, Baik=2, Sangat Baik=3) dan berhasil mengeksekusi transformasi data. | Mampu menerapkan OrdinalEncoder secara sempurna pada dataset berjenjang, konsisten mengatur urutan categories dengan benar, serta mengembalikan bentuk data semula menggunakan inverse_transform secara mandiri. |
Refleksi Pertemuan:Guru:- Apakah alokasi waktu 135 menit mencukupi bagi seluruh murid untuk menyelesaikan kedua tantangan koding LabelEncoder dan OrdinalEncoder?
- Bagian mana dari sintaks pustaka sklearn yang paling sering menimbulkan galat pada pengerjaan murid?
Murid:- Apa perbedaan cara kerja yang paling mendasar antara LabelEncoder dan OrdinalEncoder saat mengubah data teks menjadi angka?
- Kendala teknis apa yang saya hadapi ketika mengatur urutan kategori pada OrdinalEncoder di Python?
Pertemuan 4 — Menerapkan Teknik One-Hot Encoding dan Binary Encoding pada Dataset untuk Kebutuhan Pengolahan Data — 3 JP (3 x 45 menit = 135 menit)Tujuan Pertemuan:- TP 11.4.2 Menerapkan teknik data encoding pada dataset untuk kebutuhan pengolahan data
Pendahuluan:- Guru membuka kelas, mengecek kehadiran murid, dan menyampaikan tujuan pembelajaran mengenai penerapan teknik One-Hot Encoding dan Binary Encoding pada dataset (5 menit).
- Guru melaksanakan asesmen awal singkat dengan meminta murid menjawab 2 pertanyaan diagnostik pada buku catatan: (1) Mengapa data kategorikal nominal seperti warna ['Merah', 'Hijau', 'Biru'] tidak tepat jika langsung diubah menjadi angka [1, 2, 3] pada model analitik tertentu? (acuan: Karena angka 1, 2, 3 dapat disalahartikan model sebagai urutan/tingkatan matematis); (2) Ubahlah angka desimal 3 ke dalam bentuk biner 3-bit! (acuan: 011) (10 menit).
Kegiatan Inti:Memahami (Bermakna, Menggembirakan):- Murid menyimak demonstrasi dan penjelasan interaktif tentang representasi One-Hot Encoding pada dataset survei makanan favorit ['Bakso', 'Gado-Gado', 'Rendang', 'Sate', 'Soto'] yang menghasilkan kolom matriks biner independen serta Binary Encoding pada data destinasi wisata ['Pantai', 'Gunung', 'Kota Tua', 'Taman Hiburan', 'Hutan'] menjadi representasi bit terkompresi (20 menit).
- Murid secara berpasangan mengikuti kuis tantangan cepat 'Matriks Biner Ceria' dengan menebak vektor One-Hot dari daftar 3 warna ['Merah', 'Hijau', 'Biru'] dan kode biner 3-bit dari indeks 0 sampai 4 untuk melatih ketangkasan logika pengodean dengan gembira (15 menit).
Mengaplikasi (Berkesadaran, Bermakna):- Murid membuka Google Colab / lingkungan Python dan mengetikkan kode program penerapan One-Hot Encoding menggunakan fungsi 'pd.get_dummies()' pada dataset survei makanan favorit berisi 7 baris: ['Sate', 'Soto', 'Gado-gado', 'Rendang', 'Bakso', 'Sate', 'Soto'], lalu memverifikasi bahwa matriks output bernilai 1 pada kolom yang sesuai dan 0 pada kolom lainnya (30 menit).
- Murid menerapkan teknik Binary Encoding pada dataset tujuan wisata berisi 7 baris data: ['Pantai', 'Gunung', 'Kota Tua', 'Taman Hiburan', 'Pantai', 'Hutan', 'Gunung'] dengan mengonversi indeks kategori alfabetis (0: Gunung -> 000, 1: Hutan -> 001, 2: Kota Tua -> 010, 3: Pantai -> 011, 4: Taman Hiburan -> 100) ke dalam 3 kolom biner di Python menggunakan pustaka Category Encoders atau manipulasi bit biner Pandas (35 menit).
Merefleksi (Berkesadaran):- Murid membandingkan hasil keluaran tabel data asli dengan tabel hasil transformasi One-Hot Encoding dan Binary Encoding untuk menyadari efisiensi dimensi kolom serta mencegah kesalahan interpretasi ordinalitas pada komputer (10 menit).
Penutup:- Murid dan guru menyimpulkan teknik transformasi One-Hot Encoding untuk data nominal berkardinalitas rendah dan Binary Encoding untuk menghemat dimensi kolom dataset (5 menit).
- Guru memberikan umpan balik pelaksanaan praktik koding dan menutup pembelajaran dengan doa serta salam penutup (5 menit).
Diferensiasi:- Konten: Menyediakan contoh potongan kode dasar pengisian parameter 'pd.get_dummies()' untuk murid yang membutuhkan panduan teknis tambahan, serta dataset dengan kardinalitas lebih tinggi bagi murid yang siap eksplorasi lebih lanjut.
- Proses: Memberikan scaffolding bertahap dari pemetaan manual biner ke implementasi script Python untuk murid yang memerlukan bimbingan, sementara murid yang mahir menyelesaikan konversi kolom mandiri secara penuh.
- Produk: Hasil transformasi dataset berupa dataframe Python yang memuat kolom-kolom hasil One-Hot Encoding dan Binary Encoding secara tepat.
Asesmen Pertemuan:Awal:- Pertanyaan diagnostik tertulis singkat: (1) Mengapa data kategorikal nominal seperti warna ['Merah', 'Hijau', 'Biru'] tidak tepat jika langsung diubah menjadi angka [1, 2, 3] pada model analitik tertentu? (Acuan jawaban: Menggunakan label angka 1, 2, 3 berisiko membuat komputer/model salah menafsirkan adanya hubungan urutan, peringkat, atau bobot matematis antarkategori); (2) Ubahlah nilai indeks desimal 3 ke dalam kode biner 3-bit! (Acuan jawaban: 011).
Proses:- Penilaian unjuk kerja koding transformasi dataset: Murid menjalankan skrip One-Hot Encoding pada dataset makanan ['Sate', 'Soto', 'Gado-gado', 'Rendang', 'Bakso', 'Sate', 'Soto'] dengan acuan 5 kolom biner (Bakso, Gado-Gado, Rendang, Sate, Soto) menghasilkan vektor baris ke-1 'Sate' = [0, 0, 0, 1, 0] dan baris ke-2 'Soto' = [0, 0, 0, 0, 1]; serta Binary Encoding pada 5 destinasi wisata dengan acuan pemetaan: Gunung=000, Hutan=001, Kota Tua=010, Pantai=011, Taman Hiburan=100.
Akhir Pertemuan:- Cek pemahaman di akhir sesi: Murid mengisi tabel verifikasi hasil encoding untuk 2 data uji: (1) Hasil One-Hot Encoding untuk nilai 'Bakso' dari daftar kategori ['Bakso', 'Gado-Gado', 'Rendang', 'Sate', 'Soto'] (Acuan jawaban: [1, 0, 0, 0, 0]); (2) Hasil Binary Encoding 3-bit untuk kategori 'Kota Tua' berdasarkan urutan indeks alfabetis 2 (Acuan jawaban: 010).
Formatif:- Observasi unjuk kerja praktik penulisan sintaks dan eksekusi skrip data encoding pada dataset Python
- Pemeriksaan hasil output dataframe One-Hot Encoding dan Binary Encoding pada lembar kerja murid
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Penerapan One-Hot Encoding pada Dataset | Belum mampu menerapkan skrip Python untuk menghasilkan kolom One-Hot Encoding pada dataset kategori nominal. | Mampu menuliskan sintaks encoding tetapi output kolom biner masih memuat kesalahan nilai atau inkonsistensi nama kolom. | Mampu menerapkan One-Hot Encoding pada dataset menggunakan Python sehingga menghasilkan matriks biner (0 dan 1) yang tepat sesuai kategori nominal dengan sedikit arahan. | Mampu menerapkan One-Hot Encoding pada dataset menggunakan Python secara mandiri, tepat, dan menghasilkan seluruh matriks biner kolom kategori secara konsisten tanpa kesalahan. | | Penerapan Binary Encoding pada Dataset | Belum mampu memetakan indeks kategori ke bentuk bit biner maupun mengimplementasikan Binary Encoding pada dataset. | Mampu memetakan kategori ke angka biner secara manual namun belum tepat saat merepresentasikan kolom-kolom biner pada dataframe Python. | Mampu menerapkan Binary Encoding pada dataset menggunakan skrip Python menghasilkan kolom-kolom representasi bit biner yang sesuai dengan acuan indeks dengan sedikit bimbingan. | Mampu menerapkan Binary Encoding pada dataset secara mandiri dan tepat menghasilkan seluruh kolom representasi bit biner sesuai urutan kardinalitas kategori tanpa kekeliruan. |
Refleksi Pertemuan:Guru:- Apakah murid dapat membedakan secara operasional kapan menggunakan One-Hot Encoding dan kapan beralih ke Binary Encoding berdasarkan dimensi dataset?
- Apakah alokasi waktu praktik koding di Google Colab mencukupi bagi seluruh murid untuk menjalankan skrip encoding hingga selesai?
Murid:- Langkah mana dari penerapan One-Hot Encoding atau Binary Encoding di Python yang paling menantang bagimu?
- Bagaimana teknik encoding ini membantumu memahami cara representasi data kategorikal agar siap diolah oleh algoritma komputer?
Pertemuan 5 — Menerapkan Struktur Tabel Basis Data Relasional dengan Penentuan Primary Key dan Tipe Kolom — 2 JP (2 x 45 menit = 90 menit)Tujuan Pertemuan:- TP 11.4.3 Menerapkan struktur tabel basis data relasional untuk penyimpanan data aplikasi
Pendahuluan:- Guru membuka sesi dengan salam pembuka, menyapa murid, dan memandu pemusatan perhatian sejenak agar siap belajar secara berkesadaran (5 menit).
- Guru menyampaikan tujuan pembelajaran pertemuan ke-5, yaitu menerapkan struktur tabel basis data relasional melalui penentuan primary key dan tipe kolom yang tepat untuk penyimpanan data aplikasi (5 menit).
- Murid mengerjakan asesmen awal cepat berupa tes diagnostik 2 soal pilihan singkat pada lembar catatan untuk memetakan kesiapan konsep atribut basis data (5 menit).
Kegiatan Inti:Memahami (Bermakna):- Murid menyimak penjelasan guru berbantu slide mengenai struktur tabel relasional (nama tabel, baris/rekord, kolom/atribut), aturan penetapan primary key (unik, tidak bernilai null), serta kesesuaian tipe kolom (INTEGER, TEXT, REAL/FLOAT) dalam konteks penyimpanan data aplikasi e-commerce sederhana (15 menit).
- Murid mengkaji tabel studi kasus 'Produk' dan menganalisis kesalahan umum perancangan tabel (misal: kolom harga menggunakan TEXT atau ID produk yang bernilai duplikat) yang disajikan guru di layar proyektor (10 menit).
Mengaplikasi (Menggembirakan):- Murid mengikuti kuis tantangan berpasangan 'Detektif Skema' secara ceria untuk mencocokkan 4 atribut entitas pengguna dengan tipe kolom dan penentuan primary key yang tepat secara cepat dan kompetitif (10 menit).
- Murid secara mandiri menerapkan perancangan struktur tabel basis data relasional untuk entitas 'Pasien' pada lembar kerja praktikum: menentukan nama tabel, menetapkan kolom primary key, serta memilih tipe data yang tepat untuk 4 kolom yang disediakan (id_pasien, nama_pasien, usia, berat_badan) (25 menit).
Merefleksi (Berkesadaran):- Murid bersama guru melakukan verifikasi silang mandiri terhadap hasil perancangan struktur tabel 'Pasien' dengan panduan kunci acuan yang ditampilkan guru, lalu menyimpulkan pentingnya keunikan primary key dan ketepatan tipe kolom demi integritas data aplikasi (10 menit).
Penutup:- Murid mengumpulkan lembar kerja praktikum perancangan struktur tabel sebagai bukti pencapaian pembelajaran (3 menit).
- Guru memberikan umpan balik umum, menyampaikan pengantar materi relasi antartabel foreign key untuk pertemuan berikutnya, dan menutup kelas dengan doa serta salam (2 menit).
Diferensiasi:- Konten: Menyediakan lembar bantu ringkasan variasi tipe kolom SQL (INTEGER, TEXT, REAL) bagi murid yang membutuhkan scaffolding tambahan.
- Proses: Murid yang membutuhkan bimbingan diberikan panduan terarah saat identifikasi primary key, sedangkan murid berkemampuan cepat diberikan skenario atribut tambahan (kolom nomor_rekam_medis dan tanggal_masuk) untuk ditentukan tipe kolomnya.
- Produk: Semua murid menghasilkan struktur skema tabel 'Pasien'; murid berkemampuan cepat melengkapi skema dengan kolom tambahan berserta tipe datanya secara mandiri.
Asesmen Pertemuan:Awal:- Diagnostik 2 soal singkat di lembar catatan: (1) Manakah kolom yang paling tepat dijadikan penanda unik pada tabel pengguna: 'nama_lengkap' atau 'id_user'? (Acuan benar: 'id_user' karena bersifat unik dan tidak ganda); (2) Tipe data apa yang tepat untuk menyimpan nilai harga '25000': INTEGER atau TEXT? (Acuan benar: INTEGER karena berupa nilai numerik bilangan bulat).
Proses:- Kuis interaktif 'Detektif Skema' memasangkan 4 atribut: (1) user_id -> INTEGER/PRIMARY KEY; (2) username -> TEXT; (3) saldo -> INTEGER/REAL; (4) tanggal_daftar -> TEXT. (Acuan benar: pasangan atribut dengan tipe dan status PK tersebut).
- Pemeriksaan kemajuan murid saat pengerjaan mandiri tabel 'Pasien' menggunakan kriteria: ketepatan primary key dan ketepatan pemilihan tipe untuk 4 kolom.
Akhir Pertemuan:- Pemeriksaan hasil kerja mandiri struktur tabel 'Pasien' pada LKPD dengan 4 kolom target: id_pasien (PRIMARY KEY, INTEGER), nama_pasien (TEXT), usia (INTEGER), berat_badan (REAL/FLOAT). Seluruh 4 kolom harus terisi nama, tipe data, dan penetapan primary key secara tepat sesuai acuan.
Formatif:- Asesmen diagnostik awal 2 butir pilihan singkat terkait konsep penanda unik dan tipe data angka/teks
- Kuis cepat 'Detektif Skema' untuk verifikasi pemahaman tipe kolom
- Penilaian unjuk kerja perancangan struktur tabel relasional (Primary Key dan tipe kolom) pada LKPD 'Pasien'
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Penentuan Primary Key pada Struktur Tabel Relasional | Belum menentukan primary key pada tabel pasien atau memilih kolom nama_pasien/usia sebagai primary key. | Menentukan kolom id_pasien sebagai penanda tabel namun belum menetapkannya secara eksplisit sebagai primary key. | Menetapkan kolom id_pasien sebagai primary key dengan bantuan/bimbingan arahan guru. | Menetapkan kolom id_pasien sebagai primary key secara tepat dan mandiri (acuan: id_pasien berstatus PRIMARY KEY). | | Ketepatan Pemilihan Tipe Kolom Basis Data | Tepat menentukan 0 sampai 1 tipe kolom dari 4 kolom yang disediakan. | Tepat menentukan 2 tipe kolom dari 4 kolom yang disediakan (acuan: id_pasien: INTEGER, nama_pasien: TEXT, usia: INTEGER, berat_badan: REAL). | Tepat menentukan 3 tipe kolom dari 4 kolom yang disediakan (acuan: id_pasien: INTEGER, nama_pasien: TEXT, usia: INTEGER, berat_badan: REAL). | Tepat menentukan seluruh 4 tipe kolom yang disediakan secara mandiri (acuan: id_pasien: INTEGER, nama_pasien: TEXT, usia: INTEGER, berat_badan: REAL). |
Refleksi Pertemuan:Guru:- Apakah alokasi waktu 25 menit untuk latihan mandiri perancangan struktur tabel cukup bagi sebagian besar murid?
- Apakah murid dapat membedakan dengan tegas kapan kolom harus bertipe REAL vs INTEGER?
Murid:- Bagian mana dari penentuan tipe kolom dan primary key yang menurutmu paling mudah dan paling menantang?
- Mengapa kita tidak boleh sembarangan menggunakan tipe TEXT untuk kolom angka seperti usia dan berat badan?
Pertemuan 6 — Menerapkan Relasi Antartabel Basis Data Menggunakan Foreign Key untuk Penyimpanan Data Aplikasi — 2 JP (2 x 45 menit = 90 menit)Tujuan Pertemuan:- TP 11.4.3 Menerapkan struktur tabel basis data relasional untuk penyimpanan data aplikasi
Pendahuluan:- Guru membuka pelajaran, mengondisikan kelas yang berkesadaran, serta menyampaikan tujuan pembelajaran pertemuan ke-6 yaitu menerapkan relasi antartabel menggunakan foreign key pada basis data relasional (5 menit).
- Guru melaksanakan asesmen awal diagnostik singkat dengan menampilkan 2 skema tabel terpisah: Tabel 'Pelanggan' (id_pelanggan, nama) dan Tabel 'Pesanan' (id_pesanan, tgl, id_pelanggan), lalu meminta murid menuliskan kolom penghubung di antara keduanya (acuan: kolom 'id_pelanggan' yang bertindak sebagai Primary Key di tabel Pelanggan dan Foreign Key di tabel Pesanan) (10 menit).
Kegiatan Inti:Memahami (Bermakna, Menggembirakan):- Murid mencermati pemaparan konsep relasi antartabel (one-to-many), peran Foreign Key dalam menjaga integritas referensial, dan sintaks klausa 'FOREIGN KEY (kolom) REFERENCES tabel_induk(kolom_pk)' pada SQL (15 menit).
- Murid berpasangan mengikuti kuis cepat 'Tebak Relasi dan Kunci' dengan menganalisis 3 pasang entitas: (1) Jurusan dan Siswa, (2) Kategori dan Produk, (3) Pengguna dan Postingan, lalu menentukan pasangan kolom Foreign Key-nya secara tepat (acuan: (1) id_jurusan di tabel Siswa merujuk id_jurusan di Jurusan; (2) id_kategori di tabel Produk merujuk id_kategori di Kategori; (3) id_pengguna di tabel Postingan merujuk id_pengguna di Pengguna) (10 menit).
Mengaplikasi (Berkesadaran, Bermakna):- Murid secara berpasangan mengerjakan Lembar Kerja Praktik SQL: menuliskan perintah DDL 'CREATE TABLE' untuk membuat skema relasional 2 tabel: tabel induk 'Kategori' (kolom: id_kategori INTEGER PRIMARY KEY, nama_kategori TEXT) dan tabel anak 'Buku' (kolom: id_buku INTEGER PRIMARY KEY, judul TEXT, id_kategori INTEGER, FOREIGN KEY (id_kategori) REFERENCES Kategori(id_kategori)) (25 menit).
- Murid mengeksekusi skrip relasi tabel yang telah disusun pada lingkungan basis data (SQLite engine/browser), menguji relasi dengan menyisipkan baris data terkait, dan memastikan struktur foreign key terbentuk sempurna tanpa galat sintaks (15 menit).
Merefleksi (Berkesadaran):- Murid memeriksa kembali skrip skema relasi miliknya bersama pasangan, memastikan integritas referensial telah diterapkan dengan benar, serta mengevaluasi kendala sintaks yang sempat ditemui selama eksekusi (5 menit).
Penutup:- Guru bersama murid menyimpulkan peran Foreign Key dalam menghubungkan tabel induk dan tabel anak guna mencegah redundansi data aplikasi (3 menit).
- Guru memberikan umpan balik ketercapaian penerapan skema relasi antartabel dan menyampaikan topik pertemuan berikutnya mengenai koneksi basis data SQLite ke aplikasi Python (2 menit).
Diferensiasi:- Konten: Murid yang membutuhkan bimbingan diberikan templat sintaks parsial skrip CREATE TABLE dengan klausa FOREIGN KEY rumpang; murid yang mahir diberikan studi kasus tambahan dengan skema 3 tabel relasional (Pelanggan, Pesanan, Item_Pesanan).
- Proses: Scaffolding intensif diberikan guru pada penentuan kolom rujukan REFERENCES bagi kelompok yang masih kesulitan menghubungkan tabel induk dan anak.
- Produk: Skrip SQL pembuatan relasi tabel minimal memuat 2 tabel terkait dengan 1 relasi Foreign Key yang valid; kelompok mahir dapat mengumpulkan skrip 3 tabel berelasi berjenjang.
Asesmen Pertemuan:Awal:- Soal tertulis singkat di papan tulis: Diberikan 2 tabel: 'Pelanggan' (id_pelanggan [PK], nama) dan 'Pesanan' (id_pesanan [PK], tgl, id_pelanggan). Tuliskan kolom penghubung relasi kedua tabel tersebut beserta peran kuncinya! (acuan jawaban: kolom penghubung adalah 'id_pelanggan'; di tabel Pelanggan sebagai Primary Key, di tabel Pesanan sebagai Foreign Key).
Proses:- Observasi unjuk kerja penyusunan skrip SQL relasi antartabel pada lembar kerja: memeriksa ketepatan penulisan klausul 'FOREIGN KEY (id_kategori) REFERENCES Kategori(id_kategori)' dan keterhubungan tipe data kolom kunci pada SQLite.
Akhir Pertemuan:- Cek pemahaman 2 butir di akhir sesi: (1) Sebutkan fungsi klausa REFERENCES pada pembuatan tabel anak! (acuan: menentukan tabel induk dan kolom primary key yang dirujuk oleh foreign key); (2) Jika tipe id_kategori di tabel induk bertipe INTEGER, apa syarat tipe data kolom foreign key pasangannya di tabel anak? (acuan: harus memiliki tipe data yang sama/kompatibel, yaitu INTEGER).
Formatif:- Asesmen diagnostik awal: mengidentifikasi kolom penghubung antartabel
- Unjuk kerja praktik: penyusunan dan eksekusi skrip SQL CREATE TABLE dengan relasi Foreign Key
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Penerapan Sintaks Foreign Key Antartabel Basis Data | Belum mampu menyusun klausa FOREIGN KEY dan REFERENCES dalam skrip pembuatan tabel basis data. | Mampu menuliskan sintaks FOREIGN KEY namun masih terdapat kesalahan referensi tabel induk/kolom target atau ketidaksesuaian tipe data kunci. | Mampu menerapkan skrip pembuatan tabel relasional dengan FOREIGN KEY dan REFERENCES secara tepat pada 2 tabel terkait sesuai acuan tugas. | Mampu menerapkan skrip pembuatan tabel relasional dengan FOREIGN KEY dan REFERENCES secara tepat, mandiri, tanpa galat, serta mampu menambahkan aturan integritas referensial lanjutan secara konsisten. |
Refleksi Pertemuan:Guru:- Apakah penyampaian analogi relasi tabel mempermudah pemahaman murid mengenai fungsi Foreign Key?
- Bagian sintaks SQL mana yang paling banyak memunculkan galat eksekusi pada murid?
Murid:- Apakah saya sudah dapat menentukan kolom mana yang harus dijadikan Foreign Key saat merelasikan dua tabel?
- Apa kesulitan utama yang saya alami saat mengeksekusi perintah pembuatan tabel berelasi di lingkungan basis data?
Pertemuan 7 — Menerapkan Koneksi Basis Data SQLite ke dalam Aplikasi Berbasis Python — 2 JP (2 x 45 menit = 90 menit)Tujuan Pertemuan:- TP 11.4.4 Menerapkan koneksi basis data ke dalam pengembangan aplikasi untuk manipulasi data
Pendahuluan:- Guru membuka kelas dengan salam, memeriksa kehadiran murid, dan menyampaikan tujuan pembelajaran pertemuan ke-7 yaitu menerapkan koneksi basis data SQLite ke dalam aplikasi Python (5 menit).
- Guru melaksanakan asesmen awal singkat untuk memetakan kesiapan murid terkait pustaka dan fungsi koneksi Python: (1) Sebutkan modul bawaan Python untuk basis data SQLite; (2) Sebutkan fungsi untuk membuka koneksi ke file database. Guru mengecek jawaban murid (acuan: 1. modul sqlite3; 2. fungsi sqlite3.connect('nama_file.db')) (10 menit).
Kegiatan Inti:Memahami (Berkesadaran, Menggembirakan):- Murid menyimak demonstrasi guru mengenai alur teknis koneksi basis data SQLite menggunakan Python: mengimpor modul sqlite3, membuka koneksi dengan sqlite3.connect(), membuat objek cursor, hingga memutus koneksi dengan conn.close() untuk mencegah kebocoran resource memori (15 menit).
- Murid secara berpasangan memainkan kuis cepat 'Tebak Peran Kode' untuk menguji pemahaman sintaks koneksi basis data secara interaktif dan menyenangkan (acuan peran: import sqlite3 = memuat pustaka basis data; conn = sqlite3.connect('sekolah.db') = membuka jalur komunikasi ke berkas database; cur = conn.cursor() = membuat penunjuk eksekusi perintah; conn.close() = menutup jalur koneksi) (10 menit).
Mengaplikasi (Bermakna):- Murid secara mandiri membuka editor Python (IDLE/VS Code) dan menyusun skrip koneksi basis data bernama koneksi_db.py untuk membuat file basis data baru bernama akademik.db, menginisialisasi objek cursor, mencetak pesan konfirmasi koneksi berhasil di terminal, dan menutup objek koneksi (30 menit).
Merefleksi (Berkesadaran):- Murid memeriksa status file fisik akademik.db yang otomatis terbuat di direktori kerja lokal serta meninjau kembali apakah penutupan koneksi (conn.close()) telah ditempatkan secara tepat di akhir eksekusi kode (10 menit).
Penutup:- Murid bersama guru menyimpulkan 4 langkah utama koneksi basis data SQLite di Python (import sqlite3, connect, cursor, close) (5 menit).
- Guru memberikan asesmen akhir berupa cek pemahaman 2 butir sintaks dan memberikan penguatan untuk materi manipulasi data pada pertemuan berikutnya (5 menit).
Diferensiasi:- Konten: Murid yang membutuhkan bimbingan diberikan kartu panduan berisi urutan 4 baris kode koneksi dasar; murid yang telah mahir diberikan instruksi menambahkan blok penanganan galat try-except-finally pada sintaks koneksi.
- Proses: Murid dengan kecepatan belajar lebih tinggi mengerjakan penulisan skrip secara mandiri penuh, sedangkan murid yang mengalami kendala teknis sintaks dibimbing secara berkala oleh guru.
- Produk: Variasi output terminal berupa pesan status keberhasilan koneksi dan pembuatan berkas basis data SQLite lokal (.db).
Asesmen Pertemuan:Awal:- Pertanyaan diagnostik: (1) Modul pustaka bawaan apa dalam Python yang digunakan untuk mengelola basis data SQLite? (acuan: sqlite3); (2) Fungsi apa yang dipanggil untuk membuka koneksi ke file basis data bernama toko.db? (acuan: sqlite3.connect('toko.db')). Kriteria: murid yang menjawab kedua butir tepat siap praktik mandiri, murid yang menjawab 0-1 tepat diberikan kartu perancah sintaks.
Proses:- Pengamatan unjuk kerja penyusunan kode koneksi_db.py: Murid dinilai ketepatannya dalam menuliskan 4 baris kode koneksi: (1) import sqlite3, (2) conn = sqlite3.connect('akademik.db'), (3) cur = conn.cursor(), (4) conn.close(). Kunci keberhasilan: skrip berjalan tanpa syntax/runtime error dan file fisik akademik.db terbentuk di direktori kerja.
Akhir Pertemuan:- Cek pemahaman tertulis singkat (2 butir): (1) Tuliskan perintah untuk menginisialisasi objek cursor dari objek koneksi conn (acuan: conn.cursor() atau cur = conn.cursor()); (2) Tuliskan fungsi yang wajib dipanggil untuk mengakhiri sesi komunikasi basis data agar resource sistem tidak bocor (acuan: conn.close() atau close()).
Formatif:- Asesmen diagnostik awal lisan terkait modul sqlite3 dan sintaks fungsi connect()
- Kuis interaktif 'Tebak Peran Kode' pada tahap memahami
- Observasi unjuk kerja praktik penulisan skrip koneksi SQLite di Python (lembar ceklis)
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Penerapan Sintaks Koneksi Basis Data SQLite dalam Python | Mampu menuliskan kurang dari 2 elemen kode koneksi basis data dengan benar serta skrip mengalami galat (error) eksekusi. | Mampu menuliskan 2 dari 4 elemen kode koneksi (import sqlite3 dan sqlite3.connect) dengan benar namun belum melengkapi pembuatan cursor atau conn.close(). | Mampu menuliskan 3 dari 4 elemen kode koneksi dengan benar dan file basis data berhasil terbentuk di sistem lokal dengan bantuan minimal. | Mampu menuliskan seluruh 4 elemen kode koneksi (import sqlite3, sqlite3.connect, conn.cursor, dan conn.close) secara tepat, mandiri, dan berhasil mengeksekusi pembuatan file basis data tanpa galat. |
Refleksi Pertemuan:Guru:- Apakah langkah demonstrasi dan perancah kode koneksi SQLite membantu seluruh murid berhasil mengeksekusi koneksi tanpa kendala instalasi?
- Bagaimana keterlibatan murid selama kuis singkat dan praktik mandiri penulisan skrip koneksi basis data?
Murid:- Bagian mana dari pembuatan kode koneksi SQLite yang paling mudah dan paling menantang untuk saya pahami?
- Mengapa saya harus selalu menutup koneksi basis data (conn.close()) setiap kali program selesai dijalankan?
Pertemuan 8 — Menerapkan Operasi Penyisipan dan Pembacaan Data Terkoneksi Basis Data dalam Aplikasi — 2 JP (2 x 45 menit = 90 menit)Tujuan Pertemuan:- TP 11.4.4 Menerapkan koneksi basis data ke dalam pengembangan aplikasi untuk manipulasi data
Pendahuluan:- Guru membuka sesi pembelajaran, memeriksa kehadiran murid, dan menyiapkan lingkungan IDE/Python yang sudah terpasang modul sqlite3 (5 menit).
- Guru menyampaikan tujuan pembelajaran pertemuan ke-8 yaitu menerapkan operasi penyisipan (INSERT) dan pembacaan (SELECT) data terkoneksi basis data SQLite dalam script Python (5 menit).
- Guru melakukan asesmen awal berupa kuis diagnostik kilat 2 butir pada slide/papan tulis untuk mengecek kesiapan sintaks SQL dan method koneksi SQLite di Python: (1) Perintah SQL untuk menambahkan data baru ke tabel 'produk' adalah ... (acuan: INSERT INTO produk ...); (2) Method koneksi Python untuk mengunci/menyimpan perubahan permanen ke berkas database adalah ... (acuan: connection.commit()) (5 menit).
Kegiatan Inti:Memahami (Bermakna, Berkesadaran):- Murid menyimak demonstrasi guru tentang struktur kode Python untuk manipulasi data basis data SQLite, yang mencakup pembuatan objek cursor (`cur = conn.cursor()`), eksekusi perintah INSERT berparameter (`cur.execute("INSERT INTO produk (nama, harga) VALUES (?, ?)", ('Buku', 5000))`), pemanggilan `conn.commit()`, serta eksekusi SELECT dan pengambilan data menggunakan method `cur.fetchall()` (10 menit).
- Murid secara berpasangan menganalisis potongan kode percontohan yang disediakan guru untuk mengidentifikasi 3 komponen kunci operasi basis data: letak perintah eksekusi parameter penyisipan, fungsi commit penyimpanan, dan perulangan loop untuk membaca hasil fetchall (10 menit).
Mengaplikasi (Menggembirakan, Bermakna):- Murid memainkan tantangan interaktif 'Code Pairing Relay' di mana murid berpasangan menyusun urutan 4 baris kode acak agar dapat menyisipkan 1 data barang dan menampilkannya tanpa galat: Baris A (`conn.commit()`), Baris B (`cur.execute('SELECT * FROM barang')`), Baris C (`cur.execute('INSERT INTO barang VALUES (?, ?)', (1, 'Pensil'))`), Baris D (`print(cur.fetchall())`) (acuan urutan benar: C -> A -> B -> D) (10 menit).
- Secara mandiri, murid membuka lembar kerja pemrograman pada komputer masing-masing dan menerapkan script Python lengkap untuk membuat tabel `siswa` (kolom: `nis` integer, `nama` text, `nilai` integer), menyisipkan tepat 3 data spesifik: NIS 101 nama 'Andi' nilai 85; NIS 102 nama 'Budi' nilai 90; NIS 103 nama 'Citra' nilai 78, lalu melakukan commit (15 menit).
- Murid menerapkan blok kode pembacaan data menggunakan `cur.execute('SELECT nis, nama, nilai FROM siswa')` dan membaca seluruh baris data menggunakan `cur.fetchall()`, kemudian menampilkan setiap rekaman baris ke terminal aplikasi menggunakan perulangan for loop (15 menit).
Merefleksi (Berkesadaran):- Murid memverifikasi kesesuaian output terminal aplikasi mereka dengan data yang telah disisipkan pada tabel SQLite, mencatat kendala penulisan sintaks tanda tanya (`?`) atau lupa `commit()`, lalu menyimpulkan alur baku operasi INSERT dan SELECT dalam aplikasi berbasis basis data (10 menit).
Penutup:- Guru memberikan penguatan terhadap praktik manipulasi basis data yang telah dilakukan, khususnya pentingnya method `commit()` agar operasi penyisipan tersimpan ke storage dan penutupan koneksi (`conn.close()`) dengan baik (3 menit).
- Guru menyampaikan topik pertemuan berikutnya (Pertemuan 9) mengenai operasi pembaruan (UPDATE) dan penghapusan (DELETE) data serta penyiapan artefak portofolio, lalu menutup pembelajaran dengan doa dan salam (2 menit).
Diferensiasi:- Konten: Menyediakan template potongan kode dengan komentar pemandu bagi murid yang membutuhkan scaffolding struktur method koneksi sqlite3.
- Proses: Murid yang telah lancar menyelesaikan 3 data diarahkan menerapkan klausa filter kondisional 'WHERE nilai > 80' pada query SELECT secara mandiri, sedangkan murid yang mengalami galat mendapatkan panduan langsung pada pengecekan parameter query.
- Produk: Variasi output tampilan pembacaan data di terminal, mulai dari pencetakan baris tuple mentah hingga pencetakan berformat teks terstruktur per kolom data.
Asesmen Pertemuan:Awal:- Diagnostik 2 butir soal sintaks dan method manipulasi basis data SQLite di Python: Butir 1: Tuliskan perintah SQL standar untuk memasukkan baris baru ke dalam tabel 'produk' (acuan jawaban: INSERT INTO produk ...); Butir 2: Sebutkan fungsi/method koneksi Python yang wajib dipanggil agar penambahan data tersimpan secara permanen ke file database (acuan jawaban: commit() / connection.commit()).
Proses:- Pengamatan langsung saat murid mengetikkan dan mengeksekusi script Python: ketepatan sintaks parameterized query `cur.execute()`, pemanggilan method `conn.commit()`, pemanggilan `cur.fetchall()`, dan perulangan penampilan data ke terminal.
Akhir Pertemuan:- Pemeriksaan hasil eksekusi terminal murid terhadap 3 data siswa yang disisipkan: NIS 101 nama 'Andi' nilai 85; NIS 102 nama 'Budi' nilai 90; NIS 103 nama 'Citra' nilai 78 (acuan keberhasilan: script berhasil dieksekusi tanpa pesan galat dan terminal menampilkan ketiga baris data siswa tersebut secara lengkap).
Formatif:- Kuis diagnostik awal tentang perintah SQL INSERT dan method commit pada koneksi Python SQLite
- Observasi unjuk kerja pemrograman penyisipan (INSERT + commit) dan pembacaan (SELECT + fetchall) data pada script Python
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Penerapan Operasi Penyisipan Data (INSERT dan Commit) | Belum mampu menuliskan query INSERT dan method commit() pada script Python sehingga data gagal tersimpan ke tabel basis data. | Mampu menuliskan query INSERT tetapi keliru pada penulisan parameter tanda tanya (?) atau belum menyertakan conn.commit() sehingga data tidak tersimpan permanen. | Mampu menerapkan query parameterized INSERT dan conn.commit() secara tepat untuk menyisipkan seluruh 3 data siswa ke dalam tabel basis data SQLite. | Mampu menerapkan query parameterized INSERT dan conn.commit() untuk seluruh 3 data siswa secara mandiri tanpa galat serta memastikan penanganan tipe data kolom sesuai skema. | | Penerapan Operasi Pembacaan Data (SELECT dan Fetchall) | Belum mampu mengeksekusi query SELECT atau memanggil method fetchall() untuk mengambil data dari tabel basis data. | Mampu mengeksekusi query SELECT dan fetchall() namun belum berhasil menampilkan baris data ke terminal aplikasi melalui perulangan. | Mampu mengeksekusi query SELECT, mengambil data dengan fetchall(), dan menampilkan seluruh 3 rekaman data siswa ke layar terminal dengan tepat. | Mampu mengeksekusi query SELECT, fetchall(), serta menampilkan seluruh 3 rekaman data siswa secara rapi dan konsisten mandiri tanpa bimbingan teknis. |
Refleksi Pertemuan:Guru:- Apakah alokasi waktu 90 menit mencukupi bagi seluruh murid untuk menyelesaikan penulisan script INSERT dan SELECT tanpa kendala sintaks?
- Bagian mana dari alur manipulasi database (koneksi, kursor, eksekusi query parameter, commit, pembacaan) yang paling sering menimbulkan kekeliruan sintaks bagi murid?
Murid:- Apakah saya sudah memahami fungsi perintah commit() setelah mengeksekusi perintah INSERT dalam script Python?
- Langkah apa yang harus saya lakukan jika hasil fetchall() pada terminal aplikasi masih kosong setelah proses penyisipan data?
Pertemuan 9 — Menerapkan Pembaruan dan Penghapusan Data Terkoneksi Basis Data serta Penyiapan Bukti Portofolio — 2 JP (2 x 45 menit = 90 menit)Tujuan Pertemuan:- TP 11.4.4 Menerapkan koneksi basis data ke dalam pengembangan aplikasi untuk manipulasi data
Pendahuluan:- Guru membuka sesi pembelajaran, memeriksa kesiapan teknis perangkat lunak pemrograman murid, dan menyampaikan lingkup materi manipulasi pembaruan dan penghapusan data (UPDATE dan DELETE) pada basis data terkoneksi (5 menit).
- Murid mengerjakan asesmen diagnostik singkat berupa 2 butir pertanyaan terkait sintaks pembaruan dan penghapusan basis data untuk memetakan kesiapan awal: (1) Perintah SQL untuk mengubah nilai kolom; (2) Klausa pembatas agar tidak seluruh baris terhapus (acuan kunci: 1. UPDATE ... SET ...; 2. WHERE) (10 menit).
Kegiatan Inti:Memahami (Berkesadaran):- Murid mencermati demonstrasi guru mengenai mekanisme pengeksekusian kueri pembaruan data (UPDATE tabel SET kolom = ? WHERE id = ?) dan penghapusan data (DELETE FROM tabel WHERE id = ?) melalui modul sqlite3 di Python, termasuk pemanggilan cursor.execute() serta conn.commit() (15 menit).
- Murid secara berkesadaran menelaah kode skrip demonstrasi dan mengidentifikasi fungsi conn.commit() dalam mengunci perubahan permanen ke berkas basis data (10 menit).
Mengaplikasi (Bermakna, Menggembirakan):- Murid secara mandiri membuka skrip aplikasi pencatatan data yang telah dibuat pada sesi sebelumnya, lalu menambahkan fungsi update_data(id_data, nilai_baru) dan delete_data(id_data) menggunakan koneksi basis data SQLite (25 menit).
- Murid menjalankan permainan tantangan debug interaktif berpasangan 'Tantangan Eksekusi Aman': murid saling bertukar kode untuk menguji apakah fungsi pembaruan dan penghapusan data berjalan tepat pada baris target berdasarkan Primary Key tanpa menghapus data lainnya (10 menit).
Merefleksi (Berkesadaran):- Murid mendokumentasikan keluaran kode program (tangkapan layar isi tabel sebelum dan sesudah UPDATE/DELETE) ke dalam berkas portofolio digital pemrograman masing-masing (10 menit).
Penutup:- Guru bersama murid menyimpulkan peran pengeksekusian kueri UPDATE dan DELETE berparameter serta pentingnya conn.commit() dalam manipulasi basis data (3 menit).
- Murid menyelesaikan lembar cek pemahaman akhir terkait dampak penghapusan data tanpa klausa pembatas (acuan: seluruh baris data pada tabel akan terhapus) dan menutup pertemuan (2 menit).
Diferensiasi:- Konten: Menyediakan contoh potongan kode fungsi penanganan galat (try-except) saat koneksi terputus bagi murid yang memerlukan panduan tambahan.
- Proses: Bagi murid yang membutuhkan bimbingan, guru memberikan kerangka fungsi pembaruan/penghapusan parsial; bagi murid berkemampuan cepat, diberikan tantangan memvalidasi keberadaan ID sebelum eksekusi DELETE dilakukan.
- Produk: Portofolio penyiapan bukti manipulasi data berupa berkas skrip .py dan tangkapan layar verifikasi tabel basis data.
Asesmen Pertemuan:Awal:- Diagnostik tertulis singkat di awal pelajaran: (1) Sebutkan perintah SQL untuk memperbarui isi data kolom pada tabel (acuan kunci: UPDATE [nama_tabel] SET [kolom] = [nilai]); (2) Sebutkan klausa SQL yang wajib disertakan saat menghapus satu baris data tertentu agar data lain tidak hilang (acuan kunci: WHERE [kondisi/primary_key]).
Proses:- Pengamatan formatif saat pengerjaan praktik: memastikan murid mengeksekusi metode cursor.execute() dengan parameterisasi kueri UPDATE/DELETE dan memanggil fungsi commit() pada objek koneksi basis data.
Akhir Pertemuan:- Cek pemahaman akhir sesi: Murid menjawab pertanyaan tertulis: 'Apa akibatnya jika perintah DELETE FROM nama_tabel dieksekusi melalui koneksi aplikasi tanpa menyertakan klausa WHERE?' (kriteria penerimaan: jawaban menyatakan secara tepat bahwa semua data/baris di dalam tabel akan terhapus seluruhnya).
Formatif:- Penilaian unjuk kerja pemrograman penulisan fungsi UPDATE dan DELETE menggunakan modul koneksi basis data pada skrip aplikasi.
- Pemeriksaan kelengkapan bukti portofolio manipulasi data (kode sumber dan hasil eksekusi tabel basis data).
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Menerapkan kueri pembaruan (UPDATE) melalui koneksi basis data dalam skrip aplikasi | Belum mampu menyusun sintaks UPDATE berparameter atau fungsi koneksi gagal memperbarui data target pada tabel. | Mampu menyusun sintaks UPDATE namun masih mengalami kesalahan parameterisasi atau lupa menyertakan conn.commit() sehingga data tidak tersimpan. | Mampu menerapkan koneksi dan fungsi UPDATE berparameter dengan klausa WHERE secara tepat sehingga data pada baris target terbarui. | Mampu menerapkan koneksi dan fungsi UPDATE berparameter secara mandiri, lengkap dengan validasi keberadaan ID dan penanganan pembaruan data secara presisi. | | Menerapkan kueri penghapusan (DELETE) melalui koneksi basis data dalam skrip aplikasi | Belum mampu menyusun sintaks DELETE terhubung ke basis data atau kode menghasilkan galat sintaks SQL. | Menyusun sintaks DELETE tetapi klausa penyaring (WHERE) belum terhubung dengan parameter ID secara tepat. | Mampu menerapkan fungsi DELETE berparameter dengan klausa WHERE berbasis Primary Key secara tepat sehingga hanya baris target yang terhapus dari basis data. | Mampu menerapkan fungsi DELETE berbasis Primary Key secara mandiri dan konsisten serta memastikan integritas tabel tetap terjaga tanpa kegagalan koneksi. | | Penyiapan bukti portofolio manipulasi data aplikasi | Belum mendokumentasikan skrip manipulasi data maupun bukti keluaran eksekusi basis data ke portofolio. | Mendokumentasikan skrip namun belum menyertakan bukti keluaran eksekusi sebelum dan sesudah data diubah/dihapus. | Mendokumentasikan skrip fungsi manipulasi dan bukti tangkapan layar kondisi tabel sebelum dan sesudah operasi pembaruan serta penghapusan data secara lengkap. | Mendokumentasikan skrip fungsi manipulasi dan bukti keluaran eksekusi secara runtut, lengkap, dan sistematis sesuai spesifikasi aplikasi. |
Refleksi Pertemuan:Guru:- Apakah murid mengalami kendala utama saat menghubungkan parameter fungsi Python ke dalam tanda tanya (?) pada kueri SQL?
- Bagaimana efektivitas tantangan debug berpasangan dalam membantu murid menemukan kesalahan eksekusi kueri pembaruan dan penghapusan data?
Murid:- Bagian mana dari penulisan fungsi pembaruan atau penghapusan data yang paling membutuhkan ketelitian?
- Mengapa saya harus selalu memastikan kueri DELETE dan UPDATE memiliki klausa WHERE yang merujuk pada Primary Key?
Pertemuan 10 — Asesmen Sumatif Bab — 2 JP (2 x 45 menit = 90 menit)Tujuan Pertemuan:- TP 11.4.1 Menjelaskan konsep data encoding untuk penyiapan data dalam pengembangan aplikasi
- TP 11.4.2 Menerapkan teknik data encoding pada dataset untuk kebutuhan pengolahan data
- TP 11.4.3 Menerapkan struktur tabel basis data relasional untuk penyimpanan data aplikasi
- TP 11.4.4 Menerapkan koneksi basis data ke dalam pengembangan aplikasi untuk manipulasi data
Pendahuluan:- Guru membuka sesi asesmen sumatif dengan salam, mengecek kesiapan fasilitas komputer lab, dan menegaskan tata tertib pelaksanaan asesmen mandiri secara berkesadaran (3 menit).
- Guru menyampaikan tujuan asesmen sumatif gabungan yang mencakup tes tertulis analisis encoding dan skrip SQL DDL relasional, dilanjutkan unjuk kerja pemrograman modular koneksi basis data (2 menit).
Kegiatan Inti:Memahami (Berkesadaran):- Murid menyimak penjelasan petunjuk teknis 2 bagian tugas sumatif: Bagian 1 (tes tertulis teori encoding dan penulisan skrip SQL relasional selama 30 menit) dan Bagian 2 (unjuk kerja pemrograman skrip Python modular selama 50 menit) secara berkesadaran (3 menit).
Mengaplikasi (Bermakna):- Murid mengerjakan secara mandiri lembar asesmen tertulis Bagian 1: (1) Menganalisis perbedaan data kategorikal nominal (mis. kota domisili: 'Jakarta', 'Bandung', 'Surabaya') dan ordinal (mis. tingkat pendidikan: 'SMA', 'S1', 'S2') serta konsekuensi perubahannya setelah Label Encoding dan One-Hot Encoding; (2) Menuliskan sintaks DDL SQL pembuatan 2 tabel relasional 'jurusan' (id_jurusan INT PRIMARY KEY, nama_jurusan VARCHAR) dan 'siswa' (nis INT PRIMARY KEY, nama VARCHAR, id_jurusan INT, FOREIGN KEY (id_jurusan) REFERENCES jurusan(id_jurusan)) (30 menit).
- Murid mengerjakan secara mandiri di komputer masing-masing lembar unjuk kerja pemrograman Bagian 2 pada berkas templat Python: (1) Melengkapi fungsi encoding menggunakan pandas/sklearn untuk mengodekan kolom 'kategori_layanan' dengan One-Hot Encoding dan kolom 'tingkat_urgensi' dengan Ordinal/Label Encoding; (2) Menuliskan fungsi koneksi SQLite, eksekusi pembuatan tabel, penyisipan rekaman data hasil encoding (INSERT), pembacaan (SELECT), serta manipulasi pembaruan/penghapusan (UPDATE/DELETE) secara mandiri (48 menit).
Merefleksi (Berkesadaran):- Murid memeriksa kembali berkas jawaban tertulis dan memastikan skrip kode Python dapat dijalankan bebas sintaks error serta diunggah ke folder repositori pengumpulan bersama kelas (2 menit).
Penutup:- Lembar jawaban tertulis dikumpulkan serentak dan guru memastikan seluruh berkas repositori kode Python terunggah lengkap dari seluruh 28 murid tanpa ada yang tertinggal (2 menit).
Diferensiasi:- Konten: Akomodasi akses: teks lembar soal cetak disediakan dalam kontras tinggi dan ukuran font terbaca jelas tanpa mengubah butir tugas atau kriteria penilaian.
- Proses: Akomodasi akses: posisi tempat duduk disesuaikan dengan kenyamanan ergonomis laboratorium dan kendala penglihatan tanpa penambahan waktu atau bantuan pengerjaan.
- Produk: Format berkas keluaran kode program diserahkan seragam dalam bentuk file ekstensi .py sesuai templat standar yang diujikan.
Asesmen Pertemuan:Sumatif Bab:- kombinasi tes tertulis terstruktur dan unjuk kerja pemrograman modular di laboratorium komputer: lembar jawaban analisis konseptual data encoding beserta skrip SQL skema relasional, dan berkas kode program terintegrasi yang memuat fungsi data encoding serta koneksi manipulasi basis data yang dinilai setelah pengerjaan serentak
- tes tertulis dan perancangan kueri serentak: 28 murid mengerjakan secara serentak lembar asesmen mandiri selama 35 menit; berisi uraian analisis karakteristik data kategorikal sebelum dan sesudah encoding, serta penulisan sintaks DDL SQL untuk membuat tabel relasional lengkap dengan primary key dan foreign key. Guru mengawasi ruang kelas dan artefak lembar jawaban diperiksa sesudah sesi berakhir dengan pedoman penskoran objektif. (35 menit; individual; instrumen: rubrik analitik dan kunci jawaban penskoran tertulis)
- unjuk kerja pemrograman serentak: 28 murid bekerja serentak di komputer masing-masing selama 55 menit menyelesaikan berkas templat kode Python yang disediakan; mengimplementasikan fungsi teknik data encoding (label/one-hot encoding) pada dataset yang diberikan dan menuliskan fungsi koneksi basis data SQLite/MySQL untuk mengeksekusi operasi manipulasi data (insert/update/select). Kode sumber dikumpulkan melalui repositori/folder bersama kelas di akhir sesi, dan pengujian fungsionalitas kode dilakukan guru pasca-sesi menggunakan rubrik unjuk kerja otomatis dan checklist keberjalanan program, tanpa perlu observasi lisan bergilir saat jam pelajaran berlangsung. (55 menit; individual; instrumen: rubrik penilaian kode program dan lembar uji fungsionalitas skrip)
Sumatif:- kombinasi tes tertulis terstruktur dan unjuk kerja pemrograman modular di laboratorium komputer: lembar jawaban analisis konseptual data encoding beserta skrip SQL skema relasional, dan berkas kode program terintegrasi yang memuat fungsi data encoding serta koneksi manipulasi basis data yang dinilai setelah pengerjaan serentak
- tes tertulis dan perancangan kueri serentak: 28 murid mengerjakan secara serentak lembar asesmen mandiri selama 35 menit; berisi uraian analisis karakteristik data kategorikal sebelum dan sesudah encoding, serta penulisan sintaks DDL SQL untuk membuat tabel relasional lengkap dengan primary key dan foreign key. Guru mengawasi ruang kelas dan artefak lembar jawaban diperiksa sesudah sesi berakhir dengan pedoman penskoran objektif. (35 menit; individual; instrumen: rubrik analitik dan kunci jawaban penskoran tertulis)
- unjuk kerja pemrograman serentak: 28 murid bekerja serentak di komputer masing-masing selama 55 menit menyelesaikan berkas templat kode Python yang disediakan; mengimplementasikan fungsi teknik data encoding (label/one-hot encoding) pada dataset yang diberikan dan menuliskan fungsi koneksi basis data SQLite/MySQL untuk mengeksekusi operasi manipulasi data (insert/update/select). Kode sumber dikumpulkan melalui repositori/folder bersama kelas di akhir sesi, dan pengujian fungsionalitas kode dilakukan guru pasca-sesi menggunakan rubrik unjuk kerja otomatis dan checklist keberjalanan program, tanpa perlu observasi lisan bergilir saat jam pelajaran berlangsung. (55 menit; individual; instrumen: rubrik penilaian kode program dan lembar uji fungsionalitas skrip)
Rubrik Pertemuan:| Aspek | Belum Berkembang | Mulai | Berkembang | Sangat Berkembang |
|---|
| Analisis Konsep Data Encoding (TP 11.4.1) | Menjelaskan karakteristik nominal dan ordinal secara keliru, serta tidak tepat membedakan hasil representasi data numerik antara Label Encoding dan One-Hot Encoding. | Menjelaskan perbedaan nominal dan ordinal secara tepat, namun keliru menjelaskan salah satu mekanisme representasi Label Encoding atau One-Hot Encoding. | Menjelaskan dengan tepat karakteristik data nominal dan ordinal, serta menjelaskan secara tepat perubahan matriks/vektor data pada Label Encoding dan One-Hot Encoding sesuai acuan kunci (Label: bilangan bulat terurut; One-Hot: kolom biner 0/1). | Menjelaskan secara tepat, runtut, dan lengkap karakteristik nominal vs ordinal, representasi matriks biner dan vektor integer, serta dampak dimensionalitas fitur encoding dalam pengembangan aplikasi. | | Penerapan Teknik Data Encoding pada Dataset (TP 11.4.2) | Skrip encoding pada templat Python tidak berhasil dieksekusi atau terdapat lebih dari 2 kesalahan logika penerapan teknik pengodean. | Menerapkan salah satu teknik encoding dengan tepat (hanya One-Hot Encoding atau hanya Ordinal/Label Encoding) dengan benar pada dataset yang diberikan. | Menerapkan kedua teknik data encoding (One-Hot Encoding pada fitur nominal dan Ordinal/Label Encoding pada fitur ordinal) dengan tepat pada dataset uji hingga menghasilkan dataframe siap olah. | Menerapkan kedua teknik data encoding secara tepat, efisien, rapi tanpa galat, serta menghasilkan struktur matriks data hasil transformasi yang presisi secara mandiri. | | Perancangan Struktur Tabel Basis Data Relasional (TP 11.4.3) | Sintaks DDL SQL memuat lebih dari 2 kesalahan sintaksis atau gagal menetapkan atribut PRIMARY KEY dan FOREIGN KEY antartabel. | Menuliskan sintaks DDL SQL dengan benar untuk 2 tabel relasional, namun terdapat kekeliruan sintaksis pada pendefinisian FOREIGN KEY atau PRIMARY KEY. | Menuliskan seluruh sintaks DDL SQL dengan tepat sesuai acuan kunci: pembuatan tabel 'jurusan' (id_jurusan PRIMARY KEY) dan tabel 'siswa' (nis PRIMARY KEY, id_jurusan FOREIGN KEY REFERENCES jurusan). | Menuliskan seluruh sintaks DDL SQL pembuatan tabel relasional secara tepat tanpa kekeliruan sintaksis, lengkap dengan penentuan tipe data kolom, PRIMARY KEY, FOREIGN KEY, dan batasan integritas relasional. | | Penerapan Koneksi Basis Data untuk Manipulasi Data (TP 11.4.4) | Fungsi koneksi basis data SQLite gagal tersambung atau operasi manipulasi data (insert/select/update/delete) menghasilkan eksepsi galat pemrograman. | Berhasil membuat koneksi SQLite dan mengeksekusi maksimal 2 jenis operasi manipulasi data (misal: hanya CREATE TABLE dan INSERT). | Berhasil membuat koneksi basis data SQLite serta mengimplementasikan 4 operasi manipulasi data (INSERT, SELECT, UPDATE, DELETE) dengan benar pada aplikasi. | Berhasil mengimplementasikan koneksi basis data SQLite secara modular, eksekusi 4 operasi manipulasi data berhasil sempurna tanpa galat, dilengkapi penanganan commit transaksi dan penutupan koneksi yang aman. |
Refleksi Pertemuan:Guru:- Bagaimana ketercapaian penguasaan murid terhadap integrasi logika encoding data dengan manipulasi basis data pada tes sumatif bab ini?
- Apakah alokasi waktu 30 menit pengerjaan tertulis dan 50 menit pengerjaan kode berjalan proporsional dan tertib di laboratorium?
Murid:- Bagian mana dari integrasi teknik encoding data dan kueri koneksi basis data yang berhasil saya selesaikan secara paling mandiri?
- Langkah perbaikan apa yang perlu saya lakukan untuk memperdalam logika pemrograman integrasi data aplikasi ke depan?
SUMBER BELAJAR- Buku Siswa Koding dan Kecerdasan Artifisial SMA/MA Kelas XI (Bab 4: Data Encoding dan Integrasi Basis Data dalam Aplikasi)
- Buku Panduan Guru Koding dan Kecerdasan Artifisial SMA/MA Kelas XI
- Slide materi pengantar data encoding dan kartu data kategori
- Buku Siswa Koding dan Kecerdasan Artifisial Kelas XI, Bab 4: Data Encoding dan Integrasi Basis Data dalam Aplikasi
- Buku Panduan Guru Koding dan Kecerdasan Artifisial Kelas XI
- Lembar Instrumen 'Pilahan Kartu Data' (6 Atribut Kasus Data Aplikasi)
- Papan tulis/proyektor untuk pemodelan data kategorikal
- Buku Panduan Guru Koding dan Kecerdasan Artifisial untuk SMA/MA Kelas XI (Kemendikbudristek 2025)
- Buku Siswa Koding dan Kecerdasan Artifisial untuk SMA/MA Kelas XI (Kemendikbudristek 2025)
- Perangkat komputer/laptop dengan akses peramban web dan Google Colab / lingkungan Python dengan library scikit-learn dan pandas terpasang
- Slide presentasi kode program pemrosesan data encoding
- Buku Panduan Guru Koding dan Kecerdasan Artifisial untuk SMA/MA Kelas XI (Bab 4)
- Buku Siswa Koding dan Kecerdasan Artifisial untuk SMA/MA Kelas XI (Bab 4)
- Perangkat komputer/laptop dengan koneksi internet dan peramban web untuk menjalankan Google Colab (Python, Pandas, Category Encoders)
- Buku Guru Koding dan Kecerdasan Artifisial untuk SMA/MA Kelas XI (Kemendikbudristek)
- Buku Siswa Koding dan Kecerdasan Artifisial untuk SMA/MA Kelas XI, Bab 4
- Lembar Kerja Praktikum Struktur Tabel Basis Data Relasional
- Buku Panduan Guru Koding dan Kecerdasan Artifisial untuk SMA/MA Kelas XI (Kemendikdasmen, 2025)
- Buku Siswa Koding dan Kecerdasan Artifisial untuk SMA/MA Kelas XI (Kemendikdasmen, 2025)
- Perangkat komputer/laptop dengan perangkat lunak SQLite Browser atau IDE Python/SQLite
- Buku Panduan Guru Koding dan Kecerdasan Artifisial untuk SMA/MA Kelas XI, Kemendikbudristek
- Buku Siswa Koding dan Kecerdasan Artifisial untuk SMA/MA Kelas XI, Kemendikbudristek
- Komputer/Laptop dengan Python 3 terinstal dan lingkungan teks editor (IDLE / Visual Studio Code)
- Buku Siswa Koding dan Kecerdasan Artifisial untuk SMA/MA Kelas XI, Kemendikbudristek 2025, Bab 4 Subbab C (Integrasi Aplikasi dan Database)
- Buku Panduan Guru Koding dan Kecerdasan Artifisial untuk SMA/MA Kelas XI, Kemendikbudristek 2025
- Komputer/Laptop dengan Python 3 terpasang library bawaan sqlite3 dan teks editor/IDE
- Buku Panduan Guru Koding dan Kecerdasan Artifisial untuk SMA/MA Kelas XI (Bab 4 Subbab C).
- Buku Siswa Koding dan Kecerdasan Artifisial untuk SMA/MA Kelas XI.
- Perangkat komputer/laptop dengan Python 3 terpasang dan modul bawaan sqlite3.
- Lembar Kerja Praktik Pemrograman Manipulasi Data Basis Data.
- Buku Panduan Guru Koding dan Kecerdasan Artifisial untuk SMA/MA Kelas XI, Bab 4
- Lembar Asesmen Tertulis Sumatif Bab 4 dan Templat Proyek Python SQLite Lab Komputer
|