PENGUNAAN GRAF DAN ALGORITMA BACKTRACK DALAM PENYELESAIAN MASALAH by gfi17626

VIEWS: 1,686 PAGES: 13

									 PENGUNAAN GRAF DAN ALGORITMA BACKTRACK DALAM
        PENYELESAIAN MASALAH KNIGHT’S TOUR




           Untuk persyaratan penelitian sebagai tugas

            Studi S1 Program Studi Ilmu Komputer




                        Diajukan oleh :
                        Ari Sulistiyono
                           0608618


                            Kepada
      TIM PENGUJI PROGRAM STUDI ILMU KOMPUTER




            PROGRAM STUDI ILMU KOMPUTER
FAKULTAS PENDIDIKAN MATEMATIKA DAN ILMU PENGETAHUAN
                            ALAM
          UNIVERSITAS PENDIDIKAN INDONESIA
                          JULI 2009
BAB 1 PENDAHULUAN


1.1       LATAR BELAKANG


          Catur merupakan sebuah jenis permainan yang sudah dimainkan sejak
ratusan tahun yang lalu, permainan catur sangat terkenal hingga saat ini karena
bentuk permainannya yang mengandalkan logika berfikir. Catur merupakan
sebuah permainan strategi yang menggunakan 8 bidak prajutit, 2 bidak benteng, 2
bidak kuda, 2 bidak peluncur, 1 patih dan 1 raja. Permainan ini dimainkan oleh
dua orang pemain yang masing-masing pemain memiliki bidak yang disebutkan
diatas tadi. Bidang permainan berbentuk persegi empat, yang terdiri dari 8 x 8
kotak didalamnya dan biasanya berwarna putih dan hitam saling-silang. Dari dasar
permainan yang telah ada para pecinta catur banyak mengembangkan permainan-
permaianan lain yang tetap memegang kaidah dasar catur salah satunya adalah
permainan knight’s tour. Knight’s tour merupakan jenis permainan catur yang
hanya menggunakan satu buah bidak kuda, kuda merupakan bidak catur yang
memiliki langkah L yaitu :
      •   Melangkah dua persegi ke arah horisontal kemudian satu persegi ke arah
          vertikal, atau
      •   Melangkah dua persegi ke arah vertikal kemudian satu persegi ke arah
          horisontal, atau
      •   Melangkah dua persegi ke arah vertikal kemudian satu persegi ke arah
          horisontal, atau
      •   Melangkah satu persegi ke arah vertikal kemudian dua persegi ke arah
          horisontal.
Dalam permaiana ini kuda dituntut untuk mampu melangkahi semua bidang catur
tepat satu kali.

          Manfaat penelitian masalah ini adalah sebagai media pemanfaatan ilmu
kajian dalam hal ini matematika dalam menyelesaikan permasalah-permasalaha
yang dapat diselesaikan secara logic. Dan mampu memberikan pemecahan baru
dalam menyelesaikan permasalaha tersebut.




1.2     PERUMUSAN PERMASALAHAN

        Masalah dalam Knight’s tour telah diteliti oleh banyak peneliti terutama
para peneliti yang tertarik dalam bidang catur, permasalah ini muncul karena tidak
semua    orang   mampu       menyelesaikan    permasalah    tersebut.   Penyelesaian
permasalahan tersebut sebenarnya sudah terpecahkan dengan banyak metode yang
mampu memecahkannya. Ketertarikan dalam hal itulah yang mendorong
dirumuskannya permasalahn tersebut dalam sebuah penelitian. Banyak metode
mampu memberikan hasil yang sama, maka dimungkinkan masih ada metode lain
dalam menyelesaikan permasalahan tersebut sehingga mampu memberikan
keragaman.




1.3     TUJUAN PENELITIAN

        Penelitian yang dilakukan bertujuan untuk menyelesaikan masalah
Knight’s tour dengan menggunakan ilmu matematika dalam hal ini teori graf dan
pendukungnya dengan menggunakan algoritma backtrack. Hasil yang diharapkan
dalam penelitian ini adalah dapat menemukan metode baru dalam menyelesaikan
masalah knight’s tour ini.




