• Tidak ada hasil yang ditemukan

KECERDASAN BUATAN UNTUK MENYELESAIKAN RU

N/A
N/A
Protected

Academic year: 2018

Membagikan "KECERDASAN BUATAN UNTUK MENYELESAIKAN RU"

Copied!
8
0
0

Teks penuh

(1)

KECERDASAN BUATAN UNTUK

MENYELESAIKAN RUBIK’S CUBE DENGAN

ALGORITMA IDA*

Ardhan Wahyu R1, Purwanto2, dan Susy Kuspambudi A3 Universitas Negeri Malang

E-mail: [email protected]; [email protected]; [email protected]

ABSTRAK: Tujuan dari penelitian ini adalah untuk (1) mengetahui cara merepresentasikan masalah pada rubik’s cube agar dapat diselesaikan dengan algoritma IDA*, (2) mengetahui cara kerja algoritma IDA* untuk menyelesaikan rubik’s cube yang telah direpresentasi, (3) membuat sebuah program kecerdasan buatan terkait menggunakan bahasa Java. Dalam hal ini rubik’s cube direpresentasikan ke dalam bentuk 2 dimensi. Hasil dari penelitian ini adalah (1) rubik’s cube dapat diselesaikan dengan kecerdasan buatan, (2) langkah-langkah yang terdapat dalam algoritma dapat dibuat dalam bentuk program kecerdasan buatan yang dapat menyelesaikan rubik’s cube, (3) tidak semua keadaan awal darirubik’s cubedapat diselesaikan dengan program kecerdasan buatan yang telah dikembangkan.

Kata kunci: rubik’s cube, algoritma IDA*, Java

Rubik’s cube adalah permainan berjenis teka-teki. Berdasarkan Wikipedia (2013)rubik’s cube dikenalkan pada tahun 1974 oleh profesor berkebangsaan Hungaria bernama Erno Rubik. Rubik’s cube disusun oleh kubus-kubus kecil sebanyak 3×3×3. Setiap kubus kecil ini memiliki warna yang berbeda. Setiap

bagian 3×3×1 dapat dirotasi 800, 900, atau 2700. Rotasi yang dilakukan

mengakibatkan warna dari salah satu sisi berpindah ke sisi yang lain sehingga susunan warna sisinya berubah. Tujuan memainkan rubik’s cube adalah menyusun warna pada sisinya dari kondisi yang acak ke kondisi dimana setiap sisi hanya memiliki satu warna.

Masalah yang terdapat pada rubik’s cube adalah bagaiamana caranya agar

rubik’s cube dalam keadaan acak dapat kembali pada keadaan yang tersusun. Untuk menyelesaikan masalah tersebut dapat digunakan algoritmaFrederich Layer Method, Waterman Method dan Waterman Method yang merupakan algoritma yang dirancang khusus untuk menyelesaikanrubik’s cube. Ketiga algoritma tersebut tidak dapat memberikan langkah terpendek untuk menyelesaikan rubik’s cube. Yang menjadi masalah selanjutnya adalah bagaiamana caranya agar rubik’s cube kembali pada keadaan yang tersusun dengan langkah terpendek.

Untuk menjawab permasalahan yang terdapat padarubik’s cube dapat dikembangkan suatu kecerdasan buatan. Seperti yang dikatakan oleh Kusumadewi (2003:1) bahwa Kecerdasan buatan atau artificial intelligence merupakan salah satu bagian ilmu komputer yang membuat agar mesin (komputer) dapat melakukan pekerjaan seperti dan sebaik yang dilakukan manusia. Kecerdasan buatan yang dikembangkan bertujuan menemukan solusi dari rubik’s cube.

1

Ardhan Wahyu R adalah mahasiswa Jurusan Matematika FMIPA Universitas Negeri Malang

2

Purwanto adalah dosen Jurusan Matematika FMIPA Universitas Negeri Malang

3

(2)

Kecerdasan buatan ini menggunakan algoritma IDA* dengan nilai heuristik

pattern database.

PEMBAHASAN

