Kamis, 09 Juli 2026

Buku Lembar Projek Scratch Fase B

Modul Lembar Kerja Siswa (LKS) ini disusun khusus untuk kelas 3 dan 4 SD. Pada tingkatan ini, anak-anak sudah siap menerima logika yang lebih terstruktur. Tetap menggunakan pendekatan 15 persen teori dan 85 persen praktik, modul ini akan memperkenalkan konsep menengah seperti Koordinat (X dan Y), Variabel (Skor/Waktu), Kondisi bersyarat (If-Then), dan Pesan (Broadcast) melalui pembuatan game dan simulasi interaktif.

Buku Lembar Kerja:
Logika & Kreativitas Digital dengan Scratch

Proyek 1:
Bergerak dengan Tombol Panah

Konsep Dasar:
Mengontrol pergerakan karakter secara presisi menggunakan sumbu X (kiri-kanan) dan Y (atas-bawah).

Blok Utama:
When (right arrow) key pressed, Change x by (10), Change y by (10).

Langkah Praktik:

  1. Masukkan blok When (right arrow) key pressed, lalu pasangkan Change x by (10).
  2. Masukkan blok When (left arrow) key pressed, pasangkan Change x by (-10).
  3. Masukkan blok When (up arrow) key pressed, pasangkan Change y by (10).
  4. Masukkan blok When (down arrow) key pressed, pasangkan Change y by (-10).

Tantangan Kreatif:
Tambahkan blok Point in direction agar karakter menghadap ke arah yang dituju saat berjalan.

Link Projek: Projek B1 Kendali gerak


Proyek 2:
Pesan Rahasia (Broadcast)

Konsep Dasar:
Menggunakan Broadcast untuk membuat satu karakter memicu reaksi pada karakter lain.

Blok Utama:
Broadcast (pesan1), When I receive (pesan1).

Langkah Praktik:

  1. Tambahkan karakter Kucing dan Anjing.
  2. Pada Kucing: Pasangkan blok bendera hijau dengan Say (Halo Anjing!) for 2 secs, lalu tambahkan Broadcast (pesan1).
  3. Pada Anjing: Tarik blok When I receive (pesan1) dan pasangkan Say (Halo Kucing!) for 2 secs.

Tantangan Kreatif:
Buat Anjing membalas pesan dan mengirimkan Broadcast (pesan2) agar Kucing melompat kaget.

Link Projek: Projek B2


Proyek 3:
Kuis Matematika Sederhana

Konsep Dasar:
Menyimpan input pengguna dan menggunakan kondisi If-Then-Else.

Blok Utama:
Ask (Berapa 5+5?) and wait, If (answer) = 10 then... else....

Langkah Praktik:

  1. Pilih karakter Guru.
  2. Tarik bendera hijau, tambahkan blok biru muda Ask (Berapa 5 + 5?) and wait.
  3. Pasangkan blok oranye If ... then ... else.
  4. Di dalam celah If, masukkan blok hijau (answer) = (10).
  5. Di bagian Then, pasangkan Say (Benar!). Di bagian Else, pasangkan Say (Salah, coba lagi!).

Tantangan Kreatif:
Tambahkan suara tepuk tangan jika jawaban benar, dan suara "boing" jika salah.

Link Projek: Projek B3


Proyek 4:
Kalkulator Poin (Pengenalan Variabel)

Konsep Dasar:
Membuat Variabel untuk menyimpan data angka yang bisa berubah-ubah.

Blok Utama:
Make a Variable (Skor), Change (Skor) by (1).

Langkah Praktik:

  1. Klik kategori Variables, pilih Make a Variable, dan beri nama "Skor".
  2. Pilih karakter Koin.
  3. Tarik bendera hijau, pasangkan Set (Skor) to (0).
  4. Tarik blok When this sprite clicked.
  5. Pasangkan blok oranye Change (Skor) by (1) dan Start sound (Coin).

Tantangan Kreatif:
Buat koin berpindah tempat dengan Go to random position setiap kali diklik.

Link Projek: 


Proyek 5:
Game Labirin (Maze) Part 1

Konsep Dasar:
Mendeteksi tabrakan dengan warna (Sensor Warna).

Blok Utama:
If (touching color [hitam]?) then, Move (-10) steps.

Langkah Praktik:

  1. Gambar jalur labirin sederhana dengan garis hitam di latar belakang.
  2. Gunakan kode pergerakan panah (dari Proyek 1) pada karakter Kumbang.
  3. Di bawah blok bendera hijau, tambahkan Forever.
  4. Masukkan If (touching color [hitam]) then di dalam Forever.
  5. Masukkan blok mundur Move (-10) steps ke dalam If agar kumbang terpantul saat menabrak dinding hitam.

Tantangan Kreatif:
Tambahkan blok Go to x: y: di awal permainan agar kumbang selalu mulai dari titik Start.

Link Projek: 


Proyek 6:
Observatorium Angkasa

Konsep Dasar:
Simulasi pergerakan objek luar angkasa dengan ukuran dan posisi berbeda.

Blok Utama:
Set size to (pick random), Glide.

Langkah Praktik:

  1. Ganti latar belakang dengan Galaxy atau Stars.
  2. Tambahkan karakter Planet atau Bintang.
  3. Tambahkan blok bendera hijau, lalu Forever.
  4. Masukkan Go to random position.
  5. Tambahkan Set size to (pick random 20 to 100) %.
  6. Tambahkan Glide (2) secs to random position.

Tantangan Kreatif:
Tambahkan beberapa jenis planet dan buat mereka bergerak dengan kecepatan orbit yang berbeda-beda.

Link Projek: 


Proyek 7:
Waktu Mundur (Timer)

Konsep Dasar:
Membuat sistem hitung mundur untuk membatasi waktu permainan.

Blok Utama:
Variabel Waktu, Wait (1) secs, Change (Waktu) by (-1).

Langkah Praktik:

  1. Buat variabel baru bernama "Waktu".
  2. Tarik bendera hijau, pasangkan Set (Waktu) to (30).
  3. Tambahkan Repeat (30).
  4. Di dalam Repeat, masukkan Wait (1) seconds, lalu Change (Waktu) by (-1).
  5. Di bawah blok Repeat, tambahkan Stop all untuk mengakhiri game.

Tantangan Kreatif:
Putar suara alarm atau bel panjang ketika waktu menyentuh angka 0.

Link Projek: 


Proyek 8:
Kelelawar Menghindar

Konsep Dasar:
Mengontrol satu sumbu (Y) menggunakan pergerakan mouse.

Blok Utama:
Set y to (mouse y).

Langkah Praktik:

  1. Pilih karakter Kelelawar (Bat).
  2. Tarik bendera hijau, lalu Forever.
  3. Masukkan blok biru Set y to (mouse y).
  4. Gerakkan mouse ke atas dan ke bawah; kelelawar hanya akan bergerak vertikal mengikuti mouse.

Tantangan Kreatif:
Tambahkan objek rintangan yang bergerak dari kanan ke kiri yang harus dihindari oleh kelelawar.

Link Projek: 


Proyek 9:
Studio Grafis Hitam Putih

Konsep Dasar:
Mengatur intensitas brightness untuk membuat karya seni bergaya siluet atau cetak balok (hitam putih).

Blok Utama:
Set brightness effect to (-100), Stamp.

Langkah Praktik:

  1. Aktifkan ekstensi Pen.
  2. Tambahkan beberapa karakter seperti Pohon, Bangunan, atau Hewan.
  3. Pada setiap karakter, tambahkan bendera hijau dan pasangkan Set brightness effect to (-100) agar berubah menjadi siluet hitam pekat.
  4. Tambahkan blok When this sprite clicked, lalu pasangkan Stamp.

Tantangan Kreatif:
Susun berbagai karakter siluet di layar dan klik mereka satu per satu untuk merancang sebuah poster pemandangan hitam putih.

Link Projek: 


Proyek 10:
Piano Virtual

Konsep Dasar:
Memetakan input keyboard komputer menjadi nada musik.

Blok Utama:
Ekstensi Music, Play note (60) for (0.25) beats.

Langkah Praktik:

  1. Aktifkan ekstensi Music.
  2. Gambar kotak persegi panjang sebagai tuts piano.
  3. Tarik blok kuning When (a) key pressed.
  4. Pasangkan blok hijau Play note (60) for (0.25) beats.
  5. Gandakan kode tersebut untuk tombol (s), (d), (f) dan ubah nadanya menjadi 62, 64, 65.

Tantangan Kreatif:
Tambahkan efek perubahan warna pada tuts saat tombol keyboard ditekan.

Link Projek: 


