ARTIKEL BAB 1 Prita absen 26 kelas 8F

 

ARTIKEL BAB 1: Pengembangan Game Scratch Lanjutan (Level, Skor, Timer)

📄 File 1: Bab 1 Pengembangan Game Scratch Lanjutan.docx

BAB 1: Pengembangan Game Scratch Lanjutan (Level, Skor, Timer)

Tujuan Pembelajaran

Peserta didik mampu mengembangkan game Scratch dengan fitur level yang dinamis, sistem skor yang akurat, dan timer yang fungsional, serta memahami konsep pemrograman logika di balik setiap fitur tersebut.

Apersepsi

Pernahkah kalian bermain game seperti Subway Surfers atau Candy Crush? Apa yang membuat game-game tersebut selalu terasa menantang dan membuat kita ingin terus bermain? Rahasianya ada pada fitur-fitur seperti naiknya tingkat kesulitan (Level), penghitungan poin yang adil (Skor), dan batasan waktu yang mendebarkan (Timer). Semua fitur keren ini dibangun di atas konsep pemrograman yang sangat mendasar dan penting: Variabel dan Operator Logika. Mari kita bongkar rahasia di baliknya dan terapkan di Scratch!


Penjelasan Konsep (Teori)

Membangun Game yang Lebih Canggih dengan Scratch

Scratch adalah tool pemrograman visual yang sangat kuat. Untuk membuat game dari yang sederhana hingga yang lebih canggih, kita perlu memanfaatkan logika yang membuat sprite (karakter) dapat berpikir dan beraksi secara otomatis. Logika ini dibangun dari tiga pilar utama: Variabel, Operator, dan Kontrol.

Apa Itu Variabel?

Dalam Scratch, Variabel dapat diibaratkan sebagai sebuah kantong penyimpan informasi di dalam memori komputer. Kantong ini bisa menyimpan angka (seperti skor atau waktu), atau kata/nilai tertentu (seperti nama pemain atau status game: Game Over). Kita bisa mengambil atau mengubah nilai di dalam kantong ini kapan saja selama game berjalan. Variabel ini sangat penting untuk membuat game menjadi interaktif dan responsif.

1. Variabel Skor: Menghitung Poin Pemain

Skor adalah nyawa dari hampir semua game. Tanpa skor, kita tidak akan tahu seberapa baik performa kita! Variabel skor berfungsi untuk menyimpan poin pemain.

  • Mengatur Nilai Awal: Saat game dimulai, kita harus memastikan skor diatur ke nol. Kita menggunakan blok set [skor] to (0).

  • Menambah/Mengurangi Poin: Setiap kali pemain melakukan aksi yang benar (misalnya, menangkap koin), kita harus menambah skor. Kita menggunakan blok change [skor] by (10). Jika pemain melakukan kesalahan (misalnya, menabrak musuh), kita bisa mengurangi poin dengan menggunakan angka negatif, misalnya change [skor] by (-5).

2. Variabel Level: Meningkatkan Tantangan

Game yang bagus adalah game yang selalu punya tantangan yang meningkat, dan di sinilah variabel Level berperan. Variabel ini menyimpan tingkat kesulitan atau tahap yang sedang dimainkan pemain.

  • Kondisi Naik Level: Kita menggunakan blok kontrol if (jika) dan Operator Perbandingan untuk mengecek kapan saatnya naik level. Contohnya: if <(skor) > (100)> then change [level] by (1) end.

  • Pengaruh Level: Nilai variabel Level dapat kita gunakan untuk memengaruhi parameter lain dalam game. Misalnya, jika Level = 2, kita buat kecepatan sprite musuh bertambah 50%. Dengan begitu, game akan semakin menantang seiring Level yang bertambah.

3. Variabel Timer: Mengatur Waktu

Timer atau penghitung waktu menambahkan elemen ketegangan dalam permainan. Timer bisa berupa hitung mundur (misalnya, sisa waktu 60 detik) atau hitung naik (misalnya, berapa lama pemain bisa bertahan).

  • Fungsi Utama: Mengukur waktu bermain dan menentukan kapan game berakhir.

  • Blok Hitung Mundur: Untuk membuat hitung mundur, kita butuh kombinasi blok:

    1. Atur nilai awal, misalnya set [sisa waktu] to (60).

    2. Gunakan blok kontrol repeat until <(sisa waktu) = 0>.

    3. Di dalamnya, letakkan blok wait (1) seconds dan change [sisa waktu] by (-1). Ini akan mengurangi waktu 1 detik setiap detik.

Blok Variabel yang Wajib Dikuasai

