Anda di halaman 1dari 13

Silahkan gunakan lembar ini untuk navigasi

Python-1

Python-2

Python-3

Python-4

Python-5
Soal 1

Dalam permainan catur, terdapat bermacam-macam buah catur, salah satunya adalah "kuda" (knight).
Buah catur ini unik karena merupakan satu-satunya buah catur yang dapat melompati buah catur
lainnya. Langkah kuda juga cukup unik yaitu membentuk huruf L, dimana kuda akan melangkah 1-2
langkah ke arah mata angin, lalu berbelok dan melangkah lagi sehingga kuda melangkahi 3 kotak total.

□ □ □ □ □ □ □ □ Visualisasi langkah kuda.


□ □ □ ■ □ ■ □ □ K : Kuda
□ □ ■ □ □ □ ■ □ ■ : Langkah yang diperbolehkan
□□□□K□□□
□□■□□□■□
□□□■□■□□
□□□□□□□□
□□□□□□□□

Diberikan papan catur berukuran 8x8. Buatlah fungsi dengan input posisi awal dan posisi akhir kuda,
serta mengoutput banyak langkah paling sedikit yang dibutuhkan kuda untuk bergerak dari posisi awal
ke posisi akhir.

Catatan: Notasi untuk koordinat pada papan permainan dibebaskan, namun berikan penjelasan atas
sistem koordinat yang digunakan.

Contoh running program (menggunakan notasi catur):

knight(a1, h8)
>>> 6

knight(a1, a2)
>>> 2
TEKAN UNTUK BALIK KE NAVIGASI

LEMBAR INI SENGAJA DIKOSONGKAN


SOAL 2

Salah satu transportasi untuk berpergian jarak jauh dengan cepat adalah pesawat. Hampir di setiap
negara memiliki paling tidak satu bandara sehingga akses penerbangan dapat dipakai. Namun, dengan
batasan banyaknya bahan bakar yang dapat ditampung oleh satu maskapai, maka jalur penerbangan
jarak jauh mesti ditempuh dengan melakukan transit di berbagai selain bandara destinasi tujuan.

Misal diberikan list kode masing-masing bandara dan rute penerbangan sebagai berikut:

Airports = ["LJR", "CDG", "HKG", "DXB", "AMS", "FRA", "SIN", "BKK", "ICN", "MAD", "NRT", "KUL",
"FCO", "JFK", "IST", "ZRH", "TPE", "BCN", "DUB", "DOH"]

Routes = [["DOH", "ZRH"], ["ZRH", "KUL"], ["KUL", "DOH"], ["KUL", "HKG"], [“HKG”, “DXB”], ["HKG",
"AMS"], ["AMS", "FRA"], ["FRA", "SIN"], ["FRA", "BKK"], ["SIN", "ICN "], ["BKK", "ICN"], ["ICN",
"BCN"], ["BCN", "DXB"], ["DXB", "TPE"], ["DXB", "LJR"], ["TPE", "LJR"], ["LJR", "CDG"], ["CDG",
"DUB"], ["DUB", "MAD"], ["MAD", "NRT"], ["NRT", "CDG"], ["CDG", "ZRH"], ["BCN", "JFK"], ["JFK",
"IST"], ["IST", "FCO"], ["FCO", "MAD"]]

Misalkan kamu adalah seorang jomblo akut yang sangat suka berkeliling dunia sendirian dengan
menggunakan pesawat, dan sudah menjadi suatu kebiasaan bagi kamu untuk selalu memeriksa jalur
penerbangan yang akan dilalui. Buatlah program yang dapat menentukan jalur penerbangan yang akan
dilalui dengan jumlah rute seminimum mungkin, dan dengan input titik awal destinasi serta titik akhir
destinasi.

Note: ["DOH", "ZRH"] mengindikasikan bahwa rute tersebut merupakan rute satu jalur dimana DOH
merupakan destinasi awal dan ZRH merupakan destinasi akhir.

Sample Input:
[“HKG”, “DUB”]

Sample Output:
4

