Penelitian Terdahulu Analisis KESIMPULAN DAN SARAN

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