Word ladder adalah permainan kata yang terkenal dimainkan oleh banyak orang. Ditemukan oleh Lewis Carroll pada tahun 1877, permainan ini melibatkan dua kata, yaitu start word dan end word. Pemain harus menemukan rantai kata yang menghubungkan kedua kata tersebut, di mana setiap kata dalam rantai hanya boleh berbeda satu huruf dari kata sebelumnya. Solusi optimal adalah solusi dengan jumlah kata yang dimasukkan ke rantai paling sedikit.
Program berikut digunakan untuk mencari solusi dari permainan seperti website Word Ladder namun perbedaannya program berikut akan menyajikan 3 algoritma pilihan dalam route planning yaitu UCS, Greedy Best-First Search dan A*. Program ini dibuat dalam bahasa java.
Dokumentasi lengkap tentang program dapat dilihat pada link berikut
UCS adalah algoritma pencarian yang menemukan jalur dengan biaya terendah dari titik awal ke tujuan. Dalam konteks Word Ladder, UCS mencari jalur terpendek dengan menghitung biaya setiap transformasi kata. Algoritma ini menggunakan antrian prioritas dan mengunjungi simpul dengan biaya terendah terlebih dahulu, memastikan setiap langkah perubahan kata memiliki biaya yang sama.
GBFS adalah algoritma pencarian yang memprioritaskan simpul berdasarkan estimasi heuristik menuju tujuan. Dalam aplikasi Word Ladder, heuristik biasanya adalah jumlah huruf yang berbeda antara kata saat ini dan kata tujuan. Algoritma ini memilih simpul yang tampaknya paling dekat dengan tujuan, tanpa mempertimbangkan biaya perjalanan yang sebenarnya.
A* adalah algoritma pencarian yang menggabungkan pendekatan UCS dan GBFS. Algoritma ini menghitung biaya total (f(n)) dengan menambahkan biaya dari titik awal ke simpul saat ini (g(n)) dan estimasi heuristik menuju tujuan (h(n)). Dalam kasus Word Ladder, A* memberikan jalur terpendek dengan mempertimbangkan jarak dan estimasi menuju tujuan, membuatnya lebih efisien daripada UCS atau GBFS dalam menemukan solusi optimal.
Tucil3_13522070
│
├── bin
├── doc
│ └─ Tucil3_13522070.pdf
├── img
├── src
│ └─ wordladder
│ ├─ dictionary
│ ├─ image
│ ├─ jafafx-sdk-22.0.1
│ ├─ AStar.java
│ ├─ Dictionary.java
│ ├─ GBFS.java
│ ├─ GUI.java
│ ├─ GUI2.java
│ ├─ Main.java
│ ├─ Node.java
│ ├─ Result.java
│ ├─ UCS.java
│ ├─ Utility.java
│ └─ WordDictionary.java
├── test
└── README.md
To run this program, you need to have:
To install the program with a GUI, ensure JavaFX is installed on your system. If not, you need to install JavaFX. For reference, you can use this YouTube tutorial. Follow these steps:
- Clone this repository:
git clone https://github.com/zultopia/Tucil3_13522070.git
- Navigate to the directory of the program:
cd src/wordladder
-
Compile the program
javac --module-path "<path_to_javafx_sdk for example C:\Java\javafx-sdk-22.0.1>/lib" --add-modules javafx.controls,javafx.fxml,javafx.graphics AStar.java GBFS.java UCS.java WordDictionary.java Node.java Utility.java Result.java GUI.java
java --module-path "<path_to_javafx_sdk for example /Users/azulsuhada/Downloads/javafx-sdk-22.0.1>/lib" --add-modules javafx.controls,javafx.fxml,javafx.graphics GUI
-
Run the program
javac --module-path "<path_to_javafx_sdk for example C:\Java\javafx-sdk-22.0.1>/lib" --add-modules javafx.controls,javafx.fxml,javafx.graphics AStar.java GBFS.java UCS.java WordDictionary.java Node.java Utility.java Result.java GUI.java
java --module-path "<path_to_javafx_sdk for example /Users/azulsuhada/Downloads/javafx-sdk-22.0.1>/lib" --add-modules javafx.controls,javafx.fxml,javafx.graphics GUI
If JavaFX still not running. Use this alternatif GUI
- Clone this repository:
git clone https://github.com/zultopia/Tucil3_13522070.git
- Navigate to the directory of the program:
cd src/wordladder
- Compile the program
javac AStar.java GBFS.java UCS.java WordDictionary.java Node.java Utility.java Result.java GUI2.java
- Run the program
java GUI2
To run the program with a CLI, follow these steps.
- Clone this repository
git clone https://github.com/zultopia/Tucil3_13522070.git
- Run program
java -cp bin Main
- If there is problem, navigate to the src/wordladder directory
cd ./Tucil3_13522070/src/wordladder
- Compile and run the program
javac AStar.java GBFS.java UCS.java WordDictionary.java Node.java Utility.java Result.java Main.java
java Main
The code in this project is licensed under MIT license.