No. | Nama | NIM |
---|---|---|
1. | Rafiki Prawhira Harianto | 13522065 |
2. | Bagas Sambega Rosyada | 13522071 |
3. | Abdullah Mubarak | 13522101 |
Program ini adalah program untuk menyelesaikan permainan Wikirace menggunakan algoritma IDS dan BFS. Permainan Wikirace adalah permainan untuk mencari jalur terpendek dari satu artikel Wikipedia ke artikel lainnya. Program ini akan mencari jalur terpendek dari artikel awal ke artikel tujuan dengan melakukan scraping pada artikel-artikel yang dikunjungi, dan mengunjungi artikel-artikel tersebut untuk mencari artikel tujuan. Program akan menghasilkan jalur terpendek dari artikel awal ke artikel tujuan pada laman Wikipedia. Laman artikel Wikipedia yang digunakan terbatas pada bahasa Inggris dan tidak menggunakan laman khusus seperti: "/File:", "/Special:", "/Template:", "/Template_page:", "/Help:", "/Category:", "Special:", "/Wikipedia:", "/Portal:", "/Talk:".
Repository ini adalah bagian frontend dari program yang berisi kode website dan mendapatkan hasil pengolahan data dari backend yang dibuat menggunakan framework ReactJS. Kedua repository perlu dijalankan bersamaan untuk menjalankan program Wikirace. Link kedua repository:
Program ini menggunakan dua algoritma untuk menyelesaikan permainan Wikirace, yaitu:
- Algoritma IDS (Iterative Deepening Search): Algoritma ini adalah algoritma search yang melakukan depth-first search dengan level depth yang bertambah secara iteratif. Implementasi algoritma ini terdapat pada file src/IDS.go, yang berisi fungsi utama IDS yang akan melakukan pemanggilan fungsi DLS/Depth Limited Search sampai dengan level tertentu. Pencarian akan dilakukan pada simpul tetangga terlebih dahulu. Jika pada level tersebut tidak ditemukan solusi, maka level kedalaman akan ditingkatkan dan fungsi DLS akan dipanggil kembali dengan level kedalaman yang baru.
- Algoritma BFS (Breadth-First Search): Algoritma ini adalah algoritma search yang melakukan pencarian pada satu level terlebih dahulu secara keseluruhan sebelum mencari di level kedalaman berikutnya. Implementasi algoritma ini terdapat pada file src/BFS.go, yang berisi fungsi utama BFS yang akan melakukan pencarian dengan melakukan scraping dan menyimpan seluruh tautan pada suatu level ke dalam queue, dan mengunjungi setiap artikel pada queue tersebut untuk mencari artikel tujuan. Jika tidak ditemukan artikel tujuan pada level tersebut, fungsi akan melakukan scraping pada level kedalaman selanjutnya dan mengunjunginya secara keseluruhan.
Program memerlukan backend untuk menjalankan program Wikirace. Langkah instalasi terdapat pada repository backend tersebut.
- Node JS terinstal di perangkat
- Docker dan Docker Desktop
- Clone repository ini
git clone https://github.com/bagassambega/Tubes2_FE_GoPedia.git
- Masuk ke direktori repository yang telah di-clone
cd Tubes2_FE_GoPedia
- Jalankan Docker ataupun Docker Desktop
- Build docker image dari Dockerfile yang telah disediakan
docker build -t gopedia-frontend .
- Jalankan program dengan docker container dari docker image yang telah dibuat
docker run -p 5173:5173 gopedia-frontend
- Jalankan website dengan membuka alamat http://localhost:5173/ pada browser
- Untuk menghentikan program, jalankan command berikut, ID dapat dilihat dengan command
docker ps
atau pada Docker Desktop
docker stop [container_id]
- Untuk menjalankan program Wikirace, jalankan juga backend Wikirace dengan langkah-langkah pada repository backend Wikirace melalui link berikut: Backend
Setelah program frontend dan backend berjalan, program dapat diakses pada browser dengan membuka alamat http://localhost:5173/ dan pengguna dapat memasukkan artikel awal dan artikel tujuan untuk mencari jalur terpendek dari artikel awal ke artikel tujuan.
NOTE: Jika build docker gagal atau menjalankan dengan docker tidak berhasil, program dapat dijalankan dengan menjalankan command berikut:
npm run dev