• Tidak ada hasil yang ditemukan

HASIL DAN PEMBAHASAN. Arsitektur sistem

N/A
N/A
Protected

Academic year: 2021

Membagikan "HASIL DAN PEMBAHASAN. Arsitektur sistem"

Copied!
7
0
0

Teks penuh

(1)

8 Arsitektur sistem Backend Backend Identifikasi aturan-aturan pembangkitan slither link Pembangkitan slither link Identifikasi aturan-aturan penyelesaian slither link Penyelesaian Slither link Front End GUI Parser

Gambar 13 Arsitektur sistem.

Arsitektur sistem ini terdiri atas tiga bagian yaitu, modul back end, modul front end, dan modul parser. Pada bagian back end akan di kerjakan oleh DLV dan C++, bagian ini adalah bagian utama yang menangani pembangkitan dan penyelesaian slither link dengan answer set programming maupun dengan procedural programming. Kemudian bagian parser adalah bagian penghubung yang bertugas sebagai modul penerjemah. Gambar 14 menggambarkan sebuah diagram alur tentang bagaimana sebuah solver slither link bekerja menghasilkan solusi.

Gambar 14 Diagram alur proses solver slither link.

HASIL DAN PEMBAHASAN

Masalah slitherlink diselesaikan dengan metodologi pemrograman deklaratif dengan terlebih dahulu mendeskripsikan masalah, kemudian melakukan proses encoding kondisi

solusi yang diinginkan ke dalam bahasa logika DLV menggunakan paradigma GCO (guess / check / optimize) agar solver bisa menyelesaikannya. Sebagai perbandingan dibuat juga model penyelesaian slither link dengan menggunakan procedural programming dengan software C++, kedua metode ini akan dibandingkan rata-rata waktu eksekusinya. Domain masalah dalam DLV

Solusi untuk masalah slither link adalah membuat loop sedemikian sehingga loop yang dihasilkan memenuhi kondisi nilai yang terdapat pada cell dalam grid, arti kata memenuhi adalah garis jumlah garis yang mengelilingi cell harus memiliki jumlah yang sama dengan angka yang terdapat di dalam cell.

Sebuah cell dalam slither link direpresentasikan dengan predikat C(X,Y,N) yang memiliki tiga argumen yaitu, X dan Y yang berarti koordinat cell dalam grid (X koordinat vertikal dan Y koordinat horizontal) , dan N yang berarti angka yang terdapat di dalam cell. N bisa bernilai 0, 1, 2, 3, atau null. Himpunan dari predikat C disebut sebagai fakta atau deskripsi dari masalah slither link yang akan diselesaikan, seperti pernyataan berikut mengilustrasikan fakta untuk slither link dengan ukuran 3x3. C(1,1,null). C(1,2,null). C(1,3,2). C(2,1,1). C(2,2,0). C(2,3,3). C(3,1,2). C(3,2,null). C(3,3,null).

Fakta tersebut adalah representasi dari Gambar 15:

Gambar 15 Representasi dari fakta slither link. Predikat arc(X,Y,A,B,C,D) memiliki enam argumen didalamnya yang merepresentasikan posisi cell dan status garis-garis di sekeliling cell, dimana X dan Y merepresentasikan posisi cell (X koordinat vertikal dan Y koordinat horizontal), sedangkan A, B, C, dan D merepresentasikan nilai atau status dari garis di sekeliling cell. Jika bernilai 0 maka tidak ada garis terbentang pada posisi

(2)

9 tersebut, dan jika bernilai 1 maka ada garis

terbentangdi posisi tersebut. A berposisi di atas cell, B berposisi di sebelah kanan cell , C berposisi di bagian bawah cell, dan D berposisi di sebelah kiri cell seperti ditunjukkan pada Gambar 16.

Gambar 16 Representasi status garis di

sekeliling cell

arc(X,Y,0,0,0,1).

Encoding dengan DLV

Sebelumnya pada bagian metodologi telah dijelaskan mengenai beberapa teknik atau petunjuk cara menyelesaikan slither link, teknik itulah yang akan diterjemahkan ke bahasa logika secara deklaratif menggunakan paradigma GC(guess, check).

