bab 2 judul - library & knowledge...

25
8 BAB 2 LANDASAN TEORI 2.1 Sudoku Sudoku adalah sebuah permainan teka-teki berdasarkan logika dengan kombinasi penempatan angka. Dalam permainan sudoku, pemain diminta untuk mengisi N x N kotak yang dimana pada tiap kotak dapat diisi dengan angka dari 1 sampai dengan N itu sendiri. Aturan permainan pada tiap baris yang sejajar dan pada tiap kolom yang sejajar tidak boleh memiliki angka yang sama, yang dimana angka- angka tersebut merupakan angka dari 1 sampai dengan N itu sendiri. N memiliki M x M kotak yang dimana nilai dari M adalah akar dari N. Kotak M x M juga memilki aturan yang sama dengan kotak N x N. Contoh pada gambar 1 adalah Sudoku dengan kotak M = 3. N M M N Gambar 2.1 Contoh Sudoku 3x3

Upload: vuongtram

Post on 31-Jan-2018

222 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Bab 2 judul - Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2009-2-00177-IF Bab 2.pdf · Juru masak membuat masakan berdasarkan resep yang diberikan ... Semua

8

BAB 2

LANDASAN TEORI

2.1 Sudoku

Sudoku adalah sebuah permainan teka-teki berdasarkan logika dengan

kombinasi penempatan angka. Dalam permainan sudoku, pemain diminta untuk

mengisi N x N kotak yang dimana pada tiap kotak dapat diisi dengan angka dari 1

sampai dengan N itu sendiri. Aturan permainan pada tiap baris yang sejajar dan pada

tiap kolom yang sejajar tidak boleh memiliki angka yang sama, yang dimana angka-

angka tersebut merupakan angka dari 1 sampai dengan N itu sendiri. N memiliki M x M

kotak yang dimana nilai dari M adalah akar dari N. Kotak M x M juga memilki aturan

yang sama dengan kotak N x N. Contoh pada gambar 1 adalah Sudoku dengan kotak M

= 3.

N

M

M

N

Gambar 2.1 Contoh Sudoku 3x3

Page 2: Bab 2 judul - Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2009-2-00177-IF Bab 2.pdf · Juru masak membuat masakan berdasarkan resep yang diberikan ... Semua

9

Tujuannya adalah untuk mengisi sembilan x sembilan grid sehingga tiap baris dan

kolom mengandung angka satu sampai sembilan masing-masing hanya satu kali, dimana

tiap tiga x tiga grid juga mengandung angka satu sampai sembilan. Hal yang membuat

permainan Sudoku menarik adalah Sudoku memiliki peraturan yang mudah untuk

dimengerti, tetapi untuk mendapatkan jawaban yang benar dan tepat ternyata sangat

kompleks dan tidaklah mudah. Tingkat kesulitan pada permainan Sudoku dapat juga

disesuaikan dengan kemampuan dari pemain.

2.1.1 Sejarah Sudoku

Menurut website http://en.wikipedia.org/wiki/Sudoku (2009) dan

http://www.sudokudaily.net/history.php (2005), Sudoku memiliki sejarah yang menarik.

Teka-teki angka pertama muncul dalam surat kabar pada akhir abad ke-19, ketika surat

kabar harian Perancis, Le Siècle puzzle setters mulai percobaan dengan menghapus

nomor dari sembilan kali sembilan magic square dan tiga kali tiga sub-kotak pada 1892.

Ini bukanlah sudoku karena berisi dua digit angka dan aritmatika diperlukan daripada

logika untuk memecahkan, namun ia bersama karakteristik kunci: setiap baris, kolom

dan sub-persegi ditambah hingga nomor yang sama. Dalam waktu tiga tahun surat kabar

pesaing dari Le Siècle yaitu La France memunculkan tekateki serupa yang

menyederhanakan sembilan kali sembilan magic square sehingga tiap baris dan kolom

hanya berisi angka-angka satu sampai sembilan. Hal ini dianggap sebagai asal-usul

Sudoku. Pada abad ke-18, matematikawan dari Swiss yang bernama Leonhard Euler

menciptakan konsep dari “Latin Square” yang dimana angka pada tiap batasan hanya

muncul sekali secara vertikal dan horizontal. Pada akhir tahun 1970-an, majalah Dell di

Amerika mulai menerbitkan permainan yang dimana sekarang dikenal dengan Sudoku

Page 3: Bab 2 judul - Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2009-2-00177-IF Bab 2.pdf · Juru masak membuat masakan berdasarkan resep yang diberikan ... Semua

10

dengan menggunakan konsep Euler yang menggunakan kotak 9 x 9. Mereka

menyebutnya sebagai penempat angka (Number Place), dan permainan tersebut

diciptakan oleh Howard Garnes.

Pada pertengahan tahun 1980-an, Maki Kaji seorang presiden dari sebuah

perusahaan puzzle di Jepang yang bernama Nikoli, mendesak perusahaannya untuk

menerbitkan versi Jepang dari permainan penempat angka (Number Place) kedalam

