PENERAPAN ALGORITMA A* (AStar) DALAM MENYELESAIKAN PROBLEMA ASITEKTUR BALOK
Muhammad Sarwani 1, Ir. Kalvin Chiuloto, M.Kes 2
1Jurusan Teknik Informatika Sekolah Tinggi Teknik Harapan Medan
2Jurusan Sistem Informasi Sekolah Tinggi Teknik Harapan Medan
Jl. HM Jhoni No 70 Medan, Indonesia
1
[email protected],
[email protected]
Abstrak
Problema asitektur balok merupakan salah satu persoalan klasik dalam bidang
studi Artificial Intelligence (AI). Problema ini dapat diilustrasikan
seperti berikut, terdapat 2 atau lebih kotak yang disusun menjadi 2 atau 3
tumpukan balok sebagai kondisi awal (initial state). Sasaran (goal) dari
problema ini adalah mendapatkan suatu tumpukan kotak sesuai dengan
keinginan. Banyak metoda AI atau kecerdasan buatan yang dapat diterapkan
untuk menyelesaikan problema tersebut. Salah satu metode yang biasa
digunakan adalah algoritma A* (AStar), A* mendeskripsikan proses pemecahan
masalah dimana seseorang harus mengambil setiap keputusan terbaik pada
setiap langkahnya. Untuk itu penulis ingin merancang suatu perangkat lunak
yang mampu untuk melakukan simulasi terhadap problema balok huruf.
Penggunaan simulasi dalam menyelesaikan problema balok huruf diharapkan
mampu memberikan gambaran bagaimana proses penyelesaian problema tersebut.
Kata Kunci : arsitektur balok, initial state, goal state, A* (AStar)
Abstract
The problem of the architecture block is one of the classical matters in
Artificial Intelligence (AI). This can be illustrated as there are two or
more boxes which are arranged to be two or three piles of boxes as the
initial state. The goal of this problem is to achieve a pile of boxes based
on wishes. Many methods of AI are able to be applied to solve the problem.
One of those which is frequently applied is A* (AStar) algorithm. A*
describes the process of problem solving that someone needs to take every
decision. That's why the writer wants to design a software which is able to
commit the stimulation toward the problem of the block letters. The use of
the stimulation in solving the problem of the block letters can hopefully
provide the illustration toward how the process of problem solving is.
Key Word: block architecture, initial state, goal state, A* (AStar).
1. Pendahuluan
Problema arsitektur balok atau biasa disebut Blocks Architecture
merupakan salah satu persoalan klasik dalam bidang studi Artificial
Intelligence (AI). Problema ini dapat diilustrasikan seperti berikut,
terdapat 2 atau lebih kotak yang disusun menjadi 2 atau 3 tumpukan balok
sebagai kondisi awal (initial state). Sasaran (goal) dari problema ini
adalah mendapatkan suatu tumpukan kotak sesuai dengan keinginan. Operasi
yang diperbolehkan dalam proses penyelesaiannya yaitu turunkan (x), yang
berarti bahwa kotak x diturunkan dari suatu tumpukan tertentu dan letakkan
(x,y), yang berarti bahwa kotak x diletakkan di atas kotak y, dengan
persyaratan bahwa kotak x dan kotak y harus berada di urutan paling atas
dari suatu tumpukan. Problema arsitektur balok bisa didapat dari masalah
yang ada di sekitar kita, salah satu masalah yang bisa didapat dari
problema ini ada pada permainan tetris yang menerapkan konsep balok pada
permainan, dan bisa diterapkan pada materi arsitektur balok. Salah satu
kasus yang bisa diselesaikan dengan menggunakan problema balok ini adalah
stack, kondisi masalah stack yang menggunakan push dan pop merupakan
permasalahan yang memiliki kemiripan dengan problema balok.
Banyak metoda AI atau kecerdasan buatan yang dapat diterapkan untuk
menyelesaikan problema tersebut. Salah satunya adalah dengan menggunakan
bantuan pohon pelacakan. Kondisi-kondisi (state-state) yang mungkin
digambarkan dalam suatu pohon pencarian dimulai dari mendeklarasikan
kondisi awal (start state) sebagai akar dari pohon biner. Proses
dilanjutkan dengan menggambarkan kondisi (state) berikutnya dari state
tersebut hingga didapatkan kondisi yang diinginkan (goal state), karena itu
Kecerdasan buatan atau artificial intelligence merupakan salah satu bagian
ilmu komputer yang membuat agar mesin (komputer) dapat melakukan pekerjaan
seperti dan sebaik yang dilakukan manusia [1].
Terdapat beberapa permasalahan yang dihadapi yaitu bagaimana
menyelesaikan problema arsitektur balok agar berurutan sesuai yang
diinginkan dan merancang sebuah aplikasi simulasi untuk memberikan gambaran
bagaimana proses penyelesaian block architecture problema.
Tujuan penelitian adalah untuk menyelesaikan suatu problema dengan
menggunakan algoritma A* (Astar). Kemudian merancang sebuah aplikasi
simulasi sebagai gambaran bagaimana proses penyelesaian problema arsitektur
balok dengan menggunakan algoritma A*.
a. Kecerdasan Buatan
Aritificial Intelligence (AI) atau kecerdasan buatan merupakan cabang
dari ilmu komputer yang konsern dengan pengautomatisasi tingkah laku
cerdas. Pernyataan tersebut juga dapat dijadikan definisi dari AI. Definisi
ini menunjukkan bahwa AI adalah bagian dari komputer sehingga harus
didasarkan pada sound theoretical (teori suara) dan prinsip-prinsip
aplikasi dari bidangnya. Prinsip-prinsip ini meliputi struktur data yang
digunakan dalam representasi pengetahuan, algoritma yang diperlukan untuk
mengaplikasikan pengetahuan tersebut, serta bahasa dan teknik pemograman
yang digunakan dalam mengimplementasikannya [2].
b. Area Aplikasi AI
Ada dua hal yang sangat mendasar mengenai penelitian-penelitian AI,
yaitu knowledge representation (representasi pengetahuan) dan search
(pelacakan). Para peneliti AI terus mengembangkan berbagai jenis teknik
baru dalam menangani sejumlah permasalahan yang tergolong ke dalam AI
seperti vision dan percakapan, pemrosesan bahasa alami dan permasalahan
khusus seperti diagnosa medis [3].
c. Penalaran Otomatis dan Pembuktian Teorema
Sisi menarik dari pembuktian teorema otomatis terletak pada kekakuan
dan keumuman logika. Oleh karena, hal tersebut merupakan sistem formal,
logika meminjam logika itu sendiri untuk automasi. Berbagai permasalahan
secara umum dapat digambarkan dengan merepresentasikan deskripsi
permasalahan dan informasi mengenai penyebab permasalahan yang relevan
sebagai aksioma logika dan memperlakukan masalah sebagai teorema yang akan
dibuktikan [4].
d. Stack
Stack adalah suatu bentuk khusus dari linier list, dengan operasi
penyisipan dan penghapusan dibatasi hanya pada satu sisinya, yaitu puncak
stack (TOP), Elemen teratas dari stack dinotasikan sebagai TOP(S). Untuk
stack S, dengan S = [S1, S2, S3, ..., ST] maka TOP(S) = ST Jumlah elemen
didalam stack kita notasikan dengan NOEL(S). NOEL(S) menghasilkan nilai
integer untuk stack S = [S1, S2, S3, .... ST] maka NOEL (S) = T. Operator
penyisipan (insertion) : PUSH Operator penghapusan (deletion) : POP Operasi
stack : LIFO (Last In First Out), yaitu : yang terakhir masuk yang pertama
keluar.
d. Balok Huruf
Problema balok huruf merupakan salah satu persoalan klasik dalam
bidang studi Artificial Intelligence (AI). Problema ini dapat
diilustrasikan seperti berikut, terdapat 2 atau lebih kotak yang disusun
menjadi 2 atau 3 tumpukan balok sebagai kondisi awal (initial state).
Sasaran (goal) dari problema ini adalah mendapatkan suatu tumpukan kotak
sesuai dengan keinginan. Operasi yang diperbolehkan dalam proses
penyelesaiannya yaitu turunkan(x), yang berarti bahwa kotak x diturunkan
dari suatu tumpukan tertentu dan letakkan (x, y), yang berarti bahwa kotak
x diletakkan di atas kotak y, dengan persyaratan bahwa kotak x dan kotak y
harus berada di urutan paling atas dari suatu tumpukan [5].
e. Algoritma A* (AStar)
Algoritma A* (A-Star) merupakan salah satu dari algoritma yang
menerapkan teknik heuristik (teknik pencarian terbimbing). Algoritma A* (A-
Star) merupakan salah satu algoritma yang dipelajari untuk menyelesaikan
permasalahan. Algoritma A* menyelesaikan masalah yang menggunakan graf
untuk perluasan ruang statusnya. Dengan kata lain digunakan untuk
menyelesaikan permasalah yang bisa direpresentasikan dengan graf. Algoritma
A* adalah sebuah algoritma yang telah diperkaya dengan menerapkan suatu
heuristik, algoritma ini membuang langkah-langkah yang tidak perlu dengan
pertimbangan bahwa langkah-langkah yang dibuang sudah pasti merupakan
langkah yang tidak akan mencapai solusi yang diinginkan. Problema balok
huruf merupakan salah satu persoalan klasik dalam bidang studi Artificial
Intelligence (AI). Problema ini dapat diilustrasikan seperti berikut,
terdapat 2 atau lebih kotak yang disusun menjadi 2 atau 3 tumpukan balok
sebagai kondisi awal (initial state). Sasaran (goal) dari problema ini
adalah mendapatkan suatu tumpukan kotak sesuai dengan keinginan. Operasi
yang diperbolehkan dalam proses penyelesaiannya yaitu turunkan(x), yang
berarti bahwa kotak x diturunkan dari suatu tumpukan tertentu dan letakkan
(x, y), yang berarti bahwa kotak x diletakkan di atas kotak y, dengan
persyaratan bahwa kotak x dan kotak y harus berada di urutan paling atas
dari suatu tumpukan. Algoritma A* membangkitkan simpul yang paling
mendekati solusi. Simpul ini kemudian disimpan suksesornya ke dalam list
sesuai dengan urutan yang paling mendekati solusi terbaik. Kemudian, simpul
pertama pada list diambil, dibangkitkan suksesornya dan kemudian suksesor
ini disimpan ke dalam list sesuai dengan urutan yang terbaik untuk solusi.
List simpul ini disebut dengan simpul terbuka (open node) [6].
2. Metode Penelitian
a. Tahapan Penelitian
Adapun tahapan penelitian yang dilakukan dalam menyelesaikan
perancangan ini adalah :
1. Penelitian Pustaka (Library Research)
Pada tahap ini, dilakukan pencarian informasi dan referensi melalui buku-
buku, internet, atau bahan lainnya yang berkaitan dengan topik yang
dibahas, seperti tentang Artificial Inteligent, Block Architecture, dan
algoritma A* untuk mendapatkan informasi dari data yang bersifar teoritis.
2. Pengumpulan Data
Pada tahap ini mengumpulkan bahan-bahan berupa hardware, software dan buku-
buku yang berhubungan dengan perancangan yang dibuat.
3. Analisa kebutuhan dan perancangan desain sistem aplikasi
Pada tahap ini, dilakukan analisis data hasil uji coba berbagai algoritma
yang sudah ada. Dilanjutkan dengan pembuatan desain sesuai dengan yang
dirancang untuk dituangkan dalam bentuk implementasi.
4. Implementasi
Pada tahap ini, dilakukan implementasi (pengkodean) berdasarkan rancangan
yang dilakukan pada tahap sebelumnya.
5. Pengujian
Pada tahap ini, dilakukan pengujian dan analisis terhadap sistem aplikasi
apakah rancangan sesuai dengan yang diharapkan.
b. Spesifikasi Perangkat Keras
Perangkat keras merupakan komponen peralatan yang sangat berpengaruh
dalam pembuatan sebuah aplikasi. Adapun perangkat keras yang dibutuhkan
adalah sebagai berikut :
1. Prosesor Intel Core 2 Duo
2. Harddisk dengan minimal free space 320 GB.
3. Memori sebesar 2 GB.
4. VGA Card 2 GB dengan resolusi minimum
1024 x 768..
5. Monitor LCD
6. Keyboard dan Mouse.
c. Spesifikasi Perangkat Lunak
Perangkat lunak merupakan perangkat yang berguna untuk mengatur
kinerja peralatan fisik (perangkat keras komputer. Perangkat keras hanya
bias dioperasikan dengan menggunakan perangkat lunak. Adapun perangkat
lunak yang dibutuhkan untuk aplikasi ini adalah sebagai berikut :
1. Sistem operasi Microsoft Windows 7
2. Microsoft Visual Basic 2008
d. Perancangan Sistem
Perancangan perangkat lunak ini menggunakan bahasa pemograman
Microsoft Visual Basic Net. Perangkat lunak ini memiliki beberapa form,
antara lain :
1. Form Splash Screen
2. Form Utama
- Form Splash Screen
Form ini berisi nama perangkat lunak, nama pembuat perangkat lunak,
nama kampus, jurusan dan program studi. Form ini muncul pertama kali ketika
program dieksekusi.
Gambar 1. Rancangan Form Splash Screen
Keterangannya:
1. Menampilkan gambar dari objek balok
2. Menampilkan informasi judul
3. Menampilkan informasi penulis
- Form Splash Screen
Fungsi dari form ini adalah untuk menampilkan posisi awal balok dan
posisi tujuan dari balok, berikut adalah desainnya
Gambar 2. Rancangan Form Utama
Keterangannya:
1. frame yang digunakan untuk menampilkan posisi awal dari susunan balok
2. frame yang digunakan untuk menentukan posisi akhir dari susunan balok
3. tombol yang digunakan untuk mencari solusi penyelesaian
4. tombol keluar
- Flowchart Aplikasi
Flowchart adalah penggambaran secara grafik dari langkah-langkah suatu
program untuk menyelesaikan suatu permasalahan. Flowchart dapat membantu
para analis atau programmer untuk menyelesaikan suatu masalah menjadi
beberapa bagian yang kecil, sehingga masalah dapat diatasi dengan baik.
Adapun perancangan flowchart aplikasi Problema Arsitektur Balok ini adalah
sebagai berikut :
Gambar 3. Rancangan Flowchart Permainan Balok
Selain flowchart permain balok masih terdapat flowchart algoritma A*
seperti dibawah ini :
Gambar 4. Rancangan Flowchart Pencarian A*
3. Hasil dan Pembahasan
Setelah semua perancangan dan pembuatan aplikasi selesai, maka
dilakukan pengujian atau menjalankan aplikasi. Pengujian program
digunakan untuk melihat hasil yang sudah dibahas pada bab sebelumnya,
program yang diuji merupakan hasil perancangan yang dibuat oleh penulis,
ketika menjalankan aplikasi untuk pertama sekali.
- Form Splash Screen
Pada Form Splash screen terdapat 2 buah tombol yaitu tombol masuk dan
keluar, fungsi tombol masuk digunakan untuk menutup form yang aktif dan
membuka form utama sedangkan tombol keluar untuk keluar dari aplikasi.
Gambar 5 Tampilan Splash Screen
- Form Utama
Pada Form utama terdapat 2 buah frame yaitu frame initial state dan
goal statei, pada frame initial state ditentukan posisi balok huruf yang
akan di proses sehingga posisi balok huruf sesuai dengan goal state.
Gambar 6 Tampilan Form Utama
Gambar diatas merupakan posisi akhir dari balok huruf yang diinginkan,
untuk merubah posisi balok huruf dapat menggunakan tombol yang ada seperti
tombol kiri, kanan, atas dan bawah. Berikutnya menekan tombol pross solusi
hingga muncul proses seperti gambar 7.
1. Keterangan Tabel dan Gambar
Gambar 7 Proses Pemeriksaan State
Gambar 7 menampilkan proses pencarian solusi dari setiap state yang
dalam hal ini adalah proses pergeseran tumpukan yang ada, ketika proses
pemeriksaan selesai maka akan muncul informasi berikut
Gambar 8 Proses Pemeriksaan State Selesai
Pemeriksaan solusi dilakukan hingga mencapai 3217 state dan pada state
ke 3093 solusi baru ditemukan, untuk menampilkan bentuk simulasi
penyelesaian problema tersebut dilakukan dengan menekan tombol OK pada
pesan yang muncul sehingga muncul form berikut
Gambar 9 Simulasi Penyelesaian
Tampak pada gambar 9 posisi balok simulasi sama dengan yang ada form utama
initial state, untuk menampilkan bentuk simulasi bisa lakukan denagan
menekan tombol simulasikan sehingga hasilnya seperti pada gambar dibawah
ini
Gambar 10 Proses Simulasi Pemindahan Balok Huruf
Gambar 10 menampilkan bentuk pemindahan balok yang terjadi secara
otomatis berdasarkan state yang sudah diproses pertama sekali, proses
pemindahan balok akan terus jalan sampai kondisi goal state ditemukan.
ketika kondisi balok yang diinginkan sesuai maka proses akan berhenti
secara otomatis, seperti dibawah ini
Gambar 11 Proses Simulasi Pemindahan Balok Huruf Selesai
Proses pemindahan balok huruf sesuai dengan goal state yang ditentukan
maka secara otomatis proses selesai dilakukan dan sistem akan berhenti
dengan sendirinya.
4. Kesimpulan
Dari hasil pengujian yang telah dilakukan serta pembahasan yang
dimulai dari proses perancangan, pembuatan serta pengujian aplikasi yang
telah dilakukan dalam rangka penyelesaian tugas akhir ini, maka diperoleh
beberapa kesimpulan sebagai berikut ini :
1. Persoalan penyelesaian problema balok huruf dengan menggunakan algoritma
A* menjamin ditemukannya solusi untuk setiap state yang ada.
2. Sistem yang dirancang merupakan penerapan dari algoritma A*
3. Pada balok huruf yang menjadi goal state, posisi balok huruf bebas
ditentukan pada tumpukan 1, tumpukan 2 dan tumpukan 3 tidak hanya pada
satu tumpukan saja.
4. Penerapan bahasa pemrograman visual basic.net dalam pembuatan aplikasi
menunjang pembuatan aplikasi lebih cepat.
Daftar Pustaka
[1] Ardhan Wahyu. 2012. Kecerdasan Buatan Untuk Menyelesaikan Rubik's Cube
Dengan Algoritma IDA. Malang. Universitas Negeri Malang.
[2] Desiani Anita. 2002. Konsep Kecerdasan Buatan. Yogyakarta. Penerbit
Andi.
[3] T. Sutojo, S.Si.,M.Kom. 2011. Kecerdasan Buatan. Yogyakarta. Penerbit
Andi
[4] Yalikus Partono, S.Kom. 2010. Pengantar Logika dan Algoritma.
Yogyakarta. Penerbit Andi
[5] Jhon Slaney. 2000. Blocks World Revisited. Canberra. Australian
National University
[6] Sri Kusumadewi. 2003. Algoritma Genetika. Yogyakarta. Penerbit Graha
Ilmu.