• Tidak ada hasil yang ditemukan

BAB 2 LANDASAN TEORI

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 2 LANDASAN TEORI"

Copied!
21
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

2.1. Algoritma dan Pemrograman

Terhadap berbagai masalah yang timbul perlu dicarikan pemecahannya sehingga dapat memberikan solusi yang benar atau yang paling benar. Berbicara mengenai pemecahan masalah dengan menggunakan komputer maka kita memerlukan algoritma seperti pada gambar:

Gambar 2.1.1. Algoritma dalam kerangka Pemecahan M asalah

Secara umum, algoritma adalah sejumlah langkah komputasi yang mengubah masukan (input) menjadi keluaran (output). Algoritma yang masih berupa logika

pemecahan masalah selanjutnya diubah menjadi program komputer (disebut source code) menurut pemrograman tertentu misalnya bahasa C. Selanjutnya source code ini

perlu dikompilasi oleh penerjemah (compiler, interpreter) menjadi kode-kode yang

dimengerti dan dijalankan oleh mesin komputer. (Executable code)

(2)

2.1.1. Algoritma

Pada Meriam-Webster’s Collegiate Dictionary istilah algorithm diartikan

sebagaiprosedur langkah demi langkah untuk memecahkan masalah atau menyelesaikan suatu tugas khususnya menggunakan bantuan komputer.

2.1.1.1. S yarat - S yarat Algoritma

Berikut adalah syarat-syarat algoritma menurut Donald E.Knuth:

a. Finiteness: Algoritma harus berakhir (Terminate) setelah melakukan sejumlah

langkah proses.

b. Definiteness: Setiap langkah algoritma harus didefinisikan dengan tepat dan

tidak menimbulkan makna ganda (ambigu). Karena itu maka sebetulnya cara paling tepat untuk menuliskan algoritma adalah dengan menggunakan formal language (bahasa pemrograman komputer)

c. Input: setiap data memerlukan data sebagai masukan untuk diolah. Algoritma

yang tidak memerlukan masukkan apaapa sebetulnya tidak begitu bermanfaat karena jumlah kasus yang dapat diselesaikan juga terbatas.

d. Output:Setiap algoritma memberikan satu atau beberapa hasil keluaran.

e. Effectiveness: Langkah-langkah algoritma dikerjakan dalam waktu yang wajar.

2.1.1.2. Tahapan Algoritma dan Penulisan Program

Proses Pemecahan M asalah dengan algoritma tertentu hingga menjadi program dapat dibagi dalam sembilan tahap.

(3)

b. M embuat model: M odel yang dimaksud adalah bentuk matematis yang digunakan untuk memecahkan masalah.

c. M erancang algoritma: M encari masukkan, proses dan keluaran yang diinginkan. d. M enulis program: mengubah algoritma menjadi program sesuai dengan bahasa

pemrograman tertentu.

e. M engubah source code menjadi executable code melalui proses kompilasi.

f. M emeriksa hasil kompilasi, jika salah maka kembali ke tahap sebelumnya. g. M enjalankan program untuk diuji kebenarannya menggunakan berbagai data. h. M emperbaiki kesalahan: bila hasil yang keluar salah, maka kesalahan mungkin

terjadi saat konversi rancangan algoritma menjadi program, salah rancang algoritma ataupun mungkin dalam tahap pendefinisian masalah.

i. M endokumentasikan program bila sudah benar.

2.1.1.3. Jenis Proses Algoritma

Langkah-langkah yang membentuk suatu algoritma dapat dibagi menjadi 3 kelompok proses.

a. Sequence Process: Instruksi kedua dikerjakan setelah instruksi pertama

dikerjakan. Kemudian baru instruksi ketiga. Instruksi dijalankan dari instruksi pertama satu-persatu sampai instruksi terakhir secara berurutan.

Proses 1 Proses 2 Proses 3

(4)

b. Selection Process: Instruksi adakalanya baru boleh dikerjakan apabila memenuhi syarat tertentu. Expression Process 1 P roc ess 2 True False