1.4     MANFAAT PENELITIAN


        Penelitian ini bersifat terbuka hasil dari penelitian ini tidak untuk mencari
keuntungan semata tetapi mudah-mudahan dapat memberikan manfaat bagi orang
yang membacanya dalam hal mengenal lebih jauh tentang dunia graf dan
algoritma backtrack.


1.5     METODE PENELITIAN


        Metode penelitian yang digunakan dalam penyelesaian masalah tersebut
adalah dengan menggunakan teori graf dan pengaplikasiannya dengan
menggunakan algoritma backtrack. Perlu dipahami metode yang digunakan masih
berupa opini belum diteliti secara lebih jauh. Karekteristik dan sifat dari teori graf
sangat memungkinkan dapat menyelesaikan permasalahan tersebut. Sedangkan
algoritma backtrack digunakan sebagai terapan dalam penggunaan teori graf.



BAB 2 TINJAUAN PUSTAKA




2.1     PENGERTIAN GRAF


        Secara informal, suatu graf adalah himpunan benda-benda yang disebut
verteks (node) yang terhubung oleh sisi (edge atau arc). Biasanya graf
digambarkan sebagai kumpulan titik-titik (verteks) yang dihubungkan oleh garis-
garis (sisi).

        Secara formal, suatu graf G = (V,E) adalah suatu sistem yang terdiri dari
himpunan V (yang tak kosong dan berhingga) dan himpunan E dari pasangan tak
terurut {vi,vj} dengan vi, vj Î V. Himpunan V disebut himpunan titik dari graf G
dan anggotanya disebut benda yang disebut verteks (node) yang terhubung oleh
sisi (edge atau arc). Biasanya graf digambarkan sebagai kumpulan titik-titik
(verteks) yang dihubungkan oleh garis-garis (sisi). Secara formal, suatu graf G =
(V,E) adalah suatu sistem yang terdiri dari himpunan V (yang tak kosong dan
berhingga) dan himpunan E dari pasangan tak terurut {vi,vj} dengan vi, vj Î V.
Himpunan V disebut himpunan titik dari graf G dan anggotanya disebut titik,
sedangkan himpunan E disebut himpunan sisi dari graf G dan anggotanya disebut
sisi. Sisi {vi,vj} sering ditulis dengan vivj. Order dari graf G, ditulis dengan notasi
|V(G)| , menyatakan banyaknya titik pada graf G.

       Bila titik vi, vj Î V(G) dengan vivj Î E(G) maka titik vi dan vj dikatakan
bertetangga. Atau dengan kata lain apabila ada sisi yang mengaitkan titik vi dan vj
maka titik vi dan vj dikatakan bertetangga. Untuk setiap titik vi pada graf G,
derajat titik vi, dinotasikan sebagai dvi adalah banyaknya tetangga dari titik vi.

       Pada graf G, jalan J dari titik v0 ke titik vn adalah suatu barisan selang-
seling dari titik dan sisi v0, e0, v1,... vn-1, en-1, vn yang dimulai dan diakhiri
dengan titik, dengan sisi ei=vi vi+1 untuk i = 0,1, 2,..., n sedemikian sehingga vi
vi+1 Î E(G). Panjang dari jalan v0, e0, v1,... vn-1, en-1, vn adalah banyaknya sisi
pada barisan tersebut. Titik v0 dan vn disebut titik-titik ujung dari jalan tersebut.
Jika pada jalan J berlaku v0 = vn maka J disebut jalan tertutup dan dikatakan
jalan terbuka jika v0 ¹ vn.

       Jalan J disebut lintasan (path) bila semua titiknya berbeda. Sedangkan jika
setiap sisinya yang berbeda maka jalan tersebut dinamakan jejak (trail). Jejak
tertutup disebut sirkit. Sirkit yang semua titiknya berlainan disebut siklus (cycle).




                              Gambar 2.1 Contoh Graf