majalah Nikolist, permainan teka-teki ini disebut sebagai “Suuji wa dokushin ni

kagiru” yang dapat diterjemahkan sebagai “angka harus tunggal”. Kemudian hari, nama

ini disingkat oleh Maki Kaji dengan mengambil kanji pertama dari tiap kata majemuk,

menjadi kata Sudoku. Pada tahun 1997, sudah banyak Puzzle Sudoku ditemukan pada

toko buku Jepang. Beberapa tahun kemudian, Wayne Gould seorang pensiunan hakim

dari Hong Kong yang aslinya berasal dari Selandia Baru mengembangkan permainan

Sudoku menjadi program komputer. Dan pada tahun 2005, untuk pertama kalinya

permainan Sudoku menjadi bagian dari acara TV berjudul Sudoku Show, Sudoku Live.

Permainan ini sangat popular di Jepang dan meluas hingga ke seluruh dunia. Di

Indonesia pun permainan ini banyak digemari oleh para pecinta permainan teka-teki dan

matematika.

Banyak penelitian yang dilakukan oleh para ahli terkait dengan pengembangan

aplikasi permainan dan pencarian solusi Sudoku. Penelitian dilakukan dengan

memasukan peraturan permainan Sudoku ke dalam komputer untuk kemudian diproses

dengan algoritma tertentu yang ditujukan untuk mencari solusi terbaik dari persoalan

Sudoku tersebut. Banyak penelitian yang dilakukan dengan menerapkan kecerdasan

buatan ( Artificial Inteligence ) pada computer untuk memecahkan masalah ini.

Page 4: Bab 2 judul - Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2009-2-00177-IF Bab 2.pdf · Juru masak membuat masakan berdasarkan resep yang diberikan ... Semua

11

2.1.2 Cara Bermain

Permainan Sudoku pada umumnya terdiri dari tabel dengan jumlah kotak 9 x 9,

yang dibuat dengan wilayah (region) 3 x 3. Untuk memulai bermain pada permainan

Sudoku, ada beberapa kotak yang sebelumnya telah diisi dengan angka-angka yang

dimana angka-angka tersebut digunakan sebagai petunjuk (clue) untuk mencari angka-

angka yang lain pada kotak yang belum terisi. Tujuan dari permainan ini adalah mengisi

semua kotak yang masih kosong di mana setiap kotak hanya dapat diisi oleh 1 angka.

Dalam setiap baris, kolom dan wilayah diisi dengan angka 1 (satu) sampai dengan 9

(sembilan) dengan kemungkinan hanya sekali. Setiap angka dalam solusi ini terjadi

hanya sekali dalam 3 kondisi (baris, kolom dan wilayah).

Gambar 2.2 Sudoku yang sudah diselesaikan

Pada gambar diatas terdapat angka yang berwarna hitam yang merupakan angka

petunjuk (clue) dan angka yang berwarna ungu yang merupakan angka yang berhasil

dicari oleh pemain.

Page 5: Bab 2 judul - Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2009-2-00177-IF Bab 2.pdf · Juru masak membuat masakan berdasarkan resep yang diberikan ... Semua

12

2.1.3 Jenis Sudoku

Dalam perkembangannya, permainan Sudoku tidak hanya dimainkan dengan

menggunakan angka saja tetapi juga menggunakan huruf, gambar dan bentuk yang

dimana tiap simbol tersebut memiliki tingkat kesulitan yang berbeda-beda pada tiap

orang yang memainkannya. Dan untuk alas permainannya dapat dimainkan dengan

beraneka ragam ukuran dan bentuk, sedangkan untuk wilayahnya dapat divariasikan

dengan bentuk yang bermacam-macam. Berikut ini adalah beberapa contoh variasi yang

dapat diciptakan pada permainan sudoku:

• Alas permainan kotak 4 x 4 dengan wilayah 2 x 2.

• Alas permainan kotak 5 x 5 dengan wilayah berupa pentomino.

• Alas permainan kotak 7 x 7 dengan wilayah berupa heptomino.

• Alas permainan kotak 9 x 9 dengan wilayah berupa nonomino. wilayah ini yang

paling sering digunakan dalam permainan Sudoku dan sebagai jenis sudoku yang

akan dibahas pada skripsi ini.

• Alas permainan kotak 16 x 16 dengan wilayah hexudoku.

2.2 Algoritma

Algoritma adalah jantung dari ilmu komputer. Banyak sekali cabang dari ilmu

komputer yang masuk dalam terminologi algoritma. Dalam kehidupan sehari-hari

banyak terdapat proses yang dapat dinyatakan dalam suatu algoritma. Contohnya adalah

langkah-langkah dalam membuat kopi, tahapan-tahapan yang dilakukan bila ingin

bepergian dengan kendaraan tertentu, dapat juga disebut sebagai algoritma. Pada saat

membuat kopi selalu ada urutan langkah-langkah dalam pembuatannya. Secara umum,

Page 6: Bab 2 judul - Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2009-2-00177-IF Bab 2.pdf · Juru masak membuat masakan berdasarkan resep yang diberikan ... Semua

13

