2.4. Penelitian Terdahulu
Beberapa penelitian terdahulu yang telah dilakukan seputar topik ini adalah:
1. Analyzing Human Solving Methods for Rubik’s Cube and similar
PuzzlesPochmann , 2008 Pada penelitian ini penulis menganalisa berbagai metode yang digunakan
manusian untuk menyelesaikan rubik cube dan puzzle lainnya yang mirip tanpa bantuan alat komputasi apapun dan menggunakan hasil analisa tersebut
untuk membuat sebuah program penyelesaian rubik cube. 2. Finding Optimal Solutions to Rubiks Cube Using Pattern Databases Korf
,1997 Penelitian ini adalah penelitian pertama yang berupaya untuk menemukan
solusi optimal untuk beberapa sampel kubus teracak yang sudah ditentukan dengan menggunakan pendekatan komputasional , yaitu dengan
menggunakan algoritma pencarian IDA pada tabel pencarian dalam Pattern Database .
3. The Group Theoretic Rubiks cube Cotten ,2009 Penelitian ini ” membedah” Rubik’s cube pada sisi matematisnya , dimana
pendekatan teori grup digunakan untuk membagi – bagi kubus ke dalam
.subgoal tertentu agar penyelesain secara matematis dapat diperlihatkan
Universitas Sumatera Utara
BAB 3
ANALISIS DAN PERANCANGAN
Rubik’s cube adalah puzzle 3 dimensi yang cukup kompleks dalam penyelesaiannya karena terdapat begitu banyak permutasi yang dimungkinkan . Untuk membuat
aplikasi solver tentu penulis perlu melakukan analisis untuk merepresentasikan objek 3 dimensi ini menjadi bentuk struktur dan data agar dapat diproses untuk mencari
penyelesaiannya.
3.1. Analisis
Pada bab sebelumnya dijelaskan bahwa algoritma Kociemba akan diteraplan sebagai fungsi untuk mencari penyelesaian permainan
Rubik’s Cube . Bab ini akan menjelaskan bagaimana algoritma ini di aplikasikan pada perancangan aplikasi solver
di platform Android.
3.1.1 Analisis algoritma Kociemba Herbert Kociemba menggabungkan beberapa ide menjadi sebuah algoritma baru yang
sangat efektif dimana algoritma ini mampu memberian solusi sub- optimal dengan cepat. Ide pertamanya dibuat berdasarkan hasil kerja Thistlethwaite , tetapi Kociemba
hanya menggunakan dua fase . Fase pertamanya mengubah dari G ke G
1
= U ,D, R2, L2, F2, B2, dan fase keduanya dari G
1
ke G
2
= I . Jadi setiap fase Kociemba menggabungkan 2 fase dari Thistlethwaite secara bersamaan. Fase ini jelas terlalu
besar untuk diberikan tabel pencarian lengkap full table , tetapi dapat dibuatkan tabel pruning dan menggunakan IDA untuk menyelesaikan setiap fase. Ide besar kedua
adalah terus mencari setelah solusi fase pertama ditemukan , sebagaimana juga dengan algoritma Thistlethwaite , sebuah solusi fase 1 yang berbeda dapat memungkinkan
solusi fase 2 yang lebih baik , jadi setelah sebuah solusi ditemukan , solusi fase 1 lainnya dicoba untuk melihat apakah ia akan memberikan solusi fase 2 yang lebih baik
dan dengan demikian memberikan solusi keseluruhan yang lebih baik.
Universitas Sumatera Utara
Garis besar dari Algoritma dapat dibuat sebagai pseudocode berikut .Pada intinya adalah dua proses IDA :
maxLength=9999 function Kociemba position p
for depth d from 0 to
maxLength
Phase1search p; d endfor
endfunction function Phase1search position p; depth d
if d=0 then if
subgoal reached and last move was a quarter turn of R, L, F, or B then
Phase2start p
endif elseif d0 then
if prune1[p]=d then for each available move m
Phase1search result of m applied to p; d-1 endfor
endif endif
endfunctionfunction Phase2start position p for depth d from 0 to
maxLength - currentDepth
Phase2search p; d endfor
endfunction function Phase2search position p; depth d
if d=0 then if solved then
Found a solution
maxLength = currentDepth-1
endif elseif d0 then
if prune2[p]=d then for each available move m
Phase2search result of m applied to p; d-1 endfor
endif endif
endfunction
Universitas Sumatera Utara
gambaranpseudocode sebelumnya tentu belum mencukupi untuk menjelaskan rangkaian langkah pencarian penyelesaian
Rubik’s cube , maka penjelasan akan diperjelas di sub bab berikutnya
Universitas Sumatera Utara
3.1.2.Permutasi dan representasi tingkat facelet
Gambar.3.1
Kubus BersihKociemba,2013
Apabila kita melihat kubus bersih , kita melihat 6 9 facelet. Jika kita menerapkan langkah untuk kubus, maka facelet akan tersusun ulang. Penataan ulang seperti itu
disebut permutasi. Kita menggunakan enam huruf U, R, F, D, B, L untuk menerangkan enam gerakan
permukaan 90 ° searah jarum jam. Kami menggunakan misalnya F2 untuk menunjukkan putaran 180 ° dan F untuk menunjukkan putaran 270 ° , yaitu sama
dengan putaran 90 °berlawanan arah jarum jam dari permukaan depan. Jika kita menerapkan misalnya langkah F ke kubus di atas maka kita mendapatkan
hasil sebagai berikut:
Gambar.3.2 Kubus bersih setelah langkah FKociemba,2013
Universitas Sumatera Utara
Untuk menjelaskan representasi permutasi tersebut, kita hanya akan melihat facelets kuning sejenak. Ada dua cara untuk representasi ini , contoh :
1. Dengan representasi “dibawa ke ”
F1 dibawa ke F3 F1- F3, F2- F6, F3- F9, F4- F2, F5- F5, F6- F8, F7- F1, F8- F4, F9- F7. Kita bisa menulis
Letak awal F1 F2 F3 F4 F5 F6 F7 F8 F9
Letak setelah dibawa langkah F
F3 F6 F9 F2 F5 F8 F1 F4 F7
2. Dengan representasi “digantikan oleh”
F1 digantikan oleh F7 F1 -F7, F2 -F4, F3 -F1, F4 -F8, F5 -F5, F6 - F2, F7 -F9, F8 -F6, F9 - F3. Kita bisa menulis
Karena baris pertama dari selalu sama, kita dapat menghilangkan baris ini. Jadi kita bisa menulis hanya
F3, F6, F9, F2, F5, F8, F1, F4, F7 representasi dari “ dibawa ke” atau F7, F4, F1, F8, F5, F2, F9, F6, F3 representasi dari “di diganti dengan” .
Dalam kebanyakan kasus kita tidak akan menggunakan bentuk pendek tanpa kotak pemisah di sini demi kejelasan. Kita menggunakan representasi cara pertama pada
tingkat facelet, dan cara yang kedua pada tingkat cubie.Dalam sisa bab ini representasi menggunaka
n cara pertama “dibawa ke”. Kita mampu mendefinisikan sebuah produk dari dua permutasi. Misalnya :
F1 F2 F3 F4
F5 F6
F7 F8
F9 F2 F1 F6
F3 F5
F4 F8
F7 F9
F1 F2 F3 F4
F5 F6
F7 F8
F9 F3 F6 F9
F2 F5
F8 F1
F4 F7
Letak awal F1 F2 F3 F4 F5 F6 F7 F8 F9
Digantikan oleh F7 F4 F1 F8 F5 F2 F9 F6 F3
Universitas Sumatera Utara
= F1 F2 F3
F4 F5
F6 F7
F8 F9
F6 F3 F8 F9
F5 F2
F4 F1
F7
karena misalnya F1- F2 oleh permutasi pertama dan F2- F6 oleh permutasi kedua, jadi kita mendapatkan F1- F6 sebagain hasil produk.
Perbanyakan permutasi memiliki beberapa kesamaan dengan perkalian umum dengan angka, tapi ada satu perbedaan besar misalnya 3 5 = 5 3, Anda biasanya tidak
dapat menukar urutan dua permutasi. sebagai contoh kita balik urutan di atas, maka kita memiliki :
F1 F2 F3 F4
F5 F6
F7 F8
F9 F3 F6 F9
F2 F5
F8 F1
F4 F7
F1 F2 F3 F4
F5 F6
F7 F8
F9 F2 F1 F6
F3 F5
F4 F8
F7 F9
= F1 F2 F3
F4 F5
F6 F7
F8 F9
F6 F4 F9 F1
F5 F7
F2 F3
F8
dan hasilnya adalah sesuatu yang sama sekali berbeda. Perkalian dalam permutasi gerakan rubik tidak bersifat komutatif. Istilah lain yang penting adalah permutasi
terbalik. Pergunakan langkah F F1 F2 F3
F4 F5
F6 F7
F8 F9
F3 F6 F9 F2
F5 F8
F1 F4
F7 Dan kali kan dengan inverse nya F’
F1 F2 F3 F4
F5 F6
F7 F8
F9 F7 F4 F1
F8 F5
F2 F9
F6 F3
Maka hasilnya F1 F2 F3
F4 F5
F6 F7
F8 F9
F1 F2 F3 F4
F5 F6
F7 F8
F9
Universitas Sumatera Utara
Dalam hal ini Permutasi terakhir ini tidak menghasilkan apa-apa sama sekali, jadi ketika kita kalikan permutasi dengan kebalikannya, kita mendapatkan I yaitu
permutasi identitas , dalam contoh ini permutasi kedua adalah representansi dari F , jadi kesimpulannya F F = I .
Kita juga dapat memeriksa, bahwa F F = I, sehingga dalam kasus khusus ini dimana permutasi dikalikan dengan kebalikannya , perkalian adalah komutatif.
Tidak hanya langkah yang dapat dilihat sebagai permutasi, setiap kubus acak dapat ditulis sebagai permutasi.
Gambar.3.3 Contoh kubus sebagi permutasi faceletKociemba,2013
Karena U1- R3, U2- L2, U3- D3, U4- U8, ... kubus ini memiliki representasi R3, L2, D3, U8, ....
Jika Anda menyelesaikan kubus ini, Anda sebenarnya akan mencoba untuk menemukan permutasi kebalikan dari kubus ini terdiri sebagai produk dari permutasi
sesuai dengan gerakan dasar U, U2, U , R, R2, R dst . Ingat bahwa produk dari permutasi terbalik memberikan permutasi identitas, dan ini adalah kubus bersih.
Algoritma Kociemba mencoba untuk menemukan produk terpendek dari permutasi balik ini.
Tetapi representasi permutasi pada tingkat facelet tidak efektif untuk perhitungan cepat. Ada dua tingkat yang lebih tepat untuk mengatasinya.
Universitas Sumatera Utara
3.1.3 Representasi tingkat cubie Pada tingkat Cubie, objek yang dipermutasikan bukan lagi facelets , tetapi 12 edges
dan 8 corner .
Gambar.3.4 representasi tingkat cubieKociemba,2013
Pada gambar diatas , corner - URF corner – DFR , edge – FL dan edge – UL telah
ditandai .Cubie corner dinamai URF, UFL, ULB, UBR, DFR, DLF, DBL dan DRB. Cubie edges dinamai UR, UF, UL, UB, DR ,DF, DL, DB, FR, FL, BL dan BR.
Dalam tingkat cubie tidak dimungkinkan untuk merepresentasikan sebuah langkah atau kubus teracak dengan sebuah permutasi biasa , hal ini dikarenakan corner dapat
terputar dan edges dapat terbalik .
Gambar.3.5 Cubie pada posisi awal dengan orientasi yang salahKociemba,2013
Universitas Sumatera Utara
Ini adalah contoh cubie yang berada pada posisi awalnya , tetapi telah berubah orientasinya , corner
– UFL telah berputar searah jarum jam , corner – UBR berputar berlawanan arah jarum jam , edge
– DF dan edge – FR terbalik. Jika corner atau edge tidak berada pad posisi awalnya , maka terdapat banyak cara
untuk mendefinisikan orientasi dari cubie , tetapi untuk algoritma Two Phase diperlukan definisi sebagai berikut.
Gambar.3.6 Facelet acuanKociemba,2013
Facelet yang ditandai pada kubus bersih berikan adalah acuan untuk orientasi .
Pada gambar , corner pada posisi URF terputar searah jarum jam relatif
terhadap facelet acuan pada kubus bersih , begitu pula corner pada posisi DLF. Corner pada posisi UFL dan DFR terputar berlawanan arah jarum jam. Edges pada
posisi UF, DF, FL dan FR terputar.
Universitas Sumatera Utara
Gambar.3.7 Kubus acuan setelah maneuver FKociemba,2013
Kita menggunakan representasi “digantikan oleh” untuk menuliskan permutasi pada tingkat cubie. Pada contoh : URF digantikan oleh UFLURF‹-UFL, UFL‹-DLF, ULB
‹-ULB, UBR‹-UBR, DFR‹-URF, DLF‹-DFR, DBL ‹-DBL, DRB‹-DRB . Kita dapat
menuliskan
URF UFL
ULB UBR
DFR DLF
DBL DRB
UFL DLF
ULB UBR
URF DFR
DBL DRB
dalam kasus ini untuk permutasi corner , tetapi kita juga harus memperhatikan perubahan orientasi pada perubahan tersebut jadi kita menambahkan
F = URF
UFL ULB
UBR DFR
DLF DBL
DRB c:UFL;o:1 c:DLF;o:2 c:ULB;o:0 c:UBR;o:0 c:URF;o:2 c:DFR;o:1 c:DBL;o:0 c:DRB;o:0
Kita menggunakan “0” bila putarannya tidak berubah , “1” bila berputar searah jarum jam dan “2” untuk putaran berlawanan arah jarum jam . Dengan cara ini kita dapat
menambahkan orientasi dengan cara yang mudah . Permutasi pada edges didefinisikan dengan ca
ra yang mirip “1” untuk orientasi edge yang terputar dan “0” untuk edge yang tidak terputar.
Universitas Sumatera Utara
3.1.3.Representasi tingkat kordinat Pada tingkat kordinat kita menjelaskan permutasi dan orientasi dari corner dan edges
dengann angka .Tingkat abstraksi ini secara khusus sangat sesuai untuk mengimplementasikan sebuah algoritma yang cepat untuk menyelesaikan kubus.
a. Definisi dari kordinat orientasicorner Jika kita mengaplikasikan sebagai contoh manuver
– R kepada sebuah kubus bersih maka kita akan mendapatkan :
URF UFL
ULB UBR
DFR DLF
DBL DRB
c:DFR;o: 2
c:UFL;o: c:ULB;o:
c:URF;o: 1
c:DRB;o: 1
c:DLF;o: c:DBL;o:
c:UBR,o: 2
Orientasi dari ke 8 corner dideskripsikan oleh sebuah nomor dari 0 sampai 2186 berasal dari batas permutasi corner 37 -
Fungsinya dideskripsikan sebagai berikut : function CubieCube.CornOriCoord:Word;
var co: Corner; s: Word; begin
s:=0; for co:= URF to PredDRB do s:= 3s + PCorn[co].o;
Result:= s; end;
dalam contoh di atas fungsi ini akan mengkomputasi : 236 + 035 + 034 + 133 +132 + 031 + 030 = 1494
Ini merupakan 2001100 dalam system angka ternary.Untuk membuat metode ini bekerja kita harus menuliskan permutasi dalam representasi “digantikan oleh”.Kita
tidak memperhatikan orientasi dari corner-DRB , karena orientasinya telah ditentukan oleh orientasi dari ke 7 corner lainnya . Jumlah dari nilai orientasi corner harus dapat
dibagi dengan 3.
Universitas Sumatera Utara
b..Defnisi dari kordinat orientasi edge Orientasi kordinat edge didefinisikan secara analog. Orientasi dari ke 12 edges
dideskripsikan dengal nomor dari 0 sampai 2047 berasal dari 211 - 1. Fungsinya dideskripsikan sebagai berikut :
function CubieCube.EdgeOriCoord:Word; var ed: Edge; s: Word;
begin s:=0;
for ed:= UR to PredBR do s:= 2s + PEdge[ed].o; Result:= s;
end; Kita menggunakan sistem bilangan biner disini karena edge hanya memiliki 2
permukaan dan dengan begitu 2 macam orientasi . Kita tidak memperhatikan orientasi dari edge-BR karena telah ditentukan oleh orientasi 11 edge lainnya. Jumlah dari
seluruh orientasi kordinat edge haruslah genap .
Universitas Sumatera Utara
c.Definisi dari kordinat permutasi corner Permutasi kordinat corner diberikan dengan nomor dari 0 sampai 403198-1 .Dalam
contoh ini , kita menggunakan kembali permutasi dari manuver – R , tapi kali ini
tanpa memperhatikan orientasi . URF UFL ULB UBR DFR
DLF DBL DRB c:DFR c:UFL c:ULB c:URF c:DRB c:DLF c:DBL c:UBR
1 1
3 1
1 4
Kita membuat urutan natural dari corner dengan urutan : URFUFLULBUBRDFRDLFDBLDRB.
Nomor yang berada di baris ke tiga dibawah corner XXX di baris kedua merupakan pernyataan berapa nomor ke kiri dari kiri corner XXX yang memiliki urutan lebih
tinggi dari corner XXX. Seperti contoh di atas kita memiliki nilai 4 pada corner- UBR. Dari ke 7 corner ke kiri
dari corner-UBR , 4 corner memiliki nilai urutan yang lebih tinggi yaitu DFR,DLF,DBL,DRB.
Kita membangun permutasi kordinat dengan nomor dari baris ketiga. 11 + 12 + 33 + 04 + 15 + 16 + 47 = 21021
Jadi kita menggunakan sistem dengan basis variabel disini. ,Fungsinya dideskripsikan sebagai berikut :
function CubieCube.CornPermCoord: Word; var i,j: Corner; x,s: Integer;
begin x:= 0;
for i:= DRB downto SuccURF do begin
s:=0;
Universitas Sumatera Utara
for j:= Predi downto URF do begin
if PCorn[j].cPCorn[i].c then Incs; end;
x:= x+sOrdi; end;
Result:=x; end;
d. Definisi dari kordinat permutasi edge Permutasi kordinat edge dideskripsikan secara analog dengan nomor dari 0 sampai
479001599 12-1 . Fungsinya dideskripsikan sebagai berikut :
function CubieCube.EdgePermCoord: Integer; var i,j: Edge; x,s: Integer;
begin x:= 0;
for i:= BR downto SuccUR do begin
s:=0; for j:= Predi downto UR do
begin if PEdge[j].ePEdge[i].e then Incs;
end; x:= x+sOrdi;
end; Result:=x;
end Kita sekarang dapat mendeskripsikan tiap kubus dengan tuplex1,x2,x3,x4 yaitu0 =
x1 37, 0 = x2 211, 0 = x3 8, 0 = x4 12 dan hanya separuh dari kubus-kubus ini benar-benar dapat dibuat karena semua
Universitas Sumatera Utara
permutasi yang dapat dibuat dengan benar adalah genap dengan begitu kita hanya memiliki 12 8 2 permutasi \dengan tanpa menghiraukan orientasi.
Dengan begitu jumlah dari kubus berbeda adalah :
37 211 8 12 2 = 43.252.003.274.489.856.000
Universitas Sumatera Utara
3.1.4.Kubus equivalen dan simetri
Gambar 3.8 Equivalen dan simetriKociemba,2013
Jika meliihat ke dua kubus diatas. Mereka terlihat berbeda , tetapi pada dasarnya mereka adalah sama. Apabila kita memutar keseluruhan kubus pada gambar sebelah
kiri sebesar 90 derajat dengan sebuah sumbu yang dibuat melalu cubie center permukaan U dan perrmukaan D maka kita akan mendapatkan
Gambar 3.9 Contoh EquivalenKociemba,2013
Kubus diatas , dan bila kita mewarni kembali faceletnya sehingga warna dari permukaan
– F kembali merah dll , maka kita akan mendapatkan kubus di gambar sebelah kanan , kita menyebut ke dua kubus tersebut equivalen.
Dikarenakan kubus equivalen memiliki struktur yang sama , jumlah gerakan yang diperlukan untuk menyelesaikannya adalah sama.
Universitas Sumatera Utara
Mendefinisikan kubus equivalen dengan cara pewarnaan kembali facelet bukanlah hal kita ingin lakukan , karena dengan begitu kita kembali ke representasi dasar tingkat
facelet .Kita sebaiknya mendefinisikan equivalensi pada tingkat cubie dengan permutasi . Dengan S_U4 kita mendenotasikan putaran 90 derajat dengan sebuah
sumbu yang dibuat melalu cubie center permukaan-U dan perrmukaan-D , kemudian mendenotasikan permutasi yang mendefinisikan kubus sebelah kiri pada gambar 3.8
dengan A dan permutasi untuk kubus sebelah kanan dengan B , maka kita akan mempunyai
Gambar 3.10 Denotasi Equivalen dan SimetriKociemba,2013
B= S_U4
-1
AS_U4 dalam contoh ini . Secara umum dua permutasi A dan B adalah equivalen jika terdapat simetri S dari kubus dari kubus dengan B = S
-1
AS . Untuk setiap kubus terdapat 48 kubus yang equivalen , karena kubus memiliki 48
simetri , termasuk refleksi., 48 simetri dihasilkan oleh 4 simetri dasar, yaitu : 1. S_URF3, sebuah putaran 120 derajat dari kubus dengan sumbu yang melalui
corner – URF dan corner – DBL
2. S_F2, sebuah putaran 180 derajat dari kubus dengan sumbu yang melewati center
– F dan center – B 3. S_U4, sebuah putaran 90 derajat dari kubus dengan sumbu yang melewati
center – U dan center - D
4. S_LR2, sebuah refleksi dari bagian slice – RL
48 simetri unik dihasilkan sebagai produk dari : S_URF3
x1
S_F2
x2
S_U4
x3
S_LR2
x4
dengan x1 dari 0…2, x2 dari 0…1, x3 from 0…3 and x4 dari 0…1. Tuple ini x1,x2,x3,x4 di simpan sebagai angka natural
dari 0 sampai 47 dengan perhitungan sbb: 16x1 + 8x2 + 2x3 + x4
Universitas Sumatera Utara
Dengan begini tiap simetri memiliki nilai index yang terkait dari 0 sampai 47 i , dengan Si kita dapat mendenotasikan simetri mana yang berasal dari index tertentu
Dua kubus dengan permutasi A dan B adalah equivalen hanya dan jika hanya adanya index i dengan Si
-1
ASi = B
Universitas Sumatera Utara
Universitas Sumatera Utara
3
.2.3. Flowchart aplikasi Aplikasi dimulai dengan user memilih dari beberapa pilihan , mengisi warna facelet ,
membuat kubus random , atau megubah keadaan kubus dengan sebuah manuver . Setelah pengisiaan facelet selesai maka konsistensi kubus akan diperiksa berdasarkan
beberapa aturan apakah kubus tersebut kubus yang sah atau tidak .
START
Pewarnaan facelet
Pilih warna
Cek Konsistensi Kubus
Random Cube
yes Pencarian
penyelesaian
END
Tampilkan Hasil Pesan Error
Sesuai Masalah
No Pilh
Manuver
Ubah Facelet Sesuai Manuver
Gambar 3.12 Flowchart dasar Aplikasi
Universitas Sumatera Utara
3.3.Pemodelan Analisis
Pada penelitian ini digunakan UML sebagai bahasa pemodelan dan perancangan aplikasi. Model UML yang digunakan adalah use case diagram ,activity diagram , dan
class diagram . 3.3.1 Identifikasi use case diagram
Untuk mengetahui actor dan use case yang akan digunakan, maka dilakukan identifikasi actor dan identifikasi use case. Setelah mendapatkan actor dan use case
maka use case diagram dapat digambarkan.
Pengidentifikasian actor dalam aplikasi ini dilakukan dengan menjawab pertanyaan-pertanyaan berikut :
1. Siapa yang menggunakan sistem? Jawaban : Pengguna
2. Siapa yang diperlukan untuk melaksanakan fungsi pada sistem? Jawaban : Pengguna
3. Bagaimana pengguna menggunakan sistem? Jawaban : Pengguna memilih salah satu dari beberapa tombol yang
disediakan untuk fungsi tertentu. Saat memulai aplikasi pengguna dapat memilih untuk membuat kubus secara random ,
mengisi facelet secara manual , atau menggunakan manuver tertentu untuk merubah konten facelet. Saat facelet telah terisi
sesuai keinginan pengguna maka pengguna dapat mencari solusi untuk penyelesaian kubus yang telah diperiksa
konsistensi dengan interface yang disediakan aplikasi.
Dengan demikian actor yang diperoleh adalah pengguna. Untuk mendapatkan use case dari pengguna, maka harus ditentukan hal-hal apa saja yang dapat dilakukan
pengguna terhadap sistem. Berikut adalah hal-hal yang dapat dilakukan oleh penggun sebagai actor dalam sistem :
1. Merubah warna facelet dengan pilihan tombol warna. 2. Merubah konten facelet dengan mengaplikasikan sebuah manuver dari
pilihan yang disediakan. 3. Me-reset seluruh facelet menjadi kosong.
4. Mengisi konten facelet dengan menggunakan fungsi kubus random. 5. Mencari solusi dari kubus yang telah di input .
Universitas Sumatera Utara
Berikut adalah use casediagram yang digambarkan berdasarkan actor dan use case yang diperoleh.
Pilih warna facelet
Pengguna Pilih Manuver
Kubus Random
Terima panggilan masuk
Resume aplikasi
Minimize aplikasi extend
extend
SISTEM
Cari solusi
Gambar 3.13 Use case diagram Rubiks solver
Universitas Sumatera Utara
a. Use case pilih warnafacelet Berikut ini merupakan tabel dokumentasi naratif dari use case pilih warnafacelet.
Tabel 3.1 Dokumentasi naratif use case pilih warnafacelet
Nama use case Pilih warnafacelet
Aktor Pengguna
Deskripsi Use case ini berfungsi untuk memilih warna bagi pengguna untuk
mengisi facelet. Pre condition
Aplikasi dimulai . Normal flow
Kegiatan aktor Respon sistem
Pengguna memilih warnafacelet.
Sistem mengubah isi facelet sesuai pilihan warna.
Alternative flow Kegiatan aktor Respon sistem
Post condition Aplikasi berakhir jika ditutup pengguna.
Activity diagram untuk use case pilih warna faceletdapat dilihat pada gambar 3.14.
Pengguna Sistem
Pilih warna Ubah isi facelet
[Facelet terisi dan sesuai aturan
konsistensi] [Kubus selesai]
Gambar 3.14 Activitydiagram pilih warna
Universitas Sumatera Utara
b. Use case pilih manuver Berikut ini merupakan tabel dokumentasi naratif dari use case pilih manuver.
Tabel 3.2 Dokumentasi naratif use case pilih manuver
Nama use case Pilih Manuver
Aktor Pengguna
Deskripsi Use case ini berfungsi untuk merubah konten faceletsesusai dengan
manuver yang dipilih Pre condition
Aplikasi dimulai . Normal flow
Kegiatan aktor Respon sistem
Pengguna menekan salah satu tombol manuver .
Sistem mengubah isi facelet sesuai pilihan manuver.
Alternative flow Kegiatan aktor Respon sistem
Post condition Aplikasi berakhir jika ditutup pengguna.
Activity diagram untuk use case pilih manuver dapat dilihat pada gambar 3.15.
Pengguna Sistem
Pilih manuver Ubah isi facelet
[Facelet terisi dan sesuai aturan
konsistensi] [Kubus selesai]
Gambar 3.15 Activitydiagram pilih manuver
Universitas Sumatera Utara
c. Use case buat kubus random Berikut ini merupakan tabel dokumentasi naratif dari use case buat kubus random.
Tabel 3.3 Dokumentasi naratif use casekubus random
Nama use case Kubus random
Aktor Pengguna
Deskripsi Use case ini berfungsi untuk men
– generate isi facelet untuk membuat kubus yang sesuai aturan konsistensi secara random.
Pre condition Aplikasi dimulai .
Normal flow Kegiatan aktor
Respon sistem Pengguna menekan tombol
random. -Sistem men
– generate kubus random
-Sistem mengubah isi facelet sesuai hasil random.
Alternative flow Kegiatan aktor Respon sistem
Post condition Aplikasi berakhir jika ditutup pengguna.
Activity diagram untuk use casekubus random dapat dilihat pada gambar 3.16.
Pengguna Sistem
Kubus Random Generate Kubus Random
[Kubus selesai]
Ubah isi facelet
Gambar 3.16
Activitydiagram kubus random
Universitas Sumatera Utara
d. Use case cari solusi Berikut ini merupakan tabel dokumentasi naratif dari use casecari solusi
.
Tabel 3.4 Dokumentasi naratif use casecari solusi
Nama use case Cari solusi
Aktor Pengguna
Deskripsi Use case ini berfungsi untuk memberikan solusi dari kubus yang
ditelah dibuat sebelumnya. Pre condition
Facelet terisi sesuai aturan konsistensi kubus. Normal flow
Kegiatan aktor Respon sistem
Pengguna menekan tombol solve.
Sistem menjalankan fungsi pencarian solusi dan memberikan
hasil pada window pop-up. Alternative flow Kegiatan aktor
Respon sistem
Post condition Aplikasi berakhir jika ditutup pengguna.
Activity diagram untuk use casecari solusi dapat dilihat pada gambar 3.17.
Pengguna Sistem
Tekan tombol SOLVE
Tampilkan Result window
Cek Konsistensi Kubus
Tampilkan Error window
[Sesuai] [Error]
Tutup window
Gambar 3.17
Activitydiagram cari solusi
Universitas Sumatera Utara
e.Use caseminimimize aplikasi Berikut ini merupakan tabel dokumentasi naratif use case minimize aplikasi.
Tabel 3.5 Dokumentasi naratif use case minimize aplikasi
Nama use case Minimize aplikasi
Aktor Pengguna
Deskripsi Use caseini berfungsi untuk me-minimize aplikasi
Pre condition Aplikasi telah dibuka
Normal flow Kegiatan aktor
Respon sistem Pengguna menekan home
button Sistem me-minimize aplikasi
Alternative flow Kegiatan aktor Respon sistem
- -
Post condition Jika aplikasi dibuka kembali aplikasi dilanjutkan pada kondisi
terakhir yang dibuka
Activity diagram untuk use case minimize aplikasi dapat dilihat pada gambar 3.18.
Pengguna Sistem
Menekan Home button
Aplikasi diminimize
Membuka Kembali aplikasi
Tampilan terakhir ditampilkan
Gambar 3.18 Activitydiagramminimize aplikasi
Universitas Sumatera Utara
f. Use caseterima panggilan masuk Berikut ini merupakan tabel dokumentasi naratif use case terima panggilan masuk.
Tabel 3.6 Dokumentasi naratif use caseterima panggilan masuk
Nama use case Terima panggilan masuk
Aktor Pengguna
Deskripsi Use caseini berfungsi untuk menerima panggilan masuk saat
aplikasi sedang dibuka Pre condition
Panggilan masuk datang Normal flow
Kegiatan aktor Respon sistem
- Aplikasi langsung di-minimize
dan pengguna dapat menerima panggilan
Alternative flow Kegiatan aktor Respon sistem
- -
Post condition Jika aplikasi dibuka kembali aplikasi dilanjutkan pada layar
terakhir yang dibuka
Activity diagram untuk use caseterima panggilan masuk dapat dilihat pada gambar 3.19.
Pengguna Sistem
Panggilan masuk datang
Aplikasi diminimize
Permainan dipause
Menjawab panggilan
Tampilan pause ditampilkan
Mengakhiri panggilan
Gambar 3.19 Activity diagram terima panggilan masuk
Universitas Sumatera Utara
3.4 . Desain Antarmuka