Gambar 2.1.1.3.2. Diagram Alur Selection Process.

c. Iteration Process: Suatu instruksi adakalanya perlu dikerjakan berulang-ulang

selama sekian kali atau selama suatu kondisi belum terpenuhi.

True

False Expression

Proses

(5)

2.2. S truktur Data

Struktur data adalah sejumlah data yang berhubungan yang disusun dalam satu struktur. Bentuk-bentuk struktur data yang ada dalam bahasa pemrograman C yaitu:

array(larik), string dan struct.

2.2.1. Array(larik)

Larik adalah penampung data sejenis (homogen) yang menggunakan satu

identifier. M asing-masing elemen array diakses menggunakan indeks dari nol sampai

jumlah elemen array-1. Pengolahan data array harus perelemen. Elemen array dapat

diakses secara langsung sehingga untuk mencapai elemen ke empat tidak harus melalui elemen pertama lebih dahulu. Berdasarkan banyaknya indeks, array dibagi menjadi satu

dimensi dan multi-dimensi

2.2.2. String

String adalah sekumpulan karakter ASCII.

2.2.3. Struct

Struct adalah struktur data yang menggabungkan beberapa data yang berbeda

tipe tetapi berkaitan. M isalnya data mengenai NIM , nama, dan IPK seorang mahasiswa. Ketiganya masih memiliki hubungan meskipun memiliki tipe data yang berbeda.

2.2.3.1. Linked List

Lingked list merupakan sebuah struktur data yang sangat berguna. Linked list digunakan sebagai dasar dari banyak struktur data bersambung yang lebih rumit. Sebuah

(6)

linked list pada dasarnya adalah kumpulan data yang menunjuk ke data berikutnya. Data terakhir biasanya disebut data sentinel dimana pointer NEXT-nya menunjuk ke NULL.

Namun dalam circular linked list, data sentinel ini pointer NEXT-nya akan menunjuk

data paling awal.

2.2.3.2. Tree

Tree merupakan struktur data hierarkis yang menghubungkan satu elemen data

dengan elemen data lainnya. M asing-masing elemen data tree disebut node. Tree

digambarkan seperti pohon terbalik dan tingginya diistilahkan dengan height. M

asing-masing tingkat disebut level dihitung dari posisi paling atas.

Gambar 2.2.3.2.1. Struktur Tree

2.3. Kecerdasan Buatan

Kecerdasan Buatan termasuk bidang ilmu yang relatif muda. Pada tahun 1950-an para ilmuwan dan peneliti mulai memikirkan bagaimana caranya agar mesin dapat melakukan pekerjaannya seperti yang bisa dikerjakan oleh manusia.

Alan Turing, seorang matematikawan dari Inggris pertama kali mengusulkan adanya tes untuk melihat bisa tidaknya sebuah mesin dikatakan cerdas. Hasil tes tersebut

(7)

kemudian dikenal dengan Turing Test, dimana si mesin tersebut menyamar seolah-olah sebagai seseorang di dalam suatu permainan yang mampu memberikan respon terhadap serangkaian pertanyaan yang diajukan. Turing beranggapan bahwa, jika mesin dapat membuat seseorang percaya bahwa dirinya mampu berkomunikasi dengan orang lain, maka dapat dikatakan bahwa mesin itu cerdas (layaknya manusia).

Kecerdasan buatan atau “Artificial Inteligence” itu sendiri dimunculkan oleh

seorang professor dari M assachusetts Institute of Technology yang bernama John M cCarthy pada tahun 1956 pada Dartmouth Conference yang dihadiri oleh para peneliti

A.I.1

Apa Kecerdasan Buatan itu? Kecerdasan buatan atau Artificial Inteligence

merupakan salah satu bagian ilmu komputer yang membuat agar mesin dapat melakukan pekerjaan seperti dan sebaik yang dilakukan oleh manusia.

Pengertian kecerdasan buatan dapat dipandang dari berbagai sudut pandang, antara lain: a. Sudut pandang kecerdasan

