SlideShare a Scribd company logo
Penerapan Algoritma Backtracking dalam program
N-Queens Problem
I Kadek Meganjaya
Faddikha Irza Putra

(10112203)
(10112189)

Program Studi Teknik Informatika
Universitas Komputer Indonesia

Abstract - Runut balik (Backtracking) merupakan

Semakin banyak fasilitas yang ditawarkan oleh

algoritma yang berbasis pada DFS (Depth First Search)

aplikasi-aplikasi komputer yang ada saat ini,

untuk mencari solusi dari suatu persoalan secara optimal.

maka semakin banyak pekerjaan manusia yang

Runut balik merupakan perbaikan dari algoritma Brute-

di permudah oleh adanya aplikasi tersebut.

force, secara sistematis mencari solusi dari suatu persoalan
diantara semua kemungkinan solusi yang ada. Di zaman

Lahirnya Artificial Intelligence (A.I.) atau

sekarang, algoritma Backtracking banyak digunakan

kecerdasan

dalam program-program kecerdasan buatan, salah satu

program

contohnya adalah pada program N-Queens problem. N-

program itu sendiri, sehingga meminimalisir

queens problem adalah penempatan N buah ratu pada

campur tangan pengguna. Kecerdasan buatan

catur ukuran NxN yang nantinya diantara ratu-ratu

saat ini umum digunakan dalam permainan-

tersebut tidak boleh berada dalam satu baris, satu kolom

permainan komputer yang memungkinkan mode

dan tidak saling memakan.

player atau versus computer, seperti permainan

buatan

untuk

dapat

bekerja

membantu suatu
dengan

pemikiran

catur yang dapat berjalan dengan sendirinya.
Disini akan dijelaskan penerapan algoritma
Backtracking pada program N-Queens problem.

1.Pendahuluan

Dewasa ini, teknologi informasi adalah salah
satu cabang yang ruang pengembangannya
sangat luas, salah satunya adalah dibidang
pemrograman. Sebagai salah satu bagian dari
teknologi

informasi,

pemrograman
perkembangan.

tentunya

banyak

bidang
mengalami
diselesaikan dengan menggunkan algoritma

2.Definisi
Sebelum membahas lebih jauh mengenai NQueen Problem, disini akan dijelaskan terlebih
dahulu tentang algoritma Backtracking yang
akan

digunakan

untuk

meyelesaikan

permasalahan ini.

Backtracking, misalnya menemukan suatu nilai
yang diminta pada tabel yang tidak terurut.
Namun, ketika algoritma ini dapat diaplikasikan,
Backtracking dapat bekerja jauh lebih cepat dari
algoritma Brute-force karena jumlah kandidat
solusi yang dapat dibuang dengan algoritma
Backtracking cukup besar.

Backtracking
Algoritma runut balik (Backtracking) pertama

Algoritma runut balik berbasis pada DFS (Depth

kali diperkenalkan oleh D.H Lehmer pada tahun

First Search), sehingga aturan pencariannya

1950. Algoritma ini cukup mangkus untuk

akan mengikut kepada aturan pencarian DFS

digunakan

beberapa

yaitu dengan mencari solusi dari akar ke daun

masalah dan juga untuk memberikan kecerdasan

(dalam pohon ruang solusi) dengan pencarian

buatan dalam game. Beberapa game populer

mendalam.

semisal Sudoku, Labyrinth dan Chess juga bisa

dilahirkan (diperiksa) dinamakan simpul hidup

diimplementasikan

(live node). Simpul hidup yang sedang diperluas

dalam

penyelesaian

dengan

menggunakan

Simpul-simpul

yang

sudah

algoritma runut balik.

dinamakan simpul-E atau Expand Node.

Algoritma runut balik (backtracking) merupakan

Algoritma Backtracking mempunyai prinsip

algoritma yang digunakan untuk mencari solusi

dasar yang sama seperti algoritma Brute-force,

persoalan

daripada

yaitu mencoba segala kemungkinan solusi.

menggunakan algoritma Brute-force. Algoritma

Perbedaan utamanya terletak pada ide dasarnya,

ini akan mencari solusi berdasarkan ruang solusi

semua solusi dibuat dalam bentuk pohon solusi

yang ada secara sistematis, namun tidak semua

(pohon ini tentunya berbentuk abstrak) dan

ruang solusi akan diperiksa, hanya pencarian

algoritma akan menelusuri pohon tersebut secara

yang mengarah kepada solusi yang akan

DFS (Depth Field Search) sampai ditemukan

diproses.

solusi yang layak.

secara

lebih

mangkus

Kelemahan dari algoritma Backtracking ini
adalah algoritma ini hanya bisa diaplikasikan
terbatas pada tipe permasalahan yang memiliki
solusi yang dapat dicari secara sistematis dan
bertahap. Ada beberapa masalah yang tidak bisa
Properti Umum Metode Backtracking :

George Cantor telah bekerja keras untuk dapat

a.Solusi Persoalan
Solusi

menyelesaikan masalah N-Queen ini. Solusi

dinyatakan

sebagai

vektor

dengan n-tuple:

pertama kali dibentuk oleh Franz Nauck pada
tahun 1850. Nauck juga memperluas puzzle ke

X= (x1, x2, …, xn), xi

bentuk N-Queens. Pada tahun 1874, S. Gunter

Si.

Mungkin saja S1= S2= … = Sn.

mengusulkan

Contoh: Si= {0, 1}, xi= 0 atau 1

menggunakan metode determinan dan J.W.L.

suatu

metode

dengan

Glaisher menyaring pendekatan tersebut.

