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



Ringkasan Bab 2

Gerakan, Menggambar, dan Kloning 
Bab ini memperdalam penggunaan blok-blok Scratch untuk mengontrol pergerakan sprite, menggambar pola geometris, mengoptimalkan kode dengan perulangan, dan membangun game menggunakan fitur kloning dan variabel.


Gerakan Absolut (Koordinat)
Gerakan absolut memindahkan sprite ke lokasi yang pasti berdasarkan sistem koordinat. Panggung (Stage) Scratch beroperasi pada grid berukuran 480 × 360 dengan titik pusat di koordinat (0,0).

  • go to (x, y): Memindahkan sprite secara instan ke titik koordinat tertentu. Contoh projek: Pindah lokasi

  • glide to: Memindahkan sprite secara perlahan (meluncur) ke titik tertentu dalam durasi waktu yang ditentukan. Contoh projek: Gerak meluncur

  • set x to / set y to: Mengubah nilai sumbu horizontal (x) atau vertikal (y) secara mandiri. Contoh projek: Menetapkan posisi  X, Y

  • Pergerakan ini dihitung berdasarkan "pusat kostum" yang dapat diatur di Editor Gambar



Gerakan Relatif dan Arah
Gerakan relatif menginstruksikan sprite untuk bergerak berdasarkan posisi dan arah hadapnya saat ini.

  • Sistem Arah: Scratch menggunakan sistem angka untuk arah, yaitu 0 (atas), 90 (kanan), 180 (bawah), dan -90 (kiri). Conoh projek: Arah sprite

  • Move (gerak) & turn (putar): Menggerakkan sprite maju beberapa langkah ke arah hadapnya, atau memutarnya searah/berlawanan jarum jam. Contoh projek: Berputar

Catatan Desain: Agar perintah arah berfungsi visual dengan benar, gambar dasar kostum di Editor Gambar harus dibuat menghadap ke arah kanan (90°) serta usahakan brada di tengah (tanda lingkaran silang). Lihat contoh projek


Perintah Pena (Menggambar Visual)
Setiap sprite dibekali "pena" tersembunyi untuk menggambar jejak perjalanannya di Panggung.

  • Blok pen down (turunkan pena) membuat sprite meninggalkan garis saat bergerak, sementara pen up (angkat pena) menghentikan goresan. Contoh projek: Pensil warna

  • Blok clear berfungsi menghapus semua gambar pena di Panggung.

  • Pengguna dapat mengatur warna, ketebalan, dan ukuran pena untuk membuat aplikasi menggambar (drawing app) sederhana yang dikontrol lewat panah keyboard. Link contoh projek: Laba-laba merah


Kekuatan Pengulangan (Looping) & Stempel

Pengulangan adalah konsep krusial untuk membuat kode lebih pendek, efisien, dan mudah dimodifikasi.

  • Blok repeat sangat berguna untuk menggambar bangun datar (seperti persegi atau poligon) dengan mengulang instruksi "maju dan belok" tanpa harus menulis blok yang sama berkali-kali. Link contoh projek: Poligon, Segitiga sama sisi, Poligon lagi

  • Stempel (Stamp): Alih-alih menggambar garis, blok stempel mencetak salinan persis dari kostum sprite ke Panggung. Menggabungkan blok stempel dengan pengulangan putaran dapat menghasilkan karya seni simetris seperti bentuk kincir angin. Link contoh projek: Desain batik cap


Praktik Proyek: Logika Game & Kloning
Bab ini mendemonstrasikan penerapan perintah di atas melalui dua pembuatan game:

  • Mekanik Angka Acak & Variabel: Pada game mengumpulkan koin, koordinat (x,y) acak dikombinasikan dengan operasi matematika digunakan untuk memunculkan objek di titik grid tertentu. Proyek ini juga menggunakan variabel untuk mencatat skor dan pengatur waktu (timer) untuk batasan detik. Contoh projek: Menebak jarak, Acak Dadu

  • Kloning (Penggandaan Sprite): Untuk game menangkap puluhan apel yang jatuh, pengguna tidak perlu membuat banyak sprite secara manual. Fitur create clone of memungkinkan satu sprite induk untuk menggandakan dirinya sendiri. Contoh projek:  Memberi makan ikan

  • Klon mewarisi kostum, posisi, dan skrip dari induknya. Sangat penting menggunakan blok pemicu "ketika saya mulai sebagai klon" untuk mengontrol perilaku salinan tanpa membuat penggandaan berantai yang membuat program macet. Contoh projek: Dasar cloning