Selain blok set dan change, dua blok penting lainnya adalah show variable [variabel] dan hide variable [variabel]. Kedua blok ini memungkinkan kita untuk menampilkan atau menyembunyikan variabel di panggung sesuai kebutuhan permainan (misalnya, menyembunyikan skor saat di halaman menu utama).


Operator Matematika dan Logika: Otak dari Game!

Agar game yang kita buat bisa mengambil keputusan dan melakukan perhitungan yang kompleks, kita membutuhkan Operator.

1. Operator Aritmatika (Matematika)

Operator ini digunakan untuk melakukan perhitungan dasar:

  • Penambahan (+): Misalnya, menghitung total skor dari beberapa sumber.

  • Pengurangan (-): Misalnya, menghitung sisa Health atau waktu.

  • Perkalian (*): Misalnya, menggandakan skor karena power-up.

  • Pembagian (/): Misalnya, menghitung skor rata-rata.

2. Operator Perbandingan dan Logika

Operator ini digunakan untuk membuat syarat atau kondisi. Game hanya akan melakukan aksi tertentu jika syaratnya terpenuhi.

  • Operator Perbandingan: Digunakan untuk membandingkan dua nilai, seperti <, >, dan =. Contoh: if <(Health) = (0)> then // Game Over end.

  • Operator Logika: Digunakan untuk menggabungkan dua atau lebih kondisi.

    • AND (dan): Syarat harus benar pada kedua sisi. Contoh: if <<(level) = 2> and <(sisa waktu) > 0>> then // lanjut main end. Aksi hanya dilakukan jika Level ADALAH 2 DAN Sisa Waktu LEBIH DARI 0.

    • OR (atau): Syarat harus benar pada salah satu sisi. Contoh: Game berakhir jika Health = 0 ATAU Waktu Habis.

    • NOT (bukan): Membalikkan kondisi.


Kontrol Waktu dan Perulangan

Pengaturan waktu dan perulangan adalah kunci untuk membuat game berjalan mulus.

  • wait [detik]: Memberi jeda waktu yang sangat penting untuk animasi, transisi level, atau mengatur kecepatan tembakan peluru.

  • timer (Blok Bawaan): Blok bawaan Scratch yang bisa mengukur waktu secara akurat sejak game dimulai. Blok ini sering digunakan untuk speedrun atau time-trial.

  • repeat until: Mengulangi aksi sampai sebuah kondisi menjadi benar. Ini sangat vital untuk logika hitung mundur waktu.

  • forever: Mengulangi aksi terus-menerus selama game berjalan. Blok ini hampir selalu digunakan di awal skrip sprite utama, misalnya untuk mengecek apakah karakter menyentuh musuh atau koin.

Kesimpulan Mini: Yuk Mulai Menerapkan!

Dengan menguasai penggunaan Variabel, Operator, dan Kontrol Waktu, kalian sudah memiliki bekal super penting untuk membuat game yang lebih hidup, dinamis, dan menantang.


Contoh Soal dan Pembahasan (Logika Kode)

Soal 1: Logika Hitung Mundur Game Tantangan: Buat logika untuk membuat waktu bermain 60 detik. Setelah waktu habis, sprite mengucapkan "Waktu Habis!".

Pembahasan: Kita menggunakan kombinasi blok set, repeat until, wait, dan change.

Langkah LogisBlok Scratch
1. Inisiasi waktu sisa di awal game

when green flag clicked dan set [Waktu Sisa v] to (60)

2. Mulai pengulangan hingga waktu mencapai 0

repeat until <(Waktu Sisa) = (0)>

3. Jeda 1 detikwait (1) seconds
4. Kurangi waktu sisa 1 poin

change [Waktu Sisa v] by (-1)

5. Setelah loop selesai (waktu=0)

say [Waktu Habis!] for (2) seconds

Soal 2: Logika Naik Level Otomatis Tantangan: Pemain harus naik Level 1 (dari 0) saat Skor mencapai 100. Setelah naik level, Skor harus diatur ulang menjadi 0, dan Level harus ditambah 1.

Pembahasan: Kita menggunakan blok kontrol if yang diletakkan di dalam loop forever agar pengecekan skor terjadi terus-menerus.

Langkah LogisBlok Scratch
1. Pengecekan skor di setiap saat

forever dan if <(Skor) > (99)> then

2. Naikkan nilai Level

change [Level v] by (1)

3. Atur ulang Skor untuk Level baru

set [Skor v] to (0)

4. Beri notifikasi

say [Level Up!] for (2) seconds

Catatan Tambahan: Logika di atas harus diletakkan dalam loop forever di salah satu sprite atau di panggung (Stage) agar pengecekan skor dilakukan secara real-time.


