No. Dokumen :
FRM/POS/STD/STTR/A.3-3-1
No. Revisi :
00
Tanggal Terbit :
2 Agustus. 2020
Halaman :
1 dari 124
BAHAN AJAR
MATA KULIAH
3 SKS
GAME SISTEM
PROGRAM STUDI S1 TEKNIK ELEKTRO
SEKOLAH TINGGI TEKNOLOGI RONGGOLAWE CEPU
No. Dokumen :
FRM/POS/STD/STTR/A.3-3-1
No. Revisi :
00
Tanggal Terbit :
2 Agustus. 2020
Halaman :
2 dari 124
VERIFIKASI BAHAN AJAR
Pada hari ini Senin tanggal 2 bulan Agustus tahun 2020 Bahan Ajar Mata Kuliah Game
Sistem Program Studi Teknik Elektro telah diverifikasi oleh Ketua Program Studi Teguh
Yuwono, ST. MT
Cepu, 2 Agustus 2020
3
PRAKATA
Pertama-tama kami mengucapkan terima kasih kepada Tuhan Yang Maha Esa atas
terwujudnya modul ini. Tujuan dari dibuatnya modul ini agar mahasiswa terbantu dapat
mempelajari dasar-dasar pemrograman dalam mata kuliah Game Sistem. Dalam mata
kuliah ini, perangkat lunak Scratch dipilih karena perangkat lunak tersebut dapat
menampilkan kegiatan dan hasil pemrograman secara visual dan menarik. Modul ini
dikembangkan dengan menggunakan pendekatan eksplorasi, dengan harapan pembaca
dapat mencoba, memodifikasi dan selanjutnya dapat berkreasi dengan menggunakan
perangkat lunak ini. Modul ini dimulai dengan pengetahuan awal tentang algoritma dan
pemrograman. Berikutnya pengenalan terhadap perangkat lunak Scratch, dilanjutkan
dengan instalasi Scratch dan beberapa contoh sederahana dalam menggunakan Scratch.
Modul ini diakhiri denganpemrograman Scratch berupa pembuatan permainan sederhana
dengan menggunakan perangkat lunak tersebut. Modul ini memberikan pengenalan secara
sederhana dan bertahap tentang Scratch dan diakhiri dengan contoh permainan sederhana
yang menarik.
Harapan penulis, semoga modul ini dapat digunakan sebagai referensi bagi siapapun yang
ingin mengenal dasar-dasar pemrograman khususnya pemrograman dengan menggunakan
Scratch.
Cepu, 2 Agustus 2020
Penyusun
4
TINJAUAN UMUM MATA KULIAH
Deskripsi Mata Kuliah
Mata kuliah ini diperuntukan bagi mahasiswa yang mengambil mata kuliah
pemrograman komputer. Kuliah ini mempelajari tentang dasar-dasar pemrograman,
diawali dengan pengertian pemrograman, pembuatan programa menggunakan flowchat
dan pseudocode. Selanjutnya pengenalan salah satu perangkat lunak pemrograman,
Scratch, diikuti dengan pemaparan dan penjelasan (serta contoh) pengembangan permainan
menggunakan Scratch.
Manfaat Mata Kuliah
1. Mahasiwa memiliki kemampuan tentang konsep dan teori algoritma dalam pembuatan
game
2. Mahasiswa mampu menerapkan algoritma-algoritma game kedalam aplikasi scratch
Capaian Pembelajaran Lulusan (CPL)
A. Sikap
(Ditetapkan pemerintah dalam permendikbud no 3 tahun 2020 tentang Standar Nasional
Perguruan Tinggi. Ambil yang sesuai dengan mata kuliah.)
1. Bertakwa kepada Tuhan Yang Maha Esa dan mampu menunjukkan sikap religius;
2. Menjunjung tinggi nilai kemanusiaan dalam menjalankan tugas berdasarkan agama,
moral, dan etika;
3. Berkontribusi dalam peningkatan mutu kehidupan bermasyarakat, berbangsa,
bernegara, dan kemajuan peradaban berdasarkan Pancasila;
4. Berperan sebagai warga negara yang bangga dan cinta tanah air, memiliki
nasionalisme serta rasa tanggung jawab pada negara dan bangsa;
5. Menghargai keanekaragaman budaya, pandangan, agama, dan kepercayaan, serta
pendapat atau temuan orisinal orang lain;
6. Bekerjasama dan memiliki kepekaan sosial serta kepedulian terhadap masyarakat dan
lingkungan;
7. Taat hukum dan disiplin dalam kehidupan bermasyarakat dan bernegara;
8. Menginternalisasi nilai, norma, dan etika akademik;
5
9. Menunjukkan sikap bertanggung jawab atas pekerjaan di bidang keahliannya secara
mandiri;
10. Menginternalisasi semangat kemandirian, kejuangan, dan kewirausahaan.
Pengetahuan Umum
Keterampilan Umum
(Ditetapkan pemerintah dalam permendikbud no 3 tahun 2020 tentang Standar Nasional
Perguruan Tinggi. Ambil yang sesuai dengan mata kuliah.)
1. Mampu menerapkan pemikiran logis, kritis, sistematis, dan inovatif dalam konteks
pengembangan atau implementasi ilmu pengetahuan dan teknologi yang
memperhatikan dan menerapkan nilai humaniora yang sesuai dengan bidang
keahliannya;
2. Mampu menunjukkan kinerja mandiri, bermutu, dan terukur;
3. Mampu mengkaji implikasi pengembangan atauimplementasi ilmu pengetahuan
teknologi yang memperhatikan dan menerapkan nilai humaniora sesuai dengan
keahliannya berdasarkan kaidah, tata cara dan etika ilmiah dalam rangka
menghasilkan solusi, gagasan, desain atau kritik seni;
4. Menyusun deskripsi saintifik hasil kajiannya dalam bentuk skripsi atau laporan tugas
akhir, dan mengunggahnya dalam lamanperguruan tinggi; menyusun deskripsi
saintifik hasil kajian tersebut di atas dalam bentuk tesis atau laporan tugas akhir, dan
mengunggahnya dalam laman perguruan tinggi;
5. Mampu mengambil keputusan secara tepat dalam konteks penyelesaian masalah di
bidang keahliannya, berdasarkan hasil analisis informasi dan data;
6. Mampu memelihara dan mengembangkan jaringan kerja dengan pembimbing, kolega,
sejawat baik di dalam maupun di luar lembaganya;
7. Mampu bertanggung jawab atas pencapaian hasil kerja kelompok dan melakukan
supervisi dan evaluasi terhadap penyelesaian pekerjaan yang ditugaskan kepada
pekerja yang berada di bawah tanggung jawabnya;
8. Mampu melakukan proses evaluasi diri terhadap kelompok kerja yang berada di
bawah tanggung jawabnya, dan mampu mengelola pembelajaran secara mandiri;
6
9. Mampu mendokumentasikan, menyimpan, mengamankan, dan menemukan kembali
data untuk menjamin kesahihan dan mencegah plagiasi.
Keterampilan Khusus
Capaian Pembelajaran Mata Kuliah (CPMK)
Mahasiswa mampu mengembangkan kecakapan untuk memahami konsep dan
prinsip pemrograman (menggunakan flowchart atau pseudocode) serta penerapannya
dalam pembuatan program menggunakan Scratch.
7
DAFTAR ISI
GAME SISTEM ...................................................................................................................................1
VERIFIKASI BAHAN AJAR....................................................................................................................2
PRAKATA ...........................................................................................................................................3
TINJAUAN UMUM MATA KULIAH......................................................................................................4
Deskripsi Mata Kuliah....................................................................................................................4
Manfaat Mata Kuliah.....................................................................................................................4
Capaian Pembelajaran Lulusan (CPL) ............................................................................................4
Pengetahuan Umum .....................................................................................................................5
Keterampilan Umum .....................................................................................................................5
Keterampilan Khusus.....................................................................................................................6
Capaian Pembelajaran Mata Kuliah (CPMK)..................................................................................6
DAFTAR ISI.........................................................................................................................................7
Capaian Matakuliah ........................................................................................................................12
Materi Pembelajaran ......................................................................................................................12
1. Pendahuluan dan Sejarah Game .................................................................................................13
Masa Lalu yang Temaram dan Jauh.............................................................................................13
Menggulirkan Dadu 3.000 Tahun Lalu.........................................................................................13
Ubin dan Domino ........................................................................................................................15
Permainan Papan Bahkan Lebih Lama ........................................................................................15
Masih bermain!...........................................................................................................................15
Deal Me In!..................................................................................................................................16
Permainan Meja..........................................................................................................................17
Anda berada di Perusahaan yang Baik ........................................................................................17
Bagaimana dengan Electronic Games? .......................................................................................17
Take Away ...................................................................................................................................18
8
2. Jenis dan Algoritma pada Game..................................................................................................18
Jalur Terpendek#.........................................................................................................................18
SEBUAH* .................................................................................................................................19
Kode dan Demo.......................................................................................................................20
Kecerdasan buatan#....................................................................................................................20
Desain permainan# .....................................................................................................................22
Game Berbasis Ubin# ..................................................................................................................24
Struktur data ...........................................................................................................................24
Menampilkan Ubin..................................................................................................................24
Algoritma.................................................................................................................................25
Membangun Dunia..................................................................................................................25
Grid Heksagonal# ........................................................................................................................26
Pemrograman berorientasi objek#..............................................................................................27
Game Petualangan#....................................................................................................................27
Bahasa Skrip# ..............................................................................................................................28
Ekonomi# ....................................................................................................................................30
3. Pengenalan Scratch .....................................................................................................................31
Memulai dengan Scratch.............................................................................................................31
Proyek .........................................................................................................................................32
Aset: Latar Belakang, Sprite, Kostum, dan Suara.........................................................................34
Skrip ............................................................................................................................................35
Mendapatkan bantuan................................................................................................................36
Ringkasan ....................................................................................................................................37
4. Perulangan dan percabangan pada Scratch ................................................................................37
Percabangan dengan if dan if else...............................................................................................37
Perulangan ..................................................................................................................................38
Repeat.....................................................................................................................................38
9
Forever....................................................................................................................................38
Wait Until ................................................................................................................................38
Repeat Until ............................................................................................................................39
5. Operator pada Scratch ...............................................................................................................39
Operator......................................................................................................................................39
6. Motion pada Scratch ..............................................................................................................39
Contoh Penggunaan....................................................................................................................41
Belok Kanan () Derajat (blok).......................................................................................................41
Contoh Penggunaan....................................................................................................................41
Belok Kiri () Derajat (blok) ...........................................................................................................42
Goto X .........................................................................................................................................43
Contoh Penggunaan....................................................................................................................43
Glide () Secs to () (block)..............................................................................................................44
Glide () Secs to X: () Y: () (block) ..................................................................................................45
Point in Direction () (blok) .......................................................................................................46
Point Towards () (block) ..............................................................................................................47
Change X by () (block)..................................................................................................................48
Setel X ke () (blokir) .....................................................................................................................49
Contoh Penggunaan....................................................................................................................50
Change Y by () (block)..................................................................................................................50
Contoh Penggunaan....................................................................................................................50
Move () Steps (block)...................................................................................................................52
Contoh Penggunaan....................................................................................................................52
If on Edge, Bounce (block)...........................................................................................................52
If on Edge, Bounce (block)...........................................................................................................53
Set Rotation Style () (block).........................................................................................................53
X Position (block)/ Y Position.......................................................................................................54
10
7. Variable dan Events pada Scratch ...............................................................................................57
Events..........................................................................................................................................57
Variabel .......................................................................................................................................58
Daftar ......................................................................................................................................58
8. Aritmatika dan Logika pada Scratch ...........................................................................................59
...............................................60
9. Sensing pada Scratch..................................................................................................................60
Studi Kasus Membuat Berbagai Game ............................................................................................61
Karakteristik suatu Algoritma..................................................................................................61
Metode untuk Mengembangkan suatu Algoritma ..................................................................62
Flowchart ....................................................................................................................................62
Simbol Flowchart.....................................................................................................................63
Aturan Umum Membuat Flowchart ........................................................................................63
Tips membuat flowchart .........................................................................................................64
Contoh Algoritma dan Flowchart ............................................................................................65
Pseudocode.................................................................................................................................67
11
Struktur Kontrol atau Struktur Logis............................................................................................68
Struktur barisan.......................................................................................................................68
Struktur Keputusan atau Struktur Pilihan................................................................................69
Membuat pilihan.....................................................................................................................70
Campuran operator logika ......................................................................................................72
Case statement .......................................................................................................................74
Struktur Iterasi atau Pengulangan...........................................................................................75
Latihan ........................................................................................................................................80
SCRATCH .........................................................................................................................................82
Pengenalan Scratch.....................................................................................................................82
Scratch Online .........................................................................................................................83
Fitur Scratch 2.0 ......................................................................................................................85
Scratch 2.0 Offline Editor ........................................................................................................87
Instalasi Scratch...........................................................................................................................88
Memulai Scratch .........................................................................................................................90
Studi Kasus Pembuatan Game ......................................................................................................112
Permainan Sederhana...............................................................................................................112
Pong ......................................................................................................................................112
Evaluasi 1...................................................................................................................................121
Evaluasi 2...................................................................................................................................124
Project.......................................................................................................................................125
IMPLEMENTASI SCRATCH DALAM BERBAGAI APLIKASI.............................................................126
DAFTAR PUSTAKA................................................................................Error! Bookmark not defined.
12
Capaian Matakuliah
1.Memahami konsep sejarah, Jenis dan Algoritma, Perulangan dan Percabangan , Operator dan
Control, Variable dan Events pada Game.
2.Mengerti dan memahami penerapan Perulangan dan Percabangan , Operator dan Control,
Variable dan Events menggunakan Scratch
3.Mampu menginplementasikan pembuatan berbagai jenis game menggunakan Scratch
Materi Pembelajaran
1. Pendahuluan dan Sejarah Game
2. Jenis dan Algoritma pada Game
3. Pengenalan Scratch
4. Perulangan pada Scratch
5. Percabangan pada Scratch
6. Operator dan Control pada Scratch
7. Variable dan Events pada Scratch
8. Input dan Output pada Scratch
9. Aritmatika pada Scratch
10. Block, broadcast dan message pada Scratch
11. Sensing pada Scratch
12. Studi Kasus Pembuatan Game 1
13
1. Pendahuluan dan Sejarah Game
Sejarah manusia dan permainan saling terkait erat. Bukti yang tak terbantahkan bergema selama
berabad-abad bahwa kesenangan dan permainan bukanlah pengejaran yang sembrono —
sebaliknya, mereka datang secara alami kepada kita sebagai bagian penting dari kehidupan. Saat
Anda memahami evolusi game, Anda dapat mulai membuat pilihan cerdas tentang elemen game
apa yang mungkin ingin Anda masukkan ke dalamgamifikasi desain.
Masa Lalu yang Temaram dan Jauh
Apakah kamu pernah ke kebun binatang Jika ya, kemungkinan besar Anda pernah duduk dan
mengamati monyet dan kera untuk sementara waktu. Tidak perlu terlalu lama untuk melihat
mereka bermain. Mereka akan mengejar satu sama lain, melempar barang, melompati satu sama
lain, dan semacam itu. Dengan asumsi, sepertinya mungkin, bahwa manusia hanyalah monyet
yang berevolusi lebih baik, kemungkinan besar kita telah bermain game untuk waktu yang sangat
lama. Kami mungkin sedang bermain game sebelum kami belajar berbicara atau bahkan berdiri
dengan dua kaki.
Itu berarti kami tidak tahu seperti apa game pertama yang kami mainkan. Namun, kami memiliki
ide bagus tentang garis waktu pengembangan game modern.
Menggulirkan Dadu 3.000 Tahun Lalu
14
Dadu bukanlah penemuan modern. Faktanya, mereka mungkin salah satu alat permainan tertua
yang diketahui manusia. Selama penggalian di Iran Tenggara, para arkeolog menemukan satu set
dadu berusia 3.000 tahun! Kami tidak tahu persis game apa yang akan dimainkan oleh orang-
orang Persia awal itu, tetapi popularitas dadu telah bertahan selama berabad-abad.
Penulis / Pemegang Hak Cipta: WolfgangRieger. Persyaratan dan lisensi hak cipta: Domain Publik.
Permainan dadu sudah ada sejak lama sekali, seperti yang bisa Anda lihat dari lukisan gua ini.
Di Inggris abad ke- 14 , orang-orang memainkan permainan yang disebut Hazard (disebutkan
dalam karya terkenal The Canterbury Tales oleh Geoffrey Chaucer), dan Hazard tidak disukai
sampai abad ke -19. Itu memiliki seperangkat aturan yang sangat kompleks dan sejak itu telah
digantikan oleh permainan dadu dengan aturan yang lebih sederhana.
“Ambil ide sederhana dan anggap serius.”
—Charlie Munger, investor Amerika, pengusaha, pengacara dan dermawan
Baik diukir dengan tulang atau dicetak dengan plastik, kesederhanaan dari sebuah dadu — sebuah
kubus dengan titik-titik dan tidak lebih — sebagai penentu yang efektif, jika kebetulan, adalah
awet muda. Anda mungkin tidak tahu, tapi permainan yang paling populer di kasino akan tetap-
baik ke dalam 21 st abad-permainan dadu. Craps adalah satu-satunya permainan di rumah judi di
mana kemungkinannya menguntungkan bagi penjudi. Meskipun demikian, ini adalah permainan
yang paling menguntungkan untuk kasino; orang tampaknya tidak tahu kapan harus berhenti
bermain. Dan permainan yang mereka lakukan — di tempat lain, juga, menggunakan dadu dalam
berbagai aktivitas menyenangkan yang telah meluas ke lingkungan yang tidak terlalu dewasa,
seperti rumah dan sekolah, selama bertahun-tahun. Yahtzee berputar di sekitar dadu, dan bukan
tanpa alasan Dungeons & Dragons memasukkan dadu, bahkan jika banyak dari dadu itu memiliki
15
4, 10, 12, 20 atau bahkan lebih wajah.
Ubin dan Domino
Ada referensi untuk permainan ubin di Cina yang berusia lebih dari 2.900 tahun. Domino muncul
1.000 tahun kemudian selama Dinasti Song (juga di Cina). Namun, domino Barat mungkin baru
dimulai pada abad ke - 18 , dan Mahjong (permainan ubin paling populer di dunia - berasal dari
Cina) baru hadir pada abad ke -19.
Permainan Papan Bahkan Lebih Lama
Jika Anda menikmati permainan Monopoli atau Scrabble, akan terlihat bahwa Anda berteman
baik. Permainan papan paling awal yang diketahui berusia 5.000 tahun dan dimainkan oleh orang
Mesir. Kami tidak tahu aturan permainan ini, tapi ada papan "Senet" yang berasal dari sekitar
3500 SM!
Orang Cina menemukan permainan papan pertama mereka pada 200 SM, dan, di Eropa Barat,
mereka memainkan Tafl (permainan yang sangat mirip dengan catur) dari 400 SM.
Penulis / Pemegang Hak Cipta: Bubba73. Syarat dan lisensi hak cipta: CC BY-SA 3.0
Catur sering dianggap sebagai permainan papan “pola dasar” dan itu sendiri sudah sangat tua,
tetapi ada permainan papan jauh sebelum catur ditemukan.
Masih bermain!
Jika Anda pernah memainkan Go, Chess, Backgammon atau Nine Men's Morris, maka Anda telah
memainkan game dengan sejarah lebih dari seribu tahun! Go berasal dari 200 SM di Korea,
Backgammon dari Iran sekitar 600 M (lengkap dengan dadu), Catur dari India sekitar waktu yang
16
sama dan Sembilan Pria Morris mungkin berasal dari Inggris Abad Pertengahan, tetapi banyak
yang mengira itu berasal dari Kekaisaran Romawi!
Ular Tangga, salah satu permainan anak-anak paling populer di dunia mungkin dimulai di India
pada abad ke - 16 . Dan, kejutan, kejutan, kekuatan dadu kemungkinan untuk pemain dalam game
itu juga.
Permainan papan komersial pertama tiba pada tahun 1800 dan diproduksi oleh George Fox di
Inggris. Itu disebut Mansion of Happiness dan pada dasarnya adalah "permainan balapan" yang
mirip dengan Ludo. Perusahaan permainan papan tertua yang masih hidup adalah Milton Bradley
(yang permainan terkenalnya meliputi; Downfall, Hungry Hippos, dan Connect 4), yang dibentuk
pada tahun 1860!
Penulis / Pemegang Hak Cipta: ItsLassieTime. Persyaratan dan lisensi hak cipta: Domain Publik.
The Mansion of Happiness adalah permainan papan pertama yang diproduksi secara komersial
(yaitu, dalam basis industri).
Deal Me In!
Permainan kartu adalah penemuan yang lebih baru, dan penggunaan pertama dari tumpukan
kartu mungkin di Tiongkok Kuno. Mereka akan dimainkan selama Dinasti Tang ( abad ke - 6 M -
abad ke - 9 M). Kartu mencapai Eropa pada abad ke - 14 , dan dek awal akan sangat mirip dengan
kartu Tarot, yang versi abad pertengahan modern dan klasiknya dapat kita temukan secara online
atau di hampir semua toko buku bagian Pikiran, Tubuh dan Jiwa.
Dek empat jenis (hati, sekop, pentungan, dan berlian) yang paling kami kenal ditemukan di Prancis
sekitar tahun 1480. Permainan kartu tertua yang masih kami mainkan mungkin adalah Cribbage,
17
yang berasal dari abad ke - 17 . Jembatan tidak datang sampai awal abad ke -19.
Pada 1990-an, kartu dikunjungi kembali dan permainan seperti 'Magic! The Gathering
'diperkenalkan dan menjadi sangat populer. Permainan kartu juga akan meluas ke truf — favorit
klasik di sekolah-sekolah Inggris, yang menampilkan item dari mobil balap hingga pesawat ruang
angkasa, penembak Barat dan monster horor, di mana pemain membandingkan statistik kartu
teratas mereka, dan menang atau kalah sesuai itu.
Permainan Meja
Carom, mungkin adalah permainan meja tertua (sangat mirip dengan tiddlywinks atau
shuffleboard), tetapi tidak ada yang tahu persis kapan atau di mana itu muncul. Biliar, biliar, dan
snooker adalah penemuan yang relatif baru, dan roulette baru tiba di abad ke -19.
Penulis / Pemegang Hak Cipta: LezFraniak. Syarat dan lisensi hak cipta: CC BY-SA 3.0
Permainan yang digambarkan di atas, mungkin (sekilas) terlihat seperti biliar, tetapi sebenarnya
ini adalah meja biliar modern — seperti yang Anda lihat dari kurangnya kantong di atas meja.
Anda berada di Perusahaan yang Baik
Seperti yang Anda lihat, game memiliki sejarah panjang yang kaya, dan kapan pun Anda
memutuskan untuk memainkan game, Anda berada di perusahaan yang baik. Manusia telah
bermain game selama berabad-abad. Mereka adalah bagian dari pengalaman manusia.
Bagaimana dengan Electronic Games?
Anda mungkin terkejut saat mengetahui bahwa permainan elektronik pertama kali ditemukan di
Amerika Serikat sebelum komputer! Paten diajukan kembali pada tahun 1947 untuk "perangkat
hiburan tabung sinar katoda". Pada tahun 1950-an, juga di Amerika Serikat, (sangat sedikit) orang
18
mulai bermain game komputer pada sistem mainframe - ini akan berada di luar jangkauan
sebagian besar orang karena perangkat kerasnya akan mahal secara astronomis.
Konsol game pertama adalah Magnavox Odyssey - dirilis pada tahun 1972. Game arcade seperti
Space Invaders, Pacman, dll. Mulai hidup pada tahun 1978 dan menjadi sangat populer hingga
awal 1980-an. Selama waktu itu, cukup banyak konsol yang dirilis, tetapi crash di industri game
Amerika membunuh sebagian besar perusahaan yang terlibat pada tahun 1983. Ketika Jepang
mengambil kendali dan mulai mengembangkan video game, game konsol menjadi populer secara
universal, menandakan memperlambat kejatuhan game arcade.
“Semua orang pernah memainkan video game akhir-akhir ini, dan video game itu
menyenangkan.”
—PewDiePie, komedian Swedia dan produser web
Game memiliki sejarah yang panjang, seperti yang Anda lihat, dan akar game elektronik
membentang kembali ke game manusia yang paling awal. Bukan karena nenek moyang kita perlu
memberi tahu kita bahwa permainan berjalan sesuai dengan wilayah hidup; game tertanam
dalam DNA kami.
Take Away
Sejarah manusia dan permainan saling terkait erat. Selama ribuan tahun, orang memiliki
dorongan bawaan untuk bermain, dan itu tidak akan berubah dalam waktu dekat. Apa yang
mereka butuhkan, mereka berinovasi, meninggalkan kita warisan perangkat yang kaya selama
berabad-abad, mulai dari keajaiban dadu yang dasar namun kuat, hingga strategi abadi yang
terlibat dalam catur, dan hingga perpustakaan permainan papan zaman akhir yang berjalan
keseluruhan tingkat kecanggihan mereka. Selama Anda memahami evolusi game, Anda dapat
mulai membuat pilihan cerdas tentang elemen game apa yang mungkin ingin Anda sertakan
dalam desain gamification Anda.
2. Jenis dan Algoritma pada Game
Apa yang ada di halaman ini? Saya tertarik untuk menghasilkan kerumitan dari bagian-bagian
sederhana. Halaman ini berisi bookmark yang saya kumpulkan saat mengerjakan game sejak
1990; Saya tidak menulis sebagian besar konten yang ditautkan dari sini. Akibatnya, kumpulan
tautan di sini mencerminkan jenis hal yang perlu saya ketahui: hanya beberapa topik tertentu
(tidak semuanya terkait dengan pemrograman game), ide umum, bukan informasi khusus
platform (grafik, suara, kompiler), dan ide dan desain alih-alih kode sumber (saya merasa lebih
mudah untuk beralih dari ide ke kode daripada dari kode ke ide). Situs lain, seperti Gamedev Tuts
+ , Gamedev.net , dan Gamasutra , membahas lebih banyak topik daripada situs saya.
Jalur Terpendek#
Menentukan cara bergerak di peta adalah masalah yang menarik. Ada banyak pendekatan
berbeda, mulai dari yang sederhana ( berjalan maju hingga Anda menemukan sesuatu ) hingga
19
yang kompleks ( algoritme pencarian jalur dengan heuristik ). Ini adalah halaman tentang
pencarian jalan secara umum, dengan beberapa bias terhadap A *:
• Amit's Introduction to A * , Breadth-First Search, Dijkstra's Algorithm, dan Greedy Best-
First Search - dengan diagram interaktif dan kode sampel
• Tinjauan tentang Perencanaan Gerak mencakup algoritma pergerakan dan pencarian jalan
• Catatan Amit tentang Pencarian Jalan
• Gambaran umum masalah utama yang muncul saat memilih pathfinder
• Memilih representasi grafik untuk pencarian jalan
• Pencarian jalur game dan sumber daya AI
• Makalah teknis tentang navigasi dan jalur
Halaman ini membahas tentang teknik khusus untuk pencarian jalan dan pergerakan objek :
• Applet menunjukkan penghindaran rintangan (lihat juga perilaku kemudi lainnya )
• Perilaku Pengarah
• Pathfinding for Tower Defense - dengan diagram interaktif dan kode sampel
• Cacat desain dengan perilaku kemudi
• Perilaku Penghindaran Tabrakan Pejalan Kaki
• Analisis Terrain digunakan di Age of Empires
• Gerakan perintis dalam game RTS termasuk grup dan formasi.
• Gerakan menggunakan Bidang Potensial
• Unit Koordinasi Gerakan bagian 1 dan bagian 2
• Pathfinding: dasar-dasarnya mencakup berbagai jenis grafik (grid, waypoint, navmeshes)
yang digunakan untuk algoritma pencarian grafik seperti A *
• Fringe Search [PDF] - mungkin lebih cepat dari A * untuk game (unduh kodenya di sini )
• Cooperative Pathfinding [PDF] - berguna ketika Anda memiliki banyak unit yang bergerak
di ruang sempit, dan membutuhkan unit untuk saling memperhatikan
• Pengantar Algoritma Pathfinding
• Lebih banyak algoritma Pathfinding (pohon rentang minimum, algoritma Dijkstra,
Algoritma Johnson, Bellman-Ford, Floyd-Warshall,…)
• Pengenalan medan dan penghindaran rintangan
• Pergerakan di luar angkasa , dengan percepatan pesawat luar angkasa. Lihat juga bagian 2
dan bagian 3 .
• Menggunakan Daerah untuk Jalur Terpendek (diskusi)
• Jalur Terpendek vs. Algoritma Pemecahan Labirin
SEBUAH*
A * adalah varian dari Dijkstra's Algorithm dan Breadth First Search. Ini adalah pilihan yang cukup
populer untuk pencarian jalan. Ini dapat menangani biaya medan yang berbeda-beda dengan
baik, dan tampaknya lebih cepat daripada kebanyakan algoritma pencarian grafik. Namun, ini
hanya satu bagian dari solusi pencarian jalan. Desain peta dan representasi peta ada sebelum A *.
Kisi mudah digunakan tetapi tidak selalu merupakan pendekatan terbaik. Formasi, mengikuti jalur,
pergerakan, pemulihan jalur, dan animasi muncul setelah A *. Banyak game yang tidak
20
membutuhkan A * sama sekali: game ini berhubungan dengan langkah-langkah terpisah, bukan
dengan gerakan yang berkelanjutan; itu bekerja pada grafikdan tidak memanfaatkan sepenuhnya
koherensi spasial (yaitu, lokasi peta sangat mirip dengan tetangganya) atau koherensi temporal
(misalnya, jika kita sudah menemukan jalur beberapa detik yang lalu, kemungkinan jika kita
mencoba lagi jalur yang kita temukan akan menjadi serupa); dan jika dunia game berubah dengan
cepat, tidak ada gunanya merencanakan jauh-jauh hari. A * adalah alat yang bagus tetapi bukan
satu-satunya yang bisa dilihat.
• A * Demystified
• Pendahuluan A *
• Menggunakan Jaring Navigasi untuk pencarian jalan
• Multi-resolusi A *
• Daftar vs. Tumpukan Biner untuk A *
• Memilih heuristik untuk A * (dan catatan kinerja lainnya)
• Analisis heuristik untuk A * [PDF]
• Mempercepat A * dengan membatalkan penerimaan
• Pencarian Jalur [150+ pesan diskusi grup berita] [290k]
• Referensi A *
Kode dan Demo
• A * untuk Pemula (dengan kode Dasar)
• A Java Applet yang mendemonstrasikan A * (pastikan untuk menggunakan metode Fudge
untuk hasil terbaik)
• Demo pencarian jalan flash , termasuk kode sumber.
• Kode Python untuk A * dan algoritma pencarian lainnya - perhatikan bahwa
astar_searchfungsinya hanya empat baris!
Tautan ke kode A * saya adalah ke versi kedua [1998], dengan perbaikan bug, pengoptimalan, dan
parameterisasi untuk berbagai fungsi heuristik dan biaya. Versi pertama kode saya tersedia di
halaman Steve Woodcock , dan mungkin lebih mudah dibaca dan dipahami.
Kecerdasan buatan#
Banyak kali saya bermain game dan berharap lawan komputer ditulis lebih baik. Terkadang
pemain komputer diberikan aturan yang berbeda; di lain waktu ia memiliki aturan yang sama
tetapi mendapat lebih banyak uang (atau sumber daya lain) daripada Anda. Hasilnya adalah
bahwa permainan tersebut tampaknya tidak seimbang : terlalu jelas bahwa komputer tidak
bermain dengan baik, dan bahwa permainan tersebut adalah otak vs. otot, bukan otak vs. otak.
Pada saat yang sama saya tidak menginginkan AI yang terlalu bagus; jika ya, maka itu akan selalu
memukuli saya dan saya akan frustrasi!
Teknik apa yang berguna dalam game AI?
• Panduan arsitektur AI : ad-hoc, mesin negara, pohon perilaku, fungsi utilitas, perencana,
jaringan saraf
21
• Panduan Pemula Total untuk Game AI : ad-hoc, pohon keputusan, skrip, peristiwa, mesin
negara, pohon perilaku, fungsi utilitas, kemudi, pencarian jalan, perencanaan,
pembelajaran, representasi pengetahuan
• Finite State Machines dapat digunakan untuk mengekspresikan bagaimana agen AI
berubah dari satu perilaku ke perilaku lainnya. Ada negara bagian dan transisi antar
negara bagian. Untuk perilaku yang lebih kompleks, lihat Arsitektur Subsumption ,
Hierarchical Finite State Machines , State Charts , dan Behavior Trees .
• Pohon Perilaku: memutus siklus penyalahgunaan menjelaskan kapan menggunakan dan
tidak menggunakan pohon perilaku
• AI Berbasis Utilitas berguna ketika beberapa faktor perlu dipertimbangkan untuk
membuat keputusan; lihat juga artikel ini .
• Analisis Peta menganalisis dan memberi anotasi pada peta permainan untuk memberikan
informasi untuk pengambilan keputusan selanjutnya. Mereka menggunakan beberapa
nama, termasuk Heat Maps, Influence Maps , Terrain Reasoning, dan Using Potential
Fields .
• Pathfinding dan Movement digunakan untuk menggerakkan agen di dunia game.
Algoritma pathfinding digunakan untuk perencanaan tingkat tinggi; algoritma gerakan
reaktif digunakan antara titik lewat yang ditandai oleh algoritma pencarian jalan.
• Sistem Perencanaan mencari kemungkinan masa depan untuk memilih yang terbaik.
Biasanya futures yang mungkin direpresentasikan sebagai grafik, dengan node sebagai
futures dan edge sebagai tindakan.
• Pembelajaran Penguatan adalah jenis Pembelajaran Mesin yang membuat keputusan di
dunia game dan kemudian mengamati hasilnya untuk mempelajari keputusan mana yang
mengarah pada hasil yang lebih baik. Ini digunakan alih-alih merencanakan ketika Anda
belum tahu hasil apa yang akan dihasilkan dari suatu tindakan. Untuk sumber yang lebih
lengkap, lihat buku Sutton dan Barto ini.
• Model Grafis Probabilistik menggabungkan grafik node-and-edge dengan statistik.
Jaringan Bayesian, bidang acak Markov, model Markov tersembunyi, dan filter Kalman
dapat digunakan dengan PGM.
• Neural Networks adalah aproksimator fungsi. Diketahui satu set x dan f (x) di mana fungsi
f tidak diketahui, Anda dapat membangun jaringan neural yang mendekati f . Ada juga
cara lain untuk memperkirakan fungsi : penyesuaian kurva, pendekatan chebyshev, deret
fourier.
• Algoritma Genetika adalah pengoptimal parameter. Diketahui fungsi f () , Anda ingin
mencari x sehingga f (x) dimaksimalkan (atau diminimalkan). Ada juga cara lain untuk
mengoptimalkan parameter: simulasi anil, pendakian bukit, kecerdasan swarm. Biasanya
semua pendekatan ini memilih satu atau lebih x , mengevaluasi f (x) , dan kemudian
memperbaiki pilihan x .
Dalam memilih teknik untuk AI di game Anda, buatlah sesederhana mungkin; baca ini . Jika Anda
tahu jawabannya, masukkan jawabannya ke dalam program. Jika Anda tahu cara menghitung
jawabannya, masukkan algoritme untuk menghitungnya ke dalam program. Hanya jika Anda tidak
tahu jawabannya, dan bahkan tidak tahu cara menghitung jawabannya, sebaiknya Anda
menggunakan teknik rumit yang dapat mempelajari cara menemukan jawabannya. Teknik-teknik
22
kompleks ini bisa jadi mahal, dalam hal waktu pemrograman, performa game, kesulitan
debugging, dan kurangnya kontrol.
Saya juga mengumpulkan tautan ke artikel AI game lainnya; ini tidak diatur:
• Panorama Kecerdasan Buatan dan Komputasi dalam Game [PDF] - termasuk area
penelitian
• Ringkasan yang berbeda tentang Game AI [PDF]
• AI Wisdom [seri buku]
• Game AI Pro [seri buku] - artikel gratis di bagian bawah halaman
• Pengenalan AI dalam Game
• Panduan Praktis Geoff Howland untuk AI dan bagian 2
• Formasi-Harapan Besar - AI seharusnya tidak hanya bereaksi terhadap dunia, tetapi harus
membentuk ekspektasi tentang dunia, dan bereaksi terhadap penyimpangan dari itu.
• Influence Maps bagian 1 dan bagian 2
• Membuat AI lebih menantang , khususnya, dengan membuatnya kurang dapat diprediksi
• Penalaran Medan untuk Game Aksi 3D [PDF]
• AI dari FEAR [PDF] - AI perencana Jeff Orkin
• AI yang digerakkan oleh kebutuhan
• AI prosedural di Killzone [PDF] Mencakup garis pandang, jarak tembak, pencarian jalur,
dan evaluasi taktis saat run-time
• Strategi dan Taktik oleh DreamWeaver [62k]
• Pohon perilaku
• AI dalam Game Berbasis Kerajaan
• AI hierarki
• Monster AI di Unangband
• Penanganan granat AI [PDF]
• Rahasia AI Musuh di Uncharted 2
AI komputer paling sering digunakan untuk mengimplementasikan lawan untuk pemain. Namun
ini juga dapat digunakan untuk mengimplementasikan dunia (misalnya, semua bisnis di Railroad
Tycoon), asisten pemain (misalnya, manajemen kota otomatis dalam Peradaban), atau pemain
komputer yang belum tentu menjadi lawan (misalnya, karakter non-pemain dalam game bermain
peran).
• AI Di Luar Game Komputer
• Di Balik Terpal The Sims [slide] (lihat juga dokumen desain ini )
• STALKER menggunakan medan untuk menetapkan tujuan ke NPC terdekat
• AI dalam Hitam & Putih
Desain permainan#
Banyak hal yang sulit tentang menulis game adalah mendapatkan desain yang tepat. Apa yang
membuat game menyenangkan?Desain game adalah seni, bukan sains. Ini bukan hanya aturan
permainan tetapi cara Anda berinteraksi dengan permainan.
23
• Cara Membuat Prototipe Game di Bawah 7 Hari - beberapa saran bagus untuk
mengumpulkan sesuatu dengan cepat untuk melihat apakah itu akan menjadi game yang
bagus
• Sistem Sebab dan Akibat yang Ketat
• Terlalu Banyak Klik!Rancang UI di sekitar hal-hal yang ingin dilakukan pemain, bukan di
sekitar objek dalam game.
• Kimia Desain Game
• Saldo Game
• Mengoceh tentang Desain RPG mencakup topik-topik seperti keseimbangan, makanan,
ekonomi, waktu, kematian, senjata, alur cerita, dan sihir.
• Apakah lebih baik memiliki mekanik game inti tunggal?
• Pengakuan pemain game yang mengerikan - mengapa Anda tidak seharusnya
menghukum pemain game karena memainkan game Anda
• Sumber daya, mata uang, dan meteran
• Desain Ekonomi Online: Bagian 1 (Mata Uang) , Bagian 2 (Pedagang NPC) , Bagian 3 (Item)
, dan Bagian 4 (Keterampilan)
• Inti dari Game Komputer
• Desain Evolusioner - mengapa Anda harus menyiapkan dan menjalankan sesuatu sebelum
mendesain segala sesuatu tentang game Anda
• Ukuran kota abad pertengahan : berapa banyak petani yang dibutuhkan untuk memberi
makan kota dan tentara
• Mitos Tetap tentang Desain Game
• Pemodelan perkotaan - model yang digunakan di SimCity
• Sims, BattleBots, Cellular Automata, God and Go - wawancara dengan Will Wright
• Merancang game simulasi - itu adalah game, belum tentu model yang realistis
• Ekonomi Game dan desain self-balancing
• 36 plot untuk game
• One Billion Buttons : bagaimana mengajarkan konsep-konsep kompleks secara bertahap
• Umpan Balik Positif dan Negatif
• Kepercayaan pada game (baca juga komentarnya)
• Game Progresif vs. Pengalaman
• Realisme dalam game : seberapa banyak?
• Contoh mengapa Anda tidak menginginkan terlalu banyak realisme dalam sebuah game
• Loops and Arcs - struktur untuk desain game
• Masa Depan Desain Game (2005)
• Game Adiktif
• Merancang kontrol untuk sebuah game , termasuk cara menggabungkan kontrol untuk
membangun kontrol yang lebih kompleks
• Catatan desain untuk permainan saya, SimBlob
• Catatan desain untuk game saya, Solar Realms Elite
• Memahami keacakan dalam hal penguasaan
• Dokumen desain untuk Ultima 7 bagian 2
• Esai SimCity
24
• Mengapa Anda harus membagikan desain game Anda
• Fokus Gameplay
• UI untuk game : menampilkan informasi vs. pencelupan
• Bad Twinkie , database kesalahan desain game
• Nomor acak untuk gulungan kerusakan dan statistik RPG lainnya
• Pilar Fundamental dari Sistem Tempur
• Preferensi Pemain: Fictionalists menginginkan aturan permainan untuk mendukung cerita
dan dunia; Sistemis ingin cerita dan dunia mendukung aturan permainan.
Game Berbasis Ubin#
Saya suka game berbasis kotak ubin karena ubin dapat menghasilkan banyak kerumitan dari
bagian sederhana . Ada beberapa topik yang muncul dengan game berbasis ubin. The struktur
data biasanya varian dari 2 array dimensi. The display mengubah array data genteng menjadi top-
down (2D), isometrik (2.5D) pandangan, atau penuh 3D dilihat. Ada juga tampilan samping tapi
saya tidak membahasnya di sini. The algoritma pada grid memungkinkan Anda untuk menerapkan
elemen gameplay mulai dari garis pandang untuk mengevaluasi di mana musuh cenderung. Ubin
juga bekerja dengan baik dengan algoritme pembangunan dunia prosedural , seperti yang ada di
Diablo, Peradaban, dan Benteng Kurcaci.
Struktur data
Struktur ubin dasar tidak bergantung pada apakah tampilan Anda 2D, 2.5D, atau 3D. Artikel ini
membahas tentang cara menyimpan data Anda.
• FAQ Game Berbasis Ubin
• Amit's Thoughts on Grids mencakup kotak, segi enam, dan segitiga
• Struktur data untuk game berbasis ubin
• Format file untuk menangani daftar objek yang ditautkan
• Menempatkan beberapa objek di setiap ubin [diskusi grup berita]
• Streaming Data : bagaimana memilih ubin untuk dimuat, jika seluruh peta Anda tidak
muat ke dalam memori
• Teknik permainan berbasis ubin
Menampilkan Ubin
Kisi petak 2D dapat ditampilkan dengan berbagai cara. Yang paling mudah adalah tampilan atas-
bawah atau samping, tetapi belakangan ini lebih umum untuk melihat tampilan isometrik atau 3D.
Perhatikan bahwa sebagian besar tampilan "isometrik" dalam game bukanlah isometrik
sebenarnya, tetapi dimetrik .
• Panduan proyeksi dalam game
• Menciptakan dunia Isometrik
• Proyeksi Isometrik, Dimetrik, Aksonometri
• Mesin Isometrik - apakah itu untuk Anda?
• Menggambar blok isometrik dalam urutan yang benar
25
• Tinjauan Pengembangan Mesin Isometrik
• Matematika isometrik - mengubah bolak-balik dengan cara yang berprinsip
• Menerapkan sistem ubin isometrik
• Koordinat isometrik menggunakan vektor basis
• Menyortir objek dalam tampilan isometrik
• Menyortir objek menggunakan sortir topologi
• Mengimbangi ubin latar belakang , menggambar ubin dari sudut, bukan dari tengah untuk
meningkatkan transisi medan
• Kotak berbaris membahas detail tentang penerapan gambar ubin dari sudut
• Membuat jahitan ubin untuk tekstur.
• Representasi peta untuk platformer 2d
Algoritma
• Algoritma Garis Pandang
• Menghitung Garis Pandang untuk Area Luas
• Tutorial membuat Roguelike , termasuk representasi peta, pembuatan dungeon, field of
view, fog of war
• Line tracing pada grid - menentukan semua ubin yang disentuh oleh sebuah garis
• Tabrakan, visibilitas, dan representasi kisi dalam game berbasis ubin , termasuk
menggunakan informasi tepi
• Visibilitas 2d pada kisi, menggunakan poligon untuk komputasi , dan bagian 2 , yang
meningkatkan algoritme
• Algoritma visibilitas untuk peta poligon 2d top-down yang juga dapat digunakan dengan
ubin
• Shadowcasting sudut yang tepat dalam grid 2d
• Menentukan jangkauan pergerakan unit
• Menggunakan ubin untuk aliran [video dan kertas] Idenya adalah untuk meletakkan
informasi gerakan / aliran ke dalam ubin, bukan di objek; itu mengingatkan saya pada
pembalikan peran dalam objek The Sims
• Grid okupansi , menggunakan peta pengaruh untuk memungkinkan NPC melacak
kemungkinan lokasi pemain
• Baca juga tentang algoritma pathfinding , yang sering digunakan pada grid.
Membangun Dunia
Meskipun pembuatan peta prosedural dapat diterapkan pada dunia non-grid, ini paling sering
digunakan dengan grid. Dilihat pada satu titik waktu, peta game yang dihasilkan jarang sebagus
dunia buatan tangan. Namun, mereka memiliki tiga keuntungan: (1) biaya lebih rendah per dunia
jika ada banyak dunia yang akan dibuat, (2) lebih banyak nilai replay karena waktu berikutnya
melalui dunia berbeda, dan (3) potensi dunia berkembang sementara permainan berlangsung.
• Primer tentang bilangan acak yang dapat diulang
• Generator Peta Pulau Amit dan demo (Flash)
• Pembuatan Konten Prosedural : menghasilkan medan, kota, bangunan
26
• Generasi penjara bawah tanah di Unangband
• Menghasilkan dunia game dengan struktur lock and key sehingga ruangan tertentu
membutuhkan objek dari ruangan lain
• Algoritma untuk membangun sungai
• Menambahkan sungai ke medan yang dibuat secara acak
• Algoritme Rogue asli untuk menghasilkan ruang bawah tanah
• 11 Maze Generating Algorithms dengan demo dan kode
• Menggunakan fungsi kebisingan untuk menghasilkan gua - gua seperti yang ada di
Terraria dan Minecraft
• Kamar berbentuk tidak beraturan , algoritma sederhana
• Algoritma Tunneler untuk menggali ruang bawah tanah di DungeonMaker
• Panduan untuk teknik Terrain Generation secara acak
• Panduan wiki untuk pembuatan konten prosedural
• Mensimulasikan Dunia Virtual Besar
Grid Heksagonal#
Banyak game perang menggunakan kisi heksagonal, bukan kisi persegi. Kotak berbagi keunggulan
dengan empat tetangga tetapi juga menyentuh empat tetangga lainnya hanya pada satu titik. Hal
ini sering mempersulit gerakan di sepanjang kisi karena gerakan diagonal sulit untuk diberi bobot
yang sesuai dengan nilai gerakan bilangan bulat. Anda memiliki empat arah atau delapan arah
dengan kotak, tetapi dengan segi enam, Anda memiliki kompromi — enam arah. Hexagon tidak
menyentuh tetangga mana pun pada satu titik; mereka memiliki rasio keliling-ke-luas yang kecil;
dan mereka terlihat rapi. Sayangnya, di dunia komputer berpiksel persegi kami, segi enam lebih
sulit digunakan, jadi saya telah mengumpulkan beberapa artikel yang dapat membantu Anda
mengubah algoritme kisi persegi umum menjadi algoritme kisi heksadesimal.
• Panduan Amit untuk grid heksagonal - dengan diagram interaktif
• Amit's Thoughts on Grids mencakup kotak, segi enam, dan segitiga
• Tinjauan koordinat grid hex
• Koordinat heksagonal dijelaskan , termasuk konversi koordinat hex / piksel
• Sistem Penomoran; Jarak; Sudut
• Koordinat Kubus Isometrik
• Perbandingan sistem koordinat Hexagonal , termasuk koordinat piksel ke hex, dan jarak
hex
• Fungsi Koordinat dan Jarak Heksagonal
• Hexagonal Grid Math , termasuk posisi mouse ke koordinat hex, dan kode sumber di Java
dan Actionscript
• Lokasi Piksel ke Koordinat Hex
• Mengonversi lokasi mouse ke koordinat hex
• Line of Sight dan Distance , ditambah applet Java yang mendemonstrasikan bidang
pandang (termasuk sumber Java)
• Mengidentifikasi arah dalam kotak hex [PDF]
• Grid digunakan dalam Cellular Automata
27
Pemrograman berorientasi objek#
Saya telah menemukan pemrograman berorientasi objek berguna untuk antarmuka pengguna,
sistem operasi, dan permainan. Pada saat yang sama, umumnya diyakini bahwa pemrograman
berorientasi objek adalah cara terbaik untuk memprogram (terutama di tahun 1990-an, ketika
saya memulai halaman ini), tetapi ada banyak situasi di mana pendekatan lain bekerja jauh lebih
baik. Karena sebagian besar pembaca saya akrab dengan pemrograman berorientasi objek, tautan
yang saya kumpulkan di sini kebanyakan tentang alternatif dari pendekatan biasa. Tidak ada
pendekatan terbaik. Pelajari banyak.
• Berorientasi data, bukan berorientasi objek , dan bagian 2
• Mengapa tata letak data penting untuk kinerja
• Memahami Sistem Komponen-Entitas
• Membangun sistem entitas berorientasi data , seri
• Sistem entitas alih-alih Objek , terutama untuk MMO (lihat juga wiki-nya ) (lihat juga
perbedaan antara ECS Martin dan EC Bilas )
• Apa itu kerangka entitas? - langkah demi langkah, cara beralih dari OOP tradisional ke
entitas
• Komponen untuk entitas game
• Bagaimana merepresentasikan data hierarki dengan cara yang berorientasi pada data
• Multiple Inheritance dan RPGs (1997)
Game Petualangan#
Game petualangan sering kali memiliki teka-teki dan struktur cerita yang bagus. Ketika saya
memulai halaman ini pada tahun 1990-an, saya sangat tertarik pada MUD dan fiksi interaktif.
TADS adalah alat untuk digunakan, atau mungkin Inform . Sejak itu, ada lebih banyak alat, seperti
Curveship , Hugo , Inklewriter , Twine , ChoiceScript , Squiffy , Ren'Py , Quest , ADRIFT , dan Ink
Saya tidak pernah mengerjakan proyek fiksi interaktif, jadi saya tidak punya satu set tautan yang
bagus. Lihat Wiki Fiksi Interaktif untuk lebih lanjut.
• Pola desain Fiksi Interaktif
• Struktur teka-teki di Ocarina of Time (Zelda)
• Teknik Percakapan NPC
• Grafik Alur Naratif [PDF] berdasarkan Petri Nets, untuk merepresentasikan elemen cerita
• Daftar Besar Plot
• Hukum MUD
• Non-linearitas dalam game
• Game Petualangan Berorientasi Objek
• Untaian Teks vs. MUD Grafis [postingan grup berita]
• Teks vs. MUD Grafis (tampilan Raph Koster)
• Modeling Opinion Flow in Humans : gunakan algoritma Boids untuk memodelkan opini
manusia dalam kelompok sosial
• Prosa dalam Game
28
• Kata-kata kasar , generator teks prosedural menggunakan tata bahasa yang menangani
prosa bahasa Inggris, angka, bentuk jamak, kapitalisasi, tanda baca, rima, dll.
Bahasa Skrip#
Saya biasanya merekomendasikan untuk meletakkan aturan umum ("temukan jalur dari sini ke
sana") dalam kode sumber dan aturan khusus ("jika sensor 9 terpicu di koridor 3, buat penjaga 18
menemukan jalur ke sensor 9") di file data. Namun beberapa hal termasuk di antaranya dan sulit
untuk diungkapkan hanya sebagai data. Di situlah bahasa scripting masuk.
Bahasa skrip memberi Anda cara untuk menulis banyak kode non-kecepatan-kritis dengan sedikit
usaha. Anda dapat merancang bahasa untuk menangani permainan Anda secara khusus, sehingga
jumlah pekerjaan yang harus Anda lakukan lebih sedikit daripada untuk bahasa tujuan umum.
Selain itu, Anda dapat menulis compiler untuk mengoptimalkan berbagai hal (seperti ukuran alih-
alih kecepatan), mengizinkan lebih banyak fitur (seperti penambalan dinamis pada waktu proses),
dan bahkan kustomisasi pengguna (untuk pengguna yang antusias!).
• Kehidupan Rahasia Skrip Game
• Pendahuluan untuk menulis interpreter : hanya dalam 90 baris kode, ia
mengimplementasikan variabel, eksekusi, fungsi tingkat tinggi, rekursi, percabangan,
daftar, pohon, dan panggilan prosedur. (Tidak spesifik untuk game tapi pengantar yang
bagus)
• Crafting Interpreters , semua yang perlu Anda ketahui untuk menerapkan bahasa Anda
sendiri
• Pemrograman Berbasis Aturan dan perbandingan dengan pemrograman Berorientasi
Objek untuk pembuatan skrip game
• Properties Pattern , berguna untuk diketahui sebelum Anda mendesain bahasa Anda
sendiri
• Pola dan implementasi Bytecode Interpreter
• Pembuatan skrip game dengan Stackless Python
• Membangun mesin scripting bagian 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9
• NPC Scripting
• Diskusi tentang bahasa apa yang akan digunakan, bagaimana menerapkan [diskusi grup
berita]
• Bahasa skrip di MUD [diskusi grup berita]
• Strategi implementasi untuk bahasa skrip [diskusi grup berita]
• Menulis game yang dapat dimodifikasi
• Bahasa skrip yang digunakan dalam Fiksi Interaktif
• Menggunakan Stackless Python dan microthreads untuk game
Sebanyak saya suka bahasa scripting, rekomendasi saya adalah memasukkan sebanyak mungkin
ke dalam file data biasa (tanpa kode) yang diproses oleh game Anda. Jika Anda benar-benar
membutuhkan bahasa tujuan umum , gunakan Lua . Hanya buat bahasa skrip Anda sendiri jika itu
adalah bahasa khusus permainan kecil . Misalnya, skrip khusus game untuk sebuah drama
mungkin terlihat seperti ini:
29
Amit [kepada Steve]: Halo, teman!
Steve [mengangguk ke Bryan]: Selamat datang di CGDC.
[Keluar kiri.]
Perhatikan bahwa tingkatnya sangat tinggi: tidak menjelaskan secara tepat bagaimana Amit
berbicara atau bagaimana Steve mengangguk atau bahkan waktunya. Agar ini berhasil, Anda perlu
memiliki beberapa asumsi tentang bagaimana orang-orang berperilaku, dan itu membuat bahasa
khusus untuk sistem yang Anda atur. Dalam bahasa khusus ini, penggunaan tanda kurung untuk
tindakan dan tanda titik dua untuk ucapan. Dalam tanda kurung bahasa lain mungkin menandai
parameter opsional dan tanda titik dua bagian. Semakin umum tujuan bahasa Anda, semakin
sedikit asumsi yang dapat Anda buat, sehingga menjadi lebih bertele-tele. Misalnya,
percakapannya akan terlihat seperti ini:
Amit.turns_towards (Steve);
Amit.walks_within (3);
Amit.says_to (Steve, "Halo, teman!");
Amit.waits (1);
Steve.turns_towards (Bryan);
Steve.walks_within (5);
Steve.nods_to (Bryan);
Steve. Menunggu (1);
Steve.says_to (Bryan, "Selamat Datang di CGDC.");
Amit.waits (3);
Amit.face_direction (DIR_LEFT);
Amit.exits ();
Itu sebuah program , bukan skrip . Lihat perbedaannya? Skrip tingkat tinggi, dan menentukan apa
yang ingin Anda lakukan, sedangkan program tingkat rendah, dan menentukan dengan tepat
bagaimana melakukannya. Tidak jauh lebih sulit untuk menafsirkan sintaks pertama daripada
yang kedua. Anda sudah memiliki bahasa pemrograman (C, C ++, Pascal, Basic, dll.). Anda tidak
membutuhkan yang lain! (Kecuali jika tujuan Anda hanyalah untuk memungkinkan fleksibilitas
waktu proses, yang dapat dilakukan dengan pustaka yang dimuat secara dinamis, atau dengan
menggunakan bahasa yang ada seperti Lua.)
Cobalah untuk berpikir secara berbeda. Jika Anda akan melakukan semua upaya untuk membuat
bahasa skrip, jangan membuatnya terlihat seperti C. Pikirkan tentang menggunakan struktur
berbasis peristiwa. Misalnya, memiliki perintah seperti "saat X terjadi, lakukan Y". Pikirkan
tentang membuat banyak hal terjadi sekaligus. Amit tidak harus berhenti hanya karena Steve
mengatakan sesuatu. Pikirkan berbagai gaya pemrograman, seperti berbasis aturan, fungsional,
imperatif, logika, dan berorientasi objek. Pikirkan tentang aturan logika alternatif, seperti logika
fuzzy (kebenaran tidak pasti) atau logika linier (satu kebenaran bisa berubah menjadi yang lain,
membuat yang pertama salah). Manfaatkan bahasa dengan memanfaatkan struktur game Anda,
dan Anda mungkin akan lebih mudah membangun bagian dunia game Anda.Jika tidak, Anda
membayar harga implementasi dan integrasi yang tinggi tanpa mendapatkan manfaat dari bahasa
kedua.
30
Ekonomi#
Ekonomi adalah studi tentang pilihan manusia dalam mengelola sumber daya (uang, waktu,
kebahagiaan, bahan mentah, barang, dan sebagainya). Dalam banyak permainan strategi,
ekonomi merupakan aspek penting dari desain. Menyeimbangkan sumber daya dunia Anda bisa
menjadi bagian permainan yang menyenangkan. Ekonomi juga penting dalam dinamika
permainan multi-pemain: Anda ingin memberi penghargaan kepada orang-orang karena
menghasilkan uang, namun Anda tidak ingin mereka memiliki begitu banyak kekuatan sehingga
pemain baru tidak dapat bersenang-senang. Satu hal yang ingin saya jelajahi adalah bagaimana
lokasi memengaruhi ekonomi. Dalam ekonomi sekolah menengah, bisnis bersaing berdasarkan
harga. Bisnis mana pun yang dijual dengan harga lebih rendah akan menang. Tetapi jika biaya
transportasi menjadi faktor, maka kedua bisnis dapat hidup berdampingan, dan pemain harus
membuat keputusan yang menarik tentang di mana harus menempatkan fasilitas baru. untuk
menyeimbangkan semua variabel (ketersediaan tenaga kerja, biaya transportasi bahan baku,
biaya transportasi produk, tarif pajak, undang-undang zonasi, dll.).
• Apakah itu permainan atau dunia?
• Ekonomi di dunia virtual
• Agen Ekonomi AI
• Demografi Abad Pertengahan Menjadi Mudah
• Daftar Harga Abad Pertengahan
• Sistem transportasi di Widelands
• Model ekonomi Pirates of The Burning Sea : tenaga kerja, harga, pasar, pemeliharaan,
pajak, dan peristiwa dunia
Sulit untuk membuat aturan ekonomi di dunia virtual online ketika biaya yang mendasarinya
sangat berbeda. Di dunia fisik, "objek" membutuhkan sumber daya untuk dibuat, tetapi biasanya
tidak menggunakan sumber daya untuk disimpan (jika Anda tidak menggunakannya), dan Anda
biasanya tidak mendapatkan sumber daya itu kembali saat membuangnya. Oleh karena itu,
ekonomi dunia nyata kita didasarkan pada pembelian barang. Di dunia maya, “objek” mengambil
sedikit memori dan jika Anda menghancurkan objek, Anda mendapatkan memori kembali. Pada
saat yang sama, keberadaan objek virtual menghabiskan waktu CPU, yang tidak dapat dipulihkan.
Oleh karena itu, ekonomi dunia maya mungkin didasarkan pada persewaansesuatu. Jika ekonomi
dunia Anda mencerminkan biaya yang mendasarinya, sebuah cincin berlian dapat “berharga”
sebanyak seember pasir. Meskipun hal ini mencerminkan biaya nyata dalam menjalankan server
Anda, dan oleh karena itu akan membuat pemain enggan membebani server Anda, ini mungkin
tidak masuk akal untuk game Anda.
Selain ekonomi objek, Anda harus mempertimbangkan ekonomi kehidupan di dunia. Dalam dunia
fisik, keberadaan seseorang memiliki biaya; di dunia maya, keberadaannya murah. Karena
seorang pemain mungkin tidak "masuk" sepanjang waktu, sulit untuk membuat aturan yang adil
untuk biaya keberadaan tanpa menghukum pemain yang banyak bermain (pemirsa inti Anda)
atau pemain yang tidak dapat masuk banyak ( yang kemungkinan akan pergi jika mendapat sanksi
karena tidak berada di sana sepanjang waktu). Jika Anda membutuhkan seseorang untuk bekerja
untuk mencari nafkah, pemain biasa mungkin tidak dapat bersaing, dan mungkin pergi.
31
3. Pengenalan Scratch
Selain sebagai alat, Scratch adalah komunitas: pengguna dapat membagikan proyek
mereka, membuat salinan satu sama lain 'dan' mencampurnya ', yang mirip dengan kode
bercabang di GitHub dan terdiri dari menyalin proyek orang lain dan menambahkan
proyek Anda sendiri perbaikan atau perubahan padanya. Alih-alih mengharapkan pelajar
untuk menulis kode mereka dari awal, Scratch memberi mereka satu set blok: baris kode
yang mereka seret ke tempatnya untuk membuat kode mereka.
Dalam seri tutorial ini, saya akan memberi Anda pengantar mendetail tentang Scratch dan
cara menggunakannya. Bagian pertama ini akan memberikan gambaran umum tentang
cara kerja Scratch serta komponen dan konsep utamanya. Saya akan membahas:
• mulai
• proyek
• aset: latar belakang, sprite, kostum dan suara
• skrip
• dimana mendapatkan bantuan
Pertama, berikut cara memulai Scratch.
Memulai dengan Scratch
Scratch pertama kali dikembangkan pada tahun 2003 di Massachusetts Institute of
Technology. Ini dimulai sebagai perangkat lunak yang dapat diunduh tetapi sekarang
menjadi alat online. Ini sepenuhnya gratis dan didanai oleh hibah dari berbagai organisasi,
termasuk National Science Foundation, Microsoft, Google, dan LEGO Foundation.
Untuk memulai, cukup kunjungi situs web Scratch dan buat akun dengan alamat email
Anda.
Di pojok kanan atas layar, klik Join Scratch . Anda akan disajikan dengan layar bergabung:
Buat nama pengguna dan kata sandi untuk Anda sendiri, lalu klik tombol Berikutnya
untuk berpindah ke layar berikutnya:
Di sini Anda diminta untuk memberikan beberapa informan tentang diri Anda, yang
digunakan Scratch untuk memantau tipe orang yang menggunakan platform. Klik
Berikutnya lagi untuk melanjutkan:
32
Berikan alamat email Anda dan Anda akan menerima konfirmasi email. Anda harus
mengeklik tautan di email Anda jika Anda ingin membagikan proyek Anda (jika Anda tidak
ingin berbagi, Anda dapat melanjutkan tanpa melakukan ini, tetapi Anda akan
mendapatkan pengingat yang mengganggu di bagian atas layar Anda setiap kali Anda
melakukannya. Gabung).
Setelah Anda memberikan alamat email Anda dan mengklik Next , Anda akan melihat
layar selamat datang:
Sekarang ketika Anda mengklik OK Let's Go! atau masuk ke akun Anda, Anda akan
melihat halaman beranda dengan detail tentang apa yang terjadi di komunitas Scratch,
termasuk aktivitas orang yang Anda ikuti. Seperti yang Anda lihat di tangkapan layar, saya
mengikuti beberapa orang yang sibuk!
Dari layar ini Anda dapat menjelajahi proyek orang lain, mengetahui apa yang telah
dilakukan teman Anda, dan mengakses proyek Anda sendiri.
Proyek
Setiap kali Anda membuat sesuatu di Scratch, Anda akan mengerjakan sebuah proyek .
Anda dapat membuat proyek sebanyak yang Anda suka, membagikannya, dan
menyalinnya. Setiap proyek berdiri sendiri dan tidak dapat ditautkan ke proyek lain.
Anda dapat mengakses proyek Anda dengan dua cara dari layar beranda: dengan
mengeklik folder di kanan atas bilah admin dengan ikon 'S' atau dengan mengeklik nama
pengguna Anda di kanan atas, lalu mengeklik Barang Saya di menu tarik-turun menu
yang muncul.
Ini akan membawa Anda ke layar Milik Saya :
Layar ini menunjukkan semua proyek yang Anda buat serta studio tempat Anda menjadi
anggota. Anda dapat menggunakan studio untuk membagikan pekerjaan Anda dengan
sekelompok teman atau pengguna Scratch lainnya — Saya menggunakan studio untuk
berbagi pekerjaan antara anggota Code Club yang saya jalankan.
Untuk membuat proyek baru, cukup klik tombol + Proyek baru di atas proyek Anda. Ini
membawa Anda ke layar proyek:
33
Jika Anda berada di beranda, Anda dapat membuat proyek baru tanpa membuka layar
Barang Saya. Klik Buat item di menu admin dan ini akan membuka proyek baru untuk
Anda.
Setiap proyek baru terlihat seperti ini, kecuali Anda sedang mengerjakan salinan proyek
yang sudah ada yang sedang Anda remix.
Jendela proyek mencakup beberapa area utama:
• The panggung , dengan sprite kucing di tempat yang dapat Anda bekerja dengan
atau menghapus.
• Di bawah panggung, backdrop dan sprite yang Anda gunakan dalam proyek Anda.
• Di sebelah kiri panggung, panel skrip . Ini berisi blok kode (disebut skrip) yang
dapat Anda gunakan dalam proyek Anda. Panel ini memiliki dua tab lagi: Kostum
dan Suara . Saya akan menjelaskan cara kerjanya di bagian selanjutnya dari
tutorial ini.
• The kanvas , yang mana Anda menempatkan script Anda dan membuat atau
mengedit kostum dan suara. Anda dapat menempatkan banyak skrip di kanvas.
Setelah Anda mengerjakan proyek Anda, Anda harus menyimpannya. Beri nama yang
mudah diingat dengan mengetikkan satu nama ke dalam bidang di atas panggung (Saya
lupa berapa kali saya memberi tahu siswa bahwa proyek mereka membutuhkan nama
yang lebih baik daripada Tanpa Judul!).
Di sebelah kiri ikon folder Barang Saya di bilah admin akan ada beberapa teks yang akan
terbaca Tersimpan atau Simpan sekarang . Jika terbaca Tersimpan , maka proyek Anda
34
telah disimpan sehingga Anda tidak perlu melakukan apa pun. Jika bertuliskan Simpan
sekarang , klik teks tersebut dan Scratch akan membuat penyimpanan terbaru untuk
Anda.
Iklan
Aset: Latar Belakang, Sprite, Kostum, dan Suara
Setiap proyek yang Anda buat membutuhkan beberapa aset. Ada empat jenis aset:
backdrop , sprite , kostum dan suara . Kostum dan suara ditetapkan untuk spites, jadi
Anda mulai dengan membuat sprite, lalu Anda dapat memberikan sejumlah kostum dan
suara. Gunakan skrip untuk mengganti kostum sprite saat terjadi sesuatu, atau untuk
mengaktifkan suara saat terjadi sesuatu.
Berikut adalah contoh proyek bernama Rock Band , yang saya buat untuk Code Club saya.
Ini mencakup beberapa sprite, yang masing-masing memiliki beberapa kostum dan suara.
Klik bendera hijau untuk memulai proyek dan kemudian klik pada penyanyi dan instrumen
untuk mengubah kostum dan suaranya.
Anda dapat membuat salinannya sendiri di Scratch dan mengerjakannya jika Anda mau.
Ini disebut remixing dan berarti Anda dapat mengambil proyek yang ada dan
menambahkan sentuhan Anda sendiri padanya. Untuk melakukan ini, buka halaman
proyek dan klik tombol See Inside . Ini akan membawa Anda ke layar proyek yang akan
Anda kenali dari bagian sebelumnya dari tutorial ini:
Jika Anda masuk ke Scratch, Anda akan melihat tombol Remix di sebelah kiri tombol Lihat
halaman proyek di kanan atas layar. Itu tidak terlihat pada tangkapan layar di atas
karena proyek ini milik saya jadi saya tidak bisa me-remixnya. Ini akan membuat proyek
baru di akun Anda yang dapat Anda lihat dan edit.
Tangkapan layar menunjukkan bahwa proyek ini memiliki dua latar belakang: Anda dapat
melihat yang aktif di bawah panggung utama, di sebelah kiri. Anda dapat menggunakan
skrip untuk beralih tampilan latar saat proyek Anda berlangsung atau pengguna Anda
bergerak melalui level game, misalnya.
Proyek ini juga memiliki empat sprite, yang dapat Anda lihat di bawah panggung. Itu juga
punya satu gambar latar belakang. Anda dapat membuat sprite dan latar belakang sendiri
dengan mengunggah gambar, atau Anda dapat mengimpornya dari perpustakaan yang
disediakan dengan Scratch, yang merupakan cara yang jauh lebih mudah untuk memulai.
Anda akan belajar bagaimana melakukan ini nanti di seri tutorial ini.
Masing-masing sprite dalam proyek saya memiliki dua kostum: pada gambar di bawah ini
Anda dapat melihat kostum untuk sprite Drum1:
35
Saya mengimpor kedua kostum ini dari Scratch library dan saya menambahkan skrip yang
mengubah kostum saat pengguna mengklik drum.
Jika Anda ingin membuat spites Anda sendiri, Anda melakukannya dengan membuat
kostum di sini, baik dengan menggunakan alat gambar yang disediakan atau dengan
mengimpor file png.
Mari kita lihat panel Suara . Pada gambar di bawah ini Anda dapat melihat bahwa sprite
Singer1 memiliki dua suara yang terkait dengannya:
Sekali lagi, saya telah menggunakan skrip dalam proyek saya untuk menjalankan suara ini
ketika pengguna mengklik sprite penyanyi. Anda dapat merekam suara Anda sendiri dari
dalam Scratch jika Anda mau, atau mengimpornya dari perpustakaan yang tersedia.
Skrip
Skrip adalah hal yang membuat aset Anda berfungsi di Scratch. Mereka terdiri dari blok
kode yang Anda seret ke posisinya di kanvas, dan termasuk dalam sepuluh kategori:
• Motion : skrip yang memposisikan sprite Anda dan membuatnya bergerak.
• Looks : skrip yang mengubah tampilan sprite Anda, termasuk mengubah kostum
dan menyembunyikannya.
• Suara : skrip untuk memutar suara dan mengubah volume.
• Pen : skrip yang memungkinkan pengguna menulis atau menggambar pada
proyek.
• Data : skrip yang memungkinkan Anda mengatur dan bekerja dengan variabel,
misalnya untuk menyimpan skor atau waktu permainan.
• Events : ini membuat sesuatu terjadi, dan termasuk tanda start diklik, pengguna
mengklik sprite atau siaran yang dapat Anda buat dan sprite Anda bereaksi.
• Kontrol : ini termasuk loop, pernyataan bersyarat, dan jeda.
• Penginderaan : skrip ini merasakan saat sesuatu terjadi seperti mouse digunakan
atau sprite saling bersentuhan. Mereka juga termasuk interaksi seperti
mengajukan pertanyaan kepada pengguna.
• Operator : gunakan ini untuk membandingkan nilai, mungkin berdasarkan respons
pengguna Anda terhadap pertanyaan atau variabel yang Anda tentukan. Misalnya,
Anda mungkin menghitung berapa kali pengguna mengklik hal yang salah dan
menggunakan operator untuk memeriksa saat ini mencapai nomor tertentu
sehingga Anda dapat menampilkan pesan.
• Lebih Banyak Blok : ini adalah tempat Anda menambahkan blok kustom Anda
sendiri.
36
Skrip memberi Anda variasi dan fleksibilitas dalam jumlah besar dan dapat digabungkan
dengan cara yang ampuh untuk membuat proyek tingkat lanjut. Saat kami mengerjakan
rangkaian tutorial ini, saya akan menunjukkan kepada Anda cara menggunakan berbagai
jenis blok untuk membuat animasi, interaksi, dan game.
Setiap skrip yang Anda buat akan terkait dengan sprite atau latar belakang, yang berarti
tidak bergantung pada sprite Anda. Misalnya, dalam proyek Rock Band saya, sprite Drum1
memiliki skrip yang mengontrol apa yang terjadi saat sprite diklik:
Sprite lain masing-masing memiliki skrip yang serupa, dan latar belakang juga memiliki
skripnya sendiri:
Ini terkait dengan pengaturan volume, yang tidak bergantung pada sprite individu.
Seperti yang Anda lihat dari contoh-contoh ini, setiap sprite dapat memiliki banyak skrip
yang diterapkan padanya. Faktanya, ketika Anda mulai bekerja dengan proyek yang lebih
maju, melacak semua skrip ini dan apa yang dilakukannya bisa sangat membingungkan,
terutama jika Anda perlu men-debug proyek Anda. Inilah kanvas untuk proyek saya yang
lain, Flappy Parrot , yang memiliki lebih banyak (dan lebih besar) skrip:
Untuk membantu melacak berbagai hal, Anda dapat menambahkan komentar ke skrip
Anda. Untuk melakukan ini, klik kanan pada skrip, dan di menu yang muncul, klik
tambahkan komentar , dan ketik komentar Anda. Di bawah ini Anda dapat melihat
bahwa saya telah menambahkan komentar ke salah satu skrip saya:
Anda dapat membuat komentar sedetail yang Anda inginkan, dan mereka akan
membantu Anda jika Anda kembali ke proyek Anda setelah beberapa saat dan tidak dapat
mengingat apa yang dilakukan semua hal.
Mendapatkan bantuan
Salah satu hal hebat tentang Scratch adalah ada banyak konten untuk membantu Anda
memahami platform dan memulai. Berikut beberapa sumber daya yang tersedia:
• Bantuan khusus konteks: klik kanan pada blok atau aset apa pun dan klik bantuan
di menu pintasan untuk melihat informasi tentang apa yang blok atau aset itu
lakukan.
• Tip: klik ikon tanda tanya di paling kanan layar proyek (di sebelah kanan kanvas)
untuk melihat tip.
37
• Tutorial: klik tanda tanya tip untuk mengakses tutorial untuk membantu Anda
memulai. Anda dapat membuat proyek baru dan melihatnya dari layar proyek
Anda sehingga Anda dapat mengikuti tutorial saat Anda bekerja.
• Cara: opsi lain di bagian tips adalah Cara , yang memberi Anda informasi tentang
cara membuat jenis proyek tertentu.
• Layar bantuan: klik Bantuan di bilah admin untuk mengakses berbagai layar
bantuan, termasuk proyek awal, kartu Scratch, tutorial video, dan panduan untuk
menggunakan Scratch.
• ScratchEd : komunitas online untuk pengajar yang menggunakan Scratch dengan
siswa.
• The Scratch Wiki termasuk informasi mendalam tentang komponen Scratch.
Ringkasan
Scratch adalah alat gratis yang fantastis yang membantu anak-anak (dan juga orang
dewasa!) Belajar cara menulis kode tanpa harus mengetik kode. Ini berarti mereka dapat
mempelajari bagaimana kode disusun dan apa yang dilakukannya tanpa rasa frustrasi
karena harus mempelajari sintaks dan membantu mereka memulai dengan cepat.
Ini juga sangat menyenangkan untuk digunakan dan memiliki komunitas pengguna yang
besar yang proyeknya dapat Anda lihat dan salin, yang akan membantu Anda belajar
dengan cara yang praktis.
4. Perulangan dan percabangan pada Scratch
Percabangan dengan if dan if else
Percabangan menggunakan if dapat digunakan pada kondisi jika diinginkan satu syarat
percabangan saja tanpa memiliki syarat lain, misalnya:
• Jika pengguna menginputkan angka 3 maka terjadi aksi A, jika tidak 3 maka tidak terjadi
aksi apapun.
Percabangan menggunakan I felse dapat digunakan pada kondisi jika diinginkan lebih dari satu
syarat percabangan, misalnya:
• Jika pengguna menginputkan angka 3 maka terjadi aksi A, jika tidak 3 maka aksi B
38
Perulangan
Repeat
Repeat digunakan pada keadaan jika diinginkan suatu perulangan dengan jumlah yang telah
ditetapkan, misalnya:
• Lakukan perulangan 3 kali untuk belok kiri
Forever
Forever digunakan pada keadaan jika diinginkan suatu perulangan tanpa batas.
• Lakukan jalan lurus pada object ular selama pengguna tidak memencet tombol apapun
Wait Until
Wait until digunakan untuk melakukan perulangan dengan persyaratan suatu kondisi tertentu,
misalnya:
• Jika user memencet tombol X lakukan aksi A
39
Repeat Until
Repeat until digunakan untuk melakukan perulangan dengan persyaratan berada di awal,
misalnya:
• Lakukan gerakan lurus memutar sampai pengguna memencet tombol berhenti
5. Operator pada Scratch
Operator
Operator AND digunakan apabila diiginkan kondisi dengan persyaratan 2 hal harus bernilai TRUE,
misalnya
• Jika pengguna memencet tombol panah kanan dan tombol panah atas, maka gerakkan
object burung ke depan
Operator OR digunakan apabila diiginkan kondisi dengan persyaratan 2 hal harus bernilai TRUE
salah satunya, misalnya
• Jika pengguna memencet tombol panah kanan atau tombol panah atas, maka gerakkan
object burung ke depan
6. Motion pada Scratch
40
Move 10 Step
41
adalah blok tumpukan dan blok Gerak . Balok itu menggerakkan sprite ke depan sejumlah
langkah yang ditentukan ke arah yang dihadapinya. Satu langkah sama dengan panjang satu
piksel. The Nilai default adalah 10 dan dapat diganti dengan nomor apapun. Blok sebenarnya
menggunakan Trigonometri untuk bergerak ke arah yang benar, karena begitulah cara komputer
menanganinya.
Blok ini dikenal sebagai "maju ()" di Scratch 0.1 sebelum diubah namanya menjadi "move () steps"
di Scratch 0.3 .
Contoh Penggunaan
Alih-alih menggunakan skrip rumit dengan blok Change X by () dan blok Change Y by () , blok ini
dapat dengan mudah digunakan untuk memajukan sprite.
Beberapa penggunaan umum untuk blok Move () Steps adalah:
• Membuat sprite bergerak
• Memindahkan sprite ke depan dalam sebuah animasi
• Membuat sprite mengikuti mouse
Belok Kanan () Derajat (blok)
Adalah blok Gerak dan blok tumpukan . Blok berubah nya sprite 's arah jumlah tertentu derajat
searah jarum jam. Blok ini mendukung nilai input apa pun dari -179 hingga 180.
Blok ini dikenal sebagai "turn ()" di Scratch 0.1 , sebelum diubah namanya menjadi "turn right ()"
di Scratch 0.2 , lalu menjadi "turn () derajat" di Scratch 0.3 , lalu menjadi "turn right () derajat" di
Gores 0,5 .
Contoh Penggunaan
Arah tergantung dari nilai
Block ini biasanya digunakan untuk memutar sprite secara berulang-ulang.
Beberapa penggunaan umum untuk balok derajat belok kanan () :
42
Belok Kiri () Derajat (blok)
blok Gerak dan blok tumpukan . Blok berubah nya sprite 's arah jumlah
tertentu derajat berlawanan. Blok ini mendukung nilai input apa pun dari
-179 hingga 180.
Blok ini dikenal sebagai "belok kiri ()" di Scratch 0.2 sebelum diubah namanya menjadi "belok kiri
() derajat" di Scratch 0.5 .
Contoh Penggunaan
Arah tergantung dari nilai
Block ini biasanya digunakan untuk memutar sprite secara berulang-ulang.
Beberapa penggunaan umum untuk blok "belok kiri () derajat":
43
Goto X
Goto X () blok adalah blok gerak dan blok tumpukan . Blok mengatur posisi X dan Y sprite ke
posisi yang ditentukan, yang dapat berupa sprite lain, penunjuk mouse, atau koordinat
acak.
Contoh Penggunaan
Berbeda dengan blok go to x: () y: () , yang memindahkan sprite ke koordinat yang ditentukan,
blok go to () memindahkan sprite ke lokasi yang ditentukan.
Beberapa penggunaan umum untuk blok go to ():
44
Glide () Secs to () (block)
The Glide () Secs ke () blok adalah Blok Gerak dan Blok Stack yang diperkenalkan pada Scratch 3.0
. [1] [2] Blok tersebut memindahkan sprite dengan kecepatan tetap ke sprite tertentu atau
penunjuk mouse dari drop-down - ini mirip dengan sprite dalam satu arah dan berulang kali
menggunakan Move () Steps , tetapi dengan lebih banyak presisi. Spasi pertama adalah input
angka, dan spasi kedua dapat diatur ke sprite, posisi acak, dan penunjuk mouse. Kelemahan dari
blok ini adalah, saat meluncur, skrip tersebut dijeda sehingga tidak ada hal lain yang dapat terjadi
selama waktu ini. Meluncur hanya dapat diinterupsi oleh blok skrip yang berhenti, dan blok If on
Edge, Bounce akan gagal menjalankan fungsi yang dimaksudkan saat sprite sedang meluncur.
45
Glide () Secs to X: () Y: () (block)
The Glide () Secs ke X: () Y: () blok adalah Blok Gerak dan Blok Stack . Blok memindahkan sprite -
nya dengan mantap ke posisi X dan Y yang ditentukan dalam jumlah detik yang ditentukan - ini
seperti mengarahkan sprite ke satu arah dan berulang kali menggunakan Move () Steps , tetapi
dengan lebih presisi. Kelemahan dari blok luncur, bagaimanapun, adalah ia menjeda skrip saat
sprite bergerak, mencegah skrip melakukan hal lain saat sprite sedang meluncur. Selain itu, glide
hanya dapat diinterupsi oleh blok skrip yang berhenti , dan blok If on Edge, Bounce akan gagal
menjalankan fungsi yang dimaksudkan saat sprite sedang meluncur.
46
Point in Direction () (blok)
The titik dalam arah () blok adalah blok tumpukan dan blok gerak . Blok tersebut mengarahkan
sprite -nya ke arah yang ditentukan , memutar sprite tersebut. Balok menggunakan 360 derajat
dalam lingkaran. The Nilai default adalah 90 dan dapat digantikan oleh setiap Nomor (360 + x
display yang sama dari 0 + x).
Ada beberapa kebingungan yang melibatkan sistem bilangan karena fakta bahwa 0 lurus ke atas,
bukan ke kanan (arah default) atau ke kiri (seperti dalam busur derajat), dan menggunakan -180
untuk 180 lingkaran daripada lingkaran 360 derajat biasa. Meskipun ada keluhan, [1] tidak ada
perubahan yang dilakukan.
47
Point Towards () (block)
The Titik Menuju () blok adalah blok gerak dan blok Stack yang menunjuk nya sprite terhadap
tikus-pointer atau pusat kostum dari sprite lain.
48
Change X by () (block)
The Perubahan X oleh () blok adalah blok Gerak dan blok Stack . Blok tersebut memindahkan
posisi X pusat kostum sprite dengan jumlah yang ditentukan. Sumbu x berkisar dari -240 hingga
240.
49
Setel X ke () (blokir)
The Set X untuk () blok adalah blok Gerak dan blok Stack . Blok tersebut mengubah posisi X sprite
yang dipilih ke nilai yang ditentukan. Bersamaan dengan blok Set Y ke () , blok ini bertindak serupa
dengan blok Go to X: () Y: () .
50
Contoh Penggunaan
Jika koordinat Y sprite harus dijaga konstan, tetapi sprite masih perlu bergerak (misalnya, scrollbar
horizontal), blok Set X ke () dapat digunakan sebagai pengganti blok Go to X: () Y: () - tidak perlu
mengatur posisi Y bila tidak berubah.
Blok ini sering digunakan dalam proyek yang menggunakan X scrolling - sprite yang ditentukan
secara konstan mengubah posisi X mereka untuk mengikuti gerakan lanskap.
Kegunaan lain termasuk:
Change Y by () (block)
The perubahan y oleh () blok adalah blok gerak dan blok tumpukan . Blok tersebut memindahkan
posisi Y sprite -nya dengan jumlah yang ditentukan.
Contoh Penggunaan
Seringkali dalam permainan, pemain mengontrol sprite dan menggerakkannya, seperti dengan
kecepatan. Dengan cara ini, perubahan blok y oleh () (dan perubahan x oleh () blok) bisa menjadi
sangat berguna. Sumbu y berkisar dari -180 hingga 180.
Dalam skrip ini, yang dapat mengontrol dayung di Pong , variabel yVelocity mengontrol gerakan
naik turun sprite. Ini memungkinkan sprite untuk berakselerasi dan melambat.
51
52
Move () Steps (block)
Langkah () langkah blok adalah blok tumpukan dan blok Gerak . Balok itu menggerakkan sprite ke
depan sejumlah langkah yang ditentukan ke arah yang dihadapinya. Satu langkah sama dengan
panjang satu piksel. The Nilai default adalah 10 dan dapat diganti dengan nomor apapun. Blok
sebenarnya menggunakan Trigonometri untuk bergerak ke arah yang benar, karena begitulah cara
komputer menanganinya.
Blok ini dikenal sebagai "maju ()" di Scratch 0.1 sebelum diubah namanya menjadi "move () steps"
di Scratch 0.3 .
Contoh Penggunaan
Alih-alih menggunakan skrip rumit dengan blok Change X by () dan blok Change Y by () , blok ini
dapat dengan mudah digunakan untuk memajukan sprite.
Beberapa penggunaan umum untuk blok Move () Steps adalah:
If on Edge, Bounce (block)
The Jika di Edge, Bounce blok adalah Blok Gerak dan Blok Stack . Blok memeriksa untuk melihat
apakah sprite -nya menyentuh tepi layar dengan blok - dan jika ya, sprite akan menunjuk ke arah
yang mencerminkan arah datangnya. Ini menggunakan garis tegak lurus ke tepi untuk
menentukan sudut refleksi.
Blok juga dapat digabungkan dengan opsi pada sebuah sprite untuk mengontrol pergerakannya ke
kiri dan ke kanan hanya karena hal ini mencegah sprite agar tidak terbalik.
53
If on Edge, Bounce (block)
Blok If on Edge, Bounce adalah Blok Motion dan Blok Stack. Blok memeriksa untuk melihat apakah
sprite-nya menyentuh tepi layar dengan gerakan tersebut
blok langkah - dan jika ya, sprite akan menunjuk ke arah yang mencerminkan arah datangnya. Ini
menggunakan garis tegak lurus ke tepi untuk menentukan sudut refleksi.
Blok juga dapat digabungkan dengan opsi pada sprite untuk mengontrol pergerakannya ke kiri
dan ke kanan hanya karena hal ini mencegah sprite agar tidak terbalik.
Set Rotation Style () (block)
The Set Rotasi Style () blok adalah blok Gerak dan blok Stack . Blok mengubah Rotasi Style dari
sprite in proyek . Terlepas dari gayanya, arah variabel masih akan berubah.
Ada tiga opsi untuk blok ini: sekeliling, kiri-kanan, dan jangan putar. Secara keseluruhan berarti
sprite dapat menghadapi salah satu dari 360 derajat. Ini adalah defaultnya. Kiri-kanan artinya
sprite hanya bisa menghadap ke kiri atau ke kanan, dan segala arah lainnya berbentuk bulat.
Sprite juga akan dibalik secara horizontal saat menghadap ke kiri dengan gaya kiri-kanan. Jangan
memutar berarti sprite selalu menghadap ke arah 90 °.
54
X Position (block)/ Y Position
The x posisi blok adalah blok reporter dan blok gerak . Blok memegang nya sprite nilai x
's, lokasi horisontal sprite di atas panggung. Blok tersebut dapat ditampilkan sebagai
monitor panggung .
55
56
57
7. Variable dan Events pada Scratch
Events
Acara blok adalah salah satu dari sepuluh kategori dari blok . Mereka diberi kode warna
kuning muda dan digunakan untuk merasakan peristiwa , yang memicu skrip untuk
dijalankan. Blok peristiwa sangat penting untuk setiap proyek : tanpa blok topi dari
kategori ini, proyek tidak akan dapat dimulai kecuali dengan menjalankan skrip secara
manual.
Saat ini ada 8 blok acara: 6 blok topi dan 2 blok tumpukan . Ini adalah kategori blok
terkecil.
Di Scratch 1.4 dan sebelumnya, semua blok acara berada di bawah kategori Blok Kontrol .
Awalnya setelah diberi kategorinya sendiri, blok Peristiwa disebut "Pemicu" di Penampil
Eksperimental dan versi awal Scratch 2.0. Namun, nama tersebut diubah oleh Scratch
Day 2012 menjadi "Events".
Acara awalnya juga menyertakan blok "adegan", di mana skrip dapat memicu adegan baru
untuk dimulai dan sprite atau panggung dapat merespons adegan baru tersebut.
Namun, ini sangat mirip dengan blok penyiaran , dan kemungkinan besar dihapus
karena pengulangan dan kebingungan.
58
Variabel
Variabel blok adalah salah satu dari sepuluh kategori dari Scratch 3.0 blok . The blok
variabel yang warna-kode oranye, dan blok daftar kode warna merah gelap.
Saat ini ada 17 blok Variabel: 11 blok Stack , 5 blok Reporter , dan 1 blok Boolean . Ada 5
blok variabel dan 12 blok daftar.
Daftar
59
8. Aritmatika dan Logika pada Scratch
Operator blok adalah salah satu dari sepuluh kategori dari Scratch blok . Mereka diberi
kode warna hijau muda, dan digunakan untuk membuat skrip persamaan matematika dan
penanganan string . Itu sebelumnya berjudul Numbers Blocks, tetapi diganti namanya di
Scratch 1.4 karena blok baru yang menangani string.
Saat ini terdapat 18 blok Operator: 7 blok Boolean dan 11 blok Reporter . This dan
PicoBoard Block adalah satu-satunya kategori yang tidak mengandung blok Stack .
60
9. Sensing pada Scratch
Blok penginderaan adalah salah satu dari sepuluh kategori blok Scratch .
Mereka diberikode warna cyan, dan digunakan untuk mendeteksi berbagai faktor proyek .
Saat ini ada 18 blok penginderaan: 3 blok tumpukan , 5 blok boolean, dan 10 blok reporter
61
Studi Kasus Membuat Berbagai Game
Seperti Anda lihat bahwa ‘algoritma’ tersebut merupakan sebuah
resep, yaitu sekumpulan petunjuk langkah demi langkah dalam mencampur bahan masakan dan
menghasilkan nasi goreng yang lezat. Secara umum, algoritma dapat digambarkan sebagai sebuah
prosedur untuk menyelesaikan sebuah masalah.
Dalam konteks pemrograman komputer, algoritma didefinisikan sebagai: kumpulan operasi
yang tertata dengan baik, jelas dan dapat dihitung secara efektif, yang ketika dieksekusi,
menghasilkan suatu hasil dan penghentian dalam waktu yang terbatas (Schneider & Gersting,
2010).
Karakteristik suatu Algoritma
• Tertata dengan baik: Langkah-langkahnya dalam urutan yang jelas.
• Jelas: Operasi yang digambarkan dipahami oleh suatu komputasi tanpa penyederhanaan
lebih lanjut.
• Dapat dihitung secara efektif: Komputasi tersebut sebenarnya dapat melakukan operasi.
Algoritma berasal dari nama terakhir Muhammad ibnu Musa Al-Khowarizmi. Seorang ahli
matematika terkenal dan penulis pada abad ke-8 dan 9 masehi yang berasal dari Persia. Al-
Khowarizmi adalah seorang guru di Institut Matematika di Baghdad dan penulis buku Kitab Al-
Jabr wal Muqaabalah, yang berarti “Aturan Menyatukan dan Memisahkan”. Buku tersebut
merupakan satu dari buku teks matematika paling awal, dan judul tersebut memberikan kita kata
Aljabar (Schneider & Gersting, 2010).
62
Metode untuk Mengembangkan suatu Algoritma
1. Definisikan masalah: Nyatakan masalah yang sedang Anda coba selesaikan dengan istilah
yang singkat dan jelas.
2. Buat daftar untuk input (informasi yang diperlukan untuk menyelesaikan masalah) dan
output (apa yang akan algoritma tersebut hasilkan).
3. Gambarkan langkah-langkah yang diperlukan untuk mengubah atau memanipulasi input
tersebut untuk menghasilkan output. Mulai pada tingkat tinggi terlebih dahulu, dan tetap
memperbaiki langkah-langkah tersebut hingga operasi dapat dihitung secara efektif.
4. Uji algoritma: pilih sekumpulan data dan periksa bahwa algoritma Anda bekerja!
Dalam tahapan penyelesaian masalah pemrograman komputer, Anda akan mendesain
algoritma. Ini berarti bahwa Anda harus menyadari strategi yang Anda gunakan untuk
menyelesaikan masalah dapat diterapkan dalam masalah pemrograman. Algoritma tersebut dapat
didesain meskipun menggunakan flowchart atau pseudocode.
Flowchart
Flowchart merupakan sebuah alat grafis yang menjelaskan cara penyelesaian masalah
penanganan informasi (Chapin, 1970). Flowchart merupakan sebuah diagram yang terdiri dari
bentuk kotak, wajik, dan lainnya, terhubung oleh panah, tiap bentuk mewakili sebuah langkah
dalam proses, dan panah menunjukkan urutan. Flowchart mengkombinasikan simbol dan garis alir,
untuk menunjukkan seperti apa operasi dari suatu algoritma.
Dalam komputasi, terdapat banyak simbol berbeda yang digunakan dalam flowchart. Dalam
analisis proses bisnis, sepasang simbol cukup. Sebuah kotak dengan teks di dalamnya menandai
sebuah langkah dalam proses, sementara sebuah wajik dengan teks mewakili sebuah keputusan.
Jika flowchart terlalu berantakan untuk digambar, coba mulai lagi, tetapi biarkan semua poin
keputusan dan berkonsentrasi pada cara yang paling sederhana mungkin. Kemudian sesi tersebut
dapat kembali dilanjutkan dan menambahkan poin keputusan setelahnya. Mungkin ini berguna
untuk memulai dengan menggambar flowchart tingkat tinggi untuk keseluruhan bagian, dengan
tiap kotak menjadi sebuah proses lengkap yang harus diisi nanti.
Dari pengertian umum ini bisa datang sejumlah hal, seperti ide perbaikan proses akan sering
muncul secara spontan selama sesi pembuatan flowchart. Dan setelah sesi tersebut, Anda juga
dapat menyusun prosedur tertulis, seperti sesi pembuatan flowchart yang merupakan cara yang baik
63
untuk mendokumentasikan sebuah proses. Proses perbaikan diawali dengan memahami proses
tersebut, dan membuat flowchart yang merupakan langkah awal menuju proses pemahaman.
Simbol Flowchart
Terdapat beberapa simbol dasar yang biasa digunakan dalam membuat flowchart program
bahasa Assembly (bahasa pemrograman tingkat rendah), yaitu: Terminal, Process, Input/Output,
Decision, Connector, dan Predefined Process. Berikut ini bukan merupakan daftar lengkap dari
semua simbol flowchart yang mungkin, melainkan beberapa simbol yang sering digunakan dalam
pemrograman bahasa Assembly.
Simbol Nama Fungsi
Process Menunjukkan jenis
operasi internal di
dalam prosesor atau
memori.
Input/
output
Digunakan untuk
operasi Input/Output
(I/O).
Decision Digunakan untuk
memberikan
pertanyaan yang dapat
dijawab dalam format
biner (Yes/No,
True/False).
Connector Membuat flowchart
dapat dibuat tanpa
memotong garis atau
alur yang berlawanan.
Predefined
Process
Digunakan untuk
meminta subrutin atau
program interupsi.
Terminal Menunjukkan awal
atau akhir dari
program, proses, atau
program interupsi.
Flow Lines Menunjukkan arah
aliran.
(Chapin, 1970)
Secara umum, terdapat banyak simbol flowchart yang baku.
Aturan Umum Membuat Flowchart
• Semua kotak flowchart terhubung dengan panah (Flow lines).
64
• Simbol flowchart memiliki titik masuk pada bagian atas simbol tanpa titik masuk lain.
Titik keluar untuk semua simbol flowchart berada pada bagian bawah kecuali untuk
simbol Decision.
• Simbol Decision memiliki dua titik keluar; berada di samping atau bawah dan satu sisi
samping lainnya.
• Secara umum flowchart akan mengalir dari atas ke bawah. Bagaimanapun, aliran ke
atas dapat ditampilkan selama tidak melebihi tiga simbol.
• Connector digunakan untuk menghubungkan jeda dalam flowchart. Contoh:
11.dari satu halaman ke halaman lain.
12.dari bawah halaman ke atas halaman yang sama.
13.aliran ke atas lebih dari tiga simbol.
• Subrutin dan program interupsi memiliki flowchart sendiri dan bebas (independent).
• Semua flowchart dimulai dengan simbol Terminal atau Predefined Process (untuk
program interupsi atau subrutin).
• Semua flowchart berakhir dengan Terminal atau loop.
Tips membuat flowchart
1. Buatlah diagram proses tersebut seperti benar-benar terjadi. Jangan mendokumentasikan
seperti sebuah proses yang ditulis atau seorang manajer yang berpikir proses tersebut
terjadi.
2. Orang biasanya memodifikasi proses yang ada agar mendapatkan proses yang lebih efisien.
Jika proses teoritis atau yang diinginkan tersebut digambarkan, masalah dengan proses
yang ada tidak akan disadari dan tidak ada perbaikan yang dapat dibuat.
Catat semua keadaan yang benar-benar ditangani.
3. Uji flowchart dengan mencoba mengikuti diagram tersebut untuk menampilkan proses
yang dibuat. Jika terdapat masalah yang menampilkan operasi yang dibuat, catat setiap
perbedaan dan modifikasi diagram tersebut agar tepat. Pendekatan yang lebih baik dengan
65
cara meminta orang yang tidak akrab dengan proses tersebut untuk mencoba mengikuti
flowchart dan catat pertanyaan atau masalah yang ditemukan.
4. Sertakan tahapan mental dalam proses tersebut seperti keputusan. Tahapan tersebut
terkadang hilang karena akrab dengan proses tersebut, bagaimanapun, representasikan
sumber masalah yang disebabkan oleh kemungkinan kurang informasi yang biasanya dapat
membuat keputusan tersebut tidak memadai atau tidak tepat jika ditampilkan oleh orang
yang berbeda.
Contoh Algoritma dan Flowchart
Contoh 1. Buatlah sebuah algoritma dan flowchart yang terkait untuk menambahkan skor yang
diberikan: 26, 49, 98, 87, 62, 75.
Solusi:
1. Algoritma
1. Start
2. Jumlah = 0
3. Dapatkan skor pertama
4. Tambahkan skor pertama ke jumlah
5. Dapatkan skor kedua
6. Tambahkan ke jumlah
7. Dapatkan skor ketiga
8. Tambahkan ke jumlah
9. Dapatkan skor keempat
10. Tambahkan ke jumlah
11. Dapatkan skor kelima
12. Tambahkan ke jumlah
13. Dapatkan skor keenam
66
14. Tambahkan ke jumlah
15. Output jumlah
16. Stop
2. Flowchart yang terkait
Algoritma dan flowchart di atas menggambarkan langkah-langkah untuk menyelesaikan
masalah menambahkan enam skor. Di mana satu skor ditambahkan ke jumlah pada suatu waktu.
Algoritma dan flowchart keduanya harus selalu memiliki Start pada awal algoritma atau flowchart
dan setidaknya satu Stop di akhir, atau di manapun pada algoritma atau flowchart. Karena kita
ingin menjumlahkan enam skor, maka kita harus memiliki sebuah muatan yang merupakan hasil
penjumlahan. Dalam contoh ini, muatan tersebut disebut jumlah dan kita memastikan bahwa
jumlah harus dimulai dengan nilai nol pada langkah 2.
Contoh 2. Masalah dengan algoritma ini adalah bahwa, beberapa langkah muncul lebih dari sekali,
maksudnya langkah 5 mengambil angka kedua, langkah 7, mengambil angka ketiga, dan
seterusnya. Algoritma atau flowchart dapat diringkas sebagai berikut:
B. Start
C. jumlah = 0
D. Dapatkan sebuah nilai
E. jumlah = jumlah + nilai
F. Menuju langkah 3 untuk mendapatkan nilai berikutnya
G. Output jumlah
H. Stop
Flowchart yang terkait
Algoritma ini dan flowchart yang terkait lebih pendek dari sebelumnya. Dalam algoritma ini,
langkah 3 hingga 5 akan diulang, di mana sebuah angka didapatkan dan dijumlahkan ke jumlah.
67
Sebuah garis alur yang dibuat berbalik ke langkah sebelumnya mengindikasikan bahwa porsi
flowchart berulang. Sebuah masalah yang mengindikasikan bahwa langkah-langkah ini akan
berulang tanpa akhir, menghasilkan sebuah algoritma atau flowchart tanpa akhir. Algoritma
tersebut perlu diubah untuk mengatasi masalah ini. Dalam rangka menyelesaikan masalah ini, kita
perlu menambahkan nilai terakhir untuk membuat daftar angka yang diberikan. Nilai ini harus unik
sedemikian sehingga, tiap saat kita dapat sebuah nilai, kita uji nilai tersebut untuk melihat jika kita
telah mencapai nilai terakhir. Dengan cara ini algoritma kita akan menjadi algoritma yang
berhingga di mana berakhir dalam sejumlah langkah berhingga seperti ditunjukkan berikut.
Terdapat banyak cara membuat algoritma berhingga.
List angka baru akan menjadi 26, 49, 98, 87, 62, 75, –1. Nilai –1 angka unik karena semua
angka lain positif.
1.1 Start
1.2 jumlah = 0
1.3 Dapatkan sebuah nilai
1.4 Jika nilai sama dengan –1, menuju langkah 7
1.5 Tambahkan jumlah (jumlah = jumlah + nilai)
1.6 Menuju langkah 3 untuk mendapatkan nilai berikutnya
1.7 Output jumlah
1.8 Stop
Flowchart terkait
Pseudocode
Pseudocode merupakan salah satu alat yang dapat digunakan untuk menuliskan rencana awal
yang dapat dikembangkan ke dalam sebuah program komputer. Pseudocode merupakan cara umum
penggambaran sebuah algoritma tanpa menggunakan sintaks bahasa pemrograman tertentu
(Levitin, 2012). Seperti namanya, pseudo code –tidak dapat dieksekusi pada komputer yang
sebenarnya, tetapi memodelkan dan menyerupai kode pemrograman yang sebenarnya, dan ditulis
secara kasar pada tingkatan detail yang sama.
68
Pseudocode, secara alami, hadir dalam berbagai macam bentuk, meskipun banyak meminjam
sintaks dari bahasa pemrograman populer (seperti C, Lisp, atau FORTRAN). Bahasa dasar
digunakan kapanpun rincian tidak penting atau mengganggu.
Buku sumber sains komputer sering menggunakan pseudocode dalam contoh mereka
sehingga semua programmer dapat memahaminya, bahkan jika mereka tidak semua memahami
bahasa pemrograman yang sama. Karena gaya pseudocode beragam dari penulis ke penulis,
biasanya terdapat pendahuluan yang menemani penjelasan sintaks yang digunakan.
Dalam desain algoritma, tahapan algoritma ditulis dalam teks bahasa Inggris bebas dan,
meskipun keringkasan diinginkan, tahapan tersebut mungkin diperlukan selama untuk menjelaskan
operasi tertentu. Tahapan tersebut dari sebuah algoritma dikatakan ditulis dalam pseudocode.
Banyak bahasa, seperti Pascal, memiliki sintaks yang hampir identik dengan pseudocode dan
karenanya membuat transisi dari desain ke coding sangat mudah. Bagian berikut berkaitan dengan
struktur kontrol (konstruk kontrol). Barisan, Seleksi dan Iterasi, atau Pengulangan.
Struktur Kontrol atau Struktur Logis
Kunci untuk desain algoritma yang lebih baik dan dengan demikian pemrograman berada
dalam pembatasan struktur kontrol untuk hanya tiga konstruk. Diilustrasikan sebagai berikut:
Struktur barisan
Tipe pertama struktur kontrol disebut struktur barisan. Struktur ini merupakan struktur
yang paling mendasar. Struktur barisan merupakan sebuah kasus di mana tahapan dalam sebuah
algoritma dibangun sedemikian rupa, tidak ada tahapan bersyarat yang diperlukan. Struktur barisan
setara dengan garis lurus.
Sebagai contoh, misalkan Anda diminta untuk mendesain sebuah algoritma untuk
menemukan rerata enam angka, dan jumlah angka tersebut diketahui. Pseudocodenya seperti
berikut:
Start
Dapatkan jumlah
Rerata = jumlah/6
Output rerata
Stop
69
Flowchart yang terkait akan muncul seperti ini:
Contoh 3. Ini merupakan pseudocode yang diperlukan untuk memasukkan tiga angka dari
keyboard dan menampilkan hasilnya.
Gunakan variabel: jumlah, angka1, angka2, angka3 bilangan bulat
Terima angka1, angka2, angka3
jumlah = angka1 + angka2 + angka3
Print jumlah
End program
Contoh 4. Pseudocode berikut menggambarkan sebuah algoritma yang akan menerima dua angka
dari keyboard dan menghitung jumlah dan kali menampilkan jawaban pada layar monitor.
Gunakan variabel: jumlah, kali, angka1, angka2 bilangan real
Tampilkan “Masukkan dua angka”
Terima angka1, angka2
jumlah = angka1 + angka2
Print “Jumlahnya adalah”, jumlah
kali = angka1*angka2
Print “Hasil kalinya adalah”, kali
End program
Struktur Keputusan atau Struktur Pilihan
Struktur keputusan atau biasa disebut struktur pilihan, merupakan kasus di mana dalam
algoritma, harus memilih di antara dua pilihan dengan membuat keputusan bergantung pada
70
kondisi yang diberikan. Struktur pilihan disebut juga struktur pemilihan kasus di mana terdapat dua
atau lebih pilihan untuk dipilih.
Struktur ini dapat diilustrasikan dalam sebuah flowchart sebagai berikut:
Bentuk pseudocodenya sebagai berikut:
If kondisi benar
Then lakukan Tugas A
Else
Do Tugas B
Dalam contoh ini, kondisi tersebut dievaluasi, jika kondisi benar Tugas A dievaluasi dan jika salah,
maka Tugas B dieksekusi.
Variasi konstruksi gambar di atas ditunjukkan seperti berikut:
Dari struktur di atas, kita memiliki
If kondisi benar maka
Do Tugas A
Dalam kasus ini, jika kondisi salah, tidak terjadi apa-apa. Selain itu Tugas A dieksekusi.
Pilihan memerlukan hal berikut
1. Pilih tindakan lain sebagai sebuah hasil pengujian kondisi logis
2. Buatlah kode untuk menguji serangkaian tes logika
Membuat pilihan
Terdapat banyak hal di mana sebuah program diminta untuk mengambil tindakan lain.
Sebagai contoh, hal di mana kita perlu mengambil tindakan berdasarkan pilihan pengguna. Semua
bahasa komputer menyediakan sarana pilihan. Biasanya ini dalam bentuk pernyataan If dan
pseudocode bukan pengeceualian untuk ini.
Kita akan menggunakan pernyataan if bersama dengan operator logika untuk menguji benar
atau salah seperti pernyataan berikut.
71
If a = b
Print “a = b”
Tindakan diambil hanya ketika pengujian tersebut benar.
Operator logika yang digunakan dalam pseudocode adalah
= sama dengan
> lebih besar dari
< kurang dari
>= lebih besar atau sama dengan
<= lebih kecil atau sama dengan
<> tidak sama dengan
Contoh 5. Contoh berikut ini menunjukkan bagaimana struktur kontrol pilihan yang digunakan
dalam sebuah program di mana pengguna memilih pilihan untuk mengalikan angka-angka atau
menambahkannya atau mengurangkannya.
Gunakan variabel: pilihan, bertipe karakter
jawaban, angka1, angka2, bertipe bilangan bulat
tampilkan “pilih satu dari berikut ini”
tampilkan “k untuk perkalian”
tampilkan “j untuk penjumlahan”
tampilkan “p untuk pengurangan”
terima pilihan
tampilkan “masukkan dua angka yang Anda inginkan”
terima angka1, angka2
if pilihan = k then jawaban = angka1*angka2
if pilihan = j then jawaban = angka1 + angka2
72
if pilihan = p then jawaban = angka1 – angka2
tampilkan jawaban
Campuran operator logika
Terdapat banyak hal ketika kita perlu memperluas kondisi yang akan diuji. Sering terdapat
kondisi yang perlu dihubungkan. Dalam bahasa sehari-hari kita mengatakan hal-hal seperti Jika
saya memiliki waktu dan uang saya akan pergi berlibur. Kata dan berarti bahwa kedua kondisi
mesti terpenuhi sebelum kita mengambil tindakan. Kita juga dapat berkata Saya bahagia pergi ke
teater atau bioskop. Tautan logika kali ini adalah atau. Kondisi dalam pernyataan jika terhubung
dengan cara yang sama. Kondisi yang dihubungkan dengan dan menghasilkan tindakan hanya
ketika semua kondisi terpenuhi. Sebagai contoh, jika a > b dan a > c maka tampilkan “a palin
besar”. Kondisi yang dihubungkan dengan atau menghasilkan tindakan ketika salah satu kondisi
terpenuhi.
Contoh 6. Program berikut ini memasukkan nilai ujian dan mengujinya untuk pemeringkatan. Nilai
ujian tersebut adalah semua angka antara 1 dan 100. Peringkat berdasarkan kriteria berikut:
>= 80 sangat baik
>= 60 baik
>= 40 cukup
< 40 gagal
Pseudocodenya adalah
Gunakan variabel: nilai bertipe bilangan bulat
If nilai>=80 tampilkan “sangat baik”
If nilai >= 60 dan nilai < 80 tampilkan “baik”
If nilai >= 40 dan nilai < 60 tampilkan “cukup”
If nilai < 40 tampilkan “gagal”
Sebuah pernyataan if dengan sendirinya seringkali bukan cara terbaik dalam menyelesaikan
masalah. Sekumpulan kondisi yang lebih elegan dapat dibuat dengan menambahkan pernyataan
else ke pernyataan if. Pernyataan else digunakan untuk mengatasi situasi seperti ditunjukkan dalam
contoh berikut.
73
Contoh 7. Seseorang digaji tinggi pada kategori pekerjaan 1 selain itu digaji normal.
If kategori pekerjaan 1
gaji tinggi
Else
gaji normal
Pernyataan else memberikan cara yang rapi dalam mengatasi kondisi lain. Dalam pseudocode kita
tulis
If pekerjaan = kat1 then g-rate:= tinggi
Else g-rate = normal
Atau
If pekerjaan = kat1 maka
g-rate:= tinggi
else
g-rate = normal
Contoh berikut menggambarkan penggunaan pernyataan if … else dalam menampilkan kondisi lain
berganda.
If gaji < 5000000 then
Pajak = 0
Else
If gaji > 5000000 AND gaji < 10000000 then
Pajak = 5000000 * 0,05
Else
Pajak = 10000000 * 0,30
74
Case statement
Pengulangan pernyataan if … else beberapa kali dapat sedikit membingungkan. Metode lain
yang diberikan dalam sejumlah bahasa adalah menggunakan selector yang ditentukan oleh kondisi
lain yang diperlukan. Dalam pseudocode kita, ini disebut case statement.
Contoh 8. Program berikut menghasilkan sebuah pesan ke layar monitor yang menggambarkan
asuransi yang tersedia berdasarkan kategori yang dimasukkan oleh pengguna.
Gunakan variabel: kategori bertipe karakter
Tampilkan “masukkan kategori”
Terima kategori
If kategori = T
Tampilkan “asuransi tidak tersedia”
Else
If kategori = A then
Tampilkan “asuransi ganda”
Else
If kategori = B then
Tampilkan “asuransi normal”
Else
If kategori = M then
Tampilkan “asuransi tergantung secara medis”
Else
Tampilkan “entry invalid”
Ini dapat diekspresikan dalam case statement sebagai berikut:
Gunakan variabel: kategori bertipe karakter
Tampilkan “masukkan kategori”
75
Terima kategori
DO kategori kasus
CASE kategori = T
Tampilkan “asuransi tidak tersedia”
CASE kategori = A
Tampilkan “asuransi ganda”
CASE kategori = B
Tampilkan “asuransi normal”
CASE kategori = M
Tampilkan “asuransi tergantung secara medis”
OTHERWISE
Tampilkan “entry invalid”
ENDCASE
Selain menggunakan kata otherwise, dapat juga digunakan else.
Struktur Iterasi atau Pengulangan
Struktur ketiga menyebabkan tahapan tertentu diulang. Struktur pengulangan dapat diterapkan
menggunakan
- Repeat Until Loop
- While Loop
- For Loop
Instruksi suatu program yang mengulang suatu pernyataan atau barisan pernyataan beberapa
kali disebut iterasi atau loop. Perintah yang digunakan untuk membuat pengulangan atau loop
semuanya berdasarkan pada tes logika. Terdapat tiga konstruksi untuk iterasi atau loop dalam
pseudocode kita.
Repeat Until Loop
Sintaksnya adalah
76
REPEAT
Sebuah pernyataan atau bagian dari pernyataan
UNTIL kondisi terpenuhi
Contoh 9. Sebuah segmen program meminta secara berulang entri sebuah angka dalam rentang 1
sampai 100 hingga angka yang valid dimasukkan.
REPEAT
DISPLAY “Masukkan sebuah angka antara 1 dan 100”
ACCEPT angka
UNTIL angka < 1 OR angka > 100
Contoh 10. Sebuah survei dikeluarkan untuk mengetahui olahraga yang paling populer. Hasilnya
akan diketikkan ke dalam komputer untuk dianalisa. Tulislah sebuah program untuk menyelesaikan
ini.
REPEAT
DISPLAY “Ketikkan dalam huruf yang dipilih atau Q untuk selesai”
DISPLAY “A: Atletik”
DISPLAY “R: Renang”
DISPLAY “S: Sepak bola”
DISPLAY “B: Bulu tangkis”
DISPLAY “Masukkan data”
ACCEPT huruf
If huruf = ‘A’ then
Atletik = Atletik + 1
If huruf = ‘R’ then
Renang = Renang + 1
If huruf = ‘S’ then
77
Sepakbola = Sepakbola + 1
If huruf = ‘B’ then
Bulutangkis = Bulutangkis + 1
UNTIL huruf = ‘Q’
DISPLAY “Skor atletik”, Atletik, “yang memilih”
DISPLAY “Skor renang”, Renang, “yang memilih”
DISPLAY “Skor sepakbola”, Sepakbola, “yang memilih”
DISPLAY “Skor bulutangkis”, Bulutangkis, “yang memilih”
While loop
Pengulangan jenis kedua yang akan kita lihat adalah iterasi while. Jenis loop bersyarat ini
menguji untuk memutus kondisi pada permulaan loop. Dalam kasus ini tidak ada tindakan yang
ditampilkan sama sekali jika uji pertama menyebabkan kondisi yang dievaluasi salah.
Sintaksnya adalah
WHILE (sebuah kondisi terpenuhi)
Sebuah pernyataan atau bagian dari pernyataan
ENDWHILE
Contoh 11. Sebuah segmen program untuk mencetak tiap karakter yang diketik di keyboard hingga
karakter ‘q’ dimasukkan.
WHILE huruf < > ‘q’
ACCEPT huruf
DISPLAY “Karakter yang Anda ketik adalah”, huruf
ENDWHILE
Contoh 12. Tulislah sebuah program yang akan menampilkan pangkat dua dari sebarang input
angka hingga input angka nol.
Dalam beberapa kasus, sebuah variabel harus diawali sebelum eksekusi loop seperti yang
ditampilkan dalam contoh berikut.
78
Gunakan variabel: angka bertipe real
DISPLAY “Ketikkan sebuah angka atau nol untuk berhenti”
ACCEPT angka
WHILE angka < > 0
kuadrat = angka * angka
DISPLAY “Kuadrat dari angka tersebut adalah”, kuadrat
DISPLAY “Ketikkan sebuah angka atau nol untuk berhenti”
ACCEPT angka
ENDWHILE
For loop
Iterasi jenis ketiga, yang akan kita gunakan ketika banyaknya iterasi diketahui terlebih
dahulu, adalah for loop. Ini, dalam bentuk paling sederhana, menggunakan sebuah inisialisasi
variabel sebagai sebuah titik awal, kondisi berhenti bergantung pada nilai variabel. Variabel
tersebut bertambah pada tiap iterasi hingga mencapai nilai yang diinginkan.
Sintaks pseudocodenya sebagai berikut:
FOR (keadaan awal, kondisi berhenti, kenaikan)
Pernyataan
ENDFOR
Contoh 13.
FOR (n = 1, n <= 4, n + 1)
DISPLAY “Loop”, n
ENDFOR
Penggalan kode tersebut akan menghasilkan output
Loop 1
Loop 2
Loop 3
79
Loop 4
Dalam contoh tersebut, n biasanya sebagai variabel loop, atau variabel hitungan, atau indeks loop.
Variabel loop dapat digunakan dalam sebarang pernyataan loop. Variabel tersebut tidak boleh
diberi sebuah nilai baru dalam loop, yang mana dapat mengubah perilaku loop.
Contoh 14. Tulislah sebuah program untuk menghitung jumlah dan rerata dari sederet angka.
Solusi pseudocodenya adalah:
Gunakan variabel: n, hitungan bertipe bilangan bulat
jumlah, angka, rerata bertipe bilangan real
DISPLAY “Berapa banyak angka yang Anda ingin masukkan”
ACCEPT hitungan
jumlah = 0
FOR (n = 1, n <= hitungan, n + 1)
DISPLAY “Masukkan angka”
ACCEPT angka
jumlah = jumlah + angka
ENDFOR
rerata = jumlah / hitungan
DISPLAY “Jumlah angka tersebut adalah”, jumlah
DISPLAY “Rerata angka tersebut adalah”, rerata
Flowchart telah digunakan dalam bagian ini untuk mengilustrasikan bentuk ketiga struktur
kontrol tersebut. Ini merupakan struktur kontrol dasar dari mana semua program dibangun. Di luar
ini, flowchart melayani programmer dalam dua cara yang berebda: sebagai alat menyelesaikan
masalah dan sebagai alat untuk mendokumentasikan sebuah program.
Contoh
Buatlah sebuah algoritma dan flowchart yang terkait untuk mendapatkan jumlah dari n angka.
80
Pseudocode Program
Start
jumlah = 0
Display “Masukkan nilai n”
Input n
For (I = 1, n, 5)
Input nilai
jumlah = jumlah + nilai
ENDFOR
Output jumlah
Stop
Dalam contoh ini, kita telah menggunakan I untuk membiarkan kita menghitung banyaknya
pengulangan, yang kita dapat dari penambahan. Kita bandingkan I dengan n untuk memeriksa
apakah kita telah kehabisan angka atau tidak dalam rangka menghentikan komputasi jumlah (atau
untuk menghentikan struktur iterasi). Dalam kasus ini, I merupakan counter.
Flowchart yang terkait adalah sebagai berikut:
Latihan
• Buatlah sebuah algoritma dan flowchart yang terkait untuk menemukan jumlah dari angka-
angka 2, 4, 6, 8, …, n
• Dengan menggunakan flowchart, tulislah sebuah algoritma untuk membaca 100 angka dan
kemudian menampilkan jumlahnya.
• Tulislah sebuah algoritma untuk membaca dua angka kemudian menampilkan yang paling
besar.
• Tulislah sebuah algoritma untuk membaca dua angka kemudian menampilkan yang paling
kecil.
81
• Tulislah sebuah algoritma untuk membaca tiga angka kemudian menampilkan yang paling
besar.
• Tulislah sebuah algoritma untuk membaca 100 angka kemudian menampilkan yang paling
besar.
82
SCRATCH
Bagian ini akan dibahas sekilas tentang Scratch,
dimulai dengan instalasi, fitur-fitur yang dimiliki serta contoh
penggunaannya.
Pengenalan Scratch
Banyak orang menganggap pemrograman komputer
sesuatu yang misterius dan proses rumit yang memerlukan
pendidikan dan pelatihan teknik tingkat tinggi. Ini merupakan
pendapat yang salah. Bahasa pemrograman BASIC telah ada
sekitar beberapa dekade dan dikembangkan untuk
mengajarkan programmer belajar untuk pertama kalinya
bagaimana membuat program. Beberapa tahun ini, bahasa
pemrograman jenis baru telah muncul, khususnya dalam
membantu anak dan siswa belajar pemrograman. Salah
satunya yang terbaik dan terbaru saat ini adalah Scratch.
(Ford, 2009)
Scratch merupakan bahasa pemrograman yang
memudahkan Anda untuk membuat cerita, animasi, games,
musik, dan seni yang Anda miliki secara interaktif. Scratch
dikembangkan oleh kelompok penelitian Lifelong
Kindergarten di MIT Media Lab. (Kindergarten, 2013).
Scratch dapat digunakan secara online atau offline. Untuk
penggunaan secara online disarankan untuk menggunakan
83
Mozilla Firefox atau Google Chrome sebagai browser.
Penggunaan Internet Explorer bermasalah ketika Sign In.
(Lero, 2014)
Scratch Online
Penggunaan Scratch secara online melalui
https://scratch.mit.edu/ . Scratch memiliki komunitas di mana
Anda dapat berbagi dan berkolaborasi dengan pengguna lain.
Anda dapat bergabung ke dalam komunitas dengan membuat
akun Scratch.
Berikut ini tampilan awal https://scratch.mit.edu/ .
Klik “Join Scratch” untuk mendaftarkan akun Scratch jika
Anda belum memilikinya.
84
Jika Anda telah memiliki akun klik “Sign In”.
Klik “Create” untuk menuju tampilan pemrograman Scratch
secara online.
85
Fitur Scratch 2.0
Berikut ini fitur yang ada pada Scratch 2.0:
A. Ketika Anda membuat sebuah project, hanya Anda
yang dapat melihatnya. Setelah Anda membaginya
(share), siapapun dapat melihat dan mengubahnya.
B. Fitur Backpack memungkinkan Anda meng-copy dan
memindahkan sprites, costumes, backdrops, dan
scripts dari suatu project ke project lain. Anda dapat
membuka Backpack di dalam setiap project
(Backpack berada di bagian bawah layar. Backpack
belum tersedia di offline editor).
C. Anda dapat menggunakan webcam pada komputer
Anda untuk berinteraksi dengan project dengan
menggerakkan tangan atau tubuh Anda.
86
D. Sekarang Anda dapat membuat blocks pemrograman
Anda sendiri.
E. Gunakan clone blocks dalam scripts Anda untuk
membuat salinan sprites.
F. Simpan angka dalam variabel cloud untuk membuat
survey dan project lain.
Fitur Komunitas
A. Pada home page, Anda dapat melihat apa yang telah
dibagi (share) oleh yang lain.
B. Ketika melihat sebuah project, klik
untuk melihat bagaimana project
tersebut bekerja dan bereksperimen dengan kode.
C. Di dalam setiap project, klik untuk
menyimpan dan membuat perubahan versi Anda
sendiri. Setelah Anda membaginya, halaman project
87
tersebut akan menandai pembuat aslinya dan
membuat link ke project mereka.
D. Klik username atau icon Anda untuk menuju halaman
Profile, di mana Anda dapat menampilkan salah satu
project Anda dan memberitahu apa yang sedang Anda
kerjakan.
E. Orang-orang dapat menyampaikan komentar pada
halaman Profile Anda dan akun Scratch
Anda untuk melihat update.
F. Studios dapat dikurasi oleh Anda dan lainnya yang
Anda undang.
G. Fitur Search memungkinkan Anda menemukan dan
melakukan pratinjau project dengan lebih mudah.
Scratch 2.0 Offline Editor
Perkuliahan ini akan menggunakan Scratch 2.0 offline editor.
Ini berarti Scratch 2.0 offline editor tidak bergantung pada
cepatnya koneksi internet. Berikut ini akan diuraikan tahapan
menginstal Scratch 2.0 offline editor.
88
Instalasi Scratch
Anda dapat mengunduh Scratch di
https://scratch.mit.edu/download .
89
90
Berikut ini tahapan instalasi scratch:
1. Instal Adobe AIR: Unduh dan jalankan Adobe AIR
installer.
Ini akan mengunduh installer tersebut ke dalam folder
unduhan Anda. Berikutnya klik dua kali installer yang
ada dalam folder tersebut. Adobe AIR akan memulai
instalasi.
2. Instal Scratch offline editor: Unduh dan jalankan
Scratch installer.
Ini akan mengunduh installer tersebut ke dalam folder
unduhan Anda. Berikutnya klik dua kali installer yang
ada dalam folder tersebut. Scratch akan memulai
instalasi.
Memulai Scratch
Berikut ini panduan untuk membuat sebuah project di Scratch
yang disusun oleh kelompok penelitian Lifelong
Kindergarten:
1. Start Moving
91
Drag block Move ke dalam area Scripts.
Klik blok tersebut
2. Add a Sound
92
Drag Play Drum ke dalam area Scripts dan pasangkan dengan
block Move.
Klik dan dengarkan.
Jika Anda tidak dapat mendengarnya, periksa bahwa sound
pada komputer Anda dalam keadaan on.
93
Anda dapat memilih drum yang berbeda dari menu seperti
gambar di atas.
3. Start a Dance
Tambahkan block Move. Klik di dalam block tersebut dan
ketikkan tanda minus.
94
Klik pada block tersebut untuk menjalankannya.
Tambahkan block Play Drum lain, kemudian pilih sebuah dari
menu tersebut. Klik untuk menjalankannya.
4. Again and Again
Drag block Repeat dan letakkan pada bagian atas tumpukan
block. Anda ingin mulut dari Repeat meliputi block lainnya.
95
Anda dapat merubah banyaknya perulangan (repeat).
Klik untuk menjalankan.
Untuk menjalankan, Anda dapat mengklik bagian mana saja
pada tumpukan block tersebut.
5. Say Something
Klik kategori Looks dan drag block Say.
96
Klik di dalam block Say dan ketikkan untuk merubah kata.
Klik untuk mencobanya.
Kemudian pasangkan block Say pada bagian atas.
97
6. Green Flag
Drag block dan pasangkan di bagian
atas.
98
7. Change Color
Sekarang coba sesuatu yang berbeda …
Drag block Change Effect ke dalam area script.
Klik untuk melihat yang terjadi.
99
8. Key Press
Klik
Sekarang tekan spasi pada keyboard Anda.
100
Anda dapat memilih key yang
berbeda dari menu tersebut.
9. Add a Backdrop
Anda dapat menambahkan sebuah backdrop ke dalam Stage.
Klik untuk memilih backdrop baru.
Pilih sebuah backdrop dari library (seperti “Spotlight-Stage”).
101
Klik Ok.
Sekarang backdrop baru muncul di Stage.
102
10. Add a Sprite
Setiap objek di dalam Scratch disebut sprite.
Untuk menambahkan sprite baru,
klik salah satu tombol tersebut.
103
Tombol Sprite:
Memilih dari library
Melukis sprite milik Anda
Unggah sprite atau gambar milik Anda
Mengambil gambar (dari webcam)
Untuk menambahkan sprite ini, klik
kemudian klik People dan pilih
“Cassy Dance”. Anda dapat
menggeser karakter ke mana yang
Anda inginkan.
104
11. Explore!
Sekarang Anda dapat mengatakan kepada sprite apa yang
harus dilakukan. Cobalah yang berikut ini, atau jelajahi
sendiri.
105
12. Tips!
106
Untuk lebih banyak ide, klik Tips:
107
Tips Window menampilkan contoh script yang dapat Anda
gunakan untuk project Anda.
108
Juga menjelaskan apa yang dilakukan tiap block di dalam
Scratch.
Save and Share
Untuk menyimpan project Anda di Scratch offline editor:
109
Klik File, kemudian Save.
Untuk menyimpan project online Anda, yakinkan bahwa
Anda telah Sign In.
(jika Anda ingin menyimpan file tersebut ke dalam komputer
Anda, klik File dan pilih “Download to Your Computer”)
Ketika Anda siap, klik
110
Klik untuk menampilkan full screen.
Klik agar yang lain melihat dan bermain dengan
project Anda.
Ketika Anda berbagi (share), orang lain dapat berkunjung dan
berinteraksi dengan project Anda.
Sekarang apa? Anda dapat sebuah project baru
atau ide-ide.
Untuk lebih tahu, klik atau kunjungi
http://scratch.mit.edu/help .
111
112
Studi Kasus Pembuatan Game
Bagian ini akan menjabarkan pembuatan permainan sederhana
berikut dengan logikanya. Permainan pertama akan menampilkan beberapa
fungsi pada Scratch misal penghitungan waktu, pergantian latar belakang
pada kondisi-kondisi tertentu dan beberapa kegiatan lainnya. Sedangkan
contoh permainan berikutnya, menampilkan permainan yang dapat
dimainkan oleh dua orang.
Permainan Sederhana
Permainan sederhana yang akan dibuat disini dibagi menjadi dua,
yakni: permainan untuk satu orang dan permainan dengan dua orang. Pada
permainan yang dilakukan oleh dua orang biasanya setiap pemain saling
Pong
Permainan ini merupakan permainan yang dapat dilakukan oleh dua orang
secara bersamaan, satu lawan satu. Setiap pemain (Pemain 1 dan Pemain 2)
dapat mengendalikan tongkat yang digunakan untuk memukul bola, score
pemain bertambah apabila dapat menempatkan bola sehingga lawan tidak
dapat menjangkaunya. Pemain dengan score tertinggi menang.
113
Langkah 1. Membuat Latar Belakang, Papan Score, Bola dan Tongkat.
Membuat Latar Belakang.
▪ Buka Software
Scratch.
▪ Pilih “Stage”.
▪ Plih “Background”
▪ Klik kanan pada
“sprite 1” dan klik
“delete” untuk
menghilangkan sprite 1
(kucing).
▪ Gunakan “paint
bucket” untuk
mewarnai.
▪ Pilih warna hitam
dan klik pada latar
belakang.
▪ Gunakan “line tool”
114
untuk membuat garis
putih di tengah latar.
▪ Gunakan “rectangle
tool” untuk membuat
wilayah “score” dengan
dua warna yang kontras
pada dua sisi yang
saling berlawanan
(contoh digunakan
warna merah dan biru)
▪ Pemukul dibuat pada
“sprite” yang baru.
Dengan klik pada “Paint
new sprite”, dan gambar
pemukul dengan
memilih “Rectangle”.
Kemudian gambar
pemukul.
▪ Setelah menggambar
pemukul, klik kanan
pada “sprite” pilih
“duplicate” untuk
membuat pemukul yang
digunakan pemain ke 2.
▪ Berikutnya membuat
115
bola. Gambar bola
dibuat pada “sprite”
baru dengan klik
“Choose sprite from
library”. Kemudian
memilih benda yang
menurut Anda sesuai.
▪ Gambar yang
dihasilkan dapat
diperbesar atau perkecil
sesuai kebutuhan
dengan menggunakan
fitur “shrink”. Klik
kemudian arahkan ke
“sprite” yang akan
diperkecil dan klik
untuk memperkecil
“sprite”. Klik
kemudian arahkan ke
“sprite” yang akan
diperbesar dan klik
untuk memperbesar.
Langkah 2. Membuat program untuk pemukul.
Pada langkah ini kita akan membuat kendali/ kontrol pada pemukul,
pemukul pertama dikendalikan oleh pemain pertaman dan pemukul kedua
dikendalikan oleh pemain kedua. Kendali dari pemukul berupa gerakan
keatas-bawah.
116
• Pilih pemukul yang pertama (sprite 1). Sprite 1 nantinya akan
dikendalikan oleh pemain pertama.
• Buat script yang memberikan perintah pada pemukul untuk
bergerak ke atas apabila ditekan huruf w.
• Pembuatan script yang memerintahkan pemukul untuk bergerak
ke bawah apabila ditekan huruf a, dapat dibuat dengan
memodifikasi perintah sebelumnya.
Pada script klik kanan dan pilih “duplicate”, kemudian ganti huruf
w dengan huruf a.
• Script pada pemukul kedua (sprite 2) dapat dilakukan dengan
cara yang hamper serupa, script pada sprite 1 di-drag dan letakkan
pada script ke 2. Hal tersebut juga akan membuat duplikasi script
tetapi dilakukan pada sprite yang berbeda.
• Kemudian ubah dari
w menjadi up arrow,
untuk gerakan ke atas.
Dan down arrow untuk
gerakan ke bawah.
Langkah 3. Membuat program untuk bola
Pada permainan ini, kita akan memprogram bola agar memantul ketika
menyentuh tepi. Selain itu, untuk menambah kesulitan dari permainan ini
jalur pantulan bola dapat dibuat secara acak.
▪ Pilih sprite
Baseball.
▪ Script tersebut memastikan
117
bahwa pada setiap kali
permainan dimulai, posisi bola
berada di koordinat x=0 dan
y=0. Selanjutnya, setelah bola
pada posisi tersebut memastikan
jalur bola secara acak diantara
45 sampai 135 (derajat).
▪ Script tersebut memastikan agar bola bergerak secepat 5 langkah
dan pada saat mencapai tepi, bola tersebut akan memantul.
Langkah 4. Membuat program untuk permainan
Pada langkah ini kita memastikan agar pada saat bola menyentuh pemukul
maka bola tersebut akan memantul dan permainan dapat dilakukan.
▪ Pilih sprite Baseball.
▪ Pada script yang telah
ada sebelumnya, akan
ditambahkan fungsi lainnya
seperti memastikan bahwa
bola akan memantul juga
apabila mengenai pemukul.
▪ Script tersebut
memastikan bahwa pada saat
bola menyentuh sprite 1 dan
sprite 2 maka bola akan
memantul dengan arah yang
berlawanan dengan arah
datangnya bola. Kemudian
sisipkan script tersebut pada
script yang telah dibuat
sebelumnya.
Kemudian cobalah apa yang terjadi….
118
Langkah 5. Membuat program untuk score
Pada langkah ini kita memastikan bahwa sistem score berjalan dengan baik,
sehingga permainan berjalan dengan baik pula.
▪ Sistem score dibuat
dengan menggunakan
variabel yakni: variabel
pemain 1 dan pemain 2.
Dengan klik “Make a
Variable” maka akan
muncul kolom “New
Variable”, isi “Variable
name” dengan Pemain
1 klik “OK”. Kemudian
dengan cara yang sama,
buat variabel untuk
Pemain 2.
▪ Hasil akhirnya di
bawah kolom “Make
a Variable” akan
muncul variabel
yang dibuat, yakni:
Pemain 1 dan
Pemain 2.
▪ Script
tersebut
memastikan
bahwa apabila
bola
menyentuh
warna tertentu
maka score
akan berubah.
Agar
penentuan
warna sesuai
dan script
Ingat: Apabila bola menyentuh warna merah
maka lawan (Pemain 1) akan mendapat
tambahan score, dan sebaliknya.
119
berjalan
seperti yang
diharapkan
maka pada
saat pemilihan
warna klik
pada warna
yang ada di
tepi.
▪ Sisipkan
script tersebut
pada script
untuk sprite
“Baseball”
yang telah ada
sebelumnya.
▪ Kemudian cobalah apa yang terjadi….
Langkah 6. Pengembangan Program.
Pada permainan yang telah dibuat masih terdapat beberapa hal yang perlu
diperbaiki, misal: sistem “score” tidak kembali dari 0-0 apabila pemainan
dimulai dari awal atau bola tidak kembali ke tengah setelah salah satu
pemain bertambah angkanya serta beberapa perbaikan lainnya agar
permainan semakin menarik.
▪ Perbaikan
pertama, setiap
pemainan dimulai
score menunjukkan
Pemain 1 :0 dan
Pemain 2: 0. Klik
pada Data dan
pastikan bahwa set
Pemain 1 to 0 dan
set Pemain 2 to 0.
120
▪ Kemudian
sisipkan script
tersebut pada script
yang telah ada.
Kemudian cobalah
apa yang terjadi….
▪ Perbaikan
berikutnya, kedua,
adalah
mengembalikan posisi
bola ke tengah ((x,y)
= (0,0)) setiap salah
satu pemain
mendapatkan angka.
Kemudian sisipkan
script tersebut pada
script yang telah ada.
Kemudian cobalah
apa yang terjadi….
▪ Perbaikan
berikutnya, ketiga,
adalah perbaikan
sistem score. Pada
permainan yang telah
dibuat, ternyata masih
terdapat sedikit
masalah, yakni
kadang pada saat bola
menyentuh bagian
merah (atau biru)
permainan mulai
terlalu cepat sehingga
ada baiknya diberikan
sedikit jeda dengan
script “wait 1 secs”.
Kemudian sisipkan
script tersebut pada
script yang telah ada.
Kemudian cobalah
apa yang terjadi….
121
Evaluasi 1
1. Apakah kedua script ini sama?
1. Y
a
2. T
i
d
a
k
2. Apakah yang akan dibentuk oleh script berikut:
1.
2.
122
3.
4.
3. Kita akan membuat script dengan dua karakter seekor kucing
dan seekor anjing. Script untuk kucing seperti berikut:
Akan dibuat script untuk anjing sedemikian sehingga anjing
akan berkata “So there you are!” tepat pada saat kucing
muncul dilayar. Manakah script berikut yang sesuai?
1.
2.
3.
4.
4. Kita akan membubat sebuah permainan baru, dengan
menggunakan panah untuk mengendalikannya. Apabila
123
ditekan tombol panah kanan maka karakter pada permainan
tersebut akan bergerak ke kanan sejauh 5 langkah, begitu juga
sebaliknya apabila ditekan tombol panah kiri. Kita membuat
script sebagai berikut, setelah dicoba ternyata terdapat
kesalahan.
Manakah script dibawah yang dapat berjalan dengan baik.
1. 2.
3. 4.
5. Apa yang dilakukan oleh script berikut:
124
1. Memeriksa apakah jawabannya YES atau NO
2. Memastikan program tidak berlanjut sebelum user
menjawab YES atau NO
3. Merupakan sebuah cara untuk memverifikasi data yang
dimasukkan oleh user
4. Semua jawaban benar
5. Semua jawaban salah
Evaluasi 2
1. Apa yang terjadi apabila kita membuat script seperti
di bawah
2. Kita akan membuat animasi berupa dialog antara dua
orang.
Script untuk orang pertama:
Script untuk orang kedua:
125
Apakah kedua script tersebut akan menghasilkan percakapan yang
benar?? Apabila terdapat kesalahan, bagaimana memperbaikinya??
3. Apakah hasil dari script di bawah?
Project
1. Dua permainan telah dikonstruksi dan dibahas bagaimana
pembuatan dan prosesnya. Sekarang buatlah sebuah permainan.
126
IMPLEMENTASI SCRATCH DALAM BERBAGAI APLIKASI
Piranti Lunak Scratch dapat digunakan untuk berbagai keperluan seperti:
• Pembuatan media pembelajaran
• Game
• Animasi
• Film
• Video
• Aplikasi Lainnya
Dibawah ini adalah contoh penggunaan aplikasi scratch untuk membuat Sistem
Pendukung Keputusan(Decision Support System):
Implementasi Metode SAW dalam Sistem Pendukung Keputusan Pemilihan Smartphone
Menggunakan Scratch (Abdilana, R., & Gunawan, I. I., 2022)
Implementasi Metode SAW dalam Sistem Pendukung Keputusan Pemilihan Laptop
Menggunakan Scratch (Huzaeni, F., & Gunawan, I. I, 2022)
Penerapan Metode Simple Additive Weighting (SAW) Dalam Sistem Pemilihan Kamera
Menggunakan Scratch (Purnomo, D. C., & Gunawan, I. , 2021).
Decision Support System for Determination of Scholarship Using Scratch Programming
Based on SAW Method. (Purnomo, D. C., & Gunawan, I. , 2022).
127
TOPIK TERKAIT
Untuk membaca topik-topik lainnya seputar dunia pemrograman, jaringan dan keamanan, silakan
merujuk ke penelitian saya lainnya (Abdilana & Gunawan, 2022; Berliana dkk., 2022;
Gunawan, 2014, 2019, 2020, 2021a, 2021b, 2021c, 2021d, 2021e, 2021f, 2021g; Gunawan
dkk., 2018; Gunawan & Yelmi, 2021; Huzaeni & Gunawan, 2022; Indrayana dkk., 2022;
Permatasari dkk., 2018; Pratama dkk., 2022; D. C. Purnomo & Gunawan, 2022; D. Purnomo &
Gunawan, 2021; Y dkk., 2022)
128
PUSTAKA
Abdilana, R., & Gunawan, I. I. (2022). Implementasi Metode SAW dalam Sistem Pendukung
Keputusan Pemilihan Smartphone Menggunakan Scratch. JIIFKOM (Jurnal Ilmiah Informatika
dan Komputer), 1(1), 35–40.
Berliana, C. D., Saputra, T. A., & Gunawan, I. (2022). Analisis Serangan dan Keamanan pada Denial
of Service (DOS): Sebuah Review Sistematik. JIIFKOM (Jurnal Ilmiah Informatika dan
Komputer), 1(2), 33–38.
Gunawan, I. (2014). I-POLINK: Indonesian Police Link Model Knowledge Management Investigasi
Forensika Digital. https://doi.org/10.13140/RG.2.2.28996.32647
Gunawan, I. (2019). PEMROGRAMAN BAHASA ASSEMBLY MIKROPROSESOR 8086 (1 ed.).
Guepedia.
Gunawan, I. (2020). Optimasi Model Artificial Neural Network untuk Klasifikasi Paket Jaringan.
SIMETRIS, 14(2), 1–5. https://doi.org/10.51901/simetris.v14i2.135
Gunawan, I. (2021a). Keamanan Data: Teori dan Implementasi (1 ed.). Jejak.
Gunawan, I. (2021b). Analisis Malware Botnet Proteus Pendekatan Static dan Dinamic. SIMETRIS,
15(1), 12–17. https://doi.org/10.51901/simetris.v15i01.172
Gunawan, I. (2021c). Analisis Keamanan Data Pada Website Dengan Wireshark. JES (Jurnal Elektro
Smart), 1(1), 16–19.
Gunawan, I. (2021d). Analisis Keamanan Jaringan Wifi Menggunakan Wireshark. JES (Jurnal
Elektro Smart), 1(1), 10–12.
Gunawan, I. (2021e). Analisis Keamanan Wifi Menggunakan Wireshark. JES (Jurnal Elektro Smart),
1(1), 7–9.
Gunawan, I. (2021f). Analisis Layer Aplikasi (Protokol HTTP) menggunakan Wireshark. JES (Jurnal
Elektro Smart), 1(1), 13–15.
Gunawan, I. (2021g). Analisis Keamanan Aplikasi Android Non Playstore Dengan Metode Digital
Forensik Pendekatan Statis Dan Dinamis. SIMETRIS, 15(2), 29–34.
https://doi.org/10.51901/simetris.v15i2.225
Gunawan, I., Afrina, & Sofrawida, C. (2018). SISTEM PENDUKUNG KEPUTUSAN PEMILIHAN
KARYAWAN TERBAIK PADA LAMOIST LAYERS BATAM. JR : Jurnal Responsive Teknik
Informatika, 2(02), 39–61.
Gunawan, I., & Yelmi, Y. (2021). Rancang Bangun Robot Pengawas Dokumen Berbasis Raspberry
Pi2 dengan Pemrograman Python. Jurnal Ilmu Komputer Dan Bisnis, 12(1), 144–149.
Huzaeni, F., & Gunawan, I. I. (2022). Implementasi Metode SAW dalam Sistem Pendukung
Keputusan Pemilihan Laptop Menggunakan Scratch. JIIFKOM (Jurnal Ilmiah Informatika dan
Komputer), 1(1), 30–34.
129
Indrayana, T., Warijan, W., Sutarmi, S., Purnomo, D., & Gunawan, I. (2022). Developing systems
application based on android as tool for determinant stunting factors in the COVID-19
pandemic era. International Journal of Health Sciences, 6(S1), 257–268.
https://doi.org/10.53730/ijhs.v6nS1.4763
Permatasari, R. D., Gunawan, I., & Syahputra, M. R. (2018). RANCANG BANGUN APLIKASI
PENANGANAN BAGASI BERBASIS MOBILE WEB PADA PT SRIWIJAYA AIR. Jurnal Teknik Ibnu
Sina (JT-IBSI), 3(1). https://doi.org/10.36352/jt-ibsi.v3i1.101
Pratama, T. I. M., Songida, M. D. F., & Gunawan, I. (2022). Analisis Serangan dan Keamanan pada
SQL Injection: Sebuah Review Sistematik. JIIFKOM (Jurnal Ilmiah Informatika dan Komputer),
1(2), 27–32.
Purnomo, D. C., & Gunawan, I. I. (2022). Penerapan Metode Simple Additive Weighting (SAW)
Dalam Sistem Pemilihan Kamera Menggunakan Scratch. JIIFKOM (Jurnal Ilmiah Informatika
dan Komputer), 1(1), 16–21.
Purnomo, D., & Gunawan, I. (2021). Decision Support System for Determination of Scholarship
Using Scratch Programming Based on SAW Method. International Journal of Business and
Information Technology, 2, 72–29. https://doi.org/10.47927/ijobit.v2i2
Y, A. K., Alfaren, G., & Gunawan, I. (2022). Analisis Serangan Penetration Testing: Sebuah Review
Sistematik. JIIFKOM (Jurnal Ilmiah Informatika dan Komputer), 1(2), 21–26.http://www-cs-
students.stanford.edu/~amitp/gameprog.html
https://www.interaction-design.org/literature/article/a-brief-history-of-games
https://code.tutsplus.com/tutorials/introduction-to-scratch--cms-23855
https://en.scratch-wiki.info/wiki/
130

Bahan Ajar Sistem Game

  • 1.
    No. Dokumen : FRM/POS/STD/STTR/A.3-3-1 No.Revisi : 00 Tanggal Terbit : 2 Agustus. 2020 Halaman : 1 dari 124 BAHAN AJAR MATA KULIAH 3 SKS GAME SISTEM
  • 2.
    PROGRAM STUDI S1TEKNIK ELEKTRO SEKOLAH TINGGI TEKNOLOGI RONGGOLAWE CEPU No. Dokumen : FRM/POS/STD/STTR/A.3-3-1 No. Revisi : 00 Tanggal Terbit : 2 Agustus. 2020 Halaman : 2 dari 124 VERIFIKASI BAHAN AJAR Pada hari ini Senin tanggal 2 bulan Agustus tahun 2020 Bahan Ajar Mata Kuliah Game Sistem Program Studi Teknik Elektro telah diverifikasi oleh Ketua Program Studi Teguh Yuwono, ST. MT Cepu, 2 Agustus 2020
  • 3.
    3 PRAKATA Pertama-tama kami mengucapkanterima kasih kepada Tuhan Yang Maha Esa atas terwujudnya modul ini. Tujuan dari dibuatnya modul ini agar mahasiswa terbantu dapat mempelajari dasar-dasar pemrograman dalam mata kuliah Game Sistem. Dalam mata kuliah ini, perangkat lunak Scratch dipilih karena perangkat lunak tersebut dapat menampilkan kegiatan dan hasil pemrograman secara visual dan menarik. Modul ini dikembangkan dengan menggunakan pendekatan eksplorasi, dengan harapan pembaca dapat mencoba, memodifikasi dan selanjutnya dapat berkreasi dengan menggunakan perangkat lunak ini. Modul ini dimulai dengan pengetahuan awal tentang algoritma dan pemrograman. Berikutnya pengenalan terhadap perangkat lunak Scratch, dilanjutkan dengan instalasi Scratch dan beberapa contoh sederahana dalam menggunakan Scratch. Modul ini diakhiri denganpemrograman Scratch berupa pembuatan permainan sederhana dengan menggunakan perangkat lunak tersebut. Modul ini memberikan pengenalan secara sederhana dan bertahap tentang Scratch dan diakhiri dengan contoh permainan sederhana yang menarik. Harapan penulis, semoga modul ini dapat digunakan sebagai referensi bagi siapapun yang ingin mengenal dasar-dasar pemrograman khususnya pemrograman dengan menggunakan Scratch. Cepu, 2 Agustus 2020 Penyusun
  • 4.
    4 TINJAUAN UMUM MATAKULIAH Deskripsi Mata Kuliah Mata kuliah ini diperuntukan bagi mahasiswa yang mengambil mata kuliah pemrograman komputer. Kuliah ini mempelajari tentang dasar-dasar pemrograman, diawali dengan pengertian pemrograman, pembuatan programa menggunakan flowchat dan pseudocode. Selanjutnya pengenalan salah satu perangkat lunak pemrograman, Scratch, diikuti dengan pemaparan dan penjelasan (serta contoh) pengembangan permainan menggunakan Scratch. Manfaat Mata Kuliah 1. Mahasiwa memiliki kemampuan tentang konsep dan teori algoritma dalam pembuatan game 2. Mahasiswa mampu menerapkan algoritma-algoritma game kedalam aplikasi scratch Capaian Pembelajaran Lulusan (CPL) A. Sikap (Ditetapkan pemerintah dalam permendikbud no 3 tahun 2020 tentang Standar Nasional Perguruan Tinggi. Ambil yang sesuai dengan mata kuliah.) 1. Bertakwa kepada Tuhan Yang Maha Esa dan mampu menunjukkan sikap religius; 2. Menjunjung tinggi nilai kemanusiaan dalam menjalankan tugas berdasarkan agama, moral, dan etika; 3. Berkontribusi dalam peningkatan mutu kehidupan bermasyarakat, berbangsa, bernegara, dan kemajuan peradaban berdasarkan Pancasila; 4. Berperan sebagai warga negara yang bangga dan cinta tanah air, memiliki nasionalisme serta rasa tanggung jawab pada negara dan bangsa; 5. Menghargai keanekaragaman budaya, pandangan, agama, dan kepercayaan, serta pendapat atau temuan orisinal orang lain; 6. Bekerjasama dan memiliki kepekaan sosial serta kepedulian terhadap masyarakat dan lingkungan; 7. Taat hukum dan disiplin dalam kehidupan bermasyarakat dan bernegara; 8. Menginternalisasi nilai, norma, dan etika akademik;
  • 5.
    5 9. Menunjukkan sikapbertanggung jawab atas pekerjaan di bidang keahliannya secara mandiri; 10. Menginternalisasi semangat kemandirian, kejuangan, dan kewirausahaan. Pengetahuan Umum Keterampilan Umum (Ditetapkan pemerintah dalam permendikbud no 3 tahun 2020 tentang Standar Nasional Perguruan Tinggi. Ambil yang sesuai dengan mata kuliah.) 1. Mampu menerapkan pemikiran logis, kritis, sistematis, dan inovatif dalam konteks pengembangan atau implementasi ilmu pengetahuan dan teknologi yang memperhatikan dan menerapkan nilai humaniora yang sesuai dengan bidang keahliannya; 2. Mampu menunjukkan kinerja mandiri, bermutu, dan terukur; 3. Mampu mengkaji implikasi pengembangan atauimplementasi ilmu pengetahuan teknologi yang memperhatikan dan menerapkan nilai humaniora sesuai dengan keahliannya berdasarkan kaidah, tata cara dan etika ilmiah dalam rangka menghasilkan solusi, gagasan, desain atau kritik seni; 4. Menyusun deskripsi saintifik hasil kajiannya dalam bentuk skripsi atau laporan tugas akhir, dan mengunggahnya dalam lamanperguruan tinggi; menyusun deskripsi saintifik hasil kajian tersebut di atas dalam bentuk tesis atau laporan tugas akhir, dan mengunggahnya dalam laman perguruan tinggi; 5. Mampu mengambil keputusan secara tepat dalam konteks penyelesaian masalah di bidang keahliannya, berdasarkan hasil analisis informasi dan data; 6. Mampu memelihara dan mengembangkan jaringan kerja dengan pembimbing, kolega, sejawat baik di dalam maupun di luar lembaganya; 7. Mampu bertanggung jawab atas pencapaian hasil kerja kelompok dan melakukan supervisi dan evaluasi terhadap penyelesaian pekerjaan yang ditugaskan kepada pekerja yang berada di bawah tanggung jawabnya; 8. Mampu melakukan proses evaluasi diri terhadap kelompok kerja yang berada di bawah tanggung jawabnya, dan mampu mengelola pembelajaran secara mandiri;
  • 6.
    6 9. Mampu mendokumentasikan,menyimpan, mengamankan, dan menemukan kembali data untuk menjamin kesahihan dan mencegah plagiasi. Keterampilan Khusus Capaian Pembelajaran Mata Kuliah (CPMK) Mahasiswa mampu mengembangkan kecakapan untuk memahami konsep dan prinsip pemrograman (menggunakan flowchart atau pseudocode) serta penerapannya dalam pembuatan program menggunakan Scratch.
  • 7.
    7 DAFTAR ISI GAME SISTEM...................................................................................................................................1 VERIFIKASI BAHAN AJAR....................................................................................................................2 PRAKATA ...........................................................................................................................................3 TINJAUAN UMUM MATA KULIAH......................................................................................................4 Deskripsi Mata Kuliah....................................................................................................................4 Manfaat Mata Kuliah.....................................................................................................................4 Capaian Pembelajaran Lulusan (CPL) ............................................................................................4 Pengetahuan Umum .....................................................................................................................5 Keterampilan Umum .....................................................................................................................5 Keterampilan Khusus.....................................................................................................................6 Capaian Pembelajaran Mata Kuliah (CPMK)..................................................................................6 DAFTAR ISI.........................................................................................................................................7 Capaian Matakuliah ........................................................................................................................12 Materi Pembelajaran ......................................................................................................................12 1. Pendahuluan dan Sejarah Game .................................................................................................13 Masa Lalu yang Temaram dan Jauh.............................................................................................13 Menggulirkan Dadu 3.000 Tahun Lalu.........................................................................................13 Ubin dan Domino ........................................................................................................................15 Permainan Papan Bahkan Lebih Lama ........................................................................................15 Masih bermain!...........................................................................................................................15 Deal Me In!..................................................................................................................................16 Permainan Meja..........................................................................................................................17 Anda berada di Perusahaan yang Baik ........................................................................................17 Bagaimana dengan Electronic Games? .......................................................................................17 Take Away ...................................................................................................................................18
  • 8.
    8 2. Jenis danAlgoritma pada Game..................................................................................................18 Jalur Terpendek#.........................................................................................................................18 SEBUAH* .................................................................................................................................19 Kode dan Demo.......................................................................................................................20 Kecerdasan buatan#....................................................................................................................20 Desain permainan# .....................................................................................................................22 Game Berbasis Ubin# ..................................................................................................................24 Struktur data ...........................................................................................................................24 Menampilkan Ubin..................................................................................................................24 Algoritma.................................................................................................................................25 Membangun Dunia..................................................................................................................25 Grid Heksagonal# ........................................................................................................................26 Pemrograman berorientasi objek#..............................................................................................27 Game Petualangan#....................................................................................................................27 Bahasa Skrip# ..............................................................................................................................28 Ekonomi# ....................................................................................................................................30 3. Pengenalan Scratch .....................................................................................................................31 Memulai dengan Scratch.............................................................................................................31 Proyek .........................................................................................................................................32 Aset: Latar Belakang, Sprite, Kostum, dan Suara.........................................................................34 Skrip ............................................................................................................................................35 Mendapatkan bantuan................................................................................................................36 Ringkasan ....................................................................................................................................37 4. Perulangan dan percabangan pada Scratch ................................................................................37 Percabangan dengan if dan if else...............................................................................................37 Perulangan ..................................................................................................................................38 Repeat.....................................................................................................................................38
  • 9.
    9 Forever....................................................................................................................................38 Wait Until ................................................................................................................................38 RepeatUntil ............................................................................................................................39 5. Operator pada Scratch ...............................................................................................................39 Operator......................................................................................................................................39 6. Motion pada Scratch ..............................................................................................................39 Contoh Penggunaan....................................................................................................................41 Belok Kanan () Derajat (blok).......................................................................................................41 Contoh Penggunaan....................................................................................................................41 Belok Kiri () Derajat (blok) ...........................................................................................................42 Goto X .........................................................................................................................................43 Contoh Penggunaan....................................................................................................................43 Glide () Secs to () (block)..............................................................................................................44 Glide () Secs to X: () Y: () (block) ..................................................................................................45 Point in Direction () (blok) .......................................................................................................46 Point Towards () (block) ..............................................................................................................47 Change X by () (block)..................................................................................................................48 Setel X ke () (blokir) .....................................................................................................................49 Contoh Penggunaan....................................................................................................................50 Change Y by () (block)..................................................................................................................50 Contoh Penggunaan....................................................................................................................50 Move () Steps (block)...................................................................................................................52 Contoh Penggunaan....................................................................................................................52 If on Edge, Bounce (block)...........................................................................................................52 If on Edge, Bounce (block)...........................................................................................................53 Set Rotation Style () (block).........................................................................................................53 X Position (block)/ Y Position.......................................................................................................54
  • 10.
    10 7. Variable danEvents pada Scratch ...............................................................................................57 Events..........................................................................................................................................57 Variabel .......................................................................................................................................58 Daftar ......................................................................................................................................58 8. Aritmatika dan Logika pada Scratch ...........................................................................................59 ...............................................60 9. Sensing pada Scratch..................................................................................................................60 Studi Kasus Membuat Berbagai Game ............................................................................................61 Karakteristik suatu Algoritma..................................................................................................61 Metode untuk Mengembangkan suatu Algoritma ..................................................................62 Flowchart ....................................................................................................................................62 Simbol Flowchart.....................................................................................................................63 Aturan Umum Membuat Flowchart ........................................................................................63 Tips membuat flowchart .........................................................................................................64 Contoh Algoritma dan Flowchart ............................................................................................65 Pseudocode.................................................................................................................................67
  • 11.
    11 Struktur Kontrol atauStruktur Logis............................................................................................68 Struktur barisan.......................................................................................................................68 Struktur Keputusan atau Struktur Pilihan................................................................................69 Membuat pilihan.....................................................................................................................70 Campuran operator logika ......................................................................................................72 Case statement .......................................................................................................................74 Struktur Iterasi atau Pengulangan...........................................................................................75 Latihan ........................................................................................................................................80 SCRATCH .........................................................................................................................................82 Pengenalan Scratch.....................................................................................................................82 Scratch Online .........................................................................................................................83 Fitur Scratch 2.0 ......................................................................................................................85 Scratch 2.0 Offline Editor ........................................................................................................87 Instalasi Scratch...........................................................................................................................88 Memulai Scratch .........................................................................................................................90 Studi Kasus Pembuatan Game ......................................................................................................112 Permainan Sederhana...............................................................................................................112 Pong ......................................................................................................................................112 Evaluasi 1...................................................................................................................................121 Evaluasi 2...................................................................................................................................124 Project.......................................................................................................................................125 IMPLEMENTASI SCRATCH DALAM BERBAGAI APLIKASI.............................................................126 DAFTAR PUSTAKA................................................................................Error! Bookmark not defined.
  • 12.
    12 Capaian Matakuliah 1.Memahami konsepsejarah, Jenis dan Algoritma, Perulangan dan Percabangan , Operator dan Control, Variable dan Events pada Game. 2.Mengerti dan memahami penerapan Perulangan dan Percabangan , Operator dan Control, Variable dan Events menggunakan Scratch 3.Mampu menginplementasikan pembuatan berbagai jenis game menggunakan Scratch Materi Pembelajaran 1. Pendahuluan dan Sejarah Game 2. Jenis dan Algoritma pada Game 3. Pengenalan Scratch 4. Perulangan pada Scratch 5. Percabangan pada Scratch 6. Operator dan Control pada Scratch 7. Variable dan Events pada Scratch 8. Input dan Output pada Scratch 9. Aritmatika pada Scratch 10. Block, broadcast dan message pada Scratch 11. Sensing pada Scratch 12. Studi Kasus Pembuatan Game 1
  • 13.
    13 1. Pendahuluan danSejarah Game Sejarah manusia dan permainan saling terkait erat. Bukti yang tak terbantahkan bergema selama berabad-abad bahwa kesenangan dan permainan bukanlah pengejaran yang sembrono — sebaliknya, mereka datang secara alami kepada kita sebagai bagian penting dari kehidupan. Saat Anda memahami evolusi game, Anda dapat mulai membuat pilihan cerdas tentang elemen game apa yang mungkin ingin Anda masukkan ke dalamgamifikasi desain. Masa Lalu yang Temaram dan Jauh Apakah kamu pernah ke kebun binatang Jika ya, kemungkinan besar Anda pernah duduk dan mengamati monyet dan kera untuk sementara waktu. Tidak perlu terlalu lama untuk melihat mereka bermain. Mereka akan mengejar satu sama lain, melempar barang, melompati satu sama lain, dan semacam itu. Dengan asumsi, sepertinya mungkin, bahwa manusia hanyalah monyet yang berevolusi lebih baik, kemungkinan besar kita telah bermain game untuk waktu yang sangat lama. Kami mungkin sedang bermain game sebelum kami belajar berbicara atau bahkan berdiri dengan dua kaki. Itu berarti kami tidak tahu seperti apa game pertama yang kami mainkan. Namun, kami memiliki ide bagus tentang garis waktu pengembangan game modern. Menggulirkan Dadu 3.000 Tahun Lalu
  • 14.
    14 Dadu bukanlah penemuanmodern. Faktanya, mereka mungkin salah satu alat permainan tertua yang diketahui manusia. Selama penggalian di Iran Tenggara, para arkeolog menemukan satu set dadu berusia 3.000 tahun! Kami tidak tahu persis game apa yang akan dimainkan oleh orang- orang Persia awal itu, tetapi popularitas dadu telah bertahan selama berabad-abad. Penulis / Pemegang Hak Cipta: WolfgangRieger. Persyaratan dan lisensi hak cipta: Domain Publik. Permainan dadu sudah ada sejak lama sekali, seperti yang bisa Anda lihat dari lukisan gua ini. Di Inggris abad ke- 14 , orang-orang memainkan permainan yang disebut Hazard (disebutkan dalam karya terkenal The Canterbury Tales oleh Geoffrey Chaucer), dan Hazard tidak disukai sampai abad ke -19. Itu memiliki seperangkat aturan yang sangat kompleks dan sejak itu telah digantikan oleh permainan dadu dengan aturan yang lebih sederhana. “Ambil ide sederhana dan anggap serius.” —Charlie Munger, investor Amerika, pengusaha, pengacara dan dermawan Baik diukir dengan tulang atau dicetak dengan plastik, kesederhanaan dari sebuah dadu — sebuah kubus dengan titik-titik dan tidak lebih — sebagai penentu yang efektif, jika kebetulan, adalah awet muda. Anda mungkin tidak tahu, tapi permainan yang paling populer di kasino akan tetap- baik ke dalam 21 st abad-permainan dadu. Craps adalah satu-satunya permainan di rumah judi di mana kemungkinannya menguntungkan bagi penjudi. Meskipun demikian, ini adalah permainan yang paling menguntungkan untuk kasino; orang tampaknya tidak tahu kapan harus berhenti bermain. Dan permainan yang mereka lakukan — di tempat lain, juga, menggunakan dadu dalam berbagai aktivitas menyenangkan yang telah meluas ke lingkungan yang tidak terlalu dewasa, seperti rumah dan sekolah, selama bertahun-tahun. Yahtzee berputar di sekitar dadu, dan bukan tanpa alasan Dungeons & Dragons memasukkan dadu, bahkan jika banyak dari dadu itu memiliki
  • 15.
    15 4, 10, 12,20 atau bahkan lebih wajah. Ubin dan Domino Ada referensi untuk permainan ubin di Cina yang berusia lebih dari 2.900 tahun. Domino muncul 1.000 tahun kemudian selama Dinasti Song (juga di Cina). Namun, domino Barat mungkin baru dimulai pada abad ke - 18 , dan Mahjong (permainan ubin paling populer di dunia - berasal dari Cina) baru hadir pada abad ke -19. Permainan Papan Bahkan Lebih Lama Jika Anda menikmati permainan Monopoli atau Scrabble, akan terlihat bahwa Anda berteman baik. Permainan papan paling awal yang diketahui berusia 5.000 tahun dan dimainkan oleh orang Mesir. Kami tidak tahu aturan permainan ini, tapi ada papan "Senet" yang berasal dari sekitar 3500 SM! Orang Cina menemukan permainan papan pertama mereka pada 200 SM, dan, di Eropa Barat, mereka memainkan Tafl (permainan yang sangat mirip dengan catur) dari 400 SM. Penulis / Pemegang Hak Cipta: Bubba73. Syarat dan lisensi hak cipta: CC BY-SA 3.0 Catur sering dianggap sebagai permainan papan “pola dasar” dan itu sendiri sudah sangat tua, tetapi ada permainan papan jauh sebelum catur ditemukan. Masih bermain! Jika Anda pernah memainkan Go, Chess, Backgammon atau Nine Men's Morris, maka Anda telah memainkan game dengan sejarah lebih dari seribu tahun! Go berasal dari 200 SM di Korea, Backgammon dari Iran sekitar 600 M (lengkap dengan dadu), Catur dari India sekitar waktu yang
  • 16.
    16 sama dan SembilanPria Morris mungkin berasal dari Inggris Abad Pertengahan, tetapi banyak yang mengira itu berasal dari Kekaisaran Romawi! Ular Tangga, salah satu permainan anak-anak paling populer di dunia mungkin dimulai di India pada abad ke - 16 . Dan, kejutan, kejutan, kekuatan dadu kemungkinan untuk pemain dalam game itu juga. Permainan papan komersial pertama tiba pada tahun 1800 dan diproduksi oleh George Fox di Inggris. Itu disebut Mansion of Happiness dan pada dasarnya adalah "permainan balapan" yang mirip dengan Ludo. Perusahaan permainan papan tertua yang masih hidup adalah Milton Bradley (yang permainan terkenalnya meliputi; Downfall, Hungry Hippos, dan Connect 4), yang dibentuk pada tahun 1860! Penulis / Pemegang Hak Cipta: ItsLassieTime. Persyaratan dan lisensi hak cipta: Domain Publik. The Mansion of Happiness adalah permainan papan pertama yang diproduksi secara komersial (yaitu, dalam basis industri). Deal Me In! Permainan kartu adalah penemuan yang lebih baru, dan penggunaan pertama dari tumpukan kartu mungkin di Tiongkok Kuno. Mereka akan dimainkan selama Dinasti Tang ( abad ke - 6 M - abad ke - 9 M). Kartu mencapai Eropa pada abad ke - 14 , dan dek awal akan sangat mirip dengan kartu Tarot, yang versi abad pertengahan modern dan klasiknya dapat kita temukan secara online atau di hampir semua toko buku bagian Pikiran, Tubuh dan Jiwa. Dek empat jenis (hati, sekop, pentungan, dan berlian) yang paling kami kenal ditemukan di Prancis sekitar tahun 1480. Permainan kartu tertua yang masih kami mainkan mungkin adalah Cribbage,
  • 17.
    17 yang berasal dariabad ke - 17 . Jembatan tidak datang sampai awal abad ke -19. Pada 1990-an, kartu dikunjungi kembali dan permainan seperti 'Magic! The Gathering 'diperkenalkan dan menjadi sangat populer. Permainan kartu juga akan meluas ke truf — favorit klasik di sekolah-sekolah Inggris, yang menampilkan item dari mobil balap hingga pesawat ruang angkasa, penembak Barat dan monster horor, di mana pemain membandingkan statistik kartu teratas mereka, dan menang atau kalah sesuai itu. Permainan Meja Carom, mungkin adalah permainan meja tertua (sangat mirip dengan tiddlywinks atau shuffleboard), tetapi tidak ada yang tahu persis kapan atau di mana itu muncul. Biliar, biliar, dan snooker adalah penemuan yang relatif baru, dan roulette baru tiba di abad ke -19. Penulis / Pemegang Hak Cipta: LezFraniak. Syarat dan lisensi hak cipta: CC BY-SA 3.0 Permainan yang digambarkan di atas, mungkin (sekilas) terlihat seperti biliar, tetapi sebenarnya ini adalah meja biliar modern — seperti yang Anda lihat dari kurangnya kantong di atas meja. Anda berada di Perusahaan yang Baik Seperti yang Anda lihat, game memiliki sejarah panjang yang kaya, dan kapan pun Anda memutuskan untuk memainkan game, Anda berada di perusahaan yang baik. Manusia telah bermain game selama berabad-abad. Mereka adalah bagian dari pengalaman manusia. Bagaimana dengan Electronic Games? Anda mungkin terkejut saat mengetahui bahwa permainan elektronik pertama kali ditemukan di Amerika Serikat sebelum komputer! Paten diajukan kembali pada tahun 1947 untuk "perangkat hiburan tabung sinar katoda". Pada tahun 1950-an, juga di Amerika Serikat, (sangat sedikit) orang
  • 18.
    18 mulai bermain gamekomputer pada sistem mainframe - ini akan berada di luar jangkauan sebagian besar orang karena perangkat kerasnya akan mahal secara astronomis. Konsol game pertama adalah Magnavox Odyssey - dirilis pada tahun 1972. Game arcade seperti Space Invaders, Pacman, dll. Mulai hidup pada tahun 1978 dan menjadi sangat populer hingga awal 1980-an. Selama waktu itu, cukup banyak konsol yang dirilis, tetapi crash di industri game Amerika membunuh sebagian besar perusahaan yang terlibat pada tahun 1983. Ketika Jepang mengambil kendali dan mulai mengembangkan video game, game konsol menjadi populer secara universal, menandakan memperlambat kejatuhan game arcade. “Semua orang pernah memainkan video game akhir-akhir ini, dan video game itu menyenangkan.” —PewDiePie, komedian Swedia dan produser web Game memiliki sejarah yang panjang, seperti yang Anda lihat, dan akar game elektronik membentang kembali ke game manusia yang paling awal. Bukan karena nenek moyang kita perlu memberi tahu kita bahwa permainan berjalan sesuai dengan wilayah hidup; game tertanam dalam DNA kami. Take Away Sejarah manusia dan permainan saling terkait erat. Selama ribuan tahun, orang memiliki dorongan bawaan untuk bermain, dan itu tidak akan berubah dalam waktu dekat. Apa yang mereka butuhkan, mereka berinovasi, meninggalkan kita warisan perangkat yang kaya selama berabad-abad, mulai dari keajaiban dadu yang dasar namun kuat, hingga strategi abadi yang terlibat dalam catur, dan hingga perpustakaan permainan papan zaman akhir yang berjalan keseluruhan tingkat kecanggihan mereka. Selama Anda memahami evolusi game, Anda dapat mulai membuat pilihan cerdas tentang elemen game apa yang mungkin ingin Anda sertakan dalam desain gamification Anda. 2. Jenis dan Algoritma pada Game Apa yang ada di halaman ini? Saya tertarik untuk menghasilkan kerumitan dari bagian-bagian sederhana. Halaman ini berisi bookmark yang saya kumpulkan saat mengerjakan game sejak 1990; Saya tidak menulis sebagian besar konten yang ditautkan dari sini. Akibatnya, kumpulan tautan di sini mencerminkan jenis hal yang perlu saya ketahui: hanya beberapa topik tertentu (tidak semuanya terkait dengan pemrograman game), ide umum, bukan informasi khusus platform (grafik, suara, kompiler), dan ide dan desain alih-alih kode sumber (saya merasa lebih mudah untuk beralih dari ide ke kode daripada dari kode ke ide). Situs lain, seperti Gamedev Tuts + , Gamedev.net , dan Gamasutra , membahas lebih banyak topik daripada situs saya. Jalur Terpendek# Menentukan cara bergerak di peta adalah masalah yang menarik. Ada banyak pendekatan berbeda, mulai dari yang sederhana ( berjalan maju hingga Anda menemukan sesuatu ) hingga
  • 19.
    19 yang kompleks (algoritme pencarian jalur dengan heuristik ). Ini adalah halaman tentang pencarian jalan secara umum, dengan beberapa bias terhadap A *: • Amit's Introduction to A * , Breadth-First Search, Dijkstra's Algorithm, dan Greedy Best- First Search - dengan diagram interaktif dan kode sampel • Tinjauan tentang Perencanaan Gerak mencakup algoritma pergerakan dan pencarian jalan • Catatan Amit tentang Pencarian Jalan • Gambaran umum masalah utama yang muncul saat memilih pathfinder • Memilih representasi grafik untuk pencarian jalan • Pencarian jalur game dan sumber daya AI • Makalah teknis tentang navigasi dan jalur Halaman ini membahas tentang teknik khusus untuk pencarian jalan dan pergerakan objek : • Applet menunjukkan penghindaran rintangan (lihat juga perilaku kemudi lainnya ) • Perilaku Pengarah • Pathfinding for Tower Defense - dengan diagram interaktif dan kode sampel • Cacat desain dengan perilaku kemudi • Perilaku Penghindaran Tabrakan Pejalan Kaki • Analisis Terrain digunakan di Age of Empires • Gerakan perintis dalam game RTS termasuk grup dan formasi. • Gerakan menggunakan Bidang Potensial • Unit Koordinasi Gerakan bagian 1 dan bagian 2 • Pathfinding: dasar-dasarnya mencakup berbagai jenis grafik (grid, waypoint, navmeshes) yang digunakan untuk algoritma pencarian grafik seperti A * • Fringe Search [PDF] - mungkin lebih cepat dari A * untuk game (unduh kodenya di sini ) • Cooperative Pathfinding [PDF] - berguna ketika Anda memiliki banyak unit yang bergerak di ruang sempit, dan membutuhkan unit untuk saling memperhatikan • Pengantar Algoritma Pathfinding • Lebih banyak algoritma Pathfinding (pohon rentang minimum, algoritma Dijkstra, Algoritma Johnson, Bellman-Ford, Floyd-Warshall,…) • Pengenalan medan dan penghindaran rintangan • Pergerakan di luar angkasa , dengan percepatan pesawat luar angkasa. Lihat juga bagian 2 dan bagian 3 . • Menggunakan Daerah untuk Jalur Terpendek (diskusi) • Jalur Terpendek vs. Algoritma Pemecahan Labirin SEBUAH* A * adalah varian dari Dijkstra's Algorithm dan Breadth First Search. Ini adalah pilihan yang cukup populer untuk pencarian jalan. Ini dapat menangani biaya medan yang berbeda-beda dengan baik, dan tampaknya lebih cepat daripada kebanyakan algoritma pencarian grafik. Namun, ini hanya satu bagian dari solusi pencarian jalan. Desain peta dan representasi peta ada sebelum A *. Kisi mudah digunakan tetapi tidak selalu merupakan pendekatan terbaik. Formasi, mengikuti jalur, pergerakan, pemulihan jalur, dan animasi muncul setelah A *. Banyak game yang tidak
  • 20.
    20 membutuhkan A *sama sekali: game ini berhubungan dengan langkah-langkah terpisah, bukan dengan gerakan yang berkelanjutan; itu bekerja pada grafikdan tidak memanfaatkan sepenuhnya koherensi spasial (yaitu, lokasi peta sangat mirip dengan tetangganya) atau koherensi temporal (misalnya, jika kita sudah menemukan jalur beberapa detik yang lalu, kemungkinan jika kita mencoba lagi jalur yang kita temukan akan menjadi serupa); dan jika dunia game berubah dengan cepat, tidak ada gunanya merencanakan jauh-jauh hari. A * adalah alat yang bagus tetapi bukan satu-satunya yang bisa dilihat. • A * Demystified • Pendahuluan A * • Menggunakan Jaring Navigasi untuk pencarian jalan • Multi-resolusi A * • Daftar vs. Tumpukan Biner untuk A * • Memilih heuristik untuk A * (dan catatan kinerja lainnya) • Analisis heuristik untuk A * [PDF] • Mempercepat A * dengan membatalkan penerimaan • Pencarian Jalur [150+ pesan diskusi grup berita] [290k] • Referensi A * Kode dan Demo • A * untuk Pemula (dengan kode Dasar) • A Java Applet yang mendemonstrasikan A * (pastikan untuk menggunakan metode Fudge untuk hasil terbaik) • Demo pencarian jalan flash , termasuk kode sumber. • Kode Python untuk A * dan algoritma pencarian lainnya - perhatikan bahwa astar_searchfungsinya hanya empat baris! Tautan ke kode A * saya adalah ke versi kedua [1998], dengan perbaikan bug, pengoptimalan, dan parameterisasi untuk berbagai fungsi heuristik dan biaya. Versi pertama kode saya tersedia di halaman Steve Woodcock , dan mungkin lebih mudah dibaca dan dipahami. Kecerdasan buatan# Banyak kali saya bermain game dan berharap lawan komputer ditulis lebih baik. Terkadang pemain komputer diberikan aturan yang berbeda; di lain waktu ia memiliki aturan yang sama tetapi mendapat lebih banyak uang (atau sumber daya lain) daripada Anda. Hasilnya adalah bahwa permainan tersebut tampaknya tidak seimbang : terlalu jelas bahwa komputer tidak bermain dengan baik, dan bahwa permainan tersebut adalah otak vs. otot, bukan otak vs. otak. Pada saat yang sama saya tidak menginginkan AI yang terlalu bagus; jika ya, maka itu akan selalu memukuli saya dan saya akan frustrasi! Teknik apa yang berguna dalam game AI? • Panduan arsitektur AI : ad-hoc, mesin negara, pohon perilaku, fungsi utilitas, perencana, jaringan saraf
  • 21.
    21 • Panduan PemulaTotal untuk Game AI : ad-hoc, pohon keputusan, skrip, peristiwa, mesin negara, pohon perilaku, fungsi utilitas, kemudi, pencarian jalan, perencanaan, pembelajaran, representasi pengetahuan • Finite State Machines dapat digunakan untuk mengekspresikan bagaimana agen AI berubah dari satu perilaku ke perilaku lainnya. Ada negara bagian dan transisi antar negara bagian. Untuk perilaku yang lebih kompleks, lihat Arsitektur Subsumption , Hierarchical Finite State Machines , State Charts , dan Behavior Trees . • Pohon Perilaku: memutus siklus penyalahgunaan menjelaskan kapan menggunakan dan tidak menggunakan pohon perilaku • AI Berbasis Utilitas berguna ketika beberapa faktor perlu dipertimbangkan untuk membuat keputusan; lihat juga artikel ini . • Analisis Peta menganalisis dan memberi anotasi pada peta permainan untuk memberikan informasi untuk pengambilan keputusan selanjutnya. Mereka menggunakan beberapa nama, termasuk Heat Maps, Influence Maps , Terrain Reasoning, dan Using Potential Fields . • Pathfinding dan Movement digunakan untuk menggerakkan agen di dunia game. Algoritma pathfinding digunakan untuk perencanaan tingkat tinggi; algoritma gerakan reaktif digunakan antara titik lewat yang ditandai oleh algoritma pencarian jalan. • Sistem Perencanaan mencari kemungkinan masa depan untuk memilih yang terbaik. Biasanya futures yang mungkin direpresentasikan sebagai grafik, dengan node sebagai futures dan edge sebagai tindakan. • Pembelajaran Penguatan adalah jenis Pembelajaran Mesin yang membuat keputusan di dunia game dan kemudian mengamati hasilnya untuk mempelajari keputusan mana yang mengarah pada hasil yang lebih baik. Ini digunakan alih-alih merencanakan ketika Anda belum tahu hasil apa yang akan dihasilkan dari suatu tindakan. Untuk sumber yang lebih lengkap, lihat buku Sutton dan Barto ini. • Model Grafis Probabilistik menggabungkan grafik node-and-edge dengan statistik. Jaringan Bayesian, bidang acak Markov, model Markov tersembunyi, dan filter Kalman dapat digunakan dengan PGM. • Neural Networks adalah aproksimator fungsi. Diketahui satu set x dan f (x) di mana fungsi f tidak diketahui, Anda dapat membangun jaringan neural yang mendekati f . Ada juga cara lain untuk memperkirakan fungsi : penyesuaian kurva, pendekatan chebyshev, deret fourier. • Algoritma Genetika adalah pengoptimal parameter. Diketahui fungsi f () , Anda ingin mencari x sehingga f (x) dimaksimalkan (atau diminimalkan). Ada juga cara lain untuk mengoptimalkan parameter: simulasi anil, pendakian bukit, kecerdasan swarm. Biasanya semua pendekatan ini memilih satu atau lebih x , mengevaluasi f (x) , dan kemudian memperbaiki pilihan x . Dalam memilih teknik untuk AI di game Anda, buatlah sesederhana mungkin; baca ini . Jika Anda tahu jawabannya, masukkan jawabannya ke dalam program. Jika Anda tahu cara menghitung jawabannya, masukkan algoritme untuk menghitungnya ke dalam program. Hanya jika Anda tidak tahu jawabannya, dan bahkan tidak tahu cara menghitung jawabannya, sebaiknya Anda menggunakan teknik rumit yang dapat mempelajari cara menemukan jawabannya. Teknik-teknik
  • 22.
    22 kompleks ini bisajadi mahal, dalam hal waktu pemrograman, performa game, kesulitan debugging, dan kurangnya kontrol. Saya juga mengumpulkan tautan ke artikel AI game lainnya; ini tidak diatur: • Panorama Kecerdasan Buatan dan Komputasi dalam Game [PDF] - termasuk area penelitian • Ringkasan yang berbeda tentang Game AI [PDF] • AI Wisdom [seri buku] • Game AI Pro [seri buku] - artikel gratis di bagian bawah halaman • Pengenalan AI dalam Game • Panduan Praktis Geoff Howland untuk AI dan bagian 2 • Formasi-Harapan Besar - AI seharusnya tidak hanya bereaksi terhadap dunia, tetapi harus membentuk ekspektasi tentang dunia, dan bereaksi terhadap penyimpangan dari itu. • Influence Maps bagian 1 dan bagian 2 • Membuat AI lebih menantang , khususnya, dengan membuatnya kurang dapat diprediksi • Penalaran Medan untuk Game Aksi 3D [PDF] • AI dari FEAR [PDF] - AI perencana Jeff Orkin • AI yang digerakkan oleh kebutuhan • AI prosedural di Killzone [PDF] Mencakup garis pandang, jarak tembak, pencarian jalur, dan evaluasi taktis saat run-time • Strategi dan Taktik oleh DreamWeaver [62k] • Pohon perilaku • AI dalam Game Berbasis Kerajaan • AI hierarki • Monster AI di Unangband • Penanganan granat AI [PDF] • Rahasia AI Musuh di Uncharted 2 AI komputer paling sering digunakan untuk mengimplementasikan lawan untuk pemain. Namun ini juga dapat digunakan untuk mengimplementasikan dunia (misalnya, semua bisnis di Railroad Tycoon), asisten pemain (misalnya, manajemen kota otomatis dalam Peradaban), atau pemain komputer yang belum tentu menjadi lawan (misalnya, karakter non-pemain dalam game bermain peran). • AI Di Luar Game Komputer • Di Balik Terpal The Sims [slide] (lihat juga dokumen desain ini ) • STALKER menggunakan medan untuk menetapkan tujuan ke NPC terdekat • AI dalam Hitam & Putih Desain permainan# Banyak hal yang sulit tentang menulis game adalah mendapatkan desain yang tepat. Apa yang membuat game menyenangkan?Desain game adalah seni, bukan sains. Ini bukan hanya aturan permainan tetapi cara Anda berinteraksi dengan permainan.
  • 23.
    23 • Cara MembuatPrototipe Game di Bawah 7 Hari - beberapa saran bagus untuk mengumpulkan sesuatu dengan cepat untuk melihat apakah itu akan menjadi game yang bagus • Sistem Sebab dan Akibat yang Ketat • Terlalu Banyak Klik!Rancang UI di sekitar hal-hal yang ingin dilakukan pemain, bukan di sekitar objek dalam game. • Kimia Desain Game • Saldo Game • Mengoceh tentang Desain RPG mencakup topik-topik seperti keseimbangan, makanan, ekonomi, waktu, kematian, senjata, alur cerita, dan sihir. • Apakah lebih baik memiliki mekanik game inti tunggal? • Pengakuan pemain game yang mengerikan - mengapa Anda tidak seharusnya menghukum pemain game karena memainkan game Anda • Sumber daya, mata uang, dan meteran • Desain Ekonomi Online: Bagian 1 (Mata Uang) , Bagian 2 (Pedagang NPC) , Bagian 3 (Item) , dan Bagian 4 (Keterampilan) • Inti dari Game Komputer • Desain Evolusioner - mengapa Anda harus menyiapkan dan menjalankan sesuatu sebelum mendesain segala sesuatu tentang game Anda • Ukuran kota abad pertengahan : berapa banyak petani yang dibutuhkan untuk memberi makan kota dan tentara • Mitos Tetap tentang Desain Game • Pemodelan perkotaan - model yang digunakan di SimCity • Sims, BattleBots, Cellular Automata, God and Go - wawancara dengan Will Wright • Merancang game simulasi - itu adalah game, belum tentu model yang realistis • Ekonomi Game dan desain self-balancing • 36 plot untuk game • One Billion Buttons : bagaimana mengajarkan konsep-konsep kompleks secara bertahap • Umpan Balik Positif dan Negatif • Kepercayaan pada game (baca juga komentarnya) • Game Progresif vs. Pengalaman • Realisme dalam game : seberapa banyak? • Contoh mengapa Anda tidak menginginkan terlalu banyak realisme dalam sebuah game • Loops and Arcs - struktur untuk desain game • Masa Depan Desain Game (2005) • Game Adiktif • Merancang kontrol untuk sebuah game , termasuk cara menggabungkan kontrol untuk membangun kontrol yang lebih kompleks • Catatan desain untuk permainan saya, SimBlob • Catatan desain untuk game saya, Solar Realms Elite • Memahami keacakan dalam hal penguasaan • Dokumen desain untuk Ultima 7 bagian 2 • Esai SimCity
  • 24.
    24 • Mengapa Andaharus membagikan desain game Anda • Fokus Gameplay • UI untuk game : menampilkan informasi vs. pencelupan • Bad Twinkie , database kesalahan desain game • Nomor acak untuk gulungan kerusakan dan statistik RPG lainnya • Pilar Fundamental dari Sistem Tempur • Preferensi Pemain: Fictionalists menginginkan aturan permainan untuk mendukung cerita dan dunia; Sistemis ingin cerita dan dunia mendukung aturan permainan. Game Berbasis Ubin# Saya suka game berbasis kotak ubin karena ubin dapat menghasilkan banyak kerumitan dari bagian sederhana . Ada beberapa topik yang muncul dengan game berbasis ubin. The struktur data biasanya varian dari 2 array dimensi. The display mengubah array data genteng menjadi top- down (2D), isometrik (2.5D) pandangan, atau penuh 3D dilihat. Ada juga tampilan samping tapi saya tidak membahasnya di sini. The algoritma pada grid memungkinkan Anda untuk menerapkan elemen gameplay mulai dari garis pandang untuk mengevaluasi di mana musuh cenderung. Ubin juga bekerja dengan baik dengan algoritme pembangunan dunia prosedural , seperti yang ada di Diablo, Peradaban, dan Benteng Kurcaci. Struktur data Struktur ubin dasar tidak bergantung pada apakah tampilan Anda 2D, 2.5D, atau 3D. Artikel ini membahas tentang cara menyimpan data Anda. • FAQ Game Berbasis Ubin • Amit's Thoughts on Grids mencakup kotak, segi enam, dan segitiga • Struktur data untuk game berbasis ubin • Format file untuk menangani daftar objek yang ditautkan • Menempatkan beberapa objek di setiap ubin [diskusi grup berita] • Streaming Data : bagaimana memilih ubin untuk dimuat, jika seluruh peta Anda tidak muat ke dalam memori • Teknik permainan berbasis ubin Menampilkan Ubin Kisi petak 2D dapat ditampilkan dengan berbagai cara. Yang paling mudah adalah tampilan atas- bawah atau samping, tetapi belakangan ini lebih umum untuk melihat tampilan isometrik atau 3D. Perhatikan bahwa sebagian besar tampilan "isometrik" dalam game bukanlah isometrik sebenarnya, tetapi dimetrik . • Panduan proyeksi dalam game • Menciptakan dunia Isometrik • Proyeksi Isometrik, Dimetrik, Aksonometri • Mesin Isometrik - apakah itu untuk Anda? • Menggambar blok isometrik dalam urutan yang benar
  • 25.
    25 • Tinjauan PengembanganMesin Isometrik • Matematika isometrik - mengubah bolak-balik dengan cara yang berprinsip • Menerapkan sistem ubin isometrik • Koordinat isometrik menggunakan vektor basis • Menyortir objek dalam tampilan isometrik • Menyortir objek menggunakan sortir topologi • Mengimbangi ubin latar belakang , menggambar ubin dari sudut, bukan dari tengah untuk meningkatkan transisi medan • Kotak berbaris membahas detail tentang penerapan gambar ubin dari sudut • Membuat jahitan ubin untuk tekstur. • Representasi peta untuk platformer 2d Algoritma • Algoritma Garis Pandang • Menghitung Garis Pandang untuk Area Luas • Tutorial membuat Roguelike , termasuk representasi peta, pembuatan dungeon, field of view, fog of war • Line tracing pada grid - menentukan semua ubin yang disentuh oleh sebuah garis • Tabrakan, visibilitas, dan representasi kisi dalam game berbasis ubin , termasuk menggunakan informasi tepi • Visibilitas 2d pada kisi, menggunakan poligon untuk komputasi , dan bagian 2 , yang meningkatkan algoritme • Algoritma visibilitas untuk peta poligon 2d top-down yang juga dapat digunakan dengan ubin • Shadowcasting sudut yang tepat dalam grid 2d • Menentukan jangkauan pergerakan unit • Menggunakan ubin untuk aliran [video dan kertas] Idenya adalah untuk meletakkan informasi gerakan / aliran ke dalam ubin, bukan di objek; itu mengingatkan saya pada pembalikan peran dalam objek The Sims • Grid okupansi , menggunakan peta pengaruh untuk memungkinkan NPC melacak kemungkinan lokasi pemain • Baca juga tentang algoritma pathfinding , yang sering digunakan pada grid. Membangun Dunia Meskipun pembuatan peta prosedural dapat diterapkan pada dunia non-grid, ini paling sering digunakan dengan grid. Dilihat pada satu titik waktu, peta game yang dihasilkan jarang sebagus dunia buatan tangan. Namun, mereka memiliki tiga keuntungan: (1) biaya lebih rendah per dunia jika ada banyak dunia yang akan dibuat, (2) lebih banyak nilai replay karena waktu berikutnya melalui dunia berbeda, dan (3) potensi dunia berkembang sementara permainan berlangsung. • Primer tentang bilangan acak yang dapat diulang • Generator Peta Pulau Amit dan demo (Flash) • Pembuatan Konten Prosedural : menghasilkan medan, kota, bangunan
  • 26.
    26 • Generasi penjarabawah tanah di Unangband • Menghasilkan dunia game dengan struktur lock and key sehingga ruangan tertentu membutuhkan objek dari ruangan lain • Algoritma untuk membangun sungai • Menambahkan sungai ke medan yang dibuat secara acak • Algoritme Rogue asli untuk menghasilkan ruang bawah tanah • 11 Maze Generating Algorithms dengan demo dan kode • Menggunakan fungsi kebisingan untuk menghasilkan gua - gua seperti yang ada di Terraria dan Minecraft • Kamar berbentuk tidak beraturan , algoritma sederhana • Algoritma Tunneler untuk menggali ruang bawah tanah di DungeonMaker • Panduan untuk teknik Terrain Generation secara acak • Panduan wiki untuk pembuatan konten prosedural • Mensimulasikan Dunia Virtual Besar Grid Heksagonal# Banyak game perang menggunakan kisi heksagonal, bukan kisi persegi. Kotak berbagi keunggulan dengan empat tetangga tetapi juga menyentuh empat tetangga lainnya hanya pada satu titik. Hal ini sering mempersulit gerakan di sepanjang kisi karena gerakan diagonal sulit untuk diberi bobot yang sesuai dengan nilai gerakan bilangan bulat. Anda memiliki empat arah atau delapan arah dengan kotak, tetapi dengan segi enam, Anda memiliki kompromi — enam arah. Hexagon tidak menyentuh tetangga mana pun pada satu titik; mereka memiliki rasio keliling-ke-luas yang kecil; dan mereka terlihat rapi. Sayangnya, di dunia komputer berpiksel persegi kami, segi enam lebih sulit digunakan, jadi saya telah mengumpulkan beberapa artikel yang dapat membantu Anda mengubah algoritme kisi persegi umum menjadi algoritme kisi heksadesimal. • Panduan Amit untuk grid heksagonal - dengan diagram interaktif • Amit's Thoughts on Grids mencakup kotak, segi enam, dan segitiga • Tinjauan koordinat grid hex • Koordinat heksagonal dijelaskan , termasuk konversi koordinat hex / piksel • Sistem Penomoran; Jarak; Sudut • Koordinat Kubus Isometrik • Perbandingan sistem koordinat Hexagonal , termasuk koordinat piksel ke hex, dan jarak hex • Fungsi Koordinat dan Jarak Heksagonal • Hexagonal Grid Math , termasuk posisi mouse ke koordinat hex, dan kode sumber di Java dan Actionscript • Lokasi Piksel ke Koordinat Hex • Mengonversi lokasi mouse ke koordinat hex • Line of Sight dan Distance , ditambah applet Java yang mendemonstrasikan bidang pandang (termasuk sumber Java) • Mengidentifikasi arah dalam kotak hex [PDF] • Grid digunakan dalam Cellular Automata
  • 27.
    27 Pemrograman berorientasi objek# Sayatelah menemukan pemrograman berorientasi objek berguna untuk antarmuka pengguna, sistem operasi, dan permainan. Pada saat yang sama, umumnya diyakini bahwa pemrograman berorientasi objek adalah cara terbaik untuk memprogram (terutama di tahun 1990-an, ketika saya memulai halaman ini), tetapi ada banyak situasi di mana pendekatan lain bekerja jauh lebih baik. Karena sebagian besar pembaca saya akrab dengan pemrograman berorientasi objek, tautan yang saya kumpulkan di sini kebanyakan tentang alternatif dari pendekatan biasa. Tidak ada pendekatan terbaik. Pelajari banyak. • Berorientasi data, bukan berorientasi objek , dan bagian 2 • Mengapa tata letak data penting untuk kinerja • Memahami Sistem Komponen-Entitas • Membangun sistem entitas berorientasi data , seri • Sistem entitas alih-alih Objek , terutama untuk MMO (lihat juga wiki-nya ) (lihat juga perbedaan antara ECS Martin dan EC Bilas ) • Apa itu kerangka entitas? - langkah demi langkah, cara beralih dari OOP tradisional ke entitas • Komponen untuk entitas game • Bagaimana merepresentasikan data hierarki dengan cara yang berorientasi pada data • Multiple Inheritance dan RPGs (1997) Game Petualangan# Game petualangan sering kali memiliki teka-teki dan struktur cerita yang bagus. Ketika saya memulai halaman ini pada tahun 1990-an, saya sangat tertarik pada MUD dan fiksi interaktif. TADS adalah alat untuk digunakan, atau mungkin Inform . Sejak itu, ada lebih banyak alat, seperti Curveship , Hugo , Inklewriter , Twine , ChoiceScript , Squiffy , Ren'Py , Quest , ADRIFT , dan Ink Saya tidak pernah mengerjakan proyek fiksi interaktif, jadi saya tidak punya satu set tautan yang bagus. Lihat Wiki Fiksi Interaktif untuk lebih lanjut. • Pola desain Fiksi Interaktif • Struktur teka-teki di Ocarina of Time (Zelda) • Teknik Percakapan NPC • Grafik Alur Naratif [PDF] berdasarkan Petri Nets, untuk merepresentasikan elemen cerita • Daftar Besar Plot • Hukum MUD • Non-linearitas dalam game • Game Petualangan Berorientasi Objek • Untaian Teks vs. MUD Grafis [postingan grup berita] • Teks vs. MUD Grafis (tampilan Raph Koster) • Modeling Opinion Flow in Humans : gunakan algoritma Boids untuk memodelkan opini manusia dalam kelompok sosial • Prosa dalam Game
  • 28.
    28 • Kata-kata kasar, generator teks prosedural menggunakan tata bahasa yang menangani prosa bahasa Inggris, angka, bentuk jamak, kapitalisasi, tanda baca, rima, dll. Bahasa Skrip# Saya biasanya merekomendasikan untuk meletakkan aturan umum ("temukan jalur dari sini ke sana") dalam kode sumber dan aturan khusus ("jika sensor 9 terpicu di koridor 3, buat penjaga 18 menemukan jalur ke sensor 9") di file data. Namun beberapa hal termasuk di antaranya dan sulit untuk diungkapkan hanya sebagai data. Di situlah bahasa scripting masuk. Bahasa skrip memberi Anda cara untuk menulis banyak kode non-kecepatan-kritis dengan sedikit usaha. Anda dapat merancang bahasa untuk menangani permainan Anda secara khusus, sehingga jumlah pekerjaan yang harus Anda lakukan lebih sedikit daripada untuk bahasa tujuan umum. Selain itu, Anda dapat menulis compiler untuk mengoptimalkan berbagai hal (seperti ukuran alih- alih kecepatan), mengizinkan lebih banyak fitur (seperti penambalan dinamis pada waktu proses), dan bahkan kustomisasi pengguna (untuk pengguna yang antusias!). • Kehidupan Rahasia Skrip Game • Pendahuluan untuk menulis interpreter : hanya dalam 90 baris kode, ia mengimplementasikan variabel, eksekusi, fungsi tingkat tinggi, rekursi, percabangan, daftar, pohon, dan panggilan prosedur. (Tidak spesifik untuk game tapi pengantar yang bagus) • Crafting Interpreters , semua yang perlu Anda ketahui untuk menerapkan bahasa Anda sendiri • Pemrograman Berbasis Aturan dan perbandingan dengan pemrograman Berorientasi Objek untuk pembuatan skrip game • Properties Pattern , berguna untuk diketahui sebelum Anda mendesain bahasa Anda sendiri • Pola dan implementasi Bytecode Interpreter • Pembuatan skrip game dengan Stackless Python • Membangun mesin scripting bagian 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 • NPC Scripting • Diskusi tentang bahasa apa yang akan digunakan, bagaimana menerapkan [diskusi grup berita] • Bahasa skrip di MUD [diskusi grup berita] • Strategi implementasi untuk bahasa skrip [diskusi grup berita] • Menulis game yang dapat dimodifikasi • Bahasa skrip yang digunakan dalam Fiksi Interaktif • Menggunakan Stackless Python dan microthreads untuk game Sebanyak saya suka bahasa scripting, rekomendasi saya adalah memasukkan sebanyak mungkin ke dalam file data biasa (tanpa kode) yang diproses oleh game Anda. Jika Anda benar-benar membutuhkan bahasa tujuan umum , gunakan Lua . Hanya buat bahasa skrip Anda sendiri jika itu adalah bahasa khusus permainan kecil . Misalnya, skrip khusus game untuk sebuah drama mungkin terlihat seperti ini:
  • 29.
    29 Amit [kepada Steve]:Halo, teman! Steve [mengangguk ke Bryan]: Selamat datang di CGDC. [Keluar kiri.] Perhatikan bahwa tingkatnya sangat tinggi: tidak menjelaskan secara tepat bagaimana Amit berbicara atau bagaimana Steve mengangguk atau bahkan waktunya. Agar ini berhasil, Anda perlu memiliki beberapa asumsi tentang bagaimana orang-orang berperilaku, dan itu membuat bahasa khusus untuk sistem yang Anda atur. Dalam bahasa khusus ini, penggunaan tanda kurung untuk tindakan dan tanda titik dua untuk ucapan. Dalam tanda kurung bahasa lain mungkin menandai parameter opsional dan tanda titik dua bagian. Semakin umum tujuan bahasa Anda, semakin sedikit asumsi yang dapat Anda buat, sehingga menjadi lebih bertele-tele. Misalnya, percakapannya akan terlihat seperti ini: Amit.turns_towards (Steve); Amit.walks_within (3); Amit.says_to (Steve, "Halo, teman!"); Amit.waits (1); Steve.turns_towards (Bryan); Steve.walks_within (5); Steve.nods_to (Bryan); Steve. Menunggu (1); Steve.says_to (Bryan, "Selamat Datang di CGDC."); Amit.waits (3); Amit.face_direction (DIR_LEFT); Amit.exits (); Itu sebuah program , bukan skrip . Lihat perbedaannya? Skrip tingkat tinggi, dan menentukan apa yang ingin Anda lakukan, sedangkan program tingkat rendah, dan menentukan dengan tepat bagaimana melakukannya. Tidak jauh lebih sulit untuk menafsirkan sintaks pertama daripada yang kedua. Anda sudah memiliki bahasa pemrograman (C, C ++, Pascal, Basic, dll.). Anda tidak membutuhkan yang lain! (Kecuali jika tujuan Anda hanyalah untuk memungkinkan fleksibilitas waktu proses, yang dapat dilakukan dengan pustaka yang dimuat secara dinamis, atau dengan menggunakan bahasa yang ada seperti Lua.) Cobalah untuk berpikir secara berbeda. Jika Anda akan melakukan semua upaya untuk membuat bahasa skrip, jangan membuatnya terlihat seperti C. Pikirkan tentang menggunakan struktur berbasis peristiwa. Misalnya, memiliki perintah seperti "saat X terjadi, lakukan Y". Pikirkan tentang membuat banyak hal terjadi sekaligus. Amit tidak harus berhenti hanya karena Steve mengatakan sesuatu. Pikirkan berbagai gaya pemrograman, seperti berbasis aturan, fungsional, imperatif, logika, dan berorientasi objek. Pikirkan tentang aturan logika alternatif, seperti logika fuzzy (kebenaran tidak pasti) atau logika linier (satu kebenaran bisa berubah menjadi yang lain, membuat yang pertama salah). Manfaatkan bahasa dengan memanfaatkan struktur game Anda, dan Anda mungkin akan lebih mudah membangun bagian dunia game Anda.Jika tidak, Anda membayar harga implementasi dan integrasi yang tinggi tanpa mendapatkan manfaat dari bahasa kedua.
  • 30.
    30 Ekonomi# Ekonomi adalah studitentang pilihan manusia dalam mengelola sumber daya (uang, waktu, kebahagiaan, bahan mentah, barang, dan sebagainya). Dalam banyak permainan strategi, ekonomi merupakan aspek penting dari desain. Menyeimbangkan sumber daya dunia Anda bisa menjadi bagian permainan yang menyenangkan. Ekonomi juga penting dalam dinamika permainan multi-pemain: Anda ingin memberi penghargaan kepada orang-orang karena menghasilkan uang, namun Anda tidak ingin mereka memiliki begitu banyak kekuatan sehingga pemain baru tidak dapat bersenang-senang. Satu hal yang ingin saya jelajahi adalah bagaimana lokasi memengaruhi ekonomi. Dalam ekonomi sekolah menengah, bisnis bersaing berdasarkan harga. Bisnis mana pun yang dijual dengan harga lebih rendah akan menang. Tetapi jika biaya transportasi menjadi faktor, maka kedua bisnis dapat hidup berdampingan, dan pemain harus membuat keputusan yang menarik tentang di mana harus menempatkan fasilitas baru. untuk menyeimbangkan semua variabel (ketersediaan tenaga kerja, biaya transportasi bahan baku, biaya transportasi produk, tarif pajak, undang-undang zonasi, dll.). • Apakah itu permainan atau dunia? • Ekonomi di dunia virtual • Agen Ekonomi AI • Demografi Abad Pertengahan Menjadi Mudah • Daftar Harga Abad Pertengahan • Sistem transportasi di Widelands • Model ekonomi Pirates of The Burning Sea : tenaga kerja, harga, pasar, pemeliharaan, pajak, dan peristiwa dunia Sulit untuk membuat aturan ekonomi di dunia virtual online ketika biaya yang mendasarinya sangat berbeda. Di dunia fisik, "objek" membutuhkan sumber daya untuk dibuat, tetapi biasanya tidak menggunakan sumber daya untuk disimpan (jika Anda tidak menggunakannya), dan Anda biasanya tidak mendapatkan sumber daya itu kembali saat membuangnya. Oleh karena itu, ekonomi dunia nyata kita didasarkan pada pembelian barang. Di dunia maya, “objek” mengambil sedikit memori dan jika Anda menghancurkan objek, Anda mendapatkan memori kembali. Pada saat yang sama, keberadaan objek virtual menghabiskan waktu CPU, yang tidak dapat dipulihkan. Oleh karena itu, ekonomi dunia maya mungkin didasarkan pada persewaansesuatu. Jika ekonomi dunia Anda mencerminkan biaya yang mendasarinya, sebuah cincin berlian dapat “berharga” sebanyak seember pasir. Meskipun hal ini mencerminkan biaya nyata dalam menjalankan server Anda, dan oleh karena itu akan membuat pemain enggan membebani server Anda, ini mungkin tidak masuk akal untuk game Anda. Selain ekonomi objek, Anda harus mempertimbangkan ekonomi kehidupan di dunia. Dalam dunia fisik, keberadaan seseorang memiliki biaya; di dunia maya, keberadaannya murah. Karena seorang pemain mungkin tidak "masuk" sepanjang waktu, sulit untuk membuat aturan yang adil untuk biaya keberadaan tanpa menghukum pemain yang banyak bermain (pemirsa inti Anda) atau pemain yang tidak dapat masuk banyak ( yang kemungkinan akan pergi jika mendapat sanksi karena tidak berada di sana sepanjang waktu). Jika Anda membutuhkan seseorang untuk bekerja untuk mencari nafkah, pemain biasa mungkin tidak dapat bersaing, dan mungkin pergi.
  • 31.
    31 3. Pengenalan Scratch Selainsebagai alat, Scratch adalah komunitas: pengguna dapat membagikan proyek mereka, membuat salinan satu sama lain 'dan' mencampurnya ', yang mirip dengan kode bercabang di GitHub dan terdiri dari menyalin proyek orang lain dan menambahkan proyek Anda sendiri perbaikan atau perubahan padanya. Alih-alih mengharapkan pelajar untuk menulis kode mereka dari awal, Scratch memberi mereka satu set blok: baris kode yang mereka seret ke tempatnya untuk membuat kode mereka. Dalam seri tutorial ini, saya akan memberi Anda pengantar mendetail tentang Scratch dan cara menggunakannya. Bagian pertama ini akan memberikan gambaran umum tentang cara kerja Scratch serta komponen dan konsep utamanya. Saya akan membahas: • mulai • proyek • aset: latar belakang, sprite, kostum dan suara • skrip • dimana mendapatkan bantuan Pertama, berikut cara memulai Scratch. Memulai dengan Scratch Scratch pertama kali dikembangkan pada tahun 2003 di Massachusetts Institute of Technology. Ini dimulai sebagai perangkat lunak yang dapat diunduh tetapi sekarang menjadi alat online. Ini sepenuhnya gratis dan didanai oleh hibah dari berbagai organisasi, termasuk National Science Foundation, Microsoft, Google, dan LEGO Foundation. Untuk memulai, cukup kunjungi situs web Scratch dan buat akun dengan alamat email Anda. Di pojok kanan atas layar, klik Join Scratch . Anda akan disajikan dengan layar bergabung: Buat nama pengguna dan kata sandi untuk Anda sendiri, lalu klik tombol Berikutnya untuk berpindah ke layar berikutnya: Di sini Anda diminta untuk memberikan beberapa informan tentang diri Anda, yang digunakan Scratch untuk memantau tipe orang yang menggunakan platform. Klik Berikutnya lagi untuk melanjutkan:
  • 32.
    32 Berikan alamat emailAnda dan Anda akan menerima konfirmasi email. Anda harus mengeklik tautan di email Anda jika Anda ingin membagikan proyek Anda (jika Anda tidak ingin berbagi, Anda dapat melanjutkan tanpa melakukan ini, tetapi Anda akan mendapatkan pengingat yang mengganggu di bagian atas layar Anda setiap kali Anda melakukannya. Gabung). Setelah Anda memberikan alamat email Anda dan mengklik Next , Anda akan melihat layar selamat datang: Sekarang ketika Anda mengklik OK Let's Go! atau masuk ke akun Anda, Anda akan melihat halaman beranda dengan detail tentang apa yang terjadi di komunitas Scratch, termasuk aktivitas orang yang Anda ikuti. Seperti yang Anda lihat di tangkapan layar, saya mengikuti beberapa orang yang sibuk! Dari layar ini Anda dapat menjelajahi proyek orang lain, mengetahui apa yang telah dilakukan teman Anda, dan mengakses proyek Anda sendiri. Proyek Setiap kali Anda membuat sesuatu di Scratch, Anda akan mengerjakan sebuah proyek . Anda dapat membuat proyek sebanyak yang Anda suka, membagikannya, dan menyalinnya. Setiap proyek berdiri sendiri dan tidak dapat ditautkan ke proyek lain. Anda dapat mengakses proyek Anda dengan dua cara dari layar beranda: dengan mengeklik folder di kanan atas bilah admin dengan ikon 'S' atau dengan mengeklik nama pengguna Anda di kanan atas, lalu mengeklik Barang Saya di menu tarik-turun menu yang muncul. Ini akan membawa Anda ke layar Milik Saya : Layar ini menunjukkan semua proyek yang Anda buat serta studio tempat Anda menjadi anggota. Anda dapat menggunakan studio untuk membagikan pekerjaan Anda dengan sekelompok teman atau pengguna Scratch lainnya — Saya menggunakan studio untuk berbagi pekerjaan antara anggota Code Club yang saya jalankan. Untuk membuat proyek baru, cukup klik tombol + Proyek baru di atas proyek Anda. Ini membawa Anda ke layar proyek:
  • 33.
    33 Jika Anda beradadi beranda, Anda dapat membuat proyek baru tanpa membuka layar Barang Saya. Klik Buat item di menu admin dan ini akan membuka proyek baru untuk Anda. Setiap proyek baru terlihat seperti ini, kecuali Anda sedang mengerjakan salinan proyek yang sudah ada yang sedang Anda remix. Jendela proyek mencakup beberapa area utama: • The panggung , dengan sprite kucing di tempat yang dapat Anda bekerja dengan atau menghapus. • Di bawah panggung, backdrop dan sprite yang Anda gunakan dalam proyek Anda. • Di sebelah kiri panggung, panel skrip . Ini berisi blok kode (disebut skrip) yang dapat Anda gunakan dalam proyek Anda. Panel ini memiliki dua tab lagi: Kostum dan Suara . Saya akan menjelaskan cara kerjanya di bagian selanjutnya dari tutorial ini. • The kanvas , yang mana Anda menempatkan script Anda dan membuat atau mengedit kostum dan suara. Anda dapat menempatkan banyak skrip di kanvas. Setelah Anda mengerjakan proyek Anda, Anda harus menyimpannya. Beri nama yang mudah diingat dengan mengetikkan satu nama ke dalam bidang di atas panggung (Saya lupa berapa kali saya memberi tahu siswa bahwa proyek mereka membutuhkan nama yang lebih baik daripada Tanpa Judul!). Di sebelah kiri ikon folder Barang Saya di bilah admin akan ada beberapa teks yang akan terbaca Tersimpan atau Simpan sekarang . Jika terbaca Tersimpan , maka proyek Anda
  • 34.
    34 telah disimpan sehinggaAnda tidak perlu melakukan apa pun. Jika bertuliskan Simpan sekarang , klik teks tersebut dan Scratch akan membuat penyimpanan terbaru untuk Anda. Iklan Aset: Latar Belakang, Sprite, Kostum, dan Suara Setiap proyek yang Anda buat membutuhkan beberapa aset. Ada empat jenis aset: backdrop , sprite , kostum dan suara . Kostum dan suara ditetapkan untuk spites, jadi Anda mulai dengan membuat sprite, lalu Anda dapat memberikan sejumlah kostum dan suara. Gunakan skrip untuk mengganti kostum sprite saat terjadi sesuatu, atau untuk mengaktifkan suara saat terjadi sesuatu. Berikut adalah contoh proyek bernama Rock Band , yang saya buat untuk Code Club saya. Ini mencakup beberapa sprite, yang masing-masing memiliki beberapa kostum dan suara. Klik bendera hijau untuk memulai proyek dan kemudian klik pada penyanyi dan instrumen untuk mengubah kostum dan suaranya. Anda dapat membuat salinannya sendiri di Scratch dan mengerjakannya jika Anda mau. Ini disebut remixing dan berarti Anda dapat mengambil proyek yang ada dan menambahkan sentuhan Anda sendiri padanya. Untuk melakukan ini, buka halaman proyek dan klik tombol See Inside . Ini akan membawa Anda ke layar proyek yang akan Anda kenali dari bagian sebelumnya dari tutorial ini: Jika Anda masuk ke Scratch, Anda akan melihat tombol Remix di sebelah kiri tombol Lihat halaman proyek di kanan atas layar. Itu tidak terlihat pada tangkapan layar di atas karena proyek ini milik saya jadi saya tidak bisa me-remixnya. Ini akan membuat proyek baru di akun Anda yang dapat Anda lihat dan edit. Tangkapan layar menunjukkan bahwa proyek ini memiliki dua latar belakang: Anda dapat melihat yang aktif di bawah panggung utama, di sebelah kiri. Anda dapat menggunakan skrip untuk beralih tampilan latar saat proyek Anda berlangsung atau pengguna Anda bergerak melalui level game, misalnya. Proyek ini juga memiliki empat sprite, yang dapat Anda lihat di bawah panggung. Itu juga punya satu gambar latar belakang. Anda dapat membuat sprite dan latar belakang sendiri dengan mengunggah gambar, atau Anda dapat mengimpornya dari perpustakaan yang disediakan dengan Scratch, yang merupakan cara yang jauh lebih mudah untuk memulai. Anda akan belajar bagaimana melakukan ini nanti di seri tutorial ini. Masing-masing sprite dalam proyek saya memiliki dua kostum: pada gambar di bawah ini Anda dapat melihat kostum untuk sprite Drum1:
  • 35.
    35 Saya mengimpor keduakostum ini dari Scratch library dan saya menambahkan skrip yang mengubah kostum saat pengguna mengklik drum. Jika Anda ingin membuat spites Anda sendiri, Anda melakukannya dengan membuat kostum di sini, baik dengan menggunakan alat gambar yang disediakan atau dengan mengimpor file png. Mari kita lihat panel Suara . Pada gambar di bawah ini Anda dapat melihat bahwa sprite Singer1 memiliki dua suara yang terkait dengannya: Sekali lagi, saya telah menggunakan skrip dalam proyek saya untuk menjalankan suara ini ketika pengguna mengklik sprite penyanyi. Anda dapat merekam suara Anda sendiri dari dalam Scratch jika Anda mau, atau mengimpornya dari perpustakaan yang tersedia. Skrip Skrip adalah hal yang membuat aset Anda berfungsi di Scratch. Mereka terdiri dari blok kode yang Anda seret ke posisinya di kanvas, dan termasuk dalam sepuluh kategori: • Motion : skrip yang memposisikan sprite Anda dan membuatnya bergerak. • Looks : skrip yang mengubah tampilan sprite Anda, termasuk mengubah kostum dan menyembunyikannya. • Suara : skrip untuk memutar suara dan mengubah volume. • Pen : skrip yang memungkinkan pengguna menulis atau menggambar pada proyek. • Data : skrip yang memungkinkan Anda mengatur dan bekerja dengan variabel, misalnya untuk menyimpan skor atau waktu permainan. • Events : ini membuat sesuatu terjadi, dan termasuk tanda start diklik, pengguna mengklik sprite atau siaran yang dapat Anda buat dan sprite Anda bereaksi. • Kontrol : ini termasuk loop, pernyataan bersyarat, dan jeda. • Penginderaan : skrip ini merasakan saat sesuatu terjadi seperti mouse digunakan atau sprite saling bersentuhan. Mereka juga termasuk interaksi seperti mengajukan pertanyaan kepada pengguna. • Operator : gunakan ini untuk membandingkan nilai, mungkin berdasarkan respons pengguna Anda terhadap pertanyaan atau variabel yang Anda tentukan. Misalnya, Anda mungkin menghitung berapa kali pengguna mengklik hal yang salah dan menggunakan operator untuk memeriksa saat ini mencapai nomor tertentu sehingga Anda dapat menampilkan pesan. • Lebih Banyak Blok : ini adalah tempat Anda menambahkan blok kustom Anda sendiri.
  • 36.
    36 Skrip memberi Andavariasi dan fleksibilitas dalam jumlah besar dan dapat digabungkan dengan cara yang ampuh untuk membuat proyek tingkat lanjut. Saat kami mengerjakan rangkaian tutorial ini, saya akan menunjukkan kepada Anda cara menggunakan berbagai jenis blok untuk membuat animasi, interaksi, dan game. Setiap skrip yang Anda buat akan terkait dengan sprite atau latar belakang, yang berarti tidak bergantung pada sprite Anda. Misalnya, dalam proyek Rock Band saya, sprite Drum1 memiliki skrip yang mengontrol apa yang terjadi saat sprite diklik: Sprite lain masing-masing memiliki skrip yang serupa, dan latar belakang juga memiliki skripnya sendiri: Ini terkait dengan pengaturan volume, yang tidak bergantung pada sprite individu. Seperti yang Anda lihat dari contoh-contoh ini, setiap sprite dapat memiliki banyak skrip yang diterapkan padanya. Faktanya, ketika Anda mulai bekerja dengan proyek yang lebih maju, melacak semua skrip ini dan apa yang dilakukannya bisa sangat membingungkan, terutama jika Anda perlu men-debug proyek Anda. Inilah kanvas untuk proyek saya yang lain, Flappy Parrot , yang memiliki lebih banyak (dan lebih besar) skrip: Untuk membantu melacak berbagai hal, Anda dapat menambahkan komentar ke skrip Anda. Untuk melakukan ini, klik kanan pada skrip, dan di menu yang muncul, klik tambahkan komentar , dan ketik komentar Anda. Di bawah ini Anda dapat melihat bahwa saya telah menambahkan komentar ke salah satu skrip saya: Anda dapat membuat komentar sedetail yang Anda inginkan, dan mereka akan membantu Anda jika Anda kembali ke proyek Anda setelah beberapa saat dan tidak dapat mengingat apa yang dilakukan semua hal. Mendapatkan bantuan Salah satu hal hebat tentang Scratch adalah ada banyak konten untuk membantu Anda memahami platform dan memulai. Berikut beberapa sumber daya yang tersedia: • Bantuan khusus konteks: klik kanan pada blok atau aset apa pun dan klik bantuan di menu pintasan untuk melihat informasi tentang apa yang blok atau aset itu lakukan. • Tip: klik ikon tanda tanya di paling kanan layar proyek (di sebelah kanan kanvas) untuk melihat tip.
  • 37.
    37 • Tutorial: kliktanda tanya tip untuk mengakses tutorial untuk membantu Anda memulai. Anda dapat membuat proyek baru dan melihatnya dari layar proyek Anda sehingga Anda dapat mengikuti tutorial saat Anda bekerja. • Cara: opsi lain di bagian tips adalah Cara , yang memberi Anda informasi tentang cara membuat jenis proyek tertentu. • Layar bantuan: klik Bantuan di bilah admin untuk mengakses berbagai layar bantuan, termasuk proyek awal, kartu Scratch, tutorial video, dan panduan untuk menggunakan Scratch. • ScratchEd : komunitas online untuk pengajar yang menggunakan Scratch dengan siswa. • The Scratch Wiki termasuk informasi mendalam tentang komponen Scratch. Ringkasan Scratch adalah alat gratis yang fantastis yang membantu anak-anak (dan juga orang dewasa!) Belajar cara menulis kode tanpa harus mengetik kode. Ini berarti mereka dapat mempelajari bagaimana kode disusun dan apa yang dilakukannya tanpa rasa frustrasi karena harus mempelajari sintaks dan membantu mereka memulai dengan cepat. Ini juga sangat menyenangkan untuk digunakan dan memiliki komunitas pengguna yang besar yang proyeknya dapat Anda lihat dan salin, yang akan membantu Anda belajar dengan cara yang praktis. 4. Perulangan dan percabangan pada Scratch Percabangan dengan if dan if else Percabangan menggunakan if dapat digunakan pada kondisi jika diinginkan satu syarat percabangan saja tanpa memiliki syarat lain, misalnya: • Jika pengguna menginputkan angka 3 maka terjadi aksi A, jika tidak 3 maka tidak terjadi aksi apapun. Percabangan menggunakan I felse dapat digunakan pada kondisi jika diinginkan lebih dari satu syarat percabangan, misalnya: • Jika pengguna menginputkan angka 3 maka terjadi aksi A, jika tidak 3 maka aksi B
  • 38.
    38 Perulangan Repeat Repeat digunakan padakeadaan jika diinginkan suatu perulangan dengan jumlah yang telah ditetapkan, misalnya: • Lakukan perulangan 3 kali untuk belok kiri Forever Forever digunakan pada keadaan jika diinginkan suatu perulangan tanpa batas. • Lakukan jalan lurus pada object ular selama pengguna tidak memencet tombol apapun Wait Until Wait until digunakan untuk melakukan perulangan dengan persyaratan suatu kondisi tertentu, misalnya: • Jika user memencet tombol X lakukan aksi A
  • 39.
    39 Repeat Until Repeat untildigunakan untuk melakukan perulangan dengan persyaratan berada di awal, misalnya: • Lakukan gerakan lurus memutar sampai pengguna memencet tombol berhenti 5. Operator pada Scratch Operator Operator AND digunakan apabila diiginkan kondisi dengan persyaratan 2 hal harus bernilai TRUE, misalnya • Jika pengguna memencet tombol panah kanan dan tombol panah atas, maka gerakkan object burung ke depan Operator OR digunakan apabila diiginkan kondisi dengan persyaratan 2 hal harus bernilai TRUE salah satunya, misalnya • Jika pengguna memencet tombol panah kanan atau tombol panah atas, maka gerakkan object burung ke depan 6. Motion pada Scratch
  • 40.
  • 41.
    41 adalah blok tumpukandan blok Gerak . Balok itu menggerakkan sprite ke depan sejumlah langkah yang ditentukan ke arah yang dihadapinya. Satu langkah sama dengan panjang satu piksel. The Nilai default adalah 10 dan dapat diganti dengan nomor apapun. Blok sebenarnya menggunakan Trigonometri untuk bergerak ke arah yang benar, karena begitulah cara komputer menanganinya. Blok ini dikenal sebagai "maju ()" di Scratch 0.1 sebelum diubah namanya menjadi "move () steps" di Scratch 0.3 . Contoh Penggunaan Alih-alih menggunakan skrip rumit dengan blok Change X by () dan blok Change Y by () , blok ini dapat dengan mudah digunakan untuk memajukan sprite. Beberapa penggunaan umum untuk blok Move () Steps adalah: • Membuat sprite bergerak • Memindahkan sprite ke depan dalam sebuah animasi • Membuat sprite mengikuti mouse Belok Kanan () Derajat (blok) Adalah blok Gerak dan blok tumpukan . Blok berubah nya sprite 's arah jumlah tertentu derajat searah jarum jam. Blok ini mendukung nilai input apa pun dari -179 hingga 180. Blok ini dikenal sebagai "turn ()" di Scratch 0.1 , sebelum diubah namanya menjadi "turn right ()" di Scratch 0.2 , lalu menjadi "turn () derajat" di Scratch 0.3 , lalu menjadi "turn right () derajat" di Gores 0,5 . Contoh Penggunaan Arah tergantung dari nilai Block ini biasanya digunakan untuk memutar sprite secara berulang-ulang. Beberapa penggunaan umum untuk balok derajat belok kanan () :
  • 42.
    42 Belok Kiri ()Derajat (blok) blok Gerak dan blok tumpukan . Blok berubah nya sprite 's arah jumlah tertentu derajat berlawanan. Blok ini mendukung nilai input apa pun dari -179 hingga 180. Blok ini dikenal sebagai "belok kiri ()" di Scratch 0.2 sebelum diubah namanya menjadi "belok kiri () derajat" di Scratch 0.5 . Contoh Penggunaan Arah tergantung dari nilai Block ini biasanya digunakan untuk memutar sprite secara berulang-ulang. Beberapa penggunaan umum untuk blok "belok kiri () derajat":
  • 43.
    43 Goto X Goto X() blok adalah blok gerak dan blok tumpukan . Blok mengatur posisi X dan Y sprite ke posisi yang ditentukan, yang dapat berupa sprite lain, penunjuk mouse, atau koordinat acak. Contoh Penggunaan Berbeda dengan blok go to x: () y: () , yang memindahkan sprite ke koordinat yang ditentukan, blok go to () memindahkan sprite ke lokasi yang ditentukan. Beberapa penggunaan umum untuk blok go to ():
  • 44.
    44 Glide () Secsto () (block) The Glide () Secs ke () blok adalah Blok Gerak dan Blok Stack yang diperkenalkan pada Scratch 3.0 . [1] [2] Blok tersebut memindahkan sprite dengan kecepatan tetap ke sprite tertentu atau penunjuk mouse dari drop-down - ini mirip dengan sprite dalam satu arah dan berulang kali menggunakan Move () Steps , tetapi dengan lebih banyak presisi. Spasi pertama adalah input angka, dan spasi kedua dapat diatur ke sprite, posisi acak, dan penunjuk mouse. Kelemahan dari blok ini adalah, saat meluncur, skrip tersebut dijeda sehingga tidak ada hal lain yang dapat terjadi selama waktu ini. Meluncur hanya dapat diinterupsi oleh blok skrip yang berhenti, dan blok If on Edge, Bounce akan gagal menjalankan fungsi yang dimaksudkan saat sprite sedang meluncur.
  • 45.
    45 Glide () Secsto X: () Y: () (block) The Glide () Secs ke X: () Y: () blok adalah Blok Gerak dan Blok Stack . Blok memindahkan sprite - nya dengan mantap ke posisi X dan Y yang ditentukan dalam jumlah detik yang ditentukan - ini seperti mengarahkan sprite ke satu arah dan berulang kali menggunakan Move () Steps , tetapi dengan lebih presisi. Kelemahan dari blok luncur, bagaimanapun, adalah ia menjeda skrip saat sprite bergerak, mencegah skrip melakukan hal lain saat sprite sedang meluncur. Selain itu, glide hanya dapat diinterupsi oleh blok skrip yang berhenti , dan blok If on Edge, Bounce akan gagal menjalankan fungsi yang dimaksudkan saat sprite sedang meluncur.
  • 46.
    46 Point in Direction() (blok) The titik dalam arah () blok adalah blok tumpukan dan blok gerak . Blok tersebut mengarahkan sprite -nya ke arah yang ditentukan , memutar sprite tersebut. Balok menggunakan 360 derajat dalam lingkaran. The Nilai default adalah 90 dan dapat digantikan oleh setiap Nomor (360 + x display yang sama dari 0 + x). Ada beberapa kebingungan yang melibatkan sistem bilangan karena fakta bahwa 0 lurus ke atas, bukan ke kanan (arah default) atau ke kiri (seperti dalam busur derajat), dan menggunakan -180 untuk 180 lingkaran daripada lingkaran 360 derajat biasa. Meskipun ada keluhan, [1] tidak ada perubahan yang dilakukan.
  • 47.
    47 Point Towards ()(block) The Titik Menuju () blok adalah blok gerak dan blok Stack yang menunjuk nya sprite terhadap tikus-pointer atau pusat kostum dari sprite lain.
  • 48.
    48 Change X by() (block) The Perubahan X oleh () blok adalah blok Gerak dan blok Stack . Blok tersebut memindahkan posisi X pusat kostum sprite dengan jumlah yang ditentukan. Sumbu x berkisar dari -240 hingga 240.
  • 49.
    49 Setel X ke() (blokir) The Set X untuk () blok adalah blok Gerak dan blok Stack . Blok tersebut mengubah posisi X sprite yang dipilih ke nilai yang ditentukan. Bersamaan dengan blok Set Y ke () , blok ini bertindak serupa dengan blok Go to X: () Y: () .
  • 50.
    50 Contoh Penggunaan Jika koordinatY sprite harus dijaga konstan, tetapi sprite masih perlu bergerak (misalnya, scrollbar horizontal), blok Set X ke () dapat digunakan sebagai pengganti blok Go to X: () Y: () - tidak perlu mengatur posisi Y bila tidak berubah. Blok ini sering digunakan dalam proyek yang menggunakan X scrolling - sprite yang ditentukan secara konstan mengubah posisi X mereka untuk mengikuti gerakan lanskap. Kegunaan lain termasuk: Change Y by () (block) The perubahan y oleh () blok adalah blok gerak dan blok tumpukan . Blok tersebut memindahkan posisi Y sprite -nya dengan jumlah yang ditentukan. Contoh Penggunaan Seringkali dalam permainan, pemain mengontrol sprite dan menggerakkannya, seperti dengan kecepatan. Dengan cara ini, perubahan blok y oleh () (dan perubahan x oleh () blok) bisa menjadi sangat berguna. Sumbu y berkisar dari -180 hingga 180. Dalam skrip ini, yang dapat mengontrol dayung di Pong , variabel yVelocity mengontrol gerakan naik turun sprite. Ini memungkinkan sprite untuk berakselerasi dan melambat.
  • 51.
  • 52.
    52 Move () Steps(block) Langkah () langkah blok adalah blok tumpukan dan blok Gerak . Balok itu menggerakkan sprite ke depan sejumlah langkah yang ditentukan ke arah yang dihadapinya. Satu langkah sama dengan panjang satu piksel. The Nilai default adalah 10 dan dapat diganti dengan nomor apapun. Blok sebenarnya menggunakan Trigonometri untuk bergerak ke arah yang benar, karena begitulah cara komputer menanganinya. Blok ini dikenal sebagai "maju ()" di Scratch 0.1 sebelum diubah namanya menjadi "move () steps" di Scratch 0.3 . Contoh Penggunaan Alih-alih menggunakan skrip rumit dengan blok Change X by () dan blok Change Y by () , blok ini dapat dengan mudah digunakan untuk memajukan sprite. Beberapa penggunaan umum untuk blok Move () Steps adalah: If on Edge, Bounce (block) The Jika di Edge, Bounce blok adalah Blok Gerak dan Blok Stack . Blok memeriksa untuk melihat apakah sprite -nya menyentuh tepi layar dengan blok - dan jika ya, sprite akan menunjuk ke arah yang mencerminkan arah datangnya. Ini menggunakan garis tegak lurus ke tepi untuk menentukan sudut refleksi. Blok juga dapat digabungkan dengan opsi pada sebuah sprite untuk mengontrol pergerakannya ke kiri dan ke kanan hanya karena hal ini mencegah sprite agar tidak terbalik.
  • 53.
    53 If on Edge,Bounce (block) Blok If on Edge, Bounce adalah Blok Motion dan Blok Stack. Blok memeriksa untuk melihat apakah sprite-nya menyentuh tepi layar dengan gerakan tersebut blok langkah - dan jika ya, sprite akan menunjuk ke arah yang mencerminkan arah datangnya. Ini menggunakan garis tegak lurus ke tepi untuk menentukan sudut refleksi. Blok juga dapat digabungkan dengan opsi pada sprite untuk mengontrol pergerakannya ke kiri dan ke kanan hanya karena hal ini mencegah sprite agar tidak terbalik. Set Rotation Style () (block) The Set Rotasi Style () blok adalah blok Gerak dan blok Stack . Blok mengubah Rotasi Style dari sprite in proyek . Terlepas dari gayanya, arah variabel masih akan berubah. Ada tiga opsi untuk blok ini: sekeliling, kiri-kanan, dan jangan putar. Secara keseluruhan berarti sprite dapat menghadapi salah satu dari 360 derajat. Ini adalah defaultnya. Kiri-kanan artinya sprite hanya bisa menghadap ke kiri atau ke kanan, dan segala arah lainnya berbentuk bulat. Sprite juga akan dibalik secara horizontal saat menghadap ke kiri dengan gaya kiri-kanan. Jangan memutar berarti sprite selalu menghadap ke arah 90 °.
  • 54.
    54 X Position (block)/Y Position The x posisi blok adalah blok reporter dan blok gerak . Blok memegang nya sprite nilai x 's, lokasi horisontal sprite di atas panggung. Blok tersebut dapat ditampilkan sebagai monitor panggung .
  • 55.
  • 56.
  • 57.
    57 7. Variable danEvents pada Scratch Events Acara blok adalah salah satu dari sepuluh kategori dari blok . Mereka diberi kode warna kuning muda dan digunakan untuk merasakan peristiwa , yang memicu skrip untuk dijalankan. Blok peristiwa sangat penting untuk setiap proyek : tanpa blok topi dari kategori ini, proyek tidak akan dapat dimulai kecuali dengan menjalankan skrip secara manual. Saat ini ada 8 blok acara: 6 blok topi dan 2 blok tumpukan . Ini adalah kategori blok terkecil. Di Scratch 1.4 dan sebelumnya, semua blok acara berada di bawah kategori Blok Kontrol . Awalnya setelah diberi kategorinya sendiri, blok Peristiwa disebut "Pemicu" di Penampil Eksperimental dan versi awal Scratch 2.0. Namun, nama tersebut diubah oleh Scratch Day 2012 menjadi "Events". Acara awalnya juga menyertakan blok "adegan", di mana skrip dapat memicu adegan baru untuk dimulai dan sprite atau panggung dapat merespons adegan baru tersebut. Namun, ini sangat mirip dengan blok penyiaran , dan kemungkinan besar dihapus karena pengulangan dan kebingungan.
  • 58.
    58 Variabel Variabel blok adalahsalah satu dari sepuluh kategori dari Scratch 3.0 blok . The blok variabel yang warna-kode oranye, dan blok daftar kode warna merah gelap. Saat ini ada 17 blok Variabel: 11 blok Stack , 5 blok Reporter , dan 1 blok Boolean . Ada 5 blok variabel dan 12 blok daftar. Daftar
  • 59.
    59 8. Aritmatika danLogika pada Scratch Operator blok adalah salah satu dari sepuluh kategori dari Scratch blok . Mereka diberi kode warna hijau muda, dan digunakan untuk membuat skrip persamaan matematika dan penanganan string . Itu sebelumnya berjudul Numbers Blocks, tetapi diganti namanya di Scratch 1.4 karena blok baru yang menangani string. Saat ini terdapat 18 blok Operator: 7 blok Boolean dan 11 blok Reporter . This dan PicoBoard Block adalah satu-satunya kategori yang tidak mengandung blok Stack .
  • 60.
    60 9. Sensing padaScratch Blok penginderaan adalah salah satu dari sepuluh kategori blok Scratch . Mereka diberikode warna cyan, dan digunakan untuk mendeteksi berbagai faktor proyek . Saat ini ada 18 blok penginderaan: 3 blok tumpukan , 5 blok boolean, dan 10 blok reporter
  • 61.
    61 Studi Kasus MembuatBerbagai Game Seperti Anda lihat bahwa ‘algoritma’ tersebut merupakan sebuah resep, yaitu sekumpulan petunjuk langkah demi langkah dalam mencampur bahan masakan dan menghasilkan nasi goreng yang lezat. Secara umum, algoritma dapat digambarkan sebagai sebuah prosedur untuk menyelesaikan sebuah masalah. Dalam konteks pemrograman komputer, algoritma didefinisikan sebagai: kumpulan operasi yang tertata dengan baik, jelas dan dapat dihitung secara efektif, yang ketika dieksekusi, menghasilkan suatu hasil dan penghentian dalam waktu yang terbatas (Schneider & Gersting, 2010). Karakteristik suatu Algoritma • Tertata dengan baik: Langkah-langkahnya dalam urutan yang jelas. • Jelas: Operasi yang digambarkan dipahami oleh suatu komputasi tanpa penyederhanaan lebih lanjut. • Dapat dihitung secara efektif: Komputasi tersebut sebenarnya dapat melakukan operasi. Algoritma berasal dari nama terakhir Muhammad ibnu Musa Al-Khowarizmi. Seorang ahli matematika terkenal dan penulis pada abad ke-8 dan 9 masehi yang berasal dari Persia. Al- Khowarizmi adalah seorang guru di Institut Matematika di Baghdad dan penulis buku Kitab Al- Jabr wal Muqaabalah, yang berarti “Aturan Menyatukan dan Memisahkan”. Buku tersebut merupakan satu dari buku teks matematika paling awal, dan judul tersebut memberikan kita kata Aljabar (Schneider & Gersting, 2010).
  • 62.
    62 Metode untuk Mengembangkansuatu Algoritma 1. Definisikan masalah: Nyatakan masalah yang sedang Anda coba selesaikan dengan istilah yang singkat dan jelas. 2. Buat daftar untuk input (informasi yang diperlukan untuk menyelesaikan masalah) dan output (apa yang akan algoritma tersebut hasilkan). 3. Gambarkan langkah-langkah yang diperlukan untuk mengubah atau memanipulasi input tersebut untuk menghasilkan output. Mulai pada tingkat tinggi terlebih dahulu, dan tetap memperbaiki langkah-langkah tersebut hingga operasi dapat dihitung secara efektif. 4. Uji algoritma: pilih sekumpulan data dan periksa bahwa algoritma Anda bekerja! Dalam tahapan penyelesaian masalah pemrograman komputer, Anda akan mendesain algoritma. Ini berarti bahwa Anda harus menyadari strategi yang Anda gunakan untuk menyelesaikan masalah dapat diterapkan dalam masalah pemrograman. Algoritma tersebut dapat didesain meskipun menggunakan flowchart atau pseudocode. Flowchart Flowchart merupakan sebuah alat grafis yang menjelaskan cara penyelesaian masalah penanganan informasi (Chapin, 1970). Flowchart merupakan sebuah diagram yang terdiri dari bentuk kotak, wajik, dan lainnya, terhubung oleh panah, tiap bentuk mewakili sebuah langkah dalam proses, dan panah menunjukkan urutan. Flowchart mengkombinasikan simbol dan garis alir, untuk menunjukkan seperti apa operasi dari suatu algoritma. Dalam komputasi, terdapat banyak simbol berbeda yang digunakan dalam flowchart. Dalam analisis proses bisnis, sepasang simbol cukup. Sebuah kotak dengan teks di dalamnya menandai sebuah langkah dalam proses, sementara sebuah wajik dengan teks mewakili sebuah keputusan. Jika flowchart terlalu berantakan untuk digambar, coba mulai lagi, tetapi biarkan semua poin keputusan dan berkonsentrasi pada cara yang paling sederhana mungkin. Kemudian sesi tersebut dapat kembali dilanjutkan dan menambahkan poin keputusan setelahnya. Mungkin ini berguna untuk memulai dengan menggambar flowchart tingkat tinggi untuk keseluruhan bagian, dengan tiap kotak menjadi sebuah proses lengkap yang harus diisi nanti. Dari pengertian umum ini bisa datang sejumlah hal, seperti ide perbaikan proses akan sering muncul secara spontan selama sesi pembuatan flowchart. Dan setelah sesi tersebut, Anda juga dapat menyusun prosedur tertulis, seperti sesi pembuatan flowchart yang merupakan cara yang baik
  • 63.
    63 untuk mendokumentasikan sebuahproses. Proses perbaikan diawali dengan memahami proses tersebut, dan membuat flowchart yang merupakan langkah awal menuju proses pemahaman. Simbol Flowchart Terdapat beberapa simbol dasar yang biasa digunakan dalam membuat flowchart program bahasa Assembly (bahasa pemrograman tingkat rendah), yaitu: Terminal, Process, Input/Output, Decision, Connector, dan Predefined Process. Berikut ini bukan merupakan daftar lengkap dari semua simbol flowchart yang mungkin, melainkan beberapa simbol yang sering digunakan dalam pemrograman bahasa Assembly. Simbol Nama Fungsi Process Menunjukkan jenis operasi internal di dalam prosesor atau memori. Input/ output Digunakan untuk operasi Input/Output (I/O). Decision Digunakan untuk memberikan pertanyaan yang dapat dijawab dalam format biner (Yes/No, True/False). Connector Membuat flowchart dapat dibuat tanpa memotong garis atau alur yang berlawanan. Predefined Process Digunakan untuk meminta subrutin atau program interupsi. Terminal Menunjukkan awal atau akhir dari program, proses, atau program interupsi. Flow Lines Menunjukkan arah aliran. (Chapin, 1970) Secara umum, terdapat banyak simbol flowchart yang baku. Aturan Umum Membuat Flowchart • Semua kotak flowchart terhubung dengan panah (Flow lines).
  • 64.
    64 • Simbol flowchartmemiliki titik masuk pada bagian atas simbol tanpa titik masuk lain. Titik keluar untuk semua simbol flowchart berada pada bagian bawah kecuali untuk simbol Decision. • Simbol Decision memiliki dua titik keluar; berada di samping atau bawah dan satu sisi samping lainnya. • Secara umum flowchart akan mengalir dari atas ke bawah. Bagaimanapun, aliran ke atas dapat ditampilkan selama tidak melebihi tiga simbol. • Connector digunakan untuk menghubungkan jeda dalam flowchart. Contoh: 11.dari satu halaman ke halaman lain. 12.dari bawah halaman ke atas halaman yang sama. 13.aliran ke atas lebih dari tiga simbol. • Subrutin dan program interupsi memiliki flowchart sendiri dan bebas (independent). • Semua flowchart dimulai dengan simbol Terminal atau Predefined Process (untuk program interupsi atau subrutin). • Semua flowchart berakhir dengan Terminal atau loop. Tips membuat flowchart 1. Buatlah diagram proses tersebut seperti benar-benar terjadi. Jangan mendokumentasikan seperti sebuah proses yang ditulis atau seorang manajer yang berpikir proses tersebut terjadi. 2. Orang biasanya memodifikasi proses yang ada agar mendapatkan proses yang lebih efisien. Jika proses teoritis atau yang diinginkan tersebut digambarkan, masalah dengan proses yang ada tidak akan disadari dan tidak ada perbaikan yang dapat dibuat. Catat semua keadaan yang benar-benar ditangani. 3. Uji flowchart dengan mencoba mengikuti diagram tersebut untuk menampilkan proses yang dibuat. Jika terdapat masalah yang menampilkan operasi yang dibuat, catat setiap perbedaan dan modifikasi diagram tersebut agar tepat. Pendekatan yang lebih baik dengan
  • 65.
    65 cara meminta orangyang tidak akrab dengan proses tersebut untuk mencoba mengikuti flowchart dan catat pertanyaan atau masalah yang ditemukan. 4. Sertakan tahapan mental dalam proses tersebut seperti keputusan. Tahapan tersebut terkadang hilang karena akrab dengan proses tersebut, bagaimanapun, representasikan sumber masalah yang disebabkan oleh kemungkinan kurang informasi yang biasanya dapat membuat keputusan tersebut tidak memadai atau tidak tepat jika ditampilkan oleh orang yang berbeda. Contoh Algoritma dan Flowchart Contoh 1. Buatlah sebuah algoritma dan flowchart yang terkait untuk menambahkan skor yang diberikan: 26, 49, 98, 87, 62, 75. Solusi: 1. Algoritma 1. Start 2. Jumlah = 0 3. Dapatkan skor pertama 4. Tambahkan skor pertama ke jumlah 5. Dapatkan skor kedua 6. Tambahkan ke jumlah 7. Dapatkan skor ketiga 8. Tambahkan ke jumlah 9. Dapatkan skor keempat 10. Tambahkan ke jumlah 11. Dapatkan skor kelima 12. Tambahkan ke jumlah 13. Dapatkan skor keenam
  • 66.
    66 14. Tambahkan kejumlah 15. Output jumlah 16. Stop 2. Flowchart yang terkait Algoritma dan flowchart di atas menggambarkan langkah-langkah untuk menyelesaikan masalah menambahkan enam skor. Di mana satu skor ditambahkan ke jumlah pada suatu waktu. Algoritma dan flowchart keduanya harus selalu memiliki Start pada awal algoritma atau flowchart dan setidaknya satu Stop di akhir, atau di manapun pada algoritma atau flowchart. Karena kita ingin menjumlahkan enam skor, maka kita harus memiliki sebuah muatan yang merupakan hasil penjumlahan. Dalam contoh ini, muatan tersebut disebut jumlah dan kita memastikan bahwa jumlah harus dimulai dengan nilai nol pada langkah 2. Contoh 2. Masalah dengan algoritma ini adalah bahwa, beberapa langkah muncul lebih dari sekali, maksudnya langkah 5 mengambil angka kedua, langkah 7, mengambil angka ketiga, dan seterusnya. Algoritma atau flowchart dapat diringkas sebagai berikut: B. Start C. jumlah = 0 D. Dapatkan sebuah nilai E. jumlah = jumlah + nilai F. Menuju langkah 3 untuk mendapatkan nilai berikutnya G. Output jumlah H. Stop Flowchart yang terkait Algoritma ini dan flowchart yang terkait lebih pendek dari sebelumnya. Dalam algoritma ini, langkah 3 hingga 5 akan diulang, di mana sebuah angka didapatkan dan dijumlahkan ke jumlah.
  • 67.
    67 Sebuah garis aluryang dibuat berbalik ke langkah sebelumnya mengindikasikan bahwa porsi flowchart berulang. Sebuah masalah yang mengindikasikan bahwa langkah-langkah ini akan berulang tanpa akhir, menghasilkan sebuah algoritma atau flowchart tanpa akhir. Algoritma tersebut perlu diubah untuk mengatasi masalah ini. Dalam rangka menyelesaikan masalah ini, kita perlu menambahkan nilai terakhir untuk membuat daftar angka yang diberikan. Nilai ini harus unik sedemikian sehingga, tiap saat kita dapat sebuah nilai, kita uji nilai tersebut untuk melihat jika kita telah mencapai nilai terakhir. Dengan cara ini algoritma kita akan menjadi algoritma yang berhingga di mana berakhir dalam sejumlah langkah berhingga seperti ditunjukkan berikut. Terdapat banyak cara membuat algoritma berhingga. List angka baru akan menjadi 26, 49, 98, 87, 62, 75, –1. Nilai –1 angka unik karena semua angka lain positif. 1.1 Start 1.2 jumlah = 0 1.3 Dapatkan sebuah nilai 1.4 Jika nilai sama dengan –1, menuju langkah 7 1.5 Tambahkan jumlah (jumlah = jumlah + nilai) 1.6 Menuju langkah 3 untuk mendapatkan nilai berikutnya 1.7 Output jumlah 1.8 Stop Flowchart terkait Pseudocode Pseudocode merupakan salah satu alat yang dapat digunakan untuk menuliskan rencana awal yang dapat dikembangkan ke dalam sebuah program komputer. Pseudocode merupakan cara umum penggambaran sebuah algoritma tanpa menggunakan sintaks bahasa pemrograman tertentu (Levitin, 2012). Seperti namanya, pseudo code –tidak dapat dieksekusi pada komputer yang sebenarnya, tetapi memodelkan dan menyerupai kode pemrograman yang sebenarnya, dan ditulis secara kasar pada tingkatan detail yang sama.
  • 68.
    68 Pseudocode, secara alami,hadir dalam berbagai macam bentuk, meskipun banyak meminjam sintaks dari bahasa pemrograman populer (seperti C, Lisp, atau FORTRAN). Bahasa dasar digunakan kapanpun rincian tidak penting atau mengganggu. Buku sumber sains komputer sering menggunakan pseudocode dalam contoh mereka sehingga semua programmer dapat memahaminya, bahkan jika mereka tidak semua memahami bahasa pemrograman yang sama. Karena gaya pseudocode beragam dari penulis ke penulis, biasanya terdapat pendahuluan yang menemani penjelasan sintaks yang digunakan. Dalam desain algoritma, tahapan algoritma ditulis dalam teks bahasa Inggris bebas dan, meskipun keringkasan diinginkan, tahapan tersebut mungkin diperlukan selama untuk menjelaskan operasi tertentu. Tahapan tersebut dari sebuah algoritma dikatakan ditulis dalam pseudocode. Banyak bahasa, seperti Pascal, memiliki sintaks yang hampir identik dengan pseudocode dan karenanya membuat transisi dari desain ke coding sangat mudah. Bagian berikut berkaitan dengan struktur kontrol (konstruk kontrol). Barisan, Seleksi dan Iterasi, atau Pengulangan. Struktur Kontrol atau Struktur Logis Kunci untuk desain algoritma yang lebih baik dan dengan demikian pemrograman berada dalam pembatasan struktur kontrol untuk hanya tiga konstruk. Diilustrasikan sebagai berikut: Struktur barisan Tipe pertama struktur kontrol disebut struktur barisan. Struktur ini merupakan struktur yang paling mendasar. Struktur barisan merupakan sebuah kasus di mana tahapan dalam sebuah algoritma dibangun sedemikian rupa, tidak ada tahapan bersyarat yang diperlukan. Struktur barisan setara dengan garis lurus. Sebagai contoh, misalkan Anda diminta untuk mendesain sebuah algoritma untuk menemukan rerata enam angka, dan jumlah angka tersebut diketahui. Pseudocodenya seperti berikut: Start Dapatkan jumlah Rerata = jumlah/6 Output rerata Stop
  • 69.
    69 Flowchart yang terkaitakan muncul seperti ini: Contoh 3. Ini merupakan pseudocode yang diperlukan untuk memasukkan tiga angka dari keyboard dan menampilkan hasilnya. Gunakan variabel: jumlah, angka1, angka2, angka3 bilangan bulat Terima angka1, angka2, angka3 jumlah = angka1 + angka2 + angka3 Print jumlah End program Contoh 4. Pseudocode berikut menggambarkan sebuah algoritma yang akan menerima dua angka dari keyboard dan menghitung jumlah dan kali menampilkan jawaban pada layar monitor. Gunakan variabel: jumlah, kali, angka1, angka2 bilangan real Tampilkan “Masukkan dua angka” Terima angka1, angka2 jumlah = angka1 + angka2 Print “Jumlahnya adalah”, jumlah kali = angka1*angka2 Print “Hasil kalinya adalah”, kali End program Struktur Keputusan atau Struktur Pilihan Struktur keputusan atau biasa disebut struktur pilihan, merupakan kasus di mana dalam algoritma, harus memilih di antara dua pilihan dengan membuat keputusan bergantung pada
  • 70.
    70 kondisi yang diberikan.Struktur pilihan disebut juga struktur pemilihan kasus di mana terdapat dua atau lebih pilihan untuk dipilih. Struktur ini dapat diilustrasikan dalam sebuah flowchart sebagai berikut: Bentuk pseudocodenya sebagai berikut: If kondisi benar Then lakukan Tugas A Else Do Tugas B Dalam contoh ini, kondisi tersebut dievaluasi, jika kondisi benar Tugas A dievaluasi dan jika salah, maka Tugas B dieksekusi. Variasi konstruksi gambar di atas ditunjukkan seperti berikut: Dari struktur di atas, kita memiliki If kondisi benar maka Do Tugas A Dalam kasus ini, jika kondisi salah, tidak terjadi apa-apa. Selain itu Tugas A dieksekusi. Pilihan memerlukan hal berikut 1. Pilih tindakan lain sebagai sebuah hasil pengujian kondisi logis 2. Buatlah kode untuk menguji serangkaian tes logika Membuat pilihan Terdapat banyak hal di mana sebuah program diminta untuk mengambil tindakan lain. Sebagai contoh, hal di mana kita perlu mengambil tindakan berdasarkan pilihan pengguna. Semua bahasa komputer menyediakan sarana pilihan. Biasanya ini dalam bentuk pernyataan If dan pseudocode bukan pengeceualian untuk ini. Kita akan menggunakan pernyataan if bersama dengan operator logika untuk menguji benar atau salah seperti pernyataan berikut.
  • 71.
    71 If a =b Print “a = b” Tindakan diambil hanya ketika pengujian tersebut benar. Operator logika yang digunakan dalam pseudocode adalah = sama dengan > lebih besar dari < kurang dari >= lebih besar atau sama dengan <= lebih kecil atau sama dengan <> tidak sama dengan Contoh 5. Contoh berikut ini menunjukkan bagaimana struktur kontrol pilihan yang digunakan dalam sebuah program di mana pengguna memilih pilihan untuk mengalikan angka-angka atau menambahkannya atau mengurangkannya. Gunakan variabel: pilihan, bertipe karakter jawaban, angka1, angka2, bertipe bilangan bulat tampilkan “pilih satu dari berikut ini” tampilkan “k untuk perkalian” tampilkan “j untuk penjumlahan” tampilkan “p untuk pengurangan” terima pilihan tampilkan “masukkan dua angka yang Anda inginkan” terima angka1, angka2 if pilihan = k then jawaban = angka1*angka2 if pilihan = j then jawaban = angka1 + angka2
  • 72.
    72 if pilihan =p then jawaban = angka1 – angka2 tampilkan jawaban Campuran operator logika Terdapat banyak hal ketika kita perlu memperluas kondisi yang akan diuji. Sering terdapat kondisi yang perlu dihubungkan. Dalam bahasa sehari-hari kita mengatakan hal-hal seperti Jika saya memiliki waktu dan uang saya akan pergi berlibur. Kata dan berarti bahwa kedua kondisi mesti terpenuhi sebelum kita mengambil tindakan. Kita juga dapat berkata Saya bahagia pergi ke teater atau bioskop. Tautan logika kali ini adalah atau. Kondisi dalam pernyataan jika terhubung dengan cara yang sama. Kondisi yang dihubungkan dengan dan menghasilkan tindakan hanya ketika semua kondisi terpenuhi. Sebagai contoh, jika a > b dan a > c maka tampilkan “a palin besar”. Kondisi yang dihubungkan dengan atau menghasilkan tindakan ketika salah satu kondisi terpenuhi. Contoh 6. Program berikut ini memasukkan nilai ujian dan mengujinya untuk pemeringkatan. Nilai ujian tersebut adalah semua angka antara 1 dan 100. Peringkat berdasarkan kriteria berikut: >= 80 sangat baik >= 60 baik >= 40 cukup < 40 gagal Pseudocodenya adalah Gunakan variabel: nilai bertipe bilangan bulat If nilai>=80 tampilkan “sangat baik” If nilai >= 60 dan nilai < 80 tampilkan “baik” If nilai >= 40 dan nilai < 60 tampilkan “cukup” If nilai < 40 tampilkan “gagal” Sebuah pernyataan if dengan sendirinya seringkali bukan cara terbaik dalam menyelesaikan masalah. Sekumpulan kondisi yang lebih elegan dapat dibuat dengan menambahkan pernyataan else ke pernyataan if. Pernyataan else digunakan untuk mengatasi situasi seperti ditunjukkan dalam contoh berikut.
  • 73.
    73 Contoh 7. Seseorangdigaji tinggi pada kategori pekerjaan 1 selain itu digaji normal. If kategori pekerjaan 1 gaji tinggi Else gaji normal Pernyataan else memberikan cara yang rapi dalam mengatasi kondisi lain. Dalam pseudocode kita tulis If pekerjaan = kat1 then g-rate:= tinggi Else g-rate = normal Atau If pekerjaan = kat1 maka g-rate:= tinggi else g-rate = normal Contoh berikut menggambarkan penggunaan pernyataan if … else dalam menampilkan kondisi lain berganda. If gaji < 5000000 then Pajak = 0 Else If gaji > 5000000 AND gaji < 10000000 then Pajak = 5000000 * 0,05 Else Pajak = 10000000 * 0,30
  • 74.
    74 Case statement Pengulangan pernyataanif … else beberapa kali dapat sedikit membingungkan. Metode lain yang diberikan dalam sejumlah bahasa adalah menggunakan selector yang ditentukan oleh kondisi lain yang diperlukan. Dalam pseudocode kita, ini disebut case statement. Contoh 8. Program berikut menghasilkan sebuah pesan ke layar monitor yang menggambarkan asuransi yang tersedia berdasarkan kategori yang dimasukkan oleh pengguna. Gunakan variabel: kategori bertipe karakter Tampilkan “masukkan kategori” Terima kategori If kategori = T Tampilkan “asuransi tidak tersedia” Else If kategori = A then Tampilkan “asuransi ganda” Else If kategori = B then Tampilkan “asuransi normal” Else If kategori = M then Tampilkan “asuransi tergantung secara medis” Else Tampilkan “entry invalid” Ini dapat diekspresikan dalam case statement sebagai berikut: Gunakan variabel: kategori bertipe karakter Tampilkan “masukkan kategori”
  • 75.
    75 Terima kategori DO kategorikasus CASE kategori = T Tampilkan “asuransi tidak tersedia” CASE kategori = A Tampilkan “asuransi ganda” CASE kategori = B Tampilkan “asuransi normal” CASE kategori = M Tampilkan “asuransi tergantung secara medis” OTHERWISE Tampilkan “entry invalid” ENDCASE Selain menggunakan kata otherwise, dapat juga digunakan else. Struktur Iterasi atau Pengulangan Struktur ketiga menyebabkan tahapan tertentu diulang. Struktur pengulangan dapat diterapkan menggunakan - Repeat Until Loop - While Loop - For Loop Instruksi suatu program yang mengulang suatu pernyataan atau barisan pernyataan beberapa kali disebut iterasi atau loop. Perintah yang digunakan untuk membuat pengulangan atau loop semuanya berdasarkan pada tes logika. Terdapat tiga konstruksi untuk iterasi atau loop dalam pseudocode kita. Repeat Until Loop Sintaksnya adalah
  • 76.
    76 REPEAT Sebuah pernyataan ataubagian dari pernyataan UNTIL kondisi terpenuhi Contoh 9. Sebuah segmen program meminta secara berulang entri sebuah angka dalam rentang 1 sampai 100 hingga angka yang valid dimasukkan. REPEAT DISPLAY “Masukkan sebuah angka antara 1 dan 100” ACCEPT angka UNTIL angka < 1 OR angka > 100 Contoh 10. Sebuah survei dikeluarkan untuk mengetahui olahraga yang paling populer. Hasilnya akan diketikkan ke dalam komputer untuk dianalisa. Tulislah sebuah program untuk menyelesaikan ini. REPEAT DISPLAY “Ketikkan dalam huruf yang dipilih atau Q untuk selesai” DISPLAY “A: Atletik” DISPLAY “R: Renang” DISPLAY “S: Sepak bola” DISPLAY “B: Bulu tangkis” DISPLAY “Masukkan data” ACCEPT huruf If huruf = ‘A’ then Atletik = Atletik + 1 If huruf = ‘R’ then Renang = Renang + 1 If huruf = ‘S’ then
  • 77.
    77 Sepakbola = Sepakbola+ 1 If huruf = ‘B’ then Bulutangkis = Bulutangkis + 1 UNTIL huruf = ‘Q’ DISPLAY “Skor atletik”, Atletik, “yang memilih” DISPLAY “Skor renang”, Renang, “yang memilih” DISPLAY “Skor sepakbola”, Sepakbola, “yang memilih” DISPLAY “Skor bulutangkis”, Bulutangkis, “yang memilih” While loop Pengulangan jenis kedua yang akan kita lihat adalah iterasi while. Jenis loop bersyarat ini menguji untuk memutus kondisi pada permulaan loop. Dalam kasus ini tidak ada tindakan yang ditampilkan sama sekali jika uji pertama menyebabkan kondisi yang dievaluasi salah. Sintaksnya adalah WHILE (sebuah kondisi terpenuhi) Sebuah pernyataan atau bagian dari pernyataan ENDWHILE Contoh 11. Sebuah segmen program untuk mencetak tiap karakter yang diketik di keyboard hingga karakter ‘q’ dimasukkan. WHILE huruf < > ‘q’ ACCEPT huruf DISPLAY “Karakter yang Anda ketik adalah”, huruf ENDWHILE Contoh 12. Tulislah sebuah program yang akan menampilkan pangkat dua dari sebarang input angka hingga input angka nol. Dalam beberapa kasus, sebuah variabel harus diawali sebelum eksekusi loop seperti yang ditampilkan dalam contoh berikut.
  • 78.
    78 Gunakan variabel: angkabertipe real DISPLAY “Ketikkan sebuah angka atau nol untuk berhenti” ACCEPT angka WHILE angka < > 0 kuadrat = angka * angka DISPLAY “Kuadrat dari angka tersebut adalah”, kuadrat DISPLAY “Ketikkan sebuah angka atau nol untuk berhenti” ACCEPT angka ENDWHILE For loop Iterasi jenis ketiga, yang akan kita gunakan ketika banyaknya iterasi diketahui terlebih dahulu, adalah for loop. Ini, dalam bentuk paling sederhana, menggunakan sebuah inisialisasi variabel sebagai sebuah titik awal, kondisi berhenti bergantung pada nilai variabel. Variabel tersebut bertambah pada tiap iterasi hingga mencapai nilai yang diinginkan. Sintaks pseudocodenya sebagai berikut: FOR (keadaan awal, kondisi berhenti, kenaikan) Pernyataan ENDFOR Contoh 13. FOR (n = 1, n <= 4, n + 1) DISPLAY “Loop”, n ENDFOR Penggalan kode tersebut akan menghasilkan output Loop 1 Loop 2 Loop 3
  • 79.
    79 Loop 4 Dalam contohtersebut, n biasanya sebagai variabel loop, atau variabel hitungan, atau indeks loop. Variabel loop dapat digunakan dalam sebarang pernyataan loop. Variabel tersebut tidak boleh diberi sebuah nilai baru dalam loop, yang mana dapat mengubah perilaku loop. Contoh 14. Tulislah sebuah program untuk menghitung jumlah dan rerata dari sederet angka. Solusi pseudocodenya adalah: Gunakan variabel: n, hitungan bertipe bilangan bulat jumlah, angka, rerata bertipe bilangan real DISPLAY “Berapa banyak angka yang Anda ingin masukkan” ACCEPT hitungan jumlah = 0 FOR (n = 1, n <= hitungan, n + 1) DISPLAY “Masukkan angka” ACCEPT angka jumlah = jumlah + angka ENDFOR rerata = jumlah / hitungan DISPLAY “Jumlah angka tersebut adalah”, jumlah DISPLAY “Rerata angka tersebut adalah”, rerata Flowchart telah digunakan dalam bagian ini untuk mengilustrasikan bentuk ketiga struktur kontrol tersebut. Ini merupakan struktur kontrol dasar dari mana semua program dibangun. Di luar ini, flowchart melayani programmer dalam dua cara yang berebda: sebagai alat menyelesaikan masalah dan sebagai alat untuk mendokumentasikan sebuah program. Contoh Buatlah sebuah algoritma dan flowchart yang terkait untuk mendapatkan jumlah dari n angka.
  • 80.
    80 Pseudocode Program Start jumlah =0 Display “Masukkan nilai n” Input n For (I = 1, n, 5) Input nilai jumlah = jumlah + nilai ENDFOR Output jumlah Stop Dalam contoh ini, kita telah menggunakan I untuk membiarkan kita menghitung banyaknya pengulangan, yang kita dapat dari penambahan. Kita bandingkan I dengan n untuk memeriksa apakah kita telah kehabisan angka atau tidak dalam rangka menghentikan komputasi jumlah (atau untuk menghentikan struktur iterasi). Dalam kasus ini, I merupakan counter. Flowchart yang terkait adalah sebagai berikut: Latihan • Buatlah sebuah algoritma dan flowchart yang terkait untuk menemukan jumlah dari angka- angka 2, 4, 6, 8, …, n • Dengan menggunakan flowchart, tulislah sebuah algoritma untuk membaca 100 angka dan kemudian menampilkan jumlahnya. • Tulislah sebuah algoritma untuk membaca dua angka kemudian menampilkan yang paling besar. • Tulislah sebuah algoritma untuk membaca dua angka kemudian menampilkan yang paling kecil.
  • 81.
    81 • Tulislah sebuahalgoritma untuk membaca tiga angka kemudian menampilkan yang paling besar. • Tulislah sebuah algoritma untuk membaca 100 angka kemudian menampilkan yang paling besar.
  • 82.
    82 SCRATCH Bagian ini akandibahas sekilas tentang Scratch, dimulai dengan instalasi, fitur-fitur yang dimiliki serta contoh penggunaannya. Pengenalan Scratch Banyak orang menganggap pemrograman komputer sesuatu yang misterius dan proses rumit yang memerlukan pendidikan dan pelatihan teknik tingkat tinggi. Ini merupakan pendapat yang salah. Bahasa pemrograman BASIC telah ada sekitar beberapa dekade dan dikembangkan untuk mengajarkan programmer belajar untuk pertama kalinya bagaimana membuat program. Beberapa tahun ini, bahasa pemrograman jenis baru telah muncul, khususnya dalam membantu anak dan siswa belajar pemrograman. Salah satunya yang terbaik dan terbaru saat ini adalah Scratch. (Ford, 2009) Scratch merupakan bahasa pemrograman yang memudahkan Anda untuk membuat cerita, animasi, games, musik, dan seni yang Anda miliki secara interaktif. Scratch dikembangkan oleh kelompok penelitian Lifelong Kindergarten di MIT Media Lab. (Kindergarten, 2013). Scratch dapat digunakan secara online atau offline. Untuk penggunaan secara online disarankan untuk menggunakan
  • 83.
    83 Mozilla Firefox atauGoogle Chrome sebagai browser. Penggunaan Internet Explorer bermasalah ketika Sign In. (Lero, 2014) Scratch Online Penggunaan Scratch secara online melalui https://scratch.mit.edu/ . Scratch memiliki komunitas di mana Anda dapat berbagi dan berkolaborasi dengan pengguna lain. Anda dapat bergabung ke dalam komunitas dengan membuat akun Scratch. Berikut ini tampilan awal https://scratch.mit.edu/ . Klik “Join Scratch” untuk mendaftarkan akun Scratch jika Anda belum memilikinya.
  • 84.
    84 Jika Anda telahmemiliki akun klik “Sign In”. Klik “Create” untuk menuju tampilan pemrograman Scratch secara online.
  • 85.
    85 Fitur Scratch 2.0 Berikutini fitur yang ada pada Scratch 2.0: A. Ketika Anda membuat sebuah project, hanya Anda yang dapat melihatnya. Setelah Anda membaginya (share), siapapun dapat melihat dan mengubahnya. B. Fitur Backpack memungkinkan Anda meng-copy dan memindahkan sprites, costumes, backdrops, dan scripts dari suatu project ke project lain. Anda dapat membuka Backpack di dalam setiap project (Backpack berada di bagian bawah layar. Backpack belum tersedia di offline editor). C. Anda dapat menggunakan webcam pada komputer Anda untuk berinteraksi dengan project dengan menggerakkan tangan atau tubuh Anda.
  • 86.
    86 D. Sekarang Andadapat membuat blocks pemrograman Anda sendiri. E. Gunakan clone blocks dalam scripts Anda untuk membuat salinan sprites. F. Simpan angka dalam variabel cloud untuk membuat survey dan project lain. Fitur Komunitas A. Pada home page, Anda dapat melihat apa yang telah dibagi (share) oleh yang lain. B. Ketika melihat sebuah project, klik untuk melihat bagaimana project tersebut bekerja dan bereksperimen dengan kode. C. Di dalam setiap project, klik untuk menyimpan dan membuat perubahan versi Anda sendiri. Setelah Anda membaginya, halaman project
  • 87.
    87 tersebut akan menandaipembuat aslinya dan membuat link ke project mereka. D. Klik username atau icon Anda untuk menuju halaman Profile, di mana Anda dapat menampilkan salah satu project Anda dan memberitahu apa yang sedang Anda kerjakan. E. Orang-orang dapat menyampaikan komentar pada halaman Profile Anda dan akun Scratch Anda untuk melihat update. F. Studios dapat dikurasi oleh Anda dan lainnya yang Anda undang. G. Fitur Search memungkinkan Anda menemukan dan melakukan pratinjau project dengan lebih mudah. Scratch 2.0 Offline Editor Perkuliahan ini akan menggunakan Scratch 2.0 offline editor. Ini berarti Scratch 2.0 offline editor tidak bergantung pada cepatnya koneksi internet. Berikut ini akan diuraikan tahapan menginstal Scratch 2.0 offline editor.
  • 88.
    88 Instalasi Scratch Anda dapatmengunduh Scratch di https://scratch.mit.edu/download .
  • 89.
  • 90.
    90 Berikut ini tahapaninstalasi scratch: 1. Instal Adobe AIR: Unduh dan jalankan Adobe AIR installer. Ini akan mengunduh installer tersebut ke dalam folder unduhan Anda. Berikutnya klik dua kali installer yang ada dalam folder tersebut. Adobe AIR akan memulai instalasi. 2. Instal Scratch offline editor: Unduh dan jalankan Scratch installer. Ini akan mengunduh installer tersebut ke dalam folder unduhan Anda. Berikutnya klik dua kali installer yang ada dalam folder tersebut. Scratch akan memulai instalasi. Memulai Scratch Berikut ini panduan untuk membuat sebuah project di Scratch yang disusun oleh kelompok penelitian Lifelong Kindergarten: 1. Start Moving
  • 91.
    91 Drag block Moveke dalam area Scripts. Klik blok tersebut 2. Add a Sound
  • 92.
    92 Drag Play Drumke dalam area Scripts dan pasangkan dengan block Move. Klik dan dengarkan. Jika Anda tidak dapat mendengarnya, periksa bahwa sound pada komputer Anda dalam keadaan on.
  • 93.
    93 Anda dapat memilihdrum yang berbeda dari menu seperti gambar di atas. 3. Start a Dance Tambahkan block Move. Klik di dalam block tersebut dan ketikkan tanda minus.
  • 94.
    94 Klik pada blocktersebut untuk menjalankannya. Tambahkan block Play Drum lain, kemudian pilih sebuah dari menu tersebut. Klik untuk menjalankannya. 4. Again and Again Drag block Repeat dan letakkan pada bagian atas tumpukan block. Anda ingin mulut dari Repeat meliputi block lainnya.
  • 95.
    95 Anda dapat merubahbanyaknya perulangan (repeat). Klik untuk menjalankan. Untuk menjalankan, Anda dapat mengklik bagian mana saja pada tumpukan block tersebut. 5. Say Something Klik kategori Looks dan drag block Say.
  • 96.
    96 Klik di dalamblock Say dan ketikkan untuk merubah kata. Klik untuk mencobanya. Kemudian pasangkan block Say pada bagian atas.
  • 97.
    97 6. Green Flag Dragblock dan pasangkan di bagian atas.
  • 98.
    98 7. Change Color Sekarangcoba sesuatu yang berbeda … Drag block Change Effect ke dalam area script. Klik untuk melihat yang terjadi.
  • 99.
    99 8. Key Press Klik Sekarangtekan spasi pada keyboard Anda.
  • 100.
    100 Anda dapat memilihkey yang berbeda dari menu tersebut. 9. Add a Backdrop Anda dapat menambahkan sebuah backdrop ke dalam Stage. Klik untuk memilih backdrop baru. Pilih sebuah backdrop dari library (seperti “Spotlight-Stage”).
  • 101.
    101 Klik Ok. Sekarang backdropbaru muncul di Stage.
  • 102.
    102 10. Add aSprite Setiap objek di dalam Scratch disebut sprite. Untuk menambahkan sprite baru, klik salah satu tombol tersebut.
  • 103.
    103 Tombol Sprite: Memilih darilibrary Melukis sprite milik Anda Unggah sprite atau gambar milik Anda Mengambil gambar (dari webcam) Untuk menambahkan sprite ini, klik kemudian klik People dan pilih “Cassy Dance”. Anda dapat menggeser karakter ke mana yang Anda inginkan.
  • 104.
    104 11. Explore! Sekarang Andadapat mengatakan kepada sprite apa yang harus dilakukan. Cobalah yang berikut ini, atau jelajahi sendiri.
  • 105.
  • 106.
    106 Untuk lebih banyakide, klik Tips:
  • 107.
    107 Tips Window menampilkancontoh script yang dapat Anda gunakan untuk project Anda.
  • 108.
    108 Juga menjelaskan apayang dilakukan tiap block di dalam Scratch. Save and Share Untuk menyimpan project Anda di Scratch offline editor:
  • 109.
    109 Klik File, kemudianSave. Untuk menyimpan project online Anda, yakinkan bahwa Anda telah Sign In. (jika Anda ingin menyimpan file tersebut ke dalam komputer Anda, klik File dan pilih “Download to Your Computer”) Ketika Anda siap, klik
  • 110.
    110 Klik untuk menampilkanfull screen. Klik agar yang lain melihat dan bermain dengan project Anda. Ketika Anda berbagi (share), orang lain dapat berkunjung dan berinteraksi dengan project Anda. Sekarang apa? Anda dapat sebuah project baru atau ide-ide. Untuk lebih tahu, klik atau kunjungi http://scratch.mit.edu/help .
  • 111.
  • 112.
    112 Studi Kasus PembuatanGame Bagian ini akan menjabarkan pembuatan permainan sederhana berikut dengan logikanya. Permainan pertama akan menampilkan beberapa fungsi pada Scratch misal penghitungan waktu, pergantian latar belakang pada kondisi-kondisi tertentu dan beberapa kegiatan lainnya. Sedangkan contoh permainan berikutnya, menampilkan permainan yang dapat dimainkan oleh dua orang. Permainan Sederhana Permainan sederhana yang akan dibuat disini dibagi menjadi dua, yakni: permainan untuk satu orang dan permainan dengan dua orang. Pada permainan yang dilakukan oleh dua orang biasanya setiap pemain saling Pong Permainan ini merupakan permainan yang dapat dilakukan oleh dua orang secara bersamaan, satu lawan satu. Setiap pemain (Pemain 1 dan Pemain 2) dapat mengendalikan tongkat yang digunakan untuk memukul bola, score pemain bertambah apabila dapat menempatkan bola sehingga lawan tidak dapat menjangkaunya. Pemain dengan score tertinggi menang.
  • 113.
    113 Langkah 1. MembuatLatar Belakang, Papan Score, Bola dan Tongkat. Membuat Latar Belakang. ▪ Buka Software Scratch. ▪ Pilih “Stage”. ▪ Plih “Background” ▪ Klik kanan pada “sprite 1” dan klik “delete” untuk menghilangkan sprite 1 (kucing). ▪ Gunakan “paint bucket” untuk mewarnai. ▪ Pilih warna hitam dan klik pada latar belakang. ▪ Gunakan “line tool”
  • 114.
    114 untuk membuat garis putihdi tengah latar. ▪ Gunakan “rectangle tool” untuk membuat wilayah “score” dengan dua warna yang kontras pada dua sisi yang saling berlawanan (contoh digunakan warna merah dan biru) ▪ Pemukul dibuat pada “sprite” yang baru. Dengan klik pada “Paint new sprite”, dan gambar pemukul dengan memilih “Rectangle”. Kemudian gambar pemukul. ▪ Setelah menggambar pemukul, klik kanan pada “sprite” pilih “duplicate” untuk membuat pemukul yang digunakan pemain ke 2. ▪ Berikutnya membuat
  • 115.
    115 bola. Gambar bola dibuatpada “sprite” baru dengan klik “Choose sprite from library”. Kemudian memilih benda yang menurut Anda sesuai. ▪ Gambar yang dihasilkan dapat diperbesar atau perkecil sesuai kebutuhan dengan menggunakan fitur “shrink”. Klik kemudian arahkan ke “sprite” yang akan diperkecil dan klik untuk memperkecil “sprite”. Klik kemudian arahkan ke “sprite” yang akan diperbesar dan klik untuk memperbesar. Langkah 2. Membuat program untuk pemukul. Pada langkah ini kita akan membuat kendali/ kontrol pada pemukul, pemukul pertama dikendalikan oleh pemain pertaman dan pemukul kedua dikendalikan oleh pemain kedua. Kendali dari pemukul berupa gerakan keatas-bawah.
  • 116.
    116 • Pilih pemukulyang pertama (sprite 1). Sprite 1 nantinya akan dikendalikan oleh pemain pertama. • Buat script yang memberikan perintah pada pemukul untuk bergerak ke atas apabila ditekan huruf w. • Pembuatan script yang memerintahkan pemukul untuk bergerak ke bawah apabila ditekan huruf a, dapat dibuat dengan memodifikasi perintah sebelumnya. Pada script klik kanan dan pilih “duplicate”, kemudian ganti huruf w dengan huruf a. • Script pada pemukul kedua (sprite 2) dapat dilakukan dengan cara yang hamper serupa, script pada sprite 1 di-drag dan letakkan pada script ke 2. Hal tersebut juga akan membuat duplikasi script tetapi dilakukan pada sprite yang berbeda. • Kemudian ubah dari w menjadi up arrow, untuk gerakan ke atas. Dan down arrow untuk gerakan ke bawah. Langkah 3. Membuat program untuk bola Pada permainan ini, kita akan memprogram bola agar memantul ketika menyentuh tepi. Selain itu, untuk menambah kesulitan dari permainan ini jalur pantulan bola dapat dibuat secara acak. ▪ Pilih sprite Baseball. ▪ Script tersebut memastikan
  • 117.
    117 bahwa pada setiapkali permainan dimulai, posisi bola berada di koordinat x=0 dan y=0. Selanjutnya, setelah bola pada posisi tersebut memastikan jalur bola secara acak diantara 45 sampai 135 (derajat). ▪ Script tersebut memastikan agar bola bergerak secepat 5 langkah dan pada saat mencapai tepi, bola tersebut akan memantul. Langkah 4. Membuat program untuk permainan Pada langkah ini kita memastikan agar pada saat bola menyentuh pemukul maka bola tersebut akan memantul dan permainan dapat dilakukan. ▪ Pilih sprite Baseball. ▪ Pada script yang telah ada sebelumnya, akan ditambahkan fungsi lainnya seperti memastikan bahwa bola akan memantul juga apabila mengenai pemukul. ▪ Script tersebut memastikan bahwa pada saat bola menyentuh sprite 1 dan sprite 2 maka bola akan memantul dengan arah yang berlawanan dengan arah datangnya bola. Kemudian sisipkan script tersebut pada script yang telah dibuat sebelumnya. Kemudian cobalah apa yang terjadi….
  • 118.
    118 Langkah 5. Membuatprogram untuk score Pada langkah ini kita memastikan bahwa sistem score berjalan dengan baik, sehingga permainan berjalan dengan baik pula. ▪ Sistem score dibuat dengan menggunakan variabel yakni: variabel pemain 1 dan pemain 2. Dengan klik “Make a Variable” maka akan muncul kolom “New Variable”, isi “Variable name” dengan Pemain 1 klik “OK”. Kemudian dengan cara yang sama, buat variabel untuk Pemain 2. ▪ Hasil akhirnya di bawah kolom “Make a Variable” akan muncul variabel yang dibuat, yakni: Pemain 1 dan Pemain 2. ▪ Script tersebut memastikan bahwa apabila bola menyentuh warna tertentu maka score akan berubah. Agar penentuan warna sesuai dan script Ingat: Apabila bola menyentuh warna merah maka lawan (Pemain 1) akan mendapat tambahan score, dan sebaliknya.
  • 119.
    119 berjalan seperti yang diharapkan maka pada saatpemilihan warna klik pada warna yang ada di tepi. ▪ Sisipkan script tersebut pada script untuk sprite “Baseball” yang telah ada sebelumnya. ▪ Kemudian cobalah apa yang terjadi…. Langkah 6. Pengembangan Program. Pada permainan yang telah dibuat masih terdapat beberapa hal yang perlu diperbaiki, misal: sistem “score” tidak kembali dari 0-0 apabila pemainan dimulai dari awal atau bola tidak kembali ke tengah setelah salah satu pemain bertambah angkanya serta beberapa perbaikan lainnya agar permainan semakin menarik. ▪ Perbaikan pertama, setiap pemainan dimulai score menunjukkan Pemain 1 :0 dan Pemain 2: 0. Klik pada Data dan pastikan bahwa set Pemain 1 to 0 dan set Pemain 2 to 0.
  • 120.
    120 ▪ Kemudian sisipkan script tersebutpada script yang telah ada. Kemudian cobalah apa yang terjadi…. ▪ Perbaikan berikutnya, kedua, adalah mengembalikan posisi bola ke tengah ((x,y) = (0,0)) setiap salah satu pemain mendapatkan angka. Kemudian sisipkan script tersebut pada script yang telah ada. Kemudian cobalah apa yang terjadi…. ▪ Perbaikan berikutnya, ketiga, adalah perbaikan sistem score. Pada permainan yang telah dibuat, ternyata masih terdapat sedikit masalah, yakni kadang pada saat bola menyentuh bagian merah (atau biru) permainan mulai terlalu cepat sehingga ada baiknya diberikan sedikit jeda dengan script “wait 1 secs”. Kemudian sisipkan script tersebut pada script yang telah ada. Kemudian cobalah apa yang terjadi….
  • 121.
    121 Evaluasi 1 1. Apakahkedua script ini sama? 1. Y a 2. T i d a k 2. Apakah yang akan dibentuk oleh script berikut: 1. 2.
  • 122.
    122 3. 4. 3. Kita akanmembuat script dengan dua karakter seekor kucing dan seekor anjing. Script untuk kucing seperti berikut: Akan dibuat script untuk anjing sedemikian sehingga anjing akan berkata “So there you are!” tepat pada saat kucing muncul dilayar. Manakah script berikut yang sesuai? 1. 2. 3. 4. 4. Kita akan membubat sebuah permainan baru, dengan menggunakan panah untuk mengendalikannya. Apabila
  • 123.
    123 ditekan tombol panahkanan maka karakter pada permainan tersebut akan bergerak ke kanan sejauh 5 langkah, begitu juga sebaliknya apabila ditekan tombol panah kiri. Kita membuat script sebagai berikut, setelah dicoba ternyata terdapat kesalahan. Manakah script dibawah yang dapat berjalan dengan baik. 1. 2. 3. 4. 5. Apa yang dilakukan oleh script berikut:
  • 124.
    124 1. Memeriksa apakahjawabannya YES atau NO 2. Memastikan program tidak berlanjut sebelum user menjawab YES atau NO 3. Merupakan sebuah cara untuk memverifikasi data yang dimasukkan oleh user 4. Semua jawaban benar 5. Semua jawaban salah Evaluasi 2 1. Apa yang terjadi apabila kita membuat script seperti di bawah 2. Kita akan membuat animasi berupa dialog antara dua orang. Script untuk orang pertama: Script untuk orang kedua:
  • 125.
    125 Apakah kedua scripttersebut akan menghasilkan percakapan yang benar?? Apabila terdapat kesalahan, bagaimana memperbaikinya?? 3. Apakah hasil dari script di bawah? Project 1. Dua permainan telah dikonstruksi dan dibahas bagaimana pembuatan dan prosesnya. Sekarang buatlah sebuah permainan.
  • 126.
    126 IMPLEMENTASI SCRATCH DALAMBERBAGAI APLIKASI Piranti Lunak Scratch dapat digunakan untuk berbagai keperluan seperti: • Pembuatan media pembelajaran • Game • Animasi • Film • Video • Aplikasi Lainnya Dibawah ini adalah contoh penggunaan aplikasi scratch untuk membuat Sistem Pendukung Keputusan(Decision Support System): Implementasi Metode SAW dalam Sistem Pendukung Keputusan Pemilihan Smartphone Menggunakan Scratch (Abdilana, R., & Gunawan, I. I., 2022) Implementasi Metode SAW dalam Sistem Pendukung Keputusan Pemilihan Laptop Menggunakan Scratch (Huzaeni, F., & Gunawan, I. I, 2022) Penerapan Metode Simple Additive Weighting (SAW) Dalam Sistem Pemilihan Kamera Menggunakan Scratch (Purnomo, D. C., & Gunawan, I. , 2021). Decision Support System for Determination of Scholarship Using Scratch Programming Based on SAW Method. (Purnomo, D. C., & Gunawan, I. , 2022).
  • 127.
    127 TOPIK TERKAIT Untuk membacatopik-topik lainnya seputar dunia pemrograman, jaringan dan keamanan, silakan merujuk ke penelitian saya lainnya (Abdilana & Gunawan, 2022; Berliana dkk., 2022; Gunawan, 2014, 2019, 2020, 2021a, 2021b, 2021c, 2021d, 2021e, 2021f, 2021g; Gunawan dkk., 2018; Gunawan & Yelmi, 2021; Huzaeni & Gunawan, 2022; Indrayana dkk., 2022; Permatasari dkk., 2018; Pratama dkk., 2022; D. C. Purnomo & Gunawan, 2022; D. Purnomo & Gunawan, 2021; Y dkk., 2022)
  • 128.
    128 PUSTAKA Abdilana, R., &Gunawan, I. I. (2022). Implementasi Metode SAW dalam Sistem Pendukung Keputusan Pemilihan Smartphone Menggunakan Scratch. JIIFKOM (Jurnal Ilmiah Informatika dan Komputer), 1(1), 35–40. Berliana, C. D., Saputra, T. A., & Gunawan, I. (2022). Analisis Serangan dan Keamanan pada Denial of Service (DOS): Sebuah Review Sistematik. JIIFKOM (Jurnal Ilmiah Informatika dan Komputer), 1(2), 33–38. Gunawan, I. (2014). I-POLINK: Indonesian Police Link Model Knowledge Management Investigasi Forensika Digital. https://doi.org/10.13140/RG.2.2.28996.32647 Gunawan, I. (2019). PEMROGRAMAN BAHASA ASSEMBLY MIKROPROSESOR 8086 (1 ed.). Guepedia. Gunawan, I. (2020). Optimasi Model Artificial Neural Network untuk Klasifikasi Paket Jaringan. SIMETRIS, 14(2), 1–5. https://doi.org/10.51901/simetris.v14i2.135 Gunawan, I. (2021a). Keamanan Data: Teori dan Implementasi (1 ed.). Jejak. Gunawan, I. (2021b). Analisis Malware Botnet Proteus Pendekatan Static dan Dinamic. SIMETRIS, 15(1), 12–17. https://doi.org/10.51901/simetris.v15i01.172 Gunawan, I. (2021c). Analisis Keamanan Data Pada Website Dengan Wireshark. JES (Jurnal Elektro Smart), 1(1), 16–19. Gunawan, I. (2021d). Analisis Keamanan Jaringan Wifi Menggunakan Wireshark. JES (Jurnal Elektro Smart), 1(1), 10–12. Gunawan, I. (2021e). Analisis Keamanan Wifi Menggunakan Wireshark. JES (Jurnal Elektro Smart), 1(1), 7–9. Gunawan, I. (2021f). Analisis Layer Aplikasi (Protokol HTTP) menggunakan Wireshark. JES (Jurnal Elektro Smart), 1(1), 13–15. Gunawan, I. (2021g). Analisis Keamanan Aplikasi Android Non Playstore Dengan Metode Digital Forensik Pendekatan Statis Dan Dinamis. SIMETRIS, 15(2), 29–34. https://doi.org/10.51901/simetris.v15i2.225 Gunawan, I., Afrina, & Sofrawida, C. (2018). SISTEM PENDUKUNG KEPUTUSAN PEMILIHAN KARYAWAN TERBAIK PADA LAMOIST LAYERS BATAM. JR : Jurnal Responsive Teknik Informatika, 2(02), 39–61. Gunawan, I., & Yelmi, Y. (2021). Rancang Bangun Robot Pengawas Dokumen Berbasis Raspberry Pi2 dengan Pemrograman Python. Jurnal Ilmu Komputer Dan Bisnis, 12(1), 144–149. Huzaeni, F., & Gunawan, I. I. (2022). Implementasi Metode SAW dalam Sistem Pendukung Keputusan Pemilihan Laptop Menggunakan Scratch. JIIFKOM (Jurnal Ilmiah Informatika dan Komputer), 1(1), 30–34.
  • 129.
    129 Indrayana, T., Warijan,W., Sutarmi, S., Purnomo, D., & Gunawan, I. (2022). Developing systems application based on android as tool for determinant stunting factors in the COVID-19 pandemic era. International Journal of Health Sciences, 6(S1), 257–268. https://doi.org/10.53730/ijhs.v6nS1.4763 Permatasari, R. D., Gunawan, I., & Syahputra, M. R. (2018). RANCANG BANGUN APLIKASI PENANGANAN BAGASI BERBASIS MOBILE WEB PADA PT SRIWIJAYA AIR. Jurnal Teknik Ibnu Sina (JT-IBSI), 3(1). https://doi.org/10.36352/jt-ibsi.v3i1.101 Pratama, T. I. M., Songida, M. D. F., & Gunawan, I. (2022). Analisis Serangan dan Keamanan pada SQL Injection: Sebuah Review Sistematik. JIIFKOM (Jurnal Ilmiah Informatika dan Komputer), 1(2), 27–32. Purnomo, D. C., & Gunawan, I. I. (2022). Penerapan Metode Simple Additive Weighting (SAW) Dalam Sistem Pemilihan Kamera Menggunakan Scratch. JIIFKOM (Jurnal Ilmiah Informatika dan Komputer), 1(1), 16–21. Purnomo, D., & Gunawan, I. (2021). Decision Support System for Determination of Scholarship Using Scratch Programming Based on SAW Method. International Journal of Business and Information Technology, 2, 72–29. https://doi.org/10.47927/ijobit.v2i2 Y, A. K., Alfaren, G., & Gunawan, I. (2022). Analisis Serangan Penetration Testing: Sebuah Review Sistematik. JIIFKOM (Jurnal Ilmiah Informatika dan Komputer), 1(2), 21–26.http://www-cs- students.stanford.edu/~amitp/gameprog.html https://www.interaction-design.org/literature/article/a-brief-history-of-games https://code.tutsplus.com/tutorials/introduction-to-scratch--cms-23855 https://en.scratch-wiki.info/wiki/
  • 130.