Anda di halaman 1dari 17

Yayan Rachmadianto R.

Praktikum Puzzle 8
JTD 4-A/T Menggunakan Metode DFS

1. Tujuan Praktikum
- Dapat membuat aplikasi dari praktikum Puzzle 8
- Dapat mengetahui metode pencarian Depth First Search

2. Landasan Teori
2.1 Aplikasi Delphi 7
Delphi adalah suatu bahasa pemograman (development language) yang
digunakan untk merancang suatu aplikasi program.Delphi termasuk dalam
pemrograman bahasa tingkat tinggi (high level lenguage). Maksud dari bahasa tingkat
tinggi yaitu perintah-perintah programnya menggunakan bahasa yang mudah dipahami
oleh manusia. Bahasa pemrograman Delphi disebut bahasa prosedural artinya
mengikuti urutan tertentu. Dalam membuat aplikasi perintah-perintah, Delphi
menggunakan lingkungan pemrograman visual.
2.1.1 File Penyusun Project
Sepintas sebuah program aplikasi yang dapat dibuat dengan
menggunakan Delphi hanya terdiri dari file projectdan sebuah unit. Namun
kenyataannya terdapat beberapa file yang dibentuk pada saat membangun
sebuah program aplikasi. Berikut ini merupakan file-file penyusun projek yang
terdapat pada program Delphi, yaitu
1. File Project (.D pr ) dan file Unit (.P as )
Sebuah program Delphi terbangun dari modul-modul source code yang
disebut unit. Delphi menggunakan sebuah file projek (.D pr ) untuk
menyimpan program utama. File sumber untuk unit biasanya berisi
sebagian besar kode di dalam aplikasi, file ini ditandai dengan ekstensi (.P
as ). Setiap aplikasi atau projek terdiri atas file projek tunggal atau lebih
dalam file unit.
2. File Form(. Dfm )
File form adalah file biner yang dibuat oleh Delphi untuk menyimpan
informasi yang berkaitan dengan form.
3. File Resource(. Res )
File resourcemerupakan file biner yang berisi sebuah ikon yang
digunakan oleh project. File ini secara terus menerus di-update atau diubah
oleh Delphi sehingga file ini tidak bisa diubah oleh pemakai. Dengan
menambahkan file resourcepada aplikasi dan menghubungkan dengan file
projectdapat menggunakan editor resource, misalnya editor untuk membuat
file resource
4. File Project Options(. Dof ) dan File Desktop Settings (. Ds k)
File project options merupakan file yang berisi options-options dari
suatu project yang dinyatakan melalui perintah Options dari menu Project.
Sedang file desktop setting berisi option-option yang dinyatakan melalui
perintah Environment Options dari menu Tools. Perbedaan di antara kedua
Yayan Rachmadianto R. Praktikum Puzzle 8
JTD 4-A/T Menggunakan Metode DFS

jenis file tersebut adalah bahwa file project options dimiliki oleh setiap
project sedangkan file desktop setting dipakai untuk lingkungan
Delphi.Apabila ada kerusakan pada kedua jenis file tersebut dapat
mengganggu proses kompilasi. Prosedur yang dapat kita tempuh untuk
menangani gangguan tersebut adalah dengan menghapus kedua jenis file
tersebut yaitu . Do f dan . Dsk karena kedua file tersebut akan terbentuk
secara otomatis pada saat menyimpan project.
5. File Backup(.~d p, . ~d f, . ~p a)
File-file dengan ekstensi di atas merupakan file backup dari suatu
project, form dan unit. Ketiga jenis file tersebut akan terbentuk pada saat
proses penyimpanan untuk yang kedua kalinya. Kerena ketiga file tersebut
berjenis backup (cadangan) maka ketiga jenis file tersebut berisi salinan
terakhir dari file-file utama sebelum disimpan lebih lanjut.
6. File jenis lain
File-file dengan ekstensi lain yang dapat ditemukan dalam folder
tempat penyimpanan program aplikasi selain yang memiliki ekstensi yang
telah disebutkan pada umumnya adalah file-file yang dibentuk oleh
compiler dan beberapa file Windows yang digunakan Delphi. File-file
tersebut adalah:
a. File Executable(. Exe ). File ini dibentuk oleh compiler dan
meruakan file esekusi (executable) dari program aplikasi. File
ini berdiri sendiri dan hanya memerlukan file library di D LL ,
VB X dan lain-lain.
b. File unit Object(. Dcu). File ini merupakan file unit (. Pa s) yang
telah dikompilasi oleh compileryang akan dihubungkan dengan file
eksekusi.
c. File Dinamic Link Library(.D ll). File ini dibentuk oleh
compilerapabila kita merancang . DLL sendiri.
d. File Help. File ini merupakan file Windows dan merupakan file
helpstandar yang dapat dipakai diprogram aplikasi Delphi
e. File Image (. Wm f, . Bmp , .Ico ). File-file ini merupakan file
Windows dari aplikasi selain Delphi yang dapat digunakan untuk
mendukung program aplikasi yang kita rancang tampak lebih
menarik.
Yayan Rachmadianto R. Praktikum Puzzle 8
JTD 4-A/T Menggunakan Metode DFS