b. Fungsi pembangkit nilai xk
Dinyatakan sebagai: T(k)
T(k) membangkitkan nilai untuk xk,
yang merupakan komponen vektor
solusi.
c. Fungsi pembatas (pada beberapa
persoalan fungsi ini dinamakan
fungsi kriteria).

Cara kerja dari N-Queens problem ini adalah
bagaimana kita menempatkan n buah ratu pada
papan catur NxN, dimana setiap ratu tersebut
tidak saling memakan, serta tidak ada 2 ratu
yang terletak dalam satu baris, satu kolom,
maupun satu diagonal.

Dinyatakan sebagaiB(x1, x2, …, xk).
B bernilai true jika (x1, x2, …, xk)
mengarah ke solusi. Jika true, maka
pembangkitan

nilai

untuk

xk+1dilanjutkan, tetapi jika false,
maka (x1, x2, …, xk) dibuang dan
tidak dipertimbangkan lagi dalam
pencarian solusi.

Gambar 1

Pada Gambar 1 di atas, terdapat 5 buah ratu

3. N-QUEENS PROBLEM

yang terletak pada papan berukuran 5x5. Dan

3.1. Definisi
N-Queens
permainan

kita dapat melihat dari kelima ratu tersebut, pada

merupakan
puzzle

salah
yang

satu
pertama

bentuk
kali

diperkenalkan pada tahun 1848 oleh seorang
pemain catur Max Bezzel. Dari tahun ke tahun,
banyak matematikawan termasuk Gauss dan

posisi A terdapat dua buah ratu dalam satu
diagonal, pada posisi B terdapat tiga buah ratu
dalam satu diagonal, pada posisi C ratu saling
memakan dan berada dalam satu diagonal, dan
pada posisi D terdapat dua buah ratu dalam satu
baris. Maksud dari pencarian solusi N-Queens
problem ini adalah mencari solusi penempatan N

Untuk kasus N=1, disini sudah jelas kita ketahui

ratu dimana tidak ada ratu yang terletak seperti

bahwa ratu berjumlah satu dan solusinya pun

pada gambar 1 diatas.

pasti satu karena ratu tidak bisa pindah kemanamana. Untuk N=2, dapat dipastikan tidak adanya
solusi karena dalam penempatannya pasti kedua
ratu membentuk diagonal atau keduanya terletak
dalam satu baris atau dalam satu kolom dan
yang pasti, keduanya saling memakan.

Berdasarkan

konsep

kombinatorial,

untuk

penempatan 3 bidak ratu dalam suatu papan
Gambar 2

catur berukuran 3x3 terdapat 504 kemungkinan
solusi “504 =

Pada Gambar 2 terlihat contoh solusi dari
penempatan empat buah ratu pada papan
berukuran 4x4. Pada gambar tersebut, kita tidak
menemukan dua buah ratu yang terletak dalam
satu baris, kolom, maupun diagonal atau saling
memakan. Dalam program N-Queens ini, kita
akan mencari solusi bagaimana agar ratu bisa
terlihat seperti gambar 2 dan mencari berapa
solusi yang didapatkan dari N ratu yang

(
((

)
)

)

” . Jumlah kemungkinan

ini dapat dikurangi apabila kita tambahkan
syarat bahwa ketiga bidak tersebut tidak dapat
berada dalam suatu kolom yang sama. Dengan
mengaplikasikan syarat tersebut, maka jumlah
kemungkinan

solusi

kemungkinan.

Namun

menjadi

33

demikian,

=

27

dari

27

kemungkinan yang ada, tidak satupun yang
mengarah pada solusi akhir. Buktinya adalah
sebagai berikut:

diinputkan, serta menampilkan pergerakan dari
setiap satu solusi.

3.2. Contoh Kasus Pencarian Untuk N<5
Gambar 3
Dalam contoh kasus ini, kita akan coba mencari
solusi secara manual dari ratu yang berjumlah
satu (N=1) hingga ratu yang berjumlah empat
(N=4).

Pada Gambar 3, kita tidak akan menemukan
solusi. Pada saat dimasukkan dua ratu dengan
tiga kombinasi yang berbeda, ratu yang ke tiga
tidak bisa masuk dikarenakan salah satu ratu
pasti akan saling memakan.
Sedangkan untuk N=4, kita akan mendapatkan

3.3 Algoritma N-Queen Problem

dua buah solusi.
Procedure cetak_solusi(input x : Array,
input n_ratu : integer)
Kamus :
i,j : integer
c : array[0..50] of char
Algoritma:
Gambar 4

for i←1 to n_ratu do
for j←1 to n_ratu do
c[i,j] ←’karakter papan catur’

Pada gambar 4 di atas, kita menemukan dua
buah solusi untuk N=4. Dimana, kita bisa

endfor

melihat dari kedua buah solusi tersebut sudah

endfor

memenuhi syarat untuk N-Queens problem. Dan

for i←1 to n_ratu do
c[i,x[j]] ←’karakter untuk ratu’

untuk jumlah ratu yang lebih dari empat (N>4)
pasti akan memiliki solusi.

endfor
for i←1 to n_ratu do

Proses penempatan ratu dimulai dari baris

for j←1 to n_ratu do

pertama kolom x14, dan akan di lanjutkan pada

output(c[i,j])

baris selanjutnya. Pada baris kedua, secara
otomatis kolom x13 dan x23 akan dilewati dan
langsung menempati kolom x33. Ratu langsung

endfor
endfor
endprocedure

melewati dua kolom tersebut karena jika
ditempatkan pada dua kolom sebelumnya, maka
ratu akan saling memakan dan berada pada
kolom dan diagonal yang sama.

for i←1 to n_ratu do
for j←1 to n_ratu do
c[i,j] ←’karakter papan catur’

Dan untuk penempatan pada baris selanjutnya,

endfor

sama seperti cara dibaris kedua. Jika hingga

