• Tidak ada hasil yang ditemukan

Pembangunan Aplikasi Bantu Kecerdasan Buatan Pembelajaran Dan Penyelesaian Pada Permasalahan Ruang Keadaan (State And Space)

N/A
N/A
Protected

Academic year: 2017

Membagikan "Pembangunan Aplikasi Bantu Kecerdasan Buatan Pembelajaran Dan Penyelesaian Pada Permasalahan Ruang Keadaan (State And Space)"

Copied!
159
0
0

Teks penuh

(1)
(2)

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana Program Strata Satu Jurusan Teknik Informatika

Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia

ARI WIBOWO

10107371

PROGRAM STUDI S1

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA

(3)
(4)
(5)

i

ABSTRAK

PEMBANGUNAN APLIKASI BANTU KECERDASAN BUATAN PEMBELAJARAN DAN PENYELESAIAN

PADA PERMASALAHAN RUANG KEADAAN

(STATE AND SPACE)

Oleh

ARI WIBOWO 10107371

Permasalahan ruang keadaan merupakan salah satu permasalahan yang dipelajari dalam bidang ilmu kecerdasan buatan. Permasalahn ruang keadaan membahas tentang suatu ruang yang berisi semua keadaan yang mungkin. Kriteria permasalahan ini identik dengan permasalahan tempat, kondisi dan waktu. Salah satu permasalahan umum yang terdapat dalam ruang keadaan ini adalah Farmer’s problem (permasalahan petani) yang dapat dideskripsikan sebagai berikut, seorang petani akan menyeberangkan seekor kambing, seekor serigala dan sayur-sayuran dengan sebuah rakit yang melalui sungai.

Penyelesaian permasalahan ini menggunakan metode Searching yaitu pencarian melebar pertama (Breadth-First Search), dimana dalam langkah penyelesaiannya menggunakan pohon pelacakan terpendek. Pada metode ini dapat diterapkan dalam sebuah algoritma pemrograman komputer, sehingga dapat dibuatkan perangkat lunak komputer atau aplikasi yang dapat membantu pembelajaran dan penyelesaian permasalahan ruang keadaan.

Pada tugas akhir ini, perangkat lunak atau aplikasi yang dirancang adalah aplikasi yang dibangun untuk membantu akademisi dalam mempelajari dan menyelesaikan contoh kasus permasalahan ruang keadaan. Representasi pengetahuan yang digunakanadalah tabel keputusan, pohon pelacakan serta aturan kaidah produksi berbentuk IF-THEN-ELSE. Metode pencariannya menggunakan Breadh First Search.

Berdasarkan hasil pengujian, aplikasi ini dapat membantu akademisi dalam mempelajari dan menyelesaikan permasalahan ruang keadaan. Informasi dikemas dalam sebuah simulasi sehingga menghasilkan tampilan kombinasi penyelesaian serta hasil akhirnya yaitu solusi akhir tercapai.

Kata Kunci : kecerdasan buatan, permasalahan ruang keadaan, breadth-first

(6)

ii

LEARNING AND COMPLETION PROBLEMS IN THE EVENT

(STATE AND SPACE)

By

ARI WIBOWO 10107371

Problems of state space is one of the problems studied in the field of artificial intelligence. Problem discuss the state space of a space that contains all possible states. Criteria for this problem is identical to the problems of the place, and time conditions. One of the problems that are common in this state space is the Farmer's problem that can be described as follows, a farmer will take across a goat, a wolf and vegetables with a raft through the river.

Completion of this problem using a method first searches the search widened (Breadth-First Search), where in the step tracking solution using the shortest tree. In this method can be applied in a computer programming algorithm, so it can be created for a computer or application software that can help learning and solving problems of state space.

On this thesis, software or applications that are built applications designed to help scholars in the study and solve the problem state space case. Knowledge representation digunakanadalah decision tables, trees and tracking rules in the form of production rules of IF-THEN-ELSE. Search method using Breadh First Search.

Based on the results of testing, this application can help academics in studying and solving the problems the state space. Information is packaged in a simulation that produces a combination of display resolution and the end result is the final solution is reached.

(7)

iii

Dengan segala kerendahan hati dan puji syukur penulis panjatkan

kehadirat Allah SWT, yang telah memberikan kekuatan dan kesabaran sehingga

penulis dapat menyelesaikan Skripsi yang berjudul “Aplikasi Bantu Kecerdasan

Buatan Pada Permasalahan Ruang Keadaan”.

Skripsi ini disusun untuk melengkapi persyaratan dalam menyelesaikan

program studi Strata Satu (S1) pada Jurusan Teknik Informatika Universitas

Komputer Indonesia (UNIKOM) Bandung.

Selama penyusunan dan penulisan Skripsi ini tentunya tidak terlepas dari

bantuan dan bimbingan dari berbagai pihak, baik dalam bentuk moril maupun

materil. Selanjutnya ucapan terima kasih yang tulus penulis sampaikan kepada

semua pihak yang dengan keikhlasan hati banyak memberikan bantuan untuk

kelancaran studi dan penyusunan Skripsi, yaitu kepada yang terhormat :

1. Orang tua tercinta dan keluarga besar yang telah banyak membantu

dan memberikan dukungannya semoga perlindungan dan keselamatan

dari Allah SWT selalu menyertai;

2. Dr. Ir. Eddy Soeryanto Soegoto selaku rektor Universitas Komputer

Indonesia;

3. Mira Kania Sabariah, S.T., M.T. selaku Ketua Juruan Teknik

(8)

iv

5. Nelly Indriani W, S.si., M.T. selaku Penguji 1;

6. Galih Hermawan, S.Kom., M.T. selaku Penguji 3;

7. Eko Budi Setiawan, S.Kom. selaku dosen wali Kelas IF-9 2007;

8. Seluruh staf Dosen Jurusan Teknik Informatika Universitas Komputer

Indonesia;

9. Sekretariat Jurusan Teknik Informatika Universitas Komputer

Indonesia;

10. Rekan-rekan IF9 2007 yang senantiasa memberikan semangat dan

motivasi;

11. Keluarga besar KSR PMI UNIKOM yang senantiasa memberikan

semangat dan motivasi;

12. Semua pihak yang tidak dapat penulis sebutkan satu persatu.

Penulis menyadari bahwa dalam penyusunan Skripsi ini masih banyak

kekurangan dan masih jauh dari kesempurnaan karena keterbatasan kemampuan

maupun pengetahuan penulis. Untuk itu penulis mengharapkan saran dan kritik

yang sifatnya membangun dari semua pihak. Besar harapan penulis, semoga

Skripsi ini dapat bermanfaat bagi kita semua, khususnya bagi Mahasiswa Unikom

Jurusan Teknik Informatika.

Wassalamualaikum Wr. Wb.

Bandung, Maret 2012

(9)

v

DAFTAR ISI

LEMBAR JUDUL

LEMBAR PENGESAHAN

ABSTRAK...i

ABSTRACT...ii

KATA PENGANTAR...iii

DAFTAR ISI...v

DAFTAR TABEL...ix

DAFTAR GAMBAR...x

DAFTAR LAMPIRAN...xi

BAB 1PENDAHULUAN...1

1.1 Latar Belakang Masalah...1

1.2 Perumusan Masalah...3

1.3 Maksud dan Tujuan...3

1.4 Batasan Masalah...4

1.5 Metodologi Penelitian...6

1.6 Sistematika Penulisan...8

BAB 2TINJAUAN PUSTAKA...10

2.1 Artificial Intelligence (AI) ...10

(10)

vi

2.1.2Definisi AI...11

2.1.3AI dari Berbagai Sudut Pandang...13

2.1.4Komputasi AI dan Komputasi Konvensional...15

2.2 Representasi Pengetahuan ...16

2.2.1Logika...16

2.3 Masalah Ruang Keadaan (Space and Search Problem)...18

2.4 Metode Pencarian dan Pelacakan ...19

2.4.1Pencarian Buta (BlindSearch)...19

2.4.1.1Pencarian Melebar Pertama (Breadth-First Search)...19

2.4.1.2Pencarian Mendalam Pertama (Depth-First Search)...21

2.4.2Pencarian Heuristik (HeuristicSearch)...23

2.4.2.1Generate and Test...24

2.4.2.2Hill Climbing...25

2.4.2.3Best First Search...27

2.4.2.4Simulated Annealing...28

2.5 Rekaya Perangkat Lunak...30

2.5.1 Pengertian Rekayasa Perangkat Lunak...30

2.5.2Tujuan Rekayasa Perangkat Lunak...31

2.5.3Ruang Lingkup Rekayasa Perangkat Lunak...32

2.5.4Rekayasa Perangkat Lunak Dan Disiplin Ilmu Lain...33

(11)

vii