Penjelasan Sample:
Titik awal destinasi adalah HKG dan titik akhir destinasi adalah DUB. Dengan data rute yang diberikan
dapat dilihat bahwa jalurnya akan seperti 𝑯𝑲𝑮 → 𝑫𝑿𝑩 → 𝑳𝑱𝑹 → 𝑪𝑫𝑮 → 𝑫𝑼𝑩 dan merupakan jalur
dengan jumlah rute yang paling minimum, sehingga jalur penerbangan kamu akan melewati empat rute
penerbangan.
Test Cases: (Jawablah dengan menggunakan uji kasus di bawah ini)
Test 1 = [“DOH”, “BCN”]
Test 2 = [“FCO”, “KUL”]
Test 3 = [“AMS”, “TPE”]
Test 4 = [“FRA”, “BCN”]
TEKAN UNTUK BALIK KE NAVIGASI
LEMBAR INI SENGAJA DIKOSONGKAN
SOAL 3
Dengklek adalah seorang pelukis abstrak. Ia menggambar dengan cara membuat n lingkaran dengan titik
pusat (𝑥𝑖 , 𝑦𝑖 ) dan radius 𝑟𝑖 untuk setiap lingkaran secara acak, di mana 𝑥𝑖 , 𝑦𝑖 , 𝑟𝑖 bilangan real positif
acak. Kemudian, ia mewarnai area yang menjadi irisan dari semua lingkaran tersebut.

Dengklek menggambarkannya pada kanvas berukuran 𝑝 × 𝑙. Kanvas tersebut bisa Anda pandang
sebagai bidang dimensi dua di kuadran satu koordinat Cartesius yang berimpit dengan sumbu x dan y.
Setiap lingkaran yang tergambar haruslah berbentuk lingkaran utuh, tidak boleh terpotong oleh sisi tepi
kanvas.

Permasalahannya, Dengklek membutuhkan estimasi luas area yang diarsir tersebut untuk mengetahui
banyaknya cat air yang dibutuhkan. Bantulah Dengklek membuat simulasi tersebut menggunakan
Python. Berikan juga hasil gambar (terutama area yang diarsir) jika memungkinkan. Anda dapat
menggunakan metode estimasi apapun baik untuk menghitung maupun menggambar hasil lukisannya.

Input: 𝑛, 𝑝, 𝑙

Output: (1) luas area yang menjadi irisan semua lingkaran; (2) gambar

Library dan metode estimasi yang ingin digunakan dibebaskan kepada Anda.
TEKAN UNTUK BALIK KE NAVIGASI

LEMBAR INI SENGAJA DIKOSONGKAN


SOAL 4

Klasifikasi biner adalah salah satu cabang dalam ilmu pembelajaran mesin (Machine Learning) yang
menggunakan suatu fungsi untuk menentukan suatu data termasuk ke dalam suatu kelompok atau
tidak. Cara kerja dari klasifikasi biner terlihat seperti gambar dibawah ini.

Variabel 𝑥1 , … , 𝑥𝑛 merupakan suatu variabel bebas dan memiliki bobot tertentu 𝑤𝑛 . Kemudian
masuk ke suatu hidden layer yang berisi operasi matematika. Pada hidden layer ini semua fitur-fitur
yang dimasukkan akan diolah dan diinterpretasikan melalui output 𝑦 = 𝜎(𝑧). Secara matematis,
model di atas bisa ditulis dengan persamaan
𝑁

𝑦 = 𝜎 (∑ 𝑥𝑖 𝑤𝑖 )
𝑖=1

𝜎 disini adalah fungsi aktivasi. Tujuannya adalah supaya model fit untuk data yang nonlinear

Fungsi aktivasi yang biasa digunakan oleh peneliti untuk mengerjakan klasifikasi biner yaitu:

1
𝜎(𝑧) =
1 + 𝑒 −𝑧

Tugas: Lakukan Klasifikasi biner pada dataset iris yang bisa didownload pada link di bawah. Kemudian
ambil data yang hanya memuat spesies iris-setosa dan iris-vesicolor. Kemudian bagi data untuk training
dan testing dengan proporsi masing-masing (80% dan 20%). Lakukan training dan testing. Lalu hitung
akurasi model pada data testing dengan formula