Pada gambar 2.1 di atas, a-f-b-f-c-d-c merupakan jalan (walk), a-b-f-c-g-c-f-e-a
merupakan jalan tertutup (close walk), a-f-c-d-f-b merupakan jejak (trail), a-e-f-c-
g merupakan lintasan (path), a-f-e-d-c-f-b-a merupakan sirkit, dan a-f-b-c-d-e-a
merupakan siklus (cycle).
2.2    SIKLUS HAMILTON


       Dalam teori graf, siklus yang menggunakan semua titik dan kembali ke
titik semula dikenal dengan siklus Hamilton (Hamilton cycle). Sedangkan jika
semua titik dilewati tepat satu kali tetapi tidak kembali ke titik semula disebut
Lintasan Hamilton (Hamilton path). Graf yang memiliki lintasan atau siklus
Hamilton disebut Graf Hamilton sebagaimana yang disampaikan oleh Sir William
Rowan Hamilton pada tahun 1856.


Perhatikan Gambar 1.2 berikut! Diberikan graf G dengan sembilan titik dan 14
sisi. Kita dapat membuat siklus Hamilton yang dimulai dan diakhiri pada salah
titik dari graf G tersebut.(Heri Sutarno dan Nanang Priatna,2003)




2.3    ALGORITMA


       Dalam matematika dan komputasi, algoritma merupakan kumpulan
perintah untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat
diterjemahkan secara bertahap dari awal hingga akhir. Masalah tersebut dapat
berupa apa saja, dengan catatan untuk setiap masalah, ada kriteria kondisi awal
yang harus dipenuhi sebelum menjalankan algoritma. Algoritma akan dapat selalu
berakhir untuk semua kondisi awal yang memenuhi kriteria, dalam hal ini berbeda
dengan heuristik. Algoritma sering mempunyai langkah pengulangan (iterasi) atau
memerlukan keputusan (logika Boolean dan perbandingan) sampai tugasnya
selesai.


2.4        ALGORITMA BACKTRACK

           Runut-balik (backtracking) adalah algoritma yang berbasis pada DFS
untuk mencari solusi persoalan secara lebih mangkus. Runut-balik, yang
merupakan perbaikan dari algoritma brute-force, secara sistematis mencari solusi
persoalan di antara semua kemungkinan solusi yang ada. Dengan metode runut-
balik, kita tidak perlu memeriksa semua kemungkinan solusi yang ada. Hanya
pencarian yang mengarah ke solusi saja yang selalu dipertimbangkan. Akibatnya,
waktu pencarian dapat dihemat.           Runut-balik merupakan bentuk tipikal   dari
algoritma rekursif. Saat ini algoritma runut-balik banyak diterapkan untuk
program games (seperti permainan tic-tac-toe, menemukan jalan keluar dalam
sebuah labirin, catur, dll) dan masalah-masalah pada bidang kecerdasan buatan
(artificial intelligence).


2.5        PROPERTI UMUM METODE RUNUT-BALIK


1. Solusi persoalan.
      Solusi dinyatakan sebagai vektor dengan n-tuple:

           X = (x1, x2, …, xn), xi   himpunan berhingga Si .

      Mungkin saja S1 = S2 = … = Sn.

      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.

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. Jika
      ya, maka pembangkitan nilai untuk xk+1 dilanjutkan, tetapi jika tidak, maka (x1,
      x2, …, xk) dibuang dan tidak dipertimbangkan lagi dalam pencarian solusi.


2.6   PENGERTIAN KNIGHT’S TOUR

          Knight’s Tour adalah suatu aplikasi dari teori graf pada permainan catur
papan. Suatu Knight’s Tour pada papan catur adalah rangkaian perjalanan kuda
catur pada papan catur sehingga seluruh kotak terlewati kuda tepat satu kali.
Aturan langkah kuda pada permainan catur adalah sebagai berikut :
      •   Melangkah dua persegi ke arah horisontal kemudian satu persegi ke arah
          vertikal, atau
      •   Melangkah dua persegi ke arah vertikal kemudian satu persegi ke arah
          horisontal, atau
      •   Melangkah dua persegi ke arah vertikal kemudian satu persegi ke arah
          horisontal, atau
      •   Melangkah satu persegi ke arah vertikal kemudian dua persegi ke arah
          horisontal.


