BAB II LANDASAN TEORI - repository.bsi.ac.id · Inferensi adalah sebuah prosedur (program) yang...
Transcript of BAB II LANDASAN TEORI - repository.bsi.ac.id · Inferensi adalah sebuah prosedur (program) yang...
6
BAB II
LANDASAN TEORI
2.1. Konsep Dasar Program
2.1.1. Pengertian Program
Program dapat diartikan suatu cara baru dalam berfikir serta berlogika untuk
menghadapi masalah-masalah yang dicobaatasi dengan bantuan komputer. Bahasa
pemograman merupakan notasi untuk memberikan perintah secara tepat program
komputer. (Algoritma & Pemrograman, 2014)
Program juga dapat diartikan segala kegiatan pembuatan program
menggunakan komputer. Komputer membutuhkan keberadaan program agar bisa
menjalankan fungsinya sebagai komputer.
2.1.2. Pakar
Pemecahan masalah-masalah yang komplek biasanya hanya dapat dilakukan
oleh sejumlah orang yang sangat terlatih, yaitu Pakar. Sebagai contoh, dokter adalah
seorang pakar yang mampu mendiagnosis penyakit yang diderita pasien serta dapat
memberikan penatalaksanan terhadap penyakit tersebut. (Raharjo, Damiyana, &
Irvansyah, 2018)
Suatu kelebihan sejumlah orang yang mampu memecahkan masalah dengan
cepat, tepat, menjelaskan suatu tanggapan, dan menyusun pengetahuan jika dianggap
perlu yaitu Pakar.
2.1.3. Sistem Pakar
Menurut (Anik Andriani, 2014) dalam bukunya mengungkapkan bahwa
“Sistem pakar adalah sebuah sistem yang kinerjanya mengadopsi keahlian yang
dimiliki seorang pakar dalam bidang tertentu ke dalam sistem atau program
7
komputer yang disajikan dengan tampilan yang dapat digunakan oleh pengguna yang
bukan seorang pakar sehingga dengan sistem tersebut pengguna dapat membuat
sebuah keputusan atau menentukan kebijakan layaknya seorang pakar”.
1. Ciri-ciri Sistem Pakar
Menurut (Anik Andriani, 2014) dalam bukunya menjelaskan dalam bukunya bahwa
ciri-ciri sistem pakar yang membedakan dengan sistem informasi biasa sebagai
berikut :
a. Memiliki dan memberikan informasi yang handal
b. Mudah untuk dimodifikasi.
c. Terbatas pada domain keahlian tertentu
d. Dapat memberikan penalaran untuk data-data yang sifatnya tidak pasti.
e. Sistem berdasarkan pada kaidah/rule tertentu.
f. Memiliki kemampuan untuk belajar adaptasi.
g. Keluarannya bersifat anjuran.
2. Keuntungan Dan Kekurangan Sistem Pakar
Penggunaan sistem pakar secara umum memberikan keuntungan yang dapat
dimanfaatkan oleh pengguna. Adapun keuntungan dari penggunaan sistem pakar ini
antara lain :
a. Memungkinkan pengguna yang bukan seorang pakar pada bidang tertentu dapat
mengerjakan tugas dari seorang pakar.
b. Bisa melakukan proses yang sama secara berulang.
c. Sistem pakar dapat menyimpan pengetahuan dan keahlian dari pakar.
d. Dengan adanya sistem pakar produktivitas dan output sistem dapat ditingkatkan.
8
e. Meningkatkan kualitas.
f. Mampu mengambil dan melestarikan keahlian para pakar.
Sistem pakar juga mempunyai kelemahan selain banyaknya keuntungan yang
diberikan, antara lain :
a. Biaya yang diperlukan untuk membuat, memelihara, dan mengembangkan sistem
pakar sangat mahal.
b. Sulit dikembangkan, karena ketersediaan pakar dibidangnya dan kepakaran untuk
menjelaskan sulit diekstrak dari manusia karena terkadang sulit bagi seorang
pakar untuk menjelaskan langkah mereka dalam menangani masalah.
c. Sistem pakar tidak 100% benar karena seseorang yang terlibat dalam pembuatan
sistem pakar tidak selalu benar. Oleh karena itu setelah pembuatan sistem pakar
harus dilakukan pengujian terlebih dahulu secara teliti sebelum digunakan.
d. Pendekatan oleh setiap pakar untuk suatu situasi atau problem bisa berbeda-beda,
meskipun sama-sama benar.
e. Transfer pengetahuan dapat bersifat subjektif dan bias.
f. Kurangnya rasa percaya pengguna dapat menghalangi pemakaian sistem pakar.
3. Manfaat Sistem Pakar
Menurut(Permadi, 2018) Sistem pakar menjadi sangat popular karena sangat
banyak kemampuan dan manfaat yang diberikan, diantaranya :
a. Meningkatkan produktivitas, karena sistem pakar dapat bekerja lebih cepat
daripada manusia.
b. Membuat seseorang yang awam bekerja seperti layaknya seorang pakar.
c. Meningkatkan kualitas, dengan memberi nasehat yang konsisten dan mengurangi
kesalahan.
9
d. Mampu menangkap pengetahuan dan kepakaran seseorang.
e. Dapat beroperasi di lingkungan yang berbahaya.
f. Memudahkan akses pengetahuan seorang pakar.
4. Konsep Dasar Sistem Pakar
Menurut (Raharjo et al., 2018) Konsep dasar sistem pakar meliputi enam hal
berikut ini :
a. Kepakaran (Expertise)
Kapakaran merupakan suatu pengetahuan yang diperoleh dari pelatihan, membaca,
dan pengalaman.
b. Pakar (Expert)
Pakar merupakan seorang yang mempunyai pengetahuan, pengalaman, dan metode
khusus, serta mampu menerapkannya untuk memecahkan masalah atau
memberikan nasehat.
c. Pemindahan Kepakaran (Transfering Expertise)
Tujuan dari sistem pakar adalah memindahkan kepakaran dari seorang pakar ke
dalam komputer, kemudian ditransfer kepada orang lain yang bukan pakar.
d. Inferensi (Inferencing)
Inferensi adalah sebuah prosedur (program) yang mempunyai kemampuan
dalam melakukan penalaran.
e. Aturan-aturan (Rule)
Kebanyakan software sistem pakar komersial adalah sistem yang berbasis rule
(rule-based system) yaitu pengetahuan disimpan terutama dalam bentuk rule,
sebagai produser-prosedur pemecahan masalah.
f. Kemampuan menjelaskan (Explanation Capability)
Fasilitas lai dari sistem pakar adalah kemampuannya untuk menjelaskan saran
10
atau rekomendasi yang diberikannya. Penjelasan dilakukan (explanation). Bagian
dari sistem ini memungkinkan sistem untuk memeriksa penalaran yang dibuatnya
sendiri dan menjelaskan operasi-operasinya.
5. Struktur Sistem Pakar
Menurut (Bahat & Anthoni, 2017) ada dua bagian penting dari sistem pakar,
yaitu lingkungan pengembangan (development environtment) dan lingkungan
konsultasi (consultation environtment). Lingkungan pengembangan digunakan
oleh pembuat sistem pakar untuk membangun komponen- komponennya dan
memperkenalkan pengetahuan ke dalam knowledge base (basis pengetahuan).
2.1.4. Perbedaan Sistem Pakar Dengan Sistem Konvensioal
Perbedaan dari sistem pakar dengan sistem konvensional adalah dasar
pengetahuan (Knowledge based) yang menjadi dasar pembuatan sistem pakar tersebut
Perbedaan secara lengkap antara sistem pakar dan sistem konvensional dapat dilihat pada
tabel berikut menurut (Anik Andriani, 2014)
Tabel II.1.
Perbedaan Sistem Pakar dengan Sistem Konvensional
Sistem Konvensional Sistem Pakar
Informasi dan pemrosesan pada sistem
konvensional biasanya jadi satu dengan
program.
Basis pengetahuan merupakan bagian
terpisah dari mekanisme inferensi
Program tidak pernah salah (kecuali
pemrogramannya yang salah) dalam
memberikan hasil.
Program bisa saja melakukan
kesalahan dalam memberikan hasil
atau membuat kesimpulan
11
Menggunakan data Menggunakan pengetahuan
Biasanya tidak bisa menjelaskan mengapa
suatu input data itu dibutuhkan atau
output itu diperoleh
Penjelasan adalah bagian terpenting
dari sistem pakar
Pengubahan program cukup sulit dan
merepotkan
Pengubahan pada aturan/kaidah dapat
dilakukan dengan mudah
Sistem hanya akan bekerja jika sistem
tersebut sudah lengkap
Sistem dapat bekerja hanya dengan
beberapa aturan saja
Eksekusi dilakukan langkah demi langkah
secara algoritmik
Eksekusi dilakukan pada keseluruhan
basis pengetahuan secara heuristic dan
logis
Tujuan utamanya adalah efisiensi Tujuan utamanya adalah efektivitas
2.1.5. Gigi
Gigi merupakan organ mengunyah yang terdiri dari gigi pada rahang bawah,
lidah, dan saluran-saluran penghasil air ludah. Fungsi utama dari gigi adalah
merobek dan menguyah makanan pada sistem pencernaan, secara tidak langsung gigi
berpengaruh pada kondisi kesehatan seseorang. (Permadi, 2018)
Penyakit gigi pada manusia menduduki urutan pertama dari daftar 10 besar
penyakit yang paling sering dikeluhkan masyarakat Indonesia.Persepsi dan perilaku
masyarakat Indonesia terhadap kesehatan gigi masih buruk. Ini terlihat dari masih
besarnya dari masih besarnya angka karies gigi di Indonesia yang cenderung
meningkat. (Permadi, 2018)
12
2.1.6. Teknik Inferensi Forward Chaining
Pada sistem pakar ini berbasis rule yaitu cara penalaran dengan memulai dari
fakta terlebih dahulu untuk menguji kebenaran hipotesis atau mencocokkan fakta
atau pernyataan dimulai dari bagian sebelah kiri dulu (IF dulu). Forward chaining
merupakan grup multiple inferensi yang melakukan pencarian dari suatu masalah
kepada solusinya. (Chaining, 2016)
2.1.7. Mobile Programming
Pemrograman yang digunakan untuk perangkat mobile, dalam perencanan
pembuatan aplikasi Sistem Pakar Diagnosa Penyakit Gigi Menggunakan Metode
Forward Chaining Berbasis Android ini menggunakan beberapa program, antara lain :
1. Android
Android adalah sebuah sistem operasi untuk perangkat mobile berbasis linux
yang mencangkup sistem operasi, middleware dan aplikasi. Android
menyediakan platform terbuka bagi para pengembang untuk menciptakan
aplikasi mereka. (Safaat, 2015)
2. Cordova
Cordova adalah platform untuk membangun native mobile applications
menggunakan HTML, CSS, dan Java Script. Native mobile application yang
didukung antara lain Android, iOs, Windows Phone dan Blackberry. Cordova
berisi sekumpulan API (Application Programming Interface) untuk mengakses
device dari perangkat mobile. (Sopingi, 2016)
3. AngularJS
AngularJS merupakan salah satu framework javascript yang berbasis MVVM,
dengan paradigma tersebut diharapkan pengembangan aplikasi android
13
menggunakan javascript menjadi lebih mudah dan cepat serta terstruktur.
(Sopingi, 2016)
4. Java
Java adalah perangkat lunak produksi Sun Microsyste, Inc, yang merupakan
perangkat lunak yang bertujuan mudah dipelajari dan powerfull. Aplikasi-aplikasi
yang dapat dibuat dengan java, meliputi program web, program desktop, program
handphone. Saat ini java diakuisisi oleh Oracle Imc. Yang membuat java semakin
berkembang dengan cepat dan terkenal. (Sopingi, 2016)
5. MySQL
Menurut (Tabrani & Pudjiarti, 2017) “MySQL adalah sebuah basis data yang
mengandung satu atau jumlah tabel. Tabel terdiri atas sejumlah baris dan setiap
baris menggandung atau sejumlah tabel. Tabel terdiri atas sejumlah baris dan
setiap baris mengandung satu atau sejumlah tabel”.
6. Xampp
Xampp adalah perangkat lunak bebas, yang mendukung banyak sistem operasi,
merupakan kompilasi dari beberapa program. Fungsinya adalah sebagai server
yang berdiri sendiri (localhost), yang terdiri atas program Apache HTTP Server,
MySQL database, dan penerjemah bahasa yang ditulis dengan bahasa
pemograman PHP dan Perl. (Safaat, 2015)
7. Eclipse IDE
Enclipse IDE adalah sebuah IDE (Integrated Development Environment) untuk
mengembangkan perangkat lunak dan dapat dijalankan di semua platform. Eclipse
pada saat ini merupakan salah satu IDE favorit dikarenakan gratis dan open
source, yang berarti setiap orang boleh melihat kode pemograman perangkat
lunak ini. (Lengkong, 2018)
14
8. HTML
Menurut (Ardana : 2012) “HTML atau Hyper Text Markup Language merupakan
suatu bahasa yang dikenali oleh web browser untuk menampilkan informasi
seperti teks, gambar, animasi bahkan video”. Untuk dapat membuat android
dengan baik maka langkah awal yang harus dilakukan yaitu mengenal kode-kode
dasar HTML yang sering digunakan oleh programmer. Kode HTML memiliki
aturan dan struktur penulisan tersendiri yang disebut tag HTML. Tag adalah kode
yang digunakan untu memoles (mark-up) teks menjadi file HTML. (Sopingi,
2016)
9. Database
Menurut Database atau biasa disebut basis data merupakan kumpulan data yang
saling terhubung. Data tersebut biasanya terdapat dalam tabel-tabel yang saling
berhubungan satu sama lain, dengan menggunakan field/kolom pada tiap tabel
yang ada. (Prayitno & Safitri, 2015)
2.1.8. Metode Pengembangan Perangkat Lunak
Metode pengembangan perangkat lunak yang digunakan adalah model
waterfall. Menurut (Rosa & M. Shalahudin, 2013) model waterfall dibagi dalam
beberapa tahapan, yaitu :
1. Analisis Kebutuhan Perangkat Lunak
Proses pengumpulan kebutuhan dilakukan secara intensif untuk
menspesifikasikan kebutuhan perangkat lunak agar dapat dipahami perangkat
lunak seperti apa yang dibutuhkan oleh user. Spesifikasi kebutuhan perangkat
lunak pada tahap ini perlu untuk didokumentasikan.
15
2. Desain
Desain perangkat lunak adalah proses multi langkah yang fokus pada desain
pembuatan program perangkat lunak termasuk struktur data, arsitektur
perangkat lunak, representasi antarmuka, dan prosedur pengkodean. Tahap ini
mentranslasi kebutuhan perangkat lunak dari tahap analisi kebutuhan ke
representasi desain agar dapat diimplementasikan menjadi program pada tahap
selanjutnya. Desain perangkat lunak yang dihasilkan pada tahap ini juga
didokumentasikan.
3. Pembuatan Kode Program
Desain harus ditranslasikan kedalam program perangkat lunak. Hasil dari tahap
ini adalah program komputer sesuai dengan desain yang telah dibuat pada
tahap desain.
4. Pengujian
Pengujian fokus pada perangkat lunak secara dari segi logic dan fungsional dan
memastikan bahwa semua bagian sudah diuji.Hal ini dilakukan untuk
meminimalisir kesalahan (error) dan memastikan keluaran yang dihasilkan
sesuai dengan yang diinginkan.
5. Pendukung atau Pemeliharaan (maintenance)
Tidak menutup kemungkinan sebuah perangkat lunak mengalami perubahan
ketika sudah dikirimkan ke uer. Perubahan bisa terjadi karena adanya
kesalahan yang muncul dan tidak terdetekdi saat pengujian atau perangkat
lunak harus beradaptasi dengan lingkungan baru. Tahap pendukung atau
pemeliharaan dapat mengulangi proses pengembangan mulai dari analisis
spesifikasi untuk perubahan perangkat lunak yang sudah ada, tetapi tidak untuk
membuat perangkat lunak baru.
16
2.2. Peralatan Pendukung (Tools System)
2.2.1. Unified modeling language (UML)
Unified modeling languageatau UML adalah bahasa yang banyak digunakan di
dunia industri untuk mendefinisikan requirement, membuat analisis dan desain, serta
menggambar arsitektur dalam pemrograman berorientasi objek.(Permadi, 2018)
2.2.2. Activity Diagram
Diagram aktivitas atau activity diagram menggambarkan workflow (aliran
kerja) atau aktivitas dari sebuah sistem atau proses bisnis atau menu yang ada pada
perangkat lunak. Yang perlu diperhatikan disini adalah bahwa diagram aktivitas
menggambarkan aktivitas sistem bukan apa yang dilakukan aktor, jadi aktivitasnya
dapat dilakukan oleh sistem.(Permadi, 2018)
2.2.3. Use Case Diagram
Use Case Diagram merupakan permodelan untuk kelakuan (behavior) sistem
informasi yang akan dibuat. Use case mendeskripsikan sebuah interaksi antara satu
atau lebih aktor dengan sistem informasi yang akan dibuat. (Permadi, 2018)
2.2.4. Component Diagram
Diagram komponen atau component diagram dibuat untuk menunjukan
organisasi dan ketergantungan diantara kumpulan komponen dalam sebuah sistem.
(Permadi, 2018)
2.2.5. NotePad ++
Notepadd++adalah sebuah text editor yang sangat berguna dalam membuat
program. Notepad++ menggunakan komponen scintilla untuk menampilkan teks
dan berkas kode sumber berbagai bahasa pemograman yang berjalan diatas sistem
operasi Microsoft Windows. (Ayu & Permatasari, 2016)
17
2.2.6. Flowchart
Flowchart adalah penggambaran secara grafik dari langkah-langkah dan
urutan-urutan prosedur dari suatu program. Flowchart menolong analisis dan
programmer untuk memcahkan masalah kedalam segmen-segmen yang lebih kecil
dan menolong dalam menganalisis alternatif-alternatif lain dalam pengoperasian.
(Billa, 2015)
2.2.7. ERD (Entity Relationship Diagram)
Menurut (Tabrani & Pudjiarti, 2017) adalah “alat permodelan data utama dan
akan membantu mengorganisasikan data dalam suatu proyek ke dalam entitas-
entitas dan menentukan hubungan antar entitas. Dalam Entity Relationship
Diagram (ERD) terdapat beberapa komponen seperti :
1. Entity
Entity merupakan objek yang dapat dibedakan dengan yang lain dalam dunia
nyata. Dalam entity ada yang disebut sebagai entity set yaitu kumpulan dari
entity yang sejenis.
2. Atribut
Atribut adalah karakteristik dari entity atau relationship, yang menyediakan
penjelasan detail tentang entity atau relationship tersebut. Atribut
digambarkan dalan bentuk oval.
3. Relasi
Relasi adalah hubungan yang terjadi antara sutu atau lebih entity.
4. Kardinalitas (Derajat Relasi)
Kardinalitas relasi menunjukan jumlah maksimum entitas yang dapat berelasi
dengan entitas pada himpunan entitas lain.