Scratch (bahasa pemrograman)

**Scratch** adalah sebuah bahasa pemrograman visual berbasis blok untuk para pelajar muda dalam membuat program tanpa harus memikirkan pemrograman tingkat lanjut. Dirancang untuk pelajar berumur 8 hingga 16 tahun, Scratch digunakan oleh orang-orang dari berbagai umur. Scratch berjalan sebagai situs web daring, tetapi juga bisa dipasang di komputer. 

Layanan ini dikembangkan oleh MIT Media Lab, dan telah diterjemahkan ke lebih dari 60 bahasa, termasuk Bahasa Indonesia. Scratch diajarkan dan digunakan di sekolah, perguruan tinggi, serta lembaga pengetahuan publik lainnya. Pada September 2020, statistik kunjungan di situs web resmi menunjukkan lebih dari 59 juta proyek dibagikan oleh lebih dari 58 juta pengguna, dan terdapat hampir 36 juta kunjungan ke situs web per-bulan.

## Nama
Nama Scratch diambil dari teknik *scratching* oleh disjoki di mana piringan hitam sebuah lagu diputar bolak-balik untuk menghasilkan campuran lagu dalam cara yang kreatif. Seperti teknik ini, Scratch memungkinkan para penggunanya untuk mencampur berbagai media seperti foto, musik, dan lagu ke dalam program.

## Scratch 3.2

### Antarmuka pengguna
Antarmuka Scratch dibagi menjadi tiga bagian utama: *area panggung*, *palet blok*, dan area pengkodean untuk menempatkan dan mengatur blok menjadi skrip yang dapat dijalankan dengan menekan bendera hijau atau mengklik kode itu sendiri. Pengguna juga dapat membuat blok kode mereka sendiri dan mereka akan muncul di "Blok Saya".

*Area panggung* menampilkan hasil (misalnya, animasi, baik dalam ukuran kecil atau normal, dengan opsi layar penuh juga tersedia) dan semua thumbnail sprite dicantumkan di area bawah. Area panggung menggunakan koordinat x dan y, dengan 0,0 sebagai pusat panggung.

Dengan sprite yang dipilih di bagian bawah area panggung, blok perintah dapat diterapkan padanya dengan menyeretnya dari palet blok ke dalam area pengkodean. Tab Kostum memungkinkan pengguna untuk mengubah tampilan sprite untuk menciptakan berbagai efek, termasuk animasi. Tab Sounds (suara) memungkinkan untuk memasukan suara dan musik ke sprite.

Saat membuat sprite dan latar belakang, pengguna dapat menggambar sprite mereka sendiri secara manual, memilih Sprite dari perpustakaan, atau mengunggah gambar.

Tabel di bawah ini menunjukkan kategori blok pemrograman:

### Pengeditan offline
Editor desktop offline tersedia untuk Microsoft Windows 10 di Microsoft Store dan Apple macOS 10.13. Hal ini memungkinkan untuk membuat program Scratch secara lokal, tanpa koneksi Internet. Editor offline juga dapat diunduh dalam versi sebelumnya, seperti Scratch 2.0 dan Scratch 1.4.

### Ekstensi
Di Scratch, ekstensi dapat menambahkan blok dan berbagai fitur tambahan yang dapat digunakan dalam proyek. Di Scratch 2.0 dan 3.0, semua ekstensi berbasis perangkat keras. Ekstensi berbasis perangkat lunak ditambahkan di Scratch 3.0, seperti text-to-speech, bersama dengan beberapa ekstensi berbasis perangkat keras baru seperti mikro: bit. Semua ekstensi tercantum di bawah ini:

#### Ekstensi fisik

* LEGO Mindstorms EV3, mengendalikan motor dan menerima data sensor dari Lego Mindstorms EV3
* Makey Makey, menggunakan Makey Makey untuk mengontrol proyek
* LEGO Education WeDo 2.0, mengendalikan motor dan menerima data sensor dari Lego WeDo
* Lego Education SPIKE Prime, bahasa pemrograman utama untuk Lego SPIKE Prime, termasuk mengontrol motor dan penerimaan data sensor
* BBC micro:bit, menggunakan BBC micro: bit untuk mengontrol proyek
* Lego BOOST
* Go Direct Force & Acceleration, merasakan dorongan, gerakan, dan berputar.

#### Ekstensi digital
Banyak ekstensi digital di Scratch 3.0 dulunya merupakan blok biasa yang dipindahkan ke bagian ekstensi untuk merapihkan palet kode.

