SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana Program Strata Satu Jurusan Teknik Informatika
Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia
RAHMI DJOHAN
10107823
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
BANDUNG
i
Oleh
Rahmi Djohan
10107823
Permainan rubik merupakan permainan puzzle mekanik untuk
mengembalikan kotakan–kotakan warna yang teracak kembali ke sisi-sisi yang
sebenarnya sesuai dengan kelompok warnanya. Permainan rubik yang dibuat
menerapkan algoritma layer by layer. Algoritma ini digunakan untuk
menyelesaikan rubik secara bertahap. Saat ini, masih banyak orang yang belum berhasil dalam menyusun rubik yang teracak karena rubik memang termasuk dalam permainan yang sulit untuk diselesaikan, dikarenakan harus menghafal beberapa notasi gerakan untuk menyelesaikannya. Padahal algoritma penyelesaian rubik secara manualpun sudah ditemukan.
Penerapan algoritma layer by layer dalam permainan rubik dibuat berdasarkan prosedur layer by layer untuk mendapatkan langkah terbaik menyelesaikan permainan rubik. Algoritma layer by layer digunakan untuk
menyelesaikan rubik yang teracak kembali kesisi kelompok warnanya. Algoritma
ini digunakan untuk menyelesaikan rubik mulai dari layer pertama/atas, kemudian layer kedua/tengah dan yang terakhir menyelesaikan layer ketiga/bawah.
Penyelesaian rubiks cube telah ditemukan dalam bentuk algoritma, oleh karena itu
program komputer atau perangkat lunak untuk menyelesaikan rubiks cube dapat
dibuat.
Hasil pengujian aplikasi ini, selain mendapatkan penyelesaian untuk
menyusun warna yang teracak, algoritma layer by layer juga memberikan hasil
pencarian solusi yang optimal yang merupakan susunan rubik kembali kepada
kelompok sisi warnanya. Pengujian alpha yang dihasilkan oleh layer by layer
Secara fungsional sistem yang telah dibangun sudah dapat menghasilkan keluaran
yang diharapkan, begitu juga secara perhitungan yang dilakukan dengan layer by
layer telah dihasilkan dari titik awal ke titik tujuan dalam menyelesaikan rubik yang teracak. Langkah yang dihasilkan adalah langkah secara terstruktur untuk menyusun rubik.
ii
ABSTRACT
ALGORITHM IMPLEMENTATION OF LAYER-BY-LAYER FOR COMPLETING THE GAME RUBIKS CUBE
By
Rahmi Djohan
10107823
The Game Rubik’s Cube is a puzzle mechanics for suitable the color boxed
back to the sides which correspondend the color group. This games was created
to implement the algorithm layer by layer and used to solved rubik’s with gradually. Currently, there are many people who had not succeeded to developing
a scrambled rubik’s cube. They can not solving rubiks shuffle because game Rubik cube is one of games difficult to resolve, this games need to memorizing some movement to solve it. Whereas solve the algorithm Rubik usually had been found.
Implementation the algorithm layer by layer in a game rubik based on procedure layer by layer to get how best step to solve this games. The algorithm used to solve Rubik start of the first layer on top, then the middle layer and the layer bottom. Rubiks cube settlement hade been found in the form of algorithms, therefore a computer program or software to complete the Rubiks cube can be made.
The results of testing this application, we can find the other solution than the colors resolution to organize a randomized, algorithm layer by layer also provides search results which is the optimal solution to the group re-arrangement of the Rubik colors. Testing alpha generated by layer by layer In a functional system that has been built already able to produce the expected output, as well as calculations performed with a layer by layer has been generated from the starting point to destination point in solving a scrambled Rubik. The resulting step is a step structured way to make rubik.
iii
Assalaammu’alaikum Wr. Wb.
Segala puji bagi Allah yang telah menganugerahkan kenikmatan dan
kesehatan lahir batin serta kemampuan kepada penulis, sehingga skripsi yang
berjudul IMPLEMENTASI ALGORITMA LAYER BY LAYER UNTUK
MENYELESAIKAN PERMAINAN RUBIKS CUBE dapat diselesaikan dengan
segala kekurangan, kelebihan dan keterbatasannya. Keberhasilan penulis dalam
menyelesaikan skripsi ini tidak lepas dari peran serta berbagai pihak yang telah
memberikan sumbangan pikiran, bimbingan, serta dorongan semangat pada
penulis.
Untuk itu pada kesempatan ini, penulis menyampaikan ucapan terimakasih
kepada semua pihak yang mendukung dalam proses pembuatan skripsi ini.
Sungguh tiada untaian kata yang tepat yang dapat penyusun sampaikan untuk
mengucapkan rasa terimakasih, hanya do’a yang dapat penulis panjatkan
kehadirat Ilahi Rabbi, semoga kebaikan dari semua pihak mendapatkan imbalan
yang berlipat ganda dari Allah SWT.
Penulis menyadari sepenuhnya bahwa dalam skripsi yang disusun masih
sangat jauh dari kesempurnaan. Hal ini tiada lain disebabkan oleh keterbatasan
pengetahuan dan pengalaman yang penulis miliki.
Akhirnya, penulis berharap semoga dapat bermanfaat khususnya bagi
penulis dan umumnya bagi pembaca. Dan penulis ingin mengucapkan terima
iv
2. Yth, Kedua orang tua, ibuhanda dan ayahanda (almarhum) yang dengan
tulus selalu mendo’akan, memberikan dorongan moril dan materil,
masukan, perhatian, dukungan sepenuhnya, dan kasih sayang yang tidak
ternilai dan tanpa batas yang telah kalian berikan serta kakak dan abangku
tercinta.
3. Dr. Ir. Eddy Suryanto Soegoto, M.Sc., selaku Rektor Universitas
Komputer Indonesia.
4. Dr. Arry Akhmad Arman, selaku Dekan Fakultas Teknik dan Ilmu
Komputer Universitas Komputer Indonesia.
5. Ibu Mira Kania Sabariah, S.T., M.T., selaku Ketua Jurusan Teknik
Informatika Fakultas Teknik dan Ilmu Komputer Unikom.
6. Ibu Tati Harihayati Mardzuki, S.T., M.T., selaku dosen wali IF-7 sekaligus
dosen penguji sidang skripsi yang telah membantu dalam kelancaran dari
berbagai permasalahan mengenai perkuliahan.
7. Bapak Irawan Afrianto, S.T., M.T., selaku dosen penguji yang telah
memberikan saran serta kritiknya dalam penyempurnaan skripsi ini.
8. Kepada teman-temanku IF-7’06, seluruh mahasiswa Teknik Informatika
v
Akhir kata, penulis berharap semoga laporan ini bisa sangat berguna dan
bermanfaat bagi penulis dan pembaca. Semoga segala jenis bantuan yang telah
diberikan kepada penulis mendapat balasan dari Allah SWT. Amin.
Wassalammu’alaikum Wr. Wb.
Bandung, Agustus 2011
1
1.1 Latar Belakang
Permainan rubik adalah sebuah permainan yang membutuhkan asah otak serta
perhitungan algoritma untuk bisa memecahkan teka-teki yang ada didalamnya. Rubik
dipandang sebagai permainan yang positif, terjangkau, melatih motorik dan daya
ingat serta melatih logika geometri atau susun bangun dalam kerangka otak pemain
rubik. Rubik merupakan permainan puzzle mekanik berbentuk kubus yang memiliki
warna pada setiap sisinya. Dibagi menjadi beberapa kotak kecil yang memiliki
kelompok warna awalan yang sama untuk masing-masing sisinya seperti warna
merah, kuning, hijau, biru, dan putih, yang dapat diputar sedemikian rupa sehingga
menghasilkan kotakan-kotakan yang acak dimasing-masing sisinya. Cara
memainkannya adalah dengan mengacak dan mengembalikan kotakan-kotakan
tersebut kesisi-sisi yang sebenarnya sesuai dengan kelompok warnanya, dengan
menggunakan berbagai cara atau algoritma penyelesaian. Untuk menyelesaikan rubik
terdapat algoritma-algoritma tertentu yang harus dihafalkan agar rubik kembali
tersusun sesuai dengan kelompok warnanya, karena kesulitan dalam menghafal
algoritma yang begitu banyak dan rumit maka banyak cuber yang tidak dapat
menyelesaikan rubik dengan optimal. Selain itu, karena tidak dapat menghafalkan
menyelesaikan rubik karena tanpa arahan dan petunjuk yang jelas yang dapat
dipahami. Padahal sampai saat ini telah ada berbagai cara atau metode untuk
menyelesaikan sebuah Rubik’s Cube dari keadaan acak kembali ke posisi semula,
salah satunya yaitu metode layer by layer. Algoritma layer by layer digunakan oleh
seorang pemain rubik beginner yaitu pemula yang ingin menyelesaikan rubik.
Algoritma layer by layer dapat menyelesaikan sebuah Rubik’s Cube acak dengan
menggunakan algoritma atau dengan menggunakan notasi langkah secara “layer by
layer” (layer=lapisan). Layer by Layer dapat menyelesaikan Rubik’s Cube mulai
layer pertama, kedua, lalu ketiga.
Permainan rubik dapat diselesaikan dengan beberapa langkah oleh seorang
pemain. Karena penyelesaian Rubik’s Cube telah ditemukan dalam bentuk algoritma
(notasi gerakan) hanya dengan beberapa langkah permainan selesai dan dapat
tersusun sesuai dengan warnanya, maka program komputer atau perangkat lunak
untuk menyelesaikan rubik pun dapat dibuat. Sehingga membantu dan memudahkan
para cuber untuk dapat memecahkan rubiks cube yang teracak agar kembali kepada
kelompok sisi sesuai dengan warnanya. Oleh karena itu penulis tertarik untuk
mengambil pokok bahasan skripsi bagaimana menerapkan algoritma layer by layer
pada perangkat lunak untuk menyelesaikan permainan Rubiks Cube dengan judul
“Implementasi Algoritma Layer–By-Layer Untuk Menyelesaikan Permainan
1.2 Perumusan Masalah
Berdasarkan latar belakang masalah yang telah diuraikan diatas, yang menjadi
pokok permasalahan adalah sebagai berikut :
1. Bagaimana algoritma layer by layer digunakan dan diimplementasikan dalam
permainan rubik untuk menyusun warna yang sama pada setiap sisinya.
2. Bagaimana efektifitas metode penyelesaian rubik dalam algoritma layer by
layer untuk memudahkan cuber dalam menyelesaikan permainan rubik.
1.3 Maksud dan Tujuan
Maksud dari perancangan permainan ini adalah menerapkan algoritma layer by
layer dalam menyusun warna yang sama pada permainan Rubik’s Cube.
Adapun tujuan dari penulisan skripsi ini adalah :
1. Menyelesaikan rubik dengan mengetahui kegunaan dan implementasi dari
algoritma layer by layer dalam aplikasi permainan rubik untuk menyusun
warna yang sama pada setiap sisinya.
2. Mengetahui performansi waktu dalam menyelesaikan rubik, diperiksa dari
menyelesaikan rubik secara manual dan penyelesaian rubik dengan
1.4 Batasan Masalah
Agar pembahasan menjadi terarah, maka permasalahan akan dibatasi terhadap
masalah-masalah berikut ini:
1. Jalan yang dihasilkan dari titik awal ke titik tujuan yang akan dibuat bersifat
pencarian, dengan menggunakan metode algoritma layer by layer untuk
penyelesaian permainan Rubik.
2. Aplikasi permainan yang akan dibangun hanya untuk menyelesaikan rubik cube
3x3x3.
3. Skema warna rubik yang bisa diselesaikan yaitu skema rubik yang memiliki
warna, dan tidak menggunakan rubik gambar.
4. Pengguna atau pemain dianggap mengetahui notasi gerak standar rubik.
5. Aplikasi ini dapat dimainkan oleh satu pemain, yaitu pemain yang
menyelesaikan rubik cube.
6. Metode analisis perancangan yang digunakan adalah analisis perancangan dan
pengembangan perangkat lunak berbasis objek, dimana alat yang digunakan
untuk pengembangan perangkat lunak, yaitu menggunakan pemodelan
UML(Unified Modeling Language).
7. Tools yang digunakan untuk membangun aplikasi ini menggunakan program
1.5 Metodologi Penelitian
Metodologi penelitian merupakan suatu proses yang digunakan untuk
memecahkan suatu masalah yang logis, dan memerlukan data untuk mendukung
terlaksananya suatu penelitian. Metode penelitian yang digunakan adalah metode
deskriptif. Metode deskriptif merupakan metode yang menggambarkan fakta-fakta
dan informasi dalam situasi atau kejadian dimana sekarang secara sistematis, faktual
dan akurat. Metode penelitian ini memiliki dua tahapan, yaitu tahap pengumpulan
data dan tahap pengembangan perangkat lunak. Metodologi yang digunakan dalam
penulisan skripsi ini adalah sebagai berikut :
1. Tahap pengumpulan data dengan cara :
Tahap pengumpulan data dapat diperoleh secara langsung dari objek
penelitian. Cara-cara yang mendukung untuk mendapatkan data primer adalah
sebagai berikut [1]:
a. Studi kepustakaan
Studi kepustakaan yaitu studi data yang dilakukan melalui penelusuran
literature atau buku-buku referensi pendukung sebagai landasan berfikir atau
teori dan dari data-data statistik yang didapat sebagai input sistem.
b. Studi lapangan
Studi ini dilakukan dengan cara mengunjungi tempat yang akan diteliti dan
1. Observasi
Yaitu studi yang dilakukan dengan terjun langsung pada objek atau
tempat serta lingkungannya untuk mendapatkan informasi yang
diperlukan.
2. Wawancara
Yaitu mengajukan pertanyaan kepada pihak terkait guna mendapatkan
informasi terhadap fokus masalah yang dihadapi.
2. Tahap pengembangan perangkat lunak.
Metode pembangunan perangkat lunak yang digunakan yaitu model Waterfall,
yang meliputi beberapa proses seperti yang digambarkan pada diagram gambar 1.1
dibawah ini.
Model ini telah lama digunakan untuk pengembangan perangkat lunak yang
disebut sebagai model atau paradigma siklus hidup klasik. Model ini sangat
terstruktur dan bersifat linier. Model ini memerlukan pendekatan yang sistematis dan
sekuensial di dalam pengembangan sistem perangkat lunaknya. Setiap tahap harus
terjadi interaksi dan kerjasama yang harmonis antara pengembang perngkat lunak
dengan pemesannya. Proyek akhir yang diterima oleh pengguna merupakan hasil satu
siklus pengembangan (mulai dari tahap analisis dan perancangan kebutuhan sistem
hingga integrasi dan pengujiannya) yang terdiri dari satu versi perangkat lunak.
Adapun uraian lebih jelasnya mengenai pengembangan perangkat lunak yang terdapat
dalam model waterfall (Gambar 1.1) adalah sebagai berikut [2]:
1. Rekayasa Sistem
Merupakan tahapan yang pertama kali dilakukan yaitu merumuskan aplikasi
penyelesaian permainan rubiks cube yang akan kita bangun. Hal ini
bertujuan agar pengembang benar-benar memahami aplikasi yang akan
dibangun dan langkah-langkah serta kebijakan apa saja yang berkaitan
dengan pengembangan aplikasi tersebut.
2. Analisis Sistem
Mengumpulkan kebutuhan secara lengkap mengenai penyelesaian
permainan rubiks cube kemudian dianalisis dan didefinisikan kebutuhan
yang harus dipenuhi oleh aplikasi yang akan dibangun. Tahap ini harus
3. Perancangan Sistem
Perancangan antarmuka dari hasil analisis kebutuhan yang telah selesai
dikumpulkan secara lengkap. Menghasilkan rancangan yang memenuhi
kebutuhan yang ditentukan selama tahapan requirements analisis. Hasil
akhirnya berupa spesifikasi rancangan yang sangat rinci sehinggga mudah
diwujudkan pada saat pemrograman.
4. Pengkodean Sistem
Pengkodean sistem adalah mengimplementasikan hasil desain ke dalam kode
atau bahasa yang dimengerti oleh mesin komputer dengan menggunakan
bahasa pemrograman tertentu. Hasil perancangan sistem diterjemahkan
kedalam kode-kode dengan menggunakan bahasa pemrograman yang sudah
ditentukan. Aplikasi yang dibangun langsung diuji baik secara unit.
5. Pengujian Sistem
Pengujian sistem adalah melakukan pengujian yang menghasilkan kebenaran
terhadap program yang sudah dibangun. Proses pengujian berfokus pada
logika internal perangkat lunak, memastikan bahwa semua pernyataan sudah
diuji dan memastikan apakah hasil yang diinginkan sudah tercapai atau
6. Pemeliharaan Sistem
Mengoperasikan aplikasi dilingkungannya dan melakukan pemeliharaan,
seperti penyesuaian atau perubahan karena adaptasi dengan situasi yang
sebenarnya.
7. Umpan Balik
Umpan balik adalah respon dari pengguna sistem yang bisa digunakan untuk
mengetahui sejauh mana aplikasi yang dibangun diterima oleh penggunanya.
1.6 Sistematika Penulisan
Pada sistematika penulisan laporan, penulis membagi dalam beberapa bab
dengan pokok-pokok permasalahannya. Sistematika secara umum adalah sebagai
berikut :
BAB I PENDAHULUAN
Bab I akan membahas mengenai latar belakang, perumusan masalah, maksud
dan tujuan, batasan masalah, metodologi penelitian serta sistematika penulisan.
BAB II LANDASAN TEORI
Bab II akan berisi tentang bahan, teori dan konsep yang digunakan sebagai
landasan atau acuan yang diperlukan terhadap analisis dan perancangan sistem hingga
implementasi dan pengujian.
BAB III ANALISIS DAN PERANCANGAN SISTEM
Bab III terbagi menjadi dua bagian yaitu analisis dan perancangan sistem.
analisis kebutuhan, menguraikan cara pemecahan masalah dengan menggunakan
algoritma layer-by-layer, kemudian akan dilakukan analisis terhadap algoritma
layer-by-layer untuk mengetahui performansi dalam rangka menyelesaikan permainan
rubiks cube. Selain itu terdapat perancangan sistem yang terbagi menjadi
perancangan komponen, perancangan prosedural dan perancangan antarmuka untuk
aplikasi yang akan dibangun sesuai dengan hasil analisis yang telah dibuat.
BAB IV IMPLEMENTASI DAN PENGUJIAN
Bab ini menjelaskan implementasi dari hasil analisis dan perancangan yang
telah dibuat ke dalam bentuk aplikasi pemrograman, kemudian dilakukan pengujian
terhadap aplikasi yang dibangun.
BAB V KESIMPULAN DAN SARAN
Pada bab ini penulis akan mengungkapkan kesimpulan apa saja berdasarkan
data hasil analisis yang diperoleh dari pengujian, serta saran yang dapat berguna bagi
11
BAB II
TINJAUAN PUSTAKA
2.1 Sejarah dan Perkembangan Rubik [3]
Rubik’s Cube atau kubus Rubik adalah sebuah teka-teki (puzzle) mekanis
dalam bentuk tiga dimensi, yang ditemukan pada tahun 1974 oleh seorang pemahat
dan profesor arsitektur dari Hungaria bernama Erno Rubik. Pada pertengahan tahun
70-an, Erno Rubik ingin membuat sebuah model sebagai alat pembelajaran untuk
membantu murid - muridnya memahami geometri tiga dimensi dan akhirnya tercipta
menjadi sebuah mainan teka - teki yang paling laris didunia.
Rubik memberi nama hasil temuannya itu “Magic Cube” – Kubus Ajaib, yang
kemudian mendapatkan hak paten Hungaria dan dijual pertama kali melalui
perusahaan Ideal Toy Corporation. Pada tahun 1980, perusahaan Ideal Toy mengubah
nama kubus ajaib tersebut menjadi “Rubik’s Cube”. Dan hingga saat ini, lebih dari
300 juta Rubik’s Cube telah dijual di seluruh dunia.
Sebuah Rubik’s Cube standar memiliki panjang sisi yang sama ukurannya
yaitu 5.7 cm. Terbentuk dari 26 potongan kecil yang disebut juga “cubelets” atau
“cubies”. Ada 6 “cubies” yang disatukan dalam sebuah kerangka yang mempunyai 6
sumbu (axis). Dan pada kerangka inilah, sisa 20 “cubies” dipasang sedemikian rupa
Rubik masuk ke Indonesia sekitar tahun 90-an dan mulai berkembang pesat
ketika masuk keabad millennium yaitu tahun 2000 ke atas. Pertengahan tahun 2009,
masuknya permainan kubik dengan nama speedcubing. Speedcubing adalah
menyelesaikan Kubus Rubik dalam waktu secepat mungkin dengan dihitung
waktunya. Dari situlah munculah komunitas - komunitas pencinta speedrubik
muncul, salah satunya Nusantara Speedcubing Association. Visi mereka adalah
memopulerkan speedcubing agar sejajar dengan olahraga yang lain seperti catur,
billiard, renang, dan sebagainya. Melalui misi mengadakan kompetisi dan kegiatan -
kegiatan speedcubing baik yang bertaraf lokal maupun internasional.
Nusantara Speedcubing Association merupakan wadah penggemar permainan
puzzle pada umumnya dan Kubus Rubik (Rubik's Cube) pada khususnya. Berawal
dari komunitas kecil dari beberapa orang yg memiliki minat dan ketertarikan yang
sama terhadap beberapa jenis puzzle terutama Rubik's Cube. Komunitas rubik ini
awalnya terbentuk ketika ada beberapa remaja penyuka rubik berkumpul untuk
membentuk suatu wadah atau komunitas. Nusantara Speedcubing Association
diresmikan ketika ada pertemuan Indonesia Open Cube 2009 sekitar 31 Agustus 2009
di Jakarta. Nusantara Speedcubing Association sendiri mempunyai anggota sendiri
dibeberapa kota. Setiap kota sendiri menamakannya komunitas ini, sebagai contoh di
Bandung yaitu Nusantara Speedcubing Association regional Bandung. Selain di
Bandung, Nusantara Speedcubing Association juga terbentuk di kota - kota seperti
Nusantara Speedcubing Association regional Bandung memiliki anggota
sekitar 12 orang. Biasanya mereka berkumpul atau diistilah mereka disebut gathering
di Foodcourt Bandung Elektronik Center. Pelaksanaan gathering mereka setiap
sebulan sekali, biasanya mereka berkumpul untuk membicarakan cara menyelesaikan
rubik - rubik yang sangat sulit. Kadang-kadang mereka bertukar pengalaman
bagaimana cara menyelesaikan permainan rubik. Selain itu mereka membicarakan
kompetisi - kompetisi rubik yang akan diadakan di Indonesia. Biasanya kompetisi -
kompetisi rubik di Indonesia dilaksanakan di kota Jakarta, Solo, dan Bandung. Akan
tetapi dalam turnamen tersebut, mereka pernah menjuarainya.
2.1.1. Mengenal Rubik [4]
Terminologi yang biasa dipakai untuk menjelaskan suatu algoritma Rubik’s
Cube sebagai berikut:
1. Rubik’s Cube terdiri atas enam buah sisi: depan (front), belakang (back),
kiri (left), kanan (right), atas (up), dan bawah (down) seperti pada gambar
2.1 yang menjelaskan sisi-sisi pada rubik.
2. Gerakan memutar sisi Rubik’s Cube searah jarum jam disimbolkan dengan
huruf pertama dari nama sisi tersebut dalam bahasa Inggris. Untuk yang
berlawanan arah dengan jarum jam, ditambahkan tanda petik (’).
sedangkan L’ berarti memutar sisi kiri (left) berlawanan arah dengan jarum
jam.
3. Gerakan memutar seluruh kubus tidak memiliki notasi yang tetap, sehingga
laporan tugas akhir yang berjudul “Implementasi Algoritma Layer By
Layer Untuk Menyelesaikan Permainan Rubiks Cube” menggunakan
“RotateRight”, “RotateLeft”, “RotateUp”, dan “RotateDown”. Nama
gerakan tersebut sudah menjelaskan maknanya.
Gambar 2.1. Penamaan sisi-sisi pada Rubik’s Cube
Untuk menampilkan Rubik’s Cube, digunakan tampilan dalam bentuk dua dimensi,
yaitu pada gambar 2.2 sebagai berikut:
2.1.2. Algoritma Dalam Permainan Rubik [5]
Sebelum mempelajari pada pengenalan notasi atau algoritma rubik, salah satu
hal yang perlu diperhatikan dalam memahami karakter rubik 3x3x3 adalah
pembagian kategori piece atau kubus kecil. Pembagian peace ini terdiri dari :
1. Center Piece : Piece (kubus kecil) yang terdapat ditengah disetiap sisi
rubik. Center piece berjumlah 6 buah sesuai dengan warna yang terdapat
disetiap sisi.
Gambar 2.3. Center Piece Rubik
2. Corner Piece : Piece yang terdapat pada setiap sudut disemua sisi rubik,
tentu jumlah seluruhnya 8 buah dimana sebuah corner piece terdiri dari 3
warna stiker.
3. Edge Piece : Piece yang mengelilingi center piece (bukan corner piece),
sehingga apabila dilihat dari atas akan membentuk cross. Piece ini
berjumlah 12 buah dimana sebuah edge piece terdiri dari 2 warna stiker.
Gambar 2.5. Edge Piece Rubik
Dalam menyelesaikan rubik, ada yang disebut dengan notasi. Notasi ini
mengindikasikan bagian dari cube yang harus diputar. Beberapa notasi yang
digabungkan menjadi satu set gerakan akan memberi efek tertentu pada rubik.
Gabungan notasi inilah yang disebut “algoritma”. Efek yang diberikan oleh algoritma
adalah efek yang dibutuhkan, sehingga sangat dibutuhkan untuk menyelesaikan cube.
Cara memutar cube ditulis dalam notasi khusus menggunakan huruf F, B, U, D, L, R,
dan seterusnya. Notasi tersebut digunakan secara internasional oleh para cuber di
seluruh dunia. Agar lebih jelas, perhatikan penjelasan dibawah ini [6]:
1. Single Turn (Putaran Tunggal)
Notasi single turn adalah notasi yang digunakan untuk memutar sebuah
sisi (layer) dari rubik sebesar seperempat putaran (90 derajat). Notasi ini memiliki
beberapa macam yang ditunjukkan dengan huruf, antara lain :
a. F (front atau sisi depan)
c. U (up atau sisi atas)
d. D (down atau sisi bawah)
e. R (right atau sisi kanan) f. L (left atau sisi kiri)
Implementasi gerakan notasi huruf pada rubik dapat dilihat pada tabel 2.1
sebagai berikut :
Tabel 2.1. Single Turn Rubik (Putaran Tunggal Rubik)
Notasi Gerakan Hasil
F
F’
B
B’
R’
L
L’
U
U’
D
D’
Secara umum notasi - notasi di atas dibagi menjadi dua kelompok. Kelompok
gerakan Front atau depan searah jarum jam. Kelompok kedua adalah: F', B', R', L', U',
dan D' yang gerakannya adalah berlawanan dengan arah jarum jam. Untuk
mendapatkan notasi-notasi di atas rubik harus diletakkan di depan pemain. Setiap
notasi yang ditambahkan angka 2 dibelakangnya, berarti sisi/layer tersebut diputar
180 derajat atau setengah putaran.
2. Double Turn (Putaran Ganda)
Notasi double turn adalah notasi yang digunakan untuk memutar dua sisi
(layer) dari rubik sekaligus sebesar seperempat putaran (90 derajat). Implementasi
gerakan notasi huruf pada rubik dapat dilihat pada tabel 2.2 sebagai berikut :
Tabel 2.2. Double Turn Rubik (Putaran Ganda Rubik)
Notasi Gerakan Hasil
F
F’
B’
R
R’
L
L’
U
D
D’
3. Slice Turn (Putaran Iris)
Notasi slice turn adalah notasi yang digunakan untuk memutar sisi tengah
rubik. Adapun notasi – notasi tersebut menggunakan huruf :
a. M (middle) b. E (Equator) c. S (Stand)
Implementasi gerakan notasi huruf pada rubik dapat dilihat pada tabel 2.3
sebagai berikut :
Tabel 2.3. Slice Turn Rubik (Putaran Iris Rubik)
Notasi Gerakan Hasil
M’
E
E’
S
S’
4. Rotation (Rotasi)
Pada rotasi, rubik yang diputar bukanlah lapis atau layer, melainkan cube
Tabel 2.4. Rotation Rubik (Putaran Rotasi Rubik)
Notasi Gerakan Hasil
x
x’
y
y’
z
2.1.3. Pengaruh dan Manfaat Rubik [7]
Memainkan rubik mempunyai tantangan tersendiri, biasanya tantangannya
adalah untuk dapat mengembalikan seluruh enam sisi kubus menjadi warna aslinya,
tampaknya memiliki efek hipnotis pada beragam individu yang luar biasa tanpa
mengenal batasan umur, pekerjaan, kekayaan dan kedudukan sosial.
Biasanya anak muda, anak sekolah dan mahasiswa, yang berada dibarisan terdepan
dalam membuat gerakan besar - besaran perkembangan rubik yang melanda dunia.
Mereka adalah orang - orang yang terbukti paling ahli dalam memecahkan teka - teki,
membentuk klub rubik’s cube, mengatur tata cara kompetisi rubik, dan yang
terpenting adalah bahwa mereka rela menderita sakit pergelangan tangan untuk
bermain rubik terus - menerus selama berjam - jam dan bahkan berhari - hari dengan
sebuah teka - teki tiga dimensi yang misterius itu.
Permainan rubik dapat dirasakan manfaatnya. Pertama, melatih saraf sensorik,
ketika belajar mengenali warna dan pola dari bentuk 3D rubik. Kemudian, saraf
motorik juga akan terlatih, karena koordinasi jari-jari tangan dalam bermain, terutama
dalam melakukan speedcubing (bermain dengan kecepatan tinggi). Lebih jauh,
rubik’s cube akan melatih daya ingat ketika si pemain melakukan memorisasi
pola-pola tertentu untuk menyelesaikan rubik yang teracak. Dan, terakhir, permainan ini
2.1.4. Metode - Metode Penyelesaian Rubik [8]
Metode yang sangat dikenal dalam penyelesaian rubik yaitu Metode Jessica
Fridrich, Jessica Fridrich adalah seorang dosen bergelar Professor yang berhasil
menemukan metode tercepat dalam menyelesaikan rubik. Metode ini dikenal dengan
sebutan CFOP (Cross-F2L-OLL-PLL). Ada 4 tahap yang perlu dilalui untuk
menyamakan keenam sisi Rubiks cube dari posisi yang paling acak sekalipun. Berikut
pembahasannya:
1. Cross (Metode Layer By Layer): Metode ini merupakan penyelesaian rubik secara
layer by layer. Hal pertama yang harus dilakukan untuk menyelesaikan Rubiks
cube adalah membuat Cross. Cross adalah tanda silang ( atau tanda + ) pada salah
satu sisi warna Rubiks cube. Cross yang benar bisa dilihat digambar berikut:
Dari gambar disamping bisa kita lihat bahwa cross dibuat pada
sisi putih. Dari gambar tersebut juga terlihat warna merah dan
hijau (serta orange dan biru pada sisi sebaliknya) tergabung
dengan center. Untuk membuat cross pada posisi cube teracak murni
menggunakan logika dan latihan secara kontinyu. Pada awalnya seseorang pemula
memerlukan waktu hingga 1 menit untuk membuat cross. Lambat laun proses ini
bisa diturunkan hingga waktu idel 2-3 detik.
2. F2L : merupakan singkatan dari First two Layer atau tahap dimana kita
menyelesaikan 2 layer pertama. Dalam metode full fridrich kita membentuk
1 dan 2 sekaligus. Tahap ini memerlukan latihan yang terus
menerus. F2L tidak sulit untuk dipelajari, namun tingkat
kesulitannya terletak pada bagaimana melakukannya secara
cepat. F2L bisa ditekan hingga 8 detik rata - rata untuk
menyelesaikannya. Bagi yang masih kesulitan belajar F2L bisa menggunakan
metode layer by layer untuk menyelesaikan tahap ini.
Cross dan F2L digunakan untuk menyelesaikan layer 1 dan layer 2. Pada
metode pemula untuk menyelesaikan layer 1 dan 2 dibagi dalam 3 tahap yakni
membuat cross, menyelesaikan layer pertama ( dengan menempatkan 4 corner ke
tempat asalnya) lalu menyelesaikan layer kedua (memasukkan edge ke tempat
yang sesuai). Perbedaan dengan F2L adalah, pada F2L corner dan edge
digabungkan terlebih dulu, lalu dimasukkan ketempatnya sehingga lebih
menghemat langkah dan waktu. Sementara itu untuk menyelesaikan layer terakhir
dibagi dalam 2 tahap, yakni mengoreksi arah (OLL) dan mengoreksi tempat
(PLL).
3. OLL: merupakan singkatan dari Orientating Last Layer. Segera setelah layer 1 dan
2 selesai, akan terbentuk pola tertentu dan tujuan kita adalah
menyamakan warna sehingga „top face’ akan memiliki warna
yang sama (seringnya warna kuning, jika cross dilakukan pada
warna putih dengan skema warna standar). Ada 57 kasus pada
OLL yang menyebabkan kita perlu menghafal 57 langkah yang berbeda. Waktu
menghafal 57 langkah sekaligus bisa melakukan OLL dalam 2 tahap (sebagai
konsekuensinya waktu akan lebih lambat), yakni membetulkan seluruh edge dan
disusul membetulkan seluruh corner. Hal ini dikenal sebagai 2 look OLL. Hanya
perlu mempelajari 1-2 langkah untuk membetulkan orientasi edge dan 7 langkah
untuk membetulkan orientasi corner.
4. PLL: Merupakan singkatan dari Permutation Last layer. Disini kita saling
menukar posisi corner dan edge ke tempat semula. Ada 21
langkah pada tahap ini yang secara ideal rata rata diseksekusi
dalam 2-4 detik. Apabila sulit dalam menghafal 21 langkah bisa
melakukannya dalam 2 tahap (dikenal sebagai 2 look PLL) yaitu
mengoreksi letak corner disusul edge.
2.2 Algoritma Layer by Layer [7]
Ada beberapa metode penyelesaian rubik namun metode yang paling
sederhana dan mudah untuk diaplikasikan adalah metode layer by layer. Algoritma
layer by layer merupakan varian dari algoritma greedy, tetapi karena penggunaan
algoritma ini dipakai untuk menyelesaikan permainan rubik maka untuk itu pada
pengaplikasiannya algoritma greedy menjadi algoritma layer by layer untuk
permainan rubik. Pada algoritma greedy yang diberikan yaitu membentuk solusi
langkah per langkah (step by step) sama halnya dengan algoritma layer by layer pada
alternatif solusi untuk setiap kondisi yang “mungkin” terjadi pada cube kita. Setiap
kondisi tetap memiliki algoritma kunci yang harus kita hapalkan sisanya, kondisi
untuk algoritma kunci tersebut yang kita ciptakan. Pada prinsipnya metode
pemecahan cube secara layer by layer akan selalu melalui tahapan berikut:
1. Form cross on first layer– pembentukan silang pada layer pertama. Kuncinya
adalah pastikan bagian tepi dari setiap cross memiliki warna yang sama
dengan bagian tengah dari setiap sisi.
2. Finishing first layer – penyelesaian layer pertama. Tidak ada langkah khusus
disini – namun justru ini yang membuat tahapan penyelesaian bisa menjadi
panjang jika tidak melakukan perhitungan dari awal.
3. Penyelesaian second layer – penyelesaian layer kedua. Langkah yang perlu
diperhatikan hanya langkah untuk menyelesaikan bagian tepi dari layer kedua.
Rata-rata setiap tahapan untuk setiap tepi memakan 9 langkah.
4. Form cross on last layer – pembentukan silang pada layer terakhir. Ada dua
langkah yang perlu diperhatikan dalam pembentukan cross dilayer terakhir,
yaitu jika sebagian cross sudah terbentuk pada dua sisi dengan kondisi (1) dua
sisi berdekatan sudah terbentuk, atau (2) dua sisi berseberangan sudah
terbentuk. Didalam tahapan ini tidak perlu langsung menyusun cross dengan
warna yang sesuai, cukup bentuk cross–regardless it’s color.
5. Atur kesesuaian warna dari cross yang telah terbentuk. Satu langkah
6. Atur masing - masing sudut pada layer terakhir. Pengaturan ini memerlukan paling tidak 2 langkah untuk mengatur posisi pada sudut yang benar dan
mengatur warna pada setiap sudut.
2.3 Dasar 3D Pada Flash [9]
Rotasi disekitar sumbu (x, y, z) 3d akan membahas tentang titik-titik 3D yang
berputar disekitar sebuah sumbu. Untuk memutar data sekitar x atau y atau z sumbu,
sebagai contoh, kita memutar (x, y, z) sekitar sumbu Z, maka kita dapat mengabaikan
nilai z dan mengambil (x, y) dalam 2D. Untuk memutar (x, y) dalam 2D untuk delta
busur sudut, kita hanya mengkonversi (x, y) data ke dalam jari-jari dan sudut. Radius
adalah jarak (x, y) ke (0,0), yaitu Math.sqrt (x * x + y * y); busur sudut dalam format
PI adalah Math.atan2 (y, x); sekarang memutar sudut delta. Radius adalah sama.
Sementara sudut harus meningkat oleh delta. Jadi, yang baru (x, y) x = jari-jari *
Math.cos (sudut + delta); y = radius * Math.sin (sudut + delta).
Persamaan matematika yang sama dapat dimodifikasi dengan mudah untuk
disekitar sumbu X. Tetapi bagaimana jika sumbu Z tidak lurus, tetapi memiliki
sedikit penyimpangan? Maka kita tidak bisa hanya mengambil (x, y), kita perlu untuk
menangani z. Jadi, setiap langkah adalah memutar disekitar sumbu koordinat.
Pertama diputar disekitar sumbu Z, untuk membuat sumbu pada bidang YZ. Lalu
memutar disekitar sumbu X untuk membuat sumbu yang sama sebagai sumbu Y,
sekarang dapat dengan mudah melakukan rotasi di sekitar Y. Setelah ini, memutar
dengan sudut yang sama seperti diatas untuk sumbu Y kembali ke YZ. Kemudian
memutar balik sudut untuk membuat sumbu kembali ke vektor (x, y, z) asli.
Lihat gambar dibawah ini untuk menunjukkan langkah-langkah.
Gambar 2.6. Rotasi sekitar sumbu 3D
Gambar 2.8. Putaran sumbu X untuk membuat sumbu sesuai dengan sumbu Z
Gambar 2.9.Putaran sumbu Z
Gambar 2.10. Putaran sumbu X
2.4 Memutar Kubus 3D [9]
Pada pembahasan ini, penulis menunjukkan cara membuat sebuah kubus 3D
berputar, dengan permukaan bertekstur. Jadi langkah pertama adalah untuk setiap 8
titik data 3d untuk mewakili sebuah kubus dalam 3D.
Gambar 2.12. Kubus dalam 3D
Tidak ada efek perspektif, sehingga untuk membuat gambar 3D, kita misalkan z off.
Ini 8 titik sudut untuk membangun menjadi kubus yang memiliki 6 sisi. Jadi, kita
perlu 6 movieklip skewing untuk menutupi mereka. Bahkan, sebelum kita dapat
persegi untuk menutupi keenam sisi tersebut. Kemudian, kita tinggal memasang
grafis pada kotak gelap untuk membuat mereka bertekstur.
Persamaan di atas adalah sebuah rotasi pada gambar 2D. Hal ini berguna ketika kita
melakukan rotasi dalam 2D. Hal ini juga dapat diterapkan ke gambar 3D. Kita perlu
memperluas fungsi ini sedikit. Dalam hal ini, kita perlu memutar 8 titik sudut. Jadi,
saya akan menyebutnya 8 kali. Juga, kita perlu rotasi sepanjang sumbu Y atau X.
Jadi, setiap 8 titik sudut condong 6 persegi klip untuk menutupi 6 sisi kubus. Hal ini
diperbarui bila kita memutar ini 8 titik sepanjang x, y atau z sumbu. Kemudian, kita
membuatnya mewah dengan menambahkan bayangan menurut data Z dan gambar
Langkah pertama untuk membangun kubus seperti gambar diatas adalah menyiapkan
8 titik dalam ruang 3d. Langkah kedua adalah menyiapkan 6 sisi.
Kemudian disetiap movieclip wajah, dan membuatnya menggambar segi empat diisi
untuk menghubungkan sudut.
2.5 UML(Unified Modeling Language ) [10]
UML (Unified Modeling Language) adalah sebuah bahasa untuk menentukan,
visualisasi, kontruksi, dan mendokumentasikan artifact (bagian dari informasi yang
digunakan atau dihasilkan dalam suatu proses pembuatan perangkat lunak. Artifact
dapat berupa model, deskripsi atau perangkat lunak) dari sistem perangkat lunak,
UML merupakan suatu kumpulan teknik terbaik yang telah terbukti sukses
dalam memodelkan sistem yang besar dan kompleks. UML tidak hanya digunakan
dalam proses pemodelan perangkat lunak, namun hampir dalam semua bidang yang
membutuhkan pemodelan.
Bagian-bagian utama dari UML adalah view, diagram, model element, dan
general mechanism.
1. View
View digunakan untuk melihat sistem yang dimodelkan dari beberapa aspek
yang berbeda. View bukan melihat grafik, tapi merupakan suatu abstraksi yang berisi
sejumlah diagram. Beberapa jenis view dalam UML antara lain: use case view,
logical view, component view, concurrency view, dan deployment view.
a) Use case view
Mendeskripsikan fungsionalitas sistem yang seharusnya dilakukan
sesuai yang diinginkan external actors. Actor yang berinteraksi dengan sistem
dapat berupa user atau sistem lainnya. View ini digambarkan dalam use case
diagrams dan kadang-kadang dengan activity diagrams. View ini digunakan
terutama untuk pelanggan, perancang (designer), pengembang (developer),
dan penguji sistem (tester).
b) Logical view
Mendeskripsikan bagaimana fungsionalitas dari sistem, struktur statis
(class, object,dan relationship) dan kolaborasi dinamis yang terjadi ketika
digambarkan dalam class diagrams untuk struktur statis dan dalam state,
sequence, collaboration, dan activity diagram untuk model dinamisnya. View
ini digunakan untuk perancang (designer) dan pengembang (developer).
c) Component view
Mendeskripsikan implementasi dan ketergantungan modul. Komponen
yang merupakan tipe lainnya dari code module diperlihatkan dengan struktur
dan ketergantungannya juga alokasi sumber daya komponen dan informasi
administrative lainnya. View ini digambarkan dalam component view dan
digunakan untuk pengembang (developer).
d) Concurrency view
Membagi sistem ke dalam proses dan prosesor. View ini digambarkan
dalam diagram dinamis (state, sequence, collaboration, dan activity
diagrams) dan diagram implementasi (component dan deployment diagrams)
serta digunakan untuk pengembang (developer), pengintegrasi (integrator),
dan penguji (tester).
e) Deployment view
Mendeskripsikan fisik dari sistem seperti komputer dan perangkat
(nodes) dan bagaimana hubungannya dengan lainnya. View ini digambarkan
dalam deployment diagrams dan digunakan untuk pengembang (developer),
2. Diagram
Diagram berbentuk grafik yang menunjukkan simbol elemen model yang
disusun untuk mengilustrasikan bagian atau aspek tertentu dari sistem. Sebuah
diagram merupakan bagian dari suatu view tertentu dan ketika digambarkan biasanya
dialokasikan untuk view tertentu. Adapun jenis diagram antara lain dapat dilihat pada
gambar 2.13 sebagai berikut:
Gambar 2.13. Diagram UML
Penjelasan diagram UML pada gambar 2.13 akan lebih jelas dapat dilihat
dibawah ini:
a) Use Case Diagram
Use case adalah abstraksi dari interaksi antara sistem dan actor. Use
case bekerja dengan cara mendeskripsikan tipe interaksi antara user sebuah
sistem dengan sistemnya sendiri melalui sebuah cerita bagaimana sebuah
bagaimana sistem akan terlihat di mata user. Sedangkan use case diagram
memfasilitasi komunikasi diantara analis dan pengguna serta antara analis dan
client.
b) Class Diagram
Class adalah dekripsi kelompok obyek-obyek dengan property,
perilaku (operasi) dan relasi yang sama. Sehingga dengan adanya class
diagram dapat memberikan pandangan global atas sebuah sistem. Hal tersebut
tercermin dari class- class yang ada dan relasinya satu dengan yang lainnya.
Sebuah sistem biasanya mempunyai beberapa class diagram. Class diagram
sangat membantu dalam visualisasi struktur kelas dari suatu sistem.
c) Component Diagram
Component software merupakan bagian fisik dari sebuah sistem,
karena menetap di komputer tidak berada di benak para analis. Komponen
merupakan implementasi software dari sebuah atau lebih class. Komponen
dapat berupa source code, komponen biner, atau executable component.
Sebuah komponen berisi informasi tentang logic class atau class yang
diimplementasikan sehingga membuat pemetaan dari logical view ke
component view. Sehingga component diagram merepresentasikan dunia
nyata yaitu component software yang mengandung component, interface dan
d) Deployment Diagram
Menggambarkan tata letak sebuah sistem secara fisik, menampakkan
bagian-bagian software yang berjalan pada bagian-bagian hardware,
menunjukkan hubungan komputer dengan perangkat (nodes) satu sama lain
dan jenis hubungannya. Di dalam nodes, executeable component dan object
yang dialokasikan untuk memperlihatkan unit perangkat lunak yang
dieksekusi oleh node tertentu dan ketergantungan komponen.
e) State Diagram
Menggambarkan semua state (kondisi) yang dimiliki oleh suatu object
dari suatu class dan keadaan yang menyebabkan state berubah. Kejadian
dapat berupa object lain yang mengirim pesan. State class tidak digambarkan
untuk semua class, hanya yang mempunyai sejumlah state yang terdefinisi
dengan baik dan kondisi class berubah oleh state yang berbeda.
f) Sequence Diagram
Sequence diagram digunakan untuk menggambarkan perilaku pada
sebuah scenario. Kegunaannya untuk menunjukkan rangkaian pesan yang
dikirim antara object juga interaksi antara object, sesuatu yang terjadi pada
titik tertentu dalam eksekusi sistem.
f) Collaboration Diagram
Menggambarkan kolaborasi dinamis seperti sequence diagrams.
Dalam menunjukkan pertukaran pesan, collaboration diagrams
penekannya pada waktu atau urutan gunakan sequence diagrams, tapi jika
penekanannya pada konteks gunakan collaboration diagram.
g) Activity Diagram
Menggambarkan rangkaian aliran dari aktivitas, digunakan untuk
mendeskripsikan aktifitas yang dibentuk dalam suatu operasi sehingga dapat
juga digunakan untuk aktifitas lainnya seperti use case atau interaksi.
2.6 Macromedia Flash 8 [11]
Flash adalah perangkat lunak komputer (soft-ware) dalam kategori authoring
tool. Program flash ini biasa digunakan untuk membangun sebuah aplikasi yang
memerlukan interaksi dari pemakainya (user). Dengan kemudahan yang ditawarkan,
beberapa kalangan diakademisi bahkan mulai menggunakan flash untuk membuat
sebuah presentasi yang menarik. Sabagai authoring tool, flash mempunyai
kemampuan untuk memadukan semua media yang ada (multimedia) dari mulai
sebuah animasi yang sederhana, video dan gabungan antara gerak gambar, suara dan
video sekaligus. Flash menggunakan konsep grafis vector. Penggunaan konsep dasar
vector membuat aplikasi yang dihasilkan oleh flash mempunyai besaran file relative
berukuran kecil dengan tetap mempertahankan kualitas. Hal ini tentu saja sangat
menguntungkan untuk digunakan dimana saja termasuk didalam dunia internet. User
Gambar 2.14. User Interface Macromedia Flash 8
Pada gambar 2.14 User interface di Flash terbagi atas 5 bagian, yaitu
penjelasannya sebagai berikut:
1. Stage
Stage merupakan daerah yang bewarna putih, dimana area kerja utama jika
akan membuat animasi maupun aplikasi flash lainnya. Seluruh objek/gambar/animasi
yang ada distage nantinya akan tampil diflash movie, dan sebaliknya apabila
objek/gambar tersebut berada di daerah abu-abu di pinggiran Stage tidak akan terlihat
diflash movie.
2. Tools
3. Panel
Merupakan kumpulan kotak-kotak yang berfungsi untuk mengubah, mengatur
dan mempercantik objek yang ada di stage. Misalkan memberi warna gradasi,
meletakan objek persis di tengah stage, dan merotasi objek dengan sudut yang tepat.
4. property inspector
Merupakan bagian informasi objek yang ada di stage. sebagai contoh, klik
saja salah satu objek di stage, maka informasinya akan terlihat disini. atau klik saja di
daerah kosong yang ada di stage, maka informasi mengenai stage akan terlihat.
5. Timeline
Terdiri dari baris dan kolom. Kolom berhubungan dengan waktu, baris
berhubungan dengan objek. Setiap software animasi pasti memliki timeline untuk
mencatat aktivitas objek kapan harus tampil di stage dan kapan harus menghilang.
2.6.1 Pengenalan Tool Utama Dalam Flash [12]
Ada beberapa tool utama dalam flash, dapat dilihat pada gambar 2.15 dibawah
ini serta penjelasannya sebagai berikut :
1. Selection Tool (V)
Merupakan tool utama yang berfungsi untuk menseleksi benda, baik berupa
2. Subselection Tool (A)
Merupakan tool utama yang berfungsi untuk menseleksi dan memodifikasi
titik maupun garis (stroke).
3. Free Transform Tool (Q)
Merupakan tool yang berfungsi untuk memodifikasi scale (skala), skew
(kemiringan), rotation (rotasi), distorsi, dan envelop.
4. Gradien transform tool (F)
Merupakan tool yang berfungsi untuk memodifikasi warna warna gradasi.
5. Line tool (N)
Tool yang berfungsi untuk membentuk garis.
6. Laso Tool (L)
Tool yang berfungsi untuk menyeleksi benda.
7. Pen Tool (P)
Tool yang berfungsi untuk membuat sebuah bentuk path, dapat digunakan
juga untuk tracing.
8. Text Tool (T)
Tool yang berfungsi untuk membuat tulisan.
9. Oval Tool (O)
10. Rectangle Tool (R)
Tool yang berfungsi untuk membuat bentuk kotak. Rectangle Tool juga
memiliki sub tool, yakni polystar Tool yang berfungsi membuat bermacam bentuk
segi.
11. Pencil Tool (Y)
Pencil Tool berfungsi untuk membuat goresan yang seperti pensil. setiap
goresan akan menjadi tipe stroke.
12. Brush Tool (B)
Berfungsi untuk membuat goresan seperti brush (kuas) yang merupakan tipe
fill.
13. Ink bottle Tool (S)
Berfungsi untuk membuat stroke.
14. Paint bucket (K)
Berfungsi untuk membuat fill.
14. Eye dropper (I)
Berfungsi untuk mengambil sampel warna.
15. Eraser (E)
Gambar 2.15. Tool utama dalam flash
2.6.2 Hal-Hal Dasar Dalam Flash [13]
Hal – hal dasar dalam flash akan membahas mengenai bagaimana mengetahui
dan mengubah properti, mengerti konsep shape dan sifatnya, group dan ungroup,
zoom dan hand tool. Penjelasannya sebagai berikut:
1. Mengetahui dan mengubah properti
Property inspector merupakan salah satu bagian yang sangat penting di flash.
Disini dapat diketahui properti/informasi detail tiap objek, Klik daerah kosong di
stage, kemudian dapat terlihat ada beberapa informasi: size : 550 x 400. yang berarti
tinggi stage adalah 550 pixel dan lebar stage 400 pixel. Background: warna stage
12 frame. Sedangkan tombol publish setting berfungsi untuk mengatur setting-an
detail pada saat akan mempublikasi file flash yang telah kita buat.
2. Mengerti konsep shape dan sifatnya
Shape terdiri dari garis (stroke) dan warna isian (fill). Kita akan belajar
memahami sifat-sifat dari shape karena banyak orang yang kebingungan bila tidak
memahami sifat shape.
a. Fill
Shape merupakan warna isian dari sebuah shape.
b. Stroke
Stroke tidak memiliki garis karena stroke itu sendiri adalah garis.
Dengan adanya stroke style, bentuk stroke bisa diubah menjadi beberapa pilihan. Cara
mengubah stroke style: seleksi terlebih dahulu stroke obyek yang ada, kemudian pilih
stroke style dibagian property inspector (setting default stroke style adalah solid).
Ketika membuat sebuah shape, secara otomatis terbentuk fill dan stroke.
namun fill dan stroke ini bisa dipisahkan. Klik 1x daerah fill, maka kita hanya
menseleksi fill-nya saja. Untuk menseleksi keduanya, klik 2x daerah fill.
untuk menseleksi stroke-nya saja, klik 1x pada stroke. Untuk memisahkan fill dan
stroke, seleksi fill atau stroke, lalu drag/tarik. Untuk melepas seleksi, klik daerah
luar/workspace/stage yang tidak ada objek. Pemberian warna stroke dan fill memiliki
cara yang berbeda. Untuk memberi warna garis atau stroke, gunakanlah ink bottle
sudah berisi warna dan ingin mengubahnya, pilih selection Tool (V) seleksi fill atau
stroke yang akan diubah warna nya, selanjutnya pada Tool Color, kita bisa
menggunakan stroke color untuk mewarnai garis dan fill color untuk mewarnai
daerah isian warna.
3. Group dan Ungroup
Buat dua bentuk lingkaran atau kotak yang jaraknya berjauhan, kemudian
seleksi 1 objek diantaranya lalu pindahkan tepat di atas objek yang lain lalu pisahkan.
Yang terjadi adalah obejek yang tertimpa menjadi rusak. Untuk menghindari hal ini,
gunakanlah grup dengan cara seleksi terlebih dahulu objek yang akan digrup, lalu
tekan menu Modify>Grup atau gunakan shortcut CTRL+G. Untuk memecah grup,
gunakan ungroup dengan cara pilih menu Modify>Ungroup atau dengan shortcut
CTRL+SHIFT+G. Objek yang sudah digrup tidak dapat diubah warnanya secara
langsung seperti biasa. Jika ingin mengubah warna objek, bisa di lakukan dengan cara
masuk ke dalam grup dengan cara klik dua kali grupnya, lalu ubah warnanya. atau
dengan cara mengungroup terlebih dahulu objek tersebut.
4. Zoom dan Hand Tool
Zoom tool (gambar kaca pembesar, shortcut Z) berfungsi Untuk memperbesar
dan memperkecil tampilan objek-objek yang ada di stage. Klik zoom tool, lalu klik
pada stage untuk zoom-in, untuk zoom-out tahan tombol Alt, lalu klik. Adapun cara
alternatif selain zoom tool adalah CTRL + dan CTRL - Hand Tool (gambar tangan,
shortcut H) berfungsi sebagai penggeser tampilan stage. Adapun cara alternatif
49
BAB III
ANALISIS DAN PERANCANGAN SISTEM
Pada bab ini akan dibahas mengenai analisis dan perancangan pada sistem
yang dibangun yakni penerapan algoritma layer by layer dalam menyelesaikan
permainan rubiks cube untuk menyusun warna yang sama pada masing – masing
sisi rubik. Dalam pembahasan akan dijelaskan yang meliputi komponen –
komponen penyelesaian rubik secara layer by layer.
3.1 Deskripsi Masalah
Deskripsi masalah adalah suatu gambaran masalah yang diangkat dalam
penulisan skripsi tentang penerapan algoritma layer by layer. Layer by layer
merupakan algoritma penyelesaian permainan rubik yang dilakukan secara
langkah per langkah (step by step). Algoritma layer by layer digunakan untuk
pemain rubik beginner atau pemain rubik pemula yang ingin menyelesaikan
permainan rubik. Algoritma layer by layer akan diterapkan dalam pencarian
langkah pada permainan rubik untuk menyelesaikan rubik menyusun warna yang
sama pada setiap sisi yang ada. Pencarian langkah terbaik pada permainan rubik
akan diasumsikan dengan titik awal (keadaan pertama) dan titik tujuan (keadaan
akhir) yang diimplementasikan pada pencarian langkah. Ruang yang akan
dibangun akan berbentuk cube (susunan kotak persegi) yaitu bentuk dari
layer by layer. Hasil pencarian algoritma tersebut akan menghasilkan langkah
untuk menyelesaikan permainan rubik yaitu dari suatu titik awalke titik tujuan.
3.2 Komponen Permainan
Untuk menyelesaikan permainan rubik cube 3x3x3 dibutuhkan beberapa
komponen, komponen yang dibutuhkan adalah sebagai berikut :
1. Rubik Cube 3x3x3
2. Algoritma atau notasi langkah–langkah utama metode layer by layer untuk
menyelesaikan rubik.
3.2.1 Rubik Cube 3x3x3
Pengguna Game ini akan dimainkan oleh satu orang. Pengguna dapat
menyelesaikan permainan rubik yang disediakan oleh sistem dalam keadaan
teracak. Komputer menyediakan aplikasi rubik cube 3x3x3 sesuai dengan
konfigurasi yang telah disediakan oleh aplikasi. Dalam kasus ini banyaknya baris
dan kolom pada rubik 3D adalah 3x3x3. Seperti pada gambar 3.1 dibawah ini :
Gambar 3.1. Rubik Cube
Aplikasi rubik juga menyediakan Rubiks Cube dengan tampilan dalam bentuk dua
Gambar 3.2. Tampilan dua dimensi Rubiks Cube
3.2.2 Langkah – Langkah Utama Layer By Layer
Pada permainan rubik daftar langkah dibuat terurut yang dimulai dari
kotak yang paling tengah karena kotak yang paling tengah adalah kotak yang
paling strategis dalam penyusunan deret. Daftar langkah ini merupakan array yang
berisi informasi status kotak dan urutan langkah alternatif bagi komputer. Layer
by Layer dapat menyelesaikan Rubik’s Cube mulai layer pertama, kedua, lalu
ketiga. Secara garis besar, penyelesaian Rubik’s Cube dengan algoritma layer by
layer dapat dijelaskan sebagai berikut:
1. Selesaikan layer pertama/atas.
a. Bentuk cross disisi atas, sesuaikan dengan warna keempat sisi di
samping.
b. Isi keempat sudut atas dengan kubus yang sesuai.
2. Selesaikan layer kedua/tengah.
3. Selesaikan layer ketiga/bawah.
a. Bentuk cross disisi bawah, tanpa merusak kedua layer di atas.
b. Tempatkan keempat sudut bawah di tempat sebenarnya,
disesuaikan dengan warna dari ketiga sisi yang bersisian
dengannya.
c. Bentuk supaya sisi bawah memiliki warna yang uniform.
d. Pertukarkan kubus - kubus yang belum sesuai pada tempatnya.
Komputer harus mencari langkah yang sudah berderet dan memberikan
nilai kepada pemilik langkah tersebut. Deret didalam rubik dicari dari kotak
paling awal yang mengandung indeks kotak sepanjang deret rubik. Pencarian
deret rubik dilakukan secara vertical, horizontal, diagonal kiri atas ke kanan
bawah, diagonal kanan atas ke kiri bawah atau sebaliknya sesuai dengan layer –
layer pada rubik seperti digambar 3.3.
Gambar 3.3. Penyelesaian Rubik
3.3 Analisis Masalah
Algoritma layer by layer akan diterapkan pada analisis masalah pada
pencarian untuk menyusun warna yang teracak pada permainan rubiks cube,
untuk mencari penyelesaian dan banyaknya gerakan oleh pemain yang dapat
untuk menyelesaikan rubik. Algoritma ini dikenal sangat mudah untuk dihafalkan
oleh cuber pemula.
Dalam kondisi penyelesaian dengan menggunakan algoritma layer by
layer pada setiap pergerakan yang dilakukan pada layer rubik akan disimpan pada
suatu Array. Array ini akan digunakan untuk melakukan pengecekan apakah kita
sudah dapat menyelesaikan rubik cube yang teracak atau belum. Pemain dapat
menyelesaikan permainan rubik yang teracak kemudian sistem akan memeriksa
rubiks cube tersebut sudah tersusun setiap warna pada setiap sisinya. Rubik yang
belum teracak memiliki keenam sisi warna yang masih tersusun seperti pada
gambar 3.4 dibawah ini.
Gambar 3.4. Enam Sisi Rubik Yang Belum Teracak
3.4 Analisis Pemecahan Masalah Dengan Algoritma Layer By Layer
Rubik’s Cube adalah permainan kubus 3x3x3 yang memiliki warna yang
berbeda pada tiap sisinya. Kubus ini terdiri atas dua puluh enam kubus kecil yang
disatukan. Satu kubus kecil di tengah dianggap tidak ada karena berperan sebagai
sumbu kubus saat memutar sisinya. Pada prinsipnya metode pemecahan cube
1. Form cross on first layer – pembentukan silang pada layer pertama.
Kuncinya adalah pastikan bagian tepi dari setiap cross memiliki warna
yang sama dengan bagian tengah dari setiap sisi.
2. Finishing first layer – penyelesaian layer pertama. Tidak ada langkah
khusus disini – namun justru ini yang membuat tahapan penyelesaian bisa
menjadi panjang jika tidak melakukan perhitungan dari awal.
3. Penyelesaian second layer – penyelesaian layer kedua. Langkah yang
perlu diperhatikan hanya langkah untuk menyelesaikan bagian tepi dari
layer kedua. Rata-rata setiap tahapan untuk setiap tepi memakan 9
berseberangan sudah terbentuk. Didalam tahapan ini tidak perlu langsung
menyusun cross dengan warna yang sesuai, cukup bentuk cross –
regardless it’s color.
5. Atur kesesuaian warna dari cross yang telah terbentuk. Satu langkah
diperlukan untuk menyelesaikannya.
6. Atur masing - masing sudut pada layer terakhir. Pengaturan ini
memerlukan paling tidak dua langkah untuk mengatur posisi pada sudut
Kombinasi warna pada Rubik’s Cube sangatlah banyak. Pertama (kemungkinan
ujung), kombinasi setiap kotak kecil yang berada di ujung, terdapat kemungkinan
8 tempat yang berbeda dan pada setiap tempat itu satu kotak kecil memiliki 3
warna yang berbeda. Kedua (kemungkinan rusuk), kotak kecil yang berada di
rusuk, terdapat 12 tempat yang berbeda dan pada setiap tempat itu terdapat 2
warna yang berbeda. Sedangkan(kemungkinan tengah) kotak kecil di tengah tiap –
tiap sisi tidak akan berubah tempat, hanya ada satu kemungkinan saja. Jadi,
banyaknya kombinasi warna yang ada adalah :
Kombinasi = kemungkinan ujung x kemungkinan rusuk x kemungkinan tengah
= (8! x 38) x (12! x 212) x 1
= 519.024.039.293.878.272.000
≈ 5,19 x 1020
Penjelasan diatas selanjutnya dikembangkan untuk menyelesaikan permainan
kubus rubik yang terdiri dari 6 sisi (layer). Setiap sisi terdiri dari 9 kotak kecil.
Ketika kubus Rubik diputar oleh pengguna, spesifik "rotasi" akan bergerak dan
pengaturan warna sisi masing-masing akan berubah.
Dapat didefinisikan warna putih sebagai warna pusat untuk menyelesaikan
rubik. Ketika blok paling atas memutar clockwisely, melibatkan 1 sisi dan 1 rotasi.
Sisi yang memutar adalah warna putih, rotasi warna yang berputar putih persegi
dengan notasi (0-1-2-5-8-7-6-3) dengan notasi (4) ditengah. Rotasi cincin sisi, jika
dimulai dengan sisi warna merah, maka akan menjadi :
1. Merah persegi dengan notasi 6-7-8
2. Hijau Persegi dengan notasi 0-3-6
3. Orange persegi dengan rotasi 2-1-0
4. Biru persegi dengan notasi 8-5-2
Urutan data ini disimpan dengan inisial id atau keyword dari setiap sisi. Id
sisi putih 1, maka data ini disimpan dalam sisi1, dan rotasi1. Jadi, kesemuanya
penyelesaian rubik memiliki 6 set data. Ketika sisi warna no.1 diaktifkan.
Persegi-persegi kecil yang ada didalam setiap sisi diinisialkan sebagai [objN] :
objN objN objN
objN objN objN
objN objN objN
[sq(objN, 0), sq(objN, 1), sq(objN, 2), sq(objN, 5), sq(objN, 8),
sq(objN, 7), sq(objN, 6), sq(objN, 3), dan sebagai titik pusat sq(objN,4)] 3
1 2
Sq 0
4 5
6 7 8
Gambar 3.6. Inisial id atau keyword dari setiap sisi rubik
Persegi disini menjadi array dan melakukan pergeseran - mendorong dan
menyimpannya kembali dengan nilai yang sudah ditentukan. Itu akan menjadi