Ringkasan Bab 3

Palet Tampilan dan Suara pada Scratch
Bab ini mengeksplorasi cara menghidupkan program menggunakan blok dari palet Tampilan (Looks) dan Suara (Sounds), mengubah sprite yang statis menjadi animasi interaktif yang dilengkapi dengan efek visual dan audio.


1. Eksplorasi Palet Tampilan (Visual & Animasi)

Palet Tampilan mengontrol bagaimana sprite dan latar belakang (Stage) terlihat oleh pengguna.

  • Kostum & Latar Belakang: Menciptakan ilusi gerakan atau animasi dengan beralih antar-kostum secara cepat (menggunakan blok jeda/tunggu). Penggantian latar belakang juga dapat digunakan untuk memicu suatu peristiwa dalam cerita atau perpindahan level.  Contoh: Latar animasi

  • Gelembung Teks: Menggunakan perintah ucapkan (say) dan pikirkan (think) untuk membuat sprite berkomunikasi, baik secara permanen maupun dengan durasi waktu tertentu. 

  • Efek Grafis: Memanipulasi visual sprite dengan menerapkan berbagai efek seperti fisheye, pusaran, mosaik, hingga efek hantu (transparansi) untuk membuat transisi atau ilusi optik.Contoh: Aneka efek

  • Ukuran & Visibilitas: Mengontrol kemunculan sprite menggunakan tampilkan (show) dan sembunyikan (hide), serta memanipulasi persentase ukurannya untuk memberikan kesan kedalaman jarak (dekat/jauh) atau animasi pernapasan/bersin. Contoh : Petak umpet

  • Sistem Layer (Lapisan): Mengatur posisi tumpukan sprite (depan atau belakang) agar tidak saling menutupi secara keliru saat berada di koordinat yang sama. Contoh : Mengatur lapisan/layer

Link projek lengkap isa dilihat di Animasi memancing, Ska no. 1, Kerata api tua


2. Eksplorasi Palet Suara (Audio & Musik)

Palet Suara digunakan untuk mengatur elemen audio, efek suara, dan komposisi musik latar.

  • Pemutaran File (WAV/MP3): Menggunakan blok putar suara untuk efek suara instan atau putar suara hingga selesai untuk membuat musik latar (BGM) yang berulang tanpa tumpang tindih. Link rojek contoh: Pemutar lagu, Music player

  • Ketukan & Instrumen: Memanfaatkan fitur drum bawaan dan pilihan instrumen untuk menciptakan efek suara permainan atau menggubah lagu utuh (seperti notasi musik "Frère Jacques") dengan durasi ketukan (beats) yang presisi. Contoh projek: Kreasi musik

  • Kontrol Volume & Tempo: Menciptakan efek suara yang dinamis, seperti suara yang memudar (fade out) saat sprite menjauh dengan memanipulasi persentase volume, serta mengatur kecepatan pemutaran musik menggunakan kontrol tempo (BPM). Contoh projek: Pengatur volume


3. Penerapan Berbasis Proyek (Project-Based Application)

Untuk memaksimalkan pemahaman, materi ini diakhiri dengan dua proyek komprehensif yang mengintegrasikan seluruh blok perintah di atas:

  • Pesta Dansa (Dance Party): Proyek yang menggabungkan perulangan animasi kostum penari, sinkronisasi musik latar yang diputar berulang di Panggung, manipulasi properti latar (menjadikan elemen latar seperti bola lampu sebagai sprite untuk diubah warnanya), dan penggunaan layer untuk lampu sorot transparan. Animasi video clip

  • Kembang Api (Fireworks): Simulasi fisika sederhana menggunakan fitur kloning roket. Melibatkan perubahan ukuran dari kecil ke besar, manipulasi efek grafis, suara ledakan, perpindahan kostum secara acak, hingga klon menghapus dirinya sendiri di akhir animasi. Kembang api, Pen Art, Kembang api lagi, Pola pena


4. Evaluasi & Latihan Mandiri