* Musik, memainkan instrumen digital (drum, terompet, biola, piano, dan lainnya)
* Pen, menggambar di panggung dengan berbagai ketebalan dan warna
* Video Sensing, mendeteksi gerakan dengan kamera.

Berbagai ekstensi digital baru juga telah ditambahkan dalam kolaborasi dengan perusahaan komersial:

* Text to Speech, mengonversi kata-kata dalam teks menjadi suara (disediakan oleh Amazon)
* Translate, menggunakan Google Terjemahan untuk menerjemahkan teks dari satu bahasa ke berbagai bahasa lain, termasuk bahasa Arab, China, Belanda, Inggris, Prancis, Yunani, dan Jepang.

Pengguna juga dapat membuat ekstensi mereka sendiri untuk Scratch 3.0 menggunakan JavaScript.

## Penggunaan
 
Scratch digunakan di banyak tempat yang berbeda: sekolah, museum, perpustakaan, pusat komunitas, dan rumah. Meskipun kelompok usia pengguna Scratch yang ditargetkan adalah 8–16 tahun, tetapi digunakan oleh semua usia. Scratch juga telah dibuat untuk pendidik dan orang tua. Jangkauan yang luas ini telah melahirkan banyak komunitas pengguna, baik fisik maupun digital. Pada bulan April 2020, peringkat Tiobe untuk bahasQa pemrograman dunia memasukkan Scratch ke dalam 20 besar. Menurut Tiobe, ada 50 juta proyek yang ditulis di Scratch, dan setiap bulan satu juta proyek baru ditambahkan.

### Pendidikan
Scratch populer di Inggris dan Amerika Serikat melalui ekskul pemograman. Scratch digunakan sebagai bahasa pengantar karena pembuatan program di Scratch menarik relatif mudah, dan keterampilan yang dipelajari dapat diterapkan pada bahasa pemrograman lain seperti Python dan Java.
 
Scratch tidak hanya digunakan untuk membuat game. Programmer juga dapat membuat animasi, teks, cerita, musik, dan lainnya. Sudah banyak program yang dapat digunakan siswa untuk mempelajari topik matematika, sejarah, dan bahkan fotografi. Scratch memungkinkan guru membuat pelajaran konseptual dan visual serta tugas lab sains dengan animasi yang membantu memvisualisasikan konsep yang sulit. Dalam ilmu sosial, instruktur dapat membuat kuis, permainan, dan tutorial dengan elemen interaktif. Menggunakan Scratch memungkinkan kaum muda untuk memahami logika pemrograman dan bagaimana mereka berkolaborasi dengan sesama secara kreatif.

Scratch diajarkan oleh lebih dari 800 sekolah dan 70 perguruan tinggi organisasi DAV di India dan di seluruh dunia.

Di pendidikan tinggi, Scratch digunakan pada minggu pertama kursus pengantar ilmu komputer CS50 di Universitas Harvard.

### Komunitas online

Di Scratch, pengguna memiliki kemampuan untuk membagikan proyek mereka dan mendapatkan umpan balik. Proyek dapat diunggah langsung dari lingkungan pengembangan ke situs web Scratch dan setiap anggota komunitas dapat mengunduh kode sumber lengkap untuk dipelajari atau digabungkan ke dalam proyek baru. Anggota juga dapat membuat studio proyek, memberi komentar, memberi tag, favorit, dan "menyukai" proyek orang lain, mengikuti anggota lain untuk melihat proyek dan aktivitas mereka, dan berbagi ide. Proyek berkisar dari permainan, animasi, hingga alat praktis. Selain itu, untuk mendorong kreasi dan berbagi di antara pengguna, situs web ini sering membuat tantangan yang bernama "Scratch Design Studio".

Tim Scratch MIT bekerja untuk memastikan bahwa komunitas ini memelihara lingkungan yang bersahabat dan menghormati semua orang.

Pendidik memiliki komunitas online mereka sendiri yang disebut ScratchEd, dikembangkan dan didukung oleh Sekolah Pascasarjana Pendidikan Harvard. Dalam komunitas ini, pengajar Scratch berbagi cerita, bertukar pikiran, dan mengajukan pertanyaan.

### Scratch wiki
Scratch Wiki adalah sumber informasi Scratch, situs webnya, sejarah, dan fenomena yang mengelilinginya. Meskipun didukung oleh Scratch Team (pengembang Scratch), Scratch wiki terutama ditulis oleh Scratchers (pengguna Scratch) untuk informasi mengenai program dan situs web.

### Pengembang
Baik Scratch 2.0 dan 3.0 adalah open source di GitHub, dan pengembang dapat berkontribusi untuk Scratch.

## Referensi