endfor

baris terakhir masih belum mendapatkan solusi,
penempatan ratu akan terus diulang hingga baris

Penjelasan

yang paling atas tidak bisa berpindah kemana-

menggunaan

mana.

perulangan yang pertama “for i←1 to n_ratu do”

dari

algoritma

array

dua

di

atas,

yaitu

dimensi.

Pada

perulangan dilakukan untuk baris papan catur,
sedangkan perulangan

for j←1 to n_ratu do

yaitu melakukan perulangan untuk mengisi
kolom pada papan catur.

c[i,j] ←’karakter

papan catur’ kita mengisi nilai dari c[i,j] dengan
karakter yang kita inginkan untuk simbol setiap
kolom papan catur.

Procedure nRatuI(input n_ratu : integer)
Kamus:
x : Array[0..50] of integer
k : integer
Algoritma:
k←1
x[k] ←0

Untuk penjelasan pada baris bawahnya hampir
sama penjelasannya seperti penjelasan diatas.

while (k>0) do
x[k] ← x[k]+1
while

Function tempat(input x : Array, input k :

≤

(x[k]

n_ratu)

and

(not

tempat(x,k)) do
x[k] ←x[k]+1

integer)
Kamus:

endwhile
if x[k] ≤ n_ratu then

i : integer
kedudukan,stop : Boolean

if k=n_ratu then

Algoritma:

cetak_solusi(x,n_ratu)

kedudukan←true

else

i←1

k←k+1

stop←false

x[k] ←0

while (i<k) and (not stop) do
if x[i] = x[k] or abs(x[i])=abs(i-k) then

endif
else

kedudukan←false
stop←true
else

k←k-1
endif
endwhile

i←i+1

endprocedure

endif
endwhile

Procedure di atas berfungsi untuk memindahkan

return kedudukan

ratu dari satu kolom ke kolom berikutnya dan

endfunction

selanjutnya akan diperiksa lagi apakah ratu bisa
ditempatkan

Fungsi diatas berfungsi untuk memberikan nilai
true atau false bila ada dua ratu yang posisinya
berada dalam satu baris, kolom ataupun dalam
satu diagonal.

sekarang.

pada

kolom

yang

ditempati
4. Hasil Eksekusi Program

5. Kesimpulan

Setelah program sudah selesai dibuat, kami

Program N-Queens Problem termasuk ke dalam

membandingkan dua buah laptop dengan

Artificial Intelligence (A.I.) yang memiliki

spesifikasi yang berbeda untuk menjalankan

kemampuan untuk menentukan jalan keluar dari

program tersebut. Tujuannya yaitu untuk

suatu

mengetahui seberapa jauh perbedaan waktu
yang di perlukan untuk mendapatkan total
solusi dari program tersebut.

permasalahan.

Dalam

program

ini,

penggunaan algoritma Backtracking sangat tepat
daripada menggunakan algoritma Brute-force.
Dalam program ini, kita juga dapat melihat
kecepatan eksekusi dari program dalam mencari
solusi dengan spesifikasi laptop yang berbeda.

Tabel 1, laptop acer (Intel Pentium 2,1Ghz
dengan RAM 2 Gb)

Daftar Pustaka

N

Jumlah Solusi

Waktu Eksekusi

5

10 solusi

0.2490 detik

[1] Munir, Rinaldi, Diktat Kuliah IF3051

6

4 solusi

0.1210 detik

Strategi Algoritma Prodi Teknik Informatika

7

40 solusi

1.4140 detik

Institut Teknologi Bandung, 2009.

8

92 solusi

3.3480 detik

9

352 solusi

14.3350 detik

10

724 solusi

35.0560 detik

[2]http://www.scribd.com/doc/93612673/Algorit
ma-Backtracking
[3]http://widiantogilangramadhan.wordpress.co
m/2010/ 12/23/makalah -backtracking/

Tabel 2, laptop toshiba (Intel Core i5 2.4GHz

Desain%20Analisis%20Algoritma/M14Algor

dengan RAM 4 Gb)
N

[4]http://www.ittelkom.ac.id/staf/zka/Materi%20

Jumlah Solusi

Waktu Eksekusi

5

10 solusi

0.2250 detik

6

4 solusi

0.0930 detik

7

40 solusi

1.0090 detik

8

92 solusi

2.5650 detik

9

352 solusi

11.6130 detik

10

724 solusi

29.0330 detik

itma%20Runut-balik.pdf
[5]http://repository.gunadarma.ac.id/bitstream/1
23456789/2747/1/21-PENYELESAIAN
%20MASALAH%20NQUEEN%20DENGA
N%20TEKNIK%20BACKTRACKING.pdf
[6] http://letstalkdata.com/2013/12/n-queenspart-1-steepest-hill-climbing/

More Related Content

What's hot

Bab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi booleanBab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi boolean
Cliquerz Javaneze
 
Teori bahasa dan automata7
Teori bahasa dan automata7Teori bahasa dan automata7
Teori bahasa dan automata7
Nurdin Al-Azies
 
Pertemuan 2-pemecahan-masalah-ai
Pertemuan 2-pemecahan-masalah-aiPertemuan 2-pemecahan-masalah-ai
Pertemuan 2-pemecahan-masalah-ai
willyhayon
 
Persamaan garis lurus(Geometri Analitik Ruang)
Persamaan garis lurus(Geometri Analitik Ruang)Persamaan garis lurus(Geometri Analitik Ruang)
Persamaan garis lurus(Geometri Analitik Ruang)
Dyas Arientiyya
 

What's hot (20)

Materi 3 Finite State Automata
Materi 3   Finite State AutomataMateri 3   Finite State Automata
Materi 3 Finite State Automata
 