2.5.6Metode Rekayasa Perangkat Lunak...36

2.5.7Tahapan Rekayasa Perangkat Lunak...38

2.6 Microsoft Visual Basic 6.0...41

BAB 3ANALISIS DAN PERANCANGAN...44

3.1 Analisis Sistem...44

3.1.1Analisis Masalah...44

3.1.2Analisis Data...45

3.1.2.1Data Masukan...45

3.1.2.2Analisis Metode Penyelesaian...46

3.1.3Analisis Informasi...54

3.1.4Analisis Fungsional...55

3.1.4.1ERD dan Skema Relasi...55

3.1.4.2Diagram Konteks...57

3.1.4.3Data Flow Diagram (DFD)...58

3.1.4.4Spesifikasi Proses...64

3.1.4.5Struktur tabel...71

3.1.5Analisis Kebutuhan Non-Fungsional...73

3.1.5.1Analisis Perangkat Keras...73

3.1.5.2Analisis Pengguna...74

3.2 Perancangan Perangkat Lunak...74

(12)

viii

3.2.2Perancangan Antar Muka...75

BAB 4IMPLEMENTASI DAN PENGUJIAN...86

4.1 Implementasi Sistem...86

4.1.1Implementasi Perangkat Keras...87

4.1.2Implementasi Perangkat Lunak...87

4.1.3Implementasi Basis Data...88

4.1.4Implementasi Form...89

4.1.5Implementasi Antarmuka...91

4.1.6 Implementasi Algoritma Pohon Pelacakan...99

4.2 Pengujian WhiteBox...107

4.2.1Diagram Alir...107

4.2.2Algoritma Program...108

4.2.3Matriks Grafik...109

4.2.4Kesimpulan Hasil Pengujian WhiteBox...111

4.3 Pengujian Black Box...111

4.3.1Rencana Pengujian...111

4.3.2Kasus dan Pengujian Alpha...112

4.3.2.1Pengujian Melihat Teori...112

4.3.2.2Pengujian Pengolahan Problem...114

4.3.2.3Pengujian Pengolahan Variabel...115

(13)

ix

4.3.2.5Pengujian Melihat Solusi...119

4.3.3Kesimpulan Hasil Pengujian Alpha...122

4.3.4Pengujian Betha...122

4.3.5Kesimpulan Pengujian Betha...125

BAB 5KESIMPULAN DAN SARAN...126

5.1Kesimpulan...126

5.2Saran...127

(14)

1

1.1 Latar Belakang Masalah

Kecerdasan Buatan atau Artificial Intelligence (AI) merupakan salah satu

bagian ilmu komputer yang mempelajari tentang bagaimana cara membuat agar

komputer dapat melakukan pekerjaan seperti yang dilakukan oleh manusia. Pada

awal diciptakannya, komputer hanya difungsikan sebagai alat hitung saja. Namun

seiring dengan perkembangan jaman, maka peran komputer semakin

mendominasi kehidupan umat manusia. Komputer tidak lagi hanya digunakan

sebagai alat hitung, lebih dari itu, komputer diharapkan untuk dapat diberdayakan

untuk mengerjakan segala sesuatu yang bisa dikerjakan oleh manusia.

Salah satu teori kecerdasan buatan yang dibahas yaitu mengenai

permasalahan Ruang Keadaan (State and Space). Kasus ruang keadaan sering kita

jumpai dalam kehidupan sehari-hari, terutama pada permasalahan yang

membutuhkan aturan-aturan tertentu untuk menyelesaikan permasalahan, dan

salah satu pendekatan terbaik untuk menyelesaikan permasalahan tersebut yaitu

dengan menggunakan permasalahan State and Space yang dibahas dalam bidang

keilmuan kecerdasan buatan.

State merupakan representasi suatu keadaan pada suatu saat ataupun

deskripsi konfigurasi sistem. State and space adalah semua state yang mungkin,

(15)

edge merupakan perubahan yang mungkin. Representasi state and space

memungkinkan definisi formal suatu masalah sebagai persoalan dengan

mengubah status dengan menggunakan sekumpulan operator (rule) dan juga

mendefinisikan masalah sebagai search yaitu mencari lintasan di dalam state and

space dari initial state ke goal state. Salah satu permasalahan umum yang terdapat

dalam state and space ini adalah Farmer’s problem (permasalahan petani) yang

dapat dideskripsikan sebagai berikut, seorang petani akan menyeberangkan seekor

kambing, seekor serigala dan sayur-sayuran dengan sebuah rakit yang melalui

sungai.

Permasalahan ini akan dimodifikasi sehingga dapat digunakan untuk

menyelesaikan semua persoalan yang hampir mirip dengan permasalahan ini.

Permasalahan ini dapat diselesaikan dengan menggunakan tahapan-tahapan

berikut ini, tahapan pertama dimulai dari identifikasi ruang keadaan (state and

space) yaitu dengan mendeklarasikan permasalahan ini dengan menentukan

jumlah variabel yang ada dalam permasalahan ini, dilanjutkan dengan

mendeskripsikan keadaan awal (initial state) pada kedua daerah yaitu daerah asal

dan daerah tujuan serta sasaran (goal state) pada kedua daerah. Setelah itu,

ditentukan aturan-aturan yang terdapat dalam permasalahan. Kemudian,

permasalahan dapat diselesaikan dengan menggunakan bantuan pohon pelacakan.

Kondisi-kondisi (state-state) yang mungkin digambarkan dalam suatu pohon biner

dengan dimulai dari mendeklarasikan kondisi awal (start state) sebagai akar dari

(16)

berikutnya dari state tersebut hingga didapatkan kondisi yang diinginkan (goal

state).

Berdasarkan uraian di atas, penulis ingin membangun suatu aplikasi

dengan judul “Pembangunan Aplikasi Bantu Kecerdasan Buatan

Pembelajaran dan Penyelesaian Pada Permasalahan Ruang Keadaan (State

And Space)”.

1.2 Perumusan Masalah

Berdasarkan uraian latar belakang masalah yang dikemukakan, maka dapat

dirumuskan permasalahan sebagai berikut:

1. Bagaimana membangun aplikasi bantu sebagai media pembelajaran

kecerdasan buatan pada permasalahan ruang keadaan.

2. Bagaimana membangun aplikasi bantu yang dapat mensimulasikan

langkah penyelesaian permasalahan ruang keadaan.

3. Bagaimana membangun aplikasi yang menyediakan input dinamis oleh

user untuk menambahkan kasus permasalahan-permasalahan ruang

keadaan.

1.3 Maksud dan Tujuan

Adapun maksud penyusunan penelitian ini yaitu membantu pemahaman

mengenai ruang keadaan (state and space) pada kecerdasan buatan dan aplikasi

juga dapat digunakan sebagai media pendukung dalam proses belajar mengajar

(17)

Adapun tujuan penyusunan penelitian ini yaitu :

1. Membangun suatu aplikasi bantu kecerdasan buatan pembelajaran pada

permasalahan ruang keadaan.

2. Membangun aplikasi untuk mensimulasikan langkah penyelesaian

kasus-kasus yang menyerupai permasalahan dan aturan ruang keadaan.

3. Menyediakan aplikasi bantu kecerdasan yang dinamis, dimana user dapat

memasukkan kasus permasalahan ruang keadaan yang ingin diselesaikan.

1.4 Batasan Masalah

Permasalahan yang akan dibahas mencakup beberapa hal yang dibatasai

dalam ruang lingkup sebagai berikut :

1. Membangun aplikasi kecerdasan buatan sebagai media pembelajaran dan

penyelesaian masalah ruang keadaan (State and Space) dengan

menggunakan bahasa pemrograman Visual Basic 6.0.

2. Aplikasi berbentuk simulator yang menghasilkan suatu bentuk

pemahaman mengenai permasalahan ruang keadaan.

3. Aplikasi menampilkan teori dasar dan manual mengenai permasalahan

State and Space.

4. Problem atau kasus yang akan digunakan untuk mensimulasikan

permasalahan ruang keadaan yaitu permasalahan tempat, kondisi, dan

waktu. Seperti kasus yang sudah umum yaitu Farmers Problem, kemudian

disertakan juga contoh kasus lainnya yang banyak disimulasikan dalam

Game logic yaitu Family Crossing Problem, Angry Father dan juga

(18)

ini penyelesaian permasalahan seperti kombinasi cannibal missionaries

tidak disediakan dalam aplikasi.

5. Problem baru selain contoh diatas dapat diinputkan oleh user secara

dinamis dengan memasukkan keadaan awal dari permasalahan, serta

menginputkan variabel sendiri.

6. Aplikasi mencari dan menampilkan langkah penyelesaian terpendek

(shortest path).

7. Metode penyelesaian menggunakan metode pencarian melebar pertama

