• Tidak ada hasil yang ditemukan

Implementasi Algoritma Layer-By-Layer Untuk Menyelesaikan Permainan Rubiks Cube

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Algoritma Layer-By-Layer Untuk Menyelesaikan Permainan Rubiks Cube"

Copied!
146
0
0

Teks penuh

(1)

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

(2)

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.

(3)

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.

(4)

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

(5)

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

(6)

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

(7)

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

(8)

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 LayerBy-Layer Untuk Menyelesaikan Permainan

(9)

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

(10)

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

(11)

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

(12)

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.

(13)

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

(14)

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

(15)

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.

(16)

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

(17)

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

(18)

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

(19)

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 (’).

(20)

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:

(21)

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.

(22)

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)

(23)

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’

(24)

R’

L

L’

U

U’

D

D’

Secara umum notasi - notasi di atas dibagi menjadi dua kelompok. Kelompok

(25)

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’

(26)

B’

R

R’

L

L’

U

(27)

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

(28)

M’

E

E’

S

S’

4. Rotation (Rotasi)

Pada rotasi, rubik yang diputar bukanlah lapis atau layer, melainkan cube

(29)

Tabel 2.4. Rotation Rubik (Putaran Rotasi Rubik)

Notasi Gerakan Hasil

x

x’

y

y’

z

(30)

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

(31)

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

(32)

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

(33)

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

(34)

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 crossregardless it’s color.

5. Atur kesesuaian warna dari cross yang telah terbentuk. Satu langkah

(35)

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

(36)

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

(37)

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

(38)

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

(39)

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.

(40)

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

(41)

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,

(42)

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

(43)

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),

(44)

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

(45)

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

(46)

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

(47)

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

(48)

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

(49)

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

(50)

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)

(51)

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)

(52)

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

(53)

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

(54)

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

(55)

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

(56)

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

(57)

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.

(58)

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

(59)

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

(60)

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

(61)

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.

(62)

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

Gambar

Gambar 2.8.  Putaran sumbu X untuk membuat sumbu sesuai dengan sumbu Z
gambar 2.13 sebagai berikut:
Gambar 2.14. User Interface Macromedia Flash 8
Gambar 3.1. Rubik Cube
+7

Referensi

Dokumen terkait

Penelitian ini menggunakan suatuvariabel Bagaimana merancang perangkat lunak administrasi unit instalasi gawat darurat pada rsud bandar lampung menggunakan delphi 7.0

dapat disimpulkan bahwa rerata hasil belajar matematika untuk semua sel yang dibentuk oleh variasi model pembelajaran kooperatif (Ai) dan gaya berpikir siswa (Bj)

Banyak ibu-ibu yang mengeluh bahwa setelah menopause dan lansia merasa menjadi pencemas. Kecemasan yang timbul sering dihubungkan dengan adanya

Kontaminasi pada ternak unggas dapat terjadi pada saat ayam masih dalam peternakan yaitu akibat kontaminasi horizontal eksternal pada telur telur saat pengeraman

Dengan penggunaan program GeoGebra yang mudah juga dapat meningkatkan rasas percaya diri peserta didik dengan mengetahui hasil dari integral dari suatu fungsi

Member-checking dan prolonged observation sebagai salah satu strategi untuk meningkatkan kredibilitas merupakan bagian dari proses AR dan menjadi kekuatan dalam penelitian AR

Selain itu, dilihat dari perspektif supply chain lain yakni perspektif make, terdapat unnecessary activity didalam sistem produksi semen yaitu defect atau

Secara tradisional ada dua cara pencampuran adonan roti, yaitu sponge and dough method atau metode babon dan straight dough method atau cara langsung, metode lainnya,