Terdapat 7 studi kasus praktis untuk memperdalam pemahaman logika pemrograman, meliputi:

  • Sinkronisasi Gerak: Menganimasikan Zebra berlari.

  • Sinkronisasi Audio-Visual: Mengatur durasi kostum Serigala melolong agar pas dengan durasi file audio.

  • Interaktivitas Klik: Membuat permainan mengganti kostum (Topi/pakaian) menggunakan klik mouse.

  • Manipulasi Lingkungan: Menggunakan berbagai efek grafis secara bersamaan pada objek akuarium (pusaran air, gelembung, ikan, karang berubah warna).

  • Animasi Teks: Mengubah ukuran dan rotasi sprite berbentuk kata.

  • Dialog Berurutan: Menyusun percakapan berbalas (lelucon) antara dua karakter. Percakapan

  • Ekosistem Alam: Mengombinasikan kostum, gerakan, dan suara acak pada hewan (burung terbang, bebek makan, anjing laut bermain).

Link projek; Animasi kereta



Ringkasan Bab 4

Bab 4 mengenai Prosedur dalam Scratch:

Konsep Utama Prosedur
Bab ini berfokus pada strategi "bagi dan taklukkan" (divide and conquer) dalam pemrograman. Alih-alih menulis satu skrip yang sangat panjang, program yang kompleks dipecah menjadi bagian-bagian kecil yang disebut prosedur. Hal ini membuat program jauh lebih mudah ditulis, dibaca, dan diperbaiki (debugging).

Penyiaran Pesan (Broadcasting)

  • Fungsi Sinkronisasi: Digunakan untuk mengoordinasikan berbagai sprite agar bekerja bersamaan.
  • Cara Kerja: Satu sprite mengirimkan pesan menggunakan blok siarkan (broadcast). Semua sprite akan menerima pesan tersebut, namun hanya sprite yang memiliki blok ketika saya menerima (when I receive) yang sesuai yang akan bereaksi dan menjalankan skripnya. Blok Siarkan
  • Siarkan dan Tunggu: Blok ini menahan skrip pengirim hingga semua sprite penerima selesai menjalankan tugasnya, memastikan urutan eksekusi yang tepat. 
  • Prosedur Klasik: Sebelum Scratch 2.0 merilis fitur blok kustom, penyiaran pesan ke diri sendiri adalah satu-satunya cara untuk menyimulasikan cara kerja sebuah prosedur.

Link projek: Blok Siarkan


Blok Kustom (Custom Blocks)

  • Membuat Blok Sendiri: Anda dapat membuat prosedur sendiri melalui fitur Buat Blok (Make a Block). Scratch akan membuat blok definisi (define) di mana Anda menyusun logika program, dan blok panggilan yang bisa Anda gunakan berulang kali.
  • Jalankan Tanpa Penyegaran Layar: Opsi ini (Run without screen refresh) memaksa Scratch menjalankan seluruh kode di dalam prosedur secara instan tanpa jeda animasi. Sangat berguna untuk menggambar grafis kompleks dengan cepat tanpa layar berkedip.
  • Penggunaan Kembali Kode (Code Reuse): Dengan blok kustom, kode yang sering dipakai tidak perlu disalin-tempel berulang kali. Cukup panggil blok tersebut kapan pun dibutuhkan.

Link projek: Blok Kostum Gerakan


Parameter dan Prosedur Bersarang

  • Menambahkan Parameter: Blok kustom dapat dibuat fleksibel dengan menambahkan "slot input" (untuk angka, teks, atau Boolean). Alih-alih membuat prosedur yang hanya bisa menggambar persegi berukuran 100 piksel, Anda bisa menambahkan parameter `sisi` agar ukurannya bisa ditentukan bebas setiap kali blok dipanggil. 
  • Parameter vs Argumen: **Parameter** adalah label/variabel di dalam definisi blok (misal: `sisi`), sedangkan **argumen** adalah nilai nyata yang dimasukkan saat memanggil blok tersebut (misal: angka `50`).
  • Prosedur Bersarang: Sebuah prosedur sah-sah saja memanggil prosedur lain. Contohnya, prosedur `Persegi` dipanggil di dalam prosedur `Baris`, dan prosedur `Baris` dipanggil di dalam prosedur `Papan Catur`. Ini memungkinkan pembuatan pola kompleks dengan sangat mudah.

Link projek:  Blok kostum 2


Pendekatan Pemrograman Terstruktur
Pemrograman terstruktur adalah metode untuk menyederhanakan kode yang kompleks. Ada dua pendekatan utama yang bisa digunakan:

Pendekatan Top-Down
Bergerak dari masalah besar (atas) lalu dipecah ke bawah menjadi tugas-tugas kecil yang spesifik.

  • Contoh penerapan: Ingin menggambar rumah. Masalah dipecah menjadi: prosedur gambar atap, dinding, dan pintu secara terpisah.

Pendekatan Bottom-Up
Bergerak dari komponen paling dasar (bawah), lalu dirangkai ke atas untuk membangun sistem yang besar.

  • Contoh penerapan:  Membuat prosedur `daun` sederhana, lalu merangkainya menjadi `cabang`, dan akhirnya menggabungkan cabang-cabang tersebut menjadi bentuk `bunga` raksasa.
Trik dengan mengamati setiprangkaian kode dg menambah blok wait 1 secon untuk dapat melihat secara rinci arti dari rangkaian tersebut.

Link projek: Pemrograman terstruktur


Ringkasan bab 5

Bab 5 mengenai **Variabel** dalam Scratch:

1. Tipe Data di Scratch
Scratch secara bawaan mengenali tiga jenis tipe data utama. Bentuk blok kode di Scratch dirancang khusus untuk menunjukkan tipe data apa yang dapat dimasukkan ke dalamnya.

  1. Boolean: Hanya memiliki dua nilai (Benar/Salah). Diwakili oleh slot/blok berbentuk segi enam.
  2. Angka (Number): Mencakup bilangan bulat maupun desimal. Diwakili oleh slot/blok berbentuk persegi panjang membulat.
  3. String: Teks berupa urutan karakter (huruf, angka, simbol). Juga menggunakan blok berbentuk persegi panjang membulat.

Catatan: Scratch memiliki fitur konversi otomatis. Jika Anda memasukkan angka ke dalam blok teks, Scratch akan mengubahnya menjadi teks, dan sebaliknya, tanpa memunculkan pesan error.

Link penjelasan lengkapnya: Data pada Scratch

2. Konsep Dasar Variabel
Apa itu Variabel? Variabel ibarat "kotak" bernama di dalam memori komputer yang digunakan untuk menyimpan suatu nilai (seperti angka atau teks) agar dapat diingat, dipanggil, atau diubah oleh program di kemudian hari (misalnya: menyimpan skor permainan, nyawa pemain, atau hasil perhitungan matematika).

Penamaan: Disarankan menggunakan nama yang deskriptif (misal: kecepatanMobil, bukan sekadar `x`). Nama variabel di Scratch peka terhadap huruf besar-kecil (case-sensitive).

Link projek: 


3. Cakupan Variabel (Scope)
Saat membuat variabel, Anda harus menentukan siapa saja yang memiliki akses ke "kotak" tersebut:

  • Untuk Semua Sprite (Global): Variabel ini dapat dibaca dan diubah oleh sprite mana pun serta oleh Stage. Cocok untuk data umum seperti skor atau level permainan.
  • Variabel Cloud: Opsi global khusus di mana data disimpan di peladen (server) Scratch, sehingga nilainya tetap tersimpan meskipun pengguna menutup peramban (berguna untuk fitur High Score global).

Hanya Untuk Sprite Ini (Lokal): Hanya sprite pemilik yang dapat mengubah nilainya, meskipun sprite lain tetap bisa membacanya. Berguna agar data tidak tidak sengaja terubah oleh sprite lain.


4. Variabel pada Klon (Clones)
Ketika sebuahsprite dikloning, klon tersebut akan mewarisi salinan dari variabel lokal (Hanya untuk sprite ini) milik induknya.

  • Nilai awal klon sama dengan nilai induk saat itu.
  • Setelah klon tercipta, perubahan variabel pada klon tidak akan memengaruhi induknya, dan sebaliknya. Ini sering dimanfaatkan untuk memberikan ID unik pada setiap klon.
Link contoh projek: Clone engine


5. Memanipulasi dan Memantau Variabel

  • Ubah Nilai: Gunakan blok `set [variabel] to...` (atur ke) untuk mengganti nilai variabel secara langsung, dan blok `change [variabel] by...` (ubah sebesar) untuk menambah atau mengurangi nilai saat ini dengan angka tertentu.
  • Monitor Variabel: Variabel dapat ditampilkan secara visual di atas Stage. Monitor ini bisa diatur menjadi tampilan normal, ukuran besar, atau Slider (penggeser).
  • Interaksi Slider: Mode penggeser sangat berguna untuk membuat simulasi interaktif, di mana pengguna dapat menggeser nilai variabel secara langsung untuk melihat perubahan seketika (seperti mengatur tegangan pada simulasi hukum Ohm atau merubah warna latar).