(Total kata untuk Bab 1: sekitar 750 kata)



ARTIKEL BAB 2: Membuat Quiz Interaktif dengan Scratch

📄 File 2: Bab 2 Membuat Quiz Interaktif.docx

BAB 2: Membuat Quiz Interaktif dengan Scratch

Tujuan Pembelajaran

Peserta didik mampu merancang dan membuat aplikasi kuis interaktif di Scratch, memahami cara kerja input pengguna dan validasi jawaban, serta mampu mengelola banyak pertanyaan menggunakan struktur data List.

Apersepsi

Pernahkah kalian menggunakan aplikasi kuis atau mengerjakan tes di sekolah secara online? Aplikasi kuis sangat interaktif karena bisa langsung memberikan umpan balik (benar atau salah) terhadap jawaban yang kita masukkan. Bagaimana komputer bisa tahu jawaban mana yang benar dan mana yang salah?

Di bab ini, kita akan membuat kuis interaktif menggunakan Scratch, di mana sprite akan bertindak sebagai "guru" yang memberikan pertanyaan, mendengarkan jawabanmu, dan memberikan penilaian secara otomatis.


Penjelasan Konsep (Teori)

Mengenal Cara Kerja Kuis Interaktif di Scratch

Kunci utama dari interaksi dalam kuis Scratch terletak pada blok dari kategori Sensing (Sensor), khususnya blok ask [pertanyaan] and wait.

  1. Bertanya (Ask): Blok ini akan membuat sprite menampilkan pertanyaan (seperti balon ucapan) dan, yang paling penting, memunculkan kotak input teks di bagian bawah layar.

  2. Menunggu (Wait): Program akan berhenti dan menunggu sampai pemain mengetikkan sesuatu ke kotak input tersebut dan menekan tombol Enter.

  3. Menerima Jawaban (Input): Setelah pemain menekan Enter, jawaban mereka akan otomatis disimpan ke dalam variabel sistem yang disebut answer. Variabel answer ini adalah "tempat penyimpanan sementara" untuk respons pemain.

Memeriksa Apakah Jawaban Benar (Validasi Jawaban)

Setelah mendapatkan jawaban dari pemain yang tersimpan di variabel answer, langkah selanjutnya adalah memvalidasi atau memeriksanya.

1. Blok Kontrol If...Then...Else

Validasi adalah proses membandingkan jawaban pemain (answer) dengan jawaban yang benar yang sudah kita tentukan. Kita menggunakan blok if...then...else (jika...maka...lainnya) dari kategori Control.

  • Logika Perbandingan: Kita memasukkan Operator Perbandingan (=) ke dalam slot kondisi blok if.

  • Contoh Sederhana Validasi:

    when [bendera hijau] clicked
        ask [Ibukota Indonesia adalah?] and wait
        if <(answer) = [Jakarta]> then  
            say [Jawabanmu Benar! +10 Skor] for (2) seconds
            change [Skor] by (10)
        else
            say [Maaf, Jawabanmu Salah.] for (2) seconds
        end
    

2. Pentingnya Konsistensi dan Operator Logika

Saat membandingkan jawaban, perhatikan masalah Case Sensitivity (Peka Huruf Besar/Kecil). Jika jawaban benarnya adalah "Jakarta" dan pemain mengetik "jakarta", Scratch akan menganggapnya salah!

Untuk mengatasi ini, kita bisa menggunakan Operator Logika or (atau) untuk menerima beberapa variasi jawaban:

    if <<(answer) = [Jakarta]> or <(answer) = [jakarta]>> then
        // ... (Logika benar)
    end

Atau, solusi yang lebih canggih adalah menggunakan blok join dan operator teks lainnya untuk mengubah jawaban pemain menjadi lowercase (huruf kecil semua) sebelum dibandingkan.


Menyusun Kuis dengan Banyak Pertanyaan

Untuk kuis yang lebih kompleks dengan 5-10 pertanyaan, kita punya dua cara:

1. Metode Berulang (Repetitive Method)

Ini adalah cara yang paling sederhana: kita ulangi blok ask dan if secara berurutan.

// Soal 1
ask [1. Berapa hasil 2+2?] and wait
if <(answer) = [4]> then ...

// Soal 2
ask [2. Siapa nama penemu Scratch?] and wait
if <(answer) = [Mitch Resnick]> then ...

Kekurangan: Jika kuis memiliki 50 pertanyaan, skrip akan menjadi sangat panjang dan sulit diedit (maintenance).

2. (Bonus Level) Menggunakan List untuk Pertanyaan dan Jawaban