(Breadth-First Search) karena pencarian solusi ini tidak akan menemui

jalan buntu, jika ada satu solusi, maka breadth-first search akan

menemukannya. Dan jika ada lebih dari satu solusi, maka solusi minimum

(Shortest path) akan ditemukan dan yang dipilih. Karena sesuai dengan

batasan masalah pada poin sebelumnya yaitu aplikasi mencari dan

menampilkan langkah penyelesaian terpendek.

8. Jika tidak terdapat solusi, maka aplikasi akan menampilkan pesan

kesalahan (error message) yang menandakan bahwa problem dan aturan

yang dibuat oleh user melalui inputan tidak memenuhi format pada

batasan masalah di poin 4.

9. Langkah penyelesaian dapat dijalankan secara manual maupun secara

(19)

1.5 Metodologi Penelitian

Metodologi yang digunakan dalam penulisan tugas akhir ini adalah

sebagai berikut :

1. Tahap pengumpulan data

Metode pengumpulan data yang digunakan dalam penelitian ini yaitu dengan

Studi Literatur yaitu pengumpulan data dengan cara mengumpulkan literatur,

jurnal, paper dan bacaan-bacaan yang ada kaitannya dengan judul penelitian.

2. Tahap pembuatan perangkat lunak.

Teknik analisis data dalam pembuatan perangkat lunak menggunakan

paradigma perangkat lunak secara waterfall, yang meliputi beberapa proses

diantaranya:

a. Rekayasa Perangkat Lunak (System Engineering)

Merupakan tahapan yang pertama kali dilakukan yaitu merumuskan

sistem yang akan dibangun. Hal ini bertujuan agar pengembang

benar-benar memahami sistem yang akan dibangun dan langkah-langkah serta

kebijakan apa saja yang berkaitan dengan pengembangan sistem.

b. Analisis Kebutuhan (Requirements Analysis)

Melakukan analisis terhadap permasalahan yang dihadapi dan menetapkan

kebutuhan perangkat lunak.

c. Perancangan (Design)

(20)

selama tahapan analisis kebutuhan. Hasil akhirnya berupa spesifikasi

rancangan yang rinci sehingga mudah diwujudkan pada saat

pemrograman.

d. Implementasi (Coding)

Pengkodean yang mengimplementasikan hasil perancangan kedalam kode

atau bahasa yang dimengerti oleh mesin komputer dengan menggunakan

bahasa pemrograman tertentu.

e. Pengujian (Testing)

Melakukan pengujian yang menghasilkan kebenaran program. Proses

pengujian berfokus pada logika internal perangkat lunak, memastikan

bahwa semua pernyataan sudah diuji dan memastikan apakah hasil yang

diinginkan sudah tercapai atau belum.

f. Perawatan (Maintenance)

Menangani perangkat lunak yang sudah selesai agar dapat berjalan dengan

lancar dan terhindar dari gangguan-gangguan yang dapat menyebabkan

(21)

Requirements Definition

System and Software Design

Implementation and Unit Testing

Integration and System Testing

Operation and Maintenance

Gambar 1.1 Model Proses Waterfall (Sommerville, 2001)

1.6 Sistematika Penulisan

Sistematika penulisan ini disusun untuk memberikan gambaran umum

tentang penelitian yang dijalankan. Sistematika yang digunakan sebagai berikut:

BAB 1 PENDAHULUAN

Bab ini menguraikan tentang latar belakang masalah, perumusan

masalah, maksud dan tujuan, batasan masalah, metodologi penelitian,

dan sistematika penulisan.

BAB 2 TINJAUAN PUSTAKA

Bab ini menguraikan tentang tinjauan instansi, serta teori-teori yang

(22)

BAB 3 ANALISIS DAN PERANCANGAN

Bab ini menjelaskan mengenai analisis yang dilakukan untuk

dapatmerealisasikan sistem yang akan dibangun, serta

menggambarkanperancangan aplikasi yang akan dibuat berdasarkan

analisis sistem yang telah dilakukan.

BAB 4 IMPLEMENTASI DAN PENGUJIAN

Bab ini berisi tentang implementasi aplikasi hasil perancangan yang

telah dilakukan, serta pengujian terhadap sistem tersebut.

BAB 5 KESIMPULAN DAN SARAN

Bab ini berisi rangkuman atau kesimpulan dari hasil analisis dan saran

(23)

10

2.1 Artificial Intelligence (AI)

2.1.1 Sejarah AI

Kecerdasan buatan atau AI termasuk bidang ilmu yang relatif muda. Pada

tahun 1950-an para ilmuan 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 kemudian dikenal dengan Turing Test, dimana si mesin

tersebut menyamar seolah-oleh 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 tersebut cerdas, seperti layaknya manusia [1].

AI itu sendiri dimunculkan oleh seorang profesor dari Massachusetts

Institute of Technology yang bernama John McCarthy pada tahun 1956 pada

Darmouth Conference yang dihadiri oleh para peneliti AI. Pada konferensi

tersebut juga didefinisikan tujuan utama dari kecerdasan buatan, yaitu mengetahui

dan memodelkan proses-proses berpikir manusia dan mendesain mesin agar dapat

(24)

Beberapa program AI yang mulai dibuat pada tahun 1956-1966, antara lain

[1] :

1. Logic Theorist, diperkenalkan pada Dartmouth Conference, program ini

dapat membuktikan teorema-teorema matematika.

2. Sad Sam, diprogram oleh Robert K. Lindsay (1960). Program ini dapat

mengetahui kalimat-kalimat sederhana yang ditulis dalam bahasa Inggris

dan mampu memberikan jawaban dari fakta-fakta yang didengar dalam

sebuah percakapan.

3. ELIZA, diprogram oleh Joseph Weizenbaum (1967). Program ini mampu

melakukan terapi terhadap pasien dengan memberikan beberapa

pertanyaan dan jawaban.

2.1.2 Definisi AI

Kecerdasan buatan atau AI adalah salah satu bagian ilmu komputer yang

mempelajari tentang bagaimana cara membuat agar komputer dapat melakukan

pekerjaan seperti yang dilakukan oleh manusia. Tujuan dari AI adalah untuk

memecahkan persoalan dunia nyata (bersifat praktis) dan memahami intelijensia

(bersifat memahami) [1].

AI merupakan salah satu bagian ilmu komputer yang mempelajari tentang

bagaimana cara membuat agar komputer dapat melakukan pekerjaan seperti yang

dilakukan oleh manusia. Pada awal diciptakannya, komputer hanya difungsikan

sebagai alat hitung saja. Namun seiring dengan perkembangan zaman, maka peran

komputer semakin mendominasi kehidupan umat manusia. Komputer tidak lagi

(25)

dapat diberdayakan untuk mengerjakan segala sesuatu yang bisa dikerjakan oleh

manusia.

Manusia bisa menjadi pandai dalam menyelesaikan segala permasalahan di

dunia ini karena manusia mempunyai pengetahuan dan pengalaman. Pengetahuan

diperoleh dari belajar. Semakin banyak bekal pengetahuan yang dimiliki oleh

seseorang tentu saja diharapkan akan lebih mampu dalam menyelesaikan

permasalahan. Namun bekal pengetahuan saja tidak cukup, manusia juga diberi

akal untuk melakukan penalaran, mengambil kesimpulan berdasarkan

pengetahuan dan pengalaman yang mereka miliki. Tanpa memiliki kemampuan

menalar yang baik, manusia dengan segudang pengalaman dan pengetahuan tidak

akan dapat menyelesaikan masalah dengan baik. Demikian pula, dengan

kemampuan menalar yang sangat baik, namun tanpa bekal pengetahuan dan

pengalaman yang memadai, manusia juga tidak akan bisa menyelesaikan masalah

dengan baik.

Agar komputer bisa bertindak seperti dan sebaik manusia, maka komputer

juga harus diberi bekal pengetahuan dan mempunyai kemampuan untuk menalar.

Untuk itu pada artificial intelligence, akan mencoba untuk memberikan beberapa

metode untuk membekali komputer dengan kedua komponen tersebut agar

(26)

2.1.3 AI dari Berbagai Sudut Pandang

AI dapat dilihat dari berbagai sudut pandang [3], antara lain:

1. Sudut pandang kecerdasan

AI akan membuat mesin menjadi „cerdas‟ (mampu berbuat seperti apa

yang dilakukan oleh manusia).

2. Sudut pandang penelitian

AI adalah suatu studi bagaimana membuat agar komputer dapat

melakukan sesuatu sebaik yang dikerjakan oleh manusia.

Domain yang sering dibahas oleh para peneliti meliputi:

a. Mundane task

- Persepsi (vision & speech).

- Bahasa alami (understanding, generation & translation).

- Pemikiran yang bersifat commonsense.

- Robot control.

b. Formal task