pihak (benda) yang mengerjakan proses disebut pemroses (processor). Pemroses

tersebut dapat berupa manusia, computer, robot, alat-alat elektronik, atau benda-benda

lainnya. Pemroses melakukan suatu proses dengan melaksakan atau mengeksekusi

algoritma yang menjabarkan proses tersebut (Alex Budianto, 2003).

Melaksanakan Algoritma berarti mengerjakan langkah-langka di dalam

Algoritma tersebut. Pemroses mengerjakan proses sesuai dengan algoritma yang

diberikan kepadanya. Juru masak membuat masakan berdasarkan resep yang diberikan

kepadanya, pemain musik memainkan lagu berdasarkan papan not balok. Oleh karena

itu, suatu Algoritma harus dinyatakan dalam bentuk yang dapat dimengerti oleh

pemroses. Jadi suatu pemroses harus :

• Mengerti setiap langkah dalam algoritma

• Mengerjakan operasi yang sesuai dengan langkah tersebut.

2.2.1 Sejarah Algoritma

Asal-usul kata Algoritma mempunyai sejarah yang unik. Para ahli sejarah

matematika menemukan bahwa rupanya kata Algoritma berasa dari nama seorang ahli

matematika dari Uzbekistan yang hidup di masa tahun 770-840 masehi yaitu Abu Ja’far

Muhammad Ibnu Musa Al-Khuwarizmi. Kata “Al-Khuwarizmi” dibaca oleh orang

barat menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar

Wal Muwabala yang memiliki arti “Buku Pemugaran dan pengurangan”. Dari judul

buku ini juga diperoleh asal usul kata “Aljabar” (Algebra). Perubahan dari kata

Algorism menjadi Algorithm muncul karena kata Algorism sering dikelirukan dengan

Arithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan dengan

menggunakan angka Arab sudah menjadi hal yang biasa, maka kata Algorithm

Page 7: Bab 2 judul - Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2009-2-00177-IF Bab 2.pdf · Juru masak membuat masakan berdasarkan resep yang diberikan ... Semua

14

berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum,

sehingga kehilangan makna kata aslinya. Dalam Bahasa Indonesia, kata Algorithm

diserap menjadi Algoritma (Alex Budianto, 2003)

2.2.2 Definisi Algoritma

Definisi dari Algoritma adalah “Urutan langkah-langkah logis penyelesaian

masalah dalam bentuk kalimat dengan jumlah kata terbatas, tetapi disusun secara

sistematis dan logis”. (Alex Budianto, 2003)

2.2.3 Ciri Algoritma

Algoritma memiliki beberapa ciri, antara lain :

a. Mempunyai awal dan akhir

Setiap Algoritma memiliki tahap-tahap di mana algoritma akan mulai dan

tahap algoritma akan berakhir.

b. Setiap langkah didefinisikan dengan tepat

Setiap langkah dalam suatu metode algoritma harus didefinisikan dengan

tetap agar tidak terjadi kercanuan dan kesalahan saat algoritma dijalankan.

c. Memiliki masukan (input)

Algoritma dalam menyelesaikan suatu masalah harus memiliki variable-

variabel tertentu yang dijadikan masukan untuk menyelesaikan suatu

masalah. Contoh: dalam algoritma perhitungan luas segitiga biasanya

terdapat dua variable masukan yaitu panjang alas dan tinggi.

Page 8: Bab 2 judul - Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2009-2-00177-IF Bab 2.pdf · Juru masak membuat masakan berdasarkan resep yang diberikan ... Semua

15

d. Memiliki keluaran (output)

Algoritma jika sudah selesai dijalankan harus menghasilkan suatu hasil yang

merupakan solusi dalam permasalah yang diselesaikan dalam algoritma

tersebut. Contoh : dalam algoritma perhitungan luas segitiga, suatu algoritma

akan mengeluarkan output berupa luas segitiga tersebut.

e. Harus efektif (bisa menyelesaikan persoalan)

Suatu algoritma harus dapat menyelesaikan persoalan yang ada, untuk tujuan

tersebutlah suatu algoritma dibangun. Contoh : dalam algoritma perhitungan

luas segitiga, maka suatu algoritma harus dapat menyelesaikan perhitungan

luas segitiga tersebut.

2.2.4 Sifat Algoritma

Sifat-sifat dari algoritma adalah:

a. Input

Sifat ini berarti, suatu algoritma memiliki kondisi awal sebelum

dilaksanakan.

b. Output

Sifat ini berarti, suatu algoritma menghasilkan keluaran setelah dilaksanakan.

c. Definitif

Sifat ini berarti, langkah-langkah dari suatu algoritma terdefinisi dengan jelas

d. Finit

Sifat ini berarti, suatu algoritma melakukan langkah yang terbatas jumlahnya

dalam mengolah input menjadi output.

Page 9: Bab 2 judul - Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2009-2-00177-IF Bab 2.pdf · Juru masak membuat masakan berdasarkan resep yang diberikan ... Semua

16

e. Efektif

Sifat ini berarti, suatu algoritma dapat memberi solusi sesuai harapan.

