- Deskripsi Data dan DBMS
- Spesifikasi Program
- Cara Menggunakan
- Struktur JSON
- Struktur Basis Data
- Screenshot
- Referensi
- Author
Catur adalah salah satu cabang olahraga yang cukup digemari. Kini, bermain catur menjadi lebih praktis dengan adanya website chess.com. Segala informasi terkait catur tersedia sangat lengkap di dalamnya. Oleh karena itu, penulis memilih website ini sebagai sumber data. Data yang diambil dari chess.com ini adalah data 1000 pemain top dunia berdasarkan rating dari FIDE beserta rekaman pertandingan yang pernah dimainkan oleh pemain bernama Magnus Carlsen, pemegang Juara Dunia Catur saat ini, di tahun 2020 atau lebih.
Untuk menyimpan data tersebut, penulis memilih PostgreSQL sebagai DBMS. Hal ini karena PostgreSQL merupakan DBMS yang memiliki reputasi yang baik dan dapat diandalkan. Selain itu, PostgreSQL juga menyediakan alat yang memudahkan pengelolaan database.
Program data scraping pada proyek ini menggunakan bahasa Python dengan pustaka HTML parser yang umum dipakai untuk melakukan data scraping, yaitu Beautiful Soup.
Selain itu, terdapat sebuah API sederhana menggunakan pustaka FastAPI yang disediakan oleh Python.
- Pastikan Python3 ter-install pada PC Anda. Jika tidak, silakan unduh Python3 di sini
- Pastikan PostgreSQL ter-install pada PC Anda. Jika tidak, silakan unduh PostgreSQL di sini
- Atur konfigurasi pada file
.env
di folderData Scraping/src
sesuai dengan lokasi database di PC anda. - Buka folder
Data Scraping/src
di terminal. - Jalankan perintah di bawah ini untuk mengunduh pustaka yang dibutuhkan.
pip install -r requirements.txt
- Jalankan perintah di bawah ini untuk menjalankan program scraping dan storing data
python main.py
- Akan diberikan beberapa pilihan menu yang dapat dilakukan.
[1] Scrape data pemain
[2] Scrape data pertandingan
[2] Store data pemain dari .json ke database
[3] Store data pertandingan dari .json ke database
- Jika anda memilih scrape data pertandingan, selanjutnya anda akan diminta beberapa masukan yang tidak harus diisi semua. Cukup diisi beberapa saja sesuai kemauan anda.
- Di akhir proses scraping, anda akan diberikan pilihan untuk menyimpan data ke dalam file .json dan/atau ke dalam database.
- File .json hasil scraping akan disimpan di dalam folder
Data Scraping/data
. - Jika anda memilih store data, maka data akan disimpan ke dalam database. Namun, file .json harus sudah tersedia di dalam folder
Data Scraping/data
.
- Atur konfigurasi pada file
.env
di folderAPI/src
sesuai dengan lokasi database di PC anda. - Buka terminal lalu pindah ke direktori
src
di dalam folderAPI
. - Jalankan perintah di bawah ini untuk mengunduh pustaka yang dibutuhkan
pip install -r requirements.txt
- Jalankan perintah di bawah ini untuk menjalankan API di
localhost:8000
uvicorn main:app --reload
- Buka browser dan akses
localhost:8000
, tambahkan/docs
di akhir URL untuk memunculkan Swagger UI berisi method dan endpoints yang tersedia.
Berikut adalah daftar method dan endpoints yang tersedia:
GET /api/players : mendapatkan seluruh data pemain
GET /api/players?name=<str>&nationality=<str> : mendapatkan data pemain berdasarkan nama dan/atau kewarganegaraan
GET /api/players/{id} : mendapatkan data pemain berdasarkan id
GET /api/ratings : mendapatkan seluruh data rating
GET /api/ratings/{rank} : mendapatkan data rating berdasarkan peringkat
GET /api/games : mendapatkan seluruh data pertandingan
GEt /api/games?winner=<str>&moves=<int>&year=<int> : mendapatkan data pertandingan berdasarkan hasil pertandingan, peringkat, dan tahun pelaksanaan
players.json
{
Rank: ranking FIDE pemain
Name: nama pemain
Title: gelar pemain
Nationality: kewarganegaraan pemain
Rating: rating pemain yang terdiri dari 3 jenis
{
Classic: rating catur klasik
Rapid: rating catur cepat
Blitz: rating catur kilat
}
}
games.json
{
White: nama pemain putih
Black: nama pemain hitam
Notation: notasi langkah awal permainan
Opening: pembukaan catur yang dimainkan
Winner: pemain yang menang
Moves: jumlah langkah
Year: tahun dilaksanakannya pertandingan
}
- Beautiful Soup
- Psycopg2
- Python-dotenv
- Fast API
- Web Scraping Tutorial: YouTube - Web Scraping Bukalapak dengan Python || Bahasa Indonesia
- Dokumentasi PostgreSQL: PostgreSQL Documentation
- FastAPI Tutorial: YouTube - Python FAST API Tutorial
Diky Restu Maulana
13520017
Teknik Informatika, Institut Teknologi Bandung