- Matematika (geometri, logika, kalkulus integral, pembuktian).

- Permainan / games.

c. Expert task

- Analisis finansial.

- Analisis medikal.

- Analisis ilmu pengetahuan.

- Rekayasa (desain, pencarian kegagalan, perencanaan

(27)

3. Sudut pandang bisnis.

AI adalah kumpulan peralatan yang sangat powerful dan metodologis

dalam menyelesaikan masalah-masalah bisnis.

4. Sudut pandang pemograman.

AI meliputi studi tentang pemograman simbolik, penyelesaian masalah

(problem solving) dan pencarian (searching).

Untuk menciptakan aplikasi AI ada 2 bagian utama yang sangat dibutuhkan

[3] yaitu:

1. Basis Pengetahuan (Knowledge Base), berisi fakta-fakta, teori, pemikiran

dan hubungan antara satu dengan yang lainnya.

2. Motor Inferensi (Inference Engine), yaitu kemampuan menarik

kesimpulan berdasarkan pengalaman.

Basis Pengetahuan

KOMPUTER

Input: masalah, pertanyaan,

dll

Motor Inferensi

Output: jawaban,

solusi.

(28)

2.1.4 Komputasi AI dan Komputasi Konvensional

Seperti telah diketahui sebelumnya, bahwa pada awal diciptakannya,

komputer hanya diperuntukkan sebagai alat hitung (komputasi konvensional).

Untuk itu, ada beberapa perbedaan antara komputasi yang dilakukan pada AI

dengan komputasi konvensional tersebut. Perhatikan tabel berikut [3].

Tabel 2.1. AI Vs. Pemograman konvensional

Dimensi AI Pemograman

Konvensional

Pemrosesan Mengandung konsep-konsep

simbolik Algoritmik

Sifat Input Bisa tidak lengkap Harus lengkap

Pencarian Kebanyakan bersifat heuristik Biasanya didasarkan pada algoritma

Keterangan Disediakan Biasanya tidak

disediakan

Fokus Pengetahuan Data dan informasi

Struktur Kontrol dipisahkan dari pengetahuan

Kontrol terintegrasi dengan informasi (data)

Sifat output Kuantitatif Kualitatif

Pemeliharaan

& update Relatif mudah Sulit

Kemampuan

(29)

2.2 Representasi Pengetahuan

Untuk menyelesaikan suatu permasalahan dalam AI, dibutuhkan

pengetahuan yang cukup. Tidak hanya itu, sistem juga harus memiliki

kemampuan unuk menalar. Basis pengetahuan dan kemampuan untuk melakukan

penalaran merupakan bagian terpenting dari sistem yang menggunakan AI.

Meskipun suatu sistem memiliki banyak pengetahuan, namun apabila tidak

memiliki kemampuan untuk menalar, tentu akan menjadi percuma saja. Demikian

pula sebaliknya, apabila suatu sistem memiliki kemampuan yang sangat handal

untuk menalar, namun basis pengetahuan yang dimilikinya tidak cukup, maka

solusi yang diperoleh pun menjadi tidak maksimal.

2.2.1 Logika

Logika adalah bentuk representasi pengetahuan yang paling tua. Pada

dasarnya, proses logika adalah proses membentuk kesimpulan atau menarik suatu

inferensi berdasarkan fakta yang telah ada. Input dari proses logika berupa premis

atau fakta-fakta yang diakui kebenarannya sehingga dengan melakukan penalaran

pada proses logika dapat dibentuk suatu inferensi atau kesimpulan yang benar

pula.

Proses

Logika

Input: Premis

atau Fakta

Output: Inferensi

atau Konklusi

(30)

Ada 2 penalaran yang dapat dilakukan untuk mendapatkan

konklusi [3]:

1. Penalaran Deduktif.

Penalaran dimulai dari prinsip umum untuk mendapatkan konklusi yang

lebih khusus.

Contoh:

Premis Mayor : Jika hujan turun, saya tidak akan berangkat kuliah.

Premis Minor : Hari ini hujan turun.

Konklusi : Hari ini saya tidak akan berangkat kuliah.

2. Penalaran Induktif.

Penalaran dimulai dari fakta-fakta khusus untuk mendapatkan kesimpulan

umum.

Premis-1 : Aljabar adalah pelajaran yang sulit.

Premis-2 : Geometri adalah pelajaran yang sulit.

Premis-3 : Kalkulus adalah pelajaran yang sulit.

(31)

2.3 Masalah Ruang Keadaan (Space and Search Problem)

Sistem yang menggunakan kecerdasan buatan akan mencoba untuk

memberikan output berupa solusi dari suatu masalah berdasarkan kumpulan

pengetahuan yang ada.

Sistem yang menggunakan AI

MASALAH

Basis Pengetahuan

Inference Engine

SOLUSI

Gambar 2.3. Sistem yang menggunakan AI [3]

Pada Gambar 2.3, input yang diberikan pada sistem yang menggunakan

kecerdasan buatan berupa masalah. Pada sistem harus dilengkapi dengan

sekumpulan pengetahuan yang ada pada basis pengetahuan. Sistem harus

memiliki inference engine agar mampu mengambil kesimpulan berdasarkan fakta

atau pengetahuan. Output yang diberikan berupa solusi masalah sebagai hasil dari

inferensi.

Secara umum, untuk membangun suatu sistem yang mampu

menyelesaikan masalah, perlu dipertimbangkan 4 hal:

1. Mendefinisikan masalah dengan tepat. Pendefinisian ini mencakup

spesifikasi yang tepat mengenai keadaan awal dan solusi yang diharapkan.

2. Menganalisis masalah tersebut serta mencari beberapa teknik penyelesaian

(32)

3. Merepresentasikan pengetahuan yang perlu untuk menyelesaikan masalah

tersebut.

4. Memilih teknik penyelesaian masalah yang terbaik.

2.4 Metode Pencarian dan Pelacakan

Hal terpenting dalam menentukan keberhasilan sistem yang berlandaskan

kecerdasan buatan adalah kesuksesan dalam pencarian dan pencocokan. Pada

dasarnya ada 2 teknik pencarian dan pelacakan yang digunakan, yaitu pencarian

buta (blind search) dan pencarian terbimbing (heuristic search).

2.4.1 Pencarian Buta (Blind Search)

2.4.1.1Pencarian Melebar Pertama (Breadth-First Search)

Pada metode Breadth-First Search, semua node pada level n akan

dikunjungi terlebih dahulu sebelum mengunjungi node-node pada level n+1.

Pencarian dimulai dari node akar terus ke level ke-1 dari kiri ke kanan, kemudian

berpindah ke level berikutnya [3]. Demikian seterusnya hingga ditemukannya

solusi.

A

D E F G H I

B C

(33)

Algoritma :

1. Buat suatu variabel Node_List dan tetapkan sebagai keadaan awal.

2. Kerjakan langkah-langkah berikut ini sampai tujuan tercapai atau

Node_List dalam keadaan kosong :

a. Hapus elemen pertama dari Node_List, sebut dengan nama D. Jika

Node_List kosong, keluar.

b. Pada setiap langkah yang aturannya cocok dengan D, kerjakan :

1) Aplikasikan aturan tersebut untuk membentuk suatu keadaan baru

2) Jika keadaan awal adalah tujuan yang diharapkan, sukses dan

keluar.

3) Jika tidak demikian, tambahkan keadaan awal yang baru tersebut

pada akhir Node_List.

Keuntungan dari metode ini:

1. Tidak akan menemui jalan buntu.

2. Jika ada satu solusi, maka breadth-first search akan menemukannya. Dan

jika ada lebih dari satu solusi, maka solusi minimum akan ditemukan.

Kelemahan dari metode ini:

1. Membutuhkan memori yang cukup banyak, karena menyimpan semua

node dalam satu pohon.

2. Membutuhkan waktu yang cukup lama, karena akan menguji n level untuk

(34)

2.4.1.2Pencarian Mendalam Pertama (Depth-First Search)

Pencarian dengan metode Depth-First Search (DFS) dilakukan dari node

awal secara mendalam hingga yang paling akhir (dead-end) atau sampai

ditemukan. Dengan kata lain, simpul cabang atau anak yang terlebih dahulu

dikunjungi. Gambaran pencarian DFS dapat dilihat pada gambar 2.4 [3].

A

B

C F

G

H I

D E

Gambar 2.5. Pencarian mendalam pertama (Depth-First Search)[3]

Pencarian dilakukan pada suatu simpul dalam setiap level dari yang paling

kiri. Jika pada level yang paling dalam tidak ditemukan solusi, maka pencarian

dilanjutkan pada simpul sebelah kanan dan simpul yang kiri dapat dihapus dari

memori. Jika pada level yang paling dalam tidak ditemukan solusi, maka

