/Ujian_MachineLearning_JCDS05

Panduan Soal Ujian Machine Learning Job Connector Data Science batch 5

Soal Ujian Data Science - Machine Learning

Lintang_Purwadhika

Soal 1 - Hunting Pemain Bola ⚽

FIFA19

Anda adalah seorang manager klub sepakbola ternama yang ingin merekrut pemain sepakbola muda berbakat. Pemain yang Anda targetkan untuk direkrut memiliki kriteria sebagai berikut:

  • Usia (Age) <= 25 tahun,
  • Skill umum (Overall) >= 80 point, dan
  • Potensi (Potential) >= 80 point.

Tersedia 1 buah dataset (.csv) yang memuat data lengkap pemain sepakbola profesional kelas dunia. Unduh dataset via Kaggle: klik di sini. Dilarang keras untuk menyunting/mengubah konten dataset!

Dengan memanfaatkan dataset tersebut, buatlah sebuah file python (.py) atau kernel Jupyter notebook (.ipynb) yang berisi model Machine Learning yang dapat mengklasifikasikan pemain yang Anda targetkan untuk direkrut. Gunakan minimal 3 buah algoritma model machine learning (pilihan model bebas), lalu bandingkan & tentukan model mana yang memiliki akurasi terbaik. Kemudian gunakan model tersebut untuk mengklasifikasikan data pemain di bawah ini apakah tergolong pemain yang patut Anda rekrut atau tidak:

Name Club Nationality Age Overall Potential
Andik Vermansyah Madura United FC lintang Indonesia 27 87 90
Awan Setho Raharjo Bhayangkara FC lintang Indonesia 22 75 83
Bambang Pamungkas Persija Jakarta lintang Indonesia 38 85 75
Cristian Gonzales PSS Sleman lintang Indonesia 43 90 85
Egy Maulana Vikri Lechia Gdańsk lintang Indonesia 18 88 90
Evan Dimas Barito Putera lintang Indonesia 24 85 87
Febri Hariyadi Persib Bandung lintang Indonesia 23 77 80
Hansamu Yama Pranata Persebaya Surabaya lintang Indonesia 24 82 85
Septian David Maulana PSIS Semarang lintang Indonesia 22 83 80
Stefano Lilipaly Bali United lintang Indonesia 29 88 86

Commit & push source code jawaban soal ini ke Github Anda, buatlah repo dengan nama Ujian_Pemain_Bola. Kemudian lampirkan url link repo Github Anda via email ke lintang@purwadhika.com!

lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang

Soal 2 - Scraping Digimon to JSON

Tersedia data lengkap 341 Digimon di laman DigiDB.io. Buatlah sebuah file python (.py) dan gunakan teknik web scraping untuk mengekstrak data di laman tersebut, kemudian export semua data sebagai file JSON (digimon.json) dengan struktur data sebagai berikut:

...,
{
    "no": 46,
    "digimon": "Patamon",
    "image": "http://digidb.io/images/dot/dot096.png",
    "stage": "Rookie",
    "type": "Data",
    "attribute": "Wind",
    "memory": 4,
    "equip slots": 1,
    "hp": 880,
    "sp": 93,
    "atk": 79,
    "def": 74,
    "int": 92,
    "spd": 90
},
...

Ilustrasi dari proses yang diharapkan:

soal2

Commit & push source code jawaban soal ini (beserta file output digimon.json) ke Github Anda, buatlah repo dengan nama Ujian_Digimon_Json, kemudian lampirkan url link repo Github Anda via email ke lintang@purwadhika.com!

lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang lintang

Soal 3 - Digimon Recommendation

Dengan memanfaatkan file output digimon.json dari Soal 2 di atas, buatlah sebuah content-based filtering recommender system dengan menggunakan aplikasi Flask, yang dapat memfasilitasi user untuk menyebutkan Digimon favoritnya & menyajikan rekomendasi 6 Digimon berdasarkan feature: stage, type & attribute Digimon. Aplikasi yang dibuat harus memenuhi syarat minimal berikut:

  1. Server aplikasi akan berjalan di localhost:5000 dan ketika user melakukan GET request via browser akan tampil sebuah halaman HTML sederhana yang memuat 1 buah text input dan 1 buah button. Desain tampilan HTML tidak harus sama seperti contoh soal, utamakan fitur!

    digi_1

  2. User dapat memasukkan nama Digimon favoritnya ke dalam text input yang sudah disediakan. Saat user menekan tombol "Submit", aplikasi akan mengambil data Digimon favorit user di file digimon.json. Jika data ditemukan, maka user akan di-redirect ke localhost:5000/hasil yang berisi halaman HTML, yang menampilkan data seputar Digimon favorit user, disertai dengan data 6 Digimon yang direkomendasikan berdasarkan stage, type & attribute-nya. Data yang ditampilkan untuk tiap Digimon minimal hanya: nama, gambar, stage, type & attribute Digimon. Halaman ini juga dilengkapi 1 buah button untuk kembali ke halaman awal. Desain tampilan HTML tidak harus sama seperti contoh soal, utamakan fitur!

    • Contoh jika user memfavoritkan Agumon lintang:

      digi_2

      digi_3

    • Contoh jika user memfavoritkan Wargreymon lintang:

      digi_4

      digi_5

  3. Namun jika Digimon favorit user tidak ditemukan atau tidak ada di dalam file digimon.json, maka user akan di-redirect ke halaman HTML yang memberikan informasi bahwa data tidak ditemukan. Halaman ini juga dilengkapi 1 buah button untuk kembali ke halaman awal. Desain tampilan HTML tidak harus sama seperti contoh soal, utamakan fitur!

    digi_6

Commit & push source code jawaban soal ini ke Github Anda, buatlah repo dengan nama Ujian_Digimon_Recommendation, kemudian lampirkan url link repo Github Anda via email ke lintang@purwadhika.com!

#HappyCoding ☺️

Lintang Wisesa 💌 lintangwisesa@ymail.com

Facebook | Twitter | Google+ | Youtube | :octocat: GitHub | Hackster