Aturan Inferensi dan Metode Pembuktian
Aturan Inferensi dan Metode PembuktianAturan Inferensi dan Metode Pembuktian
Aturan Inferensi dan Metode Pembuktian
 
Bab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi booleanBab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi boolean
 
Modul 4 representasi pengetahuan
Modul 4   representasi pengetahuanModul 4   representasi pengetahuan
Modul 4 representasi pengetahuan
 
Pushdown Automata
Pushdown Automata Pushdown Automata
Pushdown Automata
 
Teori bahasa dan automata7
Teori bahasa dan automata7Teori bahasa dan automata7
Teori bahasa dan automata7
 
Pertemuan 2-pemecahan-masalah-ai
Pertemuan 2-pemecahan-masalah-aiPertemuan 2-pemecahan-masalah-ai
Pertemuan 2-pemecahan-masalah-ai
 
8 Rekursif
8 Rekursif8 Rekursif
8 Rekursif
 
pewarnaan graf
pewarnaan grafpewarnaan graf
pewarnaan graf
 
Algoritma Greedy (contoh soal)
Algoritma Greedy (contoh soal)Algoritma Greedy (contoh soal)
Algoritma Greedy (contoh soal)
 
Ragam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan KomputerRagam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan Komputer
 
Teknik Enkripsi dan Dekripsi Playfair Cipher
Teknik Enkripsi dan Dekripsi Playfair CipherTeknik Enkripsi dan Dekripsi Playfair Cipher
Teknik Enkripsi dan Dekripsi Playfair Cipher
 
Makalah Algoritma kruskal
Makalah Algoritma kruskalMakalah Algoritma kruskal
Makalah Algoritma kruskal
 
8 logika predikat
8  logika predikat8  logika predikat
8 logika predikat
 
Algoritma brute force
Algoritma brute forceAlgoritma brute force
Algoritma brute force
 
Algoritma pencarian lintasan jalur terpendek
Algoritma pencarian lintasan jalur terpendekAlgoritma pencarian lintasan jalur terpendek
Algoritma pencarian lintasan jalur terpendek
 
Graf Pohon
Graf PohonGraf Pohon
Graf Pohon
 
Persamaan garis lurus(Geometri Analitik Ruang)
Persamaan garis lurus(Geometri Analitik Ruang)Persamaan garis lurus(Geometri Analitik Ruang)
Persamaan garis lurus(Geometri Analitik Ruang)
 
Intelijensia buatan - 02 Agen Cerdas
Intelijensia buatan - 02 Agen CerdasIntelijensia buatan - 02 Agen Cerdas
Intelijensia buatan - 02 Agen Cerdas
 
02.logika
02.logika02.logika
02.logika
 

Viewers also liked (6)

Makalah TG Knight tour
Makalah TG Knight tourMakalah TG Knight tour
Makalah TG Knight tour
 
Makalah if2251 2008-109
Makalah if2251 2008-109Makalah if2251 2008-109
Makalah if2251 2008-109
 
Tugas kecerdasan buatan (sistem sensor) agus romadlon
Tugas kecerdasan buatan (sistem sensor) agus romadlonTugas kecerdasan buatan (sistem sensor) agus romadlon
Tugas kecerdasan buatan (sistem sensor) agus romadlon
 
Modul bahan-ajar-kecerdasan-buatan-ptiik-final
Modul bahan-ajar-kecerdasan-buatan-ptiik-finalModul bahan-ajar-kecerdasan-buatan-ptiik-final
Modul bahan-ajar-kecerdasan-buatan-ptiik-final
 
Modified Genetic Algorithm for Solving n-Queens Problem
Modified Genetic Algorithm for Solving n-Queens ProblemModified Genetic Algorithm for Solving n-Queens Problem
Modified Genetic Algorithm for Solving n-Queens Problem
 
8 queens problem using back tracking
8 queens problem using back tracking8 queens problem using back tracking
8 queens problem using back tracking
 

Similar to Makalah n-queen problem

Software Matematika Sebagai Penunjang Proses Belajar
Software Matematika Sebagai Penunjang Proses BelajarSoftware Matematika Sebagai Penunjang Proses Belajar
Software Matematika Sebagai Penunjang Proses Belajar
Prandita Sega
 
Spldv sudah jadi
Spldv sudah jadiSpldv sudah jadi
Spldv sudah jadi
eky45
 
Modul nilai mutlak
Modul nilai mutlakModul nilai mutlak
Modul nilai mutlak
Hafidz Gress
 

Similar to Makalah n-queen problem (20)

Buat persentasi
Buat persentasiBuat persentasi
Buat persentasi
 
Algoritma Backtracking
Algoritma BacktrackingAlgoritma Backtracking
Algoritma Backtracking
 
Makalah0809 082
Makalah0809 082Makalah0809 082
Makalah0809 082
 
1. Pengantar Strategi Algoritma.pptx
1. Pengantar Strategi Algoritma.pptx1. Pengantar Strategi Algoritma.pptx
1. Pengantar Strategi Algoritma.pptx
 
Software Matematika Sebagai Penunjang Proses Belajar
Software Matematika Sebagai Penunjang Proses BelajarSoftware Matematika Sebagai Penunjang Proses Belajar
Software Matematika Sebagai Penunjang Proses Belajar
 
B ab 01 metode numerik secara umum
B ab  01 metode numerik secara umumB ab  01 metode numerik secara umum
B ab 01 metode numerik secara umum
 
Analisis Algoritma Terhadap Permainan Labirin
Analisis Algoritma Terhadap Permainan LabirinAnalisis Algoritma Terhadap Permainan Labirin
Analisis Algoritma Terhadap Permainan Labirin
 
