BAB 3
Metodologi Penelitian
3.1 Analisa Permasalahan
Kerumitan setiap langkah permainan Sudoku untuk menentukan tingkat kesulitan bergantung pada banyaknya jumlah kotak kosong yang ada, semakin banyak kotak kosong yang ada dalam permainan Sudoku, maka nilai kerumitan Sudoku tersebut semakin tinggi yang berarti Sudoku menjadi sangat sulit. Kerumitan permainan Sudoku mempengaruhi banyaknya iterasi yang terjadi. Kebebasan setiap langkah permainan Sudoku bergantung pada banyaknya jumlah kotak yang sudah terisi angka, kebebasan setiap langkah hanya berpengaruh pada langkah itu sendiri, semakin banyak kotak yang sudah terisi angka pada permainan Sudoku, maka nilai kebebasan dari langkah tersebut akan semakin kecil. Penyelesaian permasalahan Sudoku pada penelitian ini yaitu dengan menghitung kedua tolok ukur tersebut pada setiap iterasi yang terjadi menggunakan algoritma backtracking.
Nilai kerumitan dan jumlah kotak kosong pada permainan Sudoku dapat diatur sedemikian rupa. Tingkat kesulitan tersebut dapat dibagi menjadi beberapa kelompok berdasarkan nilai kerumitannya. Proses pembagian cluster dilakukan dengan menghitung nilai rata-rata dari semua data yang digunakan, lalu nilai rata- rata tersebut dikelompokkan secara landai pada grafik k-means untuk mencari jumlah cluster yang tepat dengan metode elbow. Pencarian solusi dengan algoritma backtracking dapat meminimal nilai variasi dari setiap objective function pada setiap data pada cluster tertentu. Untuk memaksimalkan nilai variasi antara satu cluster dengan cluster lainnya, maka diperlukan penghitungan jarak yang optimal pada setiap cluster menggunakan metode Sillhoutte Coefficient.
3.2 Rancangan Penelitian
Rancangan pada penelitian ini mencakup semua proses yang dilakukan selama penelitian berlangsung. Proses yang dilakukan selama penelitian yaitu perancangan
program, pengumpulan data, optimasi jumlah cluster, pengelompokkan data, optimasi jarak cluster. Adapun alur rancangan penelitian dapat dilihat pada flowchart sebagai berikut
Gambar 3.1 Flowchart Penelitian
3.2.1 Metode Pengumpulan Data
Pada penelitian ini menggunakan data berupa papan Sudoku dengan beberapa kotak yang sudah terisi oleh angka yang dikumpulkan dari dokumentasi digital yang berasal dari laman website dan aplikasi Sudoku generator. Waktu pengumpulan dilakukan secara berkala dalam kurun waktu tertentu.
Dalam mencapai tujuan penelitan, diperlukan pengumpulan data untuk mendapatkan informasi yang dibutuhkan. Detail kegiatan pengumpulan data adalah sebagai berikut
Spesifikasi Data : Sudoku 9 x 9 dengan beberapa kotak yang sudah terisi
Sumber Data : “sudoku.com”
Jumlah Data Kolektif : 50 data untuk empat tingkat kesulitan(10+15+15+10) [9]
Pada data Sudoku yang digunakan, nilai iterasi dan jumlah kotak kosong dihitung terlebih dahulu menggunakan algoritma backtracking. Proses perhitungan nilai iterasi yaitu menghitung iterasi dari pengisian kotak kosong dan perhitungan kotak kosong yaitu menghitung kotak yang tidak diisi angka yang direpresentasikan dengan angka nol.
Gambar 3.2 Penyelesaian sudoku dengan algoritma backtracking
Pada gambar diatas, gambar sebelah kiri menunjukan sudoku yang dipakai untuk clustering, sudoku tersebut dihasilkan oleh sudoku generator yang diberi label tingkat kesulitan expert, lalu gambar sebelah kanan adalah hasil dari penyelesaian sudoku dengan menghitung setiap proses atau tahap nya.
Didapatkan bahwa sudoku tersebut memiliki jumlah kotak kosong sebanyak 60 dan jumlah iterasi sebanyak 49599. Kedua nilai tersebut dijadikan tolok ukur untuk tingkat kesulitan Sudoku. Program yang dirancang untuk pengumpulan data diatas menggunakan algoritma backtracking dengan memanfaatkan rekursif sebagai teknik perulangan dengan melakukan recall pada fungsi itu sendiri. Algoritma backtracking ditulis menggunakan bahasa C++ yang dapat dilihat pada gambar berikut
Gambar 3.3 Algoritma Backtracking untuk Sudoku Solver
Perhitungan iterasi pada algoritma backtracking dilakukan ketika perulangan bertemu pada kotak kosong, untuk mengetahui kotak kosong algoritma ini menggunakan kondisi percabangan if-else dengan mengecek nilai dari kotak yang dijumpai. Dalam hal ini kotak kosong pada Sudoku direpresentasikan dengan angka nol.
3.2.2 Normalisasi Data
Salah satu metode dari normalisasi data yaitu memanipulasi data dengan skala naik atau skala turun pada jarak data untuk memudahkan proses komputasi [10]. Hasil Skala yang dihasilkan dari proses normalisasi memiliki nilai antara 0 dan 1, sehingga setiap data dapat dikomputasi lebih mudah. Skala pada jarak data juga akan memengaruhi hasil clustering pada data, dapat dikatakan proses normalisasi dengan skala bertujuan untuk meminimalkan variasi nilai pada semua data. Pada penelitian ini, data yang
perlu untuk dinormalisasi hanya nilai iterasi dan kotak kosong, sehingga data selain itu tidak diperlukan dalam proses clustering.
3.2.3 Pengelompokkan Data
Proses pengelompokkan data terkait pada tolok ukur yang digunakan, yaitu jumlah iterasi dan jumlah kotak kosong untuk setiap objek. Jumlah iterasi berkaitan dengan kerumitan pada setiap langkah (Single Step Complexity) dan jumlah kotak kosong berkaitan dengan kebebasan setiap langkah (Single Step Dependency). Setelah mendapatkan semua data tersebut dari setiap objek, maka objek akan dialokasikan ke centroid terdekat.
Penggunaan jumlah centroid untuk k-means clustering adalah k=2 hingga k=9 [11]. Jumlah centroid k=9 adalah pembagian tingkat kesulitan terbanyak pada penelitian ini, sedangkan k=2 adalah pembagian tingkat kesulitan yang lebih sedikit. Perhitungan jarak objek ke centroid menggunakan metode Euclidian Distance dengan mengambil jarak minimum. Jika terjadi perpidahan objek ke cluster lain, maka nilai untuk centroid harus dihitung ulang, dan jika nilai dari centroid tidak berubah, maka proses clustering akan dihentikan.
3.2.4 Optimasi Jarak Cluster
Untuk mendapatkan hasil dari kualitas clustering diperlukan perhitungan jarak optimal setiap cluster dengan cluster lainnya. Optimasi jarak antar cluster hanya dilakukan ketika proses clustering telah selesai. Proses perhitungan jarak cluster menggunakan metode Sillhoutte Coefficient. Mirip dengan proses clustering, tolok ukur yang digunakan untuk menghitung jarak cluster yaitu berdasarkan jumlah iterasi dan jumlah kotak kosong.
3.3 Metode Analisis Data
Analisis data dilakukan setelah beberapa tahapan dalam rancangan penelitian telah selesai dilakukan. Tujuan dari analisis data yaitu untuk mendapatkan hasil dari
penelitian yang bersifat kualitatif dan kuantitatif. Hasil kualitatif pada penelitian ini berupa penghitungan jarak antar cluster yang diuji menggunakan metode sillhoutte coefficient yang merepresentasikan kualitas cluster antara -1 dan 1. Hasil kuantitatif berupa perbandingan antara hasil cluster pada sudoku generator yang digunakan dan hasil cluster pada penelitian ini.
3.3.1 Uji Jarak Cluster
Jarak cluster adalah kalkulasi antara jarak centroid dengan data lain pada satu cluster dan jarak data dengan data lain pada cluster lain. Proses perhitungan jarak cluster menggunakan Euclidian Distance. Rumus perhitungan jarak data pada cluster yang sama adalah sebagai berikut
𝑎 = 1
𝑁∑𝑁𝑖=1√(𝑥𝐶− 𝑥𝑖)2+ (𝑦𝐶− 𝑦𝑖)2... (6) Dimana; 𝑎 = jarak rata-rata pada satu cluster
𝑁 = banyaknya data pada satu cluster
𝑥𝐶 = data variabel jumlah iterasi yang menjadi centroid 𝑥𝑖 = data variabel jumlah iterasi ke-i
𝑦𝐶 = data variabel jumlah kotak kosong yang menjadi centroid
𝑦𝑖 = data variabel jumlah kotak kosong ke-i
Rumus perhitungan jarak antara data centroid dengan data lain pada cluster yang berbeda adalah sebagai berikut
𝑏(𝑖) = 1
𝑁∑𝑁𝑗=1√(𝑥𝐶− 𝑥𝑗)2+ (𝑦𝐶− 𝑦𝑗)2... (7) Dimana; 𝑏(𝑖) = jarak rata-rata centroid ke cluster lain
𝑥𝑗 = data variabel jumlah iterasi ke-j pada cluster lain 𝑦𝑗 = data variabel jumlah kotak kosong pada cluster lain Setelah semua perhitungan selesai dilakukan, nilai b(i) yang digunakana adalah nilai yang memiliki jarak paling minimum. Perhitungan terakhir
adalah pegujian jarak cluster dengan membagi rata-rata jarak cluster dengan rata-rata jarak centroid ke cluster lain. Rumus pengujian jarak adalah sebagai berikut
𝑆(𝑖) = 𝑏(𝑖)−𝑎(𝑖)
max(𝑎(𝑖),𝑏(𝑖)) ... (8) Dimana; 𝑆(𝑖) = Silhoutte Score
𝑎(𝑖) = jarak rata-rata data i pada satu cluster
𝑏(𝑖) = jarak rata-rata data i pada cluster lain(ambil nilai terkecil)
Nilai S(i) pada persamaan diatas akan menghasilkan nilai antara -1 dan 1.
Jika nilai S(i) semakin mendekati angka negatif, maka kualitas dari k-means clustering menjadi buruk, dan jika nilai tersebut semakin mendekati angka positif, maka kualitasnya menjadi baik.
3.3.2 Perbandingan Hasil Cluster
Analisis dengan membandingkan hasil cluster dengan membandingkan hasil cluster pada penelitian ini dengan tingkat kesulitan pada sudoku generator [12]. Data sampel pada setiap sudoku generator memiliki 4 label tingkat kesulitan. Jika hasil cluster penelitian ini sama dengan hasil cluster sudoku generator, maka akan menghasilkan nilai 1, dan jika kedua cluster tidak memiliki hasil yang sama, maka akan menghasilkan nilai 0. Rumus Perhitungan akurasi hasil cluster adalah sebagai berikut
Kecocokkan tingkat kesulitan 𝐴𝑖= 1
𝑁∑𝑁𝑗=1𝑋𝑗× 100%, 0 ≤ 𝑋𝑗 ≤ 1 ... (9)
Kecocokkan keseluruhan 𝐴 = 1
𝐾∑𝐾𝑖=1𝐴𝑖 ... (10) Dimana; 𝐴𝑖 = nilai rata-rata Kecocokkan hasil cluster ke-i
𝑁 = banyaknya data pada satu cluster
𝑋𝑗 = nilai Kecocokkan data cluster ke-j 𝐴 = nilai rata-rata Kecocokkan keseluruhan 𝐾 = banyaknya cluster
Semakin banyak nilai 1 yang dihasilkan, maka hasil perhitungan Kecocokkan akan semakin tinggi, dimana akan memberikan memberikan asumsi bahwa hasil cluster pada penelitian ini hamper atau sangat mirip dengan cluster pada sudoku generator. Sebaliknya, semakin banyak nilai 0 yang dihasilkan maka nilai Kecocokkan akan semakin rendah, dimana akan memberikan asumsi bahwa hasil cluster pada penelitian ini tidak mirip dengan cluster pada sudoku generator.