f. General

Sifat ini berarti, suatu algoritma berlaku untuk setiap himpunan input.

2.2.5 Struktur Algoritma

Setiap Algoritma akan selalu terdiri dari tiga bagian yaitu :

• Judul (Header)

• Kamus

• Algoritma

Pada setiap bagian tersebut apabila akan dituliskan komentar mengenai setiap

bagian tersebut dituliskan di antara kurung kurawal, contoh {Komentar}. Notasi

algoritma yang dituliskan di antara tanda ini tidak akan dieksekusi oleh program

Contoh :

Judul

{ Komentar mengenai algoritma seperti cara kerja program, kondisi

awal dan kondisi akhir dari algoritma }

Kamus

{ Pada bagian ini, didefinisikan nama konstanta, nama variable,

nama prosedur dan nama fungsi }

Algoritma

{ Pada bagian ini algoritma dituliskan. Semua teks yang ditulis tidak

diantara tanda kurung kurawal dianggap sebagai notasi

Page 10: Bab 2 judul - Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2009-2-00177-IF Bab 2.pdf · Juru masak membuat masakan berdasarkan resep yang diberikan ... Semua

17

algorima yang akan berpengaruh terhadap kebenaran

algoritma}

2.2.5.1 Judul (Header)

Judul adalah bagian teks algoritma yang digunakan sebagai tempat

mendefinisikan nama dengan menentukan apakah teks tersebut adalah program,

prosedur, fungsi. Setelah judul disarankan untuk menuliskan spesifikasi singkat dari

teks algoritma tersebut. Nama algoritma sebaiknya singkat namun cukup

menggambarkan apa yang akan dilakukan oleh algoritma tersebut.

Contoh :

Catatan :

Untuk memisahkan antara kata dalam judul algoritma menggunakan tanda “_”

bukanlah suatu keharusan. Anda dapat menuliskan LuasLingkarang atau

Luas_Lingkaran. Tetapi sebaiknya anda tidak menggunakan spasi “ ” untuk

memisahkan antara kata didalam algoritma.

Program Luas_Kubus {Judul Algoritma}

{Menghitung luas kubus untuk ukuran sisi yang dibaca dari piranti masukan

lalu mencetak hasil ke piranti keluaran} {Spesifikasi Algoritma}

Page 11: Bab 2 judul - Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2009-2-00177-IF Bab 2.pdf · Juru masak membuat masakan berdasarkan resep yang diberikan ... Semua

18

2.2.5.2 Kamus (Deklarasi)

Kamus adalah bagian teks algoritma sebagai tempat untuk mendefinisikan :

• Nama Tipe.

• Nama Konstanta.

• Nama Variable.

• Nama Fungsi.

• Nama Prosedur.

Semua nama tersebut baru akan dapat dipakai di dalam algoritma jika telah

didefinisikan terlebih dahulu di dalam kamus. Penulisan sekumpulan nama dalam

kamus sebaikanya dikelompokan menurut jenis nama tersebut.

Nama variabel belum terdefinisi nilainya ketika didefinisikan. Pendefinisian

nama konstanta sekaligus memberi harga konstanta tersebut, pendefinisian nama fungsi

dilakukan sekaligus dengan domain / range serta spesifikasinya. Pendefinisian nama

prosedur sekaligus dengan pendefinisian parameter (jika ada) dan spesifikasi prosedur

(kondisi awal “Initial State” , kondisi akhir “Final State” dan proses yang dilakukan).

Contoh :

Kamus

{Nama type, hanya untuk type yang bukan type dasar}

type jam : <hh,mm,ss : integer> {Type jam terdiri dari 3 masukan yaitu “hh”

sebagai jam . “mm” sebagai menit dan “ss” sebagai detik }

Page 12: Bab 2 judul - Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2009-2-00177-IF Bab 2.pdf · Juru masak membuat masakan berdasarkan resep yang diberikan ... Semua

19

{Nama konstanta harus menyebutkan type dan nilai}

constant phi : real = 3,14159

constant nama : string = ‘Niko’

constant benar : Boolean = true

{Nama Informasi, menyebutkan type}

x,y : integer {suatu nilai yang bertype bilangan bulat}

NMax : real {nilai maksimal yang bertype bilangan real}

Nama : string {nilai yang merupakan kumpulan karakter}

P : point{nilai pada bilangan kartesian}

Cari : Boolean {suatu nilai logika}

{Nama fungsi , menyebutkan domain dan range}

function RealToInt (x : real) integer

{mengubah harga x yang bertype real menjadi harga ekivalen yang

Bertype integer}

{Nama prosedur, menyebutkan “IS” initial state, “FS” final state

dan proses}

procedure tukar (input/output x,y : real)

{IS x dan y terdefinisi, x = a dan y = b

FS x = b dan y = a

Prose : menukar isi informasi bilangan x dan y }

Page 13: Bab 2 judul - Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2009-2-00177-IF Bab 2.pdf · Juru masak membuat masakan berdasarkan resep yang diberikan ... Semua

20

2.2.5.3 Algoritma (Pendeskripsian)

