Penerapan Algoritma Column by Column dan Depth-First Search dalam Permainan Babylon Tower

PENERAPAN ALGORITMA COLUMN BY COLUMN DAN
DEPTH-FIRST SEARCH DALAM PERMAINAN
BABYLON TOWER

SKRIPSI

HARRY
111402046

PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2015

Universitas Sumatera Utara

PENERAPAN ALGORITMA COLUMN BY COLUMN DAN
DEPTH-FIRST SEARCH DALAM PERMAINAN
BABYLON TOWER


SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah
Sarjana Teknologi Informasi

HARRY
111402046

PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2015

Universitas Sumatera Utara

ii

PERSETUJUAN


Judul

: PENERAPAN ALGORITMA COLUMN BY COLUMN
DAN DEPTH-FIRST SEARCH DALAM PERMAINAN
BABYLON TOWER

Kategori

: SKRIPSI

Nama

: HARRY

Nomor Induk Mahasiswa

: 111402046

Program Studi


: S1 TEKNOLOGI INFORMASI

Departemen

: TEKNOLOGI INFORMASI

Fakultas

: ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA

Komisi Pembimbing

:

Pembimbing 2

Pembimbing 1

Romi Fadillah Rahmat, B.Comp.Sc M.Sc


Prof. Dr. Opim Salim Sitompul, M.Sc

NIP. 19860303 201012 1 004

NIP. 19610817 198701 1 001

Diketahui/disetujui oleh
Program Studi S1 Teknologi Informasi
Ketua,

Muhammad Anggia Muchtar, ST., MM.IT
NIP. 19800110 200801 1 010

Universitas Sumatera Utara

iii

PERNYATAAN


PENERAPAN ALGORITMA COLUMN BY COLUMN DAN
DEPTH-FIRST SEARCH DALAM PERMAINAN
BABYLON TOWER

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan
dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, 17 Desember 2015

Harry
111402046

Universitas Sumatera Utara

iv

UCAPAN TERIMA KASIH


Puji dan syukur penulis sampaikah kehadirat Tuhan Yang Maha Esa yang telah
memberikan rahmat serta restu-Nya sehingga penulis dapat menyelesaikan skripsi ini
sebagai syarat untuk memperoleh gelar Sarjana Teknologi Informasi.
Pertama, penulis ingin mengucapkan terima kasih kepada Bapak Prof. Dr. Opim
Salim Sitompul, M.Sc selaku pembimbing pertama dan Bapak Romi Fadillah Rahmat,
B.Comp.Sc. M.Sc selaku pembimbing kedua yang telah membimbing penulis dalam
penelitian serta penulisan skripsi ini. Tanpa inspirasi serta motivasi yang diberikan dari
kedua pembimbing, tentunya penulis tidak akan dapat menyelesaikan skripsi ini. Penulis
juga mengucapkan terima kasih kepada Bapak Dedy Arisandi, ST. M.Kom sebagai dosen
pembanding pertama dan Bapak Dr. Sawaluddin, M.IT sebagai dosen pembanding kedua
yang telah memberikan masukan serta kritik yang bermanfaat dalam penulisan skripsi ini.
Ucapan terima kasih juga ditjukan kepada semua dosen serta semua pegawai pada program
studi S1 Teknologi Informasi, yang telah membantu serta membimbing penulis selama
proses perkuliahan.
Penulis tentunya tidak lupa berterima kasih kepada kedua orang tua penulis, Alm.
Bapak Hermanto Tahir, serta Ibu Narina Salimin yang telah membesarkan penulis dengan
sabar dan penuh cinta. Terima kasih juga penulis ucapkan kepada adik penulis, Roderick,
yang selalu memberikan dukungan kepada penulis. Penulis juga berterima kasih kepada
seluruh anggota keluarga penulis yang namanya tidak dapat disebutkan satu persatu.
Terima kasih juga penulis ucapkan kepada seluruh teman-teman angkatan 2011

yang telah bersama-sama penulis melewati perkuliahan pada program studi S1 Teknologi
Informasi, serta teman-teman mahasiswa Teknologi Informasi lainnya.

Universitas Sumatera Utara

v

ABSTRAK

Babylon Tower merupakan permainan puzzle tiga dimensi yang terdiri dari enam buah
cakram yang disusun menumpuk ke atas. Setiap cakram terdiri dari enam kolom bola kecil
di sepanjang sisinya dengan enam jenis warna yang berbeda. Babylon Tower dapat
dimainkan dengan cara diputar dan digeser. Tujuan dari permainan Babylon Tower adalah
mengurutkan setiap bola dengan warna yang sama pada kolom yang sama serta
mengurutkan setiap kolom berdasarkan tingkat kecerahan warna bola. Terdapat dua
metode yang dapat digunakan untuk menemukan solusi permainan Babylon Tower, yaitu
disc by disc dan column by column. Metode yang diajukan pada penelitian ini adalah
algoritma column by column dan depth-first search. Pada penelitian ini ditunjukkan bahwa
metode yang diajukan mampu menemukan langkah demi langkah untuk mencapai solusi
dari permainan Babylon Tower.


Kata kunci: Babylon Tower, puzzle tiga dimensi, column by column, depth-first search.

Universitas Sumatera Utara

vi

IMPLEMENTATION OF COLUMN BY COLUMN AND DEPTH-FIRST
SEARCH ALGORITHM IN THE GAME
OF BABYLON TOWER

ABSTRACT