pencarian dilanjutkan pada level sebelumnya. Demikian seterusnya sampai

(35)

Algoritma :

1. Jika keadaan awal merupakan tujuan, keluar (Sukses).

2. Jika tidak demikian, kerjakan langkah-langkah berikut ini sampai tercapai

keadaan sukses atau gagal :

a. Bangkitkan successor D dari keadaan awal. Jika tidak ada successor,

maka akan terjadi kegagalan.

b. Panggil Depth-first search dengan D sebagai keadaan awal.

c. Jika sukses berikan tanda sukses. Namun jika tidak, ulangi langkah-2.

Keuntungan dari metode DFS :

1. Membutuhkan memori yang relatif kecil, karena hanya node-node pada

lintasan yang aktif saja yang disimpan.

2. Secara kebetulan, metode DFS akan menemukan solusi tanpa harus menguji

lebih banyak lagi dalam ruang keadaan, sehingga tidak memboros waktu

untuk melakukan sejumlah besar keadaan „dangkal‟ dalam permasalahan graf/

pohon.

Kelemahan dari metode DFS:

1. Memungkinkan tidak ditemukannya tujuan yang diharapkan.

(36)

2.4.2 Pencarian Heuristik (Heuristic Search)

Pencarian buta tidak selalu dapat diterapkan dengan baik, hal ini

disebabkan waktu aksesnya yang cukup lama serta besarnya memori yang

diperlukan. Kelemahan ini sebenarnya dapat diatasi jika ada informasi tambahan

dari domain yang bersangkutan.

Heuristic search adalah suatu istilah yang berasal dari bahasa Yunani yang

berarti menemukan/ menyingkap. Heuristic adalah suatu perbuatan yang

membantu kita menemukan jalan dalam pohon pelacakan yang menuntut kita

kepada suatu solusi masalah. Heuristic dapat diartikan juga sebagai suatu kaidah

yang merupakan metoda/ prosedur yang didasarkan kepada pengalaman dan

praktek, syarat, trik atau bantuan lainnya yang membantu mempersempit dan

memfokuskan proses pelacakan kepada suatu tujuan tertentu.

Heuristic dapat digunakan pada beberapa kondisi berikut ini :

1. Mengatasi combinatorialexplosion

Ada masalah yang kemungkinan arah penyelesaiannya berkembang pesat

(bersifat faktorial) sehingga menimbulkan combinatorial explosion.

Heuristic merupakan cara untuk menentukan kemungkinan arah

penyelesaian masalah secara efisien.

2. Solusi paling optimal mungkin tidak diperlukan

Dalam suatu keadaan, mungkin lebih baik mendapatkan solusi yang

mendekati optimal dalam waktu yang singkat daripada solusi yang paling

(37)

3. Pada umumnya hasilnya cukup baik

Sekalipun tidak optimal biasanya mendekati optimal.

4. Membantu pemahaman bagi orang yang menyelesaikan persoalan

Banyak alternatif heuristic yang dapat diterapkan dalam suatu percobaan.

Orang yang menyelesaikan persoalan tersebut akan lebih mengerti

persoalannya jika mencoba heuristic yang diterapkannya.

Metode-metode yang termasuk ke dalam teknik pencarian yang

berdasarkan pada fungsi heuristik adalah : Generate and Test, Hill

Climbing, Best First Search, Simulated Annealing.

2.4.2.1Generate and Test

Strategi bangkitkan dan uji (generate and test) merupakan pendekatan

yang paling sederhana dari semua pendekatan yang akan dibicarakan. Pendekatan

ini meliputi langkah–langkah sebagai berikut :

1. Buatlah/ bangkitkan sebuah solusi yang memungkinkan. Untuk sebuah

problema hal ini dapat berarti pembuatan sebuah titik khusus dalam

ruang problema.

2. Lakukan pengujian untuk melihat apakah solusi yang dibuat benar–benar

merupakan sebuah solusi, dengan cara membandingkan titik khusus

tersebut dengan goal-nya (solusi).

3. Jika telah diperoleh sebuah solusi, langkah– langkah tersebut dapat

(38)

Jika pembangkitan atau pembuatan solusi– solusi yang dimungkinkan

dapat dilakukan secara sistematis, maka prosedur ini akan dapat segera

menemukan solusinya (bila ada). Namun, jika ruang problema sangat besar, maka

proses ini akan membutuhkan waktu yang lama.

Metode generate and test ini kurang efisien untuk masalah yang besar atau

kompleks.

2.4.2.2Hill Climbing

Hill climbing (mendaki bukit)merupakan salah satu variasi metode buat dan

uji (generate and test) dimana umpan balik yang berasal dari prosedur uji

digunakan untuk memutuskan arah gerak dalam ruang pencarian (search). Dalam

prosedur buat dan uji yang murni, respon fungsi uji hanyalah ya atau tidak.

Dalam prosedur Hill Climbing, fungsi uji dikombinasikan dengan fungsi heuristik

yang menyediakan pengukuran kedekatan suatu keadaan yang diberikan dengan

tujuan (goal).

Prosedur Hill Climbing :

1. Buatlah solusi usulan pertama dengan cara yang sama seperti yang

dilakukan dalam prosedur buat dan uji (generate and test). Periksalah

apakah solusi usulan itu merupakan sebuah solusi. Jika ya, berhentilah.

Jika tidak, kita lanjutkan ke langkah berikutnya.

2. Dari solusi ini, terapkan sejumlah aturan yang dapat diterapkan untuk

(39)

Untuk setiap elemen kumpulan solusi tersebut, lakukanlah hal-hal berikut

ini :

1. Kirimkanlah elemen ini ke fungsi uji. Jika elemen ini merupakan sebuah

solusi, berhentilah.

2. Jika tidak, periksalah apakah elemen ini merupakan yang terdekat dengan

solusi yang telah diuji sejauh ini. Jika tidak, buanglah.

3. Ambilah elemen terbaik yang ditemukan di atas dan pakailah sebagai

solusi usulan berikutnya. Langkah ini bersesuaian dengan langkah dalam

ruang problema dengan arah yang muncul sebagai yang tercepat dalam

mencapai tujuan.

4. Kembalilah ke langkah 2.

Masalah-masalah yang mungkin timbul pada prosedur Hill Climbing :

- Maksimum lokal adalah suatu keadaan yang lebih baik daripada semua

tetangganya namun masih belum lebih baik dari suatu keadaan lain yang

jauh letaknya darinya.

- Daratan (Plateau) adalah suatu daerah datar dari ruang pencarian (search)

dimana semua himpunan keadaan tetangganya memiliki nilai yang sama.

- Punggung (Ridge) adalah suatu daerah ruang pencarian (search) yang

lebih tinggi daripada daerah sekitarnya, namun tidak dapat dibalikkan oleh

(40)

Solusinya:

- Melakukan langkah balik (backtracking) ke simpul yang lebih awal dan

mencoba bergerak ke arah yang lain.

- Melakukan lompatan besar ke suatu arah untuk mencoba bagian ruang

pencarian yang baru.

- Menerapkan dua atau lebih aturan sebelum melakukan uji coba. Ini

bersesuaian dengan bergerak ke beberapa arah sekaligus.

2.4.2.3Best First Search

Pencarian terbaik pertama (Best First Search) merupakan suatu cara yang

menggabungkan keuntungan atau kelebihan dari pencarian Breadth-First Search

dan Depth-First Search.

Pada setiap langkah proses pencarian terbaik pertama, kita memilih

node-node dengan menerapkan fungsi heuristik yang memadai pada setiap node-node/simpul

yang kita pilih dengan menggunakan aturan-aturan tertentu untuk menghasilkan

penggantinya.

Fungsi Heuristik yang digunakan merupakan prakiraan (estimasi) cost

dari initial state ke goalstate, yang dinyatakan dengan [2] :

f’(n) = g(n) + h’(n) ... ( i )

f‟(n) = prakiraan cost dari initial ke goal

(41)

h‟(n) = prakiraan cost dari current state ke goal state

Gambar 2.6. Ilustrasi Pencarian Terbaik Pertama (Best-First Search) [2]

2.4.2.4Simulated Annealing

Simulated Annealing (SA) memanfaatkan analogi cara pendinginan dan

pembekuan metal menjadi sebuah struktur Kristal dengan energy minimal.

Dengan Probabilitas tertentu SA mungkin bisa keluar dari jebakan Local

Minimum. SA menggunakan sebuah rumus probabilitas yang memungkinkannya

bisa keluar dari Local Minimum. Ketika new state tidak lebih baik dari current

state, maka new state tersebut masih mungkin dipilih dengan probabilitas sebagai

berikut [4] :

p(ΔE)=

е

-ΔE/T ...( ii )

Fungsi tersebut diadopsi dari ilmu fisika, dimana fungsi ini