Algoritma adalah bagian inti dari suatu algoritma yang berisi instruksi atau

pemanggilan aksi yang telah didefinisikan. Komponen teks algoritma dalam

pemrograma prosedural dapat berupa:

• Instruksi dasar, seperti input atau output atau assignment.

• Sequence (rangkaian atau urutan).

• Analisa kasus.

• Perulangan.

Setiap langkah algoritma dibaca dari atas ke bawah. Urutan deskripsi penulisan

menentukan urutan langkah pelaksanaan perintah.

2.3 Artificial Intelligence

Dewasa ini Artificial Intelligence (AI) banyak menarik minat dan perhatian dari

masyarakat luas, tetapi apakah sebenarnya AI itu? Menurut Kusumadewi (2003, p1), AI

adalah salah satu bagian ilmu komputer yang membuat agar komputer dapat melakukan

pekerjaan seperti dan sebaik yang dilakukan oleh manusia. Pada awal diciptakannya,

komputer hanya dipakai sebagai alat hitung saja, Namun, seiring dengan perkembangan

zaman maka peran komputer semakin mendominasi kehidupan umat manusia.

Manusia bisa menjadi pandai dalam menyelesaikan suatu persoalan karena

manusia mempunyai pengetahuan dan disertai pengalaman. Pengetahuan diperoleh dari

belajar. Semakin banyak bekal pengetahuan yang dimiliki seseorang, maka orang

tersebut diharapkan dapat lebih mampu dalam menyelesaikan suatu persoalan. Agar

komputer pun dapat bertindak seperti dan sebaik manusia, maka komputer juga harus

Page 14: Bab 2 judul - Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2009-2-00177-IF Bab 2.pdf · Juru masak membuat masakan berdasarkan resep yang diberikan ... Semua

21

diberi bekal pengetahuan dan mempunyai kemampuan untuk berpikir. Pada AI,

komputer dibekali beberapa metode yang diharapkan agar komputer dapat menjadi

benda yang pintar.

2.3.1 Sejarah Artificial Intelligence

Program AI pertama yang bekerja ditulis pada 1951, yang saat itu digunakan

untuk menjalankan mesin Ferranti Mark I di University of Manchester: yaitu sebuah

program permainan yang ditulis oleh Christopher Strachey dan program permainan catur

yang ditulis oleh Dietrich Prinz. John McCarthy membuat istilah “kecerdasan buatan”

pada konferensi pertama yang disediakan untuk pokok persoalan ini pada 1956, John

McCarthy juga menemukan bahasa pemrograman Lisp. Sedangkan Alan Turing

memperkenalkan “Turing Test” sebagai sebuah cara untuk mengoperasionalkan tes

perilaku cerdas. Joseph Weizenbaum membangun ELIZA, sebuah chatterbor yang

menerapkan psikoterapi Rogerian.

Selama tahun 1960-an dan 1970-an, Joel Moses mendemonstrasikan kekuatan

pertimbangan simbolis untuk mengintegrasikan masalah dalam program Macsyma,

program berbasis pengetahuan yang sukses pertama kali dalam bidang matematika.

Marvin Minsky dan Seymour Papert menerbitkan Perceptrons, yang mendemosntrasikan

batas jaringan syaraf sederhana dan Alain Colmerauer mengembangkan bahasa

komputer Prolog. Ted Shortliffe mendemosntrasikan kekuatan sistem berbasis aturan

untuk representasi pengetahuan dan inferensi dalam diagnosa serta terapi medis yang

kadang kala disebut sebagai sistem pakar pertama. Hans Moravec mengembangkan

kendaraan terkendali computer pertama yang dapat mengatasi jalan berlintang secara

mandiri.

Page 15: Bab 2 judul - Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2009-2-00177-IF Bab 2.pdf · Juru masak membuat masakan berdasarkan resep yang diberikan ... Semua

22

Pada tahun 1980-an, jaringan syaraf digunakan secara meluas dengan algoritma

perambatan balik, yang pertama kali diterangkan oleh Paul John Werbos pada 1974. Di

tahun 1990-an sebuah prestasi besar dalam bidang AI ditandai dengan munculnya Deep

Blue, sebuah komputer pemain catur yang mengalahkan Garry Kasparov dalam

pertandingan enam ronde yang terkenal pada tahun 1997. Perkembangan ini terus

berlanjut hingga kini.

2.3.2 Definisi Artificial Intelligence

• Menurut Winston dan Prendergast (1984):

“Kecerdasan buatan (Artificial Intelligence) adalah sebuah mesin yang lebih

pintar, lebih bermamfaat dan dapat memahami apa itu kecerdasan”

• Menurut H. A. Simon (1987):

“Kecerdasan buatan (Artificial Intelligence) merupakan kawasan penelitian,

aplikasi dan istruksi yang terkait dengan pemrograman komputer untuk

melakukan sesuatu hal yang dalam pandangan manusia adalah cerdas.”

• Menurut Rich and Knight (1991):

“Kecerdasan buatan (Artificial Intelligence) merupakan sebuah studi tentang

