Halo apa kabar semuanya, semoga kita dalam keadaan sehat selalu ya. Kembali lagi bersama saya Salomo yang kali ini saya secara khusus memperkenalkan brand baru saya bernama HERMIT.ID yang nanti ke depannya semua jurnal penelitian yang bersifat analisis data akan saya sajikan menggunakan nama HERMIT.ID. Apa itu HERMIT.ID secara mendetil akan saya ceritakan di bab paling terakhir, jadi kalau penasaran langsung saja klik tabnya.
Pada kesempatan ini saya akan menggunakan data Pokemon untuk melakukan utak atik data. Niat saya publishment kali ini akan menjadi seri yang pertama dari 3 keseluruhan seri yang akan saya publish. Seri pertama ini akan mencakup Exploratory Data Analysis (EDA) yang sifatnya untuk lebih dalam mengerti data. Lalu nantinya seri kedua saya akan coba menerapkan Unsupervised Learning dan yang ketiga adalah Supervised Learning (semoga saya konsisten dan kondisi kesehatan saya tidak kenapa2).
Lalu mengapa Pokemon? Kalau pertanyaannya itu akan saya jawab “karena lucu” wkwkwkwkwk. Pokemon sudah sangat terkenal di belahan dunia ini, berawal dari manga Jepang yang menceritakan perjalanan seorang anak dalam mengumpulkan monster-monster yang nantinya dapat dilatih untuk bertarung satu sama lain sehingga bisa mendapatkan gelar trainer terbaik dunia (terdengar seperti perbudakan ya).
Data yang saya gunakan berasal dari Kaggle yang berisi 1000++ Pokemon yang siap untuk dianalisis dari berbagai generasi mulai dari yang pertama hingga generasi kedelapan.
Baik, tanpa berlama-lama lagi, GOTTA CATCH ’EM ALL!
Seperti yang telah disebutkan sebelumnya, kita menggunakan dataset Pokemon yang terdiri dari 1032 Pokemon dan 44 variabel. Itu berarti ada 45.408 titik data yang dapat kita gunakan untuk membuat analisis dan bahkan mungkin permodelan matematika untuk prediksi nantinya.
44 variabel tersebut adalah :
* Number adalah nomor Pokemon di National Pokedex
* Name adalah nama dari Pokemon
* Type.1 adalah tipe utama dari Pokemon
* Type.2 adalah tipe kedua dari Pokemon
* Abilities adalah list dari semua kemampuan dari
Pokemon
* HP adalah health pont dari Pokemon
* Att adalah nilai penyerangan/attack dari Pokemon
* Def adalah nilai pertahanan/defense dari Pokemon
* Spa adalah nilai special attack dari Pokemon
* Spd adalah nilai special defense dari Pokemon
* Spe adalah nilai kecepatan/speed dari Pokemon
* BST adalah jumlah dari HP, Att, Def, Spa, Spd, Spe
* Mean adalah nilai rata-rata dari BST
* Standard Deviation adalah standard deviasi untuk status
Pokemon
* Generation adalah generasi Pokemon
* Experience Type adalah klasifikasi peningkatan level dari
Pokemon
* Experience to level 100 adalah pengalaman yang dibutuhkan
untuk level 100
* Final Evolution adalah apakah Pokemon sudah final
berevolusi
* Catch Rate adalah persentase keberhasilan menangkap
Pokemon
* Legendary adalah klasifikasi Pokemon legendaris
* Mega Evolution adalah klasifikasi mega evolusi
Pokemon
* Alolan Form adalah klasifikasi bentuk Alolan
Pokemon
* Galarian Form adalah klasifikasi bentuk Galarian
Pokemon
* Against{} adalah efektifitas Pokemon menghadapi tipe lain
semakin besar semakin lemah
* Height adalah tinggi Pokemon
* Weight adalah berat Pokemon
* BMI adalah body mass index Pokemon
Pada bab ini kita akan membahas Pokemon berdasarkan HP, Att, Def, Spa, Spd, Spe saja
Gambar di atas adalah histogram dari masing-masing status Pokemon, gunanya adalah untuk melihat bagaimana persebaran data berdasarkan statusnya. Sebagai contoh untuk atribut Att yang dapat kita lihat adalah bagaimana kebanyakan dari Pokemon memiliki nilai Att di sekitar 50 dan 60 ya walaupun ada yang menjulang di 80 dan 100 ya. Ini keunikan data Pokemon karena memang data ini adalah data buatan bukan berdasarkan dunia nyata jadi akan sering ditemukan outlier seperti ini. Tunggu saja nanti ketemu Pokemon yang badannya kecil tapi beratnya 9000 kilo hahahahaha. Silahkan untuk dipelajari atribut status yang lain.
Selain persebaran atribut status di atas, selanjutnya yang kita lakukan adalah mengetahui bagaimana korelasi dari masing-masing status ini terhadap status yang lainnya.
Pada grafik di atas jika warnanya semakin kuning berarti semakin kuat korelasi positifnya, sedangkan semakin hitam makan semakin kuat korelasi negatifnya dan jika putih maka tidak memiliki korelasi.
Kita ambil angka yang lebih besar dari 0.5 untuk melihat korelasi positifnya. Atribut Spd ternyata memiliki korelasi positif sebesar 0.53 terhadap Def dan 0.51 terhadap Spd jadi untuk saat ini kita dapat berasumsi bahwa jika nilai Spd Pokemon dipengaruhi nilai Def dan Spa-nya. Apakah atribut Spd akan menjadi atribut yang penting untuk Pokemon? Di seri ketiga akan kita bahas.
Selain itu ada yang menarik yaitu hubungan antara Def dan Spe. Tertulis -0.01, mendekati 0 dan cenderung memiliki korelasi negatif. Kita dapat ambil asumsi bahwa tidak ada hubungan Def dan Spd pada Pokemon, jika ada sedikit pun maka korelasinya negatif yang berarti jika nilai Def naik maka nilai Spe akan turun atau sebaliknya.
Dalam dunia game, manga atau pun anime sistem element, class, type atau apa pun namanya sepertinya menjadi sesuatu hal yang wajib dan kadang menjadi penentu dalam sebuah pertarungan. Misalnya element api sekuat apapun tidak dapat secara optimal melancarkan serangannya pada musuh dengan air, akan tetapi sebaliknya element air akan mendapatkan advantage ketika menyerang element api dan sebagainya.
Pokemon memiliki hal serupa juga dan hebatnya Pokemon memiliki 18 tipe dimana masing-masing Pokemon ada yang memiliki 2 tipe sekaligus. Tentu seorang trainer Pokemon yang hebat harus mengerti semuanya kan? hahahahaha
Di atas adalah Tipe 1 yang merupakan tipe utama dari Pokemon. Tidak mungkin Pokemon tidak memiliki tipe utama, bahkan dewa Pokemon sekalipun. Berdasarkan grafik di atas yang paling banyak adalah Pokemon bertipe Water atau air. Apakah kalian ingat Squirtle, Magikarp atau bahkan Keldeo? Ya mereka masuk dalam golongan Pokemon air ini. Lalu mengapa air paling banyak? Kalau saya baca-baca di internet ini karena murni dari proses design Pokemon yang cenderung ke arah monster air, atau apa karena Jepang adalah negara kepulauan ya?
Untuk Tipe 2 paling banyak adalah Single Type, maksudnya adalah sebanyak hampir 500 Pokemon tersebut hanya memiliki 1 tipe saja yaitu Tipe 1 yang sebelumnya sudah kita bahas. Namun ada tipe Flying berada di posisi kedua yang menandakan sekitar 100an Pokemon bisa terbang.
Selanjutnya mari kita lihat heatmap Type 1 dan Type 2 dari Pokemon ini
Berdasarkan heatmap di atas yang memiliki warna terang adalah kombinasi tipe Normal dan Single Type, lalu Water dan Single Type. Berdasarkan informasi tersebut dapat kita ambil asumsi bahwa tipe Normal dan Water sebagian besar memiliki hanya 1 tipe.
Untuk Type 2 Flying dapat kita lihat bahwa hampir semua Type 1 memiliki tipe Flying, bahkan ada tipe Water yang juga dapat terbang! booff mindblow!
Tapi jangan sedih, coba lihat Water dan Fire. Ada Pokemon yang memiliki tipe air dan api sekaligus! Apa ga panas dingin dia?
Setelah bermain-main dengan tipe, selanjutnya kita akan coba eksplor lebih dalam lagi.
Grafik di atas adalah grafik boxplot. Apa itu boxplot? Boxplot atau whisker adalah ringkasan distribusi sampel yang disajikan secara grafis yang bisa menggambarkan bentuk distribusi data (skewness), ukuran tendensi sentral dan ukuran penyebaran (Keragaman) data pengamatan. Untuk lebih mudah dapat melihat gambar di bawah ini.
Kembali kepada grafik Pokemon kita, ada beberapa hal yang menarik perhatian salah satunya tipe Psychic pada atribut Spa. Range min dan max nya paling panjang dan tanpa outliers, hal ini menandakan untuk special attack pada tipe Psychic hampir merata untuk setiap anggotanya, tidak ada Pokemon tipe Psychic yang anomali untuk atribut special attack.
Lalu coba kita lihat pada atribut status HP pada tipe Normal, terdapat outliers di angka 200++. Artinya ada Pokemon Normal yang memiliki health points tidak normal lebih banyak daripada anggota Pokemon tipe Normal lainnya. Dengan HP di outlier ini tentu akan berguna sebagai tank dalam pertarungan, dia akan “memakan” semua damage yang masuk sampai akhirnya nanti lawannya akan kelelahan.
ada Snorlax, Pokemon favorit saya
Jika boxplot terasa membingungkan untuk kita dapat mengetahui Pokemon mana yang secara atribut status mendominasi semuanya, maka grafik di atas adalah solusinya. Grafik di atas menunjukkan rata-rata tiap atribut status masing-masing tipe. Semakin mendekati luar dari hexagon maka semakin besar nilainya.
DRAGON!
Tipe Dragon layaknya Cristiano Ronaldo dan Lionel Messi di game FIFA, yang kurang hanya bagian defense saja. Pertanyaannya adalah jika kita memiliki Pokemon tipe Dragon maka akan pasti menang?
Kita pasti langsung berpikir jika kita bisa menangkap Pokemon tipe Dragon maka kita akan menang dari awal. Tapi tidak semudah itu handoko. Pokemon memiliki Catch Rate masing-masing yaitu persentasi keberhasilan kita sebagai trainer untuk menangkap Pokemon. Berikut ini adalah grafiknya.
Terlihat bahwa tipe Dragon paling susah ditangkap karena paling redup bisa di bawah 50% berbeda dengan tipe Normal yang terang benderang karena banyak Pokemon tipe ini yang mudah ditangkap. Grafik di atas sengaja saya pasangkan 3 variabel antara Catch Rate, BST dan BMI untuk mengetahui apakah persentasi keberhasilan menangkap Pokemon terpengaruh BST dan BMI Pokemon atau tidak. Jawabannya BST berpengaruh, tetapi tidak dengan BMI. Pada bab selanjutnya kami akan berikan rekomendasi Pokemon yang mudah ditangkap tetapi memiliki angka BST yang tidak terlalu lemah.
Legendary Pokemon atau Pokemon legendaris adalah sekelompok Pokemon yang sangat langka dan sangat kuat, biasanya juga dikaitkan dengan berbagai mitos di dunia Pokemon bahkan terkait asal mula munculnya dunia Pokemon. Pokemon legendaris disetarakan juga dengan Pokemon dewa karena status dan kemampuannya yang luar biasa.
Terkait data kita adalah mungkin outliers yang ada pada data adalah Pokemon legendaris, sebagai contoh Cosmoem yang berukuran kecil tetapi memiliki berat 1.000 kilo. Hal yang tentu tidak masuk akal.
Terlepas dari itu mari kita coba gali lebih dalam mengenai Pokemon legendaris ini.
Kita akan coba membandingkan antara Pokemon biasa dan legendaris. Untuk perbandingan ini kita menggunakan variabel BST karena dianggap mampu memberikan informasi lebih jelas mengenai perbandingan kekuatan Pokemon.
Berdasarkan grafik densitas di atas jelas sekali bahwa Pokemon biasa memiliki range BST dari 200 sampai sekitar 500 an. Memang ada yang lebih dari 500 tapi jumlahnya sedikit. Pokemon legendaris sendiri memiliki range dari 500 sampai 800. Untuk Pokemon biasa populasi terbanyak di sekitar 400-500 an, sedangkan untuk Pokemon legendaris memiliki populasi terbanyak di angka 600an.
Dari gambar saja kita sudah dapat mengetahui bahwa memang Pokemon legendaris memiliki kelasnya sendiri jika menggunakan variabel BST. Lalu muncul pertanyaan “dalam kondisi apakah Pokemon biasa dapat mengalahkan Pokemon legendaris?”. Kita simpan pertanyaan itu mungkin seri keempat kalau saya masih rajin.
Sama seperti manusia, Pokemon juga memiliki generasi. Tapi generasi yang dimaksud disini bukan Pikachu punya anak dan cucu ya, tapi lebih kepada munculnya Pokemon baru tiap generasi. Awal dari sebuah generasi ini biasanya ditandai dengan dirilisnya game Pokemon baru, di tiap game baru ini ada muncul Pokemon baru ditambah Pokemon generasi sebelumnya. Untuk lebih jelasnya dapat mengunjungi Bulbagarden
Sampai sekarang saat tulisan ini dibuat sudah ada 9 generasi, namun data yang kita gunakan hanya sampai generasi 8 karena generasi 9 baru saja rilis tahun 2022 (Scarlet and Violet) dan author dari data ini butuh waktu untuk melakukan update.
Lalu apa yang dapat kita lakukan dengan data generasi dan data Pokemon legendaris? Mungkin kita dapat melakukan analisis densitas kembali seperti di atas tetapi kita bagi lagi per generasi untuk melihat apakah tren densitasnya ada perubahan atau tidak.
Untuk Pokemon biasa tiap generasinya cenderung memiliki grafik densitas yang sama tidak ada yang signifikan. Sangat berbeda dengan Pokemon legendaris yang setiap generasinya berubah bentuk grafiknya. Yang paling menarik perhatian adalah Pokemon legendaris generasi 6 yang cenderung landai, puncak kepadatannya sulit untuk diidentifikasi seakan-akan hampir semua Pokemon legendaris di generasi ini memiliki BST yang merata.
Lalu apakah Pokemon legendaris ini memiliki tipe? Owh tentu saja. Ada Pokemon legendaris di setiap tipe Pokemon, hanya saja jumlahnya tidak merata tiap tipenya. Mari coba kita tampilkan.
Titik merah adalah Pokemon biasa, sedangkan yang biru adalah Pokemon legendaris, sementara garis putus-putus kuning merupakan rata-rata BST semua Pokemon. Dari gambar terlihat bahwa hampir semua Pokemon legendaris memiliki BST di atas rata-rata kecuali ada 5 Pokemon legendaris yang berada di bawah rata-rata.
Untuk tipenya terlihat banyak berkumpul di tipe Dragon dan Psychic karena secara BST pun kedua tipe ini yang berada di 2 posisi teratas.
Dalam bermain game tentu kita akan ada rasa penasaran mana senjata paling kuat, mana armor paling kuat, monster paling kuat, dungeon atau spell atau class paling kuat. Hal tersebut yang membuat kami ingin menyediakan kira-kira mana Pokemon paling kuat.
Kita tidak langsung mengurutkan BST 1.032 Pokemon dan langsung mengambil yang teratas dan terbawah, menurut kami itu tidak fair karena sebenarnya ada variabel lain yaitu Against. Sesuai dengan jumlah tipe Pokemon, jumlah Against juga berjumlah 18. Against adalah modifier serangan yang diterima dari Pokemon lain. Misalnya Mewtwo yang memiliki tipe Psychic, untuk Against Bug, Ghost, Dark nilainya adalah 2 yang berarti damage yang diberikan Pokemon Bug, Ghost dan Dark dikali 2. Sehingga dapat kita tarik kesimpulan bahwa semakin tinggi angka Against maka semakin banyak kelemahan dari Pokemon tersebut.
Pada gambar di atas persebaran Pokemon berdasarkan BST dan Weaknessnya. Dibagi 4 kuadran dimana garis berdasarkan mean dari masing-masing BST dan Weakness.
Kita akan membagi Pokemon terkuat dan terlemah berdasarkan pembagian tier ini.
Gambar di atas memberikan informasi kepada kita persebaran Pokemon menurut Tiernya dan menurut Tipenya. Terdapat Tipe Pokemon yang hanya punya 2 Tier saja hal ini dikarenakan persebaran Pokemon tipe ini terpusat pada kuadran tertentu saja. Misalnya Tipe Ghost dan Fairy yang hanya ada pada Tier A dan Tier C saja.
Dengan menggunakan klasifikasi jenis tier seperti ini, penentuan Pokemon terkuat atau pun terlemah dapat dibagi per kelas tidak langsung menggunakan database, hal ini dapat memudahkan gamer untuk menentukan prioritas Pokemon ketika berada di early, middle atau late game.
Kita sudah mengetahui Pokemon terkuat dan terlemah dalam setiap Tiernya. Pertanyaannya adalah apakah Pokemon legendaris yang berada di Tier atas dapat dikalahkan oleh Pokemon yang biasa-biasa saja? Mari kita cari tahu.
Kita coba gunakan Mewtwo sebagai contohnya. Kenapa Mewtwo? Karena saya suka bentuknya, kelihatan angkuh tapi hebat hihihihi. Mewtwo memiliki Tipe Psychic dan berada di Tier B.Berdasarkan tabel di atas Mewtwo dapat menerima tambahan damage (multiplier) dari tipe Bug, Ghost dan Dark. Jadi kita akan mencari di database kita Pokemon yang memiliki kombinasi Tipe tersebut.
Terdapat 3 Pokemon yang memiliki kombinasi dari Bug, Ghost dan Dark. Mengapa tidak mengikutsertakan Pokemon yang memiliki Single Type juga? Hal tersebut dikarenakan damage yang diberikan tidak maksimal, misal damage dari Tipe Bug Single Type hanya memiliki multiplier 2, berbeda cerita jika kombinasi menjadi Bug dan Ghost multipliernya menjadi 4.
Pokemon yang kemungkinan bisa mengalahkan Mewtwo adalah Shedinja, Spiritbomb dan Sableye. Hanya Spiritbomb yang memiliki Tier di atas Mewtwo akan tetapi memiliki BST di bawah Mewtwo. Sementara Shedinja dan Sableye berada di Tier di bawah Mewtwo dan BST yang rendah pula.
Tetapi apakah dengan menggunakan ini kita dapat langsung mengetahui siapa pemenangnya? Menurut saya susah ya, sepertinya kita membutuhkan algoritma simulasi untuk hal ini yang mana mungkin akan saya pikirkan setelah saya menyelesaikan seri ketiga.
Lalu setelah pembahasan panjang yang telah kita lakukan di atas, apakah kita dapat membentuk sebuah tim yang terdiri dari beberapa Pokemon? Kita dapat melakukan hal tersebut dengan 2 cara yaitu:
Dalam metode ini yang dapat kita lakukan adalah :
Berbeda dari metode sebelumnya, metode yang akan kita jalankan memiliki tujuan mendapatkan kombinasi Pokemon terkuat yang siap untuk memenangkan kejuaraan. The end game.
Metode yang kita gunakan terinspirasi dari Jeryl Goh yaitu :
Enjoy! ;)
karena menggunakan algoritma pengulangan, maka akan ada kemungkinan
tim yang terbentuk sewaktu-waktu akan berubah
Huft panjang sekali ya untuk sebuah EDA, tapi tidak mengapa karena memang data Pokemon sangat menarik untuk kita dalami. Selain karena bentuknya lucu dan keren, Pokemon selalu punya tempat di hati kita.
Selanjutnya kita akan menggunakan data Pokemon ini untuk Machine Learning. Kita akan coba dari sisi Unsupervised Learning di Seri 2 dan Supervised Learning di Seri 3. Untuk tanggal rilisnya akan menyusul selanjutnya.
Terima kasih sudah menyimak, jaga kesehatan, tetap bahagia dan sampai jumpa :)
HERMIT.ID merupakan sebuah tempat yang sengaja saya buat untuk menampung ide-ide saya mengenai data analytics dan data science. HERMIT.ID bertujuan membantu teman-teman yang ingin memulai usaha atau bahkan sudah menjalankan usahanya supaya bisa lebih mengembangkan bisnisnya lagi dengan memanfaatkan data untuk mengetahui kondisi pasar dan sebagainya.
Saya sangat senang bila ada teman-teman yang ingin berdiskusi mengenai apa saja terutama terkait penggunaan data dalam aplikasi bisnis.
Hubungi saya :
IG - https://www.instagram.com/hermit.id/
Email - salomorisdho.sitorus@gmail.com