Gambar 2.1 Aplikasi Delphi 7

2.2 Game Puzzle 8


Puzzle 8 angka adalah representasi permainan teka-teki yang dapat
diselesaikan dengan mengurutkan atau menyusun komponen-komponen
pembentuknya sesuai dengan kondisi yang diinginkan. Komponen pada puzzle
adalah berupa kotak-kotak bernomor atau bergambar (sesuai kebutuhan) yang
dapat diacak sedemikian hingga menjadi suatu pola randomditunjuk dengan
Gambar 2.2 ,yang dapat dicari jalan penyelesaiannya ditunjuk dengan Gambar
2.3.

Gambar 2.2 Pola random (Initial State)

Gambar 2.3 Tujuan (Goal State)

Sesuai namanya, puzzle8 terdiri atas 8 kotak dan 1 tempat kosong yang dapat
digerakkan dengan aturan tertentu. Aturan pergerakannya hanya berupa empat (4)
arah pergerakan, yaitu: atas, bawah, kanan, dan kiri, sertaterlimitasi oleh ukuran
dimensi papan yang ditempatinya. Pada puzzle 8, batasannya adalah ukuran 3×3.
Yayan Rachmadianto R. Praktikum Puzzle 8
JTD 4-A/T Menggunakan Metode DFS

Sehingga, 8 kotak yang dimiliki hanya dapat bergerak dalam lingkup ukuran
tersebut(Jokodo, 2011).
2.3 Metode Pencarian Depth First Search
Depth First Search adalah algoritma pencarian pada sebuah pohon atau tree.
Pencarian DFS ini adalah dengan menelusuri satu cabang sebuah pohon sampai
kebawah (menemukan solusi) sebelum melakukan backtracking.
Depth-first search (DFS) melakukan pencarian secara preorder. Mengunjungi
anak suatu simpul sebelum simpul tetangganya. Algoritma DFS menggunakan
metode pendekatan yang diimplementasikandengan menggunakan Tumpukan
(Stack). Stackdalam struktur data berarti struktur data yang organisasi atau
strukturnya bersifat tumpukan atau menyerupai tumpukan.StackpadaStruktur
Datadapat diilustrasikan dengan dua buah kotak yang ditumpuk, kotak yang satu
akan ditumpuk diatas kotak yang lainnya. Jika kemudian stack2 kotak tadi,
ditambah kotak ketiga, keempat, kelima, dan seterusnya, maka akan diperoleh
sebuah stack kotak yang terdiri dari N kotak.
Berikut gambar yang mengiilustrasikan urutan simpul yang dikunjungi pada
algoritma DFS

Gambar 2.4 Pencarian Dfs

Dari gambar, dapat dilihat bahwa dengan algoritma DFS, setiap anak simpul
pertama yang bertetangga dengan simpul akar dikunjungi sampai tingkat
terdalamnya lebih dahulu, lalu seluruh simpul pada subpohon tersebut, sebelum
simpul lain yang juga bertetangga dengan simpul akar.
Pencarian rute terpendek dilakukan dengan cara membuat simpul-simpul yang
menjadi titik awal, titik-titik yang akan dilalui dan juga titik akhir sebagai akhir
dari tujuan atau sebagai simpul yang dicari.
Dalam algoritma DFS, simpul yang telah dikunjungi disimpan dalam suatu
tumpukan (stack). Antrian ini digunakan untuk mengacu simpul-simpul yang akan
dikunjungi sesuai urutan tumpukan (masuk terakhir, keluar pertama) dan
mempermudah proses runut-balik jika simpul sudah tidak mempunyai anak
(simpul pada kedalaman maksimal).
Yayan Rachmadianto R. Praktikum Puzzle 8
JTD 4-A/T Menggunakan Metode DFS

A. Keuntungan Dfs
 Membutuhkan memori yang relative kecil, karena hanya node-node
