LEMBAR JAWABAN UJIAN NIM Nama Mata Kuliah Dosen : : : : 20030005 Satrio Nandito Pemrograman Dasar Hero Wintolo, S.T., M.Kom Kumpulkan lembar ini ke alamat email [email protected] dengan subject Jawaban UTS MK Pemrograman Dasar paling lambat hari Rabu tanggal 16 Desember 2020 pukul 23.59 WIB. 1. Tuliskan cara memasukan biped class di Alice dengan nama biped class alice Jawab : • Buka aplikasi alice • Pilih latar yang akan dijadikan tempat menaruh actor • Pilih pada setup scene • Pilih tanda segitiga kecil terbalik pada sebelah tulisan All Classes • Pilih Biped classes • Klik lagi tanda segitiga kecil terbalik pada sebelah tulisan Biped classes • Model biped class adalah alice, jadi scrool ke kanan cari dan pilih new Alice(_) • Pilih antara kedua jenis Alice yang tersedia • Beri saja Namanya Alice, klik OK, actor biped akan muncul di setup scene • Kembali ke edit code, pilih edit code. 2. Tuliskan kode program yang dapat membuat alice berjalan dengan langkah kaki dan ayunan tangan antara kanan dan kiri bergantian. Jawab : • • • • • • • • Pilih pada bagian objek/actor yang akan diberikan perintah melangkah dan menggerakan tangannya Lalu pada myFirstMethod ambil perintah do together Klik tanda segitiga kecil terbalik yang ada pada actor/objek, lalu pilih getRightShoulder, lalu ambil yang turn, klik dan seret ke dalam perintah do together tadi. Atur turn ke arah RIGHT (0.03), durasi 0.5. Copy perintah tadi lalu tempatkan dibawahnya, ubah getRightShoulder menjadi getLeftShoulder, arah turn tetap di RIGHT (0.03), durasi 0.5. Itu untuk menggerakkan bahu Lalu ambil perintah getRightHip turn di actor dan tempatkan di dalam do together juga atur turn ke BACKWARD (0.06), durasi 0.5 • • • • • • • • • • • • • • • • • • • • • • • • copas dan letakkan pada bawahnya, lalu ubah getRightHip turn menjadi getLeftHip, turn FORWARD (0.03), durasi 0.5 itu untuk menggerakkan panggul lalu ambil perintah do in order, masukkan ke dalam do together tapi dibawahnya perintah yang diatasnya tadi pilih getRightKnee pada actor, pilih turn dan masukkan kedalam perintah do in order tadi atur turn ke FORWARD (0.01), durasi 0.25 copas dan tempelkan dibawahnya, ubah getRightKnee ke getLeftKnee, atur turn ke BACKWARD (0.01), durasi 0.25 itu untuk mengatur gerak lutut actor Kembali ke actor lalu pilih move, drag dan drop ke bawahnya do in order, masih didalam do together, atur move ke FORWARD karena tujuannya berjalan maju, durasinya boleh diatur ke 0.5, atau tidak juga tidak apa-apa. Tambahkan perintah variable, drag and drop diluar kotak, bawahnya perintah do together yang pertama, isi value type dengan DecimalNumber, initializer dengan 0.0, namanya saya kasih (mlaku),lalu klik OK. Tambahkan 1x lagi untuk batas langkahnya, settingannya sama seperti atasnya, setelah jadi ubah angkanya menjadi 5. Di perintah while diklik lalu pilih DecimalNumber, pilih yang ada tanda (>), lalu pilih 0.25 dan 0.25, setelah jadi nanti tinggal ubah angka tersebut menjadi variable yang ditambahkan tadi, kotak pertama itu diisi dengan variable (batas), kotak kedua diisi dengan (mlaku). Fungsinya untuk menjadi batas langkahnya dari berapa sampai berapa. Tambahkan lagi untuk assign, seperti gambar dibawah, pilih variable(mlaku), lalu pilih variable(mlaku) lagi, lalu klik kotak variable mlaku yang kedua, lalu pilih math, pilih mlaku + ???(1). Fungsinya untuk menambah 1x langkah pada actor untuk Kembali ke titik semula, supaya terlihat seperti real. Lalu perintah diatas tadi dicopy dan diletakkan dibawahnya Hanya saja yang Shoulder turnnya dibalik yang awal RIGHT menjadi LEFT (0.06), durasi sama Untuk yang Hip turnnya kebalikannya yang awal BACKWARD,FORWARD menjadi FORWARD,BACKWARD (0.1), durasi sama Untuk yang Knee turnnya sama dengan yang diatas, tapi bagian getRightKnee diubah menjadi getLeftKnee (0.2). Jangan lupa kasih perintah move, drag and drop lagi ke bawahnya perintah terakhir untuk membuat actor, berjalan maju ke depan , pilih FORWARD movenya. Copy perintah do together yang kedua tadi dan letakkan dibawahnya Ubah shoulder ke RIGHT (0.06), durasi sama Hipnya BACKWARD,FORWARD (0.1),durasi sama Turn Knee nya tetap, tapi ubah getLeftKnee menjadi getRightKnee (0.2), durasi sama Tambah move FORWARD dibawahnya (0.25), durasi 0.5 Tambahkan perintah While true untuk looping Gerakan diatas tadi, masukkan do together kedua dan ketiga ke dalam While true. Tambahkan straightenOutJoints untuk me reset Langkah ke awal sebelum ada Gerakan. 3.Tuliskan kode program agar alice pada soal nomor 1 dapat bergerak sesuai dengan tombol arrow pada keyboard up, left, down dan right yang ditekan. Jawab : • Buka pada menu initializeEventListeners • Klik Add Event Listener>pilih keyboard>pilih addArrowKeyPressListener • Tambahkan perintah if true>ambil event isKey>drag and drop ke bagian if>pilih arrows>pilih UP untuk instruksi maju>copy dan tempelkan intruksi dari soal nomer 2 tadi ke dalam perintah if yang telah ditambahkan. • Ubah variable batas menjadi 1>hilangkan turn LEFT pada perintah terakhirnya. • Coba di Run dan lihat hasilnya, tekan tombol panah atas, actor akan berjalan maju • Lalu add Event Listener lagi>tambahkan perintah if>isi if tersebut dengan event isKey>atur arah RIGHT. • Klik pada actor>ambil perintah turn dalam menu Procedures>atur arahnya RIGHT sesuai dengan pengaturan tombol keyboard yang akan kita tekan yaitu panah kanan>atur (0.25), durasi 0.5. • Add Event Listener lagi seperti biasanya>taruh perintah if di dalamnya>drag and drop lagi perintah event isKey ke dalam kotak if>atur keyboard mana yang akan ditekan selanjutnya yaitu LEFT>klik pada actor dan pilih perintah turn>drag and drop dibawah perintah if>atur jaraknya (0.25), durasi 0.5. • Add Event Listener lagi seperti biasanya>tambahkan perintah if>masukkan event isKey kedalam if>pilih arah selanjutnya yaitu keyboard DOWN>copy dan tempelkan perintah yang pertama untuk tombol panah atas tadi di bawahnya if true. • Ubah batas jalan menjadi -5 • Ubah perintah move yang pertama,kedua,dan ketiga dari FORWARD menjadi BACKWARD. 4. Jelaskan maskud program berikut ini. Jawab : Itu adalah program untuk mengatur actor bergerak menggunakan keyboard yang kita tekan. Kalau ke arah atas itu (-), kalau kebawah (+) ditambahkan pada sumbu Y, kalau ke kanan (+), kalau ke kiri itu (-) ditambahkan pada sumbu X. • If(Greenfoot.isKeyDown(“UP”)) itu artinya jika greenfoot mendapatkan perintah dari user saat menekan tombol panah atas. setLocation(getX().getY()-2); itu artinya aktornya bergerak keatas, karena titik 0 sumbu X dan Y pada greenfoot terletak pada pojok kiri atas layar world. • If(Greenfoot.isKeyDown(“DOWN”)) itu artinya jika greenfoot mendapatkan perintah dari user saat menekan tombol panah bawah. setLocation(getX().getY()+2); itu artinya aktornya bergerak kebawah. • • • If(Greenfoot.isKeyDown(“RIGHT”)) itu artinya jika greenfoot mendapatkan perintah dari user saat menekan tombol panah kanan. setLocation(getX()+2.getY()); itu artinya aktornya bergerak ke kanan. If(Greenfoot.isKeyDown(“LEFT”)) itu artinya jika greenfoot mendapatkan perintah dari user saat menekan tombol panah kiri. setLocation(getX()-2.getY()); itu artinya aktornya bergerak ke kiri. If(Greenfoot.isKeyDown(“SPACE”)) itu artinya jika greenfoot mendapatkan perintah dari user saat menekan tombol spasi. addObject(new roket(),getX(),getY()); itu artinya akan menambahkan objek baru bernama roket pada actor.class dan keluarnya/munculnya roket saat dipanggil dengan tombol spasi akan mengikuti kemana perginya actor utama/pesawatnya. 5. Pada sebuah game yang dibuat dengan menggunakan greenfoot, skor dan nyawa actor dapat dibuat dan ditampilkan. Bagaimana cara membuat dan menampilkannya Jawab : • Buka aplikasi greenfoot • Tambahkan latar/background pada World.class • Klik menu edit pada kiri atas tampilan greenfoot • Pilih menu import class • Lalu pilih counter dan tekan OK • Akan muncul counter pada tampilan actor di kanan layar • Klik kanan pada counter tersebut dan pilih new counter(string prefix) • Ketikkan “Nyawa : “ • Lalu klik OK, letakkan dimana saja pada tampilan myWorld • Akan tampil counter berwarna kuning yang menunjukkan jumlah nyawa • Jangan lupa save the world supaya tidak hilang/supaya tidak selalu menambahkan pada tampilan myWorld. • Jika ingin mengedit jumlah score, buka edit code pada myWorld, lalu ganti nyawa.setValue(0) menjadi nyawa.setValue (5). • Untuk score sama saja caranya, tinggal klik kanan pada counter di tampilan actor • Pilih new counter(string prefix), kasih nama “Score : “ • Lalu tekan OK • Atur dimana akan diletakkan counter score, klik di layar myWorld seperti tadi • Save the world