bab 2 tinjauan pustaka 2.1 landasan teorilibrary.binus.ac.id/ecolls/ethesisdoc/bab2/2013-1-01026-if...
TRANSCRIPT
8
BAB 2
TINJAUAN PUSTAKA
2.1 Landasan Teori
Pada pembuatan skripsi ini, penulis menggunakan teori-teori yang
bermanfaat dalam perancangan aplikasi diantaranya adalah pengertian
artificial intelligence atau kecerdasan buatan, pengertian expert system atau
sistem pakar, metode forward-chaining, sistem operasi Android, dan hal-hal
yang terkait dalam dalam penulisan skripsi ini.
2.1.1 Perangkat Lunak
2.1.1.1 Definisi Perangkat Lunak
Menurut Pressman (2010, p4), definisi dari perangkat
lunak dapat diartikan sebagai berikut:
1. Instruksi (program komputer) saat dieksekusi dapat
menyediakan features, fungsi, dan performa yang
sesuai dan diinginkan oleh pengguna.
2. Struktur data yang memungkinkan sebuah program
dapat memanipulasi informasi dengan baik.
3. Informasi deskriptif berupa hard copy dan bentuk
virtual yang dapat menggambarkan operasi dan
kegunaan dari suatu program.
2.1.1.2 Karakteristik Perangkat Lunak
Karakteristik perangkat lunak menurut Pressman
(2010, p4), jauh berbeda bila dibandingkan dengan perangkat
9
keras. Karakteristik yang dimiliki perangkat lunak sebagai
berikut:
1. Perangkat lunak dapat dikembangkan dan direkayasa,
tidak di produksi dalam pengertian klasik.
2. Perangkat lunak tidak pernah kadaluwarsa.
3. Meskipun industri-industri melakukan perakitan
berbasis komponen, hampir semua perangkat lunak
tetap dibangun secara tradisional.
2.1.2 Rekayasa Perangkat Lunak
2.1.2.1 Definisi Rekayasa Perangkat Lunak
Menurut Fritz Bauer [NAU69], rekayasa perangkat
lunak adalah pembuatan dan penggunaan prinsip-prinsip
rekayasa untuk memperoleh perangkat lunak yang ekonomis
dan dapat bekerja secara efisien dan handal pada suatu
komputer.
IEEE [IEE93a] mengembangkan definisi rekayasa
perangkat lunak menjadi lebih komprehensif, definisi rekayasa
perangkat lunak adalah sebuah studi dan aplikasi dari sebuah
penerapan kuantifiabel secara sistematis, disiplin, dan
sistematis terhadap pengembangan, operasi dan pemeliharaan
perangkat lunak yang merupakan aplikasi rekayasa berkaitan
dengan semua perangkat lunak.
Pressman (2010, p14) memberikan definisi rekayasa
perangkat lunak menjadi beberapa lapisan yang terdiri dari:
1. Fokus pada kualitas (A quality focus)
Setiap pendekatan rekayasa (termasuk rekayasa
perangkat lunak) harus memiliki komitmen terhadap
kualitas produk yang dihasilkan. Budaya inilah yang
10
dapat mendukung rekayasa perangkat lunak adalah
focus pada kualitas.
2. Proses (Process)
Dasar dari rekayasa perangkat lunak adalah lapisan
proses. Proses mendefinisikan framework untuk suatu
Key Process Areas (KPAs) yang harus dibentuk untuk
melakukan pengiriman teknologi rekayasa perangkat
lunak agar berjalan efektif.
3. Metode (Method)
Pada lapisan metode menerangkan secara teknis
bagaimana cara membangun perangkat lunak. Metode
ini memiliki tahapan yang mencakup analisis
kebutuhan (requirement analysis), desain (design),
pembuatan program (program construction), pengujian
(testing), dan pemeliharaan perangkat lunak
(maintenance).
4. Alat (Tools)
Alat dalam rekayasa perangkat lunak memberikan
otomatis dan semi-otomatis dalam proses dan metode.
Sebuah sistem untuk mendukung dalam pengembangan
perangkat lunak disebut Computer-Aided Software
Engineering (CASE). Case dapat menggabungkan
perangkat lunak, perangkat keras dan database untuk
membangun lingkungan rekayasa perangkat lunak
dengan CAD/CAE (Computer-Aided Design/
Engineering) untuk perangkat keras.
11
Gambar 2.1: Lapisan Rekayasa Perangkat Lunak
2.1.2.2 Kerangka Proses (A Process Framework)
Sebuah kerangka proses menetapkan dasar untuk
rekayasa perangkat lunak secara lengkap. Proses dilakukan
dengan mengidentifikasi sejumlah kecil aktifitas framework
yang berlaku untuk semua proyek perangkat lunak, tanpa
memperhatikan ukuran maupun kompleksitasnya. Selain itu,
kerangka proses mencakup serangkaian kegiatan umbrella
activities yang berlaku pada proses perangkat lunak secara
keseluruhan. Sebuah kerangka proses generic untuk rekayasa
perangkat lunak meliputi lima kegiatan:
1. Komunikasi (Communication)
Pada kerangka kerja ini, melibatkan komunikasi dan
kolaborasi dengan pelanggan (dan stackholder lain
nya). Tujuan dari komunikasi ini adalah memahami
tujuan dari stackholder dan mengumpulkan
persyaratan yang membantu mendefinisikan features
dan fungsi dari perangkat lunak.
2. Perencanaan (Planning)
Pada kerangka kerja ini, perencanaan digunakan untuk
mendefinisikan pekerjaan rekayasa perangkat lunak
dengan menjelaskan tugas-tugas teknis yang akan
dilakukan, risiko yang mungkin terjadi, sumber daya
yang akan diperlukan, hasil produk kerja, dan jadwal
kerja.
aa ““qquuaalliittyy”” ffooccuuss
pprroocceessss mmooddeell mmeetthhooddss
ttoooollss
12
3. Pemodelan (Modelling)
Pada kerangka kerja ini, tentang pembuatan model
yang memungkinkan pengembang (developer) dan
client untuk lebih memahami kebutuhan perangkat
lunak (software requirement) dan desain untuk
mencapai atau memenuhi requirement tersebut.
4. Konstruksi (Construction)
Pada kerangka kerja ini, menggabungkan coding (baik
manual maupun otomatis) dan melakukan pengujian
(testing) yang diperlukan untuk mengungkap kesalahan
dalam kode.
5. Deployment
Perangkat lunak (sebagai entitas lengkap atau selesai
sebagian) diberikan kepada client dimana client yang
akan mengevaluasi dan memberikan umpan balik
hasil evaluasi tersebut.
2.1.2.3 Model Proses Air Terjun
Menurut Pressman (2010, p39), model proses air terjun
(the waterfall process model) sering disebut juga dengan
classic life cycle, menawarkan pendekatan yang sistematis
dan sekuensial. Untuk pengembangan perangkat lunak diawali
dengan pengumpulan spesifikasi pelanggan (requirement), lalu
ke proses perencanaan (planning), pemodelan (modelling),
konstruksi (construction) dan penyebaran (deployment) secara
bertahap hingga perangkat lunak selesai.
13
Gambar 2.2: Model Proses Waterfall
2.1.2.4 Unified Modeling Language (UML)
Unified Modeling Language (UML) adalah bahasa
standar yang digunakan untuk menulis blueprint dalam
pembuatan perangkat lunak. UML dapat digunakan untuk
memvisualisasikan, menentukan, membangun, dan
mendokumentasikan artefak dari sebuah sistem perangkat
lunak secara intensif. Seperti seorang arsitek, mereka membuat
blueprint pembangunan yang digunakan untuk melakukan
konstruksi bangunan, sedangkan pembuat perangkat lunak
membuat UML untuk membantu pengembang perangkat lunak
agar dapat mengembangkan perangkat lunak tersebut. Jika
anda memahami UML, maka anda dapat dengan mudah
mengerti dan dapat menentukan sistem dan menjelaskan
desain sistem suatu perangkat lunak kepada orang lain. UML
2.0 menyediakan 13 diagram yang berbeda untuk digunakan
dalam pemodelan perangkat lunak. UML juga menyediakan
pilihan-pilihan sehingga anda dapat mengungkapkan aspek-
aspek penting yang ada di sebuah sistem. Anda akan memiliki
fleksibilitas untuk menekan bagian dari diagram yang tidak
relevan dengan aspek yang dimodelkan dalam rangka untuk
menghindari kekacauan diagram dengan rician yang tidak
relevan.
Sejarah UML cukup panjang. Pada tahun 1990 terdapat
puluhan metodologi pemodelan berorientasi objek telah
bermunculan. Metodologi tersebut diantaranaya adalah:
metodologi Booch, metodologi Coad, metodologi OOSE,
metodologi OMT, metodologi Shlaer-Mellor, metodologi
Wirfs-Brock, dan lain-lain. Pada saat itu, terkenal dengan masa
perang metodologi (method war) dalam bidang desain
metodologi berorientasi objek. Setiap metodologi memiliki
14
notasi yang berbeda, dan mengakibatkan timbulnya masalah
baru apabila kita melakukan kerja sama dengan suatu
grup/perusahaan lain yang menggunakan metodologi yang
berbeda.
Gambar 2.3: Metodologi UML
Pada bulan Oktober 1994 Booch, Rumbaugh dan
Jacobson menjadi pelopor usaha untuk menyatukan
metodologi desain berorientasi objek. Pada tahun 1995 UML
pertama di release dengan versi 0.8. Sejak tahun 1996
pengembangan dikoordinasikan oleh Object Management
Group (OMG), dan pada tahun 1997 muncul UML dengan
versi 1.1. Bulan Maret 2003 muncul UML versi 1.5 menjadi
versi terbaru hingga saat ini.
Object Management Group (OMG) merupakan
organisasi international yang dibentuk pada tahun 1989, yang
memiliki lebih dari 800 anggota, terdiri dari perusahaan sistem
informasi, software developer, dan pengguna sistem komputer.
Organisasi ini bertugas membuat spesifikasi “manajemen
objek” untuk menetapkan kerangka bersama dalam rekayasa
perangkat lunak.
Tujuan dari OMG adalah membantu mengembangkan
teknologi orientasi objek dan mengarahkannya dengan
15
mendirikan Object Management Architecture (OMA). OMA
bertugas untuk menentukan infrastruktur konseptual yang
didasarkan pada seluruh spesifikasi dari OMG, setelah itu
OMG akan mengeluarkan UML. Dengan adanya UML,
diharapkan dapat mengurangi kekacauan dalam bahasa
pemodelan selama ini. UML juga dapat menjawab masalah
penotasian dan mekanisme penukaran model yang terjadi.
2.1.2.5 Activity Diagram
Activity diagram seperti diagram state, merupakan
diagram yang dapat digunakan untuk memahami alur kerja
dari objek/komponen yang dilakukan. Activity diagram dapat
digunakan untuk memvisualisasikan interelasi dan interaksi
antara use case yang berbeda, serta sering dipakai untuk
mengasosiasikan dengan class yang berbeda. Kekuatan
diagram activity adalah mempresentasikan concurrent activity.
Activity diagram merupakan state diagram khusus,
dimana sebagian besar state adalah action dan sebagian besar
transisi di-trigger saat state sebelumnya selesai (internal
processing). Oleh karena itu activity diagram tidak
menggambarkan perilaku internal sebuah sistem dan interaksi
antar subsistem secara eksak, tetapi lebih menggambarkan
proses-proses dan jalur-jalur aktivitas dari level atas secara
umum. Sebuah aktivitas dapat direalisasikan oleh satu use case
atau lebih. Aktivitas menggambarkan proses yang berjalan,
sementara use case menggambarkan bagaimana aktor
menggunakan sistem untuk melakukan aktivitas.
Sama dengan flowchart, activity diagram
menggunakan bentuk kotak yang agak bundar digunakan
untuk menampilkan fungsi, garis panah untuk menampilkan
16
arah jalannya sistem, bentuk diamond untuk menampilkan
cabang pilihan, dan garis lurus digunakan untuk menunjukkan
aktivitas yang terjadi secara paralel.
2.1.2.6 Use-Case Diagrams
Use-Case Diagrams merupakan salah satu bentuk dari
diagram UML yang dihasilkan dari analisis use-case dan
bertujuan untuk memberi gambaran secara umum tentang
keseluruhan fungsionalitas suatu sistem dengan adanya aktor,
aktivitas, dan ketergantungan. Interaksi antar setiap pelaku
tidak ditampilkan pada diagram use-case. Jika interaksi
penting untuk mendeskripsikan perilaku yang di inginkan,
maka sistem atau batas use-case harus diperiksa kembali dan
interaksi antara pelaku dapat menjadi bagian dari use-case
tersebut. Blok pada use-case diagrams yang digunakan antara
lain:
1. Blok use-case
Sebuah use-case menggambarkan suatu urutan
tindakan yang dapat memberikan sesuatu yang bernilai
terukur untuk aktor dan digambarkan dengan bentuk
elips.
2. Aktor
Aktor merupakan orang, organisasi, pelaku, atau sistem
eksternal yang memiliki satu atau lebih interaksi
dengan sistem.
3. Blok batasan sistem
Blok batasan sistem digunakan untuk menunjukkan
ruang lingkup sebuah sistem. Semua bagian yang ada
di dalam blok mewakili fungsi yang ada di dalam
lingkup sistem.
Aktor Use case
17
Tabel 2.1: Use-Case Diagrams
2.1.2.7 Sequence Diagrams
Sequence Diagrams adalah diagram yang
menunjukkan urutan dari pertukaran pesan antar objek, tugas
yang dilakukan dan merupakan diagram yang menjelaskan
urutan kejadian dari sebuah sistem (Timoty C, 2002).
Sequence Diagrams biasa digunakan untuk
menggambarkan skenario atau rangkaian langkah-langkah
yang dilakukan sebagai respon dari sebuah event untuk
menghasilkan sebuah output tertentu. Diawali dari aktivitas
apa yang dijalankan, proses dan perubahan apa saja yang
terjadi secara internal dan output apa yang dihasilkan.
Objek-objek yang memiliki sifat khusus, standar
UML mendefinisikan icon khusus untuk objek boundary,
controller dan persistent entity.
Gambar 2.4: Sequence Diagrams
18
2.1.3 Kecerdasan Buatan
Kecerdasan buatan atau sering dikenal dengan Artificial
Intelligence merupakan sebuah bidang di dunia teknologi modern.
Menurut Robert I. Levine, Diane Drang, dan Barry Edelson(1991, p3)
Kecerdasan buatan secara sederhana merupakan cara membuat
komputer berpikir cerdas layaknya manusia. Hal ini dapat
diimplementasikan dengan pembelajaran cara manusia berpikir untuk
membuat pilihan dan memecahkan masalah.
2.1.3.1 Pengertian Kecerdasan Buatan
Menurut Stuart Russell dan Peter Norvig (2010, p2)
Kecerdasan buatan dapat dibagi menjadi 4 pendekatan, yaitu :
1. Think Humanly (berpikir layaknya manusia),
otomatisasi dari aktifitas yang kita hubungkan dengan
pemikiran manusia, seperti membuat keputusan,
pemecahan masalah, dan pembelajaran
(Bellman,1978).
2. Think Rationally (berpikir secara rasional), Sebuah
pembelajaran mengenai komputasi yang
memungkinkan untuk mempersepsikan, membuat
alasan, dan melakukan tindakan secara rasional.
(Winston, 1992)
3. Acting Humanly (bertindak layaknya manusia), Sebuah
pembelajaran tentang bagaimana membuat komputer
dapat melakukan tugas layaknya manusia. (Rich and
Knight,1991)
19
4. Acting Rationally (bertindak secara rasional),
berhubungan dengan kecerdasan manusia.
(Nilsson,1998)
Dalam kecerdasan buatan, dapat kita ketahui bahwa
untuk melakukan pekerjaan yang rumit, banyak yang harus
dikerjakan. Dibutuhkan beberapa kemampuan-kemampuan
seperti :
1. Natural Languange Processing digunakan untuk
mengerti dan memahami bahasa manusia dan
kemudian di lakukan pemrosesan di dalam sebuah
aplikasi.
2. Knowledge Representation untuk menampung
pengetahuan dari manusia yang di simpan dalam
sebuah database.
3. Automated Reasoning untuk menggunakan informasi
yang tertampung untuk menjawab pertanyaan-
pertanyaan dan menarik sebuah kesimpulan baru.
4. Machine Learning untuk beradaptasi dengan
lingkungan baru dan mendeteksi serta memprediksi
kemungkinan-kemungkinan.
2.1.3.2 Latar Belakang Kecerdasan Buatan
Menurut Stuart Russell dan Peter Norvig (2010)
Temuan pertama yang diakui sebagai Artificial Intellingence
dibuat oleh Warren McCulloch dan Walter Pitts (1943).
Mereka menggunakan tiga sumber: Pengetahuan dasar
fisiologi dan fungsi neuron pada otak; analisis logis
proporsional berdasarkan Russell dan Whitehead; dan
komputasi Turing. Mereka mengajukan sebuah model dari
neuron buatan dimana tiap neuron di karakteristikan saling
20
terkait sesuai dengan respon dari beberapa neuron lainnya.
Sebagai contoh, Apa pun fungsi yang dapat terkomputasi
dapat dihitung dengan menggunakan jaringan dari neuron–
neuron yang saling terhubung, dan semua logika yang di
gunakan saling berhubungan (seperti contoh: and, or, not )
dapat diimplementasikan dengan struktur jaringan sederhana
atau Simple Net Structure. Pada tahun 1949, Donald Hebb
mendemonstrasikan aturan sederhana untuk merubah kekuatan
hubungan antar neuron yang sampai saat ini kita dengan
pembelajaran Hebbian atau Hebbian learning. Lalu pada tahun
1956, John McCarthy tertarik degnan teori automata, neural
nets atau jaringan neural, dan pembelajaran tentang
kecerdasan. John McCarthy berupaya untuk mencari cara
menciptakan sebuah mesin yang dapat menggunakan bahasa
manusia, membuat abstraksi dan konsep, memecahkan
masalah yang pada saat itu hanya dapat dipecahkan oleh
manusia, dan meningkatkan kecerdasan nya sendiri. Dengan
konsep yang dicetuskan muncul sebuah teori bahwa
kecerdasan buatan tidak hanya dapat memecahkan masalah
yang berhubungan dengan angka atau aritmatika saja, namun
dapat memecahkan masalah layaknya manusia. Dengan
muncul nya beragam konsep baru pada jaman tersebut
muncullah sebuah pemikiran bahwa perlunya kecerdasan
buatan untuk dibuat menjadi sebuah bidang khusus.
Yang membedakan antara sebuah program yang
terintegrasi dengan kecerdasan buatan dengan program biasa
adalah program biasa hanya memberikan hasil tanpa adanya
diagnosis yang lebih dalam. Sedangkan program yang
terintegrasi dengan kecerdasan buatan dapat menimbang dan
memberikan solusi terbaik sesuai dengan aturan yang sudah
ditentukan, sehingga jawaban atau hasil yang didapat oleh
pengguna akan berbeda satu sama lain sesuai dengan kondisi
pengguna.
21
Terdapat beberapa bidang kecerdasan buatan yang
sering dikenal oleh masyarakat luas, antara lain :
1. Sistem Pakar atau Expert System merupakan
kecerdasan buatan yang dapat memproses pilihan dan
memecahkan masalah layaknya seorang pakar.
2. Computer Vision merupakan kecerdasan buatan untuk
membuat komputer dapat melihat benda dan dapat
membedakan bentuk seperti mata pada manusia.
3. Natural Language Processing merupakan kecerdasan
buatan untuk memproses bahasa manusia sehingga
komputer dapat berinteraksi dengan manusia layaknya
percakapan normal.
4. Speech Recognition merupakan kecerdasaan buatan
untuk memproses pembicaraan manusia.
5. Neuro Computing merupakan bidang kecerdasan
buatan untuk membuat komputer dapat berpikir dan
belajar dari pilihan atau jawaban yang sudah pernah
dilakukan untuk meningkatkan ketepatan dalam
memecahkan masalah.
6. Robotics meurpakan kecerdasan buatan untuk suatu
komputer yang diberi sensor untuk dapat meniru
layaknya manusia.
7. Theorm Proving Merupakan metode untuk
membuktikan atau memverifikasi sistem model.
22
Gambar 2.5: Ruang Lingkup Kecerdasan Buatan
2.1.4 Sistem Pakar
Menurut Joseph Giarratano dan Gary Riley(1998, p2), Sistem
Pakar adalah sebuah cabang dari Artificial Intelligence yang
menggunakan perpanjangan dari pengetahuan secara khusus untuk
memecahkan masalah yang bisa dipecahkan oleh seorang pakar.
Seorang pakar adalah seseorang yang memiliki keahlian di satu
bidang. Seorang pakar dapat memecahkan suatu masalah dimana
kebanyakan orang tidak memecahkan masalah tersebut dan juga dapat
memecahkan masalah tersebut dengan lebih efisien. Pengetahuan
yang digunakan pada sistem pakar bisa berasal dari keahlian
seseorang ataupun pengetahuan umum yang didapat dari buku dan
majalah.
23
Gambar 2.6: Proses Sistem Pakar
Gambar di atas menunjukkan konsep dari sistem pakar
berbasis pengetahuan. User memberikan fakta - fakta serta informasi
lain kepada sistem, dan menerima pemecahannya sebagai gantinya.
Secara internal, Sistem pakar terdiri dari dua komponen utama.
Knowledge base berisi pengetahuan, sedangkan inference engine
menarik kesimpulan. Kesimpulan ini merupakan respon dari sistem
pakar untuk pertanyaan- pertanyaan yang diberikan oleh user.
Pengetahuan dari sebuah sistem pakar dapat ditampilkan
dengan berbagai cara, dapat dikemas aturan - aturan dan objek. Salah
satu metode yang sering digunakan dalam menampilkan knowledge
adalah dalam bentuk aturan if-then, seperti yang paling sederhana
adalah, "Jika lampu merah maka kita harus berhenti". Jika fakta
bahwa muncul lampu merah terjadi, maka rule terpenuhi dan akan
melakukan action berhenti.
Sistem pakar berbeda dengan program lainnya, karena
masalah - masalah yang terjadi biasanya tidak memiliki solusi - solusi
pasti dan bergantung pada keputusan pakar agar mendapatkan solusi
yang masuk akal. Perlu diingat bahwa solusi yang diambil merupakan
yang terbaik yang dapat kita harapkan jika tidak memiliki algoritma
yang mampu membantu kita untuk mendapatkan hasil yang optimal.
24
Sebuah sistem pakar biasanya didesain untuk mempunyai
karakteristik - karakteristik sebagai berikut:
1. Memiliki peforrma tinggi
Kualitas dari nasihat yang diberikan oleh sistem pakar harus
berada di dalam tingkat yang sangat tinggi.
2. Waktu respon yang memadai
Sistem pakar harus dapat merespon dengan jumlah waktu yang
masuk akal, sebanding atau lebih baik dari waktu yang
dibutuhkan seorang pakar untuk mencapai sebuah keputusan.
3. Dapat diandalkan
Sistem pakar harus dapat diandalkan dan tidak mudah untuk
mengalami crash yang bisa membuatnya tidak terpakai.
4. Mudah untuk dimengerti
Sistem pakar harus bisa dijelaskan langkah - langkahnya untuk
tiap langkah yang diambil sehingga membuatnya dapat
dipahami.
5. Fleksibilitas
Sebuah sistem pakar akan menyimpan knowledge dari pakar
dalam jumlah besar, maka sangatlah penting untuk
mempunyai mekanisme yang efisien untuk menambah,
mengurangi, dan mengganti knowledge tersebut.
2.1.4.1 Chain
Kumpulan dari keputusan - keputusan yang
menghubungkan sebuah masalah dengan solusinya, disebut
juga dengan chain. Sebuah chain yang metode nya menelusuri
dari sebuah masalah lalu ke solusinya adalah forward chain.
Cara lain untuk menjelaskan forward chain adalah
pengambilan keputusan dari fakta - fakta yang ada menjadi
sebuah kesimpulan. Sedangkan, sebuah chain yang ditelusuri
dari hipotesa nya lalu dilihat kembali ke fakta - fakta yang ada
disebut juga dengan backward chain. Ada sebuah ilustrasi
untuk membuat kita lebih mengerti konsep mengenai forward
25
dan backward chain ini. Suatu hari, Budi sedang
mengemudikan mobilnya dan tiba - tiba datanglah seorang
polisi mengendarai motor dengan keadaan sirinenya sedang
menyala berada di belakang mobil Budi. Melalui forward
chaining, kita bisa mengambil kesimpulan bahwa polisi
tersebut ingin memberhentikan mobil Budi ataupun orang lain.
Fakta munculnya polisi, mendukung dua kemungkinan
kesimpulan tersebut. Jika pada akhirnya polisi memotong jalan
atau melambaikan tangannya ke arah Budi, kesimpulan
selanjutnya yang dapat diambil adalah, polisi tersebut ingin
memberhentikan kita ketimbang orang lain. Berdasarkan cara
kerja hipotesis ini, kita dapat mengatakan bahwa ini termasuk
backward chaining untuk mempertanyakan kenapa itu terjadi.
Berikut ini adalah perbedaan karakteristik antara
Forward Chaining dan Backward Chaining:
Forward Chaining Backward Chaining
Perencanaan,Pengotrolan Pendiagnosaan
Kejadian sekarang ke kejadian
masa depan
Kejadian sekarang ke kejadian
masa lalu
Melihat dari penyebab ke akibat Melihat dari akibat ke
penyebab
Bottom-up reasoning Top-down reasoning
Bergerak maju untuk mencari
solusi dari fakta - fakta yang
dimiliki
Bergerak mundur untuk
mencari fakta - fakta yang
mendukung hipotesa.
Breadth-first search Depth first search
Tidak terdapat penjelasan Ada penjelasan
Tabel 2.2: Perbedaan Forward dan Backward Chaining
26
2.1.4.2 Forward-Chaining
Seperti disebutkan sebelumnya, forward-chaining
merupakan metode penelusuran yang menelusuri
permasalahannya terlebih dahulu lalu kemudian didapatkanlah
kesimpulan. Forward-chaining yang baik memiliki ciri - ciri
tree-nya lebar dan tidak terlalu mendalam dikarenakan
forward-chaining menggunakan metode pencarian breadth -
first.
Gambar 2.7: Tree Forward Chaining
Sebagai contoh dari pemakaian forward chaining, kita
akan mengambil sebuah kasus dimana kita ingin mencari
kesimpulan warna dari sebuah celana panjang. Diberikan
aturan dasar terdiri dari 4 aturan if-then sebagai berikut :
1. Jika Y terbuat dari bahan jeans maka Y adalah celana
panjang
2. Jika Y terbuat dari bahan katun maka Y adalah celana
pendek
3. Jika Y adalah celana panjang maka Then Y berwarna
hitam
4. Jika Y adalah celana pendek maka Y berwarna coklat
Pada contoh kasus diatas, "jika Y terbuat dari bahan
27
jeans" direpresentasikan sebagai antecendent, sedangkan
"Maka Y berwarna hitam" direpresentasikan sebagai
consequent. Sehingga dari aturan diatas, didapatkan bahwa
celana panjang memiliki warna hitam.
2.1.4.3 Backward-Chaining
Menurut Joseph Giarattano dan Gary Riley(1998,p143)
backward-chaining merupakan metode penelusuran yang
dimulai dari hipotesis lalu kemudian dicari fakta-fakta
pendukung dari hipotesa tersebut. Backward-chaining
merupakan metode yang berlawanan dengan forward-
chaining, karena metode ini menggunakan Depth first search.
Bentuk tree yang tepat untuk backward-chaining adalah
menyempit dan mendalam.
Gambar 2.8: Tree Backward Chaining
Kita gunakan contoh berupa kasus untuk menentukan
apakah Bob adalah seekor anjing menggunakan metode
backward chaining. Diberikan aturan dasar :
1. Jika X menggongong dan makan tulang maka X adalah
seekor anjing.
2. Jika X mengeong dan makan ikan maka X adalah
seekor kucing.
3. Jika X adalah seekor anjing maka X berwarna hitam.
28
4. JIka X adalah seekor kucing maka X berwarna putih.
Mari kita ilustrasikan backward chaining dengan
mengikuti pola dari sebuah komputer untuk mengevaluasi
aturan - aturan. Kita asumsikan fakta - fakta yang ada:
1. Bob menggongong
2. Bob makan tulang
3. Emy makan ikan
4. Emy mengeong
5. Emy berwarna putih
Dengan backward chaining, komputer dapat menjawab
pertanyaan ,"yang mana anjing?" dengan 4 langkah. Dalam
pemikirannya, komputer menggunakan pengumpamaan (disini
kita pakai simbol "?").
1. ? adalah seekor anjing.
berdasarkan aturan no. 1 , komputer dapat mengambil
kesimpulan :
2. ? menggongong dan makan tulang.
berdasarkan logika, komputer dapat mengambil
kesimpulan :
3. ? menggongong dan ? makan tulang.
berdasarkan fakta, komputer dapat mengambil
kesimpulan :
Bob menggongong dan Bob makan tulang.
Maka dapat disimpulkan bahwa Bob adalah seekor
anjing.
2.1.5 Sistem Operasi Android
Menurut Frank Ableson (2009) Android merupakan sebuah
sistem operasi open source yang lengkap berbasiskan pada Linux®
V2.6 kernel. Pada mulanya, target atau pangsa pasar dari Android
hanya meliputi telepon genggam saja seperti smartphone atau telepon
pintar, dan telepon genggam murah saja. Namun karena luasnya
29
pengembangan yang diberikan dan kaya akan fitur membuat Android
memiliki potensi untuk melampaui pasar telepon genggam saat ini.
2.1.5.1 Latar Belakang Android
Pada awalnya, Blackberry dengan sistem operasi
BlackberryOS dan iPhone dengan sistem operasi iOS
menguasai pasar smartphone, namun kedua sistem operasi
tersebut memiliki pangsa pasar yang berbeda dimana
BlackberryOS lebih ke arah pengguna bisnis dan iOS lebih ke
arah pengguna yang santai dan menginginkan fitur yang
“keren”. Android pada mulanya merupakan sistem operasi
yang baru dan belum dikenal masyarakat namun memiliki
potensi untuk memiliki kedua kelebihan dari sistem operasi
lainnya dan mungkin bisa dikatakan menjadi jembatan
penghubung antara pekerjaan dan kesenangan.
2.1.5.2 Sejarah Android
Android merupakan hasil produk dari Open Handset
Alliance, sebuah kelompok organisasi yang berkerja untuk
membuat telepon genggam menjadi lebih baik. Kelompok
tersebut meliputi Google, Operator telepon genggam, pabrik
pembuat telepon genggam, pabrik komponen telepon
genggam, pembuat software, dan perushaan periklanan. Yang
menjadi kelebihan dari sistem operasi ini dari sudut pandang
pengembang adalah Android merupakan sistem operasi
telepon genggam yang open source, yakni dalam
pengembangan nya tanpa dikenakan biaya dan siapapun dapat
mengembangkan sistem operasi ini.
Android pertama yang beredar di masyarakat adalah
G1 yang diproduksi oleh HTC dan di dukung oleh operator
30
telepon genggam T-Mobile. Pada saat peluncuran gadget ini,
tim Android mengeluarkan SDK V1.0, dari situ muncul
aplikasi-aplikasi untuk mendukung gadget tersebut. Pada saat
itu Google mengadakan kompetisi berhadiah jutaan dolar
untuk kontestan yang memenangkan aplikasi terbaik untuk
Android. Setelah beberapa bulan muncul lah Android Market
yang berfungsi untuk memperbolehkan pengguna untuk
mengunduh aplikasi langsung dari telepon genggamnya.
2.1.5.3 Arsitektur Android
Dengan luasnya kemampuan sistem operasi Android,
Android dibagi menjadi beberapa lapisan lingkungan
berdasarkan Linux kernel. Android memiliki browser yang
terintegrasi dengan WebKit, sistem yang digunakan juga pada
browser Safari dan Google Chrome. Android memiliki
konektivitas yang tinggi, meliputi WiFi, Bluetooth, data
melalu telepon selular (Seperti contoh 3G, GPRS, EDGE)
serta GPS yang berfungsi untuk mengetahui lokasi pengguna
yang terhubung dengan aplikasi Google Maps.
31
Gambar 2.9: Lapisan Lingkungan Arsitektur Android
Pemograman yang digunakan untuk pengembangan
aplikasi Android menggunakan Java. Android menggunakan
mesin virtual atau virtual machine yang bernama Dalvik
Virtual Machine, sebuah teknologi open source. Setiap
aplikasi yang dijalankan Android menggunakan Dalvik Virtual
Machine untuk menjalankan proses dari Linux kernel.
Gambar 2.10: Bentuk Lapisan Dalvik Virtual Machine
Sebuah Aplikasi Android harus memenuhi salah satu
atau lebih kriteria, yaitu :
1. Activities, sebuah aplikasi harus memiliki
tampilan atau User interface.
2. Services, sebuah servis harus dimiliki oleh
setiap aplikasi untuk jangka waktu yang
panjang seperti melakukan pembaruan atau
update dari sebuah aplikasi.
3. Content providers, sebuah aplikasi memerlukan
sebuah database atau pusat data. Kegunaan dari
Content provider adalah untuk memproses data
yang dimiliki. Bila membuat sebuah aplikasi
yang sederhana, pengembang tidak
memerlukan Content provider, namun bila
32
developer mengembangkan aplikasi yang rumit
dan kompleks, Content provider berguna untuk
mengakses dan memproses data yang sudah
ada.
4. Broadcast receivers, Sebuah aplikasi Android
mampu untuk merespon data yang masuk
seperti pada SMS.
Aplikasi Android beserta file yang disebut
AndroidManifest.xml akan masuk ke dalam sebuah
gadgetAndroid.AndroidManifest.xml berisi tentang nama kelas
atau class, kapan aplikasi dapat memproses, dan izin yang
diperlukan untuk menjalankan sebuah aplikasi. Seperti contoh,
sebuah aplikasi memerlukan jaringan internet untuk
mengunduh data, Izin untuk menggunakan jaringan internet
harus tertulis dan terdapat di dalam file manifest tersebut. Hal
ini berfungsi untuk meningkatkan keamanaan dari aplikasi-
aplikasi yang dapat merusak gadget Android pengguna.
2.1.6 Sepeda Motor
Sepeda motor adalah kendaraan transportasi beroda dua,
namun kendaraan lain yang memiliki kurang dari empat roda dan
menyentuh tanah dapat dikategorikan sebagai sepeda motor. Sepeda
motor modern didirikan pada tahun 1914 dan masih digunakan hingga
saat ini. Sistem dan struktur yang digunakan pada sepeda motor dapat
dibilang cukup sederhana. Hal tersebut meliputi mesin bertenaga
bensin untuk merubah tenaga pada piston yang terdapat dalam mesin
menjadi tenaga putar yang disalurkan ke roda, sistem transmisi,
pengendalian sepeda motor dengan pergerakan roda depan melalui
setir atau stang, dua tuas di kemudi untuk mengendalikan rem dan
kopling, serta dua tuas pada kai untuk mengendalikan rem belakang
dan pergantian gigi.
33
Perkembangan kendaraan roda dua atau sering kita kenal
dengan sepeda motor mengalami pertumbuhan yang sangat pesat
terutama di Indonesia. Hal ini terjadi karena banyak masyarakat yang
mengandalkan mobilitas dan kepraktisan dari mengendarai sepeda
motor. Selain itu sepeda motor juga memiliki keunggulan lain yaitu
hemat bahan bakar bila dibandingkan dengan kendaraan roda empat
atau sering dikenal dengan mobil.
2.1.6.1 Cara Kerja Sepeda Motor
Mesin pada sepeda motor memiliki kesamaan dengan
cara kerja pada mesin mobil. Kedua jenis kendaraan ini
menggunakan piston yang bergerak ke atas dan kebawah yang
digerakan dengan ledakan dari campuran udara dan bensin
yang di picu dengan percikan. Katup mengatur jalur masuk
nya bahan bakar sehingga pergerakan pada poros mesin terus
terjadi sehingga mengubah tenaga yang dihasilkan oleh piston
menjadi tenaga putar untuk memutar roda belakang pada
sepeda motor.
2.1.6.2 Sistem Transmisi Pada Sepeda Motor
Gambar 2.11: Bentuk Sederhana Dari Sistem Transmisi
Mesin pada sepeda motor dapat menghasilkan tenaga
yang cukup besar sehingga harus dibatasi agar kendaraan
34
dapat dikendalikan dengan baik. dengan ada nya sistem
transimisi maka tenaga yang dihasilkan tidak menjadi sia-sia
seperti contoh pada saat kita memasukan gigi satu pada
kendaraan maka kendaraan dapat melaju dengan lancar pada
awalnya, namun hanya terbatas pada kecepatan rendah, di sisi
lain bila kendaraan kita pacu langsung ke gigi empat, maka
kendaraan dapat bergerak sangant lamban pada awalnya dan
menghasilkan kecepatan tinggi pada saat waktu tertentu. Gigi
pada kendaraan bermotor adalah kumpulan dari gerigi atau
gear yang terdapat pada sistem transmisi.
Fungsi dari kopling adalah untuk mematikan sementara
tenaga yang dihasilkan dari mesinsehingga pengguna dapat
mengganti gigi transmisi. Tanpa kopling, salah satu cara untuk
membuat roda berhenti adalah dengan mematikan mesin
sepenuhnya, tentu cara ini tidaklah praktis dan mudah. Oleh
sebab itu kopling bertugas untuk memutus sementara transimis
dari poros mesin. Setelah pemilihan gigi baru sudah dipilih,
maka kopling bertugas untuk menyatukan kembali transmisi
degnan poros mesin.
2.1.6.3 CVT (Continuously Variable Transmission)
CVT atau Continuously Variable Transmission
merupakan sebuah struktur yang digunakan pada sepda motor
untuk membuat sepeda motor tidak perlu melakukan
pergantian transmisi secara manual. Tidak seperti transmisi
biasa, CVT tidak memerlukan pergantian gigi. CVT pada
sepeda motor biasanya menggunakan sistem pulley atau katrol
yakni memperbolehkan pergantian transmisi tanpa adanya
gigi. Pada CVT hanya terdiri dari 3 komponen inti, yaitu sabuk
karet, masukan atau input atau driving dari katrol dan output
atau keluaran atau driven dari katrol.
35
Gambar 2.12: Bentuk Sederhana Dari Sistem Pulley
Sabuk karet pada CVT atau yang sering dikenal dengan
V-Belt adalah suatu sabuk terbuat dari karet yang berbentuk
seperti huruf “V” yang berfungsi untuk meningkatkan gesekan
dari sabuk.
Saat kedua poros dari katrol terpisah jauh atau
diameter meningkat, sabuk berada lebih rendah dari alur, dan
lingkaran dari sabuk menjadi lebih kecil. Namun bila kedua
poros berdekatan atau diameter menurun, sabuk menjadi lebih
tinggi dari alurnyasehingga lingkaran dari sabuk menjadi lebih
besar. CVT menggunakan tekanan hidrolik untuk
menyesuaikan bagian pada katrol.
Katrol input disebut demikian karena katrol terhubung
dengan poros mesin disebut input karena dari situlah tenaga
dari mesin dialirkan ke transmisi. Katrol output disebut
demikian karena energi yang dihasilkan dari katrol input
dialirkan ke katrol output.
Saat salah satu katrol meningkatkan diameter dari
porosnya, katrol lain mengimbangkan dengan menurunkan
diameter dari poros untuk membuat sabuk tetap tegang (tidak
longgar). Hal ini menyebabkan gigi yang tidak terbatas karena
pergantian transmisi terjadi dari poros katrol. Seperti contoh
pada saat katrol output mengecil maka akan menghasilkan
36
“gigi” yang rendah sedangkan pada saat katrol output
memembesar maka akan menghasilkan “gigi” yang tinggi.
Gambar 2.13: Bentuk Dari Katrol Pada CVT
2.2 Related works
2.2.1 An Expert System for Fault Diagnosis, Repairing and
Maintenance of Electrical Machines
Di dalam jurnal yang berjudul “An Expert System for Fault
Diagnosis, Repairing and Maintenance of Electrical Machines” (V.
Kontargyri, C.Tsirekis, S.Kabanaros, A.Sakarellos, A.Moronis,
N.Kolliopoulos, S.Kaminaris, 2007), menggunakan metode
knowledge based yang diaplikasikan dengan backward-chaining
reasoning. Dengan menggunakan bentuk tree, knowledge based untuk
mendiagnosis kerusakan dan perbaikan dibagi menjadi 3 bagian
utama.Pada bagian pertama, terdiri dari tipe - tipe mesin elektrik,
yang dapat diproses oleh sistem (i.e. generator). Di bagian kedua,
semua gejala-gejala kerusakan yang mengacu pada mesin tertentu
dituliskan. Di bagian ketiga, semua kemungkinan-kemungkinan
penyebab dari kerusakan sebelumnya ditentukan serta dicari tindakan
yang tepat untuk memperbaiki kerusakan pada mesin tersebut.
37
Sistem-sistem pencarian kerusakan dan perbaikan mesin yang
pernah ada, membutuhkan jumlah data yang besar untuk dapat
menentukan secara persis dimana letak kerusakan terjadi. Itu berarti,
dibutuhkan waktu yang lama untuk sistem agar dapat memprosesnya.
Software yang ada dalam jurnal ini, dirancang untuk dapat mencapai
waktu yang lebih efisien dalam pencarian kerusakan.
Software yang dibuat dalam paper ini, sudah dikembangkan
untuk penggunaan multi-user (user, power-user, administrator) dan
sudah mencapai waktu yang efisien dalam pemroresan datanya
dengan standar kenyamanan yang memuaskan. Dengan fitur evaluasi
otomatis, knowledge tree data structure dapat dimodifikasi
berdasarkan arsip data yang menyebabkan minimalisasi waktu dan
biaya perbaikan.
2.2.2 An Expert System for Car Failure Diagnosis
Jurnal yang berjudul “An Expert System for Car Failure
Diagnosis” (Ahmad T. Al-Taani, 2005), berisi tentang sistem pakar
yang digunakan untuk mendiagnosis kerusakan pada mobil. Dalam
jurnal ini, penulis menggunakan metode knowledge-based yang
diaplikasikan dengan metode forward-chaining. Empat komponen
penting dalam knowledge-based adalah : pusat pengetahuan, mesin
interfensi, alat rekayasa pengatahuan, dan tampilan pengguna. Dalam
kerusakan pada mobil, penulis membedakan kerusakan menjadi tiga
bagian yaitu :
1. Kondisi awal yakni masalah yang terjadi saat seseorang
mencoba menyalakan kendaraan . seperti contoh mesin
tidak bekerja, mesin menyala lalu mati kembali, atau
muncul suara saat ingin dinyalakan.
2. Kondisi menyala yakni masalah yang terjadi saat mesin
sudah menyala seperti contoh bau bahan bakar, muncul asap
hitam dari knalpot, atau suhu mobil yang tidak stabil.
38
3. Kondisi saat berjalan yakni masalah yang terjadi saat mobil
dijalankan. Kondisi ini meliputi masalah yang mencakup
sistem pengereman. Seperti contoh terdengar suara ketukan
saat mobil berjalan.
Pengembangan sistem pakar memiliki struktur dalam
pembuatannya. Dalam jurnal ini penulis menggunakan beberapa
tahapan yakni tampilan pengguna, penjelasan mengenai penyebab
masalah, pusat pengetahuan, dan mesin interfensi.
Gambar 2.14 : Struktur dari Sistem Diagnosis Kerusakan Pada Mobil
Gambar 2.15: Contoh Sistem Bila Aturan Pertama Ditolak
39
Gambar 2.16: Contoh Hubungan Antara Aturan yang Dibuat
Dari sistem yang dihasilkan mengharapkan bahwa penggunaan
sistem pakar dapat menjadi sangat bermanfaat dalam mendiagnosis
kerusakan pada mobil. Program yang penulis buat masih dapat
dikembangkan lagi dengan penambahan aturan-aturan baru sehingga
program yang dibuat dapat menghasilkan hasil yang lebih akurat.
Tampilan pengguna berisi tentang representasi dari menu
tampilan yang menampilkan pertanyaan kepada pengguna dan
pengguna memilih antara jawaban ya atau tidak. Aturan yang
digunakan dalam pembuatan program ini mencakup 150 rule atau
aturan untuk berbagai macam tipe kerusakan pada mobil. Dari hasil
percobaan, program tidak pernan memberikan diagnosis yang salah
(sesuai dengan rule yang telah ditetapkan). Dapat dikatakan sistem
yang dibangung memiliki karakteristik sistem pakar yang baik seperti
respon waktu yang cepat, mudah di mengerti, dan memiliki hasil yang
baik.
40
Gambar 2.17: Tampilan Menu
2.2.3 Perancangan Dan Pembuatan Sistem Pakar Kerusakan Sepeda
Motor Honda Supra Sebagai Media Penunjang Pembelajaran
Metode penelitian yang digunakan pada jurnal berjudul
“Perancangan Dan Pembuatan Sistem Pakar Kerusakan Sepeda Motor
Honda Supra Sebagai Media Penunjang Pembelajaran” (Ari
Suhartono, L. Anang Setiyo, 2013) adalah pengumpulan data, teknik
pengumpulan data yang digunakan dalam penelitian adalah observasi,
wawancara, dan dokumentasi. Metode yang digunakan dalam
software adalah metode basis pengetahuan yang direpresentasikan
sebagai perintah berpasangan atau sebagai IF kondisi THEN aksi dan
diaplikasikan dengan forward-chaining dimana user akan diberi
pertanyaan mengenai gejala yang paling umum dialami untuk semua
jenis kerusakan mesin. User diberikan pilihan jawaban, pilihan
jawaban “Iya” untuk representasi user mengalami gejala tersebut dan
jawaban “Tidak” untuk representasi user tidak mengalami gejala
tersebut. Sedangkan backward-chaining saat user diberikan pilihan
mengenai berbagai jenis kerusakan mesin pada Motor Honda Supra
yang dipilih untuk ditampilkan informasinya. Setelah kerusakan
dipilih, maka akan tertampil seluruh keterangan kerusakan, gejala dan
beserta solusinya.
Sistem Pakar Berbasis Web Untuk Analisis Kerusakan Sepeda
Motor Honda Supra sebagai Media Penunjang Pembelajaran pada
41
Teknik Sepeda Motor SMKN 1 Geger ini dirancang dan dibangun
dengan tujuan untuk memberikan informasi dan diagnosis mengenai
kerusakan yang mungkin terjadi dan dialami oleh pengguna atau
pemilik sepeda motor berdasarkan gejala-gejala dan pertanyaan-
pertanyaan yang diajukan.
Ada banyak keuntungan bila menggunakan sistem pakar
sebagai sarana bantu pengajaran, diantaranya adalah :
1. Menjadikan pengetahuan lebih mudah didapat.
2. Menyimpan kemampuan dan keahlian seorang pakar.
3. Meningkatkan penyelesaian masalah yang khusus.
4. Meningkatkan reliabilitas.
5. Memberikan response (jawaban) yang cepat.
6. Merupakan panduan yang cerdas.
7. Dapat bekerja dengan informasi yang kurang lengkap
dan mengandung ketidakpastian.
8. Sebagai basis data cerdas, bahwa sistem pakar dapat
digunakan untuk mengakses basis data dengan cara
cerdas.
Kekurangan Sistem Pakar Kerusakan Motor Sebagai Media
Pembelajaran: Selain keuntungan di atas, sistem pakar seperti halnya
system lainnya, juga memiliki kelemahan. Di antaranya adalah :
1. Masalah dalam mendapatkan pengetahuan di mana
pengetahuan tidak selalu bisa didapatkan dengan mudah
karena kadangkala pakar dari masalah yang kita buat
tidak ada, dan kalaupun ada kadang pendekatan yang
dimiliki oleh pakar berbeda-beda.
2. Untuk membuat suatu sistem pakar yang benar-benar
berkualitas tinggi dan cocok sebagai media pembelajaran
42
sangatlah sulit dan memerlukan biaya yang sangat besar
untuk pengembangan dan pemeliharaanya.
3. Sistem pakar tidaklah 100% menguntungkan, walaupun
seorang tetap tidak sempurna atau tidak selalu benar.
Oleh karena itu perlu diuji ulang secara teliti sebelum
digunakan sebagai media pembelajaran. Sehingga dalam
hal ini peran manusia tetap merupakan faktor yang
dominan.
Kelemahan-kelemahan atau kekurangan dari sistem pakar
tersebut bukanlah sama sekali tidak bisa diatasi, tetapi dengan terus
melakukan perbaikan dan pengolahan berdasarkan pengalaman yang
telah ada maka hal itu diyakini akan dapat diatasi, walaupun dalam
waktu yang panjang dan terus menerus sesuai kemajuan teknologi
komputerisasi.