Proyek 11:
Kloning (Hujan Apel)

Konsep Dasar:
Memperbanyak karakter di layar tanpa harus menduplikasi sprite secara manual.

Blok Utama:
Create clone of (myself), When I start as a clone.

Langkah Praktik:

  1. Pilih karakter Apel.
  2. Tambahkan bendera hijau, Forever, Wait (1) seconds, dan Create clone of (myself).
  3. Tarik blok baru: When I start as a clone.
  4. Di bawahnya pasangkan Go to random position, lalu Set y to (150).
  5. Tambahkan Forever dan Change y by (-5) agar apel turun seperti hujan.

Tantangan Kreatif:
Tambahkan Delete this clone jika apel menyentuh ujung bawah layar agar permainan tidak menjadi berat.

Link Projek: 


Proyek 12:
Lompat Rintangan (Game Dino)

Konsep Dasar:
Menggunakan Glide untuk melompat melewati rintangan yang bergerak.

Blok Utama:
Glide (0.3) secs to x: y:.

Langkah Praktik:

  1. Pilih karakter Dinosaurus. Letakkan di sisi kiri layar.
  2. Tarik When (space) key pressed.
  3. Tambahkan Glide (0.3) secs to x: (-150) y: (50) (Lompat ke atas).
  4. Tambahkan Glide (0.3) secs to x: (-150) y: (-100) (Turun kembali).

Tantangan Kreatif:
Buat karakter kaktus atau batu yang terus-menerus bergerak dari kanan ke kiri sebagai rintangan.

Link Projek: 


Proyek 13:
Ganti Kostum Saat Menabrak

Konsep Dasar:
Merespons interaksi antar sprite dengan perubahan visual.

Blok Utama:
If (touching [Kucing]?) then, Switch costume to.

Langkah Praktik:

  1. Tambahkan karakter Kucing dan Mangkuk Makanan (yang memiliki 2 kostum: penuh dan kosong).
  2. Pada Mangkuk, tambahkan bendera hijau, Switch costume to (penuh), lalu Forever.
  3. Di dalam Forever, masukkan If (touching [Kucing]?) then.
  4. Di dalam If, masukkan Switch costume to (kosong) dan Play sound (Chomp).

Tantangan Kreatif:
Kendalikan Kucing dengan mouse untuk memakan makanan yang ada di mangkuk.

Link Projek: 


Proyek 14:
Percakapan Dua Karakter (Timing)

Konsep Dasar:
Mengatur durasi waktu agar dua karakter bisa berbicara secara bergantian tanpa bertabrakan.

Blok Utama:
Say () for (2) secs, Wait (2) secs.

Langkah Praktik:

  1. Pada Karakter A: Tambahkan bendera hijau, pasangkan Say (Halo, apa kabar?) for (2) secs.
  2. Tambahkan Wait (2) secs.
  3. Pasangkan Say (Ayo kita main!) for (2) secs.
  4. Pada Karakter B: Tambahkan bendera hijau, pasangkan Wait (2) secs (untuk mendengarkan A dulu).
  5. Pasangkan Say (Halo! Kabarku baik.) for (2) secs.

Tantangan Kreatif:
Tambahkan latar belakang sekolah dan buat percakapan tentang pelajaran favorit mereka.

Link Projek: 


Proyek 15:
Simulasi Hujan Meteor

Konsep Dasar:
Menggabungkan kloning, acak (random), dan rotasi (turn).

Blok Utama:
Create clone, Turn (15) degrees.

Langkah Praktik:

  1. Pilih karakter Batu (Rocks).
  2. Buat skrip kloning setiap 0.5 detik (seperti pada Proyek 11).
  3. Di bawah blok When I start as a clone, tambahkan blok Forever.
  4. Di dalam Forever, masukkan Change y by (-10) dan Turn right (15) degrees.
  5. Meteor kini akan berjatuhan sambil berputar-putar.

Tantangan Kreatif:
Buat ukuran setiap kloning meteor berbeda-beda secara acak saat muncul di atas layar.

Link Projek: 


Proyek 16:
Peliharaan Virtual (Tamagotchi)

Konsep Dasar:
Menggunakan variabel untuk memantau status seperti rasa lapar atau energi.

Blok Utama:
Variabel Lapar, If (Lapar) < 0.

Langkah Praktik:

  1. Buat Variabel "Lapar".
  2. Pada karakter Hewan, atur Set (Lapar) to (10) saat bendera hijau diklik.
  3. Tambahkan Forever, Wait (2) seconds, dan Change (Lapar) by (-1) agar ia semakin lapar seiring waktu.
  4. Tambahkan tombol Makanan. Saat Makanan diklik: Broadcast (makan).
  5. Kembali ke Hewan: When I receive (makan), pasangkan Change (Lapar) by (2) dan suara mengunyah.

Tantangan Kreatif:
Jika variabel "Lapar" menyentuh angka 0, ubah kostum hewan menjadi sedih atau pingsan.

Link Projek: 


Proyek 17:
Mobil Balap (Kecepatan)

Konsep Dasar:
Meningkatkan pergerakan secara eksponensial berdasarkan intensitas klik.

Blok Utama:
Variabel Kecepatan, Change x by (Kecepatan).

Langkah Praktik:

  1. Buat Variabel "Kecepatan". Letakkan Mobil Balap di kiri layar.
  2. Tarik bendera hijau, Set (Kecepatan) to (0), lalu Forever.
  3. Di dalam Forever, pasangkan Change x by (Kecepatan).
  4. Tarik blok terpisah: When (right arrow) key pressed, pasangkan Change (Kecepatan) by (1).

Tantangan Kreatif:
Tambahkan blok di dalam Forever: If (Kecepatan) > 0 then Change (Kecepatan) by (-0.1) agar mobil otomatis melambat jika tombol tidak ditekan (efek gesekan/rem alami).

Link Projek: 


Proyek 18:
Sensor Sentuh Batas Layar

Konsep Dasar:
Mendeteksi garis tepi layar spesifik (bukan sekadar pantulan biasa).

Blok Utama:
If (x position) > 230.

Langkah Praktik:

  1. Pilih karakter Bola. Buat bola bergerak maju menggunakan Move (10) steps di dalam Forever.
  2. Di dalam Forever, tambahkan If (x position) > 230 then. (Ini adalah batas kanan layar).
  3. Masukkan Set x to (-230) ke dalam If.
  4. Bola sekarang akan menembus batas kanan dan muncul kembali dari batas kiri layar (efek teleport)
Tantangan Kreatif:
Terapkan logika yang sama untuk sumbu Y, agar bola tembus dari atas ke bawah layar.

Link Projek: 

Proyek 19:
Senter di Ruang Gelap

Konsep Dasar:
Menggunakan ilusi visual dengan menggabungkan ukuran layar dan kursor mouse.

Blok Utama:
Go to (mouse-pointer).

Langkah Praktik:

  1. Ganti latar belakang menjadi gambar pemandangan.
  2. Buat Sprite baru: gambar kotak hitam besar yang menutupi seluruh layar, lalu hapus/buat lubang lingkaran transparan tepat di tengahnya.
  3. Tarik bendera hijau pada Sprite kotak hitam ini, lalu pasangkan Forever.
  4. Masukkan Go to (mouse-pointer) di dalam Forever.
  5. Klik bendera hijau. Lingkaran transparan akan berfungsi seperti senter yang menerangi latar belakang gelap.

Tantangan Kreatif:
Sembunyikan karakter Hantu kecil di latar belakang yang harus dicari menggunakan "senter" ini.

Link Projek: 


Proyek 20:
Game Tangkap Benda (Proyek Akhir)

Konsep Dasar:
Menggabungkan Pergerakan, Kloning, Variabel Skor, dan Timer menjadi satu game utuh.

Langkah Praktik:

  1. Pemain (Mangkok): Kendalikan dengan tombol panah kiri dan kanan (Sumbu X saja).
  2. Benda Jatuh (Apel): Buat skrip kloning yang menjatuhkan apel dari atas layar ke bawah.
  3. Skor: Jika Mangkok menyentuh Apel, tambahkan Change (Skor) by (1), lalu hapus klon tersebut (Delete this clone).
  4. Timer: Set hitung mundur 30 detik. Hentikan semua (Stop all) jika waktu habis.

Tantangan Kreatif:
Tambahkan rintangan berupa "Batu" yang jatuh. Jika mangkuk menangkap batu, Change (Skor) by (-1).

Link Projek: 


Buku Lembar Projek Scratch Fase A

Apa Itu Scratch?