Link contoh projek: Atur variable


6. Mendapatkan Input dari Pengguna
Untuk membuat program yang interaktif dan responsif terhadap pengguna, Anda dapat menggunakan blok dari palet Sensing (Sensor):

  • Blok `ask and wait` (Tanya dan tunggu): Memunculkan kotak teks agar pengguna bisa mengetikkan sesuatu (teks atau angka).
  • Blok `answer` (Jawaban): Menyimpan apa pun yang baru saja diketik oleh pengguna. Data dari blok ini bisa dimasukkan ke dalam variabel atau langsung dikalkulasi dan digabungkan (menggunakan blok `join` / gabung) untuk memberikan respon, seperti menyapa nama pengguna atau melakukan perhitungan matematika otomatis.
Link projek: Aplikasi absensi


Ringkasan Bab 6

Gambaran Umum
Bab ini berfokus pada perpindahan dari eksekusi program yang berjalan berurutan (sekuensial) ke program dinamis yang dapat mengambil keputusan. Dengan menggunakan logika percabangan, skrip dapat mengevaluasi kondisi dan merespons input pengguna dengan tindakan yang berbeda.

Konsep Dasar (Teori)
Operator Perbandingan (Relasional):

  • Menggunakan blok `>`, `<`, dan `=` untuk membandingkan nilai.
  • Hasil evaluasinya selalu berupa nilai Boolean (True atau False).
  • Dapat digunakan untuk angka maupun teks (string). Perbandingan teks di Scratch tidak peka huruf besar/kecil (case-insensitive) dan diurutkan berdasarkan urutan abjad kamus.


Struktur Keputusan:

  • Blok `if`:
  • Menjalankan serangkaian perintah hanya jika kondisinya bernilai benar. Jika salah, program melewati blok tersebut.
  • Blok `if/else`:
  • Memberikan dua jalur alternatif. Jika kondisi benar, eksekusi cabang pertama; jika salah, eksekusi cabang kedua.
  • Percabangan Bersarang (Nested):
  • Meletakkan blok `if` di dalam blok `if` lainnya untuk menguji beberapa kondisi secara bertahap (sangat berguna untuk membuat program berbasis menu pilihan).
  • Penggunaan Flag:
  • Memanfaatkan variabel sebagai penanda status (contoh: `0` untuk salah/nonaktif, `1` untuk benar/aktif) guna melacak kejadian tertentu dalam program. Contoh projek: untuk menandai sebuah tindakan apakah sudah dilakukan atau belum


Operator Logika:

  • `AND`: Benar hanya jika kedua kondisi benar.
  • `OR`: Benar jika salah satu atau kedua kondisi benar.
  • `NOT`: Membalikkan nilai logika (benar menjadi salah, salah menjadi benar).

Operator ini menyederhanakan kode saat perlu mengevaluasi rentang angka atau beberapa parameter sekaligus tanpa membuat blok `if` bersarang yang terlalu dalam.

Link penjelasan projeknya: Trik blok wait until not . . .


Penerapan & Proyek (Praktik)
Bab ini mendemonstrasikan konsep logika di atas melalui beberapa proyek aplikasi yang dapat langsung dipraktikkan:

1. Tebak Koordinat Saya:
Sebuah permainan interaktif di mana *sprite* muncul di lokasi acak pada bidang Kartesius, dan pemain harus menebak nilai `x` dan `y`. Program menggunakan blok `if/else` bersarang untuk mengevaluasi input jawaban secara bertahap. Tebak jarak

2. Klasifikasi Segitiga:
Program berbasis menu visual. Program menggambar segitiga acak, dan pengguna menebak jenisnya (Sama Sisi, Sama Kaki, atau Sembarang) menggunakan tombol antar-muka. Ini mendemonstrasikan cara menangani input multi-pilihan dengan membandingkan nilai variabel. Segitiga 

3. Pengikut Garis (Line Follower):
Simulasi logika robotika dasar menggunakan blok deteksi `color touching?`. Sprite mengevaluasi posisi warnanya terhadap garis lintasan hitam, lalu menggunakan logika percabangan untuk terus maju atau berbelok menyesuaikan lintasan. Mobil balap tenaga suara