Langkah pertama yang dilakukan adalah mendefinisikan ruang pencarian yaitu bagian guess pada program, pada bagian ini terdapat empat aturan disjungsi yang mendefinisikan ruang pencarian dari masalah yaitu cell dengan nilai 0, 1, 2, 3, dan null dijelaskan pada Lampiran 1. Misalnya untuk cell dengan nilai 1 maka cell tersebut mempunyai empat kemungkinan solusi untuk dibangkitkan. Kode program berikut menggambarkan bagaimana sebuah cell bernilai 1 dibangkitkan kemungkinan solusinya.

arc(X,Y,1,0,0,0) v arc(X,Y,0,1,0,0) v arc(X,Y,0,0,1,0) v arc(X,Y,0,0,0,1) :- C(X,Y,1).

Berikut adalah representasi bentuk cell dari solusi yang telah dibangkitkan :

1 arc(X,Y,1,0,0,0)

Gambar 17 Cell dengan predikat

arc(X,Y,1,0,0,0). 2 arc(X,Y,0,1,0,0)

Gambar 18 Cell dengan predikat

arc(X,Y,1,0,0,0). 3 arc(X,Y,0,0,1,0)

Gambar 19 Cell dengan predikat

arc(X,Y,0,0,1,0). 4 arc(X,Y,0,0,0,1)

Gambar 20 Cell dengan predikat

arc(X,Y,0,0,0,1). Kemudian langkah selanjutnya adalah mendefinisikan constraint atau aturan yang akan menghapus calon answer set yang tidak memenuhi syarat, bagian ini masuk ke dalam metode check. Constraint dari program adalah : 1 Cell dengan nilai 0 (lihat Lampiran 2). Sebuah cell dengan nilai 0 tidak boleh memiliki garis yang mengelilinginya, dan hal tersebut berakibat juga pada cell disebelah kiri atau kanan maupun pada atas dan bawah cell dengan nilai 0 tersebut. Dengan bahasa logika aturan ini diterjemahkan menjadi :

:- arc(X,Y,0,0,0,0), arc(A,Y,_,_,1,_), X=A+1.

Answer set yang tidak akan tereliminasi adalah sebagai berikut :

Gambar 21 Cell dengan nilai 0. 2 Cell dengan nilai 1 (lihat Lampiran 2).

Sebuah cell dengan nilai 1 akan mempengaruhi jumlah garis yang mengelilingi tetangganya karena hanya boleh ada satu sisi yang bernilai 1. Misalnya cell yang bernilai 1 mempunyai garis pada posisi B maka tetangganya di sebelah kanan harus memiliki nilai 1 juga tetapi pada garis

(3)

10 di posisi D selain itu maka hapus kandidat

tersebut. Aturan ini diterjemahkan menjadi : :- arc(X,Y,0,1,0,0),

arc(X,B,_,_,_,0), B=Y+1.

Tanda “_” adalah anonymous variable yang bermakna bahwa argumen ini bisa dihiraukan atau berapapun nilainya tidak mempengaruhi rule. Answer set yang tidak akan tereliminasi adalah sebagai berikut :

Gambar 22 Cell dengan nilai 1. 3 Cell dengan nilai 2 (lihat Lampiran 2).

Serupa dengan aturan sebelumnya dimana aturan ini akan mempengaruhi jumlah garis yang mengelilingi tetangganya, karena nilai dari cell ini adalah 2 maka ada dua garis yang harus bernilai 1 dan dua garis lainnya bernilai 0, begitu juga pada dua buah cell tetangga dari cell ini. Misalnya cell yang bernilai 2 memiliki garis pada posisi A dan B maka tetangga yang berada di atas harus memiliki nilai 1 pada sisi di posisi C dan tetangga di sebelah kanan harus memiliki nilai 1 pada sisi di posisi D, jika menyalahi aturan ini maka eliminasi answer set tersebut. Aturan ini diterjemahkan menjadi . :- arc(X,Y,1,1,0,0),

arc(X,B,_,_,_,0), B=Y+1. :- arc(X,Y,1,1,0,0), arc(A,Y,_,_,0,_), X=A+1.

