SKRIPSI
Oleh:
DIMAS PRASETYO
NIM.1220000253
Alhamdulillah penulis ucapkan puji syukur atas kehadirat Allah SWT yang
tercurah kepada junjungan semesta alam Nabi Muhammad SAW, semoga kita
Adapun judul penulisan skripsi yang penulis buat adalah “Sistem Pakar
Satu (S1), Fakultas Teknik dan Ilmu Komputer jurusan Sistem Informasi pada
Universitas Potensi Utama. Penulisan skripsi ini bukan hanya sekedar “syarat”
belaka, tetapi juga merupakan suatu karya nyata terhadap ilmu pengetahuan yang
telah penulis dapat selama mengikuti perkuliahan. Selain itu, penulisan skripsi ini
juga sebagai bahan pembelajaran bagi penulis, khususnya dalam hal penulisan
karya ilmiah. Dalam penyusunan skripsi ini, penulis juga mengambil beberapa
ini.
bimbingan maupun bantuan dari berbagai pihak. Untuk itu dengan segala
i
1. Ibu Khairul Ummi, M.Kom, selaku Dosen Pembimbing I yang telah banyak
ini.
Skripsi ini.
3. Ibu Hj. Nuriandy, B.A, selaku Pembina Yayasan Potensi Utama Medan.
4. Bapak Bob Subhan Riza, ST, M. Kom, selaku Ketua Yayasan Potensi Utama
Medan.
5. Ibu Rika Rosnelly, SH, M. Kom, selaku Rektor Universitas Potensi Utama
Medan.
7. Ibu Mas Ayoe Elhias Nst, M. Kom, selaku Ketua Program Studi Sistem
Informasi.
8. Bapak Abdul Meizar, M. Kom, selaku Dosen Wali Sistem Informasi Kelas C-
Malam
Medan.
10. Teristimewa kepada kedua orang tua yang saya cintai dan sayangi yang telah
banyak memberikan doa, motivasi serta curahan kasih sayang kepada saya
ii
iii
DAFTAR ISI
iv
BAB II TINJAUAN PUSTAKA ....................................................................... 13
v
III.3.1.3. Sequence Diagram ................................................ 36
V.2. Saran................................................................................................ 66
DAFTAR PUSTAKA
LAMPIRAN
vi
DAFTAR GAMBAR
Gambar III.2. Use Case Sistem Pakar Diagnosa Penyakit Asam Lambung
Gambar III.3. Class Diagram Sistem Pakar Diagnosa Penyakit Asam Lambung
vii
Gambar III.14. Activity Diagram From Aturan .................................................45
viii
DAFTAR TABEL
Tabel I.2. Perbandingan Sistem Lama Dan Yang Akan Dirancang ...................11
ix
DAFTAR LAMPIRAN
x
BAB I
PENDAHULUAN
BAB I
PENDAHULUAN
Sistem pakar atau Expert System biasa disebut juga dengan Knowledge Base
Sistem ini bekerja dengan menggunakan pengetahuan dan metode analisis yang
telah didefinisikan terlebih dahulu oleh pakar yang sesuai dengan bidang
keahliannya. Sistem ini disebut pakar karena fungsi dan perannya sama seperti
suatu persoalan. Sistem biasanya berfungsi sebagai kunci penting yang akan
disembuhkan secara total. Penyakit maag atau tukak lambung bisa merupakan
suatu penyakit psikosomatis (penyakit pikiran tubuh) atau bisa juga penyakit
infeksi yang disebabkan oleh bakteri gram negatif helicobacter pylori, efek
samping obat – obatan dan pola makan yang salah (Danton Awan; 2016 : 3).
bahwa dokter sering kali menganalisa informasi yang ada dengan ungkapan
1
2
mengakomodasi hal ini tim MYCIN menggunakan certainty factor (CF) guna
Factor”.
permasalahan adalah :
sebagai berikut:
factor.
1. Data untuk masukan sistem yaitu data pengguna, data penyakit, data
pengguna.
I.3.1. Tujuan
I.3.2. Manfaat
yaitu menelaah dan mengamati secara langsung mengenai diagnosa penyakit asam
lambung yang dijadikan tempat penelitian untuk mendapatkan data dan informasi
– informasi sebagai bahan utama dalam pembuatan laporan skripsi, sumber data
tersebut yaitu Data Sekunder. Data sekunder merupakan data – data yang
diperoleh dari buku – buku acuan, karya ilmiah dan sumber – sumber lainnya
yang terkait dengan objek penelitian. Berikut ini adalah beberpata teknik
buku – buku, catatan kuliah serta sumber lain yang berkaitan dengan objek
penelitian yang dibahas untuk dijadikan dasar dalam menyusun laporan skripsi
ini. Adapun buku dan jurnal yang dipelajari oleh penulis adalah sistem pendukung
keputusan, penggunaan metode weight product, aplikasi viual studio 2010 dan
perusahaan yaitu dengan mencatat dan mengamati aktivitas atau kegiatan yang
dibahas dalam makalah tugas akhir ini, sehingga penulis dapat memperoleh data
a. Observasi
asam lambung.
b. Sampel
Sampel adalah metode pengumpulan data yang dilakukan oleh penulis untuk
c. Wawancara
6
Target :
Tujuan Penelitian
` Analisis Kebutuhan
Spesifikasi
Verifikasi
Berhasil
Validasi
Finalisasi
b. Analisis Kebutuhan
7
Berisi tentang hal – hal yang harus ada pada hasil perancangan agar
mampu menyelesaikan masalah yang ada sesuai tujuan. Beberapa hal – hal
asam lambung.
– laporan konsultasi.
Modeling Languange).
e. Validasi
keseluruhan, besaran – besaran yang akan diuji, dan ukuran untuk menilai apakah
2. Menjalankan aplikasi yang baru utnuk diuji pada sistem yang lama serta
3. Melihat hasil informasi dari aplikasi yang dibuat dengan spesifikasi komputer
yang digunakan
f. Finalisasi
Pada tahapan ini adalah tahapan hasil dari sistem yang sudah di rancang
I.4.2. Bagaimana Sistem Yang Lama Dengan Sistem Yang Akan Dirancang
Sistem yang lama bersifat manual hanya bisa di tangani oleh dokter
yang ahli di bidangnya jika ingin mendeteksi penyakit yang di derita oelh pasien.
sistem yang akan dirancang, sistem pakar yang akan dirancang di desain agar
mudah dan akurat yang sesuai dengan hasil para pakar di bidangnya. Tanpa harus
9
Proses pengujian atau uji coba sistem ini dilakukan dengan cara black
boxtesting. Black box testing merupakan cara pengujian dengan melihat ke dalam
modul untuk meneliti kode – kode program yang ada, dan menganalisis apakah
ada kesalahan atau tidak. Jika ada modul yang menghasilkan output yang tidak
sesuai dengan proses sistem yang dilakukan, maka baris – baris program, variabel,
dan parameter yang terlibat pada unit tersebut akan di cek satu persatu dan
1. Nella Sistem Pakar Daya gerak saluran cerna bagian atas dan
Almi Mendiagnosa adanya waktu pengosongan lambung yang
Ritonga Penyakit terlambat serta stres psikis. GERD merupakan
(2013) Lambung gangguan sebagai akibat terjadinya refluks
Menggunakan gastroesophageal. Gejala khas GERD adalah
Metode rasa panas di dada, rasa tidak nyaman waktu
Certainty menelan, dan rasa sakit waktu menelan.
Factor Kepastian diagnosa terhadap penyakit lambung
dapat dilakukan melalui pemeriksaan
laboratorium. Sistem pakar adalah program
komputer yang menirukan penalaran seorang
pakar dengan keahlian pada suatu wilayah
pengetahuan tertentu (Turban, 1995). Sistem
pakar mencoba mencari solusi, memberikan
saran atau kesimpulan yang konsisten terhadap
permasalahan yang ditemukannya
10
Penelitian ini dilakukan di RS. Putri Hijau, alamat di Jl. Putri Hijau No.
Adapun sistematika penulisan yang diajukan dalam tugas akhir ini adalah
sebagai berikut :
BAB I : PENDAHULUAN
sistematika penulisan.
perusahaan.
Bab ini menguraikan tentang analisa sistem yang akan di bangun dan
perusahaan.
13
BAB II
TINJAUAN PUSTAKA
BAB II
TINJAUAN PUSTAKA
II.1. Sistem
Sistem adalah suatu jaringan kerja dari prosedur - prosedur yang saling
Supaya sistem itu dikatakan sistem yang baik harus memiliki karakteristik
yaitu :
1. Komponen
Komponen sistem terdiri dari komponen berupa subsistem atau bagian-bagian dari
sistem.
dengan sistem yang lain atau dengan lingkungan luarnya. Batasan sistem ini
13
14
harus tetap dijaga dan yang merugikan yang haris dijaga dan dikendalikan, kalau
sumber daya mengalir dari subsistem ke subsistem lain. Keluaran (output) dari
penghubung.
Maintenance input adalah energi yang dimasukkan agar sistem dapat beroperasi.
Signal input adalah energi yang diproses untuk mendapatkan keluaran. Contoh
dalam sistem komputer, program adalah maintenance input sedangkan data adalah
signal input.
Keluaran sistem adalah hasil dari energi yang diolah dan diklasifikasikan
seperti yang biasa dilakukan oleh para ahli. Tujuan pengembangan sistem pakar
digunakan oleh orang banyak. Sistem pakar disusun oleh dua bagian utama, yaitu
2. Basis pengetahuan
3. Akuisisi pengetahuan
komputer.
16
4. Mesin inferensi
untuk penalaran tentang informasi yang ada dalam basis pengetahuan dan
5. Workplace
memory).
6. Fasilitas
7. Perbaikan pengetahuan
dari manusia.
mengurangi kesalahan.
Selain manfaat, ada juga beberapa kekurangan yang ada pada sistem
pakar, diantaranya :
3. Sistem pakar tidak 100% bernilai benar (Hayadi B. Herawan; 2016 : 3).
8. Sistem dapat mengaktifkan kaidah secara searah yang sesuai dituntun oleh
disembuhkan secara total. Penyakit maag atau tukak lambung merupakan suatu
penyakit psikosomatis (penyakit pikiran tubuh) atau bisa juga penyakit infeksi
yang disebabkan oleh bakteri gram negatif helicobacter pylori, efek samping obat-
obatan dan pola makan yang salah (Danton Awan; 2016 : 3).
bahwa dokter sering kali menganalisa informasi yang ada dengan ungkapan
mengakomodasi hal ini, tim MYCIN menggunakan certainty factor (CF) guna
Dimana :
untuk membuktikan apakah suatu fakta itu pasti ataukah tidak pasti yang
berbentuk metrik yang biasanya digunakan dalam sistem pakar (Weni Wilda;
2013 : 104).
1. Metode ini cocok dipakai dalam sistem pakar untuk mengukur sesuatu
2. Metode ini dapat mengolah ketidakpastian / kepastian hanya dua data saja
perlu dilakukan beberapa kali pengolahan data untuk data yang lebih dari
dan aplikasi web, serta perangkat lunak lainnya. Visual basic 2010 didasarkan
20
pada bahasa pemrograman visual basic yang dikembangkan microsoft pada awal
1990 an. Visual basic, pada awalnya, adalah bahasa BASIC (Beginner’s All
berkualitas tinggi untuk windows. Hari ini, visual basic adalah bahasa
inggris dan dianggap sebagai salah satu bahasa pemrograman enterprise yang
saling mudah untuk dipelajari. Visual basic adalah satu-satunya bahasa di visual
studio yang tidak bersifat case sensitive, yang membuatnya mudah bagi
19).
SQL Server 2008 adalah sebuah terobosan baru dari microsoft dalam
bidang database. SQL Server adalah DBMS (Database Management System) yang
pengolahan data menyusul pendahulunya seperti IBM dan Oracle. SQL Server
2008 dibuat pada saat kemajuan dalam bidang hardware sedemikian pesat. Oleh
karena itu sudah dapat dipastikan bahwa SQL Server 2008 membawa beberapa
disesuaikan dengan segmen – segmen pasar yang dituju. Versi – versi tersebut
21
adalah sebagai berikut. Menurut cara pemrosesan data pada prosesor maka
single prosesor (pentium 4) atau lebih tepatnya prosesor 32 bit dan sistem
2. Versi 64-bit (x64), yang biasanya digunakan untuk komputer dengan lebih
dari satu prosesor (misalnya core 2 duo) dan sistem operasi 64 bit seperti
1. Versi compact, ini adalah versi “tipis” dari semua versi yang ada. Versi ini
seperti versi desktop pada SQL Server 2000. Versi ini juga digunakan pada
2. Versi Express, ini adalah versi “ringan” dari semua versi yang ada (tetapi
versi ini berbeda dengan versi compact) dan paling cocok untuk latihan
1. Sequence Diagram
mendefinisikan input dan output serta urutan instruksi antara pengguna dan sistem
diagram.
seperti perintah.
Use case adalah sebuah kegiatan yang dilakukan oleh sistem, biasanya
dalam menanggapi permintaan dari pengguna sistem. Salah satu langkah awal
untuk membuat diagram use case adalah dengan mengidentifikasi aktor dan
bob, maria atau tuan hendricks, sebaiknya identifikasi peran spesifik yang
dimainkan oleh orang – orang tersebut. Ingatlah bahwa orang yang sama
Sistem lain juga dapat menjadi aktor dari sistem. Contoh aktor :
tujuan – tujuan yang ingin dicapai oleh peran – peran tersebut dalam
tambah bagi bisnis. Contoh : melihat infor biodata, menyimpan data login,
mengirim testimoni.
24
3. Activity Diagram
sebagai berikut :
yang berbeda dari proses alur kerja. Simbol swimlane membagi aktivitas
menjalankan aktivitas yang mana. Ada dua jenis swimlane yang dapat
horizontal.
4. Class Diagram
Dalam UML, ada dua jenis class diagram yaitu : domain class diagram
BAB III
gejala-gejala dari setiap resiko agar mudah dalam menentukan jenis penyakit
asam lambung yang diderita pengguna. Adapun analisis sistem ini meliputi input,
dimasukkan ke dalam sistem untuk diproses. Pada bagian ini, tidak ada yang
menjadi masukan sistem karena sistem yang digunakan adalah dengan cara
27
28
Pasien Dokter
Mulai
Mengisi Form
Pasien
Menanyakan
Gejala Yang
Dirasakan Pasien
Menganalisa Jenis
Penyakit Asam
Lambung Yang
Diderita Pasien
Membuat Form
Hasil Konsultasi
dan Resep
Selesai
lambung menggunakan metode certainty factor yaitu, hasilnya berupa data hasil
konsultasi.
ini diperkenalkan oleh Shortlife Buchanan pada tahun 1970-an. Certainty factor
Keterangan :
ketidakyakinan terhadap hipotesis (h), jika diberikan evidence (e) antara 0 dan 1.
1. Tabel Penyakit
2. Tabel Gejala
Kode
Nama MB MD
Gejala
G01 Mual 0,5 0,15
G02 Sering Sendawa 0,35 0,05
G03 Sakit Perut Bagian Atas 0,25 0
G04 Tubuh Lemas 0,4 0,20
G05 Kembung 0,55 0,1
G06 BAB Berdarah 0,6 0,15
G07 Muntah 0,20 0,05
G08 Muntah Berdarah 0,35 0
G09 Nafsu Makan Menurun 0,15 0
G10 Mudah Lelah 0,20 0,05
Muntah AND
Nafsu Makan Menurun
THEN
Asam Lambung Akut
Asam Lambung Kronis IF
Sakit Perut Bagian Atas AND
Tubuh Lemas AND
BAB Berdarah AND
Muntah Darah AND
Nafsu Makan Menurun AND
Mudah Lelah
THEN
Asam Lambung Kronis
berikut :
1. BAB Berdarah
2. Kembung
3. Muntah
4. Muntah Darah
Perhitungan Manual :
Maka,
= 0,55 – 0,1
= 0,45
= 0,2 – 0,05
= 0,15
= 0,15 – 0
= 0,15
= 0,45 + 0,0825
= 0,5325
= 0,5325 + 0,070125
= 0,602625
Maka,
= 0,6 – 0,15
= 0,45
= 0,35 – 0
= 0,35
= 0,15 – 0
= 0,15
= 0,45 + 0,1925
= 0,6425
= 0,6425 + 0,053625
= 0,696125
maka didapat nilai tertinggi yaitu penyakit Asam Lambung Kronis dengan nilai
pembuatan sebuah sistem dengan menggunakan aplikasi yang lebih akurat dan
4. Perancangan Database
berbentuk diagram yang dapat menjelaskan suatu alur proses sistem yang akan di
bangun. Dalam penulisan skripsi ini penulis menggunakan metode UML yang
dalam metode itu penulis menerapkan diagram Use Case. Maka digambarlah
suatu bentuk diagram Use Case yang dapat dilihat pada gambar dibawah ini.
35
Sistem Pakar Diagnosa Penyakit Asam Lambung Menggunakan Metode Certainty Factor
Pakar
Penyakit
Pengaturan Login
Gejala
Pakar
Basis Aturan
Daftar Konsultasi
Pengguna
Laporan Hasil
Konsultasi
Gambar III.2. Use Case Sistem Pakar Diagnosa Penyakit Asam Lambung
Menggunakan Metode Certainty Factor
menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain
(metoda/fungsi).
36
Gejala Penyakit
Aturan
-id_gejala -id_penyakit
-id_aturan
-nama -nama
-id_gejala
-md *...1 1...1 -keterangan
-id_penyakit
-mb -pengobatan
+tambah()
+tambah() +tambah()
+edit()
+edit() +edit()
+hapus()
+hapus() +hapus()
1...1
*...1
Konsultasi
Pakar -id_konsultasi
-id_pakar -tanggal
-nama -nama
-username -jenis_kelamin
-password -alamat
+tambah() -gejala
+edit() -id_penyakit
+hapus() -persentase
+add()
+update()
+delete()
diagram ini menunjukkan sejumlah contoh objek dan message (pesan) yang
diletakkan diantara objek – objek ini di dalam use case, berikut gambar sequence
diagram :
Menu ()
click menu
Pakar ()
tambah data ()
Koneksi()
edit data ()
Koneksi()
hapus data()
Koneksi()
tutup form ()
Menu ()
click menu
Penyakit ()
tambah data ()
Koneksi()
edit data ()
Koneksi()
hapus data()
Koneksi()
tutup form ()
Menu ()
click menu
Gejala ()
tambah data ()
Koneksi()
edit data ()
Koneksi()
hapus data()
Koneksi()
tutup form ()
Form Utama Form Aturan Proses Tabel Aturan Tabel Detail Aturan
Menu ()
click menu
Aturan ()
tambah data ()
Koneksi()
edit data ()
Koneksi()
hapus data()
Koneksi()
tutup form ()
Pakar
Tampilkan Fom ()
Menu ()
click menu
Daftar Konsultasi ()
Tampil data()
Koneksi()
tutup form ()
Pengguna
Tampilkan Fom ()
Menu ()
click menu
Konsultasi Pengguna ()
click Diagnosa()
metode cf()
cetak Laporan()
koneksi()
tutup form ()
sistem yang sedang dirancang, bagaimana masing – masing alir berawal, Decision
yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga
eksekusi.
Activity diagram form input data login dapat dilihat pada gambar dibawah
Pakar Sistem
Tidak Valid
Valid
Activity diagram form data pakar dapat dilihat pada gambar dibawah ini,
sebagai berikut :
42
Pakar Sistem
Tambah
Aktifkan Komponen
Simpan Data
Edit
Aktifkan Komponen
Update Data
Simpan Data
Hapus
Activity diagram form data penyakit dapat dilihat pada gambar dibawah ini,
sebagai berikut :
43
Pakar Sistem
Tambah
Aktifkan Komponen
Simpan Data
Edit
Aktifkan Komponen
Update Data
Simpan Data
Hapus
Activity diagram form data gejala dapat dilihat pada gambar dibawah ini,
sebagai berikut :
44
Pakar Sistem
Tambah
Aktifkan Komponen
Simpan Data
Edit
Aktifkan Komponen
Update Data
Simpan Data
Hapus
Activity diagram form aturan dapat dilihat pada gambar dibawah ini,
sebagai berikut :
45
Pakar Sistem
Tambah
Pilih Gejala
Simpan Data
Edit
Update Data
Simpan Data
Hapus
Activity diagram form daftar konsultasi dapat dilihat pada gambar dibawah
Pakar Sistem
Hapus
Desain sistem detail dari sistem pakar diagnosa penyakit asam lambung
Desain sistem ini berisikan pemilihan menu dan hasil pencarian yang
telah dilakukan. Adapun bentuk rancangan output dari sistem pakar diagnosa
penyakit asam lambung menggunakan metode certainty factor ini adalah sebagai
berikut :
ID Konsultasi : Xxxxxxxx
Tanggal : Xxxxxxxx
Nama : Xxxxxxxx
Jenis Kelamin : Xxxxxxxx
Alamat : Xxxxxxxx
Gejala : Xxxxxxxx
Hasil Xxxxxxxx
Keterangan : Xxxxxxxx
Pengobatan : Xxxxxxxx
Diketahui Oleh :
( )
memudahkan dalam entry data. Entry data yang dirancang akan lebih mudah dan
menggunakan sistem. Adapun rancangan form login dapat dilihat pada Gambar
Username :
Password :
Login
dari user interface. Adapun rancangan menu utama dapat dilihat pada gambar
Form Utama
Image
data pakar. Adapun bentuk form data pakar dapat dilihat pada gambar dibawah
Form Pakar
Baru
ID Pakar :
Nama :
Tambah
Username :
Edit Password :
Hapus
data penyakit. Adapun bentuk form data penyakit dapat dilihat pada gambar
Form Penyakit
Baru
ID Penyakit :
Nama :
Tambah
Keterangan :
Edit
Hapus Pengobatan :
mengolah data gejala. Adapun bentuk form gejala dapat dilihat pada gambar
Form Gejala
Baru
ID Gejala :
Nama :
Tambah
MD :
Edit
MB :
Hapus
Perancangan form aturan merupakan form untuk mengolah data basis aturan.
Adapun bentuk form basis aturan dapat dilihat pada dibawah ini :
Form Aturan
Tambah
Edit
Hapus
Hapus
elemen data, aliran data dan data store yang digunakan. Pengisian data dictionary
adanya data atau saat diperlukan penambahan data item ke dalam sistem. Berikut
yang digunakan seperti field, tipe data, ukuran data. Sistem ini dirancang dengan
Berikut adalah desain database dan tabel dari sistem yang dirancang :
1. Tabel Pakar
2. Tabel Penyakit
Foreign Key :-
3. Tabel Gejala
Primary Key :-
6. Tabel Konsultasi
III.3.2.3.3. Normalisasi
basis data relasional yang tidak secara langsung berkaitan dengan model data,
1. Tabel Pakar
2. Tabel Penyakit
3. Tabel Gejala
4. Tabel Aturan
6. Tabel Konsultasi
Jadi, dalam hal ini dapat dinyatakan bahwa rancangan tabel pada database
yang telah ditargetkan sebelumnya karena tidak ada redundansi atau duplikasi
data.
BAB IV
BAB IV
Berikut ini dijelaskan tentang tampilan hasil dari Sistem Pakar Diagnosa
sebagai berikut:
Aktifitas sistem login yang dilakukan oleh pakar dapat diterangkan dengan
58
59
Berikut adalah tampilan pada pengolahan data basis aturan dapat diterangkan
berikut :
Uji coba terhadap sistem bertujuan untuk memastikan bahwa sistem sudah
berada pada kondisi siap pakai. Instrumen yang digunakan untuk melakukan
b. Memory 2 Gb
c. Hardisk 500 Gb
penyelesaian masalah yang telah dirancang pada bab sebelumnya, apakah hasilnya
1. Sistem pakar yang dirancang penulis sangat akurat dalam menentukan hasil
factor.
pembuatan laporan.
65
V.1. Kesimpulan
antara lain :
Visual Basic dan Basis data yang digunakan adalah SQL Server.
V.2. Saran
maka ada beberapa saran yang dapat diberikan. Adapun saran-saran yang dapat di
keras.
2. Sistem yang telah dirancang belum diharapkan sudah menerapkan fitur client
66
DAFTAR PUSTAKA
Dodi Harto. 2013. Vol : IV. Perancangan Sistem Pakar Untuk Mengidentifikasi
Penyakit Pada Tanaman Semangka Dengan Menggunakan Metode
Certainty Factor. STMIK Budi Darma Medan.
Garry B.S, Corrine H. 2011. Visual Basic 2010. Course Technology. Boston
USA.
Luther A.L. Vol : 12. 2012. Sistem Pakar Pendiagnosa Penyakit Anak
Menggunakan Metode Certainty Factor. Universitas Sam Ratulangi.
Manado.
LAMPIRAN
LISTING PROGRAM
Imports System.Data.SqlClient
PublicClassForm_Login
Private id AsString
Private user_name AsString
Private pass_word AsString
Public form_main AsForm_Main
PrivateFunction getDataPakar()
koneksiDB()
Dim result = False
Try
koneksi.Open()
Dim query AsString = "SELECT username, password FROM pakar WHERE
username ='"& usernameField.Text &"' AND password ='"& passwordField.Text &"'"
Dim sqlCmd AsNewSqlCommand(query, koneksi)
Dim sqlRdr AsSqlDataReader = sqlCmd.ExecuteReader
If sqlRdr.Read Then
result = True
EndIf
koneksi.Close()
Catch ex AsException
MsgBox(ex.Message, MsgBoxStyle.Information, "Pesan Kesalahan")
koneksi.Close()
EndTry
Return result
EndFunction
PrivateSub login()
If usernameField.Text = ""Then MsgBox("Username Anda Masih Kosong..!",
MsgBoxStyle.Critical, "Pesan Kesalahan") : Exit Sub
If passwordField.Text = ""Then MsgBox("Password Anda Masih Kosong..!",
MsgBoxStyle.Critical, "Pesan Kesalahan") : Exit Sub
If getDataPakar() Then
usernameField.Text = ""
passwordField.Text = ""
form_main.LoginPakarToolStripMenuItem2.Text = "Logout Pakar"
form_main.PengaturanToolStripMenuItem2.Visible = True
form_main.KonsultasiPenggunaToolStripMenuItem2.Visible = False
form_main.DaftarKonsultasiToolStripMenuItem2.Visible = True
Me.Close()
Else
MsgBox("Username dan Password Anda Tidak Cocok..!")
usernameField.Text = ""
passwordField.Text = ""
EndIf
EndSub
EndSub
EndSub
EndClass
Imports System.Data.SqlClient
PublicClassForm_Pakar
Private DS AsDataSet
Private query AsString
PublicSub getData()
koneksiDB()
Try
koneksi.Open()
DS = NewDataSet
query = "SELECT id_pakar, nama, username FROM pakar"
Dim cmd = NewSqlCommand(query, koneksi)
Dim dtTable = NewDataTable
With dtTable.Columns
.Add("ID Pakar", GetType(String))
.Add("Nama", GetType(String))
.Add("Username", GetType(String))
EndWith
Dim rdr AsSqlDataReader = cmd.ExecuteReader
While rdr.Read
Dim data() AsString = {(rdr.GetValue(0)), (rdr.GetValue(1)), (rdr.GetValue(2))}
dtTable.Rows.Add(data)
EndWhile
DS.Tables.Add(dtTable)
pakarTable.DataSource = DS.Tables(0)
pakarTable.Refresh()
pakarTable.ClearSelection()
koneksi.Close()
Catch ex AsException
MsgBox("Gagal Meretrieve Data !! "& ex.Message)
koneksi.Close()
EndTry
EndSub
Function isEmpty()
Dim result AsBoolean = False
If idField.Text = ""Then
MsgBox("ID Pakar Harus Diisi !!") : result = True
ElseIf namaField.Text = ""Then
MsgBox("Nama Harus Diisi !!") : result = True
ElseIf usernameField.Text = ""Then
MsgBox("Username Harus Diisi !!") : result = True
ElseIf passwordField.Text = ""Then
MsgBox("Password Harus Diisi !!") : result = True
EndIf
Return result
EndFunction
Sub saveData()
Try
IfNot isEmpty() Then
Dim id_pakar = idField.Text
Dim nama = namaField.Text
Dim username = usernameField.Text
Dim password = passwordField.Text
Dim sql = "INSERT INTO pakar VALUES ('"& id_pakar &"', '"& nama &"', '"&
username &"', '"& password &"')"
cmd = NewSqlCommand(sql)
cmd.Connection = koneksi
koneksi.Open()
cmd.ExecuteNonQuery()
koneksi.Close()
MsgBox("Menyimpan", MsgBoxStyle.Information, "Pesan Program")
getData()
EndIf
Catch ex AsException
MsgBox(ex.Message, MsgBoxStyle.Information, "Pesan Kesalahan")
EndTry
EndSub
Sub editData()
Try
IfNot isEmpty() Then
Dim id_pakar = idField.Text
Dim nama = namaField.Text
Dim username = usernameField.Text
Dim password = passwordField.Text
Dim sql = "UPDATE pakar SET nama = '"& nama &"', username = '"& username
&"', password = '"& password &"' WHERE id_pakar = '"& id_pakar &"'"
cmd = NewSqlCommand(sql)
cmd.Connection = koneksi
koneksi.Open()
cmd.ExecuteNonQuery()
koneksi.Close()
MsgBox("Menyimpan", MsgBoxStyle.Information, "Pesan Program")
getData()
EndIf
Catch ex AsException
MsgBox(ex.Message, MsgBoxStyle.Information, "Pesan Kesalahan")
EndTry
EndSub
Function autoNumber()
Dim cmd AsNewSqlCommand
Dim dtReader AsSqlDataReader
Dim kode AsString = Nothing
Try
koneksi.Open()
cmd.Connection = koneksi
cmd.CommandText = "SELECT TOP 1 id_pakar FROM pakar ORDER BY
id_pakar DESC"
dtReader = cmd.ExecuteReader
If (dtReader.Read()) Then
kode = autoNumberID(CStr(dtReader.GetValue(0)))
Else
kode = "PG001"
EndIf
koneksi.Close()
Catch ex AsException
MsgBox(ex.Message, MsgBoxStyle.Information, "Pesan Kesalahan")
EndTry
Return kode
EndFunction
PrivateSub newData()
baruButton.Enabled = False
editButton.Enabled = False
tambahButton.Enabled = True
hapusButton.Text = "Batal"
idField.Text = autoNumber()
namaField.Text = ""
namaField.Enabled = True
usernameField.Text = ""
usernameField.Enabled = True
passwordField.Text = ""
passwordField.Enabled = True
pakarTable.Enabled = False
EndSub
PrivateSub resetData()
baruButton.Enabled = True
editButton.Enabled = True
tambahButton.Enabled = False
editButton.Text = "Edit"
hapusButton.Text = "Hapus"
idField.Text = ""
namaField.Text = ""
namaField.Enabled = False
usernameField.Text = ""
usernameField.Enabled = False
passwordField.Text = ""
passwordField.Enabled = False
pakarTable.Enabled = True
EndSub
PrivateSub updateData()
If editButton.Text = "Edit"Then
editButton.Text = "Simpan"
hapusButton.Text = "Batal"
baruButton.Enabled = False
namaField.Enabled = True
usernameField.Enabled = True
passwordField.Enabled = True
pakarTable.Enabled = False
Else
editData()
resetData()
EndIf
EndSub
PrivateSub binding()
If pakarTable.SelectedRows.Count > 0 Then
idField.Text =
pakarTable.Rows(pakarTable.CurrentRow.Index).Cells(0).Value.ToString
namaField.Text =
pakarTable.Rows(pakarTable.CurrentRow.Index).Cells(1).Value.ToString
usernameField.Text =
pakarTable.Rows(pakarTable.CurrentRow.Index).Cells(2).Value.ToString
passwordField.Text = getPassword(idField.Text)
Else
idField.Text = ""
namaField.Text = ""
usernameField.Text = ""
passwordField.Text = ""
EndIf
EndSub
PrivateSub baruButton_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles baruButton.Click
newData()
EndSub
EndSub
EndClass
Imports System.Data.SqlClient
PublicClassForm_konsultasi
Function isEmpty()
Dim result AsBoolean = False
If idField.Text = ""Then
MsgBox("ID Gejala Harus Diisi !!") : result = True
ElseIf namaField.Text = ""Then
MsgBox("Nama Harus Diisi !!") : result = True
ElseIf jenisField.SelectedItem.ToString = ""Then
MsgBox("Jenis Kelamin Harus Diisi !!") : result = True
ElseIf alamatField.Text = ""Then
MsgBox("Alamat Harus Diisi !!") : result = True
ElseIf gejalaListBox.CheckedItems.Count < 1 Then
MsgBox("Gejala Belum DIpilih !!") : result = True
EndIf
Return result
EndFunction
PrivateFunction getBasisKasus()
koneksiDB()
Dim listBasis AsNew List(Of List(OfString))
Try
koneksi.Open()
Dim query = "SELECT id_aturan, id_penyakit FROM basis_aturan"
Dim cmd = New SqlCommand(query, koneksi)
Dim rdr As SqlDataReader = cmd.ExecuteReader
While rdr.Read
Dim list AsNew List(OfString)
list.Add(rdr.GetValue(0))
list.Add(rdr.GetValue(1))
listBasis.Add(list)
EndWhile
koneksi.Close()
Catch ex As Exception
MsgBox(ex.Message)
EndTry
Return listBasis
EndFunction
PrivateSub certaintyFactor()
Dim listBasis As List(Of List(OfString)) = getBasisKasus()
Dim listPembagi AsNew List(OfDouble)
Dim listGejala AsNew List(OfString)
ForEach itemChecked In gejalaListBox.CheckedItems
Dim castedItem As DataRowView = TryCast(itemChecked, DataRowView)
Dim id_gejala = castedItem("Value")
Dim nama = castedItem("Text")
listGejala.Add(id_gejala)
gejala &= nama &", "
'Console.WriteLine(id_gejala & " " & nama)
Next