Jika dalam Knight’s Tour setiap persegi dari papan catur dapat dilewati tepat satu
kali dan kuda kembali pada persegi semula maka disebut langkah kuda tertutup
(Closed Knight’s Tour). Namun, jika semua persegi telah dilewati dan kuda tidak
dapat kembali ke posisi semula maka disebut langkah kuda yang terbuka (Open
Knight’s Tour)
BAB 3 METODOLOGI



        Metodologi yang digunakan menggunakan fasilitas papan catur dan
komputer yang mampu menjalankan compiler java guna menguji coba algoritma
backtrack. Selain itu penelitian menggunakan perhitungan-perhitungan matematis
serta kertas gambar. Proses penelitian diambil dari pengalaman para peneliti lain
dalam memecahkan permasalahan ini, kemudian data diambil dan dijadikan
sampel dan referensi yang menjadi acuan dalam penelitian ini.




BAB 4 PEMBAHASAN


4.1     PENYELESAIAN KNIGHT’S TOUR MENGGUNAKAN GRAF


Kita gambarkan 64 kotak dalam papan catur adalah suatu state yang saling
berhubungan misalkan state a1 akan berhubungan langsung dengan state b3 dan
c2, state b2 berhubungan dengan a4, c4, d1 dan d3, state c3 berhubungan dengan
a2, a4, b1, b5, d1, d5, e2 dan e4, state d4 berhubungan dengan b3, b5, c2, c6, e2,
e6, f3 dan f5, dst.
Misalkan kita ambil a1 sebagai state awal maka kita akan memiliki dua alur jalan
yang bisa kita pilih. Lihat pada gambar



                        a1                  a3


                                            b3


                                  c2


                                            b4         d4


                        e1                  e3




                             Gambar 4.1 Skema Graf


Bisa kita lihat pada gambar bahwa dari state a1 maka memiliki dua alur jalan yang
bisa dilalui yaitu c2 dan b3, jika kita memilih c2 maka kemudian kita memiliki 5
alur jalan yang bisa dilewati yaitu a3, b3, d4, e1 dan e3. Bagaiman caranya kita
menemukan solusi yang kita cari ? jika kita memilih salah satu jalan yang akan
kita lalui maka kita harus memotong ikatan dari state asal menuju state yang tidak
kita pilih sehingga akan menyederhanakan skema, misal kita memilih c2, maka
kita harus memotong ikantan antara a1 ke b3 begitupun seterusnya. Melalui hal
tersebut maka kita akan memiliki sebuah ikatan state yang tidak terputus-putus
jika skema yang kita gunakan benar maka hasil tadi akan terpenuhi, tetapi banyak
kemungkinan state tersebut tidak terpenuhi karena kesalahan pengambilan arah
jalan. Salah satu yang mendukung konsep tersebut adalah algoritma backtrack.


4.2    PRINSIP PENCARIAN SOLUSI DENGAN METODE RUNUT-BALIK


Di sini penulis hanya akan meninjau pencarian solusi pada pohon ruang status
yang dibangun secara dinamis. Langkah-langkah pencarian solusi adalah sebagai
berikut:
1. Penyelesaian dicari dengan membentuk jalur dari akar ke daun. Aturan
   pembentukan yang dipakai adalah mengikuti metode pencarian mendalam
  (DFS). Simpul-simpul yang sudah dilahirkan dinamakan simpul hidup (live
  node).   Simpul    hidup    yang     sedang   diperluas   dinamakan   simpul-E
  (Expandnode). Simpul dinomori dari atas ke bawah sesuai dengan urutan
  kelahirannya (sesuai prinsip DFS).