Babylon Tower is a three-dimensional puzzle which consists of six discs that are arranged
piled up. Each discs consists of six columns of small balls along the side in six kinds of
different colors. Babylon Tower can be played by rotating and sliding it. The goal of the
game of Babylon Tower is to sort each ball of the same color on the same column and sort
the balls in each column based on the brightness of the color of the ball. There are two
methods that can be used to find a solution of the game of Babylon Tower, namely disc by
disc and column by column. The methods proposed in this research are column by column

and depth-first search. In this research, it is shown that the proposed methods are capable
of finding step by step to reach a solution of the game of Babylon Tower.

Keywords: Babylon Tower, three-dimensional puzzle, column by column, depth-first
search.

Universitas Sumatera Utara

vii

DAFTAR ISI

Hal.
Persetujuan

ii

Pernyataan

iii


Ucapan Terima Kasih

iv

Abstrak

v

Abstract

vi

Daftar Isi

vii

Daftar Tabel

x


Daftar Gambar

xi

BAB 1 Pendahuluan

1

1.1. Latar Belakang

1

1.2. Rumusan Masalah

2

1.3. Batasan Masalah

3

1.4. Tujuan Penelitian

3

1.5. Manfaat Penelitian

3

1.6. Metodologi Penelitian

4

1.7. Sistematika Penulisan

5

BAB 2 Landasan Teori

6

2.1. Babylon Tower

6

2.2. Game Architecture

8

2.3. Struktur Data dan Algoritma dalam Game

9

2.3.1. Struktur Data dan Algoritma

10

2.3.2. Struktur Data dalam Game

10

2.4. Path Finding

11

2.4.1. Game Tree

12

2.4.2. Search Tree

13

Universitas Sumatera Utara

viii

2.5. Blind Search

14

2.5.1. Breadth-First Search

15

2.5.2. Depth-First Search

16

2.6. Kecerdasan Buatan dalam Game

18

2.7. Penelitian Terdahulu

19

BAB 3 Analisis dan Perancangan

21

3.1. Arsitektur Umum

21

3.2. Modelling

23

3.2.1. Model Cakram

23

3.2.2. Model Bola

25

3.2.3. Model Babylon Tower

26

3.3. Struktur Data

27

3.3.1. Ball

27

3.3.2. Disc

28

3.3.3. Inner Gap

29

3.3.4. Babylon Tower

29

3.4. Game Mechanic

31

3.4.1. Touch Handling

31

3.4.2. Moves Handling

35

3.5. AI

38

3.5.1. Sorting dengan depth-first search

39

3.5.2. Swapping

42

3.5.3. Parity

44

BAB 4 Implementasi dan Pengujian

47

4.1. Implementasi

47

4.1.1. Spesifikasi perangkat keras

47

4.1.2. Spesifikasi perangkat lunak

48

4.1.3. Eksekusi aplikasi

48

4.2. Pengujian

52

Universitas Sumatera Utara

ix

4.2.1. Hasil dari Tahap Sorting

53

4.2.2. Hasil dari Tahap Swapping

53

4.2.3. Hasil dari Tahap Parity

54

4.2.4. Hasil Pengujian

55

BAB 5 Kesimpulan dan Saran

56

5.1. Kesimpulan

56

5.2. Saran

56

Daftar Pustaka

58

Universitas Sumatera Utara

x

DAFTAR TABEL

Hal.
Tabel 3.1. Daftar variabel pada class Ball

27

Tabel 3.2. Nama-nama warna bola dalam array

28

Tabel 3.3. Daftar variabel pada class Disc

29

Tabel 3.4. Daftar variabel pada class Babylon Tower

30

Tabel 3.5. Daftar method pada class Babylon Tower

30

Tabel 3.6. Nilai yang disimpan serta proses undo dan redo pada gerakan rotate

36

Tabel 3.7. Nilai yang disimpan serta proses undo dan redo pada gerakan push

37

Tabel 3.8. Nilai yang disimpan serta proses undo dan redo pada gerakan slide

38

Tabel 4.1. Hasil pengujian terhadap banyak langkah yang dibutuhkan untuk
menemukan solusi

54

Universitas Sumatera Utara

xi

DAFTAR GAMBAR

Hal.
Gambar 2.1. Game tree pada Tic-Tac-Toe (Millington & Funge, 2009)

12

Gambar 2.2. Search tree pada permainan Babylon Tower

13

Gambar 2.3. Breadth-first search pada permainan Babylon Tower

15

Gambar 2.4. Depth-first search pada permainan Babylon Tower

17

Gambar 3.1. Arsitektur Umum

22

Gambar 3.2. Model cakram (disc) pada posisi paling atas

24

Gambar 3.3. Model cakram (disc) pada posisi paling bawah

24

Gambar 3.4. Model cakram (disc) yang posisinya diapit oleh dua cakram yang
lain

25

Gambar 3.5. Tiga puluh enam buah bola yang digunakan dalam Babylon Tower

25

Gambar 3.6. Babylon Tower dalam Model 3D

26

Gambar 3.7. Tampilan scene sebelum dan sesudah bola merah pada posisi paling
bawah ditekan masuk ke dalam cakram

34

Gambar 3.8. Tampilan scene sebelum dan sesudah bola merah pada baris keempat
dari atas digeser menuju celah yang ada di posisi paling atas

34

Gambar 3.9. Tampilan scene ketika jari user sedang memutar salah satu cakram
dan tampilan scene setelah jari user meninggalkan layar

35

Gambar 4.1. Tampilan Main Menu

49

Gambar 4.2. Tampilan Game Scene

50

Gambar 4.3. Tampilan Help dan About

52

Universitas Sumatera Utara