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 8
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
Engineering) untuk perangkat keras.
Design/
11
tools methods process model a “quality” focus
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.
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 aspekaspek 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 pembelajaran memungkinkan
(berpikir secara rasional), Sebuah mengenai untuk
komputasi
mempersepsikan,
yang 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
berhubungan
(bertindak
dengan
secara
rasional),
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
membuktikan atau memverifikasi sistem model.
untuk
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 Perencanaan,Pengotrolan
Backward Chaining Pendiagnosaan
Kejadian sekarang ke kejadian
Kejadian sekarang ke kejadian
masa depan
masa lalu
Melihat dari penyebab ke akibat
Melihat dari akibat ke penyebab
Bottom-up reasoning
Top-down reasoning
Bergerak maju untuk mencari
Bergerak mundur untuk
solusi dari fakta - fakta yang
mencari fakta - fakta yang
dimiliki
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 merupakan
metode
sebelumnya,
penelusuran
forward-chaining 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 forwardchaining, 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
AndroidManifest.xml
akan
beserta
file
yang
disebut
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 aplikasiaplikasi 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 pertanyaanpertanyaan 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.