Constraint pertama merepresentasikan cell di sebelah kanan cell yang bernilai 2, dan constraint kedua merepresentasikan cell di atas cell bernilai 2. Answer set yang tidak akan tereliminasi adalah sebagai berikut :

Gambar 23 Cell dengan nilai 2. 4 Cell dengan nilai 3 (lihat Lampiran 2). Cell

dengan tipe seperti ini adalah kebalikan dari cell dengan nilai 1, jika pada cell dengan nilai 1 memiliki tiga garis dengan nilai 0 maka cell dengan nilai 3 memiliki tiga garis dengan nilai 1 dan satu garis lainnya bernilai 0. Cell dengan tipe ini mengharuskan tiga tetangganya memiliki nilai 1 pada sis yang bertetangga, dan satu tetangganya memiliki nilai 0 pada sisi yang bertetangga. Misalnya sebuah cell dengan nilai 3 memiliki garis

pada posisi A, B, dan C maka tetangga yang berada di atas cell tersebut harus memiliki nilai 1 pada sisi di posisi C, begitu juga dengan tetangga yang berada di sebelah kanan yang harus memiliki nilai 1 pada sisi di posisi D, dan tetangga yang berada di bawah harus memiliki nilai 1 pada sisi di posisi A. Skenario tersebut digambarkan oleh constraint berikut :

:- arc(X,Y,1,1,1,0), arc(X,B,_,_,_,0), B=Y+1. :- arc(X,Y,1,1,1,0), arc(A,Y,_,_,0,_), X=A+1. :- arc(X,Y,1,1,1,0), arc(A,Y,0,_,_,_), A=X+1.

Answer set yang tidak akan tereliminasi adalah sebagai berikut :

Gambar 24 Cell dengan nilai 3. 5 Mencegah local loop (lihat Lampiran 3).

Untuk mencegah local loop yaitu loop yang terjadi pada satu buah cell

atau dengan kata

lain cell tersebut mempunyai nilai 4 yang tidak diperbolehkan dalam aturan slither link maka eliminasi answer set dimana sebuah cell yang sudah memiliki tiga sisi bernilai 1 dan sisi lainnya bernilai 0 tetapi sisi bernilai 0 tersebut ternyata bernilai 1 pada tetangganya sehingga mengakibatkan local loop. Local loop hanya mungkin terjadi pada cell yang mempunyai tiga sisi yang bernilai 1, untuk mencegah hal ini maka definisikan constraint berikut : :- arc(X,Y,1,1,1,0), arc(X,B,_,1,_,_), Y = B+1. :- arc(X,Y,0,1,1,1), arc(A,Y,_,_,1,_), X = A+1. :- arc(X,Y,1,0,1,1), arc(X,B,_,_,_,1), B = Y+1. :- arc(X,Y,1,1,0,1), arc(A,Y,1,_,_,_), A = X+1.

Gambar 25 mengilustrasikan salah satu answer set yang akan dieliminasi oleh constraint di atas.

(4)

11 6 Constraint pada cell

dengan posisi X = 1 dan

Y =1 (1,1). Constraint ini akan sangat membantu menyelesaikan slither link, karena kesalahan menempatkan garis pada cell di posisi ini akan mengakibatkan jalan buntu pada solusi dan akan langsung terlihat tanpa perlu menunggu cell lain terbuka garisnya (lihat Lampiran 4). Sebagai contoh jika cell memiliki nilai 1 maka kandidat solusi yang akan gugur adalah jika cell tersebut memiliki sisi yang bernilai 1 pada posisi A atau D karena hal tersebut akan mengakibatkan jalan buntu atau garis berhenti pada posisi itu, untuk mencegah hal ini maka didefinisikan constraint berikut : :- arc(1,1,1,0,0,0).

:- arc(1,1,0,0,0,1).

Constraint tersebut akan mengeliminasi calon answer set berikut :

Gambar 26 Constraint pada posisi pojok kiri atas.

