Pilihan Ganda (35 Soal)
1. Godot adalah sebuah aplikasi FOSS (Free and Open Source Software). Pengertian dari free
dan open source adalah ….
a) Aplikasi bersifat gratis
b) Aplikasi bersifat ringan dan mudah digunakan
c) Aplikasi yang gratis dan kodenya dapat diakses oleh semua orang
d) Aplikasi memiliki biaya berlangganan, dan kodenya bersifat privat
e) Aplikasi yang bebas digunakan oleh siapa saja
2. Salah satu bahasa pemrograman yang digunakan di Godot adalah GDScript. Bahasa ini
diturunkan dari bahasa pemrograman populer bernama ….
a) C++
b) Python
c) Java
d) JavaScript
e) Anaconda
3. Untuk membuat variabel di GDScript, digunakan keyword ….
a) var
b) func
c) def
d) variable
e) extends
4. Untuk mendefinisikan sebuah fungsi, digunakan keyword ….
a) var
b) func
c) def
d) variable
e) functions
Untuk soal nomor 5-11, perhatikan cuplikan kode berikut:
var nama_depan = "Muhammad"
var nama_belakang = "Runaldo"
var umur = 16
var berat = 60.5
var ingin_kuliah = true
5. Jenis variabel nama_depan dan nama_belakang adalah ….
a) String
b) Float
c) Boolean
d) Integer
e) Text
6. Jenis variabel umur adalah ….
a) String
b) Float
c) Boolean
d) Integer
e) Text
7. Jenis variabel ingin_kuliah adalah ….
a) String
b) Float
c) Boolean
d) Integer
e) Text
8. Perintah print(pesan) berfungsi untuk menampilkan pesan yang dimasukkan di console
aplikasi. Jika perintah print(nama_depan) dijalankan, yang akan muncul di console adalah
….
a) nama_depan
b) Muhammad
c) ERROR
d) “nama_depan“
e) “Muhammad”
9. Jika perintah print(nama_depan + nama_belakang) dijalankan, yang akan muncul di console
adalah ….
a) Muhammad
b) Muhammad Runaldo
c) Runaldo
d) Muhammad Ronaldo
e) MuhammadRunaldo
10. Jika perintah print(umur + umur) dijalankan, yang akan muncul di console adalah ….
a) umur
b) 16
c) 18
d) 32
e) 60.5
11. Jika perintah print(umur * 10) dijalankan, yang akan muncul di console adalah ….
a) 16
b) 18
c) 32
d) 160
e) 320
Untuk soal nomor 12-15, perhatikan cuplikan kode berikut:
func kuadrat(num):
return num*num
func vol_balok(panjang,lebar,tinggi):
return panjang * lebar * tinggi
func luas(angka):
return kuadrat(jari) * 3.14
12. Jika perintah print(kuadrat(10)) dijalankan, yang akan muncul di console adalah ….
a) kuadrat
b) 10
c) kuadrat10
d) 100
e) 1000
13. Jika perintah print(vol_balok(2,3,4)) dijalankan, yang akan muncul di console adalah ….
a) 12
b) 24
c) 234
d) 1234
e) 12345
14. Jika perintah print(luas(10)) dijalankan, yang akan muncul di console adalah ….
a) 10
b) 100
c) 314
d) luas10
e) luas100
15. Di Godot, semua elemen dari sebuah aplikasi dibangun dengan ….
a) Node
b) Button
c) Files
d) Projects
e) Label
Untuk soal nomor 16-18, perhatikan sketsa desain aplikasi
berikut:
16. Jenis Node yang paling cocok digunakan untuk A dan B adalah ….
a) Label
b) LineEdit
c) Button
d) Control
e) Text
17. Jenis Node yang paling cocok digunakan untuk C adalah ….
a) Label
b) LineEdit
c) Button
d) Control
e) Text
18. Jenis Node yang paling cocok digunakan untuk D adalah ….
a) Label
b) LineEdit
c) Button
d) Control
e) Text
Perhatikan kode untuk aplikasi penghitung luas lingkaran berikut:
1 func _on_button_pressed():
2 var jari = $[Link]
3 var luas = 3.14 * jari * jari
4 return luas
5 pass
Kode ini akan dijalankan jika tombol “HITUNG” dipencet.
19. Ketika kode dijalankan, muncul error sebagai berikut:
Invalid operands ‘String’ and ‘float’ in operator *
Penyebab error ini ada di baris yang ditunjukkan oleh nomor ….
a) 1
b) 2
c) 3
d) 4
e) 5
20. Untuk memperbaiki kode tersebut, yang bisa dilakukan adalah dengan ...
a) menghapus tanda : pada baris 1.
b) Baris 2 menjadi: var jari = float($[Link])
c) Baris 3 menjadi: var luas = 3,14 * jari * jari
d) Baris 4 menjadi: return jari
e) Menghapus pass pada baris 5
Untuk soal 21-28, perhatikan gambar berikut
Sebuah aplikasi penghitung BMI didesain seperti gambar di atas. Kode berikut dijalankan ketika
Button1 diklik:
1 func _on_button1_pressed():
2 var berat = float($[Link])
3 var tinggi = $[Link]
4 var bmi = berat / (tinggi * tinggi)
5 if bmi >= 40:
6 $[Link] = "Overweight"
7 elif bmi > 25:
8 $[Link] = "Gemuk"
9 elif bmi >= 15:
10 $[Link] = "Normal"
11 else:
12 $[Link] = "Kurus"
21. Pada kode di atas, jenis variabel berat adalah ….
a) String
b) Integer
c) Float
d) Boolean
e) Text
22. Pada kode di atas, jenis variabel tinggi adalah ….
a) String
b) Integer
c) Float
d) Boolean
e) Text
23. Jika kode tersebut dijalankan, akan muncul error. Penyebab errornya ada pada baris ke ….
a) 2
b) 3
c) 4
d) 11
e) 12
24. Untuk memperbaiki error tersebut, dapat dilakukan ….
a) Baris 2 menjadi: var berat = $[Link]
b) Baris 3 menjadi: var tinggi = str($[Link])
c) Baris 4 menjadi: var bmi = berat / tinggi * tinggi
d) Baris 11 menjadi: elif:
e) Baris 12 menjadi: $[Link] = Kurus
25. Pada kode di atas, jenis variabel bmi adalah ….
a) String
b) Integer
c) Float
d) Boolean
e) Text
26. Jika berat siswa adalah 100 kg dan tingginya 2 m, nilai yang ditampilkan di Label Output
(Label6) adalah ….
a) Overweight
b) Gemuk
c) Normal
d) Kurus
e) Output
27. Jika BMI yang didapatkan persis bernilai 25, yang akan ditampilkan aplikasi di Output
adalah ….
a) Overweight
b) Gemuk
c) Normal
d) Kurus
e) Output
28. Jika BMI yang didapatkan adalah 10, yang akan ditampilkan aplikasi di Output adalah ….
a) Overweight
b) Gemuk
c) Normal
d) Kurus
e) Output
Untuk soal nomor 29-35, perhatikan kode berikut
var nama = "Muhammad"
var kelas = 11
var alamat = "Mataram"
var umur = "17"
var iq = 135
func print_alamat():
print("Alamat saya adalah" + alamat)
func say_hello():
print("Hello, nama saya " + nama)
func rate_iq(num):
if num > 130:
print("Jenius")
elif num > 120:
print("Sangat tinggi")
elif num > 110:
print("Cerdas")
elif num > 90:
print("Rata-rata")
elif num > 80:
print("Di bawah rata-rata")
elif num >= 70:
print("Rendah")
elif num < 70:
print("Sangat rendah")
29. Pada kode tersebut, ada tiga variabel yang berjenis String. Variabel tersebut adalah ….
a) nama, kelas, dan alamat
b) nama, alamat, dan umur
c) nama, kelas, dan umur
d) kelas, umur, dan alamat
e) nama, umur, dan alamat
30. Output jika fungsi print_alamat() dijalankan adlaah ….
a) Mataram
b) Alamat saya adalah
c) Alamat saya adalah Mataram
d) Alamat saya adalah di Mataram
e) Alamat saya adalahMataram
31. Output jika fungsi say_hello() dijalankan adalah ….
a) Hello, nama saya Mataram
b) Hello, nama saya Muhammad
c) Hello, nama sayaMuhammad Mataram
d) Hello, nama sayaMuhammad
e) Hello, nama saya
32. Output jika fungsi rate_iq(iq) dijalankan adalah ….
a) Jenius
b) Sangat tinggi
c) Cerdas
d) Rata-rata
e) Di bawah rata-rata
33. Output jika fungsi rate_iq(120) dijalankan adalah ….
a) Jenius
b) Sangat tinggi
c) Cerdas
d) Rata-rata
e) Di bawah rata-rata
34. Output jika fungsi rate_iq(95) dijalankan adalah ….
a) Jenius
b) Sangat tinggi
c) Cerdas
d) Rata-rata
e) Di bawah rata-rata
35. Output jika fungsi rate_iq(70) dijalankan adalah ….
a) Cerdas
b) Rata-rata
c) Di bawah rata-rata
d) Rendah
e) Sangat rendah
Isian
Perhatikan desain aplikasi kalkulator perkalian berikut
Lengkapilah kode berikut untuk soal isian nomor 1-5
#Aplikasi kalkulator
func _on_button1_pressed():
var angka1 = ... #Soal Nomor 1
var angka2 = ... #Soal Nomor 2
var hasil = angka1 * ... #Soal Nomor 3
$[Link] = ... #Soal Nomor 4
if hasil ... ... : #Soal Nomor 5
print("It's over 9000!!!")