Rangkuman Bab 1 Buku AI Informatika

Pengembangan Game Scratch Lanjutan

Pengembangan game di Scratch sering dimulai dengan konsep sederhana, seperti menggerakkan karakter atau membuat objek memantul. Namun, agar game menjadi lebih menarik, kompleks, dan menantang, diperlukan pengembangan lanjutan dengan menambahkan level, skor, timer, variabel, serta memanfaatkan operator matematika, logika, dan kontrol perulangan. Pemahaman konsep-konsep ini menjadi dasar penting untuk membuat game 2D sederhana yang menyerupai game profesional.

1. Mengapa Pengembangan Scratch Lanjutan itu Penting?

Game yang hanya memiliki satu adegan dan tanpa tujuan jelas biasanya cepat membosankan. Dengan menambahkan variabel seperti nyawa, skor, dan waktu, pemain dapat merasakan sensasi kompetisi dan tantangan. Dengan membangun level, game juga menjadi lebih panjang dan terus berkembang. Pada tahap lanjutan, pengembang juga belajar mengatur algoritma, membuat sistem deteksi tabrakan yang konsisten, dan memanfaatkan logika matematika untuk membuat perilaku karakter yang lebih realistis.

Scratch memang dirancang ramah pemula, tetapi platform ini cukup kuat untuk membuat game seperti:

  • platformer (melompat & rintangan),

  • runner game,

  • shooter sederhana,

  • puzzle berbasis logika,

  • game edukasi interaktif.

Untuk mencapai kualitas tersebut, konsep lanjutan harus dikuasai.


2. Apa itu Variabel dalam Scratch?

Variabel adalah wadah untuk menyimpan data. Dalam game, variabel sangat penting untuk menyimpan:

  • Skor pemain

  • Waktu tersisa

  • Level permainan

  • Jumlah nyawa

  • Kecepatan musuh

  • Jumlah objek yang dikumpulkan

Variabel bersifat dinamis, artinya nilainya dapat berubah selama permainan berlangsung. Misalnya, setiap kali pemain mengambil koin, skor bertambah. Atau ketika timer berkurang setiap detik.

2.1 Jenis Variabel di Scratch

Di Scratch terdapat 2 jenis variabel:

  1. For all sprites (untuk semua sprite)
    Contoh: skor, timer, level.
    Nilainya bisa dilihat dan digunakan oleh semua objek.

  2. For this sprite only (khusus satu sprite)
    Contoh: kecepatan musuh tertentu, status hidup/mati, mode animasi.

Jenis ini berguna untuk membuat AI sederhana pada musuh atau menyimpan data khusus untuk satu karakter.


3. Variabel Penting dalam Game: Skor, Level, dan Timer

3.1 Variabel Skor

Skor biasanya digunakan untuk mengukur keberhasilan pemain. Cara kerjanya:

  • Skor dimulai dari nol.

  • Setiap aksi tertentu meningkatkan nilai skor.

  • Skor bisa dipakai sebagai syarat naik level, memicu animasi khusus, atau sekadar ditampilkan.

Contoh penggunaan:

ketika bendera diklik set skor ke 0

Lalu setiap kali pemain mendapatkan item:

ubah skor sebesar 1

Skor juga dapat menjadi indikator kesulitan: semakin tinggi skor, semakin cepat musuh bergerak.

3.2 Variabel Level

Level berfungsi mengatur perkembangan permainan. Pengembang bisa membuat aturan seperti:

  • Level naik setiap skor tertentu tercapai.

  • Level mengubah warna latar, jumlah musuh, atau kecepatan permainan.

  • Level mengubah pola tantangan.

Contoh pengaturan level:

jika skor > 10 maka ubah level menjadi 2

Pada level 2, musuh bisa bergerak lebih cepat:

jika level = 2 maka set kecepatan musuh ke 7

Level membuat game lebih dinamis dan meningkatkan replayability.

3.3 Variabel Timer

Timer digunakan untuk membuat batas waktu, challenge, dan pacing game. Biasanya:

  • Timer di-set ke angka tertentu (misalnya 60 detik).

  • Setiap detik timer berkurang 1.

  • Jika timer 0, permainan berakhir.

Contoh skrip timer:

set timer ke 60 ulang selamanya tunggu 1 detik ubah timer sebesar -1 jika timer = 0 maka broadcast GameOver stop all

Timer juga bisa digunakan untuk:

  • cooldown serangan,

  • respawn musuh,

  • menghitung durasi power-up.


4. Block-Block Variabel yang Wajib Dikuasai

Untuk memakai variabel secara efektif, beberapa block penting harus dipahami:

4.1 Block Dasar Variabel

  1. set [variabel] to [nilai]
    Mengatur nilai awal, biasanya saat game dimulai.

  2. change [variabel] by [nilai]
    Mengubah nilai secara bertahap. Cocok untuk skor, timer, atau kecepatan.

  3. show variable / hide variable
    Mengatur apakah variabel ditampilkan di layar.

4.2 Block kondisi yang sering digunakan dengan variabel

  • if <variabel > nilai> then

  • repeat until <variabel = nilai>

  • wait until <variabel < 5>

Variabel sangat erat kaitannya dengan kontrol logika, sehingga penggunaannya harus dipadukan dengan blok kontrol dan operator.


5. Operator Matematika & Logika: Otak dari Game Scratch

Operator adalah blok yang mengolah nilai—baik nilai angka, teks, maupun kondisi logis. Tanpa operator, game tidak bisa mengambil keputusan atau melakukan perhitungan.

5.1 Operator Matematika

Scratch menyediakan operator:

  • Penjumlahan (+)

  • Pengurangan (-)

  • Perkalian (*)

  • Pembagian (/)

  • Modulo (sisa pembagian)

  • Random (angka acak)