bagaimana membuat komputer melakukan hal-hal yang pada saat ini dapat

dilakukan lebih baik oleh manusia.”

Page 16: Bab 2 judul - Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2009-2-00177-IF Bab 2.pdf · Juru masak membuat masakan berdasarkan resep yang diberikan ... Semua

23

• Menurut Kusumadewi (2003)

“Kecerdasan buatan (Artificial Intelligence) adalah salah satu bagian ilmu

komputer yang membuat agar komputer dapat melakukan pekerjaan seperti dan

sebaik yang dilakukan oleh manusia.”

2.3.3 Bidang-Bidang Kecerdasan Buatan

a. Sistem Pakar (Expert System)

Sistem pakar adalah program komputer yang didesain untuk berlaku sebagai

seorang ahli dalam suatu bidang khusus. Namun sekarang sistem pakar biasanya

hanya digunakan untuk membantu para ahli dalam memecahkan suatu masalah.

b. Natural Language Processing (NLP)

Natural Language Processing adalah komputer yang dimaksudkan untuk

mengenal makna dari bentuk kalimat berbeda-beda. Selain mampu mengerti

bahasa sehari-hari, NLP juga mencakup kemampuan membentuk kalimat dalam

bahasa sehari-hari.

c. Pengenalan Pola (Recognition)

Recognition adalah program komputer yang ditujukan untuk mengenali suatu

objek. Contohnya dalam Speech Recognation, komputer dapat mengenali suara,

dan sekaligus bias membedakan berbagai macam bentuk sinyal. Contoh lain

dalam Character Recognation, komputer dapat mengenali karakter, sekaligus

dapat membedakan berbagai macam bentuk karakter.

Page 17: Bab 2 judul - Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2009-2-00177-IF Bab 2.pdf · Juru masak membuat masakan berdasarkan resep yang diberikan ... Semua

24

d. Computer Vision

Ilmu pengetahuan dan teknologi komputer yang berkaitan dengan pengolahan

citra komputer seakan dapat melihat benda, terkait dengan teori untuk

membangun suatu sistem yang terdiri dari gambar. Contoh yang sering

digunakan adalah pendeteksian plat nomor kendaraan.

e. Robotic

Mesin yang diprogram untuk melakukan tugas-tugas mekanik, berintelegensi dan

dapat member respon terhadap perubahan lingkungan. Contohnya adalah Asimo

dan Aibo.

f. Automatic Programming

komputer yang dapat membuat program sendiri dan menyesuaikan dengan

spesifikasi yang dinginkan oleh pemrogram.

g. Planning and Decision Support

Komputer yang memiliki kemampuan khusus untuk membantu manajer dalam

membuat perancanaan dan pengambilan keputusan.

h. Soft computing

Soft Computing adalah koleksi dari beberapa metodologi yang bertujuan untuk

mengeksploitasi adanya toleransi terhadap ketidaktepatan, ketidakpastian dan

kebenaran parsial untuk dapat diselesaikan dengan mudah, kuat, dan biaya

penyelesaiannya murah. Definisi ini pertama kali diungkapkan oleh Prof. Lofti

A. Zadeh pada tahun 1992. Soft Computing merupakan inovasi baru dalam

membangun sistem cerdas. Sistem cerdas ini merupakan sistem yang memiliki

Page 18: Bab 2 judul - Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2009-2-00177-IF Bab 2.pdf · Juru masak membuat masakan berdasarkan resep yang diberikan ... Semua

25

keahlian seperti manusia pada domain tertentu, mampu beradaptasi dan belajar

agar dapat bekerja lebih baik jika terjadi perubahan lingkungan.

Unsur-unsur pokok dalam Soft Computing, adalah:

1. Sistem Fuzzy (mengakomodasi ketidaktepatan)

2. Jaringan Syaraf (menggunakan pembelajaran)

3. Probabilistic Reasoning (mengakomodasi ketidakpastian)

4. Evolutionary Computing (optimalisasi)

Keempat unsur tersebut bukan merupakan pesaing antara satu dengan yang

lainya, namun diantaranya bisa saling melengkapi bahkan pada kenyataanya,

biasanya unsur-unsur pokok tersebut akan digunakan secara sinergis daripada

dikerjakan sendiri-sendiri.

Karakteristik soft Computing:

a. Soft Computing memerlukan keahlian manusia, apabila direpresentasikan

dalam bentuk aturan (If-Then).

b. Model komputasinya diilhami oleh proses biologis.

c. Soft Computing merupakan teknik optimasi baru.

d. Soft Computing menggunakan komputasi numeris.

e. Soft Computing memiliki toleransi kegagalan (meskipun kualitasnya

berangsur-angsur memburuk).

Page 19: Bab 2 judul - Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2009-2-00177-IF Bab 2.pdf · Juru masak membuat masakan berdasarkan resep yang diberikan ... Semua

26

2.4 Algoritma Genetika (Genetic Algorithm)

Algoritma Genetika adalah algoritma yang memanfaatkan proses seleksi alamiah

yang dikenal dengan proses evolusi. Keberagaman pada evolusi biologis adalah variasi