Kecerdasan buatan akan membuat mesin menjadi cerdas dalam arti mampu berbuat seperti apa yang dilakukan manusia.

b. Sudut pandang penelitian

Kecerdasan buatan adalah suatu studi bagaimana membuat agar komputer dapat melakukan sesuatu sebaik yang dikerjakan oleh manusia. Domainnya meliputi: Mundane Task (persepsi, bahasa alami, pemikiran yang bersifat common-sense dan kontrol robot), formal task (permainan dan matematis), dan expert task

(analisis finansial, medikal, ilmu pengetahuan dan rekayasa)

1 Buku Sri Kusumadewi hal 5-6

(8)

c. Sudut pandang bisnis

Kecerdasan buatan adalah suatu kumpulan peralatan yang sangat kuat dan metodologis dalam menyelesaikan masalah-masalah bisnis.

d. Sudut pandang pemrograman

Kecerdasan buatan meliputi studi tentang pemrograman simbolik, penyelesaian masalah dan pencarian.

Untuk menerapkan konsep kecerdasan buatan dibutuhkan dua bagian utama yang sangat dibutuhkan yaitu:

a. Basis Pengetahuan (Knowledge Base): berisi fakta-fakta, teori, pemikiran dan

hubungan antara satu dengan yang lainnya.

b. M otor Inferensi (Inference Engine): kemampuan menarik kesimpulan

berdasarkan pengalaman dan fakta.

Basis Pengetahuan Motor Inferensi Input, Masalah, Pertanyaan, dll. Output, Jawaban, Solusi, keputusan.

(9)

2.3.1. Masalah, Ruang Keadaan dan Pencarian

Secara umum, untuk membangun suatu sistem yang mampu menyelesaikan masalah, perlu dipertimbangkan empat hal:

a. M endefinisikan masalah dengan tepat. Pendefinisian ini mencakup spesifikasi yang tepat mengenai keadaan awal dan solusi yang diharapkan.

b. M enganalisis masalah tersebut serta mencari beberapa teknik penyelesaian yang sesuai.

c. M erepresentasikan pengetahuan yang perlu untuk menyelesaikan masalah tersebut.

d. M emilih teknik penyelesaian masalah yang terbaik.

2.3.1.1. Mendefinisikan Masalah Sebagai Suatu Ruang Keadaan

Untuk mendefinisikan masalah dan ruang keadaan pada permainan Othello (Reversi), kita harus menentukan:

a. Posisi awal permainan; Posisi awal permainan Othello selalu sama yaitu area 2x2 yang berada di bagian tengah papan permainan berisi dua buah keping putih dan 2 buah keping hitam yang bersilangan.

(10)

b. Aturan-aturan untuk melakukan gerakan secara legal; aturan sangat penting untuk menentukan arah permainan. Aturan peletakan keping Othello akan menunjukkan perubahan dari keadaan yang satu ke keadaan yang lain. Dengan posisi awal seperti di atas, maka peletakan keping othello hitam yang legal adalah sebagai berikut:

Gambar 2.3.1.1.2 Peletakan yang mungkin #1.

(11)

Gambar 2.3.1.1.4. Peletakan yang mungkin #3.

Gambar 2.3.1.1.5. Peletakan yang mungkin #4.

c. Tujuan (Goal); Tujuan yang ingin dicapai adalah keadaan dimana keping

permainan yang kita gunakan mendominasi papan permainan dengan cara memenuhi papan permainan secara dominan (Kondisi pertama) atau menghilangkan semua keping othello yang digunakan oleh lawan sehingga tidak ada lagi pemain yang bisa melakukan gerakan legal (Kondisi kedua).

(12)

Gambar 2.3.1.1.6. contoh Goal State Dengan Hitam Sebagai Pemenang (Kiri kondisi pertama dan kanan kondisi kedua)

Secara umum, pendeskripsian masalah yang baik adalah yang: a. M endefinisikan ruang keadaan;

b. M enetapkan satu atau lebih keadaan awal; c. M enetapkan satu atau lebih tujuan;

d. M enetapkan kumpulan aturan;

2.3.1.2.Pelacakan

