Anda di halaman 1dari 3

Universitas Kristen Petra Surabaya

Fakultas Teknologi Industri


Program Studi Informatika

TES 1 SEMESTER GASAL 2021 – 2022


Mata Kuliah : Konsep Algoritma (TF4537)
Hari / Tanggal : Senin / 20 September 2021 / 12:00
Waktu Pengumpulan : Minggu / 26 September 2021 / 23:59
Sifat Ujian : Take-home
Dosen : Tim Dosen

Soal no. 1:
Dalam pembuatan game, salah satu teknik dasar yang banyak digunakan adalah Collision
Detection, yaitu teknik untuk menentukan apakah 2 objek sedang berbenturan atau tidak.
Buatlah algoritma untuk melakukan versi sederhana dari Collision Detection dengan
1 1
ketentuan-ketentuan berikut ini:
2 1 2 3 4 5 6 7 8 9 2 1 2 3 4 5 6 7 8 9
10 10
3 3
4 4

5 5
6 6

7 7
8 8

Contoh gambar Contoh gambar


9 9
1 2
10 10
● 2 objek yang dicek, objek A dan objek B, selalu berupa persegi panjang yang terletak
di dalam sebuah grid seperti pada contoh gambar di atas.

● Setiap objek memiliki 4 variabel, yaitu x, y, h, dan w. Variabel x dan y adalah koordinat
cell ujung kiri atas dari masing-masing objek, sedangkan h dan w masing-masing
adalah tinggi (height) dan lebar (width) objek. Untuk mengakses masing-masing
variabel di dalam pseudocode, tuliskan menggunakan notasi [Nama objek] [titik]
[Variabel]. Perhatikan beberapa contoh di bawah ini yang mengacu pada contoh
gambar di atas:
○ Contoh gambar 1: A.x bernilai 4, A.y bernilai 2, A.h bernilai 3, A.w bernilai 5
B.x bernilai 2, B.y bernilai 6, B.h bernilai 7, B.w bernilai 3
○ Contoh gambar 2: A.x bernilai 2, A.y bernilai 4, A.h bernilai 5, A.w bernilai 6
B.x bernilai 7, B.y bernilai 2, B.h bernilai 2, B.w bernilai 8

1|Page
Universitas Kristen Petra Surabaya
Fakultas Teknologi Industri
Program Studi Informatika

● Kedua objek dikatakan berbenturan ketika ada minimal 1 cell yang sama-sama
termasuk ke dalam 2 objek tersebut, seperti pada contoh gambar 1. Sementara,
kedua objek pada contoh gambar 2 dikatakan tidak berbenturan.

Kerjakan poin-poin berikut ini! Untuk masing-masing poin, berikan juga penjelasan singkat
tentang cara berpikir anda dalam membuat solusi yang diminta! Jika ada, sebutkan juga
dasar-dasar Computational Thinking yang anda terapkan dalam proses pembuatan solusi
tersebut!

a. Buatlah algoritma dalam bentuk pseudocode untuk melakukan Collision Detection


antara 2 objek (A dan B) sesuai dengan ketentuan-ketentuan di atas! Input yang
diberikan adalah objek A dan B beserta semua variabelnya; output yang diharapkan
adalah apakah terjadi collision atau tidak.

b. Buatlah algoritma dalam bentuk pseudocode untuk menghitung berapa cell yang
terlibat dalam collision antara objek A dan objek B! Sebagai contoh, pada contoh
gambar 1, collision antara objek A dan objek B melibatkan 3 cell. Input yang diberikan
adalah objek A dan B beserta semua variabelnya; output yang diharapkan adalah
jumlah cell yang terlibat dalam collision.

c. Buatlah algoritma dalam bentuk pseudocode untuk melakukan Collision Detection


bukan hanya pada 2 objek, tapi pada objek-objek sejumlah n! Input yang diberikan
adalah n objek beserta semua variabelnya; output yang diharapkan adalah pasangan-
pasangan objek mana saja yang mengalami collision.

Soal no. 2:
Pada tahun 50XX, proses Terraforming pada planet Mars sudah selesai sehingga Mars sudah
dapat ditinggali oleh manusia. Salah satu permasalahan utama yang dihadapi tentunya
adalah cara transportasi antara Bumi dan Mars. Pada waktu itu, teknologi transportasi yang
digunakan adalah menggunakan teleporter.

Berikut ini adalah ketentuan-ketentuan penggunaan dari teleporter tersebut:


● Teleporter dapat digunakan dua arah, baik Bumi ke Mars maupun sebaliknya.

● Untuk menggunakan teleporter, setiap orang harus membawa minimal 1 teleport key.
Ketika sebuah teleport key sudah digunakan untuk teleport dari Bumi ke Mars, tentu
saja harus ada orang yang teleport kembali ke Bumi agar teleport key tersebut bisa
digunakan lagi oleh orang lain.
● Waktu yang dibutuhkan untuk melakukan proses teleport proporsional dengan massa
masing-masing orang. Untuk menyederhanakan perhitungan, asumsikan tiap 1 kg

2|Page
Universitas Kristen Petra Surabaya
Fakultas Teknologi Industri
Program Studi Informatika

membutuhkan waktu 1 detik. Sebagai contoh, seseorang dengan berat badan 60 kg


membutuhkan waktu 60 detik untuk melakukan teleport.

● Teleporter dapat digunakan bersamaan oleh lebih dari satu orang, dengan syarat tiap
orang membawa minimal 1 teleport key. Tetapi, ketika lebih dari satu orang
menggunakan teleporter bersamaan, maka waktu yang dibutuhkan untuk
menyelesaikan proses teleport akan mengikuti waktu terlama. Misalnya, jika 2 orang
dengan berat badan masing-masing 60 kg dan 80 kg menggunakan teleporter
bersamaan, maka waktu yang dibutuhkan adalah 80 detik.

Kerjakan poin-poin berikut ini! Untuk masing-masing poin, berikan juga penjelasan singkat
tentang cara berpikir anda dalam membuat solusi yang diminta! Jika ada, sebutkan juga
dasar-dasar Computational Thinking yang anda terapkan dalam proses pembuatan solusi
tersebut!

a. Buatlah algoritma dalam bentuk pseudocode untuk menyeberangkan 5 orang dengan


berat badan yang berbeda-beda menggunakan 2 teleport key, sehingga total waktu
yang dibutuhkan untuk menyeberangkan kelima orang tersebut secepat mungkin!

b. Buatlah algoritma dalam bentuk pseudocode untuk menyeberangkan n orang dengan


berat badan yang berbeda-beda menggunakan 2 teleport key, sehingga total waktu
yang dibutuhkan untuk menyeberangkan n orang tersebut secepat mungkin!

c. Buatlah algoritma dalam bentuk pseudocode untuk menyeberangkan n orang dengan


berat badan yang berbeda-beda menggunakan m teleport key, sehingga total waktu
yang dibutuhkan untuk menyeberangkan n orang tersebut secepat mungkin!

~ Selamat mengerjakan ~

Ketentuan pengumpulan jawaban:


● Jawaban dikumpulkan dalam bentuk file (.pdf) dengan nama file:
KA_Tes1_[Kelas]_[NRP].pdf
Contoh: KA_Tes1_A_C14219999.pdf
● Pastikan Nama dan NRP tetap dituliskan di dalam file pdf tersebut
● Upload file jawaban sesuai dengan instruksi pada masing-masing kelas

3|Page

Anda mungkin juga menyukai