IMPLEMENTASI PENYELESAIAN PERMAINAN RUBIK CUBE
DENGAN ALGORITMA KOCIEMBA PADA PLATFORM
ANDROID
SKRIPSI
TOMMI NIASRI
081402026
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
IMPLEMENTASI PENYELESAIAN PERMAINAN RUBIK CUBE
DENGAN ALGORITMA KOCIEMBA PADA PLATFORM ANDROID
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar
Sarjana Teknologi Informasi
TOMMI NIASRI
081402026
PROGRAM STUDI TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
PERSETUJUAN
Judul : IMPLEMENTASI PENYELESAIAN PERMAINAN RUBIK CUBE DENGAN ALGORITMA KOCIEMBA PADA PLATFORM ANDROID
Kategori : SKRIPSI
Nama : TOMMI NIASRI Nomor Induk Mahasiswa : 081402026
Program Studi : SARJANA (S1) TEKNOLOGI INFORMASI Departemen : TEKNOLOGI INFORMASI
Fakultas : ILMU KOMPUTER DAN
Pembimbing 2 Pembimbing 1
M. AndriBudiman,S.T,M.Comp.Sc,M.E.M Dr.Syahril Efendi ,S.Si,M.I.T NIP 197510082008011001 NIP 196711101996021001
Diketahui/Disetujui oleh
Program Studi S1 Teknologi Informasi Ketua,
iii
PERNYATAAN
IMPLEMENTASI PENYELESAIAN PERMAINAN RUBIK CUBE DENGAN ALGORITMA KOCIEMBA PADA PLATFORM ANDROID
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Juli 2015
UCAPAN TERIMA KASIH
Puji dan syukur penulis panjatkan kehadirat Allah SWT yang telah memberikan rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan skripsi ini sebagai syarat untuk memperoleh gelar Sarjana Komputer, Program Studi S1 Teknologi Informasi Departemen Teknologi Informasi Universitas Sumatera Utara. Ucapan terima kasih penulis sampaikan kepada Dr.Syahril Efendi ,S.Si,M.I.T. selaku pembimbing satu danM. AndriBudiman,S.T,M.Comp.Sc,M.E.M
selakupermbimbing dua yang telah banyak meluangkan waktunya dalam memberikan masukan-masukan kepada penulis. Ucapan terima kasih juga ditujukan kepada Romi Fadillah Rahmat, B.Comp.Sc., Msc. dan M. Anggia Muchtar, ST., MM.IT., yang telah bersedia menjadi dosen penguji. Ucapan terima kasih juga ditujukan kepada Ketua Departemen Teknologi Informasi, M. Anggia Muchtar, ST., MM.IT. dan, Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, semua dosen serta pegawai TU di Program Studi S1 Teknologi Informasi FASILKOMTI.
v
ABSTRAK
Rubik’s Cube adalah permainan puzzle populer yang merupakan puzzle dengan penjualan tercatat terbesar sepanjang masa , kepopuleran ini tidak didukung oleh penyediaan aplikasi penyelesaian pada platform Android yang sedang berkembang pesat maka sebuah aplikasi penyelesaian perlu dibuat. Algoritma dua fase Kociemba adalah algoritma yang mengaplikasikan Teori Group dalam matematika dan menyelesaikan kubus dengan solusi sub-optimal, merupakan pilihan terbaik menilai keterbatasan resource pada pada perangkat mobile seperti android tidak memungkinkan pencarian brute-force pada 4.3 x 1019 kombinasi yang dimiliki rubik cube. Rubik cube akan direpresentasikan dalam beberapa tingkat dalam bentuk data agar dapat dicari penyelesaiannya.. Solusi yang dihasilkan cukup singkat dibandingkan dengan metode lain seperti layer per layer fridrich method .
ABSTRACT
Rubik’s Cube is a popular puzzle game with the highest number of sales ever recorded, unfortunately this popularity is not followed by the availability of rubik’s cube solver in the rapidly developing Android platform and thus author feels the urgency of building one. Kociemba Two Phase Algorithm , an algorithm which applies Group theory in mathematics and gives sub-optimal solution to solve the cube , is considered the best choice for this particular case where the resource limitation of a mobile device such as Android is prohibiting us from doing a brute-foce search on 4.3 x 10 19 combinations of the cube. Rubik’s Cube will be represented in various level form of data so it can be processed to find a solution. The generated solution is short enough when compared to other methods such as layer per layer fridrich method.
vii
DAFTARISI
Halaman
Persetujuan ii
Pernyataan iii
Ucapan Terima Kasih iv
Abstrak v
1.6. Metodologi Penelitian 3
1.7. Sistematika Penulisan 4
Bab 2 Landasan Teori 5
2.1. PermainanRubik’s Cube 5
2.1.1. Struktur Kubus 6
2.1.2. Notasi Singmaster 7
2.1.3. Kajian Matematis 9
2.2. Algoritma Kociemba 10
2.3. Android 12
2.4. Penelitian Terdahulu 19
Bab 3 Analisis dan Perancangan 20
3.1. Analisis 20
3.1.2. Permutasi dan representasi tingkat facelet 23
3.1.3. Representasi tingkat cubie 27
a.Definisi dari kordinat orientasi corner 30 b.Definisi dari kordinat orientasi edge 31
c.Definisi dari kordinat permutasi corner 32
d.Definisi dari permutasi kordinat 33
3.1.4. Kubus equivalen dan simetri 35
3.2. Gambaran Umum Perancangan 38
3.2.1. Persiapan sistem 38
3.2.2. Persiapan perancangan aplikasi 38
3.2.3. Flowchart aplikasi 39
Bab 4 Implementasi dan Pengujian 49
4.1. Implementasi 49
4.1.1. Konfigurasi Perangkat Keras. 49
ix
DAFTAR TABEL
Halaman
Tabel 3.1 Dokumentasi naratif use case pilih warna facelet 42 Tabel 3.2 Dokumentasi naratif use case pilih manuver 43 Tabel 3.3 Dokumentasi naratif use case kubus random 44 Tabel 3.4 Dokumentasi naratif use casecari solusi 45
Tabel 3.5 Dokumentasi naratif use case minimize 46
DAFTAR GAMBAR
Halaman
Gambar 2.1 Susunan standar warna 5
Gambar 2.2 Center ,Corner , Edges secara berturut 6
Gambar 2.3 Arsitektur platform Android 13
Gambar 3.1 Kubus bersih 23
Gambar 3.2 Kubus bersih setelah langkah - F 23
Gambar 3.3 Contoh kubus sebagai permutasi facelet 26
Gambar 3.4 Representasi tingkat cubie 27
Gambar 3.5 Cubie pada posisi awal dengan orientasi yang salah 27
Gambar 3.6 Facelet acuan 28
Gambar 3.7 Kubus acuan setelah manuver - F 29
Gambar 3.8 Equivalen dan simetri 35
Gambar 3.9 Contoh Equivalen 35
Gambar 3.10 Denotasi equivalen dan simetri 36
Gambar 3.11 Kerangka Rubik’s Cube 38
Gambar 3.12 Flowchart dasar Aplikasi 39
Gambar 3.13 Use case diagram Rubiks solver 41
Gambar 3.14 Activity diagram pilih warna facelet 47
Gambar 3.15 Activity diagram pilih manuver 43
Gambar 3.16 Activity diagram kubus random 44
Gambar 3.17 Activity diagram cari solusi 45
Gambar 3.18 Activity diagram minimize aplikasi 46
Gambar 3.19 Activity diagram terima panggilan masuk 47
Gambar 3.20 Antarmuka 48
Gambar 4.1 Tampilan aplikasi 50
Gambar 4.2 Pewarnaan facelet 51
Gambar 4.3 Kubus random sesuai aturan konsistensi 51
Gambar 4.4 Tampilan hasil 52