Hal terpenting dalam menentukan keberhasilan sistem berdasar kecerdasan adalah kesuksesan dalam pencarian dan pencocokan. Ada dua teknik pencarian yang digunakan yaitu pencarian buta dan pencarian terbimbing.

2.3.1.2.1. Pencarian Buta

Pelacakan buta yang terkait dengan skripsi ini adalah Pencarian M endalam Pertama (Depth-First Search). Pencarian ini akan mengunjungi semua anak dari node yang paling tinggi ke paling rendah setelah itu baru mengunjungi anak node sebelahnya.

(13)

Gambar 2.3.1.3.1.1. Arah Pencarian Depth-First Search

2.3.1.2.1. Pencarian Heuristik

Pencarian buta tidak selalu dapat diterapkan dengan baik, hal ini disebabkan waktu akses yang cukup lama serta besarnya memori yang diperlukan namun masih bisa diatasi jika ada informasi tambahan dari domain yang bersangkutan. M isal saja dalam permainan Othello dengan memberikan nilai tertentu untuk posisi sel tertentu atau perbedaan jumlah keping putih dan hitam sebagai poin heuristik. M etode pencarian heuristik yang akan digunakan di sini adalah metode Pembangkitan dan Pengujian (Generate and Test) yaitu membangkitkan kemungkinan solusi dan menguji untuk

mencari hasil terbaik. Jika solusi belum ditemukan maka proses akan terus diulang.

2.3.2. Minimax

Salah satu teknik permainan yang terkenal adalah M inimax. M inimax menggunakan depth-first search dengan kedalaman terbatas. Fungsi evaluasi yang

digunakan adalah fungsi evaluasi statis, dengan mengasumsikan bahwa lawan akan membuat langkah terbaik yang mungkin.

(14)

Penerapan M inimax memerlukan struktur data tree yang tiap tingkatan dikelompokkan sebagai gerakkan M in dan M ax. Untuk tingkat M in, dipilih node dengan nilai terkecil sementara untuk tingkat max dipilih node dengan nilai terbesar dari node-node di bawahnya. Biasanya M in digunakan untuk representasi giliran lawan dan max digunakan untuk representasi giliran pemain.

Gambar.2.3.2.1. Representasi algoritma M inimax

2.3.3. Game Playing

Game Playing merupakan sebuah fasilitas yang menarik dalam komputer. Ide ini

dikemukakan oleh Claude Shanon (1950) yang menulis tulisan tentang mekanisme pembuatan program permainan catur. Beberapa tahun kemudian Alan Turing mendeskripsikan program permainan catur namun ia sendiri belum membuat rancangan program. Baru awal tahun 1960-an Arthur Samuel mencoba untuk membuat program catur tersebut.

Ada beberapa alasan mengapa games merupakan domain yang baik untuk di ekplor, yaitu:

(15)

a. Sangat mudah untuk menentukan ukuran kesuksesan dan kegagalan (menang atau kalah)

b. Ruang keadaan mudah direpresentasikan.

c. Operator-operator yang digunakan tidak terlalu banyak. d. Sebagian model dapat dimodelkan dengan mudah.

e. Sangat mungkin untuk dibandingkan dengan kemampuan manusia.

2.3.4. Logika Fuzzy

Logika Fuzzy adalah penalaran banyak-nilai yang berasal dari teori Fuzzy set untuk menjelaskan penalaran yang tidak tepat nilai berbeda dengan crisp yang nilainya tepat yaitu 0 dan 1. Logika Fuzzy dikatakan sebagai logika baru yang lama, sebab ilmu fuzzy modern dan metodis baru ditemukan beberapa tahun yang lalu padahal sebenarnya konsep tentang logika fuzzy itu sendiri sudah ada pada diri kita sejak lama.

2.3.4.1. Alasan Penggunaan Logika Fuzzy

Ada beberapa alasan mengapa orang menggunakan logika samar antara lain: a. Konsep logika samar mudah dimengerti. Konsep matematis yang mendasari