(42)

sehingga didapat persamaan probabilitas dari level energi yang diberikan dalam

sistem pada temperature T [2].

Gambar 2.7. SA [2]

Pada level 1, SA memilih A meskipun nilai f-nya lebih besar daripada nilai f

pada simpul S, dengan probabilitas tertentu. Akhirnya , SA berhasil menemukan

(43)

2.5 Rekaya Perangkat Lunak

2.5.1 Pengertian Rekayasa Perangkat Lunak

Istilah Reakayasa Perangkat Lunak (RPL) secara umum disepakati sebagai

terjemahan dari istilah Software engineering. Istilah Software Engineering mulai

dipopulerkan pada tahun 1968 pada software engineering Conference yang

diselenggarakan oleh NATO. Sebagian orang mengartikan RPL hanya sebatas

pada bagaimana membuat program komputer. Padahal ada perbedaan yang

mendasar antara perangkat lunak (software) dan program komputer.

Perangkat lunak adalah seluruh perintah yang digunakan untuk memproses

informasi. Perangkat lunak dapat berupa program atau prosedur. Program adalah

kumpulan perintah yang dimengerti oleh komputer sedangkan prosedur adalah

perintah yang dibutuhkan oleh pengguna dalam memproses informasi (O‟Brien,

1999).

Pengertian RPL sendiri adalah suatu disiplin ilmu yang membahas semua

aspek produksi perangkat lunak, mulai dari tahap awal yaitu analisa kebutuhan

pengguna, menentukan spesifikasi dari kebutuhan pengguna, disain, pengkodean,

pengujian sampai pemeliharaan sistem setelah digunakan. Dari pengertian ini

jelaslah bahwa RPL tidak hanya berhubungan dengan cara pembuatan program

komputer. Pernyataan ”semua aspek produksi” pada pengertian di atas,

mempunyai arti semnua hal yang berhubungan dengan proses produksi seperti

manajemen proyek, penentuan personil, anggaran biaya, metode, jadwal, kualitas

(44)

2.5.2 Tujuan Rekayasa Perangkat Lunak

Secara umum tujuan RPL tidak berbeda dengan bidang rekayasa yang lain.

Hal ini dapat kita lihat pada Gambar di bawah ini.

Gambar 2.8. Tujuan RPL(Abran et.al., 2004).

Dari Gambar di atas dapat diartikan bahwa bidang rekayasa akan selalu

berusaha menghasilkan output yang kinerjanya tinggi, biaya rendah dan waktu

penyelesaian yang tepat. Secara lebih khusus kita dapat menyatakan tujuan RPL

adalah:

a. memperoleh biaya produksi perangkat lunak yang rendah.

b. menghasilkan pereangkat lunak yang kinerjanya tinggi, handal dan tepat

waktu.

c. menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis

platform.

(45)

2.5.3 Ruang Lingkup Rekayasa Perangkat Lunak

Ruang lingkup RPL dapat digambarkan sebagai berikut:

Gambar 2.9 Ruang lingkup RPL (Abran et.al., 2004).

- software Requirements berhubungan dengan spesifikasi kebutuhan dan

persyaratan perangkat lunak .

- software desain mencakup proses penampilan arsitektur, komponen, antar

muka, dan karakteristik lain dari perangkat lunak.

- software construction berhubungan dengan detail pengembangan

perangkat lunak, termasuk algoritma, pengkodean, pengujian dan

pencarian kesalahan.

- software testing meliputi pengujian pada keseluruhan perilaku perangkat

lunak.

- software maintenance mencakup upaya-upaya perawatan ketika perangkat

(46)

- software configuration management berhubungan dengan usaha

perubahan konfigurasi perangkat lunak untuk memenuhi kebutuhan

tertentu.

- software engineering management berkaitan dengan pengelolaan dan

pengukuran RPL, termasuk perencanaan proyek perangkat lunak

- software engineering tools and methods mencakup kajian teoritis tentang

alat bantu dan metode RPL

- software engineering process berhubungan dengan definisi, implementasi

pengukuran, pengelolaan, perubahan dan perbaikan proses RPL

- software quality menitik beratkan pada kualitas dan daur hidup perangkat

lunak

2.5.4 Rekayasa Perangkat Lunak Dan Disiplin Ilmu Lain

Cakupan ruang lingkup yang cukup luas, membuat RPL sangat terkait

dengan disiplin dengan bidang ilmu lain. tidak saja sub bidang dalam disiplin ilmu

komputer namun dengan beberapa disiplin ilmu lain diluar ilmu komputer.

Hubungan keterkaitan RPL dengan ilmu lain dapat dilihat pada gambar

(47)

Gambar 2.10. Keterkaitan RPL dengan bidang ilmu lain (Denning, 2000)

- Bidang ilmu manajemen meliputi akuntansi, finansial, pemasaran,

manajemen operasi, ekonomi, analisis kuantitatif, manajemen sumber daya

manusia, kebijakan, dan strategi bisnis

- Bidang ilmu matematika meliputi aljabar linier, kalkulus, peluang,

statistik, analisis numerik, dan matematika diskrit

- Bidang ilmu manajemen proyek meliputi semua hal yang berkaitan dengan

proyek, seperti ruang lingkup proyek, anggaran, tenaga kerja, kualitas,

manajemen resiko dan keandalan, perbaikan kualitas, dan metode-metode

kuantitatif

- Bidang ilmu ergonomika menyangkut hubungan ( interaksi) antar manusia

dengan komponen-komponen lain dalam sistem komputer

- Bidang ilmu rekayasa sistem meliputi teori sistem, analisis

(48)

2.5.5 Perkembangan Rekayasa Perangkat Lunak

Meskipun baru dicetuskan pada tahun 1968, namun RPL telah memiliki

sejarah yang cukup yang panjang. Dari sisi disiplin ilmu, RPL masih reklatif

muda dan akan terus berkembang.

Arah perkembangan yang saat ini sedang dikembangkan antara lain

meliputi :

Tabel 2.2. Perkembangan Rekayasa Perangkat Lunak

Tahun Kejadian

1940an Komputer pertama yang membolehkan pengguna

menulis kode program langsung

1950an Generasi awal interpreter dan bahasa macro Generasi

pertama compiler

1960an Generasi kedua compiler Komputer mainframe mulai

dikomersialkan Pengembangan perangkat lunak pesanan

Konsep Software Engineering mulai digunakan

1970an Perangkat pengembang perangkat lunak Perangkat

minicomputer komersial

1980an Perangkat Komputer Personal (PC) komersial

(49)

1990an Pemrograman berorientasi obyek (OOP) Agile Process

dan Extreme Programming Peningkatan drastis

kapasitas memori Peningkatan penggunaan internet

2000an Platform interpreter modern (Java, .Net, PHP, dll)

Outsourcing

2.5.6 Metode Rekayasa Perangkat Lunak

Pada rekayasa perangkat lunak, banyak model yang telah dikembangkan

untuk membantu proses pengembangan perangkat lunak. Model-model ini pada

umumnya mengacu pada model proses pengembangan sistem yang disebut

System Development Life Cycle (SDLC) seperti terlihat pada Gambar berikut ini :

(50)

- Kebutuhan terhadap definisi masalah yang jelas. Input utama dari setiap

model pengembangan perangkat lunak adalah pendefinisian masalah yang

jelas. Semakin jelas

- Tahapan-tahapan pengembangan yang teratur. Meskipun model-model

pengembangan perangkat lunak memiliki pola yang berbeda-beda,

biasanya model-model tersebut mengikuti pola umum analysis – design –

coding – testing – maintenance.

- Stakeholder berperan sangat penting dalam keseluruhan tahapan

pengembangan. Stakeholder dalam rekayasa perangkat lunak dapat berupa

pengguna, pemilik, pengembang, pemrogram dan orang-orang yang

terlibat dalam rekayasa perangkat lunak tersebut.

- Dokumentasi merupakan bagian penting dari pengembangan perangkat

lunak. Masing-masing tahapan dalam model biasanya menghasilkan

sejumlah tulisan, diagram, gambar atau bentuk-bentuk lain yang harus

didokumentasi dan merupakan bagian tak terpisahkan dari perangkat lunak

yang dihasilkan.

- Keluaran dari proses pengembangan perangkat lunak harus bernilai

ekonomis. Nilai dari sebuah perangkat lunak sebenarnya agak susah

di-rupiah-kan. Namun efek dari penggunaan perangkat lunak yang telah

dikembangkan haruslah memberi nilai tambah bagi organisasi. Hal ini

dapat berupa penurunan biaya operasi, efisiensi penggunaan sumberdaya,

peningkatan keuntungan organisasi, peningkatan “image” organisasi dan

(51)

2.5.7 Tahapan Rekayasa Perangkat Lunak