Ada 4 tahapan utama yang dilakukan untuk mengembangkan kecerdasan buatan untuk menyelesaikanrubik’s cube, yaitu:

1. Merepresentasikan bentuk rubik’s cube ke dalam 2 dimensi

Russel dan Norvig (2010:108) menyatakan bahwa masalah terdiri dari 5 bagian dan salah satunya adalah model peralihan. Model peralihan bisa juga disebut dengan representasi. Artinya masalah yang awalnya terlihat sangat rumit dapat direpresentasi menjadi yang lebih sederhana dengan bentuk lain

(representasi lain). Dalam hal inirubik’s cube yang sebelumnya berbentuk 3 dimensi direpresentasi ke dalam bentuk 2 dimensi dengan cara membuka sisi-sisinya. Karena bentuk rubik’s cube direpresentasi maka operasi juga harus direpresentasi. Sebelum direpresentasi operasi padarubik’s cube adalah rotasi terhadap layer. Setelah direpresentasi operasi pada rubik’s cube adalah

pemindahan warna. Gambar 1 menunjukkan gambar darirubik’s cube yang

direpresentasikan ke dalam bentuk 2 dimensi.

Gambar 1: Representasi Rubik’s Cube

Tabel 1 menunjukkan operasi yang dilakukan pada rubik yang telah direpresentasi.

2. Membangun pattern database yang digunakan sebagai nilai heuristik

Suyanto (2011) menyatakan bahwa heuristik adalah suatu proses yang mungkin dapat menyelesaikan suatu masalah tetapi tidak ada jaminan bahwa solusi yang dicari selalu ditemukan. Yang ditekankan adalah tidak adanya

jaminan. Sementara itu Poole dan Mackworth (2010:56) menyatakan bahwa fungsi heuristik adalah fungsi untuk menebak arah mana yang akan ditempuh agar mencapai solusi. Fungsi heuristik menghasilkan nilai heuristik yang merupakan nilai yang digunakan untuk menebak arah pencarian. Salah satu yang dapat digunakan sebagai nilai heuristik adalah Pattern database. Culberson dan Schaeffer (1998:321) menyatakan bahwa Pattern database basis data yang berisi keadaan-keadaan yang mungkin yang didapatkan dari hasil permutasi keadaan awal. Pattern database untuk rubik’s cube adalah keadaan-keadaan dari rubik’s cube yang diperoleh dari hasil permutasi keadaan tujuan. Korf (1997) membagi

(3)

Tabel 1 OperasiRubik’s Cube 2 Dimensi

Front Back Up Down Right Left

Warna Warna Warna Warna Warna Warna

Di Ke Di Ke Di Ke Di Ke Di Ke Di Ke

1 3 28 30 46 48 19 21 10 12 37 39

3 9 30 36 48 54 21 27 12 18 39 45

9 7 36 34 54 52 27 25 18 16 45 43

7 1 34 28 52 46 25 19 16 10 43 37

54 16 18 48 36 12 16 28 54 30 34 46

16 25 48 39 12 3 28 37 30 21 46 1

25 45 39 27 3 45 37 7 21 9 1 25

45 54 27 18 45 36 7 16 9 54 25 34

52 10 12 46 30 10 18 34 48 28 36 52

10 19 46 37 10 1 34 43 28 29 52 7

19 43 37 21 1 39 43 9 19 3 7 27

43 54 21 12 39 30 9 18 3 48 27 36

2 6 29 33 47 51 20 24 11 15 38 42

6 8 33 35 51 53 24 26 15 17 42 44

8 4 35 31 53 49 26 22 17 13 44 40

4 2 31 29 49 47 22 20 13 11 40 38

53 13 15 47 33 11 17 31 51 29 35 49

13 22 47 38 11 2 31 40 29 20 49 4

22 44 38 24 2 42 40 8 20 6 4 26

44 53 24 15 42 33 8 17 6 51 26 35

agar pola yang disimpan tidak terlalu besar. Pembagian tersebut ditunjukkan pada Gambar 2.

Gambar 2: Pembagian pola

(4)