4. Persamaan Garis:
Aplikasi matematika yang lebih kompleks. Pengguna memindahkan dua titik koordinat, lalu program mengevaluasi kemiringan dan titik potong sumbu `y` untuk menampilkan persamaan garisnya. Logika `if` digunakan di sini untuk menangani pengecualian, seperti garis vertikal atau horizontal murni.

Link projek: 



Ringkasan Bab 7

Konsep Dasar Pengulangan (Loop)
Loop adalah perintah pemrograman yang memberitahu komputer untuk mengeksekusi serangkaian pernyataan secara berulang. Komputer sangat mahir melakukan tugas berulang tanpa hambatan. Secara umum, ada loop erkontrol penghitung (jumlah putaran sudah pasti), terkontrol kondisi (berhenti saat syarat terpenuhi), dan tak terbatas (berjalan selamanya).


Tiga Blok Loop Utama di Scratch
Scratch menyediakan tiga blok pengulangan utama untuk menangani berbagai skenario pemrograman:

  • Repeat (Loop Pasti): Loop yang dikendalikan penghitung. Perintah diulangi sesuai dengan jumlah angka yang ditentukan. Digunakan saat Anda sudah tahu persis berapa kali pengulangan harus terjadi (misalnya, menggambar 4 sisi persegi). Contoh Poligon
  • Repeat until (Loop Terkontrol Kondisi): Mengulang instruksi selama kondisi ujinya salah, dan akan berhenti ketika kondisinya menjadi benar. Sangat cocok saat Anda tidak tahu pasti berapa kali loop harus berjalan (misalnya, musuh mengejar pemain sampai jaraknya dekat). Contoh Jatuh berulang
  • Forever (Loop Tak Terbatas): Menjalankan perintah terus-menerus tanpa henti. Jika digabungkan dengan blok `if` (membentuk forever/if), ini menjadi loop bersyarat yang sangat berguna untuk merespons kontrol keyboard terus-menerus (seperti tombol panah untuk bergerak). Contoh Blok fungsi


Mengontrol Loop dan Data

  • Perintah stop: Digunakan untuk menghentikan program di tengah jalan. Anda bisa menghentikan satu skrip yang sedang berjalan (stop this script), semua skrip di aplikasi (stop all), atau skrip lain di dalam satu sprite. Ini berguna untuk menghentikan pencarian data (misalnya, ketika jawaban matematika sudah ditemukan di tengah loop). Contoh projek Lihat kode ikan
  • Validasi Input Pengguna: Loop sangat berguna untuk mengecek apakah data yang dimasukkan pengguna sudah benar. Jika pengguna memasukkan opsi yang salah (misalnya, memilih level 3 saat hanya ada level 1 dan 2), loop akan terus menanyakan pertanyaan tersebut sampai pengguna memasukkan input yang benar. Contoh projek Cek jawaban
  • Penghitung (*Counter*): Variabel yang dibuat untuk melacak jumlah iterasi. Ini sering digunakan untuk membatasi percobaan (misalnya, gagal masuk kata sandi 3 kali), atau untuk menghitung lompatan angka (menghitung mundur atau menjumlahkan bilangan genap).


Teknik Pengulangan Lanjutan

  • Loop Bersarang (Nested Loops): Menempatkan loop di dalam loop lain. Variabel penghitung biasanya ditugaskan untuk loop luar dan loop dalam. Teknik ini sangat berguna untuk memproses data dua dimensi atau menemukan semua kemungkinan kombinasi (seperti variasi menu makanan atau memecahkan masalah probabilitas matematika).
  • Rekursi: Sebuah teknik di mana suatu prosedur memanggil dirinya sendiri. Ini adalah alternatif dari loop. Agar tidak berjalan selamanya dan membuat program macet, prosedur rekursif wajib memiliki blok kondisi (`if`) untuk menentukan kapan panggilan terhadap dirinya sendiri harus dihentikan (disebut batasan dasar/kondisi terminasi).

Penerapan Praktis

Bab ini juga mendemonstrasikan bahwa gabungan berbagai loop dan kondisi dapat digunakan untuk membangun proyek yang kompleks, di antaranya:

1. Jam Analog:
Menggunakan `forever` untuk terus memperbarui rotasi jarum detik, menit, dan jam sesuai waktu sistem. Jam dinding