Meskipun dalam pendekatan berbeda-beda, namun model-model

pendekatan memiliki kesamaan, yaitu menggunaka pola tahapan analysis – design

– coding(construction) – testing – maintenance.

1. Analisis sistem adalah sebuah teknik pemecahan masalah yang

menguraikan sebuah sistem menjadi komponen-komponennya dengan

tujuan mempelajari seberapa bagus komponen-komponen tersebut bekerja

dan berinteraksi untuk meraih tujuan.

Analisis mungkin adalah bagian terpenting dari proses rekayasa perangkat

lunak. Karena semua proses lanjutan akan sangat bergantung pada baik

tidaknya hasil analisis. Ada satu bagian penting yang biasanya dilakukan

dalam tahapan analisis yaitu pemodelan proses bisnis.

2. Model proses adalah model yang memfokuskan pada seluruh proses di

dalam sistem yang mentransformasikan data menjadi informasi (Harris,

2003). Model proses juga menunjukkan aliran data yang masuk dan keluar

pada suatu proses. Biasanya model ini digambarkan dalam bentuk

Diagram Arus Data (Data Flow Diagram/ DFD). DFD meyajikan

gambaran apa yang manusia, proses dan prosedur lakukan untuk

mentransformasi data menjadi informasi.

3. Desain perangkat lunak adalah tugas, tahapan atau aktivitas yang

difokuskan pada spesifikasi detil dari solusi berbasis komputer. Disain

(52)

analisis sistem menekankan pada masalah bisnis (business rule), maka

sebaliknya disain perangkat lunak fokus pada sisi teknis dan implementasi

sebuah perangkat lunak.

Output utama dari tahapan disain perangkat lunak adalah spesifikasi

disain. Spesifikasi ini meliputi spesifikasi disain umum yang akan

disampaikan kepada stakeholder sistem dan spesifikasi disain rinci yang

akan digunakan pada tahap implementasi. Spesifikasi disain umum hanya

berisi gambaran umum agar stakeholder sistem mengerti akan seperti apa

perangkat lunak yang akan dibangun. Biasanya diagram USD tentang

perangkat lunak yang baru merupakan point penting dibagian ini.

Spesifikasi disain rinci atau kadang disebut disain arsitektur rinci

perangkat lunak diperlukan untuk merancang sistem sehingga memiliki

konstruksi yang baik, proses pengolahan data yang tepat dan akurat,

bernilai, memiliki aspek user friendly dan memiliki dasar-dasar untuk

pengembangan selanjutnya.

Desain arsitektur ini terdiri dari desain database, desain proses, desain

user interface yang mencakup desain input, output form dan report,

desain hardware, software dan jaringan. Desain proses merupakan

kelanjutan dari pemodelan proses yang dilakukan pada tahapan analisis.

4. Konstruksi adalah tahapan menerjemahkan hasil disain logis dan fisik ke

dalam kode-kode program komputer.

5. Pengujian sistem melibatkan semua kelompok pengguna yang telah

(53)

terhadap perangkat lunak akan berakhir ketika dirasa semua kelompok

pengguna menyatakan bisa menerima perangkat lunak tersebut

berdasarkan kriteria-kriteria yang telah ditetapkan.

6. Perawatan dan Konfigurasi. Ketika sebuah perangkat lunak telah

dianggap layak untuk dijalankan, maka tahapan baru menjadi muncul yaitu

perawatan perangkat lunak. Ada beberapa tipe perawatan yang biasa

dikenal dalam dunia perangkat lunak seperti terlihat pada diagram di

Gambar di bawah ini :

Gambar 2.12. Tipe-tipe perawatan (Whitten et al, 2004).

- Tipe perawatan corrective dilakukan jika terjadi kesalahan atau biasa

dikenal sebagai bugs. Perawatan bisa dilakukan dengan memperbaiki

kode program, menambah bagian yang dirasa perlu atau malah

menghilangkan bagian-bagian tertentu.

- Tipe perawatan routine biasa juga disebut preventive maintenance

dilakukan secara rutin untuk melihat kinerja perangkat lunak ada atau

(54)

- Tipe perawatan sistem upgrade dilakukan jika ada perubahan dari

komponen-komponen yang terlibat dalam perangkat lunak tersebut.

Sebagai contoh perubahan platform sistem operasi dari versi lama ke

versi baru menyebabkan perangkat lunak harus diupgrade.

2.6 Microsoft Visual Basic 6.0

Microsoft Visual Basic (sering disingkat sebagai VB saja) merupakan

sebuah bahasa pemrograman yang bersifat event driven dan menawarkan

Integrated Development Environment (IDE) visual untuk membuat program

aplikasi berbasis sistem operasi Microsoft Windows dengan menggunakan model

pemrograman Common Object Model (COM) [5]. .

Visual Basic merupakan turunan bahasa BASIC dan menawarkan

pengembangan aplikasi komputer berbasis grafik dengan cepat, akses ke basis

data menggunakan Data Access Objects (DAO), Remote Data Objects (RDO),

atau ActiveX Data Object (ADO), serta menawarkan pembuatan kontrol ActiveX

dan objek ActiveX. Beberapa bahasa skrip seperti Visual Basic for Applications

(VBA) dan Visual Basic Scripting Edition (VBScript), mirip seperti halnya Visual

Basic, tetapi cara kerjanya yang berbeda [5].

Para programmer dapat membangun aplikasi dengan menggunakan

komponen-komponen yang disediakan oleh Microsoft Visual Basic

Program-program yang ditulis dengan Visual Basic juga dapat menggunakan Windows API,

tapi membutuhkan deklarasi fungsi eksternal tambahan. Dalam pemrograman

(55)

survey yang dilakukan pada tahun 2005, 62% 6 pengembang perangkat lunak

dilaporkan menggunakan berbagai bentuk Visual Basic, yang diikuti oleh C++,

JavaScript, C#, dan Java.

Bill Gates, pendiri Microsoft, memulai bisnis softwarenya dengan

mengembangkan interpreter bahasa Basic untuk Altair 8800, untuk kemudian ia

ubah agar dapat berjalan di atas IBM PC dengan sistem operasi DOS.

Perkembangan berikutnya ialah diluncurkannya BASICA (basic-advanced) untuk

DOS. Setelah BASICA, Microsoft meluncurkan Microsoft QuickBasic dan

Microsoft Basic (dikenal juga sebagai Basic Compiler).

Sejarah BASIC di tangan Microsoft sebagai bahasa yang diinterpretasi

(BASICA) dan juga bahasa yang dikompilasi (BASCOM) membuat Visual Basic

diimplementasikan sebagai gabungan keduanya. Programmer yang menggunakan

Visual Basic bisa memilih kode terkompilasi atau kode yang harus diinterpretasi

sebagai hasil executable dari kode VB. Sayangnya, meskipun sudah terkompilasi

jadi bahasa mesin, DLL bernama MSVBVMxx.DLL tetap dibutuhkan. Namun

karakteristik bahasa terkompilasi tetap muncul.

Visual Basic merupakan bahasa yang mendukung OOP, namun tidak

sepenuhnya. Beberapa karakteristik obyek tidak dapat dilakukan pada Visual

Basic, seperti Inheritance tidak dapat dilakukan pada class module.

Polymorphism secara terbatas bisa dilakukan dengan mendeklarasikan class

module yang memiliki Interface tertentu. Visual Basic (VB) tidak bersifat case

(56)

Visual Basic menjadi populer karena kemudahan desain form secara visual

dan adanya kemampuan untuk menggunakan komponen-komponen ActiveX yang

dibuat oleh pihak lain. Namun komponen ActiveX memiliki masalahnya tersendiri

yang dikenal sebagai DLL hell. Pada Visual Basic .NET, Microsoft mencoba

mengatasi masalah DLL hell dengan mengubah cara penggunaan komponen

(menjadi independen terhadap registry).

(57)

44

3.1 Analisis Sistem

Analisis sistem dapat didefinisikan sebagai penguraian dari suatu sistem

informasi yang utuh kedalam bagian-bagian komponennya dengan maksud untuk

mengidentifikasi dan mengevaluasi permasalahan-permasalahan,

kesempatan-kesempatan, hambatan-hambatan yang terjadi dan kebutuhan-kebutuhan yang

diharapkan sehingga dapat diusulkan perbaikan-perbaikannya..

3.1.1 Analisis Masalah

Permasalahan ruang keadaan merupakan salah satu permasalahan yang

terdapat dalam kehidupan sehari-hari yang dipelajari dalam cabang ilmu

kecerdasan buatan. Salah satu metode penyelesaian yang diulas dalam keilmuan

kecerdasan buata yaitu metode pencarian buta denga menggunakan Breadth-first

search.

Permasalahan ini kerap dibahas secara teoritis dalam dunia pendidikan