pada lintasan yang aktif saja.
 Secara kebetulan, metode depth-first search akan menemukan solusi
tanpa harus menguji lebih banyak lagi dalam ruang keadaan.
B. Kelemahan Dfs
 Memungkinkan tidak ditemukannya tujuan yang diharapkan.
 Hanya akan menemukan satu solusi pada setiap pencarian.

3. Perencanaan
Pada bagian perencanaan berisi flowchart yang menggambarkan proses/alur
kerja dari sebuah program dan layout program yang menggambarkan penyusunan dari
elemen desain yang telah dibuat.

3.1 Flowchart
Start

Acak Puzzle

Ya
Apakah sudah berurut?

Tidak

Pindah keping puzzle

Puzzle sudah terurut

End

Gambar 3.1 Flowchart program puzzle 8


Yayan Rachmadianto R. Praktikum Puzzle 8
JTD 4-A/T Menggunakan Metode DFS

Pada gambar 3.1 adalah flowchart program dari praktikum puzzle 8


menggunakan metode Dfs. Pada posisi awal adalah acak puzzle, digunakan
sebagai initial state (langkah awal). Berikutnya adalah penyeleksian terhadap
puzzle tersebut apakah puzzle yang tampil sudah berurut, jika sudah berurut maka
akan tampil puzzle yang sudah berurut, jika puzzle belum terurut, maka puzzle
akan diproses dengan dipindahkannya keeping puzzle tersebut hingga mencapai
kondisi goal state (tujuan).

3.2 Layout Program

Gambar 3.2 Layout program puzzle 8

Pada gambar 3.2 adalah layout dari program puzzle 8. Terdapat 2 kotak button,
1 panel dan 5 label. 2 kotak button berisikan button untuk Acak yang berfungsi
untuk mengacak puzzle, dan button keluar yang berfungsi sebagai tombol keluar
dari aplikasi program. 1 panel yang berwarna biru pada gambar diatas, berfungsi
sebagai wadah untuk penampilan ubin dari puzzle yang telah dibuat. Terdapat
juga 5 label yang masing masing berisikan judul program (Puzzle 3x3), lalu nama
mata kuliah (Praktikum kecerdasan buatan), kelas (JTD4-A/T) dan 2 buah label
nama dan nim.
Yayan Rachmadianto R. Praktikum Puzzle 8
JTD 4-A/T Menggunakan Metode DFS

4. Implementasi
Pada bagian implentasi, berisikan script program aplikasi. Pada praktikum ini
digunakan aplikasi delphi 7. Berikut ini adalah script dari praktikum Menara Hanoi.

1. Unit

Gambar 4.1 Unit


Unit adalah nama dari unit dari satu object form yang dipakai.

2. Interface

Gambar 4.2 Interface

Interface adalah deklarasi Function, Procedure tanpa implementasi fungsi atau


prosedur tersebut, atau biasa di sebut sebagai abstraksi dari program.

3. Uses

Gambar 4.3
Uses adalah tempat untuk memanggil kumppulan class,function atau procedure
build-in yang disediakan system dan library dari luar. Pada script ini digunakan
uses seperti windows, messages, sysutils, variants, classes, graphics, controls,
forms, dialogs, extctrls, stdctrls.
Yayan Rachmadianto R. Praktikum Puzzle 8
JTD 4-A/T Menggunakan Metode DFS

4. Type

Gambar 4.4 Type


Type deklarasi class utama dari aplikasi kita berisi nama procedure, function
dan komponen-komponen yang digunakan. Terdapat label adalah penamaan label
yang dibuat, timer adalah penamaan dari system timer, edit adalah penamaan dari
kolom yang akan diisikan inputan, button adalah penamaan dari tombol jalankan,
hapus, keluar, dan panel adalah penamaan dari tempat dijalankannya disk. Pada
bagian procedure adalah deklasi dari komponen yang digunakan. Dan juga untuk
private deklarasi adalah deklarasi dari fungsi fungsi yang akan dijalankan pada
panel.
Yayan Rachmadianto R. Praktikum Puzzle 8
JTD 4-A/T Menggunakan Metode DFS

5. Var

Gambar 4.5
Var adalah letak untuk mendefinisikan suatu variable/ Penampung Data/
Penampung nilai sementara dimana jika di definisikan di awal sebuah unit maka
akan berlaku global, bisa di baca, di isi di hapus isinya dimanapun dalam sebuah
unit. Suatu variable pada praktikum ini akan ditampung pada form 1.