2. Tiap kali simpul-E diperluas, jalur yang dibangun olehnya bertambah panjang.
  Jika jalur yang sedang dibentuk tidak mengarah ke solusi, maka simpul-E
  “dibunuh” sehingga menjadi simpul mati (dead node). Fungsi yang digunakan
  untuk membunuh simpul-E adalah dengan menerapkan fungsi pembatas
  (bounding function). Simpul yang sudah mati tidak akan pernah diperluas lagi.
3. Jika pembentukan jalur berakhir dengan simpul mati, maka proses pencarian
  diteruskan dengan membangkitkan simpul anak yang lainnya. Bila tidak ada
  lagi simpul anak yang dapat dibangkitkan, maka pencatian solusi dilanjutkan
  dengan melakukan runut-balik ke simpul hidup terdekat (simpul orangtua).
  Selanjutnya simpul ini menjadi simpul-E yang baru. Jalur baru dibangun
  kembali sampai jalur tersebut membentuk solusi.
4. Pencarian dihentikan bila kita telah menemukan solusi atau tidak ada lagi
  simpul hidup untuk runut balik.




                             Gambar 4.1 Pohon Status




            Gambar 4.2 Proses Pembentukan jalur dan perunut balik.
4.3    PENGAPLIKASISAN ALGORITMA BACKTRACK


Algoritma    runut-balik     (backtracking    algorithm)    dapat   dipakai    untuk
menyelesaikan permasalahan dari Knight’s Tour. Ide dasar dari algoritma runut
balik adalah dengan membangun solusi-solusi parsial dari masalah (dalam hal ini
jalan selangkah pada papan) lalu mencoba memperluas solusi tersebut. Jika solusi
yang telah dikembangkan gagal (langkah selanjutnya tidak menuju solusi) maka
akan dilakukan runut-balik dan mencoba solusi parsial lainnya.
Algoritma runut-balik yang dipakai adalah:
1. Dari kotak tempat kuda tersebut berada, dibangkitkan langkah-langkah
  berikutnya yang memungkinkan dilalui oleh kuda tersebut.
2. Salah satu langkah (kotak) dipilih untuk diperluas.
3. Kuda melangkah ke kotak yang dipilih tersebut.
4. Kembali ke langkah satu sampai langkah yang diperluas tidak dapat mencapai
  solusi (kuda tidak dapat melangkah lagi).
5. Pencarian langkah dilakukan dengan melakukan runut balik ke langkah yang
  telah dilalui terdekat dan kuda melangkah balik ke kotak tersebut dan kembali
  ke langkah satu.
6. Pencarian langkah dihentikan bila telah melakukan solusi atau tidak ada
  langkah yang memungkinkan lagi bagi kuda catur tersebut.




BAB 5 KESIMPULAN DAN SARAN


       Pengaplikasian teori graf pada penyelesaian masalah knight’s tour
merupakan    solusi   yang    tepat.   Banyak    solusi    yang   didapatkan   untuk
menyelesaikan permasalahan ini menggunakan metode dasarnya teori graf.
Hingga saat ini masih banyak para pakar yang meneliti cara lain dalam
menyelesaikan knight’s tour ini. Penemuan-peneman baru pun trus bermunculan.
Sedangkan penggunaan terapan algoritma backtrack dirasa sangat tepat karena
mampu menghitung berbagai kemungkinan yang ada.
                             DAFTAR PUSTAKA


[1] Mumtaz, Fahmi.2007. “Aplikasi Teori Graf pada Knight’s Tour”.
[2] Irawan Ardianto, Riaka.2007.”Aplikasi Graf pada Permasalahan Knight’s
  Tour”.
[3] Lewandowski, Gary.2001. “Project 1: The Knight’s Tour Gary
  Lewandowski”, CSCI 220, fall .
[4] Yuliawanto.2007.”Knight’s Tour”.
[5] Heri Sutarno, Drs. M.T., Nanang Priatna, Dr., M.Pd., Nurjanah, Dra.,
  M.Pd.2003. Matematika Diskret, Jurusan Pendidikan Matematika UPI.
[6]Munir,Rinaldi.2004.”algoritma runut-balik(bacltracking)”.Departemen Teknik
  Informatika ITB.bandung.

								
To top