sehingga tidak sedikit dari kalangan pelajar sulit untuk memahami langkah

penyelesaian dari permasalahan tersebut, serta dari kalangan pengajar yang

kesulitan untuk memvisualisasikan langkah penyelesaian secara simulasi

disamping langkah penyelesaian secara teoritis. Permasalahan ini juga banyak

dikupas secara teoritis, dan juga divisualisasikan ke dalam bentuk game. Namun

(58)

langkah penyelesaiannya belum tersajikan secara komputasi sistem kecerdasan

buatan, sehingga pemahaman tentang metode penyelesaian permasalahan ruang

keadaan menggunakan breadth-first search kurang terbantukan.

3.1.2 Analisis Data

3.1.2.1Data Masukan

Data masukan dari aplikasi bantu kecerdasan buatan pembelajaran dan

penyelesaian pada permasalahan ruang keadaan yang digunakan terdiri dari data teori

dan materi pembelajaran, data Problem, data Variabel, data Control. Rincian data di

atas adalah sebagai berikut:

- Data teori dan materi pembelajaran merupakan data-data mengenai

pembelajaran serta pemahaman langkah peyelesaian secara teoritis. Data

ini merupakan data statis yang tidak dapat dirubah oleh user.

- Data Problem merupakan data permasalahan yang akan diselesaikan dan

disimulasikan. Problem yang akan dikaji yaitu permasalahan farmer

problems yang merupakan salah satu kasus dalam permasalahan ruang

keadaan (State and Space). Data problem ini akan dimodifikasi sesuai

dengan data masukan dari user, tentunya problem yang memiliki

kemiripan pola dan prosedur kasus yang akan diselesaikan yaitu farmer

problem, seperti cannibal missionaries, family problems.

- Data Variabel merupakan pendefinisian dari variabel apa saja yang terlibat

dalam problem.

- Data Control yaitu merupakan strategi kontrol apa saja yang harus

(59)

3.1.2.2Analisis Metode Penyelesaian

1.Searching

Masalah utama dalam membangun sistem berbasis AI adalah bagaimana

mengkonversi situasi yang diberikan ke dalam situasi lain yang

diinginkan menggunakan sekumpulan operasi tertentu, sehingga

permasalahan ruang keadaan dapat diselesaikan.

Salah satu contoh permasalahan ruang keadaan yang dibahas adalah

masalah petani, kambing, serigala dan sayur-sayuran yang sering juga

disebut dengan Farmer’s Problem. Ilustrasi dari permasalahan ini adalah

sebagai berikut, seorang petani akan menyeberangkan seekor kambing,

seekor serigala dan sayur-sayuran dengan sebuah rakit melalui sungai.

Rakit hanya bisa memuat petani dan satu penumpang yang lain

(kambing, serigala atau sayur-sayuran). Jika ditinggalkan oleh petani

tersebut, maka sayur-sayuran akan dimakan oleh kambing dan kambing

akan dimakan oleh serigala.

Untuk dapat menyelesaikan permasalahan diatas diperlukan tiga langkah

berikut :

a. Definisikan ruang masalah, keadaan awal (initial state) dan

keadaan tujuan (goal state).

Setiap keadaan dari Farmer’s Problem dapat direpresentasikan

(60)

Keadaan awal dan keadaan tujuan dapat direpresentasikan sebagai

berikut :

1) Keadaan awal (start state):

a) Daerah kiri = (1,1,1,1).

b) Daerah kanan = (0,0,0,0)

c) Posisi rakit berada di kiri.

Artinya, terdapat kambing, petani, serigala dan sayur-sayuran di

daerah kiri.

2) Keadaan tujuan (goal state):

a) Daerah kiri = (0,0,0,0).

b) Daerah kanan = (1,1,1,1)

c) Posisi rakit berada di kanan.

Artinya, terdapat kambing, petani, serigala dan sayur-sayuran di

daerah kanan.

b. Definisikan aturan produksi

Setelah keadaan awal dan keadaan tujuan sudah didefinisikan pada

langkah pertama, langkah kedua yaitu mendefinisikan aturan

produksi yang berlaku, mendefinisikan Variabel, Aturan (rule), dan

strategi kontrol.

Tabel 3.1. Variabel Farmer’s Problem

Variabel ID Nama Variabel Bisa mengemudikan rakit

(Driver)

(61)

P Petani Ya

SR Serigala Tidak

SY Sayur-sayuran Tidak

Tabel 3.2. Control Farmer’s Problem

No Control

1 Kambing akan memakan sayur-sayuran apabila Petani tidak berada di tempat.

2 Serigala akan memakan Kambing apabila Petani tidak berada di tempat.

Dari variabel dan control yang terdapat pada Farmer’s Problem, kita

dapat menyimpulkan aksi-aksi apa saja yang dapat dilakukan dengan

tetap mematuhi kontrol yang ada. Aksi-aksi yang dapat dilakukan

dapat dilihat pada Tabel 3.3.

Tabel 3.3. Tabel Aksi-aksi yang dapat terjadi pada Farmer’s Problem

Aksi ke- Aturan

1 Petani dan kambing menyeberang.

2 Petani dan serigala menyeberang.

3 Petani dan sayur-sayuran menyeberang.

4 Petani dan kambing kembali.

5 Petani dan serigala kembali.

6 Petani dan sayur-sayuran kembali.

(62)

Pencarian solusi dari permasalahan di atas adalah dengan

menggunakan bantuan pohon pelacakan dengan penjelasan sebagai

berikut :

1. Akar dari pohon merupakan keadaan awal.

2. Akar pohon kemudian membentuk cabang-cabang baru dengan

melakukan semua aksi-aksi yang dapat terjadi pada keadaan awal.

3. Keadaan-keadaan baru yang dihasilkan merupakan cabang baru

dari pohon.

4. Proses pengembangan dan pencarian dilanjutkan dengan

membentuk keadaan baru (cabang baru) dari cabang-cabang yang

sudah ada hingga didapatkan solusi.

5. Proses pembentukan keadaan baru juga melakukan prosedur

pengecekan apakah keadaan tersebut sudah pernah dibentuk

sebelumnya pada pohon.

6. Apabila sudah ada, maka cabang baru tidak dibentuk dan apabila

tidak, maka cabang baru dibentuk.

7. Apabila tidak ada cabang yang dapat dikembangkan lagi dan

ternyata belum ditemukan solusi, maka permasalahan yang

sedang diselesaikan tidak memiliki solusi.

c. Memilih metode pencarian yang tepat

Metode pencarian yang dipergunakan yaitu metode pencarian buta

(63)

2.Metode Breadth-First Search (BFS)

Metode pencarian Breadth-First Search (BFS) dipilih karena memiliki

kelebihan menemukan solusi dan solusi yang diambil yaitu solusi

minimum yang terpendek.

Berikut ini merupakan struktur pohon pelacakan untuk mencari solusi

Gambar

Gambar 2.8. Tujuan RPL(Abran et.al., 2004).
Tabel 2.2. Perkembangan Rekayasa Perangkat Lunak
Tabel 3.3. Tabel Aksi-aksi yang dapat terjadi pada Farmer’s Problem
Gambar 3.1. Struktur pohon pelacakan solusi 1 untuk Farmer’s Problem
+7

Referensi

Dokumen terkait

Berdasarkan hasil pengujian fungsional dapat disimpulkan bahwa perangkat lunak Backend Dodo Kids Browser sudah dapat membantu aplikasi Dodo Kids Browser dalam

Produknya adalah sebuah perangkat lunak berbasis desktop yang mudah digunakan, dapat membantu dalam pembelajaran bahasa Inggris yang mudah dimengerti, sehingga

Kesimpulan yang dapat diambil dari pembahasan ini adalah telah dibangun sebuah aplikasi perangkat lunak inventarisasi yang mampu memfasilitasi petugas admin kantor untuk

Perangkat lunak yang dibangun pada tugas akhir ini adalah sebuah program yang dapat membuka aplikasi pada komputer menggunakan perintah suara ( voice command

Perangkat lunak hasil dari penelitian ini diharapkan dapat membantu siswa SMK N 1 Bantul kompetensi keahlian Teknik Komputer dan Jaringan untuk memahami materi

Dari penelitian yang dilakukan menghasilkan sebuah perangkat lunak aplikasi pembelajaran sentra persiapan untuk pendidikan anak usia dini berbasis android yang dapat digunakan

Bila dikaitkan dengan konsep sistem pakar bahwa pengetahuan para ahli atau pakar dapat disimpan dalam komputer sebagai sebuah aplikasi dan kemudian bisa diterapkan

3 Pada penelitian ini diterapkan sebuah aplikasi perangkat lunak yang dapat menyisipkan teks dengan konsep steganografi menggunakan metode LSB dan enkripsi