Uts kalkulus1
Uts kalkulus1Uts kalkulus1
Uts kalkulus1
 
Uts kalkulus
Uts kalkulusUts kalkulus
Uts kalkulus
 
pendahuluan limit
pendahuluan limitpendahuluan limit
pendahuluan limit
 
76110863 matlab
76110863 matlab76110863 matlab
76110863 matlab
 
nilai eigen dan vektor eigen
nilai eigen dan vektor eigennilai eigen dan vektor eigen
nilai eigen dan vektor eigen
 
Nilai eigen dan vektor eigen
Nilai eigen dan vektor eigenNilai eigen dan vektor eigen
Nilai eigen dan vektor eigen
 
kemonotonan dan kecekungan
kemonotonan dan kecekungankemonotonan dan kecekungan
kemonotonan dan kecekungan
 
Spldv sudah jadi
Spldv sudah jadiSpldv sudah jadi
Spldv sudah jadi
 
Modul 9 s1_pgsd
Modul 9 s1_pgsdModul 9 s1_pgsd
Modul 9 s1_pgsd
 
Modul nilai mutlak
Modul nilai mutlakModul nilai mutlak
Modul nilai mutlak
 
Modul prolin 1
Modul prolin 1Modul prolin 1
Modul prolin 1
 
Fungsi Eksponensial & Logaritma, Barisan & Deret, Sistem Persamaan Linear
Fungsi Eksponensial & Logaritma, Barisan & Deret, Sistem Persamaan LinearFungsi Eksponensial & Logaritma, Barisan & Deret, Sistem Persamaan Linear
Fungsi Eksponensial & Logaritma, Barisan & Deret, Sistem Persamaan Linear
 
Handout Matematika Kelas 9
Handout Matematika Kelas 9Handout Matematika Kelas 9
Handout Matematika Kelas 9
 

Recently uploaded

Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdfPaparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
SEMUELSAMBOKARAENG
 
813 Modul Ajar KurMer Usaha, Energi, dan Pesawat Sederhana (2).docx
813 Modul Ajar KurMer Usaha, Energi, dan Pesawat Sederhana (2).docx813 Modul Ajar KurMer Usaha, Energi, dan Pesawat Sederhana (2).docx
813 Modul Ajar KurMer Usaha, Energi, dan Pesawat Sederhana (2).docx
RinawatiRinawati10
 

Recently uploaded (20)

Dokumen Rangkuman Kehadiran Guru ini dipergunakan sebagai bukti dukung yang w...
Dokumen Rangkuman Kehadiran Guru ini dipergunakan sebagai bukti dukung yang w...Dokumen Rangkuman Kehadiran Guru ini dipergunakan sebagai bukti dukung yang w...
Dokumen Rangkuman Kehadiran Guru ini dipergunakan sebagai bukti dukung yang w...
 
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBI
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBIVISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBI
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBI
 
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdfPaparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
 
Koneksi Antar Materi Modul 1.4.ppt x
Koneksi Antar Materi Modul 1.4.ppt           xKoneksi Antar Materi Modul 1.4.ppt           x
Koneksi Antar Materi Modul 1.4.ppt x
 
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docxRUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
RUBRIK OBSERVASI KINERJA KEPALA SEKOLAH.docx
 
ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...
ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...
ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...
 
BUKTI DUKUNG RHK SEKOLAH DASAR NEGERI.pptx
BUKTI DUKUNG RHK SEKOLAH DASAR NEGERI.pptxBUKTI DUKUNG RHK SEKOLAH DASAR NEGERI.pptx
BUKTI DUKUNG RHK SEKOLAH DASAR NEGERI.pptx
 
Repi jayanti_2021 B_Analsis Kritis Jurnal
Repi jayanti_2021 B_Analsis Kritis JurnalRepi jayanti_2021 B_Analsis Kritis Jurnal
Repi jayanti_2021 B_Analsis Kritis Jurnal
 
Najwa Qarina_2021 B_Analisis Kritis Jurnal.pdf
Najwa Qarina_2021 B_Analisis Kritis Jurnal.pdfNajwa Qarina_2021 B_Analisis Kritis Jurnal.pdf
Najwa Qarina_2021 B_Analisis Kritis Jurnal.pdf
 
Solusi dan Strategi ATHG yang di hadapi Indonesia (Kelas 11).pptx
Solusi dan Strategi ATHG yang di hadapi Indonesia (Kelas 11).pptxSolusi dan Strategi ATHG yang di hadapi Indonesia (Kelas 11).pptx
Solusi dan Strategi ATHG yang di hadapi Indonesia (Kelas 11).pptx
 
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
 
KOMITMEN MENULIS DI BLOG KBMN PB PGRI.ppt
KOMITMEN MENULIS DI BLOG KBMN PB PGRI.pptKOMITMEN MENULIS DI BLOG KBMN PB PGRI.ppt
KOMITMEN MENULIS DI BLOG KBMN PB PGRI.ppt
 
813 Modul Ajar KurMer Usaha, Energi, dan Pesawat Sederhana (2).docx
813 Modul Ajar KurMer Usaha, Energi, dan Pesawat Sederhana (2).docx813 Modul Ajar KurMer Usaha, Energi, dan Pesawat Sederhana (2).docx
813 Modul Ajar KurMer Usaha, Energi, dan Pesawat Sederhana (2).docx
 
Bab 3 Sejarah Kerajaan Hindu-Buddha.pptx
Bab 3 Sejarah Kerajaan Hindu-Buddha.pptxBab 3 Sejarah Kerajaan Hindu-Buddha.pptx
Bab 3 Sejarah Kerajaan Hindu-Buddha.pptx
 
Sejarah dan Perkembangan Agama Hindu.pptx
Sejarah dan Perkembangan Agama Hindu.pptxSejarah dan Perkembangan Agama Hindu.pptx
Sejarah dan Perkembangan Agama Hindu.pptx
 
