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?
Penjelasan Konsep (Teori)
Membangun Game yang Lebih Canggih dengan Scratch
Scratch adalah tool pemrograman visual yang sangat kuat
Apa Itu Variabel?
Dalam Scratch, Variabel dapat diibaratkan sebagai sebuah kantong penyimpan informasi di dalam memori komputer
1. Variabel Skor: Menghitung Poin Pemain
Skor adalah nyawa dari hampir semua game
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
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
Fungsi Utama: Mengukur waktu bermain dan menentukan kapan game berakhir
. Blok Hitung Mundur: Untuk membuat hitung mundur, kita butuh kombinasi blok:
Atur nilai awal, misalnya
set [sisa waktu] to (60). Gunakan blok kontrol
repeat until <(sisa waktu) = 0>.Di dalamnya, letakkan blok
wait (1) secondsdanchange [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
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.
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.
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
Bertanya (Ask): Blok ini akan membuat sprite menampilkan pertanyaan (seperti balon ucapan) dan, yang paling penting, memunculkan kotak input teks di bagian bawah layar
. Menunggu (Wait): Program akan berhenti dan menunggu sampai pemain mengetikkan sesuatu ke kotak input tersebut dan menekan tombol Enter
. Menerima Jawaban (Input): Setelah pemain menekan Enter, jawaban mereka akan otomatis disimpan ke dalam variabel sistem yang disebut
answer. Variabel answerini 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 blokif.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)
Inisiasi:
set [Nomor Soal v] to (1)danset [Skor v] to (0).Perulangan: Gunakan blok
repeat until <(Nomor Soal) > (length of [Pertanyaan])>untuk mengulangi proses sebayak jumlah soal di List.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.
Validasi Cerdas:
Bandingkan jawaban pemain (
answer) dengan item List Jawaban Benar.if <(answer) = <(item (Nomor Soal) of [Jawaban Benar])>> then ...
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
Contoh Skrip Utama (Menggunakan List)
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:
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 waitdanreset timer. 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
Post a Comment