dari kromosom antar individu organisme. Dalam proses evolusi, individu secara terus-

menerus mengalami perubahan gen untuk menyesuaikan dengan lingkungan hidupnya.

Pada dasarnya ada 4 kondisi yang sangat mempengaruhi proses evolusi, yaitu:

a. Kemampuan organisme untuk melakukan reproduksi.

b. Keberadaan populasi organisme yang bisa melakukan reproduksi.

c. Keberagaman organisme suatu populasi.

d. Perbedaan kemampuan untuk bertahan.

Proses seleksi alamiah ini melibatkan perubahan gen yang terjadi pada individu

melalui proses perkembang-biakan. Dalam Algoritma Genetika ini, proses perkembang-

biakan ini menjadi proses dasar yang menjadi perhatian utama, dengan dasar berpikir:

“Bagaimana mendapatkan keturunan yang lebih baik”. Algoritma genetika ini

ditemukan oleh John Holland (1975) dari Universitas Michigan dan dikembangkan oleh

muridnya David Goldberg. John Hollan mengatakan bahwa setiap masalah yang

berbentuk adaptasi (alami atau buatan) dapat diformulasikan dalam teminologi genetika.

2.4.1 Definis dalam Algoritma Genetika

Beberapa Definisi Penting Dalam Algoritma Genetika

• Genotype (Gen), sebuah nilai yang menyatakan satuan dasar yang membentuk

suatu arti tertentu dalam satu kesatuan gen yang dinamakan kromosom. Dalam

algoritma genetika, gen ini bisa berupa nilai biner, float, integer maupun

karakter.

Page 20: Bab 2 judul - Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2009-2-00177-IF Bab 2.pdf · Juru masak membuat masakan berdasarkan resep yang diberikan ... Semua

27

• Allele, nilai dari gen.

• Kromosom, gabungan gen-gen yang membentuk nilai tertentu.

• Individu, menyatakan satu nilai atau keadaan yang menyatakan salah satu solusi

yang mungkin dari permasalahan yang diangkat

• Populasi, merupakan sekumpulan individu yang akan diproses bersama dalam

satu siklus proses evolusi.

• Generasi, menyatakan satu-satuan siklus proses evolusi.

• Nilai Fitness, menyatakan seberapa baik nilai dari suatu individu atau solusi

yang didapatkan.

2.4.2 Tahapan dalam menggunakan Algoritma Genetika

Hal-Hal Yang Harus Dilakukan Untuk Menggunakan Algoritma Genetika:

• Mendefinisikan individu, dimana individu menyatakan salah satu solusi

(penyelesaian) yang mungkin dari permasalahan yang diangkat.

• Mendefinisikan nilai fitness, yang merupakan ukuran baik-tidaknya sebuah

individu atau baik-tidaknya solusi yang didapatkan.

• Menentukan proses pembangkitan populasi awal. Hal ini biasanya dilakukan

dengan menggunakan pembangkitan acak seperti random-walk.

• Menentukan proses seleksi yang akan digunakan.

• Menentukan proses perkawinan silang (cross-over) dan mutasi gen yang akan

digunakan

Algoritma Genetika pada dasarnya adalah program komputer yang

mensimulasikan proses evolusi. Dalam hal ini populasi dari kromosom dihasilkan secara

Page 21: Bab 2 judul - Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2009-2-00177-IF Bab 2.pdf · Juru masak membuat masakan berdasarkan resep yang diberikan ... Semua

28

random dan memungkinkan untuk berkembangbiak sesuai dengan hukum-hukum

evolusi dengan harapan akan menghasilkan individu kromosom yang prima. Kromosom

ini pada kenyataannya adalah kandidat penyelesaian dari masalah, sehingga bila

kromosom yang baik berkembang, solusi yang baik terhadap masalah diharapkan akan

dihasilkan.

Algoritma Genetika ini banyak dipakai pada aplikasi bisnis, teknik maupun pada

bidang keilmuan. Algoritma ini dapat dipakai untuk mendapatkan solusi yang tepat

untuk masalah optimal dari satu variabel atau multi variabel. Sebelum algoritma ini

dijalankan, masalah apa yang ingin dioptimalkan itu harus dinyatakan dalam fungsi

tujuan, yang dikenal dengan fungsi fitness. Jika nilai fitness semakin kecil, maka solusi

yang dihasilkan semakin baik. Walaupun pada awalnya semua nilai fitness kemungkinan

sangat besar (karena algoritma ini menghasilkannya secara random), sebagian akan lebih

baik dari yang lain. Kromosom dengan nilai fitness yang baik ini akan memberikan

probabilitas yang tinggi untuk bereproduksi pada generasi selanjutnya. Sehingga untuk

setiap generasi pada proses evolusi, fungsi fitness yang mensimulasikan seleksi alam,

akan menekan populasi kearah fitness yang semakin kecil.

2.4.3 Struktur Algoritma Genetika

Algoritma genetika sangat tepat digunakan untuk penyelesaian masalah optimasi