Sosialisme Kapitalis Karl Marx (Dosen Pengampu: Khoirin Nisai Shalihati)
Sosialisme Kapitalis Karl Marx (Dosen Pengampu: Khoirin Nisai Shalihati)Sosialisme Kapitalis Karl Marx (Dosen Pengampu: Khoirin Nisai Shalihati)
Sosialisme Kapitalis Karl Marx (Dosen Pengampu: Khoirin Nisai Shalihati)
 
ALUR TUJUAN PEMBELAJARAN (ATP) B. Inggris kelas 7.pdf
ALUR TUJUAN PEMBELAJARAN (ATP) B. Inggris kelas 7.pdfALUR TUJUAN PEMBELAJARAN (ATP) B. Inggris kelas 7.pdf
ALUR TUJUAN PEMBELAJARAN (ATP) B. Inggris kelas 7.pdf
 
CONTOH LAPORAN PARTISIPAN OBSERVASI.docx
CONTOH LAPORAN PARTISIPAN OBSERVASI.docxCONTOH LAPORAN PARTISIPAN OBSERVASI.docx
CONTOH LAPORAN PARTISIPAN OBSERVASI.docx
 
PPT Aksi Nyata Diseminasi Modul 1.4.pptx
PPT Aksi Nyata Diseminasi Modul 1.4.pptxPPT Aksi Nyata Diseminasi Modul 1.4.pptx
PPT Aksi Nyata Diseminasi Modul 1.4.pptx
 
Tugas 1 Statistik Pendidikan UT Tahun 2024
Tugas 1 Statistik Pendidikan UT Tahun 2024Tugas 1 Statistik Pendidikan UT Tahun 2024
Tugas 1 Statistik Pendidikan UT Tahun 2024
 