Contoh penggunaan:

  • Menentukan posisi musuh secara acak
    set x to (pick random -200 to 200)

  • Meningkatkan kecepatan musuh secara bertahap
    set speed to (speed + 0.5)

  • Mengatur arah pantulan bola
    point in direction ((direction + 180) mod 360)

Operator matematika memungkinkan musuh bergerak dinamis, objek memantul, hingga membuat efek fisika sederhana.

5.2 Operator Logika

Operator logika menciptakan kondisi yang membuat game “berpikir”. Operator ini meliputi:

  • AND — dua kondisi harus benar

  • OR — salah satu saja cukup

  • NOT — kebalikan kondisi

Contoh:

if < touching enemy AND score > 5 > then broadcast Hurt

Logika ini memungkinkan game:

  • mendeteksi tabrakan,

  • memutuskan kapan level naik,

  • mengecek status pemain (misal sedang lompat atau tidak),

  • menghitung kondisi menang/kalah,

  • mengatur AI musuh.

5.3 Operator Perbandingan

  • =

  • >

  • <

Contoh sangat umum:

if < timer = 0 > then game over

Dengan operator ini, variabel bisa digunakan sebagai patokan untuk mengambil keputusan dalam game.


6. Kontrol Waktu dan Perulangan

Block kontrol menentukan alur permainan. Dua komponen penting di dalamnya: waktu dan perulangan.

6.1 Manajemen Waktu

Scratch memiliki tools untuk mengatur waktu:

  • wait 1 seconds

  • timer (stopwatch bawaan scratch)

Manajemen waktu penting untuk:

  • membuat jeda antar aksi (misal delay serangan),

  • mengurangi timer setiap detik,

  • membuat event berdasarkan waktu (misal musuh muncul tiap 3 detik).

Pengembang sering menggabungkan “wait” dengan variabel timer untuk hasil lebih fleksibel.

6.2 Perulangan (Loop)

Perulangan mengulangi perintah secara terus-menerus atau sampai kondisi tertentu tercapai.

Jenis perulangan:

  1. forever
    Digunakan untuk aksi terus-menerus seperti animasi, pergerakan, dan deteksi tabrakan.

  2. repeat [n]
    Mengulang jumlah tertentu; cocok untuk animasi kecil dan efek visual.

  3. repeat until <kondisi>
    Berguna untuk menunggu sesuatu terjadi, misalnya:

    repeat until <nyawa = 0> ubah skor sebesar 1
  4. wait until <kondisi>
    Lebih simpel untuk menunggu event tertentu.

Game modern di Scratch biasanya terdiri dari beberapa loop paralel:

  • Loop pergerakan karakter

  • Loop AI musuh

  • Loop timer

  • Loop animasi

  • Loop deteksi game-over

Gabungan loop inilah yang membuat game terasa hidup.


7. Membangun Game yang Lebih Canggih dengan Scratch

Untuk meningkatkan level game Scratch, beberapa teknik berikut perlu digunakan:

7.1 Sistem Game Start, Main Game, dan Game Over

Game profesional memiliki tiga fase:

  1. Start Screen

  2. Gameplay

  3. Game Over Screen

Scratch dapat mewujudkan ini menggunakan broadcast.

Contoh:

ketika bendera diklik broadcast start
ketika aku menerima [start] tampilkan panah start dan tombol
ketika aku menerima [gameover] tampilkan layar game over stop all

Dengan sistem ini, game terasa lebih rapi dan terkesan “profesional”.

7.2 Sistem Musuh dengan AI Dasar

Musuh bisa:

  • bergerak acak,

  • mengejar pemain,

  • memantul,

  • menembak,

  • merubah kecepatan berdasarkan level.

Contoh AI musuh mengejar pemain:

point towards [Pemain] move (kecepatan) steps

Jika level meningkat:

set kecepatan to (level * 2)

7.3 Fisika Sederhana: Gravitasi dan Lompatan

Di game platformer, gravitasi dapat dibuat menggunakan variabel “kecepatanY”.

Contoh:

set kecepatanY ke -10 repeat until <menyentuh tanah> change y by (kecepatanY) change kecepatanY by -1 wait 0.02

Ini menghasilkan lompatan realistis.

7.4 Sistem Power-Up

Power-up adalah elemen kecil yang membuat game lebih seru.

Contoh: Power-up kecepatan 10 detik.

when touching [powerup] set speed to 10 wait 10 seconds set speed to 5

Dengan variabel dan timer, power-up bisa duratif.

7.5 Transisi Level Otomatis

Jika skor mencapai angka tertentu, level bisa naik.

if <skor >= 10> then change level by 1 broadcast LevelUp

Saat level naik:

  • latar berubah,

  • jumlah musuh bertambah,

  • kecepatan meningkat.


8. Perpaduan Semua Konsep Menjadi Satu Game

Game Scratch lanjutan biasanya membutuhkan:

  1. Variabel: skor, level, timer, kecepatan, nyawa

  2. Operator: perbandingan, random, matematika

  3. Kontrol: loop, kondisi, timer

  4. Broadcast: perpindahan layar/scene

  5. AI musuh & fisika sederhana

  6. Event interaktif

Contoh alur lengkap:

  1. Bendera diklik → variabel reset

  2. Timer mulai → berkurang setiap detik

  3. Pemain bergerak → kontrol keyboard

  4. Musuh bergerak acak → operator random

  5. Skor naik setiap item diambil

  6. Jika skor tertentu → level naik

  7. Level naik → kecepatan musuh bertambah

  8. Timer habis → game over

Dengan logika seperti ini, game Scratch bisa terasa sangat solid dan menyenangkan.

Comments

Popular posts from this blog

Soal PG Informatika Bab 1-5

Rangkuman Bab 5

Rangkuman Bab 3