𝑇𝑃 + 𝑇𝑁
𝐴𝑐𝑐 =
𝑇𝑃 + 𝑇𝑁 + 𝐹𝑃 + 𝐹𝑁

Dataset: https://www.kaggle.com/uciml/iris?select=Iris.csv
Algoritma:

Langkah-langkah dalam membuat adalah sebagai berikut:

1. Rancang model

2. Input data
3. Bagi data menjadi 2 , yaitu training data (80%) dan test data (20%).
4. Definisikan bobot secara random. Misal 0.5
5. Definisikan Learning rate (biasanya 𝜂 = 0,1)
6. Definisikan fungsi Sumproduct, Sigmoid
7. Buat fungsi untuk update bobot
𝑤𝑖+1 = 𝑤𝑖 + 𝜂(𝑦𝑖 − 𝑦̂𝑖 )𝑥𝑖
8. Lakukan step 5 sampai data training habis

Hint:

1. Variabel bebasnya (𝑥1 , … , 𝑥𝑛 ) adalah nilai dari kolom sepal length, sepal width, petal
length, petal width.
2. Variabel terikatnya adalah spesies. 0 utuk iris-setosa, 1 untuk iris-vesicolor
3. Bobot 𝑤𝑛 dibuat random, biasanya semua dibuat sama yaitu 0.5 Nanti seiring berjalannya
learning dari training data, bobot akan terus berubah sehingga didapatkan bobot akhir
setelah semua data training habis.

Note: Dilarang menggunakan package instan seperti (Scikit-Learn, Tensorflow, Pytorch, etc).
TEKAN INI UNTUK BALIK KE NAVIGASI

LEMBAR INI SENGAJA DIKOSONGKAN


SOAL 5

Buatlah suatu fungsi ‘regresi(X, Y)’ yang menerima 2 input kumpulan data numerik, yaitu X dan Y, yang
dapat berupa list, array ataupun series. X adalah variabel bebas sedangkan Y adalah variabel terikat yang
berkorelasi relatif secara linear terhadap X. Selanjutnya, fungsi tersebut akan menampilkan:

• Kumpulan data X dan Y


• Fungsi regresi linear antara X dan Y. Fungsi tersebut berbentuk 𝑦′ = 𝑎 + 𝑏𝑥, dimana

∑𝑦 ∑𝑥 2 − ∑𝑥∑𝑥𝑦 𝑛∑𝑥𝑦 − ∑𝑥∑𝑦


𝑎= , 𝑏=
𝑛∑𝑥 2 − (∑𝑥)2 𝑛∑𝑥 2 − (∑𝑥)2

• Nilai RMSE atau Root Mean Squared Error, merupakan akar dari rata-rata jumlah kuadrat antara
selisih dari data-data pada Y dengan nilai y’ yang bersesuaian, yaitu

2
√∑𝑛𝑖=1(𝑦𝑖 − 𝑦𝑖′ )
𝑅𝑀𝑆𝐸 =
𝑛

• Visualisasi grafik dari scatter plot data-data X dan Y, dan juga garis linear yang terbentuk dari
fungsi 𝑦′ = 𝑎 + 𝑏𝑥 tersebut.
• Program akan meminta input pada pengguna apakah akan memprediksi nilai y jika diberikan
suatu nilai x. Selanjutnya fungsi akan mengeluarkan nilai y sesuai dengan fungsi regresi yang
telah didapatkan.

Note: Gunakan library Numpy, Pandas, Sympy, dan Matplotlib. Jangan gunakan selain itu ya! (Termasuk
Scikit-Learn juga tidak boleh).

Selanjutnya, gunakan fungsi tersebut untuk memasukkan data pada file yang dilampirkan bersamaan
dengan soal berikut, atau bisa didownload di link ini:

https://docs.google.com/spreadsheets/d/1JdgT9ncLF4kswdf8jfmADsCnS4Uum4vq/edit?usp=sharing&o
uid=101384037637944502015&rtpof=true&sd=true

Berikut contoh output yang dihasilkan


TEKAN INI UNTUK KEMBALI KE NAVIGASI

Anda mungkin juga menyukai