yang kompleks dan sukar diselesaikan dengan menggunakan metode yang konvensional.

Sebagaimana halnya proses evolusi di alam, suatu algoritma genetika yang sederhana

umumnya terdiri dari tiga operator yaitu: operator reproduksi, operator crossover

Page 22: Bab 2 judul - Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2009-2-00177-IF Bab 2.pdf · Juru masak membuat masakan berdasarkan resep yang diberikan ... Semua

29

(persilangan) dan operator mutasi. Struktur umum dari suatu algoritma genetika dapat

didefinisikan dengan langkah-langkah sebagai berikut:

1. Membangkitkan populasi awal, Populasi awal ini dibangkitkan secara random

sehingga didapatkan solusi awal. Populasi itu sendiri terdiri dari sejumlah

kromosom yang merepresentasikan solusi yang diinginkan.

2. Membentuk generasi baru, Dalam membentuk digunakan tiga operator yang

telah disebut di atas yaitu operator reproduksi/ seleksi, crossover dan mutasi.

Proses ini dilakukan berulang-ulang sehingga didapatkan jumlah kromosom yang

cukup untuk membentuk generasi baru dimana generasi baru ini merupakan

representasi dari solusi baru.

3. Evaluasi solusi, Proses ini akan mengevaluasi setiap populasi dengan

menghitung nilai fitness setiap kromosom dan mengevaluasinya sampai

terpenuhi kriteria untuk berhenti. Bila kriteria berhenti belum terpenuhi maka

akan dibentuk lagi generasi baru dengan mengulangi langkah 2. Beberapa

kriteria berhenti yang sering digunakan antara lain:

• Berhenti pada generasi tertentu.

• Berhenti setelah dalam beberapa generasi berturut-turut didapatkan nilai

fitness tertinggi tidak berubah.

• Berhenti bila dalam n generasi berikut tidak didapatkan nilai fitness yang

lebih tinggi.

Page 23: Bab 2 judul - Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2009-2-00177-IF Bab 2.pdf · Juru masak membuat masakan berdasarkan resep yang diberikan ... Semua

30

2.5 Pemenuhan Konstrain (Constraint Satisfaction)

Constraint Satisfaction adalah suatu prosedur pencarian yang dioperasikan pada

sekumpulan set-set pembatasan (Constraint) tertentu.

Pertama-tama constraint ditemukan dan disebarkan sejauh mungkin kedalam

sistem. Jika masih belum ditemukan solusi,maka akan dilakukan pencarian.

Prosedur Pemenuhan Konstrain (Constraint Satisfaction) adalah sebagai berikut:

• Pilihlah sebuah simpul yang belum dikembangkan dalam graph pencarian.

• Terapkan aturan-aturan inferensi pembatas (constraint) untuk simpul yang

dipilih untuk menghasilkan semua pembatas baru yang dimungkinkan.

• Jika sebuah pembatas berisi sebuah kontradiksi (pertentangan), maka

laporkanlah bahwa lintasan ini terhenti.

• Jika himpunan pembatas menggambarkan sebuah solusi yang lengkap, maka

laporkanlah adanya kesuksesan.

• Jika tidak ditemukan adanya kontradiksi atau solusi lengkap , maka solusi-

solusi parsial baru yang konsisten dengan himpunan pembatas saat ini.

Sisipkan solusi-solusi parsial kedalam graph pencarian (search)

Contoh: initial state (pernyataan awal)

S E N D M O R E

--------------- + M O N E Y

Page 24: Bab 2 judul - Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2009-2-00177-IF Bab 2.pdf · Juru masak membuat masakan berdasarkan resep yang diberikan ... Semua

31

Maka dapat diselesaikan dengan:

Gambar 2.3 Penjelesan Pemenuhan Konstrain

Page 25: Bab 2 judul - Library & Knowledge Centerlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2009-2-00177-IF Bab 2.pdf · Juru masak membuat masakan berdasarkan resep yang diberikan ... Semua

32

Keterangan:

1) Pada tahap ini terdapat 2 constraint yaitu 1 karakter mewakili 1 digit angka dan

range angka dari 1 sampai dengan 9.

2) Setelah dilakukan perhitungan maka ditemukan bahwa nilai M = 1, sehingga

konstrain bertambah menjadi 3.

3) Dapat diketahui bahwa nilai S bisa 8 atau 9 dan nilai O bisa 0 atau 1.

4) Didapat bahwa nilai S = 9 dan nilai O = 0, sehingga nilai konstrain bertambah

menjadi 5.

5) Diketahui bahwa E = N - 1.

6) Nilai R = 8 atau 9

7) Didapat nilai R adalah 8, sehingga konstrain bertambah menjadi 6.

8) Diketahui bahwa nilai E = 5 atau 6.

9) Didapat bahwa nilai E = 5 sehingga konstrain bertambah menjadi 7.

10) Dari semua itu dapat diketahui bahwa nilai dari N = 6, D = 7 dan Y = 2.

Sehingga didapat jawaban yang benar adalah:

S = 9; E = 5; N = 6; D = 7 ; M =1; O = 0; R = 8; Y = 2