2. Game Menembak Burung:
Memanfaatkan kloning, deteksi tumbukan (menggunakan loop dan kondisi), dan pengaturan waktu. Memanah, Mencari burung, Beburu hantu

3. Simulasi Fisika:
Menggunakan loop dengan kalkulasi matematika di setiap iterasinya untuk mensimulasikan gerak jatuh bebas dan lintasan parabola (*projectile motion*) secara presisi. Gerak parabola




Ringkasan Bab 8

Mengenai Pemrosesan String:

Konsep Dasar String
  • String adalah serangkaian karakter yang teratur dan diperlakukan sebagai satu kesatuan.
  • Karakter dalam string dapat berupa huruf (besar/kecil), angka, dan simbol yang ada pada keyboard.
  • Di dalam Scratch, string merupakan salah satu dari tiga tipe data yang tersedia, selain Boolean dan angka.
  • String sering digunakan untuk menyimpan data seperti nama, alamat, atau nomor telepon.


Operasi Dasar pada Scratch

  • Mengakses karakter: Karakter individual dapat diakses menggunakan operator letter of (misalnya: letter 1 of name).
  • Menghitung karakter: Jumlah total karakter dalam sebuah string dapat diketahui menggunakan operator length of.
  • Mengubah string: Di Scratch, Anda tidak dapat mengubah karakter di dalam string secara langsung. Satu-satunya cara untuk memodifikasi string (seperti menghapus atau menambah karakter) adalah dengan membuat string baru.


Teknik dan Algoritma Pemrosesan String

  • Menghitung Karakter Tertentu: Anda dapat menghitung karakter (seperti huruf vokal) menggunakan blok perulangan yang memeriksa setiap huruf satu per satu dari awal hingga akhir panjang string menggunakan variabel pelacak posisi.
  • Membandingkan Karakter (Palindrom): Untuk memeriksa apakah sebuah angka atau kata adalah palindrom (dibaca sama dari depan dan belakang), gunakan dua variabel posisi yang bergerak berlawanan (satu maju dari awal, satu mundur dari akhir) untuk membandingkan karakter.
  • Menyisipkan Karakter (Insert): Untuk menambah karakter di tengah kata, buat string kosong baru, lalu salin huruf dari kata asli satu per satu dan sisipkan huruf baru ketika perulangan mencapai posisi yang ditentukan.
  • Mengacak Karakter (Unscramble): Untuk mengacak kata, pilih huruf secara acak dari string asli, pindahkan ke string sementara, dan hapus huruf tersebut dari string asli agar tidak digunakan dua kali.

Aplikasi dan Proyek Praktis
Materi ini menerapkan teknik manipulasi string ke dalam beberapa proyek program, yaitu:

  • Pig Latin: Mengubah kata sandi bahasa dengan cara memindahkan huruf pertama dari kata masukan ke bagian akhir, lalu menambahkan huruf "ay".
  • Fix My Spelling: Permainan yang menyisipkan huruf acak pada posisi acak di dalam kata yang benar, lalu meminta pemain menebak ejaan aslinya.
  • Permainan Tembak: Permainan gerak relatif di mana pemain harus memperkirakan sudut belok dan jarak agar sprite Pemain dapat mengenai target.
  • Konverter Biner ke Desimal: Program yang mengubah angka biner (basis-2) menjadi desimal (basis-10) dengan cara mengalikan setiap digit biner dengan nilai posisinya (kelipatan pangkat 2) lalu menjumlahkannya.
  • Hangman: Permainan menebak kata rahasia di mana program melacak tebakan huruf pemain, menampilkan posisi huruf yang benar, dan menggambar bagian tubuh penggantung jika tebakannya salah.
  • Tutor Pecahan: Permainan edukasi matematika untuk operasi pecahan (+, -, ×, ÷) yang juga menggunakan perhitungan Faktor Persekutuan Terbesar (FPB) untuk menyederhanakan jawaban pecahan ke bentuk paling sederhana.

Materi ini diakhiri dengan kesimpulan bahwa pemrosesan string adalah keterampilan krusial, dan bab selanjutnya akan membahas penggunaan *list* (daftar) untuk menyimpan banyak nilai.


Ringkasan Bab. 9

