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