Untuk kuis berskala besar, kita harus menggunakan struktur data yang disebut List (Daftar). List memungkinkan kita menyimpan banyak data (teks atau angka) dalam satu variabel terstruktur.

  • List sebagai Basis Data:

    • Buat List 1: Pertanyaan (Isi dengan "2+2", "Ibukota Indonesia", dll.)

    • Buat List 2: Jawaban Benar (Isi dengan "4", "Jakarta", dll.)

  • Menggunakan Variabel Penunjuk (Index): Kita akan menggunakan variabel tunggal, misalnya Nomor Soal, yang nilainya akan bertambah 1 setiap selesai menjawab. Variabel ini bertindak sebagai indeks yang menunjuk item mana di List yang harus diambil.

Logika Kuis Berbasis List (List-Based Quiz)

  1. Inisiasi: set [Nomor Soal v] to (1) dan set [Skor v] to (0).

  2. Perulangan: Gunakan blok repeat until <(Nomor Soal) > (length of [Pertanyaan])> untuk mengulangi proses sebayak jumlah soal di List.

  3. Tanya Soal:

    • Kita tidak lagi menggunakan pertanyaan yang ditulis langsung.

    • Kita menggunakan blok ask <(item (Nomor Soal) of [Pertanyaan])> and wait.

    • Ini akan mengambil item pada indeks Nomor Soal dari List Pertanyaan.

  4. Validasi Cerdas:

    • Bandingkan jawaban pemain (answer) dengan item List Jawaban Benar.

    • if <(answer) = <(item (Nomor Soal) of [Jawaban Benar])>> then ...

  5. Lanjut Soal: Setelah validasi, pastikan untuk change [Nomor Soal] by (1) untuk pindah ke soal berikutnya.

Keuntungan List: Dengan 50 soal, skrip kalian akan tetap pendek dan rapi. Cukup ubah isi List tanpa menyentuh kode!


Contoh Kasus atau Ilustrasi

Ilustrasi: Kuis Pahlawan Nasional Kita akan membuat kuis yang menguji pengetahuan tentang 5 Pahlawan Nasional Indonesia.

List Data

List Pertanyaan (Index)List Jawaban Benar (Index)
"Siapa bapak proklamator?" (1)"Soekarno" (1)
"Siapa pahlawan dari Sumatera Utara?" (2)"Sisingamangaraja" (2)
"Siapa pencipta lagu Indonesia Raya?" (3)"Wage Rudolf Supratman" (3)

Contoh Skrip Utama (Menggunakan List)

Code snippet
when green flag clicked
    set [Nomor Soal v] to (1)
    set [Skor v] to (0)
    repeat until <(Nomor Soal) > (length of [Pertanyaan])>
        // Tampilkan Pertanyaan ke-Nomor Soal
        ask <(item (Nomor Soal) of [Pertanyaan])> and wait
        
        // Cek Jawaban
        if <(answer) = <(item (Nomor Soal) of [Jawaban Benar])>> then
            say [Selamat! Kamu Benar!] for (1) seconds
            change [Skor v] by (10)
        else
            say [Maaf, Jawaban Salah. Jawabannya adalah:] for (1) seconds
            say <(item (Nomor Soal) of [Jawaban Benar])> for (2) seconds
        end
        
        // Pindah ke soal berikutnya
        change [Nomor Soal v] by (1)
    end
    say <(join [Kuis Selesai! Skor Akhirmu: ] (Skor))>

Tugas Proyek

Untuk menguasai materi ini, cobalah proyek-proyek berikut:

  1. Kuis Kilat Berwaktu: Gabungkan konsep Timer dari Bab 1 dengan kuis List ini. Beri batas waktu 10 detik untuk setiap soal. Jika 10 detik habis, otomatis pindah ke soal berikutnya dan skor tidak bertambah. Gunakan blok wait dan reset timer.

  2. Kuis True/False: Buat kuis yang hanya memiliki dua tombol (A. Benar dan B. Salah). Alih-alih menggunakan blok ask and wait, gunakan blok pesan (broadcast) saat tombol (sprite) ditekan.

    • Ketika sprite Tombol A diklik, kirim pesan "Jawaban A".

    • Skrip utama akan menunggu pesan tersebut, lalu melakukan validasi.

Dengan menguasai bab ini, Anda tidak hanya bisa membuat kuis, tetapi juga sistem tanya jawab, chatbot sederhana, atau bahkan simulasi interaktif di Scratch!


(Total kata untuk Bab 2: sekitar 750 kata)


(Total keseluruhan kata: sekitar 1500 kata lebih)

Comments

Popular posts from this blog

soal informatika kelas 8 Prita Aisyah Anindita Wijayanti

pembelajaran coding dan ai di smp labschool jakarta