Gambar 3: Diagram Alir untuk Membangung Pattern Database

Jika proses membangunpattern database telah selesai maka akan

didapatkan suatu basis data yang berisi keadaan darirubik’s cube beserta nilainya. Table 2 menunjukkan contoh dari basis data dengan nilai 1.

Tabel 2 Pola 1 Dengan Nilai 1

Keadaan untuk pola 1 Nilai (kedalaman) MMMMOOOOPBPBHHKKPPHHBKBK 1 PPMMOKOKOOPPKMKMHHHHBBBB 1 MMKKPOPOPPMMOKOKHHHHBBBB 1 MBMBHHOOPPPPKKKKHMHMOOBB 1 HMHMOOBBPPPPKKKKOHOHBBMM 1 MMMMOOOOBPBPKKHHHHPPKBKB 1 MMMMOOOOPHPHBBKKKKHHBPBP 1 KKMMOPOPMMPPKOKOHHHHBBBB 1 MMPPKOKOPPOOMKMKHHHHBBBB 1 MHMHBBOOPPPPKKKKHOHOMMBB 1 BMBMOOHHPPPPKKKKMHMHBBOO 1 MMMMOOOOKPKPKKPPHHBBHBHB 1 MMMMOOOOPKPKPPKKBBHHBHBH 1 MOMOMMOOPPPPKKKKHBHBHHBB 1

3. Mencari solusi dengan menggunakan algoritma IDA*

(5)

Gambar 4: Diagram Alir Algoritma IDA*

Diagram alir pada Gambar 4 menggunakan DFS CONTOUR. Diagram alir dari DFS CONTOUR ditunjukkan pada Gambar 5.

Gambar 5: Diagram Alir DFS CONTOUR

Algoritma IDA* ini menerima masukkan berupa keadaan rubik’s cube yang acak dan mengembalikan solusi dari rubik’s cube.

4. Membuat program kecerdasan buatan dengan bahasa Java

Tahap terakhir adalah mengembangkan suatu program kecerdasan buatan menggunakan bahasa pemrograman Java. ”Bahasa Java merupakan karya Sun Microsystem Inc. Rilis resmi level beta dilakukan pada November 1995”

(6)

Tabel 3 Kelas-kelas Dalam Program Kecerdasan Buatan

Nama Kelas Kegunaan

Rubik.java Merepresentasikan obyekrubik’s cube ke dalam sebuah kelas. BangunHeuristik.java Membangunpattern databaseuntukrubik’s cube.

IDAstar.java Mencari solusi darirubik’s cube.

Stack.java Kelas yang berfungsi sebagai tipe data tumpukan (stack).

Koneksi.java Menghubungkan program dengan basis data. Kelas ini memanfaatkan pustaka dari MySQL Connector/J yang berfungsi menghubungkan program dengan basis data MySQL.

FUtama.java Tampilan utama dari program.

FHeuristik.java Tampilan untuk memasukkan heuristik dan melihat kedalamanya. FInput.java Membuat keadaan awal darirubik’s cubeyang ingin dicari solusinya. Gambar.java Tampilan gambar untukrubik’s cube2 dimensi.

FPencarian.java Menampilkan hasil pencarian solusi.

Dari penelitian ini dihasilkan sebuah program kecerdasan buatan yang dapat menyelesaikan rubik’s cube. Gambar 6 menunjukkan antar muka dari program.

Gambar 6: Antar Muka Program Kecerdasan Buatan

Program kecerdasan buatan ini mampu menemukan solusi terpendek untuk menyelesaikan rubik’s cube, akan tetapi tidak semua keadaan dapat diselesaikan dengan program ini. Keadaan yang mampu diselesaikan oleh program ini adalah keadaan rubik’s cube yang diacak dengan menggunakan maksimal 6 operasi. Table 4 menunjukkan beberapa contoh keadaan darirubik’s cube yang solusinya

(7)

Tabel 4 Pengujian Beberapa Keadaan Awal

Keadaan Awal Titik Waktu

(mili detik) Solusi

19 1674 L−1

