27
Sistem Pakar Pendiagnosa Penyakit Ginjal menggunakan Metode Penalaran Forward Chaining dan teknik penelusuran Best-First Search Artikel Ilmiah Diajukan kepada Fakultas Teknologi Informasi Untuk memperoleh Gelar Sarjana Komputer Peneliti : Elisa Ryko Aditya (672010078) Hindriyanto Dwi Purnomo, ST., MIT, Ph.D Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga Januari 2016

Sistem Pakar Pendiagnosa Penyakit Ginjal Menggunakan Metode … · 2017. 5. 17. · Sistem pakar, sebelumnya sudah banyak digunakan, misalnya dalam „Aplikasi Sistem Pakar Diagnosa

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

  • Sistem Pakar Pendiagnosa Penyakit Ginjal

    menggunakan Metode Penalaran Forward

    Chaining dan teknik penelusuran Best-First Search

    Artikel Ilmiah

    Diajukan kepada

    Fakultas Teknologi Informasi

    Untuk memperoleh Gelar Sarjana Komputer

    Peneliti :

    Elisa Ryko Aditya (672010078)

    Hindriyanto Dwi Purnomo, ST., MIT, Ph.D

    Program Studi Teknik Informatika

    Fakultas Teknologi Informasi

    Universitas Kristen Satya Wacana

    Salatiga

    Januari 2016

  • ii

  • iii

  • iv

  • v

  • vi

    672010078

  • vii

    Sistem Pakar Pendiagnosa Penyakit Ginjal menggunakan Metode Penalaran

    Forward Chaining dan teknik penelusuran Best-First Search

    1)

    Elisa Ryko Aditya, 2)

    Hindriyanto Dwi Purnomo

    Fakultas Teknologi Informasi

    Universitas Kristen Satya Wacana

    Jl. Diponegoro 52-60, Salatiga 50711, Indonesia

    Email : 1)

    [email protected], 2)

    [email protected]

    Abtract

    Expert system is computer based system that used fact, knowledge and, specific

    reasoning technique from an expert to solving problems. This expert system

    application, giving the possibility of kidney disease of the user based on symptoms

    experienced. This expert system using Best-First Search algorithm at this

    inference. Make this expert system smarter that doesn’t to test all information.

    And Forward Chaining reasoning used as the foundation of this expert system

    design.

    Key Words :Expert System, Forward Chaining, Best-First Search

    Abstrak

    Sistem pakar adalah sistem berbasis komputer yang menggunakan fakta,

    pengetahuan, dan teknik penalaran yang di dapatkan dari seorang pakar dalam

    memecahkan masalah. Aplikasi sistem pakar ini memberi kemungkinan diagnosa

    penyakit ginjal yang dialami pengguna berdasarkan gejala yang dialaminya.

    Dalam implementasinya, sistem pakar ini menggunakan algoritma Best-First

    Search dalam melakukan inferensinya. Keuntungannya adalah tercipta sistem

    pakar yang pintar tanpa harus menguji semua informasi. Dan metode pencarian

    Forward Chaining sebagai dasar yang digunakan dalam perancangan sistem pakar

    ini.

    Kata Kunci: Sistem Pakar, Forward Chaining, Best-First Search

    1Mahasiswa Fakultas Teknologi Informasi Universitas Kristen Satya Wacana

    2Staff Pengajar Fakultas Teknologi Informasi Universitas Kristen Satya Wacana

  • 1

    PENDAHULUAN

    Saat ini penyakit ginjal adalah penyakit pembunuh nomor 2 di dunia.

    Diperkirakan ada lebih dari 25 Juta penduduk Indonesia yang mengalami

    gangguan fungsi ginjal. Dan pertumbuhan kasus ginjal kronik stadium akhir di

    Indonesia mencapai 2000 kasus baru/tahun. [1] Ditambah lagi di Indonesia hanya

    ada sekitar 100 dokter ginjal untuk menangani jutaan penderita penyakit ginjal di

    Indonesia. Dalam UU Praktek Kedokteran, satu dokter hanya diperbolehkan

    praktek di tiga tempat. Sehingga kehadiran dokter ginjal di rasa sangat minim

    untuk negara Indonesia. Terlebih di kota-kota kecil dan di luar pulau Jawa.

    Besarnya jumlah penderita penyakit ginjal ini disebabkan minimnya kesadaran

    masyarakat tentang gejala awal penyakit ginjal. Kebanyakan rakyat Indonesia

    tidak memiliki kesadaran untuk melakukan deteksi sedini mungkin terhadap

    penyakit ginjal dan menghindari pemeriksaan menyeluruh dikarenakan biaya yang

    terlalu besar. Hasilnya adalah pasien baru melakukan pengobatan setelah kondisi

    ginjalnya sudah mengalami kerusakan sangat parah dan nyaris tidak berfungsi

    lagi.

    Karena itu perlu dibuat sistem yang dapat membantu mendiagnosa penyakit

    ginjal berdasarkan gejala-gejala yang sudah dialami. Sistem tersebut adalah sistem

    pakar. Sistem pakar adalah salah satu bagian dari kecerdasan buatan yang

    mengandung pengetahuan dan pengalaman yang di dapat dari satu atau banyak

    pakar menjadi suatu desain pengetahuan tertentu, sehingga setiap orang dapat

    menggunakanannya untuk menentukan solusi dari gangguan penyakit ginjal

    tersebut.

    Sistem pakar pendiagnosa penyakit ginjal adalah salah satu solusi untuk

    mengatasi permasalahan tersebut. Pengetahuan dari pakar penyakit ginjal di dalam

    sistem ini digunakan sebagai dasar oleh Sistem Pakar untuk menjawab pertanyaan

    (konsultasi) dengan penggunanya nanti. Dengan membangun sistem pakar ini,

    diharapkan keterbatasan informasi mengenai penyakit ginjal tersebut dapat

    dikurangi, sekaligus dengan penyajian tertentu dapat membuka mata masyarakat

    untuk lebih “mengenal” tentang penyakit ginjal supaya risiko penyakit ginjal tidak

    terlalu parah dan dapat cepat terdeteksi dan diatasi.

    1. TINJAUAN PUSTAKA

    1.1 Kecerdasan Buatan Kecerdasan buatan adalah satu ilmu yang mempelajari cara membuat

    komputer melakukan sesuatu seperti yang dilakukan oleh manusia. Ada tiga

    tujuan kecerdasan buatan, yaitu: membuat komputer lebih cerdas, mengerti

    tentang kecerdasan, dan membuat mesin lebih berguna. Salah satu bentuk

    kecerdasan buatan adalah sistem pakar. Kecerdasan buatan memiliki beberapa

    domain penelitian, diantaranya : Formal Tasks, Mundane Task, dan Expert Tasks.

    Dibandingkan dengan kecerdasan ilmiah, kecerdasan buatan memiliki beberapa

    keuntungan, seperti :[2]

    1. Lebih permanen. 2. Memberikan kemudahan dalam duplikasi dan penyebaran.

  • 2

    3. Relatif lebih murah dari kecerdasan ilmiah. 4. Konsisten dan teliti. 5. Dapat didokumentasi. 6. Dapat mengerjakan beberapa task dengan lebih cepat dan lebih baik

    dibanding manusia.

    1.2 Sistem Pakar Sistem pakar adalah sistem berbasis komputer yang menggunakan

    pengetahuan, fakta, dan teknik penalaran dalam memecahkan masalah yang

    biasanya hanya dapat dipecahkan oleh pakar dalam bidang tersebut. [3]

    Sistem pakar untuk melakukan diagnosis kesehatan telah dikembangkan sejak

    pertengahan tahun 1970 oleh Bruce Buchanan dan Edward Shortliffe di Standford

    University. Sistem ini diberi nama MYCIN.[4]

    MYCIN merupakan program interaktif yang melakukan diagnosis meningitis

    dan infeksi bacremia serta memberi rekomendasi antimikrobia. MYCIN, dalam

    uji cobanya mampu menunjukkan kemampuan seperti seorang spesialis.

    Meskipun tidak pernah digunakan secara rutin,oleh dokter, MYCIN merupakan

    referensi yang bagus dalam penelitian kecerdasan yang lain.[5]

    Sistem pakar dapat digunakan oleh:

    1. Orang awam yang bukan pakar untuk meningkatkan kemampuan mereka dalam memecahkan masalah.

    2. Pakar sebagai asisten yang berpengetahuan. 3. Memperbanyak atau menyebarkan sumber pengetahuan yang semakin

    langka.

    Sistem pakar dapat ditampilkan dalam dua lingkungan, yaitu: pengembangan

    dan konsultasi. Lingkungan pengembangan digunakan oleh pembangun sistem

    pakar untuk membangun komponen dan memasukkan pengetahuan ke dalam

    basis pengetahuan. Lingkungan konsultasi digunakan oleh orang yang bukan ahli

    untuk memperoleh pengetahuan dan berkonsultasi.

    Struktur pada sistem pakar dapat dilihat pada gambar 1, yaitu:[6]

    1. Basis pengetahuan (Knowledge base). Berisi pengetahuan-pengetahuan yang dibutuhkan untuk memahami, memformulasikan dan memecahkan

    persoalan.

    2. Motor inferensi (inference engine). 3. Blackboard. Merupakan area kerja memori yang disimpan sebagai

    database untuk deskripsi persoalan terbaru yang ditetapkan oleh data input

    dan digunakan juga untuk perekaman hipotesis dan keputusan sementara.

    4. Subsistem akuisisi pengetahuan. Akuisisi pengetahuan adalah akumulasi, transfer dan transformasi keahlian pemecahan masalah dari pakar atau

    sumber pengetahuan terdokumentasi ke program komputer untuk

    membangun atau memperluas basis pengetahuan.

    5. Antarmuka pengguna. Digunakan untuk media komunikasi antara user dan program.

    6. Subsistem penjelasan. Digunakan untuk melacak respon dan memberikan penjelasan tentang kelakuan sistem pakar secara interaktif melalui

    pertanyaan.

    7. Sistem penyaring pengetahuan.

  • 3

    Gambar 1. Struktur Sistem Pakar

    Sistem pakar, sebelumnya sudah banyak digunakan, misalnya dalam „Aplikasi

    Sistem Pakar Diagnosa Penyakit Ginjal Dengan Metode Dempster-Shafer‟ oleh

    Aprilia Sulistyohati[7]. Dalam penelitiannya, Aprilia memanfaatkan metode

    Dempster-Shafer untuk menciptakan presentasi kepercayaan dari hasil yang

    ditampilkan sistem pakarnya. Menurutnya hal ini penting untuk menilai seberapa

    akurat hasil analisa sistemnya. Berikutnya adalah „Penerapan Forward Chaining

    Pada Program Diagnosa Anak Penderita Autisme‟ oleh Gusti Ayu Kadek Tutik

    A.[8]. Gusti Ayu memanfaatkan metode Forward-Chaining sebagai metode

    penarik kesimpulan dari aplikasinya. Forward-Chaining adalah metode penarikan

    kesimpulan yang berdasar pada data atau fakta yang ada menuju ke kesimpulan.

    Hal ini dilakukan karena data yang digunakan untuk menarik kesimpulan adalah

    gejala-gejala anak penderita autis.

    Kedua penelitian sistem pakar tersebut menggunakan Forward-Chaining

    untuk menentukan diagnosa akhir dari aplikasinya. Kedua sistem tersebut

    memanfaatkan check-box sebagai alat untuk berkomunikasi dengan usernya. User

    akan diberikan daftar gejala, dan diminta untuk check-list gejala-gejala yang

    dialaminya. Cara ini efektif untuk meyakinkan user tentang keakuratan aplikasi

    tersebut. Tetapi, check-box akan menjadi masalah saat daftar gejala yang

    diberikan kepada user sangat banyak. Apabila tidak disertai dengan user-interface

    yang menarik, kemungkinan besar user akan malas membaca daftar gejala yang

    disajikan.

    1.3 Penyakit Ginjal Ginjal adalah organ yang harus dijaga kesehatannya. Karena fungsinya sangat

    penting bagi kesehatan tubuh. jika ginjal mengalami gangguan maka akan

    berpotensi besar untuk terserang penyakit.

  • 4

    Dan sangat penting sekali bagi kita memahami apa saja penyakit ginjal dan

    penyebabnya. Dan selain itu juga kita harus memahami bagaimana cara

    mengatasinya. Karena penyakit ginjal dan penyebabnya bisa menyerang siapa

    saja. Bahkan dari sejak usia dini.

    Penyakit ginjal bisa terjadi karena adanya gangguan di sistem penyaringan

    pada organ ginjal. Di mana ginjal tidak bisa berfungsi dengan baik sebagai organ

    filter racun. Penumpukan yang terjadi ini bisa menyebabkan kerusakan di organ

    ginjal. Ginjal yang bisa terjadi oleh siapa saja baik dari usia anak-anak sampai

    usia dewasa.

    1.4 Teknik Best-First Search Dalam pengembangan sistem ini digunakan teknik penelusuran Best-First

    Search. Teknik Best-First Search adalah teknik penelusuran yang menggunakan

    pengetahuan akan suatu masalah untuk melakukan panduan pencarian ke arah

    node tempat di mana solusi berada. Pencarian jenis ini dikenal juga sebagai

    heuristic. Pendekatan yang dilakukan adalah mencari solusi yang terbaik

    berdasarkan pengetahuan yang dimiliki sehingga penelusuran dapat ditentukan

    harus di mulai dari mana dan bagaimana menggunakan proses terbaik untuk

    mencari solusi.

    Keuntungan jenis pencarian ini adalah mengurangi beban komputasi karena

    hanya node yang memberikan harapan saja yang diuji dan akan berhenti apabila

    solusi sudah mendekati yang terbaik. Ini merupakan model yang menyerupai cara

    manusia mengambil solusi yang dihasilkan merupakan solusi yang mutlak benar.

    Gambar 2. Best-First Search

    2. PERANCANGAN SISTEM

    2.1 Perancangan inferensi

    3.1.1 Forward Chaining

    Tujuan dari penelitian ini adalah membangun sistem pakar yang dapat

    memberi diagnosa penyakit ginjal yang dialami oleh pengguna sistem berdasarkan

    gejala yang dialaminya. Metode yang paling tepat adalah metode Forward-

    Chaining. Pada penelitian ini, metode tersebut paling tepat karena pada saat

    http://umardanny.com/wp-content/uploads/2014/03/bestfirstsearch.jpg

  • 5

    menyelesaikan masalah, inferensi pada Forward-Chaining dimulai dengan

    informasi yang tersedia dan bila semua informasi sesuai dengan syarat dari

    konklusi, barulah diperoleh konklusi dari masalah tersebut.

    Berikutnya adalah menggunakan algoritma Best-First Search sebagai teknik

    dalam mesin inferensi. Sesuai dengan pembahasan pada bagian 2.4 Teknik Best-

    First Search, penelitian ini akan memanfaatkan sifat dari teknik Best-First Search

    yaitu hanya menguji informasi yang memberikan harapan saja. Dengan begitu

    diharapkan dapat terbentuk sistem pakar yang terlihat lebih cerdas daripada harus

    menguji semua informasi yang ada untuk memberikan solusi. Penerapan teknik

    Best-First Search pada penelitian ini adalah sebagai berikut :

    a. Menerjemahkan informasi yang ada(dalam penelitian ini „gejala‟) menjadi node. Berikutnya buat lintasan antar node.

    Gambar 3. Lintasan node

    Dengan asumsi bahwa P1 adalah penyakit. Dengan demikian jika user

    melintasi(memiliki) gejala T26 T30 T25 T28 T29 dan T1, maka user akan

    di antarkan ke penyakit P1.

    b. Pada teknik Best-First Search, fungsi heuristic akan bergerak mencari node dengan nilai terbaik. Pada penelitian ini arah pergerakan heuristik

    tergantung dari current node, apakah user memilih TRUE atau FALSE.

    Gambar 4. Relasi antar node

    c. Seperti dengan Gambar 4, tiap node memiliki parameternya masing-masing. T26 memiliki parameter, IF TRUE THEN T30, IF FALSE

    THEN T27. Jika user memiliki penyakit T26 maka sistem akan memberi

    nilai TRUE pada T26. Maka heuristik akan bergerak kearah T30. Jika

    tidak, maka sebaliknya. Dalam teori, heuristic akan mencari biaya

    terendah. Tetapi dalam penelitian ini, heuristic akan mencari nilai TRUE

    atau FALSE. Dengan begitu maka fungsi heuristic akan menuju ke node

    selanjutnya dan seterusnya.

  • 6

    d. Inferensi akan mengulang tahap c hingga akhirnya sistem akan mengantarkan user ke salah satu penyakit.

    3.2 Perancangan aturan Dalam perancangan sistem pakar ini dibagi menjadi tiga langkah, yaitu:

    langkah pertama menentukan kebutuhan dari sistem itu sendiri dan

    mengumpulkan data-data referensi yang berkaitan seperti bentuk dari gangguan

    ginjal itu sendiri serta cara kerja sistem pakar. Sehingga didapatkan kaidah dengan

    menggunakan premis dan konklusi untuk membangun sistem pakar ini. Kaidah

    yang terbentuk adalah menggunakan gejala sebagai premis dan Penyakit sebagai

    konklusi.

    Langkah kedua adalah mengumpulkan fakta dan pengetahuan yang

    berhubungan dengan gejala-gejala dan penyakit gangguan ginjal yang nantinya

    akan digunakan untuk mengambil satu kesimpulan. Fakta dan pengetahuan

    tersebut didapatkan dari hasil wawancara dengan dua dokter spesialis ginjal

    Dr.,dr.,Shofa Chasani, Sp.PD,KGH dan dr.Lestariningsih, Sp.PD,KGH dari rumah

    sakit Dr. Karyadi Semarang dan beberapa buku tentang penyakit ginjal. Kemudian

    diakumulasikan menjadi seperti pada tabel 1. Pada tabel 1 didapatkan informasi

    tentang nama gangguan ginjal yang dimaksud, gejala yang mengikutinya, serta

    informasi lain tentang gangguan ginjal tersebut dan cara pencegahan dan

    pengobatannya.

    KODE NAMA PENYAKIT GEJALA TENTANG PENCEGAHAN

    P1 BATU GINJAL Nyeri pada perut

    Nyeri pada pinggang

    Nyeri pada saat kencing

    Tabel 1. Tabel akumulasi penyakit ginjal

    Langkah ketiga, fakta dan pengetahuan yang telah didapatkan tersebut

    diterjemahkan menjadi basis pengetahuan yang akan disimpan dalam sistem pakar

    yang dibuat. Ini bertujuan agar rule-engine dapat dibuat dengan baik. Untuk itu

    dibuatlah tabel 2 yang berisi knowledge base yang dapat digunakan untuk

    memformulasikan sistem dengan baik. Setelah tabel ini dibuat, maka akan terlihat

    gejala mana yang sering ditemui dan gejala mana yang unik yang hanya dijumpai

    pada penyakit tertentu.

    ID_PERT GEJALA P1 P2 P3 P4 P5 P6 P7 P8

    T1 Nyeri pada pinggang? * *

    T2 Nyeri pada perut? * * Tabel 2. Tabel gejala

    Berdasarkan data-data tersebut, akan ditentukan relasi antar penyakit dan

    gejala untuk dijadikan Rule-Engine dari sistem pakar ini. Dalam perancangan ini,

    ditulis dalam bentuk pernyataan IF [premis], THEN [konklusi], dan ELSE

    [konklusi lain]. Pada sistem pakar ini, ada konklusi yang berisi konklusi final dan

  • 7

    ada yang berisi premis selanjutnya yang harus dipenuhi untuk memenuhi kriteria

    kaidah tertentu. Bentuk pernyataannya adalah sebagai berikut :

    IF [gejala 1]

    THEN [gejala 2]

    ELSE [penyakit 1]

    Dari bentuk kaidah di atas, dapat diterapkan contoh kaidah seperti berikut :

    IF [Nyeri pinggang]

    THEN [Nyeri perut]

    ELSE [Otot perut berkontraksi]

    IF [Nyeri perut]

    THEN [Nyeri pada selangkangan]

    ELSE [Nyeri saat pinggang diketok]

    IF [Nyeri pada selangkangan]

    THEN [Batu Ginjal]

    ELSE [Infeksi Ginjal]

    Dengan bentuk kaidah tersebut, akan dibangun aturan atau tree dengan

    langkah-langkah sebagai berikut :

    a. Memprioritaskan gejala paling sering dijumpai(common) untuk muncul terlebih dahulu. Hal ini dimaksudkan agar seluruh penyakit tercover dan

    memiliki peluang yang sama untuk muncul. Setelah semua gejala tersebut

    muncul, barulah gejala yang lebih unik di munculkan.

    b. Pada penelitian ini penyakit Radang/Nefritis(P5) adalah penyakit yang memiliki gejala paling banyak namun hanya memiliki satu gejala unik.

    Maka pembentukan tree dapat dimulai dari gejala-gejala penyakit itu.

    Asumsikan penyakit Radang/Nefritis memiliki gejala dengan kode T26,

    T30, T25, T28, T31, T34, T40, T32, T33, T35, T36, dan T23. Maka

    bentuk awal tree akan seperti gambar 5.

    Gambar 5. Bentuk awal tree

    Penempatannyapun harus diperhatikan. Diurutkan mulai dari gejala paling

    sering dijumpai(T26) hingga gejala paling unik(T23)

    c. Penyakit yang memiliki banyak gejala common dan sedikit gejala unik berikutnya adalah Diabeter Insipidus(P7). Berikutnya adalah

    menambahkan gejala penyakit ini dalam tree.

    Gambar 6. Bentuk tree selanjutnya

    d. Setelah semua gejala dari setiap penyakit di masukkan kedalam tree dan digambar menggunakan aplikasi power point, maka akan terlihat bentuk

    akhir tree seperti pada gambar 7.

  • 8

    Gambar 7. Relasi antar gejala penyakit

    Setelah diagram pada gambar 7 dibuat, barulah dibuat tabel yang bisa

    digunakan oleh mesin untuk menjalankan proses inferensinya. Perancangan tabel

    inferensi didasarkan pada diagram yang dibuat. Tujuan dari perancangan tersebut

    agar mudah dalam penjelasan inferensi sistem kepada user.

    ID_PERT GEJALA PERTANYAAN YES NO

    T1 Anda merasakan nyeri pada pinggang? P1 T2

    T2 Anda merasakan Nyeri pada perut? T3 T32 Tabel 3. Rule-Engine dalam bentuk tabel.

    Tabel 3 adalah bentuk implementasi dari inferensi dari diagram yang telah

    dibuat sebelumnya. Pada tahap ini, klausa THEN berubah menjadi YES dan

    ELSE menjadi NO. Ini bertujuan agar inferensi ini nantinya dapat mudah di

    mengerti oleh user.

    Setelah semua data yang dibutuhkan selesai, dilakukan disain sistem dengan

    menggunakan ERD(Entity Relationship Diagram). Pada penelitian ini, digunakan

    tiga jenis diagram untuk menggambarkan rancangan sistem. Yang pertama adalah

    use case diagram untuk menggambarkan fungsionalitas sistem, kemudi activity

    diagram admin dan user untuk menggambarkan alur kerja sistem, dan entity

    relationship diagram database untuk menunjukkan relasi tabel dalam database.

  • 9

    MenambahDataGejalaMenghapusDataGejala

    MengubahDataGejala

    MenambahDataPenyakit

    MenghapusDataPenyakit

    MengubahDataPenyakit

    MenghapusDataAdmin MengubahDataAdmin

    MenambahDataAdmin

    MelihatDataGejala

    MelihatDataAdmin

    MelihatDataPenyakit

    MengubahDataUser

    MenghapusDataUser

    MelihatDataUser

    MelihatHasilDiagnosa

    MenambahDataUser

    User

    MengolahDataGejala

    MengolahDataPenyakit

    MengolahDataAdmin

    InteraksiSistemPakar

    MengolahDataUser

    Admin

    Gambar 8. Use Case Diagram

    Dari gambar 8 menunjukkan bahwa Admin memiliki kemampuan untuk

    mengolah data penyakit, mengolah data Admin, mengolah data User, dan

    berinteraksi dengan sistem pakar itu sendiri. Sedangkan User hanya memiliki

    wewenang untuk menambah data user, berinteraksi dengan sistem pakar, dan

    melihat hasil diagnosa.

  • 10

    Start

    Login

    Memilih Menu

    Mengolah Data

    Gejala

    Mengolah Data

    Penyakit

    Mengolah Data

    User

    Mengolah Data

    Admin

    Selesai

    Memproses

    Login

    ValidasiLogin Salah

    Admin

    Memproses

    Pilihan Admin

    Menampilk

    an Data

    Periksa

    Data Admin

    Menjalankan

    Query Pilihan

    DatabaseSystemAdmin

    Gambar 9. Activity Diagram Admin

    Pada Activity Diagram Admin pada gambar 9 menunjukkan bahwa admin

    diwajibkan untuk login terlebih dahulu untuk dapat masuk ke form Admin. Jika

    username dan password valid, maka admin dapat melanjutkan aktivitas

    selanjutnya.

  • 11

    Start

    Mulai

    Mengisi Data

    Diri

    Keputusan

    Ya

    Interaksi Dengan

    Sistem Pakar

    Tidak

    Selesai

    Menampilkan

    Menu Awal

    Tawarkan

    Mengisi Data Diri

    Menambahka

    n Data User

    Menampilkan

    Pertanyaan

    Menjalankan

    Aturan Inferensi

    Menampilkan

    Hasil Diagnosa

    Menjalankan

    Query

    Menjalankan Query

    Sistem Pakar

    DatabaseSistemUser

    Gambar 10. Activity Diagram User

    Pada gambar Activity Diagram User di gambar 10 menunjukkan bahwa User

    dapat melakukan interaksi dengan sistem pakar dengan atau tanpa pendaftaran

    sesuai dengan keinginan user.

    Pada penelitian ini tipe database yang digunakan adalah WAMPSERVER.

    Gambar 11. Relasi antar tabel

  • 12

    Dari gambar 11 dapat dilihat bahwa aplikasi sistem pakar pendiagnosa

    penyakit ginjal ini memiliki empat tabel yaitu tabel administrator, tabel penyakit,

    tabel pertanyaan, dan tabel user. Pada gambar 11 diketahui bahwa tabel penyakit

    dan tabel pertanyaan memiliki relasi many to many yang menandakan satu

    penyakit bisa memiliki banyak pertanyaan dan sebaliknya. Maka dari itu

    dibutuhkan tabel tambahan yaitu tabel penyakit_pertanyaan yang menyimpan

    setiap relasi yang ada. Tabel user dan pertanyaan juga memiliki hubungan many

    to many. Jadi dibutuhkan satu tabel tambahan, yaitu tabel user_pertanyaan untuk

    mendaftarkan tiap relasi yang ada.

    3. Implementasi

    3.1 Implementasi sistem Setelah selasai mendesain sistem, langkah berikutnya adalah melakukan

    perancangan user-interface dan membangun aplikasi. Hasil perancangan dan

    desainnya adalah seperti berikut:

    Gambar 12. Form login dan Start

    Gambar 12 merupakan tampilan awal saat pengguna sistem membuka aplikasi

    tersebut. Dengan desain minimalis, admin harus melakukan login terlebih dahulu

    untuk dapat masuk ke menu admin. Sedangkan user dapat langsung klik Start atau

    checklist pada pilihan di bagian bawah terlebih dahulu untuk melakukan

    pendaftaran.

    Gambar 13. Tampilan interaksi sistem pakar

  • 13

    Setelah klik tombol Start, user akan dihadapkan dengan form pertanyaan. Pada

    form tersebut user akan diajukan beberapa pertanyaan. Setelah menjawab

    beberapa pertanyaan dan mencapai suatu kondisi tertentu, sistem akan

    menampilkan menu diagnosa seperti pada gambar 14.

    Gambar 14. Tampilan diagnosa sistem pakar

    Pada menu diagnosa, user akan mendapatkan hasil diagnosa dan sedikit

    penjelasan dari diagnosa tersebut. Pada form ini juga ditampilkan histori gejala-

    gejala yang telah dipilih oleh user. Setelah selesai dengan hasil diagnosa, user

    dapat mencoba lagi dengan klik tombol COBA LAGI.

    Gambar 15. Menu manipulasi penyakit oleh admin

  • 14

    Gambar 15 adalah menu yang dimunculkan oleh sistem saat admin berhasil

    login ke dalam sistem. Dalam menu ini admin dapat melihat data penyakit dan

    gejalanya dengan memilih daftar penyakit dari combo-box yang tersedia. Di

    halaman ini pula admin dapat mengolah data penyakit dengan tombol yang ada.

    Saat admin klik tombol Ubah Penyakit, sistem akan memberi wewenang pada

    admin untuk mengubah tiap detail dari penyakit yang di ubah. Field berubah

    menjadi editable sehingga admin dapat dengan mudah mengubah data penyakit

    tersebut.

    Gambar 16. Menu menambah data penyakit

    Saat admin klik tombol tambah penyakit, sistem akan menampilkan FORM

    TAMBAH DATA PENYAKIT. Di sini admin dapat menambahkan penyakit baru,

    lengkap dengan data penyakit dan gejala yang mengikuti penyakit tersebut. Gejala

    dapat dipilih dengan memilih gejala pada combo-box Nama Gejala lalu klik

    tombol tambah yang ada didekat combo-box tersebut. Setelah selesai, user dapat

    klik tombol Tambah yang ada dibawah dan data penyakit yang baru berhasil

    ditambahkan.

    Gambar 17. Menu menambahkan user

  • 15

    Menu menambahkan user pada gambar 17 dapat diakses oleh user ataupun

    admin. Pada Form ini user ataupun admin diminta untuk mengisikan data user,

    yang nantinya data tersebut dapat digunakan sebagai referensi untuk

    pengembangan sistem di masa depan. Data tersebut berupa nama user, tanggal

    lahir atau umur, diagnosa aktual dari dokter, dan gejala-gejala yang user rasakan

    dapat di inputkan secara lengkap dan disimpan ke dalam database.

    Dalam melakukan inferensi, sistem ini menggunakan beberapa kode. Kode

    program 1, kode program 2 dan kode program 3 digunakan oleh sistem saat

    melakukan menjalankan proses „konsultasi‟ dengan user.

    Kode Program 1. Kode untuk tombol YA

    Kode Program 1 merupakan format kode Java untuk action pada tombol YA.

    Pada kode ini dijelaskan metode akan menjalankan query SQL SELECT * FROM

    pertanyaan WHERE di_pert = yes. Query tersebut dimaksudkan untuk mengambil

    data pada tabel pertanyaan dimana data tersebut memiliki ID_PERT yang sama

    public void btYa(){ Connection conn = connectionClass.GetConnections(); Statement st; ResultSet rs; String task = yes; try { st = conn.createStatement(); rs = st.executeQuery("select * FROM pertanyaan where ID_PERT = '"+task+"'"); while (rs.next()) { String PERTANYAAN = rs.getString("PERTANYAAN"); String IF_YES = rs.getString("IF_YES"); String IF_NO = rs.getString("IF_NO"); String ID_PERT = rs.getString("ID_PERT"); String GEJALA = rs.getString("GEJALA"); lbPertanyaan.setText(PERTANYAAN); fldValue.setText(GEJALA); yes = IF_YES; no = IF_NO; current = ID_PERT; } } catch (Exception e) { } finally{ try { st = conn.createStatement(); rs = st.executeQuery("select * FROM penyakit where ID_PENY = '"+task+"'"); while (rs.next()) { String PENYAKIT = rs.getString("PENYAKIT"); String TENTANG = rs.getString("TENTANG"); String AKSI = rs.getString("AKSI"); setVisible(false); HasilForm hf = new HasilForm(); hf.setVisible(true); ya(); then(); hf.lbDiagnosa.setText("'"+PENYAKIT+"'"); hf.fldAksi.setText(AKSI); hf.fldTtgPenyakit.setText(TENTANG); } } catch (Exception e) { } } }

  • 16

    dengan nilai pada variabel yes. Variabel yes sudah di deklarasikan sebelumnya

    dengan default tertentu sesuai dengan rule-engine. Setelah mengambil data pada

    tabel pertanyaan, Kode Program 1 akan mengubah nilai variabel lain sesuai

    dengan data yang didapatkan dari tabel sebelumnya. Jika saat menjalankan query

    SQL SELECT * FROM pertanyaan WHERE di_pert = yes tidak didapatkan nilai

    yang sesuai dengan ID_PERT, maka metode akan menjalankan query dari finally

    yang akan menampilkan menu hasil diagnosa lengkap dengan data yang

    tersimpan.

    Kode Program 2. Kode untuk mencegah looping

    Kode Program 2 merupakan format kode Java untuk mencegah user terjebak

    dalam looping. Dalam rule-engine ini, looping dapat terjadi jika pertanyaan yang

    terpilih melemparkan konklusi ke pertanyaan selanjutnya yang sebenarnya juga

    merupakan konklusi dari premis itu. Looping hanya muncul saat pertanyaan dari

    gejala yang sering dijumpai muncul. Saat menangani looping, kode ini akan

    membawa user ke premis selanjutnya.

    private void ya(){ String s =""; boolean exists = false; for (int i = 0; i < tbPilihan.getRowCount(); i++) { s = tbPilihan.getValueAt(i, 0).toString().trim(); if (fldValue.getText().equals(s)) { exists = true; break; } } Connection conn = connectionClass.GetConnections(); Statement st; ResultSet rs; String task = current; if (!exists){ try { st = conn.createStatement(); rs = st.executeQuery("select * FROM pertanyaan where ID_PERT = '"+task+"'"); while (rs.next()) { String GEJALA = rs.getString("GEJALA"); String gejalas = GEJALA; String add[]={gejalas}; table.addRow(add); } } catch (Exception e) { btTidak(); } }else { btTidak(); } }

  • 17

    Kode Program 3. Kode untuk tombol YA

    Fungsi Kode Program 3 hampir sama seperti Kode Program 1, bedanya

    metode ini mengambil nilai dari variabel no. Ditambah jika user tidak memilih

    gejala selama 12 kali, maka metode ini akan menghentikan inferensi dengan

    memunculkan diagnosa tidak memiliki gangguan ginjal apapun.

    3.2 Pengujian Sistem Pengujian sistem adalah elemen dari jaminan kualitas perangkat lunak dan

    mempresentasikan kajian pokok dari spesifikasi, desain dan pengkodean [8].

    Metode pengujian yang dipergunakan pada aplikasi sistem pakar pendiagnosa

    public void btTidak(){ Connection conn = connectionClass.GetConnections(); Statement st; ResultSet rs; String task = no; try { st = conn.createStatement(); rs = st.executeQuery("select * FROM pertanyaan where ID_PERT = '"+task+"'"); while (rs.next()) { String PERTANYAAN = rs.getString("PERTANYAAN"); String IF_YES = rs.getString("IF_YES"); String IF_NO = rs.getString("IF_NO"); String ID_PERT = rs.getString("ID_PERT"); String GEJALA = rs.getString("GEJALA"); lbPertanyaan.setText(PERTANYAAN); fldValue.setText(GEJALA); yes = IF_YES; no = IF_NO; current = ID_PERT; tmp++; if (tmp == 11){ yes = "P9"; no = "P9"; } } } catch (Exception e) { } finally{ try { st = conn.createStatement(); rs = st.executeQuery("select * FROM penyakit where ID_PENY = '"+task+"'"); while (rs.next()) { String PENYAKIT = rs.getString("PENYAKIT"); String TENTANG = rs.getString("TENTANG"); String AKSI = rs.getString("AKSI"); setVisible(false); HasilForm hf = new HasilForm(); hf.setVisible(true); then(); hf.lbDiagnosa.setText("'"+PENYAKIT+"'"); hf.fldAksi.setText(AKSI); hf.fldTtgPenyakit.setText(TENTANG); setVisible(false); } } catch (Exception e) { } } }

  • 18

    penyakit ginjal ini adalah dengan bantuan user yang dapat dipandu pada saat

    penggunaan sistem.

    Jenis user pertama yang ditunjuk adalah orang-orang yang tidak memiliki

    gangguan ginjal apapun. Tujuannya adalah melihat apakah sistem dari segi

    aplikasi dapat berjalan dengan baik dan data yang ada dalam database dapat

    terproses dengan baik oleh sistem. Setelah diuji oleh enam orang yang berbeda

    dan dicatat, didapat hasil seperti terdapat pada tabel 4.

    Setelah sistem diuji coba ternyata ada kesalahan sistem saat melakukan

    inferensi yaitu terjadi looping, muncul pertanyaan yang sama berulang kali

    terutama saat user tidak memilih gejala apapun sehingga aplikasi tidak dapat

    menampilkan hasil. Lalu sistem diperbaiki sesuai dengan evaluasi yang ada.

    Berikutnya adalah melakukan pengujian sistem dimana pengujian dilakukan

    dengan bantuan penderita gangguan ginjal yang telah mendapat diagnosa dokter

    terlebih dahulu. Langkah ini sangat penting untuk mengukur keandalan dari

    sistem pakar yang dibuat.

    DIAGNOSA DOKTER

    JUMLAH PERTANYAAN

    YANG MUNCUL

    JUMLAH YANG

    DIPILIH

    HASIL DIAGNOSA

    JUMLAH YANG SESUAI

    DENGAN DATA

    STATUS

    Gagal

    ginjal

    kronis

    12 8 Gagal

    ginjal

    kronis

    8 Tepat

    Gagal

    ginjal

    kronis

    15 9 Infeksi

    ginjal

    3 Salah

    Gagal

    ginjal

    kronis

    13 9 Gagal

    ginjal

    kronis

    8 Tepat

    Gagal

    ginjal

    kronis

    12 8 Gagal

    ginjal

    kronis

    8 Tepat

    Infeksi

    ginjal

    12 5 Infeksi

    ginjal

    3 Tepat

    Tabel 5. Hasil uji coba pada user penderita ginjal.

    Setelah diuji coba oleh lima orang yang berbeda, hasilnya adalah empat dari

    lima diagnosa adalah tepat. Angka keberhasilan ini membuktikan bahwa sistem

    telah bekerja dengan cukup baik.

    Angka ini sudah cukup baik, namun karena keterbatasan sampel, pengujian

    hanya dapat dilakukan pada data penyakit gagal ginjal kronis dan infeksi ginjal

    saja.

  • 19

    4. Simpulan Dalam penelitian ini dikembangkan sebuah aplikasi sistem pakar berbasis

    aplikasi untuk mendiagnosa jenis penyakit ginjal pada manusia. Sistem pakar ini

    mampu memberi diagnosa awal terkait jenis penyakit ginjal yang di derita. Sistem

    pakar ini bekerja dengan cara memberikan beberapa pertanyaan kepada user,

    kemudian metode inferensi didalamnya akan menyimpulkan penyakit yang di

    derita oleh pengguna aplikasi ini. Sistem pakar ini menggunakan Metode

    Penalaran Forward Chaining, dimana dalam penerapannya sistem ini

    membutuhkan informasi berupa gejala-gejala untuk menentukan penyakit yang

    mungkin diderita oleh user. Penggunaan teknik Best-First Search bertujuan agar

    jumlah informasi yang dibutuhkan tidak terlalu banyak, sehingga user lebih

    dipermudah dalam penggunaan sistem pakar ini. Kemudian, sistem pakar ini

    memiliki tingkat akurasi dan kinerja yang baik, terbukti dengan uji coba yang

    dilakukan pada lima orang penderita penyakit ginjal yang berbeda dan empat

    diantaranya sesuai dengan diagnosa yang sudah di berikan dokter. Kedepannya,

    penelitian ini bisa dikembangkan dengan menggunakan metode inferensi yang

    lebih baik, menyempurnakan knoweledge base, dan penggunaan aplikasi berbasis

    web agar aplikasi yang dihasilkan dapat bekerja lebih baik lagi.

    5. Saran Untuk penelitian ke depan disarankan untuk menyempurnakan knowledge

    base sistem pakar ini dengan menambah lebih banyak sumber data karena dalam

    penelitian ini hanya menggunakan data dari dua dokter ginjal di rumah sakit

    dokter Karyadi. Ataupun penambahan fitur seperti perancangan sistem dalam

    bentuk website sehingga sistem pakar ini dapat diakses secara online kapan saja

    dan di mana saja. Dan untuk memberikan hasil diagnosa yang lebih baik, sistem

    pakar ini dapat digabungkan dengan data sampel hasil dari laboratorium dan

    dengan menggunakan metode Case-Based Reasoning yang membuat sistem dapat

    belajar dari inferensi yang pernah di lakukan untuk meningkatkan tingkat akurasi

    diagnosa selanjutnya. Karena dalam sistem ini memiliki kelemahan untuk

    memperbarui knowledge base, maka dalam penelitian selanjutnya dapat diuji coba

    dengan menggunakan metode inferensi lain yang dapat mengurangi kelemahan

    sistem ini namun dengan keandalan inferensi yang baik.

  • 20

    6. Daftar Pustaka

    [1] Kementerian Kesehatan RI, 2015, Tingkatkan komitmen penanganan kasus

    ginjal, http://www.buk.kemkes.go.id, diakses 27 November 2015

    [2] Minsky, Marvin Lee, 1988, The Society of Mind; New York: Simon and

    Schuster.

    [3] Martin dan Oxman, 1988, Building Expert System; Prentice-Hall.

    [4] Heckerman, Harold H,. 1968, Distribution of Pharmacy Manpower in West

    Virginia.

    [5] Kursini, 2006., Sistem Pakar, Teori dan Aplikasi; Ed. I. – Yogyakarta: ANDI.

    [6] Turban, Efraim, 1995, Decision Support and Expert System: Management

    Support Systems; Prentice-Hall International

    [7] Sulistyohati, A., 2008., Aplikasi Sistem Pakar Diagnosa Penyakit Ginjal

    dengan Metode Dempster-Shafer. Yogyakarta: Seminar Nasional Aplikasi

    Teknologi Infoemasi.

    [8] Tutik A., Gusti Ayu, 2009., Penerapan Forward Chaining Pada Program

    Diagnosa Anak Penderita Autisme. Yogyakarta: Universitas Kristen Duta

    Wacana