Konsep Dasar List (Daftar)
Berbeda dengan variabel biasa yang hanya dapat menyimpan satu nilai, List (Daftar) digunakan untuk menyimpan dan mengelompokkan banyak nilai yang saling berkaitan (seperti daftar nama, nomor telepon, atau nilai ujian).

  • List bekerja seperti lemari dengan banyak laci, di mana setiap laci menyimpan satu data.
  • Setiap elemen di dalam list memiliki indeks penyimpanannya sendiri. Di Scratch, indeks selalu dimulai dari angka 1

Membuat dan Memanipulasi List di Scratch
Pembuatan list mirip dengan variabel (melalui palet Data). List dapat diatur menjadi global (Untuk semua sprite) atau lokal (Hanya untuk sprite ini). Scratch menyediakan beberapa perintah utama untuk memanipulasi list:

  • Add (Tambah): Menambahkan item baru di posisi paling akhir dari list.
  • Delete (Hapus): Menghapus item berdasarkan indeks (1, terakhir, atau semua).
  • Insert (Sisipkan): Menempatkan item baru pada indeks tertentu dan menggeser elemen lama ke bawah.
  • Replace (Ganti): Menimpa atau mengganti data pada indeks tertentu dengan data baru.
  • Item of: Mengakses atau membaca isi dari elemen list pada indeks tertentu.
  • Contains Blok Boolean untuk memeriksa apakah sebuah teks ada di dalam list (tidak peka huruf besar/kecil).

Catatan Keamanan:
Scratch tidak akan crash atau menampilkan pesan error jika Anda memasukkan indeks yang tidak valid (di luar batas list), namun program akan menghasilkan respons yang tidak terduga, seperti mengembalikan nilai kosong atau mengabaikan perintah penghapusan.


List Dinamis dan Input Pengguna
List dapat membesar atau mengecil secara dinamis saat program berjalan. Ada dua cara utama untuk mengisi list menggunakan input dari pengguna:

  • Menanyakan jumlah data di awal: Meminta pengguna menentukan jumlah data yang akan dimasukkan, lalu menggunakan perulangan (loop) sebanyak angka tersebut.
  • Menggunakan nilai penanda (Sentinel): Meminta pengguna memasukkan nilai secara terus-menerus hingga mereka memasukkan nilai khusus (misalnya -1) yang menandakan bahwa proses input telah selesai.

Operasi pada List Numerik
Untuk list yang berisi angka, ada beberapa operasi umum yang sering digunakan:

  • Mencari Nilai Maksimum & Minimum: Dilakukan dengan mengasumsikan angka pertama sebagai nilai awal, lalu menggunakan perulangan untuk membandingkannya dengan angka-angka berikutnya secara berurutan.
  • Mencari Rata-rata: Menggunakan pola *akumulator* di dalam perulangan untuk menjumlahkan semua angka, lalu membagi total tersebut dengan panjang list (jumlah item).

Algoritma Pencarian dan Pengurutan

  • Pencarian Linier (Linear Search): Mencari posisi suatu item dengan membandingkan nilai target terhadap setiap elemen list satu per satu dari awal hingga akhir.
  • Menghitung Frekuensi: Menggunakan perulangan untuk menghitung berapa kali sebuah nilai tertentu muncul di dalam list.
  • Pengurutan Gelembung (Bubble Sort): Algoritma sederhana untuk mengurutkan list dengan membandingkan dua elemen yang bersebelahan dan menukarnya jika urutannya salah. Proses ini diulang terus-menerus melalui dua loop (dalam dan luar) hingga tidak ada lagi elemen yang perlu ditukar.
  • Mencari Nilai Median: Setelah list diurutkan, nilai median dicari dengan mengambil angka tengah (jika panjang list ganjil) atau menghitung rata-rata dari dua angka di tengah (jika panjang list genap).

Penerapan List dalam Proyek
Materi ini juga mendemonstrasikan kekuatan list melalui berbagai proyek nyata, antara lain:

Bagan Batang (Bar Chart):
Menggambar histogram berdasarkan data tinggi yang dimasukkan ke dalam list. 

Penyair Mesin (The Poet):
Menghasilkan puisi acak dengan mengambil kata dari beberapa list yang berbeda (kata benda, kata kerja, kata sifat). 

Penyihir Matematika & Kuis:
Menunjukkan cara menggunakan dua list secara paralel atau menjadikan satu list sebagai indeks (pointer) untuk membaca data terkait di list yang lain. 


Bahan bacaan:




selesai