34 1219 U−1F−1

83 1068 B−1U−1F−1

79 894 D−1B−1U−1F−1R−1U

PENUTUP Kesimpulan

Kecerdasan buatan dengan algoritma IDA* dapat menemukan solusi dari

(8)

Saran

Berdasarkan kesimpulan di atas, maka disarankan untuk mencoba mencari alternatif basis data yang dapat digunakan untuk menyimpan data lebih banyak karena basis data yang digunakan pada kecerdasan buatan ini hanya mampu menyimpan semua data dengan maksimal 6 operasi. Dengan data yang lebih banyak, kecerdasan buatan ini akan bekerja dengan lebih baik.

DAFTAR RUJUKAN

Culberson, Joseph C & Schaeffer, Jonathan. 1998.Pattern Database, (Online), (http://www.cs.us.es/cursos/ia1-2007/

trabajos/trabajos-1/pattern-database.pdf), diakses 6 Mei 2011.

Eck, David J. 2011.Introduction to Programming Using Java, Sixth Edition, (Online), (http://math.hws.edu/eck/cs124/downloads/ javanotes6.pdf), diakses 6 Mei 2011.

Hariyanto, Bambang. 2010. Esensi-Esensi Bahasa Pemrograman Java. Bandung: Informatika.

Korf, Richard E. 1997. Finding Optimal Solutions to Rubik’s Cube Using Pattern Databases, (Online), (http://www.cs.princeton.edu/courses/

archive/fall06/cos402/papers/korfrubik.pdf), diakses 6 Mei 2013.

Kusumadewi, Sri. 2003. Artificial Intelligence: Teknik dan Aplikasinya. Yogjakarta: Graha Ilmu.

Poole, David L & Mackworth, Alan K. 2010. Artificial Intelligence: Foundations of Computational Agents, Cambridge: Cambridge University Press.

Russell, Stuart & Norvig, Peter. 2010. Artificial Intelligence: A Modern Approach (Third Edition). New Jersey: Prentice Hall.

Suyanto. 2011. Artificial Intelligence: Searching, Reasoning, Planning and Learning. Bandung: Informatika.

Gambar

Gambar 1: Representasi Rubik’s Cube
Gambar 2: Pembagian pola
Gambar 3: Diagram Alir untuk Membangung Pattern Database
Gambar 4: Diagram Alir Algoritma IDA*
+3

Referensi

Dokumen terkait

Kecerdasan buatan dalam game merupakan kunci untuk memberikan pengalaman bermain yang terbaik, maka tujuan penelitian ini adalah untuk mengembangkan kecerdasan buatan

Panjang bentang bendung diusahakan sama dengan lebar normal alur sungai. Panjang panel bendung dibatasi oleh kemampuan produsen dan kemudahan pengangkutan bahan ke lokasi.

Bantuan tenaga guru/ dosen dari pemerintah jelas tidak akan bertentangan dengan esensi kekhasan sekolah keagamaan itu, karena pasal 35 (ayat 2) dan pasal 37 (ayat 5) menetapkan

Oleh karena itu, hukum semakin penting peranannya sebagai sarana untuk mewujudkan kebijakan-kebijakan pemerintah, Suatu kebijakan akan menjadi efektif apabila dilaksanakan

Nilai moral yang terkandung dalam sistem keluarga Ie memiliki nilai yang universal sebagai pengikatnya. Sebagaimana dalam keluarga pada umumnya baik keluarga kecil

Bina Rata maka dengan ini dapat kami sampaikan bahwa untuk paket tersebut diatas sudah dilakukan pemutusan kontrak dan dengan ini kami mohon kepada Bapak agar dapat

Pelabuhan (port) adalah derah perairan yang terlindung terhadap gelombang yang dilengkapi dengan fasilitas terminal laut meliputi dermaga dimana kapal dapat bertambat untuk

Untuk mengetahui ada atau tidak pengaruh Metode Inkuiri Berbantuan Alat Peraga terhadap Hasil Belajar Matematika Materi Luas dan Keliling Lingkaran Kelas VIII MTs Darul