Bab 7 Algoritma dan Pemrograman
A. Scratch vs Blockly
Kalian sudah pernah memprogram dengan menggunakan Bahasa Scratch.
Dalam Bahasa Scratch, kalian selalu mempunyai stage (panggung), backdrop, dan Sprite (yang dinyatakan dalam bentuk gambar kucing, manusia, ular, atau benda apapun). Sprite dapat kalian “mainkan” seperti kalian memainkan wayang melalui perintah (digerakkan/diubah posisinya, bersuara,
mengatakan sesuatu dalam bentuk tekstual). Dalam sebuah program Scratch, kalian dapat membuat karya interaktif, yaitu Sprite dapat merespons event yang diberikan, misalnya melalui klik mouse, ketukan keyboard, atau lewat interface lainnya seperti konduktor (buah, copper plate atau lainnya) yang dihubungkan ke Makey-Makey sebagai interface ke komputer.
Sprite dapat bereaksi terhadap event, atau digerakkan melalui perintah-perintah yang tersedia. Program pun baru akan mulai dijalankan saat kalian memberikan event. Pada dasarnya, pemrograman dalam Scratch berbasis event. Artinya, objek-objek yang tersedia siap menerima event dan dapat dieksekusi atau dijalankan kode programnya “bersama-sama”. Sebagai catatan, objek-objek tersebut kelihatannya dijalankan bersama-sama, padahal sebetulnya, dilakukan secara bergiliran. Itulah sebabnya, misalnya kalian dapat mempunyai sebuah game, di mana ada dua sprite (objek) kucing yang berkejar-kejaran, atau bahkan dua kucing berebut ikan asin yang berjatuhan dari atas. Kalian harus menulis kode program untuk setiap sprite yang dibuat. Jika sudah belajar dengan baik, kalian tentu dapat memahami bagian ini.
Beberapa blok Scratch sama dengan blok yang tersedia di Blockly.
Mari, pelajari kesamaannya. Akan tetapi, patut dicatat bahwa blok yang dicantumkan di sini adalah blok Blockly yang dasar, yang belum diperkaya dengan blok yang digunakan untuk keperluan tertentu. Perbandingan ini didasari tools yang ada di:
1. Scratch: https://scratch.mit.edu/
2. Blockly : https://developers.google.com/blockly
Scratch: https://scratch.mit.edu/
Create Stories, Games, animation!
Blockly : https://developers.google.
com/blockly
75
Bab 7 Algoritma dan Pemrograman
Dari gambar di atas, terlihat bahwa blok dalam Blockly dasar lebih sedikit dibandingkan Scratch. Scratch memang dirancang untuk membuat cerita (komik), permainan, dan animasi. Fitur dasar Scratch dirancang untuk membuat aplikasi yang lebih interaktif dibanding Blockly. Fitur yang disediakan Blockly lebih sedikit, yaitu berupa fitur dasar (primitif) saja. Akan tetapi, dengan fitur dasar tersebut, kalian dapat membuat produk-produk seperti yang dapat dibuat dengan Scratch, meskipun membutuhkan waktu yang lebih lama.
Cara yang dipakai untuk memprogram dalam kedua lingkungan tersebut juga berbeda. Scratch merupakan program visual yang berbasis event dan aplikasi hasil memprogram Scratch lebih interaktif. Adapun Blockly merupakan program yang menerapkan teknik pemrograman prosedural, tetapi perintahnya menggunakan blok yang sangat mirip dengan Scratch.
Tahukah kalian bahwa Scratch 3.0 dikembangkan dengan menggunakan Blockly? Jadi, sebuah bahasa pemrograman dikembangkan menggunakan bahasa pemrograman yang sudah ada. Kalian dapat membaca mengenai hal ini pada tautan berikut ini: https://developers.googleblog.com/2019/01/
Scratch-30s-new-programming-blocks.html.
Lalu, mengapa kalian perlu mempelajari Scratch dan juga juga Blockly?
Mengetahui dan dapat memakai banyak bahasa itu perlu, seperti dalam kehidupan nyata. Mau tidak mau, kalian juga perlu mengetahui banyak bahasa.
Sebagai contoh, di Indonesia kalian menggunakan bahasa Indonesia, bahasa daerah, serta bahasa Inggris karena bahasa Inggris saat ini paling banyak dipakai sebagai bahasa komunikasi internasional. Semakin banyak bahasa yang kalian pelajari, kalian akan semakin bisa berkomunikasi dengan lebih banyak kalangan. Dalam dunia informatika, juga sama. Sebaiknya, kalian juga mengenal lebih dari satu bahasa pemrograman seperti Scratch dan Blockly.
Tabel berikut ini menunjukkan perbandingan blok-blok dalam Scratch dan Blockly.
Tabel 7.1 Perbandingan Blok-Blok dalam Scratch dan Blockly
Kelompok
Blok Blok Scratch Kelompok
Blok Blok Blockly
Control Nama Blok: repeat Loops Nama Blok: repeat n times
Nama Blok: repeat until Nama Blok: repeat while Simbol Visual:
Nama Blok: forever Nama Blok: repeat_
forever
Nama Blok: for each item in list
Nama Blok: if then Logic Nama Blok: if.. do
Nama Blok: if then else Nama Blok: if.. do..
else
77
Bab 7 Algoritma dan Pemrograman
Kelompok
Blok Blok Scratch Kelompok
Blok Blok Blockly
Operators Nama Blok: + Math Nama Blok: +
Nama Blok: - Nama Blok: -
Nama Blok: * Nama Blok: ×
Operators Nama Blok: / Math Nama Blok: ÷
Nama Blok: mod Nama Blok: remainder of
Nama Blok: length of Text Nama Blok: length of
Variables Nama Blok: set variable to
V a r i -
ables Nama Blok: set variable to
Nama Blok: change
variable by Nama Blok: change
variable by
Nama Blok: show
variable Nama Blok: return
variable value
Nama Blok: hide varible
Kelompok
Blok Blok Scratch Kelompok
Blok Blok Blockly
MyBlock Nama Blok: Make a Block Function Nama Blok: to do something
Nama Blok: Make a Block
– Add an input Nama Blok: to do
something input name:x
Nama Blok: to do something…return
Catatan penting
Karena Scratch adalah bahasa yang berbeda dengan Blockly, tentu saja ada blok Scratch yang tidak ada pada Blockly. Sebaliknya, ada blok pada Blockly yang tidak ada pada Scratch.
Uji Pemahaman
Sebelum mulai membuat program, ayo, uji terlebih dahulu pemahaman kalian tentang perbedaan Blockly dan Scratch yang sudah dijelaskan di atas!
1. Pemrograman dalam Bahasa Scratch adalah pemrograman berbasis event.
Apa yang dimaksud dengan pemrograman berbasis event?
2. Mengapa kalian perlu menguasai banyak bahasa pemrograman?
3. Tuliskanlah dua nama blok yang ada di Scratch, tetapi tidak ada di Blockly!
4. Tuliskanlah dua nama blok yang ada di Blockly, tetapi tidak ada di Scratch!
79
Bab 7 Algoritma dan Pemrograman
Ayo, Kita Kerjakan
Aktivitas Individu
Aktivitas AP-K9-01: Bilangan Prima
Tujuan: Mengenal dan membandingkan blok-blok yang ada pada Scratch dan Blockly
Tingkat Kesulitan: 1
Syarat Pengetahuan: Konsep Bilangan Prima
Untuk mengingat kembali blok yang ada pada Blockly dan Scratch serta melihat perbandingannya, kalian dapat melakukan aktivitas ini. Pada aktivitas ini, kalian akan membuat program dalam Blockly dan Scratch untuk menentukan apakah sebuah bilangan bulat positif, yaitu N, adalah sebuah bilangan prima atau bukan.
Input: Sebuah bilangan bulat positif, yaitu N.
Output: Tulisan di layar berupa
• Prima jika N adalah sebuah bilangan prima.
• Bukan Prima jika N bukan sebuah bilangan prima.
Contoh Input dan Output:
Nomor Contoh Input Contoh Output
1. 2 Prima
2. 150 Bukan Prima
3. 173 Prima
Analisis
1. Untuk dapat memeriksa apakah sebuah bilangan bulat positif adalah bilangan prima atau bukan, kalian perlu mendefinisikan sebuah variabel, yaitu bilangan bulat positif N, sebagai input.
2. Selanjutnya, untuk dapat menentukan apakah sebuah bilangan adalah bilangan prima atau bukan, kalian perlu mengingat kembali definisi dari bilangan prima. Sebuah bilangan bulat positif N disebut prima jika N hanya memiliki dua buah faktor pembagi, yaitu 1 dan N. Oleh karena itu, perlu diperiksa apakah ada faktor pembagi selain 1 dan N. Kalian tentu
mengetahui bahwa faktor pembagi dari N pasti ada di antara 1 sampai dengan N.
3. Untuk itu, kalian perlu membuat sebuah variabel, yaitu variabel i.
Variabel ini akan bernilai 2 sampai dengan N-1. Jika ada nilai i yang merupakan faktor pembagi dari N, maka N pasti bukan bilangan prima.
Jika sebaliknya, maka pasti N adalah bilangan prima.
Algoritma/ Kerangka Program Input: bilangan bulat N
Output: Prima jika N adalah bilangan prima, atau Bukan Prima jika N bukan bilangan prima.
Langkah:
1)Untuk semua nilai i = 2 sampai i = N:
2)Periksa apakah N habis dibagi dengan i:
3)Jika iya, maka N bukan bilangan prima
4)Jika tidak ada i yang habis membagi N, maka N adalah bilangan prima
Berdasarkan analisis di atas, ayo, buatlah program Blockly dan Scratch untuk memeriksa apakah sebuah bilangan adalah sebuah bilangan prima atau bukan!
Simpan program yang sudah kalian buat ke dalam sebuah file. Berilah file tersebut nama dengan format berikut: AP-K9-01-<Nomor Absen><Nama>.
Catatan: Kalian juga dapat memberi nama file sesuai instruksi dari guru kalian.
Ayo, Kita Renungkan
Setelah melakukan aktivitas tersebut, lakukan refleksi dan jawablah pertanyaan ini pada jurnal kalian!
1. Apakah kalian senang belajar materi ini?
2. Apakah kalian dapat menjelaskan mengapa kalian perlu menguasai berbagai bahasa pemrograman?
3. Apakah kalian dapat menjelaskan perbedaan apa saja yang ada pada kode program dalam Bahasa Scratch dan Blockly untuk aktivitas di atas?
4. Apakah materi ini dirasa sulit?
5. Apakah kalian dapat menyelesaikan tugas praktik dari guru tepat waktu?
81
Bab 7 Algoritma dan Pemrograman