Makalah n-queen problem

  • 1. Penerapan Algoritma Backtracking dalam program N-Queens Problem I Kadek Meganjaya Faddikha Irza Putra (10112203) (10112189) Program Studi Teknik Informatika Universitas Komputer Indonesia Abstract - Runut balik (Backtracking) merupakan Semakin banyak fasilitas yang ditawarkan oleh algoritma yang berbasis pada DFS (Depth First Search) aplikasi-aplikasi komputer yang ada saat ini, untuk mencari solusi dari suatu persoalan secara optimal. maka semakin banyak pekerjaan manusia yang Runut balik merupakan perbaikan dari algoritma Brute- di permudah oleh adanya aplikasi tersebut. force, secara sistematis mencari solusi dari suatu persoalan diantara semua kemungkinan solusi yang ada. Di zaman Lahirnya Artificial Intelligence (A.I.) atau sekarang, algoritma Backtracking banyak digunakan kecerdasan dalam program-program kecerdasan buatan, salah satu program contohnya adalah pada program N-Queens problem. N- program itu sendiri, sehingga meminimalisir queens problem adalah penempatan N buah ratu pada campur tangan pengguna. Kecerdasan buatan catur ukuran NxN yang nantinya diantara ratu-ratu saat ini umum digunakan dalam permainan- tersebut tidak boleh berada dalam satu baris, satu kolom permainan komputer yang memungkinkan mode dan tidak saling memakan. player atau versus computer, seperti permainan buatan untuk dapat bekerja membantu suatu dengan pemikiran catur yang dapat berjalan dengan sendirinya. Disini akan dijelaskan penerapan algoritma Backtracking pada program N-Queens problem. 1.Pendahuluan Dewasa ini, teknologi informasi adalah salah satu cabang yang ruang pengembangannya sangat luas, salah satunya adalah dibidang pemrograman. Sebagai salah satu bagian dari teknologi informasi, pemrograman perkembangan. tentunya banyak bidang mengalami
  • 2. diselesaikan dengan menggunkan algoritma 2.Definisi Sebelum membahas lebih jauh mengenai NQueen Problem, disini akan dijelaskan terlebih dahulu tentang algoritma Backtracking yang akan digunakan untuk meyelesaikan permasalahan ini. Backtracking, misalnya menemukan suatu nilai yang diminta pada tabel yang tidak terurut. Namun, ketika algoritma ini dapat diaplikasikan, Backtracking dapat bekerja jauh lebih cepat dari algoritma Brute-force karena jumlah kandidat solusi yang dapat dibuang dengan algoritma Backtracking cukup besar. Backtracking Algoritma runut balik (Backtracking) pertama Algoritma runut balik berbasis pada DFS (Depth kali diperkenalkan oleh D.H Lehmer pada tahun First Search), sehingga aturan pencariannya 1950. Algoritma ini cukup mangkus untuk akan mengikut kepada aturan pencarian DFS digunakan beberapa yaitu dengan mencari solusi dari akar ke daun masalah dan juga untuk memberikan kecerdasan (dalam pohon ruang solusi) dengan pencarian buatan dalam game. Beberapa game populer mendalam. semisal Sudoku, Labyrinth dan Chess juga bisa dilahirkan (diperiksa) dinamakan simpul hidup diimplementasikan (live node). Simpul hidup yang sedang diperluas dalam penyelesaian dengan menggunakan Simpul-simpul yang sudah algoritma runut balik. dinamakan simpul-E atau Expand Node. Algoritma runut balik (backtracking) merupakan Algoritma Backtracking mempunyai prinsip algoritma yang digunakan untuk mencari solusi dasar yang sama seperti algoritma Brute-force, persoalan daripada yaitu mencoba segala kemungkinan solusi. menggunakan algoritma Brute-force. Algoritma Perbedaan utamanya terletak pada ide dasarnya, ini akan mencari solusi berdasarkan ruang solusi semua solusi dibuat dalam bentuk pohon solusi yang ada secara sistematis, namun tidak semua (pohon ini tentunya berbentuk abstrak) dan ruang solusi akan diperiksa, hanya pencarian algoritma akan menelusuri pohon tersebut secara yang mengarah kepada solusi yang akan DFS (Depth Field Search) sampai ditemukan diproses. solusi yang layak. secara lebih mangkus Kelemahan dari algoritma Backtracking ini adalah algoritma ini hanya bisa diaplikasikan terbatas pada tipe permasalahan yang memiliki solusi yang dapat dicari secara sistematis dan bertahap. Ada beberapa masalah yang tidak bisa
  • 3. Properti Umum Metode Backtracking : George Cantor telah bekerja keras untuk dapat a.Solusi Persoalan Solusi menyelesaikan masalah N-Queen ini. Solusi dinyatakan sebagai vektor dengan n-tuple: pertama kali dibentuk oleh Franz Nauck pada tahun 1850. Nauck juga memperluas puzzle ke X= (x1, x2, …, xn), xi bentuk N-Queens. Pada tahun 1874, S. Gunter Si. Mungkin saja S1= S2= … = Sn. mengusulkan Contoh: Si= {0, 1}, xi= 0 atau 1 menggunakan metode determinan dan J.W.L. suatu metode dengan Glaisher menyaring pendekatan tersebut. b. Fungsi pembangkit nilai xk Dinyatakan sebagai: T(k) T(k) membangkitkan nilai untuk xk, yang merupakan komponen vektor solusi. c. Fungsi pembatas (pada beberapa persoalan fungsi ini dinamakan fungsi kriteria). Cara kerja dari N-Queens problem ini adalah bagaimana kita menempatkan n buah ratu pada papan catur NxN, dimana setiap ratu tersebut tidak saling memakan, serta tidak ada 2 ratu yang terletak dalam satu baris, satu kolom, maupun satu diagonal. Dinyatakan sebagaiB(x1, x2, …, xk). B bernilai true jika (x1, x2, …, xk) mengarah ke solusi. Jika true, maka pembangkitan nilai untuk xk+1dilanjutkan, tetapi jika false, maka (x1, x2, …, xk) dibuang dan tidak dipertimbangkan lagi dalam pencarian solusi. Gambar 1 Pada Gambar 1 di atas, terdapat 5 buah ratu 3. N-QUEENS PROBLEM yang terletak pada papan berukuran 5x5. Dan 3.1. Definisi N-Queens permainan kita dapat melihat dari kelima ratu tersebut, pada merupakan puzzle salah yang satu pertama bentuk kali diperkenalkan pada tahun 1848 oleh seorang pemain catur Max Bezzel. Dari tahun ke tahun, banyak matematikawan termasuk Gauss dan posisi A terdapat dua buah ratu dalam satu diagonal, pada posisi B terdapat tiga buah ratu dalam satu diagonal, pada posisi C ratu saling memakan dan berada dalam satu diagonal, dan pada posisi D terdapat dua buah ratu dalam satu baris. Maksud dari pencarian solusi N-Queens
  • 4. problem ini adalah mencari solusi penempatan N Untuk kasus N=1, disini sudah jelas kita ketahui ratu dimana tidak ada ratu yang terletak seperti bahwa ratu berjumlah satu dan solusinya pun pada gambar 1 diatas. pasti satu karena ratu tidak bisa pindah kemanamana. Untuk N=2, dapat dipastikan tidak adanya solusi karena dalam penempatannya pasti kedua ratu membentuk diagonal atau keduanya terletak dalam satu baris atau dalam satu kolom dan yang pasti, keduanya saling memakan. Berdasarkan konsep kombinatorial, untuk penempatan 3 bidak ratu dalam suatu papan Gambar 2 catur berukuran 3x3 terdapat 504 kemungkinan solusi “504 = Pada Gambar 2 terlihat contoh solusi dari penempatan empat buah ratu pada papan berukuran 4x4. Pada gambar tersebut, kita tidak menemukan dua buah ratu yang terletak dalam satu baris, kolom, maupun diagonal atau saling memakan. Dalam program N-Queens ini, kita akan mencari solusi bagaimana agar ratu bisa terlihat seperti gambar 2 dan mencari berapa solusi yang didapatkan dari N ratu yang ( (( ) ) ) ” . Jumlah kemungkinan ini dapat dikurangi apabila kita tambahkan syarat bahwa ketiga bidak tersebut tidak dapat berada dalam suatu kolom yang sama. Dengan mengaplikasikan syarat tersebut, maka jumlah kemungkinan solusi kemungkinan. Namun menjadi 33 demikian, = 27 dari 27 kemungkinan yang ada, tidak satupun yang mengarah pada solusi akhir. Buktinya adalah sebagai berikut: diinputkan, serta menampilkan pergerakan dari setiap satu solusi. 3.2. Contoh Kasus Pencarian Untuk N<5 Gambar 3 Dalam contoh kasus ini, kita akan coba mencari solusi secara manual dari ratu yang berjumlah satu (N=1) hingga ratu yang berjumlah empat (N=4). Pada Gambar 3, kita tidak akan menemukan solusi. Pada saat dimasukkan dua ratu dengan tiga kombinasi yang berbeda, ratu yang ke tiga tidak bisa masuk dikarenakan salah satu ratu pasti akan saling memakan.
  • 5. Sedangkan untuk N=4, kita akan mendapatkan 3.3 Algoritma N-Queen Problem dua buah solusi. Procedure cetak_solusi(input x : Array, input n_ratu : integer) Kamus : i,j : integer c : array[0..50] of char Algoritma: Gambar 4 for i←1 to n_ratu do for j←1 to n_ratu do c[i,j] ←’karakter papan catur’ Pada gambar 4 di atas, kita menemukan dua buah solusi untuk N=4. Dimana, kita bisa endfor melihat dari kedua buah solusi tersebut sudah endfor memenuhi syarat untuk N-Queens problem. Dan for i←1 to n_ratu do c[i,x[j]] ←’karakter untuk ratu’ untuk jumlah ratu yang lebih dari empat (N>4) pasti akan memiliki solusi. endfor for i←1 to n_ratu do Proses penempatan ratu dimulai dari baris for j←1 to n_ratu do pertama kolom x14, dan akan di lanjutkan pada output(c[i,j]) baris selanjutnya. Pada baris kedua, secara otomatis kolom x13 dan x23 akan dilewati dan langsung menempati kolom x33. Ratu langsung endfor endfor endprocedure melewati dua kolom tersebut karena jika ditempatkan pada dua kolom sebelumnya, maka ratu akan saling memakan dan berada pada kolom dan diagonal yang sama. for i←1 to n_ratu do for j←1 to n_ratu do c[i,j] ←’karakter papan catur’ Dan untuk penempatan pada baris selanjutnya, endfor sama seperti cara dibaris kedua. Jika hingga endfor baris terakhir masih belum mendapatkan solusi, penempatan ratu akan terus diulang hingga baris Penjelasan yang paling atas tidak bisa berpindah kemana- menggunaan mana. perulangan yang pertama “for i←1 to n_ratu do” dari algoritma array dua di atas, yaitu dimensi. Pada perulangan dilakukan untuk baris papan catur,
  • 6. sedangkan perulangan for j←1 to n_ratu do yaitu melakukan perulangan untuk mengisi kolom pada papan catur. c[i,j] ←’karakter papan catur’ kita mengisi nilai dari c[i,j] dengan karakter yang kita inginkan untuk simbol setiap kolom papan catur. Procedure nRatuI(input n_ratu : integer) Kamus: x : Array[0..50] of integer k : integer Algoritma: k←1 x[k] ←0 Untuk penjelasan pada baris bawahnya hampir sama penjelasannya seperti penjelasan diatas. while (k>0) do x[k] ← x[k]+1 while Function tempat(input x : Array, input k : ≤ (x[k] n_ratu) and (not tempat(x,k)) do x[k] ←x[k]+1 integer) Kamus: endwhile if x[k] ≤ n_ratu then i : integer kedudukan,stop : Boolean if k=n_ratu then Algoritma: cetak_solusi(x,n_ratu) kedudukan←true else i←1 k←k+1 stop←false x[k] ←0 while (i<k) and (not stop) do if x[i] = x[k] or abs(x[i])=abs(i-k) then endif else kedudukan←false stop←true else k←k-1 endif endwhile i←i+1 endprocedure endif endwhile Procedure di atas berfungsi untuk memindahkan return kedudukan ratu dari satu kolom ke kolom berikutnya dan endfunction selanjutnya akan diperiksa lagi apakah ratu bisa ditempatkan Fungsi diatas berfungsi untuk memberikan nilai true atau false bila ada dua ratu yang posisinya berada dalam satu baris, kolom ataupun dalam satu diagonal. sekarang. pada kolom yang ditempati
  • 7. 4. Hasil Eksekusi Program 5. Kesimpulan Setelah program sudah selesai dibuat, kami Program N-Queens Problem termasuk ke dalam membandingkan dua buah laptop dengan Artificial Intelligence (A.I.) yang memiliki spesifikasi yang berbeda untuk menjalankan kemampuan untuk menentukan jalan keluar dari program tersebut. Tujuannya yaitu untuk suatu mengetahui seberapa jauh perbedaan waktu yang di perlukan untuk mendapatkan total solusi dari program tersebut. permasalahan. Dalam program ini, penggunaan algoritma Backtracking sangat tepat daripada menggunakan algoritma Brute-force. Dalam program ini, kita juga dapat melihat kecepatan eksekusi dari program dalam mencari solusi dengan spesifikasi laptop yang berbeda. Tabel 1, laptop acer (Intel Pentium 2,1Ghz dengan RAM 2 Gb) Daftar Pustaka N Jumlah Solusi Waktu Eksekusi 5 10 solusi 0.2490 detik [1] Munir, Rinaldi, Diktat Kuliah IF3051 6 4 solusi 0.1210 detik Strategi Algoritma Prodi Teknik Informatika 7 40 solusi 1.4140 detik Institut Teknologi Bandung, 2009. 8 92 solusi 3.3480 detik 9 352 solusi 14.3350 detik 10 724 solusi 35.0560 detik [2]http://www.scribd.com/doc/93612673/Algorit ma-Backtracking [3]http://widiantogilangramadhan.wordpress.co m/2010/ 12/23/makalah -backtracking/ Tabel 2, laptop toshiba (Intel Core i5 2.4GHz Desain%20Analisis%20Algoritma/M14Algor dengan RAM 4 Gb) N [4]http://www.ittelkom.ac.id/staf/zka/Materi%20 Jumlah Solusi Waktu Eksekusi 5 10 solusi 0.2250 detik 6 4 solusi 0.0930 detik 7 40 solusi 1.0090 detik 8 92 solusi 2.5650 detik 9 352 solusi 11.6130 detik 10 724 solusi 29.0330 detik itma%20Runut-balik.pdf [5]http://repository.gunadarma.ac.id/bitstream/1 23456789/2747/1/21-PENYELESAIAN %20MASALAH%20NQUEEN%20DENGA N%20TEKNIK%20BACKTRACKING.pdf [6] http://letstalkdata.com/2013/12/n-queenspart-1-steepest-hill-climbing/