7 Constraint pada cell dengan posisi (1,

#maxint), #maxint adalah ukuran dari slither link sehingga cell tersebut terletak pada pojok kanan atas (lihat Lampiran 4). Sebagai ilustrasi jika cell pada posisi ini memiliki nilai 1, maka kandidat solusi yang akan gugur adalah jika cell tersebut memiliki sisi di posisi A atau B yang bernilai 1. Hal tersebut akan mengakibatkan terjadinya jalan buntu, atau garis tidak bisa menyambung dengan garis selanjutnya. Hal tersebut dicegah oleh constraint berikut : :- arc(1,#maxint,1,0,0,0).

:- arc(1,#maxint,0,1,0,0).

Constraint tersebut akan mengeliminasi calon answer set berikut :

Gambar 27 Constraint pada posisi pojok kanan atas

8 Constraint pada cell dengan posisi (#maxint ,1), #maxint adalah ukuran dari slither link. Cell dengan posisi ini terletak pada pojok kiri bawah dari grid (lihat Lampiran 4). Sebagai ilustrasi jika cell ini

mempunyai nilai 1 maka kandidat solusi yang akan gugur adalah yang mempunyai sisi bernilai 1 pada posisi D atau C. Constraint berikut mendefinisikan aturan tersebut dalam bahasa logika.

:- arc(#maxint,1,0,0,0,1). :- arc(#maxint,1,0,0,1,0).

Constraint tersebut akan mengeliminasi calon answer set berikut :

Gambar 28 Constraint pada posisi pojok kiri bawah.

9 Constraint pada cell dengan posisi (#maxint, #maxint), #maxint adalah ukuran dari slither link sehingga cell tersebut terletak pada pojok kanan bawah dari grid (lihat Lampiran 4). Sebagai ilustrasi jika cell pada posisi ini memiliki nilai 1, maka kandidat solusi yang akan tereliminasi adalah jika cell tersebut memiliki sisi yang berposisi di B atau C yang bernilai 1. Untuk mengeliminasi kondisi tersebut maka constraint berikut harus didefinisikan :

:- arc(#maxint,#maxint,0,1,0,0). :- arc(#maxint,#maxint,0,0,1,0). Constraint tersebut akan mengeliminasi calon answer set berikut :

Gambar 29 Constraint pada posisi pojok kanan bawah.

10 Antisipasi cabang (lihat Lampiran 5). Cabang akan mengacaukan loop yang dihasilkan, solusi dari slither link adalah sebuah loop maka solusi tersebut tidak boleh mempunyai cabang. Constraint ini akan mengeliminasi kandidat solusi yang mengakibatkan cabang, seperti jika sebuah cell mempunyai nilai 2 dan sisi yang bernilai 1 adalah A dan B maka cell di kanan atas dari cell tersebut tidak boleh memiliki nilai 1 pada sisi yang berposisi di D atau nilai 1 pada sisi yang berposisi di C. Hal seperti ini ditangani oleh constraint berikut :

:- arc(X,Y,1,1,_,_),

(5)

12 :- arc(X,Y,1,1,_,_),

arc(A,B,_,_,_,1), X=A+1, B=Y+1. Constraint tersebut akan mengeliminasi calon answer set berikut :

Gambar 30 Antisipasi cabang. 11 Ketersambungan dari garis (lihat Lampiran

5). Himpunan garis penyusun loop tidak boleh terputus, maka sangat penting untuk memeriksa apakah antar himpunan garis penyusun loop merupakan sebuah rangkaian yang tersambung. Ilustrasi dari skenario ini adalah jika sebuah cell di sembarang posisi memiliki nilai 1 pada sisi di posisi A dan nilai 0 pada posisi D tanpa memperhatikan nilai dari posisi B dan C, maka ke arah kiri satu-satunya cara agar garis tersambung adalah dengan memperhatikan tetangga sebelah kiri atas apakah cell tersebut memiliki nilai 1 pada salah satu sisi dari B atau C. Jika tidak memenuhi kondisi ini maka eliminasi kandidat solusi tersebut, skenario tersebut digambarkan dalam constraint berikut :

:- arc(X,Y,1,_,_,0),

arc(A,B,_,M,N,_), M=N, X=A+1, Y=B+1. Constraint tersebut akan mengeliminasi calon answer set berikut :

Gambar 31 Ketersambungan dari garis. 12 Local loop dari cell dengan nilai 3 yang

bersebelahan (lihat Lampiran 3). Jika terdapat dua buah cell dengan nilai 3 yang bersebelahan baik di kiri dan kanan maupun pada atas dan bawah, ada kemungkinan konfigurasi keduanya membentuk local loop sehingga menyalahi aturan dari slither link. Yang dimaksud local loop pada skenario ini adalah loop yang terjadi antara dua cell yang memiliki nilai 3 tersebut, salah satu constraint yang digunakan adalah sebagai berikut :

:- arc(X,Y,1,1,0,1), arc(A,Y,0,1,1,1), A=X+1.

Constraint tersebut akan mengeliminasi calon answer set berikut :

Gambar 32 Local loop dengan 2 cell bernilai 3.

13 Cell bernilai 2 yang bersebelahan dengan cell bernilai 0 pada bagian atas, bawah, kiri, serta kanan dari grid (lihat Lampiran 6). Terdapat dua tipe kandidat solusi yang akan gugur jika skenario ini terjadi yaitu cell yang memiliki nilai 1 pada sisi A dan C serta cell yang memiliki nilai 1 pada sisi B dan D karena pada salah satu sisi akan terjadi jalan buntu atau garis tidak bisa melanjutkan sehingga loop tidak terjadi. salah satu constraint yang digunakan adalah sebagai berikut :

:- arc(#maxint,Y,1,0,1,0), arc(#maxint,B,0,0,0,0), Y=B+1. Constraint tersebut akan mengeliminasi calon answer set berikut :

Gambar 33 Cell bernilai 2 yang bersebelah dengan 0.

Bagian constraint yang telah dijelaskan sebelumnya akan mengeliminasi kandidat solusi yang tidak memenuhi aturan slither link sehingga answer set yang didapatkan merupakan solusi yang diharapkan.

Menjalankan model penyelesaian slither link Fakta dari slither link yang telah dibangkitkan disimpan dalam file bernama

soal.dat dan program DLV untuk penyelesaian slither link disimpan dalam file bernama slither.txt. Pemisahan file antara fakta dan program disebabkan karena fakta yang akan selalu berubah seiring dengan slither link yang dibangkitkan. Berikut akan diberikan ilustrasi bagaimana sebuah slither link diselesaikan menggunakan program DLV.

Misalnya telah dibangkitkan sebuah slither link dengan ukuran 3x3 dan memiliki fakta sebagai berikut :

(6)

13 Gambar 34 Slither link hasil pembangkitan.

C(1,1,null). C(1,2,1). C(1,3,null). C(2,1,null). C(2,2,null). C(2,3,1). C(3,1,1). C(3,2,null). C(3,3,2).

Kemudian fakta ini akan diproses bersama dengan model penyelesaian slither link oleh DLV, sehingga menghasilkan answer set yang merupakan solusi.

D:\DLV>dlv.mingw.exe -nofacts -silent soal.dat slither.txt -N=3 {arc(1,2,1,0,0,0), arc(2,3,0,1,0,0), arc(3,1,0,1,0,0), arc(3,3,0,1,1,0), arc(1,1 ,1,0,1,1), arc(1,3,1,1,0,0), arc(2,1,1,1,0,0), arc(2,2,0,0,0,1), arc(3,2,0,0,1,1 )}

Solusi tersebut harus diterjemahkan kembali menjadi sebuah slither link kembali, maka jika answer set tersebut diterjemahkan menjadi sebuah slither link seperti ditunjukkan Gambar 35.

Gambar 35 Solusi slither link. Implementasi dengan Procedural Programming

Pada bagian metodologi telah ditunjukkan bahwa slither link mempunyai petunjuk-petunjuk yang bisa digunakan untuk menyelesaikan masalah. Petunjuk-petunjuk ini yang akan digunakan dalam membuat program ini. Program penyelesaian slither link menggunakan C++ ini terdiri atas enam modul dan satu fungsi.

Struktur data

Fakta tentang ukuran slither link dan nilai– nilai dalam cell yang dibangkitkan disimpan

dalam file ukuran.dat dan data.dat dengan format sebagai berikut :

/// ** data.dat **//

𝑁1

𝑁2

...

𝑁𝑘

Dimana 𝑁𝑖 adalah nilai di dalam cell, dan k

adalah jumlah cell dalam grid atau sebanyak ukuran grid dikuadratkan. Kemudian fakta ini akan dibaca oleh program sebagai array yang berukuran k.Kemudian setiap sisi pada grid diberi nilai default 3 yang berarti statusnya belum diketahui (lihat Lampiran 7), jika bernilai 0 berarti tidak boleh ada garis pada sisi tersebut dan jika bernilai 1 maka ada garis pada sisi tersebut. Representasi posisi garis pada slither link digambarkan pada Gambar 36 :

Gambar 36 Ilustrasi penomoran sisi pada grid. Modul pertama bernama basic_rule,

modul ini akan mengaplikasian teknik-teknik dasar penyelesaian slither link salah satunya adalah jika terdapat cell dengan angka 0 maka sisi-sisi yang yang dipengaruhi akan diberi nilai 0 dan beberapa teknik lain seperti telah dijelaskan sebelumnya pada bagian metodologi. Pseudo code modul dapat dilihat pada Lampiran 8.

Modul kedua bernama advance_rule, modul ini akan mencari kemungkinan terbukanya nilai dari sisi-sisi pada cell di posisi samping kiri, kanan, atas, dan bawah dengan melihat tetangganya. Misalnya pada cell dengan posisi di atas (i ≤ ukuran) dan cell tersebut bernilai 3 maka dengan melihat cell di sebelah kirinya diketahui bahwa sisi atas dari cell tersebut bernilai 0, kemudian program langsung memberi nilai 1 pada sisi atas dan kiri di cell yang bernilai 3. Pseudo code modul dapat dilihat pada Lampiran 9.

Modul ketiga bernama cek_garis_cell, modul ini akan memberikan nilai 1 atau 0 pada sisi-sisi cell yang sudah dipastikan bahwa pemberian nilai tersebut akan membuat jumlah garis yang mengelilingi cell sesuai dengan nilai di dalamnya. Pseudo code modul dapat dilihat pada Lampiran 10.

(7)

14 Modul keempat bernama sambung_garis,

modul ini akan menyambungkan sisi dari cell yang tidak mungkin bercabang lagi, dan tersisa satu kemungkinan arah menuju garis selanjutnya. Misalnya pada sisi atas cell ke arah kanan mempunyai tiga kemungkinan cabang yaitu ke atas, ke samping, dan ke bawah. Jika dua dari cabang tersebut bernilai 0 maka bisa dipastikan garis tersebut mengarah ke cabang yg tidak bernilai 0. Pseudo code modul dapat dilihat pada Lampiran 11.

Modul kelima bernama cek_cabang , modul ini akan memberi tanda berupa nilai 0 pada sisi yang berpotensi menjadi cabang, dan mengembalikan status dari setiap sisi pada grid. modul ini hanya mengubah nilai dari sisi yang masih bernilai 3 dan berpotensi menjadi cabang. Pseudo code modul dapat dilihat pada Lampiran 11.

Modul keenam bernama cek_logic, modul ini akan memeriksa cell yang mempunyai nilai null dan sudah bisa ditebak kemungkinan solusinya dengan memeriksa tetangganya. Cell yang diperiksa hanya yang berada pada posisi tertentu yang bisa ditebak secara pasti kemungkinan solusinya. Pseudo code modul dapat dilihat pada Lampiran 12.

Program ini memiliki satu buah fungsi dengan nama sambung. Fungsi ini akan melakukan perjalanan dari sisi yang pertama kali ditemui dan bernilai 1 dan kembali ke sisi tersebut sehingga perjalanan tersebut berupa sebuah loop yang memenuhi aturan slither link yaitu jumlah garis yang mengelilingi sebuah cell sesuai dengan nilai di dalam cell. Perjalanan akan terhenti jika menemui jalan buntu, kemudian cabang yang menyebabkan jalan buntu tersebut akan ditandai untuk ditutup kemudian fungsi akan mencoba cabang baru (backtracking) sampai solusi ditemukan. Status dari sisi yang bernilai 1 berguna sebagai petunjuk, karena jika masih bernilai 3 maka fungsi akan mendahului garis yang bernilai 1 dan kebalikannya jika sisi tersebut bernilai 0 maka fungsi tidak akan melaluinya. Pseudo code modul dapat dilihat pada Lampiran 12. Hasil Pengujian

Pengujian dilakukan dengan

membangkitkan 30 soal slither link secara acak pada setiap ukuran puzzle, mulai dari ukuran puzzle 3x3 sampai dengan 20x20 kemudian dihitung waktu penyelesaian atau waktu eksekusi sampai dengan sebuah solusi didapatkan dari kedua metode yaitu answer set programming (ASP) dan procedural

programming (PP). Waktu yang digunakan sebagai perbandingan adalah rata-rata waktu eksekusi dari tiap ukuran, sistem memberi batas waktu (time out) yaitu 300 detik untuk menyelesaikan slither link jika sistem melewatinya maka ditandai. Waktu eksekusi tersebut dituliskan pada Tabel 1.

Tabel 1. Waktu eksekusi (detik) dari teknik Answer Set Programming (ASP) dan procedural programming (PP) dan waktu pembangkitan (detik).

Ukuran ASP PP Pem bangkit an Jumlah Timeout ASP PP 3 0,21 0,15 0,60 4 0,24 0,16 0,59 5 0,27 0,15 0,80 6 0,33 0,29 0,87 7 0,39 0,26 1,06 8 0,45 1,15 1,34 9 0,54 0,37 1,81 10 0,59 0,43 2,13 11 0,63 0,87 1,88 12 0,70 1,23 2,20 13 0,79 5,25 3,99 1 14 0,93 7,00 4,36 15 1,17 4,64 5,27 16 1,14 12,61 5,59 17 1,38 12,11 6,45 1 18 1,68 5,80 12,69 5 19 1,94 14,09 7,86 3 20 2,06 18,74 11,42 5

Kecepatan waktu eksekusi ASP tidak mengalami kenaikan yang drastis ketika ukuran slither link mengalami peningkatan, berbanding terbalik dengan waktu eksekusi pada metode procedural programming dimana waktunya mengalami kenaikan pesat. Jika dibandingkan hasil keduanya maka waktu eksekusi dengan menggunakan metode answer set programming lebih cepat dibandingkan procedural programming. berikut adalah grafik waktu pembangkitan dan waktu eksekusi dari kedua metode.

Gambar

Gambar 13 Arsitektur sistem.
Gambar  16  Representasi  status  garis  di
Gambar 35 Solusi slither link.  Implementasi  dengan  Procedural  Programming
Tabel  1.  Waktu  eksekusi  (detik)  dari  teknik

Referensi

Dokumen terkait

Mengapakah pihak Jepun melayan orang India dengan baik. A Supaya dapat mengusir British

Alur dalam novel Ibuku Tak Menyimpan Surga di Telapak Kakinya adalah alur mundur atau regresif ( flashback ). Penokohan terdiri dari tokoh utama yaitu Amelia,

Ohh, saya hanya pernah mendapatkan email bertuliskan “Around Indonesia” tetapi saya pernah membacanya karena tidak tertarik dan tidak mengerti sebelumnya apa

Dalam pengobatan tradisional Talang Mamak, hubungan sosial antara dukun dan pasien sangat erat, dibandingkan hubungan sosial yang terjalin antara dukun dengan pasien

Berdasarkan hasil analisis data dan pembahasan yang berkaitan dengan pengaruh Return On Asset (ROA),Return On Equity (ROE) dan Earning Per Share (EPS) terhadap return

Pengguna hak pilih dalam Daftar Pemilih Tambahan-2 (DPTb-2)/pengguna KTP atau identitas kependudukan lainnya4. Jumlah seluruh pengguna Hak Pilih

Dari keseluruhan alat tangkap yang digunakan, jaring arad merupakan alat tangkap dengan jumlah nomor dua terbesar setelah jaring dogol dan cantrang yaitu 339 unit pada tahun

Pengaruh Model Pembelajaran Kooperatif Tipe TGT Terhadap Hasil Belajar IPA Pada Siswa Kelas V Gugus XV Kecamatan Buleleng Tahun Ajaran 2013/2014, PGSD, Vo. Hafizah