Total Tayangan Halaman

Kamis, 28 Mei 2026

modul pembelajaran phyton membuat Snack game

Modul Pembelajaran Kelas XI RPL (Rekayasa Perangkat Lunak)
Modul ini berfokus pada salah satu kompetensi inti di kelas XI, yaitu Pemrograman Berorientasi Objek (Object-Oriented Programming - OOP)menggunakan studi kasus yang dekat dengan apa yang baru saja kita bahas: Game Developer Logika Dasar.


Mata Pelajaran: Pemrograman Berorientasi Objek (PBO / OOP)
Kelas / Semester: XI / Genap
Alokasi Waktu: 4 x 45 Menit (2 Pertemuan)
Materi Pokok:Implementasi Class, Object, dan Encapsulation dalam Game 2D
I. Pendahuluan
A. Deskripsi Singkat
Modul ini akan membimbing Anda untuk memahami konsep dasar Pemrograman Berorientasi Objek (PBO) melalui pendekatan praktis. PBO adalah paradigma pemrograman yang berbasis pada konsep "objek", yang dapat berisi data (atribut) dan kode (method). Untuk mempermudah pemahaman, kita akan membedah logika OOP di balik pembuatan game klasik.

B. Kompetensi Dasar (KD)
 Memahami konsep pemrograman berorientasi objek. dan
 Mempresentasikan konsep pemrograman berorientasi objek.

C. Tujuan Pembelajaran
Setelah mempelajari modul ini, siswa diharapkan mampu:
 1. Menjelaskan perbedaan antara Class dan Object dengan tepat.
 2. Menentukan atribut dan method dari sebuah entitas perangkat lunak.
 3. Mengimplementasikan struktur Class ke dalam kode program Python/Pygame.

II. Kegiatan Belajar: Konsep Dasar OOP (Class & Object)
A. Uraian Materi
Dalam pemrograman prosedural standar, kita membuat kode berupa instruksi baris-per-baris yang mengeksekusi data. Namun, saat aplikasi bertambah besar (seperti game), kode akan menjadi berantakan. 
Di sinilah PBO (OOP) digunakan.
Ada dua istilah paling mendasar yang wajib dikuasai:
 1. Class (Kelas): Cetakan, blueprint, atau cetak biru. Class mendefinisikan bentuk, sifat, dan kemampuan dari apa yang akan dibuat. Class belum berupa wujud nyata.
 2. Object (Objek): Hasil nyata dari cetakan Class. Objek adalah entitas yang memiliki ruang di memori, memiliki nilai (keadaan), dan bisa melakukan aksi.
            Analogi di Dunia Nyata
Bayangkan sebuah cetakan kue berbentuk bintang.
 Class adalah cetakan kue bintang itu sendiri.
 Object adalah kue-kue nyata yang Anda makan setelah adonan dimasukkan ke dalam cetakan.
Komponen di dalam Class
Setiap Class umumnya memiliki dua komponen utama:
 Attributes (Atribut/Properti): Data atau variabel yang dimiliki oleh objek (misal: warna ular, ukuran koordinat X dan Y, kecepatan).
 Methods (Fungsi/Aksi): Apa saja yang bisa dilakukan oleh objek tersebut (misal: maju(), berbelok(), tumbuh(), mati()).

B. Studi Kasus: OOP pada Game Ular (Snake Game)
Mari kita bedah struktur logika game yang kita pelajari menggunakan kacamata OOP. Kita akan memecah game menjadi objek-objek mandiri.
1. Class: Ular (Snake)
 * **Atribut:** * x, y (posisi kepala)
   * body (koordinat daftar kotak tubuhnya)
   * x_direction, y_direction (arah gerak saat ini)
   * game_over (status hidup/mati)
 * **Method:**
   * move() (mengubah posisi koordinat ekor dan kepala)
   * grow() (menambah panjang array tubuh)
   * reset() (mengembalikan ular ke kondisi awal)
2. Class: Makanan (Apple)
 * **Atribut:**
   * x, y (posisi acak apel di grid)
 * **Method:**
   * randomize_position() (mengacak ulang koordinat jika dimakan)


C. Lembar Kerja Praktik (Hands-On)
Ketikkan cuplikan kode Python di bawah ini pada text editor Anda (VS Code / PyCharm) untuk melihat bagaimana *Class* dan *Object* dideklarasikan.
python Mendefinisikan BUKAN objek, melainkan CETAKANNYA (Class)
class Ksatria:
    def __init__(self, nama, darah):
        # Ini adalah Atribut
        self.nama = nama
        self.darah = darah
    
    # Ini adalah Method
    def menyerang(self, musuh):
        print(f"{self.nama} menyerang {musuh}!")

# ---- PROSES INSTANSIASI (Membuat Objek Nyata dari Class) ----
pemain1 = Ksatria(nama="Arthur", darah=100)
pemain2 = Ksatria(nama="Lancelot", darah=120)

# Memanggil Method objek
pemain1.menyerang(pemain2.nama)


III. Evaluasi & Penilaian
A. Tugas Mandiri (Teori)
Jawablah pertanyaan di bawah ini pada buku catatan Anda:
 1. Jelaskan dengan kalimat Anda sendiri, mengapa industri perangkat lunak modern lebih menyukai paradigma OOP dibanding Prosedural!
 2. Jika Anda diminta membuat sistem aplikasi Perpustakaan Sekolah, tentukan minimal 2 Class yang dibutuhkan, beserta 3 atribut dan 2 method untuk masing-masing class tersebut!

B. Penilaian Praktik (Unjuk Kerja)
Berdasarkan kode program Snake Game yang telah disempurnakan sebelumnya, lakukan modifikasi berikut:
 1. Tantangan 1: Ubah atribut BLOCK_SIZE menjadi ukuran 30 dan ubah jumlah GRID_COLS serta GRID_ROWS menjadi 20. Amati apa yang terjadi pada ukuran layar game!
 2. Tantangan 2: Tambahkan fitur akselerasi. Setiap kali skor pemain bertambah kelipatan 5, naikkan nilai variabel FPS sebesar 2 tingkat agar permainan berjalan semakin cepat dan menantang.

IV. Rubrik Penilaian (Untuk Guru)

| Aspek Penilaian | Skor Maksimal | Kriteria Ketercapaian |
| Pemahaman Teori| 30 | Siswa mampu menganalisis atribut dan method objek dunia nyata dengan logis. |
| Implementasi Kode| 40 | Kode berjalan tanpa *error*, sintaks penulisan *class* dan *method* sesuai kaidah. |
| Modifikasi/Kreativitas | 30 | Tantangan mandiri terselesaikan, logika akselerasi *frame rate* (FPS) berfungsi baik. |

modul pembelajaran phyton membuat Snack game

Modul Pembelajaran Kelas XI RPL (Rekayasa Perangkat Lunak) Modul ini berfokus pada salah satu kompetensi inti di kelas XI, yaitu Pemrograman...