6. Constructor
Yayan Rachmadianto R. Praktikum Puzzle 8
JTD 4-A/T Menggunakan Metode DFS

Gambar 4.6
Constructor adalah method khusus yang berguna untuk pembuatan obyek.
Biasanya constructor diberi nama Create. Pembuatan obyek yang sudah biasa kita
lakukan adalah pemanggilan terhadap constructor yang telah didefinisikan di
dalam TObject. Dengan demikian setiap class akan mempunyai method Create.

7. Deconstructor

Gambar 4.7
Destructor adalah kebalikan dari constructor. Destructor adalah method khusus
yang dipanggil untuk membuang obyek. Saat kita memanggil method Free, maka
destructor akan dipanggil.

8. Procedure
Yayan Rachmadianto R. Praktikum Puzzle 8
JTD 4-A/T Menggunakan Metode DFS
Yayan Rachmadianto R. Praktikum Puzzle 8
JTD 4-A/T Menggunakan Metode DFS
Yayan Rachmadianto R. Praktikum Puzzle 8
JTD 4-A/T Menggunakan Metode DFS
Yayan Rachmadianto R. Praktikum Puzzle 8
JTD 4-A/T Menggunakan Metode DFS

Gambar 4.8 Procedure


Procedure adalah implementasi dari interface dimana berisikan tentang kode-
kode program yang kita tulis sesuai dengan keinginan kita, kode Program selalu di
tulis dan diawali dengan BEGIN dan di akhiri dengan END.

5. Hasil dan Pembahasan


Pada bagian ini dijelaskan dari hasil script program yang telah dibuat dan di
jalankan. Berikut ini adalah hasil dari aplikasi yang dijalankan.

Gambar 5.1 Tampilan awal / Initial state


Yayan Rachmadianto R. Praktikum Puzzle 8
JTD 4-A/T Menggunakan Metode DFS

Gambar 5.1 adalah tampilan awal aplikasi berisikan initial state, atau status
awal dari puzzle yang akan di susun berurut.

Gambar 5.2 Tampilan Hasil Akhir (Goal state)


Pada gambar 5.2 adalah tampilan dari hasil akhir yang telah disusun berurut. Bisa juga
disebut dengan Goal State.
Yayan Rachmadianto R. Praktikum Puzzle 8
JTD 4-A/T Menggunakan Metode DFS

5.1 Penyelesaian Menggunakan Metode Dept First Search


Pada penyelesaian kasus ini, diperoleh menggunakan metode Dept First Search
atau bisa juga disebut Dfs. Dfs, ini adalah dengan menelusuri satu cabang
sebuah pohon sampai kebawah (menemukan solusi) sebelum melakukan
backtracking, atau bisa diartikan melakukan pencarian secara preorder.
Mengunjungi anak suatu simpul sebelum simpul tetangganya. Pembahasan
menggunakan tree atau pohon sesuai dengan initial state (pada gambar 5.1) dan
tujuan (pada gambar 5.2).

Gambar 5.3
Gambar 5.3 merupakan hasil beberapa kemungkinan berbentuk pohon
yang digunakan dalam pencarian Dfs. Hasil/alur pencarian yang didapatkan
metode Dfs berdasarkan gambar 5.3 adalah sebagai berikut:

Asal Tujuan
Initial state A
A A(1,1)
A(1,1) A(1,3)
Yayan Rachmadianto R. Praktikum Puzzle 8
JTD 4-A/T Menggunakan Metode DFS

A(1,3) A(1,1)
A(1,1) A(1)
A(1) A(2)
A(2) A(2,1)
A(2,1) A(2,3)
A(2,3) A(2,1)
A(2,1) A(2)
A(2) B(1)
B(1) B(1,1)
B(1,1) B(1,2)
B(1,2) B(1,3)
B(1,3) B(1,1)
B(1) B(2)
B(2) B(2,1) (HASIL AKHIR
Tabel 5.1 Alur metode pencarian DFS

6. Kesimpulan
- Puzzle 8 angka adalah representasi permainan teka-teki yang dapat diselesaikan
dengan mengurutkan atau menyusun komponen-komponen pembentuknya sesuai
dengan kondisi yang diinginkan, dan dapat dibuat pada aplikasi delphi 7 dengan
Bahasa pemrograman c++.
- Metode pencarian Dfs adalah dengan menelusuri satu cabang sebuah pohon
sampai kebawah (menemukan solusi) sebelum melakukan backtracking,

Anda mungkin juga menyukai