Scratch aplikasi berbahasa pemrograman berbasis visual yang interaktif dan fun, lewat scratch kita bisa membuat animasi, permainan, dan kreasi yang lain. Scratch memudahkan programmer dalam membuat program tanpa harus khawatir dengan penulisan sintaksis, karena tidak perlu menulis script. hanya dengan drag and drop blok blok kode yang sudah di sediakan, kemudian di susun dan membentuk sebuah logika yang bisa di jalankan sehingga menjadi program.

Bahasa pemrograman ini di buat oleh MIT MEDIA LAB dari Massachusetts Institute of Technology yang di rancang untuk pembelajaran anak umur 8 sampai 16 tahun. meskipun begitu, setiap orang dari segala umur bisa menggunakan scratch sebagai media pembelajaran. Bahasa pemrograman ini bisa menjadi pilihan programer pemula untuk mengasah computational thinking.


Download Scratch

Bagaimana cara menggunakan scratch? ada dua versi yang tersedia, versi online dan offline. Jika kalian ingin menggunakan versi online, kalian hanya memerlukan browser dan koneksi internet. click disini ( https://scratch.mit.edu/ ) untuk membuka scratch versi online (saat ini Scratch versi 3), kalian sebaiknya membuat akun terlebih dahulu, setelah itu cek e-mail yang didaftarkan untuk memverifikasi akun Anda agar bisa berjalan sempurna. Setelah itu pilih menu “create” untuk membuat projek. Tampilan akan nampak seperti di bawah ini.


jika ingin menggunakan versi offline, kalian perlu mendownload Scratch versi offline yang dapat digunakan kapan saja dan dimana saja tanpa memerlukan koneksi internet. click disini ( https://scratch.mit.edu/download/  ) untuk mendownload. Lakukan instalasi seperti biasa sampai selesai. Maka tampilan nya akan seperti gambar di bawah ini.


Scratch Development Environment

Berkenalan dengan lingkungan pengembangan scratch! tempat di mana membuat program kreatif menggunakan logika pemrograman tanpa perlu pusing dengan syntax error.

Apa saja fungsi fungsi yang terdapat di dalam scratch? 


Sprite


Sprite 1: Dengan berbagai fitur pendukungannya Code, Costume, Sounds


Sprite Default

Sprite adalah gambar atau objek yang bisa di program. pada cat (gambar kucing) adalah sprite default. Sprite ini akan berisikan blok blok perintah yang di rancang agar menjadi interaktif. seperti bergerak, memiliki suara, dan lain lain.

Untuk menambahkan sprite dengan cara menekan tombol berikut ini dengan berbagai pilihan sprite yang ada di dalamnya.


Library Sprite

Kalian juga bisa mengganti dan menambah sprite di menu “new sprite” dan pilih “choose sprite from library”. di sana akan ada banyak pilihan sprite yang telah disediakan scratch. Atau bisa juga menggunakan sprite di luar scratch. Pilih menu “upload sprite from file” yang kamu punya di komputer.

 

Menu isi dari library Sprite

Backdrop dan Stage

Backdrop adalah gambar latar belakang pada canvas. backdrop bisa di ganti di bagian “Stage” yang terletak sebelah kiri dari tempat sprite. lihat dibawah ini          

Stage/panggung dapat ditambahkan dengan menekan tombol yang ada di bawah Stage

Pilihan isi menu Stage

pada menu “new backdrop” kalian bisa pilih backdrop yang sudah di sediakan scratch, yaitu di “choose backdrop from library” lihat atau bisa juga memilih backdrop yang ada di luar scratch. pilih “upload backdrop from file”.

Stage dapat di isi blok blok perintah, kecuali block motion.

Tampak kategori blok motion tidak ada isinya

Scripts adalah kumpulan blok blok perintah yang akan kalian gunakan untuk membuat program. masing masing blok memiliki fungsi masing-masing.           

Contoh Block Motion

Motion Blocks di gunakan untuk menggerakan sprite, seperti perintah “move 10 step”. perintah tersebut menggerakan sprite sebanyak 10 langkah.

Contoh Block Looks

Looks Blocks digunakan pada segala sesuatu yang berhubungan dengan tampilan pada program. misalnya mengganti kostum pada sprite atau mengganti backdrop.

Contoh Block Sound

Sound Blocks digunakan untuk memberikan suara pada sprite ataupun stage. seperti contoh memberikan suara pada kucing dan memberi backsound pada program.        

Contoh Block Pen

Pen Blocks di gunakan untuk memberikan jejak pada sprite ketika sprite tersebut bergerak.

Contoh Block Variabel

Variable Blocks digunakan untuk menyimpan data pada program menggunakan variable. contoh penggunaan nya seperti pada game bola, dimana game terserbut perlu menyimpan score pemain. variabel lah yang akan menyimpan score tersebut dan menampilkan nya di canvas.

Contoh Block Event 

Event Blocks adalah salah satu blok yang sangat penting dalam membuat program, karena di dalam nya ada perintah “When green flag clicked” yang artinya ketika bendera hijau pada canvas di klik, semua script di dalamnya akan di jalankan. Blok ini berfungi sebagai trigger script.

Contoh Block Control

Control Blocks digunakan untuk mengontrol script. script dapat di kontrol dengan perintah seperti “repeat 10” yang artinya ulangi script di dalam repeat sebanyak 10 kali.

Contoh Block Sensing

Sensing Blocks, seperti namanya adalah untuk ‘sensing’. seperti contoh perintah “touching color brown” yang artinya, ketika menyentuh warna coklat, eksekusi blok kode di bawahnya. 

Contoh Block Operators

Operators Blocks digunakan untuk melakukan operasi matematika.

Drag and Drop

Setelah  mengenal Scratch Development Environment, sekarang saatnya latihan membuat memprogram!

Gimana caranya? kita hanya perlu drag dan drop blok blok kode. namun yang perlu di catat adalah rangkaian blok tersebut harus sesuai dengan logika yang benar. Di sini hanya akan memberikan contoh di bawah ini. 

Animasi bola yang bergerak kiri-kanan dan memantul secara terus menerus.

drag and drop blok blok kode yang tersedia sehingga membentuk sebuah logika yang dapat di eksekusi.

contoh script program sederhana.

Script pada gambar di atas di gunakan di dalam sprite bola basket.



Kamis, 28 Mei 2026

Belajar Pemrograman Scratch. Bab 9

9
List

Program yang telah kita tulis sejauh ini telah menggunakan variabel biasa untuk menyimpan satu bagian data. Namun, variabel seperti itu tidak begitu berguna ketika Anda ingin menyimpan sejumlah nilai, seperti nomor telepon teman Anda, nama buku, atau pembacaan suhu selama sebulan. Misalnya, jika Anda ingin program Anda mengingat nomor telepon 20 teman Anda, Anda akan membutuhkan 20 variabel! Tentu saja, menulis dan memelihara program dengan 20 variabel akan membosankan. Dalam bab ini, kita akan menjelajahi tipe data bawaan lain, yang disebut list, yang menawarkan cara mudah untuk mengelompokkan nilai-nilai yang terkait. Berikut yang akan kita bahas:

  • Cara membuat dan memanipulasi daftar
  • Menginisialisasi dan mengakses elemen individual dalam daftar
  • Teknik pengurutan dan pencarian dasar
  • Menggunakan daftar untuk membuat aplikasi yang ampuh

Pertama, saya akan menjelaskan cara membuat daftar di Scratch, mendemonstrasikan perintah yang dapat Anda gunakan dengannya, dan menunjukkan cara mengisi daftar dengan data yang dimasukkan oleh pengguna. Kemudian kita akan membahas daftar numerik dan operasi umum yang dilakukan padanya, seperti menemukan nilai minimum, maksimum, dan rata-rata elemennya. Setelah itu, kita akan mempelajari satu algoritma untuk mengurutkan elemen dalam daftar. Kita akan mengakhiri dengan beberapa contoh program yang mendemonstrasikan beberapa aplikasi daftar di dunia nyata.

Daftar di Scratch
Daftar seperti wadah tempat Anda dapat menyimpan dan mengakses banyak nilai. Anda dapat menganggapnya sebagai lemari dengan banyak laci, dengan setiap laci menyimpan satu barang. Saat Anda membuat daftar, Anda memberinya nama seperti halnya variabel. Anda kemudian dapat mengakses elemen-elemen individual dari daftar menggunakan posisi penyimpanannya dalam daftar. Gambar 9-1, misalnya, menggambarkan sebuah daftar bernama dayList yang menyimpan nama-nama tujuh hari dalam seminggu.

Anda dapat merujuk ke item yang terdapat dalam daftar menggunakan indeks penyimpanannya (atau posisinya). Di Scratch, item pertama memiliki indeks 1, item kedua adalah 2, dan seterusnya. Misalnya, karena Selasa berada di urutan ketiga dalam daftar, maka indeksnya adalah 3. Oleh karena itu, Anda dapat merujuk ke elemen ketiga dari dayList kita menggunakan perintah berbentuk “item 3 dari dayList.”

Mari kita langsung mulai dan membuat beberapa daftar di Scratch. Kita juga akan melihat perintah-perintah yang memungkinkan kita untuk mengelola dan memanipulasi daftar dalam program kita dan mempelajari bagaimana Scratch merespons perintah daftar yang tidak valid.

Membuat Daftar
Membuat daftar hampir identik dengan membuat variabel. Pilih palet Data dan klik Buat Daftar untuk memunculkan dialog pada Gambar 9-2 (kanan).


Selanjutnya, masukkan nama daftar (kita akan menggunakan dayList) dan tentukan cakupannya. Memilih opsi Untuk semua sprite akan membuat daftar global yang dapat diakses oleh sprite mana pun di aplikasi Anda, sedangkan opsi Hanya untuk sprite ini akan membuat daftar lokal yang dimiliki oleh sprite yang saat ini dipilih. Daftar lokal hanya dapat dibaca (dan ditulis) oleh sprite pemilik.

Saat Anda mengklik OK untuk mengkonfirmasi input Anda, Scratch akan membuat daftar kosong baru dan menampilkan blok terkait daftar, seperti yang diilustrasikan pada Gambar 9-3. Ini mirip dengan apa yang akan Anda lihat saat membuat variabel baru. Daftar kosong adalah daftar yang tidak berisi item apa pun.

Anda dapat menggunakan perintah baru ini untuk memanipulasi isi daftar Anda saat skrip Anda berjalan. Anda dapat menambahkan item baru, menyisipkan item pada posisi tertentu, menghapus item tertentu, atau mengganti nilai item yang sudah ada.


Belajar Pemrograman Scratch. Bab 8

8
Pemrosesan String

String adalah serangkaian karakter yang diperlakukan sebagai satu kesatuan. Anda dapat menulis program untuk menggabungkan, membandingkan, mengurutkan, mengenkripsi, dan memanipulasi string.

Berikut yang akan Anda pelajari dalam bab ini:

• Bagaimana Scratch menyimpan string

• Cara menggunakan blok manipulasi string yang tersedia di Scratch

• Beberapa teknik pemrosesan string

• Cara menulis program menarik yang memproses string

Kita akan mulai dengan melihat secara detail tipe data string, dan kemudian kita akan menulis prosedur untuk mengelola dan memanipulasi string. Prosedur tersebut akan menghapus dan mengganti karakter, menyisipkan dan mengekstrak substring, dan mengacak urutan karakter. Setelah itu, kita akan menggunakan prosedur ini dan menerapkan teknik ini untuk menulis beberapa aplikasi yang menyenangkan dan praktis.

Mengulas Kembali Tipe Data String
Seperti yang saya sebutkan di Bab 5, Scratch memiliki tiga tipe data: Boolean, angka, dan string. Pada dasarnya, string hanyalah urutan karakter yang teratur.

Karakter-karakter ini dapat mencakup huruf (baik huruf besar maupun kecil), angka, dan simbol lain yang dapat Anda ketik di keyboard Anda (+, -, &, @, dan seterusnya).

Anda dapat menggunakan string dalam program Anda untuk menyimpan nama, alamat, nomor telepon, judul buku, dan banyak lagi.

Di Scratch, karakter-karakter dalam sebuah string disimpan secara berurutan. Misalnya, jika Anda memiliki variabel bernama name, menjalankan perintah set name to Karen akan menyimpan karakter-karakter seperti yang diilustrasikan pada Gambar 8-1.


Gambar 8-1: Sebuah string disimpan sebagai urutan karakter.

Anda dapat mengakses karakter individual dari sebuah string dengan operator letter of.

Misalnya, blok letter 1 dari name mengembalikan huruf K, dan letter 5 dari name mengembalikan huruf n. Scratch juga menyediakan operator length of, yang mengembalikan jumlah karakter dalam sebuah string. Jika Anda menggunakan kedua operator ini dengan blok repeat, Anda dapat menghitung karakter, memeriksa beberapa karakter, dan melakukan banyak hal berguna lainnya, seperti yang akan saya demonstrasikan di subbagian berikut.

Menghitung Karakter Khusus dalam Sebuah String

Contoh skrip pertama kami, yang ditunjukkan pada Gambar 8-2, menghitung berapa banyak huruf vokal yang ada dalam sebuah string masukan. Skrip ini meminta pengguna untuk memasukkan sebuah string, kemudian menghitung dan menampilkan jumlah huruf vokal dalam string tersebut.


Gambar 8-2: Program penghitung huruf vokal


Belajar Pemrograan Scratch. Bab 7

 7
Pengulangan: Penjelasan Lebih Mendalam tentang Loop

Anda telah melihat beberapa struktur pengulangan Scratch sebelumnya, tetapi bab ini membahasnya secara lebih detail.

Saatnya membahas blok baru yang membuat loop, loop bersarang, dan rekursi. Pada akhir bab ini, kita akan mempelajari konsep pemrograman berikut:

• Struktur pengulangan untuk mengeksekusi pernyataan berulang kali

• Cara memvalidasi input pengguna

• Loop yang dikendalikan penghitung dan loop yang dikendalikan peristiwa

• Prosedur yang dapat memanggil dirinya sendiri dengan rekursi

Meskipun kebanyakan orang menganggap tugas berulang membosankan, komputer tampaknya sangat menyukainya. Struktur pengulangan, yang lebih dikenal sebagai loop, adalah perintah pemrograman yang memberi tahu komputer untuk mengeksekusi pernyataan atau serangkaian pernyataan secara berulang. Jenis loop paling sederhana adalah loop pasti, yang mengulangi serangkaian pernyataan dalam jumlah tertentu. Loop ini


Loop juga disebut loop terkontrol penghitung atau loop terhitung. Jenis loop lain terus berulang hingga suatu kondisi terjadi; ini disebut loop terkontrol kondisi atau loop tak tentu. Loop lain, yang disebut loop tak terbatas, berulang selamanya.

Dalam bab ini, Anda akan mempelajari berbagai struktur pengulangan yang tersedia di Scratch. Saya akan menjelaskan loop terkontrol penghitung dan loop terkontrol kondisi secara detail, dan saya akan memperkenalkan Anda pada blok berhenti, yang dapat Anda gunakan untuk mengakhiri loop tak terbatas. Anda juga akan mempelajari cara menggunakan loop untuk memvalidasi input pengguna.

Bab ini juga membahas loop bersarang (loop yang berisi loop lain) dan menunjukkan beberapa contoh penggunaannya. Kita juga akan membahas rekursi—prosedur yang memanggil dirinya sendiri—sebagai cara lain untuk mencapai pengulangan. Terakhir, kita akan mengembangkan sejumlah aplikasi menarik yang menggunakan loop dan kondisi, dan kita akan melihat cara menggabungkan loop ke dalam program praktis.


Blok Perulangan Lainnya di Scratch
Seperti yang telah Anda pelajari di Bab 2, blok perulangan memungkinkan Anda untuk mengulang perintah atau serangkaian perintah dalam sebuah program. Scratch mendukung tiga blok pengulangan yang ditunjukkan pada Gambar 7-1.


Gambar 7-1: Blok pengulangan Scratch

Anda telah menggunakan dua blok ini, blok repeat dan forever dalam banyak contoh di seluruh buku ini. Di bagian ini, kita akan memeriksa jenis blok perulangan ketiga—blok repeat until—dan menjelaskan beberapa istilah teknis yang terkait dengan perulangan secara umum.

Setiap pengulangan perulangan disebut iterasi, dan kata count sering digunakan untuk menggambarkan jumlah kali perulangan diulang. Blok repeat, yang sudah sangat Anda kenal, adalah perulangan yang dikendalikan oleh penghitung karena mengulang perintahnya sejumlah kali tertentu. Kita biasanya menggunakan perulangan ini ketika kita mengetahui jumlah pengulangan yang perlu dijalankan oleh perulangan, seperti ketika kita ingin menggambar poligon dengan jumlah sisi yang diketahui.

Di sisi lain, blok repeat until adalah perulangan yang dikendalikan oleh kondisi. Pernyataan di dalam blok ini diulang berdasarkan kebenaran atau kepalsuan ekspresi ujinya. Kita menggunakan blok ini ketika kita tidak tahu sebelumnya berapa kali loop perlu diulang dan ingin pengulangan berlanjut hingga suatu kondisi terpenuhi. Misalnya, Anda dapat mengatakan, "Ulangi perintah tanya hingga pengguna memasukkan angka positif." Atau, "Ulangi penembakan rudal hingga tingkat energi pemain turun di bawah nilai tertentu." Bagian berikut menjelaskan loop yang dikontrol kondisi secara lebih rinci.


Belajar Pemrograman Scratch. Bab 6

 6
Mengambil Keputusan

Bab ini akan mengajarkan Anda alat Scratch yang Anda butuhkan untuk menulis program yang dapat membandingkan nilai, mengevaluasi ekspresi logis, dan mengambil keputusan berdasarkan hasilnya. Kita juga akan membahas beberapa contoh aplikasi yang berguna. Berikut adalah hal-hal yang akan Anda pelajari:

• Teknik pemecahan masalah dasar 
• Cara menggunakan blok if dan if/else untuk memilih di antara tindakan alternatif
• Cara membangun ekspresi logis untuk mengevaluasi kondisi yang diberikan
• Alur kontrol dalam pernyataan percabangan

Program yang telah kita tulis sejauh ini mengikuti model eksekusi yang sederhana.

Program dimulai dengan instruksi pertama, mengeksekusinya, melanjutkan ke instruksi berikutnya, dan seterusnya hingga mencapai akhir program. Blok perintah program ini dieksekusi secara berurutan, tanpa melewatkan atau melompat.

Namun, dalam banyak situasi pemrograman, Anda mungkin ingin mengubah alur eksekusi program yang berurutan ini. Jika Anda menulis aplikasi untuk membimbing anak-anak dalam aritmatika dasar, Anda ingin mengeksekusi blok tertentu untuk memberi penghargaan pada jawaban yang benar dan serangkaian blok yang sama sekali berbeda untuk jawaban yang salah (untuk mengungkapkan jawaban yang benar atau menawarkan kesempatan lain, misalnya).

Skrip Anda dapat memutuskan apa yang harus dilakukan selanjutnya dengan membandingkan input siswa dengan jawaban yang benar. Ini adalah dasar dari semua tugas pengambilan keputusan. Dalam bab ini, kita akan menjelajahi perintah pengambilan keputusan yang tersedia di Scratch dan menulis beberapa program yang menggunakan perintah ini untuk menguji input dan melakukan berbagai tindakan.

Pertama, saya akan memperkenalkan Anda pada operator perbandingan Scratch dan menunjukkan bagaimana Anda dapat menggunakannya untuk membandingkan angka, huruf, dan string. Kemudian, saya akan memperkenalkan blok if dan if/else dan menjelaskan peran kuncinya dalam pengambilan keputusan. Anda juga akan mempelajari cara menguji beberapa kondisi menggunakan blok if dan if/else bersarang dan menulis program berbasis menu untuk menjalankan blok-blok ini. Setelah itu, saya akan memperkenalkan operator logika sebagai cara alternatif untuk menguji beberapa kondisi. Di bagian terakhir, kita akan menulis beberapa program menarik berdasarkan semua konsep yang telah Anda pelajari sejauh ini.

Operator Perbandingan
Anda membuat keputusan setiap hari, dan setiap keputusan biasanya mengarah pada tindakan tertentu. Misalnya, Anda mungkin berpikir, “Jika mobil itu kurang dari $2.000, saya akan membelinya.” Kemudian Anda menanyakan harga mobil tersebut dan memutuskan apakah Anda ingin membelinya atau tidak.

Anda juga dapat membuat keputusan di Scratch. Dengan menggunakan operator perbandingan,

Anda dapat membandingkan nilai dua variabel atau ekspresi untuk menentukan apakah satu lebih besar dari, kurang dari, atau sama dengan yang lain. Operator perbandingan juga disebut operator relasional karena menguji hubungan antara dua nilai. Tiga operator relasional yang didukung di Scratch ditunjukkan pada Tabel 6-1.


Tabel 6-1: Operator Relasional di Scratch

Boolean di Dunia Nyata

Kata Boolean digunakan untuk menghormati George Boole, seorang matematikawan Inggris abad ke-19 yang menciptakan sistem logika berdasarkan hanya dua nilai: 1 dan 0 (atau Benar dan Salah). Aljabar Boolean akhirnya menjadi dasar ilmu komputer modern.

Dalam kehidupan nyata, kita menggunakan ekspresi Boolean sepanjang waktu untuk membuat keputusan. Komputer juga menggunakannya untuk menentukan cabang program mana yang harus diikuti. Lengan robot dapat diprogram untuk memeriksa bagian-bagian yang bergerak pada jalur perakitan dan memindahkan setiap bagian ke Bin 1 jika goodQuality = benar, atau Bin 2 jika goodQuality = salah. Sistem keamanan rumah biasanya diprogram untuk membunyikan alarm jika kode yang salah dimasukkan (correctCode = salah) atau menonaktifkannya ketika kita memasukkan kode yang benar (correctCode = benar). Server jarak jauh dapat memberikan atau menolak akses ketika Anda menggesek kartu kredit Anda di toko berdasarkan apakah kartu Anda valid (benar) atau tidak valid (salah). Komputer di kendaraan Anda akan secara otomatis mengaktifkan airbag ketika memutuskan bahwa telah terjadi tabrakan (tabrakan = benar). Ponsel Anda mungkin menampilkan ikon peringatan ketika baterai lemah (batteryLow = benar) dan menghilangkan ikon tersebut ketika daya baterai mencukupi (batteryLow = salah).

Ini hanyalah beberapa contoh bagaimana komputer menyebabkan tindakan yang berbeda dilakukan dengan memeriksa hasil kondisi Boolean.

Perhatikan bahwa blok-blok dalam Tabel 6-1 semuanya berbentuk heksagonal. Seperti yang mungkin Anda ingat dari Bab 5, itu berarti hasil evaluasi salah satu blok ini adalah nilai Boolean, yang bisa berupa benar atau salah. Karena alasan ini, ekspresi ini juga disebut ekspresi Boolean. Misalnya, ekspresi price < 2000 menguji apakah nilai variabel price kurang dari 2.000. Jika price kurang dari 2.000, blok tersebut mengembalikan (atau dievaluasi menjadi) benar; jika tidak, ia mengembalikan salah. Anda dapat menggunakan ekspresi ini untuk membangun kondisi keputusan Anda dalam bentuk, “Jika (harga < 2000), maka beli mobil.” Sebelum kita melihat blok if, yang memungkinkan Anda untuk menerapkan pengujian seperti itu, mari kita bahas contoh sederhana yang menggambarkan bagaimana ekspresi Boolean dievaluasi di Scratch.

Mengevaluasi Ekspresi Boolean
Katakanlah kita menetapkan dua variabel, x dan y, sebagai berikut: x = 5, dan y = 10. Tabel 6-2 menunjukkan beberapa contoh yang menggunakan blok relasional Scratch.

Contoh-contoh ini mengungkapkan beberapa poin penting tentang operator relasional. Pertama, kita dapat menggunakannya untuk membandingkan variabel individual (seperti x, y) dan ekspresi lengkap (seperti 2 * x dan x + 6). Kedua, hasil perbandingan selalu benar atau salah (yaitu, nilai Boolean). Ketiga, blok x = y tidak berarti “Tetapkan x sama dengan y.” Sebaliknya, ia bertanya, “Apakah x sama dengan y?” Jadi ketika pernyataan set z to (x = y) dieksekusi, nilai x tetap 5.


Tabel 6-2: Contoh Penggunaan Blok Relasional

Membandingkan Huruf dan String
Mari kita pikirkan sebuah permainan di mana pemain mencoba menebak kode rahasia satu huruf antara A dan Z. Permainan membaca tebakan pemain, membandingkannya dengan kode rahasia, dan menginstruksikan pemain untuk memperbaiki tebakannya berdasarkan urutan abjad huruf. Misalnya, jika huruf rahasianya adalah G, dan pemain memasukkan B, permainan harus mengatakan sesuatu seperti "Setelah B" untuk memberi tahu pemain bahwa kode rahasia berada setelah huruf B dalam abjad. Bagaimana Anda dapat membandingkan huruf yang benar dengan masukan pemain untuk memutuskan pesan apa yang akan ditampilkan?

Untungnya, operator relasional di Scratch juga dapat membandingkan huruf. Seperti yang diilustrasikan pada Gambar 6-1, Scratch membandingkan huruf berdasarkan urutan abjadnya. Karena huruf A berada sebelum huruf B dalam abjad, ekspresi A < B mengembalikan nilai benar. Namun, penting untuk dicatat bahwa perbandingan ini tidak peka terhadap huruf besar/kecil; huruf kapital A sama dengan huruf kecil a. Dengan demikian, ekspresi A = a juga menghasilkan nilai benar.


Gambar 6-1: Menggunakan operator relasional untuk membandingkan huruf

Dengan mengetahui informasi ini, Anda dapat menguji tebakan pemain menggunakan serangkaian kondisi berikut:

JIKA (jawaban = kode rahasia), maka katakan Benar
JIKA (jawaban > kode rahasia), maka katakan Sebelum <jawaban>
JIKA (jawaban < kode rahasia), maka katakan Setelah <jawaban>

Kondisi adalah pernyataan dalam bentuk, “Jika kondisi benar, maka lakukan tindakan ini.” Di bagian selanjutnya, saya akan mengajari Anda cara menerapkan kondisi di Scratch, tetapi mari kita jelajahi operator relasional lebih lanjut dengan permainan tebak kode kita terlebih dahulu.

Bagaimana jika kode rahasia berisi lebih dari satu huruf? Misalnya, pemain mungkin perlu menebak nama hewan. Bisakah Anda tetap menggunakan operator relasional Scratch untuk melakukan perbandingan? Untungnya, jawaban singkatnya adalah ya:

Anda dapat menggunakan operator relasional Scratch untuk membandingkan string. Tetapi bagaimana Scratch memproses perbandingan seperti gajah > tikus? Contoh pada Gambar 6-2 mengilustrasikan hasil perbandingan string.


Gambar 6-2: Menggunakan operator relasional untuk membandingkan u string yang identik, v string yang hanya berbeda dalam huruf besar/kecil, w satu string dengan string lain yang berisi spasi tambahan, dan x string yang bervariasi sesuai dengan urutan kamus hurufnya

Dengan mengetahui hal ini, Anda seharusnya tidak terkejut ketika ekspresi elephant > mouse dievaluasi menjadi false, meskipun gajah sebenarnya jauh lebih besar daripada tikus. Menurut aturan perbandingan string Scratch, string "elephant" lebih kecil daripada string "mouse" karena huruf e (huruf pertama dalam elephant) berada sebelum huruf m (huruf pertama dalam mouse) dalam alfabet. Membandingkan dan mengurutkan string berdasarkan urutan alfabet karakternya digunakan dalam banyak situasi kehidupan nyata, termasuk mengurutkan daftar direktori, buku di rak buku, kata-kata dalam kamus, dan sebagainya. Kata elephant berada sebelum kata mouse dalam kamus, dan perbandingan string di Scratch memberikan jawaban berdasarkan urutan ini. Sekarang setelah Anda memahami apa itu operator relasional dan bagaimana Scratch menggunakan operator ini untuk membandingkan angka dan string, saatnya untuk mempelajari tentang blok kondisional.


Struktur Keputusan 
Palet Kontrol Scratch berisi dua blok yang memungkinkan Anda untuk membuat keputusan dan mengontrol tindakan dalam program Anda: blok if dan blok if/else. Dengan menggunakan blok-blok ini, Anda dapat mengajukan pertanyaan dan mengambil tindakan berdasarkan jawabannya. Di bagian ini, kita akan membahas kedua blok ini secara detail, berbicara tentang flag, dan belajar menguji beberapa kondisi dengan blok if bersarang. Kemudian saya akan memperkenalkan aplikasi berbasis menu dan menjelaskan bagaimana blok if bersarang dapat membantu implementasinya.

Blok if
Blok if adalah struktur keputusan yang memberi Anda kemampuan untuk menentukan apakah serangkaian perintah harus (atau tidak boleh) dieksekusi berdasarkan hasil kondisi pengujian. Struktur blok if dan diagram alirnya ditunjukkan pada Gambar 6-3.


Gambar 6-3: Struktur blok if

Pada Gambar 6-3, bentuk berlian mewakili blok keputusan yang memberikan jawaban ya/tidak (atau benar/salah) untuk sebuah pertanyaan. Jika kondisi pengujian di header blok if benar, program akan mengeksekusi perintah yang tercantum di dalam badan sebelum melanjutkan ke perintah yang mengikuti blok if (Perintah M pada gambar). Jika kondisi pengujian salah, program akan melewati perintah-perintah tersebut dan langsung menuju Perintah M.

Studi yang cermat terhadap Gambar 6-2 menunjukkan hal berikut:

• Scratch membandingkan string tanpa memperhatikan huruf besar/kecilnya. String “HELLO” dan “hello” dalam v, misalnya, dianggap sama.

• Scratch menghitung spasi dalam perbandingannya. String “HELLO”, yang dimulai dan diakhiri dengan satu spasi, tidak sama dengan string

“HELLO” w.

• Saat membandingkan string “ABC” dan “ABD”, seperti dalam x, Scratch pertama-tama

mempertimbangkan karakter pertama dalam kedua string. Karena karakter tersebut sama (huruf A dalam kasus ini), Scratch memeriksa karakter kedua dalam kedua string. Karena karakter ini juga sama dalam kedua string, Scratch melanjutkan untuk memeriksa karakter ketiga. Karena huruf C lebih kecil dari huruf D (yaitu, C berada sebelum D dalam alfabet), Scratch menganggap string pertama lebih kecil dari string kedua.

Untuk melihat blok if beraksi, buat skrip yang ditunjukkan pada Gambar 6-4 dan jalankan. Skrip tersebut menjalankan loop selamanya yang menggerakkan sprite di sekitar panggung, mengubah warnanya, dan membuatnya memantul dari tepi Panggung.


Gambar 6-4: Skrip ini menyebabkan sprite mengubah warnanya hanya ketika bergerak di bagian kanan Panggung.

Loop selamanya dalam skrip kita berisi blok if yang memeriksa posisi x sprite setelah setiap perintah gerak. Jika posisi x lebih besar dari nol, sprite harus mengubah warnanya. Saat Anda menjalankan skrip ini, Anda akan melihat bahwa sprite mengubah warnanya hanya ketika bergerak di bagian kanan Panggung. Ini karena blok efek perubahan warna sebesar 25 dieksekusi hanya ketika kondisi posisi x > 0 benar.

Menggunakan Variabel sebagai Bendera
Misalnya, Anda sedang mengembangkan game petualangan luar angkasa di mana tujuannya adalah untuk menghancurkan armada kapal perang penyerang. Pemain, yang berperan sebagai kapten, mengendalikan pesawat ruang angkasa dengan tombol panah pada keyboard dan menembakkan rudal dengan menekan spasi. Jika pesawat ruang angkasa pemain terkena tembakan musuh beberapa kali, kapal tersebut kehilangan kemampuan untuk menyerang. Pada titik ini, menekan spasi seharusnya tidak lagi menembakkan rudal, dan kapten harus mengadopsi strategi pertahanan untuk menghindari terkena tembakan lagi. Jelas, ketika spasi ditekan, program Anda perlu memeriksa status sistem serangan pesawat ruang angkasa untuk memutuskan apakah pemain dapat menembak atau tidak. 

Pemeriksaan semacam ini biasanya dilakukan menggunakan flag, yaitu variabel yang Anda gunakan untuk menunjukkan apakah suatu peristiwa yang diminati telah terjadi atau tidak. Anda dapat menggunakan dua nilai apa pun untuk menggambarkan status peristiwa tersebut, tetapi praktik umum adalah menggunakan 0 (atau false) untuk menunjukkan bahwa peristiwa tersebut belum terjadi dan 1 (atau true) untuk menunjukkan bahwa peristiwa tersebut telah terjadi. 

Dalam game penembak ruang angkasa Anda, Anda dapat menggunakan flag bernama canFire untuk menunjukkan status pesawat ruang angkasa. Nilai 1 berarti bahwa pesawat ruang angkasa dapat menembakkan rudal, dan nilai 0 berarti bahwa pesawat tersebut tidak dapat menembakkan rudal. Berdasarkan hal ini, penanganan kejadian spasi Anda mungkin dikodekan seperti yang ditunjukkan pada Gambar 6-5. 

Pada awal permainan, Anda akan menginisialisasi nilai flag canFire menjadi 1 untuk menunjukkan bahwa Pesawat luar angkasa mampu menembakkan rudal. Ketika pesawat luar angkasa terkena tembakan musuh dalam jumlah tertentu, Anda akan mengatur flag canFire menjadi 0 untuk menunjukkan bahwa sistem serangan telah menjadi tidak berfungsi; pada saat itu, menekan spasi tidak akan menembakkan rudal lagi.

Meskipun Anda dapat memberi nama flag Anda sesuka hati, saya sarankan untuk menggunakan nama yang mencerminkan sifat benar/salahnya. Tabel 6-3 menunjukkan beberapa contoh flag yang mungkin Anda gunakan dalam game penembak luar angkasa.


Tabel 6-3: Beberapa Contoh Penggunaan Flag

Sekarang Anda tahu cara menggunakan blok if dan flag, mari kita bahas tentang blok kondisional lain, yang memungkinkan Anda mengeksekusi satu blok kode ketika kondisi tertentu benar dan blok lain jika kondisi tersebut salah.

Blok if/else
Bayangkan Anda sedang membuat game untuk mengajarkan matematika dasar kepada siswa sekolah dasar. Game tersebut menyajikan soal penjumlahan dan kemudian meminta siswa untuk memasukkan jawaban. Siswa harus menerima satu poin untuk jawaban yang benar dan kehilangan satu poin untuk jawaban yang salah. Anda dapat melakukan tugas ini menggunakan dua pernyataan if:

Jika jawabannya benar, tambahkan satu poin ke skor
Jika jawabannya salah, kurangi satu poin dari skor

Anda juga dapat menyederhanakan logika ini—dan membuat kode lebih efisien—dengan menggabungkan kedua pernyataan if menjadi satu pernyataan if/else sebagai berikut:

Jika jawabannya benar
tambahkan satu poin ke skor
Jika tidak
kurangi satu poin dari skor


Belajar Pemrograman Scratch. Bab 5

5
Variabel

Bab ini menjelaskan cara membuat skrip yang dapat membaca dan mengingat nilai. Saat Anda menggunakan variabel, Anda dapat menulis aplikasi yang berinteraksi dengan pengguna dan menanggapi masukan mereka. Berikut yang akan kita bahas dalam bab ini:

  • Tipe data yang didukung oleh Scratch
  • Cara membuat variabel dan memanipulasinya
  • Cara mendapatkan masukan dari pengguna dan menulis program interaktif

Meskipun skrip yang Anda tulis dalam empat bab terakhir membantu Anda mempelajari keterampilan pemrograman Scratch yang penting, skrip tersebut masih kekurangan banyak elemen kunci dari aplikasi skala besar. Program yang lebih kompleks dapat mengingat nilai dan memutuskan untuk mengambil tindakan berdasarkan kondisi tertentu. Bab ini akan membahas kekurangan pertama dari dua kekurangan tersebut, dan pengambilan keputusan akan dibahas di bab berikutnya.

Belajar Pemrograman Scratch. Bab 4

4
Prosedur

Bab ini menjelaskan bagaimana Anda dapat menggunakan pendekatan "bagi dan taklukkan" dalam pemrograman. Alih-alih membangun program Anda sebagai satu bagian besar, Anda dapat menulis prosedur terpisah yang kemudian Anda gabungkan. Menggunakan prosedur akan membuat program Anda lebih mudah ditulis dan lebih mudah diuji dan di-debug. Dalam bab ini, Anda akan mempelajari cara:

• Menggunakan penyiaran pesan untuk mengoordinasikan perilaku banyak sprite
• Menggunakan penyiaran pesan untuk mengimplementasikan prosedur
• Menggunakan fitur "buat blok Anda sendiri" dari Scratch 2
• Menggunakan teknik pemrograman terstruktur

Sebagian besar aplikasi yang telah kita kembangkan sejauh ini hanya berisi satu sprite, tetapi sebagian besar aplikasi membutuhkan beberapa sprite yang bekerja bersama. Sebuah cerita animasi, misalnya, mungkin memiliki beberapa karakter serta latar belakang yang berbeda. Kita membutuhkan cara untuk menyinkronkan tugas yang diberikan kepada sprite. Dalam bab ini, kita akan menggunakan mekanisme penyiaran pesan Scratch untuk mengoordinasikan pekerjaan di antara beberapa sprite (ini adalah satu-satunya cara untuk mengimplementasikan prosedur di versi Scratch sebelumnya). Kemudian kita akan membahas cara menggunakan fitur "blok kustom" Scratch 2 untuk menyusun program besar menjadi bagian-bagian yang lebih kecil dan lebih mudah dikelola yang disebut prosedur. Prosedur adalah urutan perintah yang melakukan fungsi tertentu. Misalnya, kita dapat membuat prosedur yang menyebabkan sprite menggambar bentuk, melakukan komputasi kompleks, memproses input pengguna, mengurutkan not musik, mengelola permainan, dan melakukan banyak hal lainnya. Setelah dibuat, prosedur ini dapat berfungsi sebagai blok bangunan untuk membangun semua jenis aplikasi yang berguna.

Penyiaran dan Penerimaan Pesan
Jadi bagaimana sistem penyiaran di Scratch bekerja dalam praktiknya? Setiap sprite dapat menyiarkan pesan (Anda dapat memberi nama pesan ini apa pun yang Anda suka) menggunakan blok siaran atau siaran dan tunggu (dari palet Peristiwa) yang ditunjukkan pada Gambar 4-1. Siaran ini memicu semua skrip di semua sprite (termasuk sprite yang menyiarkan itu sendiri) yang dimulai dengan blok pemicu "ketika saya menerima" yang sesuai. Semua sprite mendengar siaran tersebut, tetapi mereka hanya akan bertindak jika mereka memiliki blok "ketika saya menerima" yang sesuai.


Gambar 4-1: Anda dapat menggunakan blok penyiaran dan penerimaan pesan untuk mengoordinasikan pekerjaan beberapa sprite.

Perhatikan Gambar 4-2. Gambar ini menunjukkan empat sprite: bintang laut, kucing, katak, dan kelelawar. Bintang laut menyiarkan pesan lompat, dan siaran itu dikirim ke semua sprite, termasuk dirinya sendiri. Sebagai respons terhadap pesan ini, baik kucing maupun katak akan menjalankan skrip lompat mereka. Perhatikan bagaimana setiap sprite melompat dengan caranya sendiri, menjalankan skrip yang berbeda. Kelelawar juga menerima pesan lompat, tetapi tidak bertindak berdasarkan pesan tersebut karena tidak diberi tahu apa yang harus dilakukan ketika menerima pesan ini. Kucing dalam gambar ini tahu cara berjalan dan melompat, katak hanya bisa melompat, dan kelelawar hanya diajari untuk terbang.

Perintah siaran dan tunggu bekerja seperti perintah siaran, tetapi menunggu hingga semua penerima pesan selesai mengeksekusi blok "ketika saya menerima" yang sesuai sebelum melanjutkan.

Belajar Pemrograman Scratch. Bab 3

3
Tampilan dan Suara


Pada bab sebelumnya, Anda telah mempelajari cara menggerakkan sprite di Panggung menggunakan perintah gerak dan cara menggunakan pena untuk menggambar pola. Pada bab ini, Anda akan mempelajari berbagai perintah dalam palet Tampilan dan Suara. Sepanjang proses, Anda akan melakukan hal-hal berikut:

• Membuat animasi dan efek gambar
• Mempelajari cara kerja layer di Scratch
• Memutar file suara dan menggubah musik
• Membuat adegan animasi lengkap buatan Anda sendiri

Perintah dalam palet Tampilan memungkinkan Anda membuat animasi dan menerapkan efek grafis seperti pusaran, mata ikan, hantu, dan sebagainya pada kostum dan latar belakang. Perintah dalam palet Suara berguna ketika Anda ingin menambahkan suara, vokal, atau musik ke aplikasi Anda. Mari kita langsung mulai dengan animasi!


Belajar Pemrograman Scratch. Bab 1

Belajar Memprogram dengan Scratch
Pengantar Visual Pemrograman dengan Game, Seni, Sains, dan Matematika

oleh Majed Marji

Tentang Penulis

Majed Marji memegang gelar PhD di bidang teknik elektro dari Wayne State University dan gelar MBA di bidang manajemen strategis dari Davenport University. Ia memiliki pengalaman lebih dari 15 tahun di industri otomotif, di mana ia mengembangkan banyak aplikasi perangkat lunak untuk akuisisi data waktu nyata, kontrol perangkat, manajemen sel uji, analisis data teknik, pengontrol tertanam, telematika, kendaraan hibrida, dan sistem penggerak kritis keselamatan.

Dr. Marji juga merupakan anggota fakultas adjunkt di Departemen Teknik Elektro di Wayne State University. Ia telah mengajar mata kuliah tentang teknik komunikasi, visi mesin, mikroprosesor, sistem kontrol, dan algoritma dan struktur data, di antara topik lainnya.

Tentang Peninjau Teknis

Tyler Watts, EdS, adalah pendidik komputasi kreatif yang mengajar siswa kelas enam hingga delapan di Distrik Sekolah Terpadu Kansas City (Kansas) 500 dan mahasiswa dewasa di Universitas Missouri–Kansas City. Dia telah menggunakan Scratch sejak tahun 2009 sebagai alat untuk memerangi kesenjangan digital dan mengajari siswa cara berpikir seperti ilmuwan komputer. Sejak tahun pertama Tyler mengajar Scratch, dia telah mempelajari pentingnya melepaskan siswa dari "roda pelatihan Scratch" dan menantang mereka serta membentuk mereka menjadi kreator digital. Dia merasa bahwa pemrograman adalah bentuk ekspresi pribadi dan mengajari siswanya untuk mendekatinya seperti halnya bentuk seni lainnya dan bersenang-senang.

Rabu, 27 Mei 2026

Ringkasan buku Belajar Pemrograman Scratch

Pengantar:
Tulisan ini merupakan ringkasan dari buku berjudul "
LEARN TO PROGRAM WITH SCRATCH" karya MAJED MARJI + dikembangkan berikut contoh projeknya sebagai penjelasan untuk materi pelatihan guru coding is fun di sekolah dasar oleh Zulkifli Faiz (Coding is fun)

Ringkasan Bab 1


Pengantar Visual Pemrograman dengan Scratch
Scratch, sebuah bahasa pemrograman visual yang dirancang untuk memudahkan pemula, khususnya dalam membuat game, seni, simulasi sains, dan matematika.


1. Apa Itu Scratch?

Konsep Dasar: Berbeda dengan bahasa pemrograman berbasis teks (seperti Python atau C++) yang membutuhkan sintaks rumit, Scratch menggunakan pendekatan visual. Sebuah bahasa yang universal serta mudah dipahami semua tingkat usia.

  • Sistem Blok: Pemrograman dilakukan dengan cara menyusun blok-blok perintah grafis yang saling mengunci seperti kepingan puzzle. Tumpukan blok ini disebut skrip.

  • Sprite: Karakter atau objek dua dimensi di dalam Scratch (seperti ikon Kucing default) yang menerima dan menjalankan instruksi dari skrip yang dibuat.

  • Aksesibilitas: Dikembangkan oleh MIT Media Lab, Scratch 3 dapat diakses dan dijalankan langsung melalui browser web (Scratch.mit.edu) tanpa perlu menginstal perangkat lunak tambahan. Dan tersedia juga versi Scratch offlinenya baik untuk windows ataupun android. Selain itu tersedia juga Scratch Junior untuk anak-anak usia dini khusus versi andrroid dan juga Octostudio yang bisa berjalan lewat smartphone.

Octistudio


ScratchJr

Aplikasi lainnya yang menggunakan pendekatan visual seperti Scratch antara lain PictoBlox, Makecode, Tinkercad, Micoo:bit


2. Lingkungan Pemrograman (Antarmuka Pengguna)

Antarmuka Scratch dibagi menjadi beberapa area utama yang memiliki fungsi spesifik:


Scratch versi online

Scratch versi offline

Tampilan antarmuka Scratch online

  • Panggung (Stage): Area tempat sprite bergerak dan berinteraksi. Memiliki ukuran lebar 480 langkah dan tinggi 360 langkah yang beroperasi pada sistem koordinat Kartesius (x, y) dengan titik (0,0) di tengah.

  • Daftar Sprite: Panel yang menampilkan semua sprite yang ada dalam proyek. Sprite baru bisa ditambahkan dari pustaka bawaan, digambar sendiri, melalui kamera, atau diunggah dari komputer.

  • Tab Blok: Berisi lebih dari 100 blok perintah yang dikelompokkan ke dalam 10 palet warna (seperti Gerak, Tampilan, Suara, Kejadian, Sening, dll.) agar mudah dicari. Beberapa blok memiliki parameter input yang nilainya bisa diubah.

  • Area Skrip: Kanvas tempat pengguna menarik (drag) dan menyusun blok untuk memprogram sprite.

  • Tab Kostum & Latar Belakang (Backdrop): Tempat untuk mengelola gambar/tampilan fisik sprite (Kostum) dan gambar latar belakang Panggung (Backdrop).

  • Tab Suara: Berisi alat untuk menambahkan, merekam, atau mengimpor efek suara (MP3/WAV) yang akan diputar oleh sprite.

  • Editor Cat (Paint Editor): Alat bawaan untuk menggambar atau mengedit kostum dan latar belakang. Fitur pentingnya meliputi penentuan pusat gambar (titik poros rotasi) dan pembuatan warna transparan.

Aplikasi pendukung Scratch:

Untuk memunculkan fitur-fitur Scratch lainnya versi online, kita bisa install ScratchAddon di sini yang berjalan di browser Chrome


Mengonversi proyek Scratch ke HTML bisa menggunakan HTMLifier
Link contohnya bisa dilihat di sini
Untuk pemasangan file  HTMLifier di blog bisa dibaca di sini


Catatan: TurboWarp Packager memiliki kinerja yang lebih baik dan dapat menghasilkan file .exe. yang tersedia juga di HTMLifier ini.



3. Praktik: Membuat Game Pertama (Pong)

Bab ini mendemonstrasikan kemudahan Scratch melalui pembuatan contoh game Pantul bola (Pong) sederhana dengan langkah-langkah:


Game pantul bola yang dikembangkan

Sebelum membuat projek game Pantul Bola ini sebaiknya kita membuat konsep dasar permainannya dalam bentuk gambar agar mudah dipahami dan mudah saat nanti membuat skripnya.



  1. Menyiapkan Latar Belakang: Menggambar garis tipis di bagian bawah Panggung sebagai sensor game over.

  2. Menambahkan Karakter: Membuat sprite "Padle" (persegi panjang) yang bisa digerakkan, dan mengimpor sprite "Bola" dari pustaka.

  3. Memprogram Gerakan & Logika:

    • Membuat bola bergerak memantul terus-menerus.

    • Memberikan instruksi agar bola memantul ke atas ketika menyentuh Padle.

    • Menghentikan permainan jika bola menyentuh warna garis di bagian bawah layar.

  4. Menambahkan Suara: Memasukkan efek suara "pop" setiap kali bola berhasil dipukul oleh Padle.

Soal latihan membuat projek:
- Kendali gerak karakter
- Gerak jatuh berulang (konsep cloning)
- Membuat aturan main atau fungsi
- Tampilan Cover sebuah projek
- Membuat Score



4. Jenis-Jenis Blok Scratch

Ada empat kategori utama blok berdasarkan bentuk dan fungsinya:


  • Blok Pemicu (Hat): Berbentuk melengkung di atas. Selalu diletakkan di bagian paling atas untuk memulai sebuah skrip berdasarkan kejadian tertentu (misal: saat bendera hijau diklik). Contoh projek: Blok Pemicu

  • Blok Perintah (Stack): Memiliki lekukan di atas dan tonjolan di bawah agar bisa ditumpuk untuk menjalankan aksi berurutan. Contoh projek: Blok perintah

  • Blok Kontrol: Mirip dengan blok perintah namun sering kali memiliki bentuk seperti huruf "C" untuk membungkus blok lain (seperti logika perulangan/kondisi). Contoh projek: Blok kontrol

  • Blok Fungsi (Reporter): Tidak memiliki lekukan untuk ditumpuk, melainkan dimasukkan sebagai input ke dalam blok lain. Bentuk oval menghasilkan nilai teks/angka, sedangkan bentuk ujung runcing (segi enam) menghasilkan nilai logika (Benar/Salah). Contoh projek: Blok fungsi/reporter

Link projek :
- 4 Jeni blokScratch


5. Operator dan Fungsi Matematika

Scratch berfungsi ganda sebagai alat komputasi yang kuat:


  • Aritmatika Dasar: Mendukung penjumlahan (+), pengurangan (-), perkalian (*), dan pembagian (/). Link contoh: Ulangan aritmatika

  • Modulus & Pembulatan: Operator mod untuk mencari sisa hasil bagi (berguna untuk mengecek bilangan genap/ganjil), dan fungsi pembulatan angka desimal ke bilangan bulat terdekat. Contoh projek: Bilangan genap atau ganjil

  • Angka Acak: Blok pilih acak memungkinkan sistem memilih angka secara acak di antara dua batas nilai yang ditentukan (sangat berguna untuk membuat pola gerakan tidak tertebak dalam game). Gerak acak

  • Matematika Lanjutan: Tersedia fungsi kompleks seperti akar kuadrat, logaritma, eksponensial, dan trigonometri (sinus, kosinus) melalui menu drop-down khusus.

Link projek contoh :
- Operator