penalaran fuzzy sangat sederhana dan mudah dimengerti. b. Logika samar sangat fleksibel.

c. Logika samar memiliki toleransi terhadap data-data yang tidak tepat.

d. Logika samar mampu memodelkan fungsi-fungsi nonlinear yang sangat kompleks.

e. Logika samar dapat membangun dan mengaplikasikan pengalaman-pengalaman para pakar secara langsung tanpa harus melalui proses pelatihan.

(16)

f. Logika samar dapat bekerjasama dengan teknik-teknik kendali secara konvensional.

g. Logika samar dapat didasarkan pada bahasa alami.

2.3.4.2. Himpunan Fuzzy

Himpunan tegas (crisp) memiliki kekurangan dalam pengelompokkan karena

hanya mengenal anggota (1) dan bukan anggota (0) sehingga dalam kasus tertentu (misalkan: umur dan tinggi) dengan tidak adil. Himpunan Fuzzy digunakan untuk mengantisipasi hal tersebut. Karena dengan menggunakan himpunan Fuzzy kita dapat melihat nilai keanggotaan dari nilai-nilai yang tidak cocok dimasukkan ke dalam himpunan tegas.

Himpunan samar memiliki dua atribut yaitu:

a. linguistik: yaitu penamaan suatu grup yang memiliki keadaan atau kondisi tertentu dengan menggunakan bahasa alami seperti ‘muda’, ‘tua’ dan ‘parobaya’ b. numeris: yaitu suatu nilai(angka) yang menunjukkan ukuran dari suatu variabel. Ada hal-hal yang perlu diketahui dalam memahami sistem samar yaitu:

a. Variabel fuzzy: M erupakan variable yang hendak dibahas dalam suatu sistem fuzzy. Contoh: umut, tempratur, permintaan,dsb.

b. Himpunan fuzzy: M erupakan suatu grup yang mewakili suatu kondisi atau keadaan tertentu dalam suatu variabel fuzzy.

c. Semesta Pembicaraan: M erupakan keseluruhan nilai yang diperbolehkan untuk dioperasikan dalam suatu variabel fuzzy. Semesta pembicaraan merupakan himpunan bilangan real yang bertambah secara monoton dari kiri ke kanan.

(17)

Nilainya dapat berupa bilangan positif maupun negatif. Adakalanya nilai semesta pembicaraan ini tidak dibatasi batas atasnya.

d. Domain: Domain himpunan fuzzy adalah keseluruhan nilai yang diijinkan dalam semesta pembicaraan dan boleh dioperasikan dalam suatu himpunan fuzzy.

2.3.4.3. Fungsi Keanggotaan

Fungsi keanggotaan adalah sebuah kurva yang menunjukkan pemetaan titik-titik input data ke dalam nilai keanggotaannya (sering juga disebut derajat keanggotaan) yang memiliki interval antara 0 sampai 1.Salah satu cara yang dapat digunakan untuk mendapatkan nilai keanggotaan adalah dengan melalui pendekatan fungsi. Ada beberapa yang bisa digunakan.

a. Representasi linear: digambarkan dengan suatu garis lurus.

Gambar 2.3.4.3.1. Representasi linear naik

b. Representasi kurva segitiga: pada dasarnya merupakan gabungan antara 2 garis linear.

(18)

Gambar 2.3.4.3.2. Representasi kurva segitiga

c. Representasi kurva trapesium: Kurva trapesium pada dasarnya berupa kurva segitiga yang beberapa elemennya memiliki derajat keanggotaan 1.

Gambar 2.3.4.3.3. Representasi kurva trapesium

d. Representasi kurva berbentuk bahu: Kurva pada pertengahan variabel yang direpresentasikan dalam bentuk segitiga, pada sisi kiri dan kanannya pasti akan naik dan turun. Tapi ada salah satu sisi dari variabel tersebut yang tidak mengalami perubahan.

(19)

Gambar 2.3.4.3.4. Representasi kurva berbentuk bahu

e. Representasi kurva S: disebut juga kurva sigmoid yang berhubungan dengan kenaikan dan penurunan permukaan secara tidak linear.

