Upload
davidkurniawan
View
25
Download
1
Embed Size (px)
DESCRIPTION
Contoh Proposal STMIk ASIA Malang
Citation preview
5/20/2018 Contoh Proposal Judul Baru Revisi Desember 2013
1/
ANALISIS PENYE
Diajukan U(keterang
L
SEKOLAH TINGGI
ESAIAN PUZZLE SUDOKU DENGAN MEN
ALGORITMA BACKTRACKING
(berbentuk piramida terbalik)
PROPOSAL JUDUL
tuk Menempuh Tugas Khusus dan Tugas Akn disesuaikan dengan tujuan pengajuan judu
Oleh
ukman Hariadi 10201045
URUSAN TEKNIK INFORMATIKA
MANAJEMEN INFORMATIKA DAN KOMP
MALANG
2013
ERAPKAN
hirl)
TER ASIA
5/20/2018 Contoh Proposal Judul Baru Revisi Desember 2013
2/
1. LATAR BELAKANG
(menunjukkan permasalahan, siapa yang memiliki masalah, kapan, dimana,
dan hubungannya dengan metode yang dipilih)
Permainan Sudoku adalah permainan yang dapat melatih logika
manusia dalam berpikir cepat dan teliti. Permainan ini tidak bisa sembarang
dimainkan, karena bila bermain dengan sembarangan di awal permainan,
tidak bisa menyelesaikan game ini. Puzzle Sudoku memiliki 9 sub-matriks
berukuran 3x3 yang disebut subgrid. Tujuan dari permainan ini adalah
mengisi semua sel dengan angka 1 sampai 9 sedemikian sehingga setiap
kolom, baris, dan subgridmengandung angka 1 sampai 9 tepat satu buah.
Permainan Sudoku adalah salah satu puzzle yang paling banyak
digemari saat ini, dan juga merupakan salah satu permasalahan paling sulit
di bidang informatika. Permasalahan puzzle Sudoku sulit untuk dipecahkan
karena masuk dalam permasalahan NP-complete, sehingga tidak bisa
diselesaikan dalam waktu yang sama. Hingga saat ini banyak programmer
yang mencari algoritma yang tepat untuk menyelesaikan puzzle ini. Cara
yang paling gampang adalah algoritma Brute Force yaitu dengan cara
mengenumerasikan semua kemungkinan isi sel dengan angka 1 sampai 9(1).
Tetapi cara ini tentu saja tidak tepat karena kemungkinannya akan sangat
banyak sekali. Karena itu algoritma ini diperbaiki dengan menambahkan
batasan (constraints), yaitu tidak boleh ada angka yang sama dalam satu
5/20/2018 Contoh Proposal Judul Baru Revisi Desember 2013
3/
baris, kolom atau subgrid. Cara ini bisa mereduksi jumlah kemungkinan
secara signifikan sehingga algoritma menjadi lebih tepat.
Untuk memecahkan teka-teki Sudoku, dapat digunakan algoritma
backtracking (runut-balik). Algoritma ini merupakan perbaikan dari algoritma
Brute Force, dimana solusi dapat ditemukan dengan penelusuran yang lebih
sedikit dan dapat mencari solusi permasalahan secara lebih efektif karena
tidak perlu memeriksa semua kemungkinan solusi yang ada. Hanya
pencarian yang mengarah ke solusi saja yang perlu dipertimbangkan.
Algoritma Backtracking ini mudah diimplementasikan dengan bahasa
pemrograman yang mendukung pemanggilan fungsi/ prosedur rekursif. Salah
satu bahasa pemrograman yang mendukung pemanggilan fungsi adalah
Visual Basic 6.0.
2. RUMUSAN MASALAH
(menunjukkan permasalahan apa yang akan diselesaikan di bagian
pembahasan)
Bagaimana menyelesaikan permainan puzzle Sudoku dengan
menerapkan algoritma backtracking.
3. BATASAN MASALAH
(dapat dibatasi dari segi sistem, konsep/model, metode, data, tools
dan sebagainya)
5/20/2018 Contoh Proposal Judul Baru Revisi Desember 2013
4/
a. Analisis penyelesaian dilakukan untuk game puzzle Sudoku
berukuran 9 x 9 dengan inputan angka 1 sampai dengan 9.
b. Metode yang diterapkan adalah dengan algoritma backtracking
dengan constrain.
c. Bahasa pemrograman yang digunakan adalah Visual Basic 6.0.
d. Database yang digunakan Microsoft Access2003.
4. TUJUAN DAN MANFAAT PENULISAN
Tujuan
a. Mempopulerkan permainan puzzle Sudokudi kalangan mahasiswa
untuk dapat melatih logika manusia dalam berpikir cepat dan teliti.
b. Membantu para penggemar permainan Sudokudalam mencari cara
penyelesaian permainan yang lebih cepat dan tepat.
Manfaat Bagi Penulis
a. Belajar menganalisa permasalahan dengan solusi secara ilmiah
yaitu dengan memanfaatkan algoritma backtracking.
b. Dapat mengasah otak dalam berfikir secara cepat dan teliti untuk
mencari penyelesaian masalah.
Manfaat Bagi pembaca
a. Memberikan alternatif cara yang efisien dalam penyelesaian
permainan puzzleSudoku.
b. Menjadi bahan kajian yang dapat dikembangkan dikemudian hari.
5/20/2018 Contoh Proposal Judul Baru Revisi Desember 2013
5/
5. METODOLOGI PENELITIAN
(menjelaskan langkah-langkah apa yang akan dilakukan dalam
pelaksanaan penelitian sampai penelitian selesai. Jika dilakukan observasi,
dijelaskan tempatnya dimana dan data apa yang dicari/diamati)
Untuk mendukung penyelesaian penelitian ini digunakan beberapa
metodologi, yaitu:
a. Studi Pustaka (Library Research)
Studi Pustaka dilakukan dengan cara mempelajari teori-teori
literatur dan buku-buku yang berhubungan dengan objek kajian
sebagai dasar dalam penelitian ini, dengan tujuan memperoleh dasar
teoritis gambaran dari apa yang dilakukan. Teori yang dipelajari
yaitu: permainan puzzle, teori graphdan tree, algoritma backtracking,
dan sebagainya.
b. Analisa Data
Selanjutnya akan dilakukan analisa terhadap data yang telah
diperoleh dari proses pengumpulan data. Analisa data bertujuan
untuk mengetahui variabel-varibel apa yang dibutuhkan dalam
pemodelan permainan Sudoku kedalam algoritma backtracking,
serta kebutuhan input dan output sistem.
5/20/2018 Contoh Proposal Judul Baru Revisi Desember 2013
6/
c. Perancangan
Berdasarkan analisa data yang telah dilakukan selanjutnya
dilakukan pemodelan data ke dalam algoritma backtracking.
Perancangan algoritma menggunakan flowchart dan pseudocode.
d. Implementasi
Hasil perancangan selanjutnya diimplementasikan dalam
bentuk kode program. Pada penelitian ini akan digunakan bahasa
pemrograman Visual Basic 6.0 dan database Microsoft Access 2003.
e. Pengujian
Akan dilakukan pengujian data untuk mengukur keakuratan
yang dihasilkan dari program yang telah dibuat.
6. LANDASAN TEORI
(berisi teori singkat tentang hal-hal yang penting saja, terutama tentang
objek dan algoritmanya)
a. Puzzle Sudoku
Papan Sudokuterbuat dari sembilan buah kotak berukuran 33
(disebut blok/ subgrid) yang disusun sedemikian rupa sehingga
menghasilkan kotak besar berukuran 99. Beberapa kotak sudah
diisi sebagai petunjuk awal dan tugas pemain adalah melengkapi
angka-angka pada kotak yang lain sehingga keseluruhan papan
5/20/2018 Contoh Proposal Judul Baru Revisi Desember 2013
7/
permainan t
sangatlah se
- Kotak-k
berisi se
- Angka-a
dalam 1
berulan
maupun
Angka-a
satu sama l
warna yang b
b. Algoritma B
Algoritm
Lehmer pada
risi angka secara lengkap. Aturan p
erhana:
tak pada setiap baris, kolom, dan blok/
buah angka.
ngka yang diisikan harus unik dari 1 hingg
blok/ subgrid hanya terdiri atas angka 1-
dan tidak ada angka yang berulang d
kolom.
ngka ini sebenarnya tidak memiliki hubun
in. Boleh digantikan dengan 9 huruf, la
erbeda.
Gambar 1. Puzzle Sudoku
cktracking
a backtracking pertama kali diperkenalk
tahun 1950. Dalam perkembangannya b
ermainannya
ubgrid harus
a 9 sehingga
9 yang tidak
lam 1 baris
gan aritmetis
mbang, atau
n oleh D.H.
eberapa ahli
5/20/2018 Contoh Proposal Judul Baru Revisi Desember 2013
8/2
seperti RJ Walker, Golomb, dan Baumert menyajikan uraian umum
tentang backtracking dan penerapannya dalam berbagai persoalan
dan aplikasi. Algoritma backtracking (runut balik) merupakan salah
satu metode pemecahan masalah yang termasuk dalam strategi yang
berbasis pencarian pada ruang status. Algoritma backtracking
bekerja secara rekursif dan melakukan pencarian solusi persoalan
secara sistematis pada semua kemungkinan solusi yang ada. Oleh
karena algoritma ini berbasis pada algoritma Depth-First Search
(DFS) untuk mencari solusi persoalan secara lebih efektif, maka
pencarian solusi dilakukan dengan menelusuri suatu struktur
berbentuk pohon berakar secara preorder. Proses ini dicirikan
dengan ekspansi simpul terdalam lebih dahulu sampai tidak
ditemukan lagi suksesor dari suatu simpul.
Algoritma backtrackingadalah suatu algoritma yang merupakan
perbaikan dari algoritma brute force, secara sistematis mencari solusi
persoalan di antara semua kemungkinan solusi yang ada.
Backtracking merupakan bentuk tipikal dari algoritma rekursif dan
berbasis pada DFS dalam mencari solusi yang tepat. Selain itu,
algoritma ini juga merupakan metode yang mencoba-coba beberapa
keputusan sampai kita menemukan salah satu yang berjalan. Kita
tidak perlu memeriksa semua kemungkinan solusi yang ada, tetapi
cukup yang mengarah kepada solusi saja. Dengan memangkas
5/20/2018 Contoh Proposal Judul Baru Revisi Desember 2013
9/2
(pruning) sim
waktu penca
untuk progra
buatan.
Saat in
program ga
keluar dalam
menyelesaika
(artificial intell
Prinsip
kemungkinan
forceadalah
solusi dibuat
tersebut aka
terbaik yang
pul-simpul yang tidak mengarah ke sol
ian dapat dihemat. Algoritma ini banya
games dan permasalahan pada bidan
i algoritma backtracking banyak diter
es seperti permainan tic-tac-toe, mene
sebuah labirin, catur dan sebagainya
n masalah-masalah pada bidang kecerd
igence).
asar algoritma backtracking adalah men
solusi yang ada. Perbedaan dengan al
ada konsep dasarnya, yaitu pada backtr
alam bentuk pohon solusi (tree), dan ke
ditelusuri secara DFS sehingga dite
iinginkan.
Gambar 2. Pohon Solusi (tree)
si, sehingga
k diterapkan
kecerdasan
pkan untuk
mukan jalan
serta untuk
asan buatan
coba semua
oritma brute
ckingsemua
udian pohon
ukan solusi
5/20/2018 Contoh Proposal Judul Baru Revisi Desember 2013
10
Misalkan pohon di atas menggambarkan solusi dari suatu
persoalan. Jika kita ingin mencari solusi dari A ke E, maka jalur yang
harus ditempuh adalah (A-B-E). Demikian juga untuk solusi-solusi
yang lain. Algoritma backtrackingakan memeriksa jalur secara DFS,
yaitu dari solusi terdalam pertama yang ditemui yaitu solusi E. Jika
ternyata E bukanlah solusi yang diharapkan, maka pencarian akan
dilanjutkan ke F. Jalur yang harus dilalui untuk bisa mencapai E
adalah (A-B-E) dan untuk mencapai F adalah (A-B-F). Kedua solusi
tersebut memiliki jalur awal yang sama, yaitu (A-B). Jadi, dari pada
memeriksa ulang jalur dari A kemudian B, maka jalur (A-B) disimpan
dulu dan langsung memeriksa solusi F. Untuk kasus pohon yang
lebih rumit, cara ini dianggap lebih efisien daripada jika menggunakan
algoritma Brute-Force.
Properti Umum Metode Runut Balik (Backtracking)
1. Solusi persoalan
Solusi dinyatakan sebagai vektor dengan n-index:
X = (x1, x2, , xn), xihimpunan berhingga Si
Mungkin saja S1= S2= = Sn
Keterangan: X = vektor solusi
x = komponen vektor solusi
S = himpunan kemungkinan solusi
5/20/2018 Contoh Proposal Judul Baru Revisi Desember 2013
11
Contoh: Si= {0, 1}, xi= 0 atau 1
2. Fungsi pembangkit nilai xk
Dinyatakan sebagai: T(k)
T(k) membangkitkan nilai untuk xk, yang merupakan komponen
vektor solusi.
Keterangan: x = komponen vektor solusi
k = index komponen vektor solusi
T = fungsi pembangkit
3. Fungsi pembatas
Pada beberapa persoalan fungsi ini dinamakan fungsi kriteria.
Dinyatakan sebagai B(x1, x2, , xk)
Fungsi pembatas menentukan apakah (x1, x2, , xk) mengarah
ke solusi. Bbernilai truejika (x1, x2, , xk)mengarah ke solusi.
Jika true, maka pembangkitan nilai untuk xk+1 dilanjutkan, tetapi
jika false, maka (x1, x2, , xk) dibuang dan tidak dipertimbangkan
lagi dalam pencarian solusi.
Keterangan: x = komponen vektor solusi
k = index komponen vektor solusi
B = fungsi pembatas
5/20/2018 Contoh Proposal Judul Baru Revisi Desember 2013
12
7. ANALISA DATA
(berisi bentu
Mining, harus dijelask
kemudian akan dimo
Dalam pener
dibutuhkan data men
penerapan algoritma
permainan Sudoku.
1. Papan per
2. Set awal p
a. An
b. Let
Ga
data yang akan diolah, missal: untuk S
an bentuk data primer dari tempat observa
elkan seperti apa ke dalam sistemnya)
pan algoritma backtracking pada permain
genai bentuk dan prosedur permainan s
sehingga dapat dimodelkan untuk m
mainan 9 x 9, sehingga terdapat 81 sel.
ermainan
ka yang diketahui
k/posisi angka pada papan permainan
bar 3. Data awal permainan Sudoku
K atau Data
i seperti apa
n Sudoku ini
rta prosedur
enyelesaikan
5/20/2018 Contoh Proposal Judul Baru Revisi Desember 2013
13
8. PEMBAHASAN
(membahas pemodelan permasalahan ke dalam metode/algoritma
yang akan digunakan)
Analisa pencarian solusi untuk game sudoku ini dengan algoritma
backtrackingkarena beberapa alasan, antara lain:
a. Tidak memiliki informasi yang cukup untuk mengetahui sel
mana yang harus diisi terlebih dahulu.
b. Terdapat beberapa kemungkinan angka yang dapat diisikan ke
dalam sel.
c. Setiap keputusan yang diambil mengarah pada sekumpulan
kemungkinan baru.
d. Beberapa pilihan yang ada, kemungkinan merupakan solusi
dari permainan ini.
Dengan adanya pilihan solusi yang banyak ini membuat kebanyakan
orang memilih untuk melakukan pilihan solusi secara brute force, yang artinya
mencoba semua kemungkinan yang ada dan dilakukan secara acak.
Penggunaan algoritma backtracking ini akan terlihat dalam proses
pengisian sel dengan sebuah angka dimana terdapat beberapa kemungkinan
angka yang sesuai untuk sel tersebut. Pada pengisian selanjutnya, angka
yang diisikan akan dicocokkan dengan angka-angka pada sel dalam baris,
kolom dan subgrid yang bersesuaian. Metode membandingkan dan
5/20/2018 Contoh Proposal Judul Baru Revisi Desember 2013
14
pencarian angka yang menuju ke solusi dilakukan secara rekursif. Proses
pencarian solusi digambarkan pada diagram blok berikut ini:
Gambar 4. Diagram Blok Pencarian Solusi
Keterangan:
a. Dilakukan perulangan sebanyak sel yang masih kosong.
b. Mendefinisikan kandidat angka yang akan diisikan.
Mencari sel yang
masih kosong
Kandidat angka yang
akan diisikan
Pengecekan kandidat angka
terhadap angka yang terdapat pada
baris, kolom dan blok yang
bersesuaian
Isi sel dengan solusi
Hasil
pengecekan=solusi
Hasil
pengecekan=himpunan
kemungkinan solusi
Proses diulang sampai
sejumlah sel (i=1 to 81)
5/20/2018 Contoh Proposal Judul Baru Revisi Desember 2013
15
c. Pencarian kandidat angka dilakukan dengan pengecekan angka
pada baris, kolom dan blok/ subgrid yang bersesuaian. Angka
yang sudah terdapat pada baris, kolom dan blok/ subgridyang
bersesuaian akan di eliminasi dari himpunan kemungkinan
solusi.
d. Pengecekan dilakukan dengan mengeliminasi kandidat angka
yang tidak mengarah ke solusi.
e. Jika pengecekan menghasilkan solusi, maka dilakukan proses
pengisian angka dan proses kembali ke tahap awal. Tetapi jika
pengecekan angka belum menghasilkan solusi, maka dilakukan
backtrackingke kandidat angka yang lain.
Contoh pencarian solusi yang dapat dilakukan sebagai salah satu penerapan
algoritma backtracking:
1. Pencarian sel yang kosong.
4 8 7 5 2 1
3 4
6 2 7 8
2 8 1
1 5 2 9 7
9 1 2
1 2 4 9
5 6
6 4 1 3 5 8
Gambar 5. Pencarian sel kosong
Sel pertama yang kosong adalah pada baris ke-1 kolom ke-2.
1 2 3 4 5 6 7 8 9
1
2
3
4
5
6
7
8
9
5/20/2018 Contoh Proposal Judul Baru Revisi Desember 2013
16
2. Angka yang akan diisikan adalah 1,2,3,4,5,6,7,8,9.
3. Pencarian kandidat angka yang akan diisikan
Kandidat angka yang mungkin adalah sebagai berikut:
Baris ke-1, kolom ke-2 (S1,2)
a. Kandidat yang mungkin pada baris ke-1, B={3,6,9}
b. Kandidat yang mungkin pada kolom ke-2, K={3,4,7,8,9}
c. Kandidat yang mungkin pada blok ke-1, G={1,5,7,9}
4. Pengecekan
Pengecekan dapat direpresentasikan dengan himpunan seperti pada
gambar berikut:
Gambar 6. Himpunan Solusi
Himpunan A = {3,6,9}
Himpunan B = {3,4,7,8,9}
Himpunan C = {1,5,7,9}
A B C = {9}, Jadi, solusinya adalah 9.
6
9
3
7
4, 8
1, 5
A
B
C
5/20/2018 Contoh Proposal Judul Baru Revisi Desember 2013
17
5. Solusi diisikan pada sel tersebut.
4 9 8 7 5 2 13 46 2 7 82 8 11 5 2 9 79 1 2
1 2 4 95 6
6 4 1 3 5 8
Gambar 7. Pengisian Solusi ke-1 pada sel
6. Selanjutnya melakukan pencarian sel yang kosong berikutnya yaitu sel
pada baris ke-1 kolom ke-6. Proses dilakukan berulang-ulang sampai
didapatkan solusi untuk sel yang kosong pada baris ke-1:
S1,6 = {6}, S1,9 = {3}
4 9 8 7 5 6 2 1 3
3 46 2 7 82 8 11 5 2 9 79 1 2
1 2 4 95 6
6 4 1 3 5 8
Gambar 8. Pengisian Solusi pada baris ke-1
7. Pencarian solusi pada baris ke-2 akan dihadapkan pada kasus yang
berbeda yaitu terdapat himpunan solusi yang lebih dari satu. Dalam
hal ini akan dilakukan backtrack ke kandidat angka yang lain. Hasil
1 2 3 4 5 6 7 8 9
1
2
3
4
5
6
7
8
9
1 2 3 4 5 6 7 8 9
1
2
3
4
5
6
7
8
9
5/20/2018 Contoh Proposal Judul Baru Revisi Desember 2013
18/
pengecekan berupa himpunan solusi akan disimpan yang kemudian
dapat digunakan untuk proses backtracking.
Pencarian kandidat angka untuk baris ke-2:
S2,2 = {7}, S2,3 = {1,5}, S2,5 = {6,8,9}, S2,6 = {2,6,8,9},
S2,7 = {6,9}, S2,8 = {5,6}, S2,9 = {5}
8. Selanjutnya dilakukan backtrack berdasarkan himpunan solusi yang
telah ada untuk masing-masing sel. Sehingga didapatkan solusi:
S2,2 = {7}, S2,3 = {1}, S2,5 = {8}, S2,6 = {2}, S2,7 = {9}
S2,8 = {6}, S2,9 = {5}
4 9 8 7 5 6 2 1 33 7 1 4 8 2 9 6 56 2 7 82 8 11 5 2 9 79 1 2
1 2 4 95 6
6 4 1 3 5 8
Gambar 9. Pengisian Solusi pada baris ke-2
1 2 3 4 5 6 7 8 9
1
2
3
4
5
6
78
9
5/20/2018 Contoh Proposal Judul Baru Revisi Desember 2013
19/
9. Proses pencarian solusi dilakukan berulang-ulang sesuai jumlah sel
yang masih kosong sampai seluruh sel terisi oleh angka menurut
fungsi pembatas yang ada.
4 9 8 7 5 6 2 1 33 7 1 4 8 2 9 6 56 2 5 1 3 9 7 8 42 4 3 8 9 7 6 5 11 5 6 3 2 4 8 9 79 8 7 5 6 1 4 3 25 1 2 6 7 8 3 4 9
8 3 9 2 4 5 1 7 67 6 4 9 1 3 5 2 8
Gambar 10. Puzzle sudokuyang telah terselesaikan
Pohon Ruang Status (State Space Tree)
Pohon dinamis yang dibentuk selama pencarian solusi untuk
persoalan puzzle sudokudengan ukuran 9x9 adalah:
1 1
1
1
1
2
1
1
1
1
X1=
X1=
=
X =
X1=6
X =
X1=
X1=
3
4
dst
X2=
X =2
B
6
7
dst
X3=2
B
B
58
X3= 9
1
dst
B
B
1
X4=
B
1 2 3 4 5 6 7 8 9
1
2
3
4
5
6
7
8
9
5/20/2018 Contoh Proposal Judul Baru Revisi Desember 2013
20
9. DAFTAR PUSTAKA
a. Ajeng, Wirasati. ANALISA PENERAPAN ALGORITMABACKTRACKING PADA GAME CROSSWORD PUZZLE. SekolahTinggi Teknologi Telkom. Bandung. 2005.
b. Deasy, Wulan dkk. Penerapan Algoritma Backtracking padaPewarnaan Graf. Fakultas Teknologi Industri ITB. Bandung. 2005.
c. Daisy, Rahmania. Bahasa Komputer I. Politeknik Elektronika NegeriSurabaya (ITS). 2002.
d. Crispina, Pardede. MATEMATIKA DISKRIT. UNIVERSITAS
GUNADARMA, Jakarta. 2004.
e. Crispina, Pardede. HIMPUNAN DAN OPERASI BINER, TeknikInformatika Universitas Gunadarma. Jakarta. 2003.
f. Dochi, Ramadhani. Runut Balik. E-learning Universitas Tanjungpura.2006. (diakses tanggal 12 Juni 2007 jam 18:10)