Gambar 2.3.4.3.5. Representasi kurva S

f. Representasi kurva berbentuk lonceng: Untuk representasi bilangan fuzzy, biasanya digunakan kurva berbentuk lonceng. Kurva berbentuk lonceng ini terbagi tiga kelas yaitu himpunan fuzzy PI, beta, dan Gauss.

(20)

Gambar 2.3.4.3.2. Representasi kurva berbentuk lonceng

2.3.5. Operator Dasar Zadeh Untuk Operasi Himpunan Fuzzy

Seperti halnya himpunan konvensional, ada beberapa operasi yang didefinisikan secara khusus untuk mengkombinasi dan memodifikasi himpunan fuzzy. Nilai Keanggotaan sebagai hasil dari operasi 2 himpunan sering disebut fire strength atau

α-predikat. Ada 3 operator yang dicipttakan oleh Zadeh, yaitu:

a. operator AND: M engambil interseksi pada himpunan dengan mengambil nilai keanggotaan terkecil.

b. operator OR: α-predikat diambil dari keanggotaan antar elemen terbesar himpunan yang bersangkutan.

c. operator NOT: Operator ini berhubungan dengan operasi komplemen dari himpunan.

(21)

2.3.6. Sistem Inferensi Fuzzy

Sistem inferensi fuzzy berisi metode-metode yang bisa digunakan untuk menentukan hasil output dari input yang dimasukkan. Ada 3 sistem inferensi fuzzy, yaitu:

a. M etode Tsukamoto: aturan yang berbentuk IF-THEN direpresentasikan dengan suatu himpunan fuzzy dengan keanggotaan yang monoton dan hasilnya diberikan secara tegas (crisp)

b. M etode M amdani: dilakukan dalam 4 tahap yaitu: M embentuk himpunan fuzzy, aplikasi fungsi implikasi, komposisi aturan dan penegasan.

c. M etode Sugeno: Hampir sama dengan metode M amdani hanya saja output sistem tidak berupa himpunan fuzzy tapi berupa konstanta atau persamaan linear.

Gambar

Gambar 2.1.1. Algoritma dalam kerangka Pemecahan M asalah
Gambar 2.1.1.3.1. Diagram alur sequence process
Gambar 2.1.1.3.3. Diagram alur salah satu iteration process
Gambar 2.2.3.2.1. Struktur Tree
+7

Referensi

Dokumen terkait

Puji syukur penulis panjatkan atas kehadirat Allah SWT yang telah melimpahkan rahmat, berkah serta hidayahNya sehingga penulis dapat menyelesaikan tesis dengan

Nurul Islam dalam waktu yang cukup panjang dari tahun 1932 hingga 1980 ini tentu mempunyai dampak terhadap masyarakat sekitar Kabupaten Ogan Ilir baik dari bidang

(14) JENIS-JENIS PENERIMAAN NEGARA BUKAN PAJAK YANG BERLAKU PADA DEPARTEMEN PENDIDIKAN DAN KEBUDAYAAN.. JENIS PENERIMAAN NEGARA

Dalam hal ini, anggaran yang dialokasikan negara untuk ACA dapat dijadikan indikator penting dalam mengukur dukungan politik pemerintah dalam memberantas

Dalam hal ini perlakuan III A rasio C : N-nya paling cocok untuk pertumbuhan konsorsium meskipun substrat atau sludge minyak bumi yang ditambahkan lebih sedikit Laju maksimum

Sel limfosit B akan melakukan proses pengidentifikasian terlebih dahulu terhadap antigen merupakan fungsi dari antibodi. Sel limfosit B juga mengalami proses

Sedangkan tujuan khususnya adalah mengidentifikasi hambatan dan masalah sistem informasi dalam surveilans kesehatan ibu dan anak melalui SIP pada Desa Siaga,

Tiga kelompok pengeluaran mengalami penurunan indeks/deflasi yaitu kelompok transpor, komunikasi dan jasa keuangan 1,44 persen; kelompok bahan makanan 0,21 persen; dan