Pages

Banner 468 x 60px

 

Sunday, October 20, 2019

Rancangan Sistem Pakar Deteksi Dini Penyakit ISPA

0 comments
Rancangan Sistem Pakar Deteksi Dini Penyakit ISPA





       Salah satu penyebab penyakit ISPA timbulkan karena gangguan pernafasan dari polusi udara dan kondisi udara yang buruk dan tidak sehat, faktor penyebabnya seperti kebakaran hutan yang baru-baru ini melanda provinsi riau dan sekitarnya yang menyebabkan seluruh wilayah riau terkena polusi udara karena banyaknya kabut asap yang ada di udara, hal ini tentu membuat kualitas udara menjadi sangat tidak baik untuk di hirup. Menurut pantauan alat deteksi udara sehat yang ada dipekanbaru, tingkat terparah kondisi udara saat itu mencapai tingkat beracun atau sangat berbahaya, kondisi itu memaksa pemerintah daerah meliburkan sekolah-sekolah yang ada dipekanbaru dan seluruh daerah riau yang terkena dampak asap khususnya untuk menghindari dampak polusi udara ini.  Salah satu dampak negatif polusi udara karena asap adalah dapat menimbulkan penyakit Infeksi Saluran Pernafasan atau yang bisa di sebut penyakit ISPA, penyakit ISPA adalah terjadinya infeksi yang parah pada bagian sinus, tenggorokan, saluran udara, atau paru-paru. Infeksi yang terjadi lebih sering disebabkan oleh virus meski bakteri juga bisa menyebabkan kondisi ini.

Sistem pakar adalah suatu program komputer yang mengandung pengetahuan dari satu atau lebih pakar manusia mengenai suatu bidang spesifik. Menurut (Kusrini, 2006) ada tiga orang yang terlibat dalam sistem pakar:
1) Pakar adalah orang yang memiliki pengetahuan, khusus, pendapat pengalaman dan metode, serta kemampuan untuk mengaplikasikan keahliannya tersebut guna menyelesaikan masalah.
2) Knowledge engineer (Perekayasa Sistem) adalah orang yang membantu pakar dalam menyususun area permasalahan dengan menginterprestasikan dan mengintegrasikan jawaban-jawaban pakar atas pertanyaan yang diajukan, menggambarkan analogi, mengajukan counter example dan menerangkan kesulitan-kesulitan konseptual.
3) Pemakai, sistem pakar memiliki beberapa pemakai, yaitu  pemakai bukan pakar, pelajar, pembangun sistem pakar yang ingin meningkatkan dan menambahkan basis pengetahuan, dan pakar.

Tujuan Sistem Pakar :
Sistem pakar dibuat pada wilayah pengetahuan tertentu untuk suatu kepakaran tertentu yang mendekati kemampuan manusia di salah satu bidang. Manfaat sistem pakar antara lain membuat seorang yang awam dapat bekerja seperti para ahli, dapat bekerja dengan informasi yang tidak lengkap atau tidak pasti.
Dari latar belakang dan permasalahan tersebut maka penulis ingin membangun sebuah sistem berbasis teknologi informasi  dengan menerapkan ilmu sistem pakar dalam menganalisa dan   mengidentifikasi penyakit ISPA tersebut, serta sistem diharapkan mampu memberikan solusi bagi yang telah terkena penyakit ini dengan mengadopsi pengetahuan langsung dari ahlinya yaitu dokter spesialis pernafasan.
Tujuan dari pembangunan sistem ini yaitu untuk membantu user yang tidak dapat berkonsultasi dengan dokter spesialis secara langsung, yang disebabkan karena banyak hal mulai dari kesibukan dokter tersebut, minimnya rumah sakit yang menyediakan dokter spesialis pernafasan,  user tidak sempat berkunjung memeriksa, latar belakang ekonomi lemah, dan kurangnya pengetahuan tentang penyakit ISPA sehingga banyak user tidak dapat mengenali gejala dan solusi untuk penyebuhan penyakit ini.

Struktur System Pakar Deteksi Dini Penyakit ISPA
 Langkah – langkah pengembangan sistem dimulai dari menentukan variabel-variabel utama dalam mendeteksi penyakit ISPA ini, kemudian  pengumpulan basis pengetahuan, ini adalah yang paling utama basis pengetahuan ini biasanya di peroleh langsung dari ahlinya yaitu dokter spesialis Pernafasan, kemudian adalah menentukan proses akuisisi pengetahuan dan model representasi  kedalam sistem, rencana penulis menggunakan bahasa pemrograman matlab, namun ini dapat kondisional mengingat bahasa pemrograman yang familiar saat ini yaitu python dan android, rancangan GUI atau interface agar memudahkan user menggunakan system terserbut.
 Berikut Flowchart tahapan pengembangan sistem.

Selanjutnya yaitu rencana proses Akuisisi Pengetahuan pada sistem pakar ini sebagai berikut. 
Proses akuisisi pengetahuan sistem ini menggunakan Rule Induction dan berikut tahapan – tahapannya :
1.      Identifikasi  jenis Penyakit
Proses awal ini menentukan banyak jenis penyakit yang dapat dikenali oleh sistem, yaitu Penyakit Panas dalam (A1), penyakit Deman (A2), penyakit ISPA (A3).
2.      Identifikasi atribut yang dimiliki Objek
Terdapat beberapa atribut yang menjadi acuan terhadap penyakit-penyakit di atas.
a. Sakit Kepala
b. Hidung tersumbat
c. Bibir pecah-pecah
d. Sariawan
e. Gangguan Pencernaan diare
f. Batuk
g. Menggigil
h. Suhu tubuh naik
i. Dehidrasi
j. Mual
k. Sesak nafas
l. Muntah
m. Pilek yang berkepanjangan

3.      Menyaring/filter  atribut yang diperlukan
a. Sakit Kepala
b. Bibir pecah-pecah
c. Gangguan Pencernaan diare
d. Batuk
e. Menggigil
f. Suhu tubuh naik
g. Dehidrasi
h. Sesak nafas
i. Muntah
j. Pilek yang berkepanjangan
Atribut mual, hidung tersumbat, dan sariawan dibuang karena dianggap kurang kuat pengaruhnya.
4.      Menentukan Decision Tree
Berikut tabel untuk menggambarkan decision tree dari deteksi penyakit ini.
      
          Atribut
Jenis Penyakit
Deman
Panas Dalam
ISPA
Sakit Kepala
YES
NO
YES
Bibir pecah-pecah
NO
YES
NO
Batuk
NO
YES
NO
Diare

YES
YES
Menggigil
YES
NO
NO
Suhu Tubuh Naik
YES
NO
NO
Dehidrasi
YES
NO
NO
Sesak Nafas
NO
NO
YES
Muntah
NO
NO
YES
Pilek Berkepanjangan
NO
NO
YES



Gambar rancangan decision tree dari tabel diatas



5.      Membuat Role
Tahap akhir dari proses akuisisi pengetahuan yaitu memasukkkan aturan -aturan yang nanti akan menjadi acuan system dalam mengenali masalah dan membuat kesimpulan, adapun aturan telah disederhanakan penulis ke tahap paling sederhana sesuai dengan tahap - tahap yang telah diajarkan pada mata kuliah sistem pakar. berikut ini adalah Production role untuk sistem pakar yang akan di buat 

1.      IF Sakit Kepala AND Dehidrasi  AND Suhu Tubuh Naik THEN Demam
2.      IF Bibir pecah-pecah  AND Batuk THEN Panas Dalam
3.      IF Sakit Kepala AND Muntah AND Sesak Nafas AND Pilek panjang THEN ISPA


Tahapan akhir dari tugas yang diberikan adalah menentukan Rancangan Model Representasi dari sistem pakar ini, maka penulis mendeskripsikan bahwa penulis menggunakan deklarasi knowledge representation model network representation decesion tree ,adapun rancangan seperti gambar dibawah ini.


Keuntungan utama representasi pengetahuan dengan pohon keputusan adalah dapat menyederhanakan proses akuisisi pengetahuan dan dapat dengan mudah dikonversikan ke bentuk aturan (rule).
Sekian penjelasan untuk rancangan system pakar deteksi dini penyakit ISPA , penulis menyadari masih banyak kekurangan dalam mendeskripsikan ide penulis dan untuk itu penulis berharap masukan yang membangun untuk mewujudkan rancangan sistem ini, akhir kata penulis ucapkan terima kasih. Salam Inovasii!!!
Read more...

Saturday, May 11, 2019

Tim Kerja Praktek Dinas Pariwisata Rokan Hulu

0 comments

Moment Kerja Praktek  Rokan Hulu


Hari pertama yang ditungg pada tanggal 7 january tiba dengan keadaan yang kurang mendukung dimana cuaca mendung namun tetap kompak.
Read more...

Wednesday, December 19, 2018

Game Sederhana Menggunakan AI

18 comments

Game Sederhana My AI Pong menggunakan Artificial Intelligent


Game MyAIPong adalah sebuah game arcade yang menarik untuk dimainkan. Cara bermainnya cukup mudah yaitu pemain (player) menggerakkan brick atau papan ke kiri dan ke kanan sesuai arah bola untuk memantulkan bola ke arah lawan. Pada game ini kita akan melawan sebuah artificial inteligent yang sudah di program sebelumnya. Fyi game ini terinspirasi dari permainan bola ping-pong loh.
Artificial Inteligent atau kecerdasan buatan adalah ilmu yang mempelajari cara membuat komputer melakukan sesuatu seperti yang dilakukan manusia (Minsky, 1989). Definisi lain diungkapkan oleh H. A. Simon (1987), kecerdasan buatan merupakan kawasan penelitian, aplikasi dan instruksi yang terkait dengan pemrograman komputer untuk melakukan sesuatu hal yang dalam pandangan manusia adalah cerdas. Definisi kecerdasan buatan lainnya juga diungkapkan oleh Rich and Knight (1991), kecerdasan buatan merupakan sebuah studi tentang bagaimana membuat komputer melakukan hal-hal yang pada saat ini dapat dilakukan lebih baik oleh manusia. Dan definisi lainnya juga ditulis dalam Encyclopedia Britania, Kecerdasan Buatan (AI) merupakan cabang dari ilmu komputer yang dalam merepresentasi pengetahuan lebih banyak menggunakan bentuk simbol-simbol daripada bilangan, dan memproses informasi berdasarkan metode heuristic atau dengan berdasarkan sejumlah aturan.
Game ini dibuat dengan menggunakan Processing, yang merupakan sebuah software sederhana yang digunakan untuk coding di suatu komputer, penggunaannya hampir sama mudahnya dengan software text editor sederhana (seperti TextEdit atau Notepad) yang dikombinasikan dengan sebuah media player. Setiap sketsa (program pada Processing disebut dengan sketsa) memiliki sebuah nama file, sebuah tempat dimana kamu dapat membuat coding, dan beberapa tombol untuk menyimpan, membuka, dan menjalankan sketsa.


jika anda ingin mencoba anda harus mendownload source code sebelumnya di diodwiki.blogspot.com part 1 dan wisnudhanti.blogspot.com part2
Berikut Source code Part 3 Lanjutannya

Source code  Program/Game

void drawPembatas() {
  fill(0, 100);
  rectMode(CENTER);
  rect(pembatasX, pembatasY, pembatasWidth, pembatasHeight);
}

void printScore() {
  textAlign(CENTER);
  text("Player Score : " + scorePong, 60, 15);
  text("AI Score : " + AIscorePong, 45, 35);
}

void scorePong() {
  scorePong++;
}

void AIscorePong() {
  AIscorePong++;
}

//JENIS-JENIS SKILL BOLA
void skillAdder() {
  if (millis() - lastAddTime > skillInterval) {
    int sX = round(random(0, width));
    int sY = round(random(0, height));
    int skillSpeedHor = round(random(-8, 8));
    int skillSpeedVert = round(random(-8, 8));
    int destroySkill = lastAddTime + 9000;
    int Ability = round(random(0, width));
    int[] randSkill = {sX, sY, skillSize, skillSize, skillSpeedHor, skillSpeedVert, destroySkill, Ability};
    skills.add(randSkill);
    lastAddTime = millis();
  }
}

//MEMPERODUKSI SKILL BOLA
void skillHandler() {
  for (int i = 0; i < skills.size(); i++) {
    skillSpeedHor(i);
    skillSpeedVert(i);
    keepSkillInScreen(i);
    AIkejarSkill(i);
    //pongKejarSkill(i);
    skillDrawer(i);
    destroySkill(i);
  }
}

void skillDrawer(int index) {
  int[] skill = skills.get(index);

  int skillsX = skill[0];
  int skillsY = skill[1];
  int skillsWidth = skill[2];
  int skillsHeight = skill[3];

  fill(random(255), random(255), random(255));
  ellipseMode(CENTER);
  ellipse(skillsX, skillsY, skillsWidth, skillsHeight);
}

void skillSpeedVert(int index) {
  int[] skill = skills.get(index);
  skill[1] = skill[1] + skill[5];
}

void skillSpeedHor(int index) {
  int[] skill = skills.get(index);
  skill[0] = skill[0] + skill[4];
}

void keepSkillInScreen(int index) {
  int[] skill = skills.get(index);

  if (skill[1] > height) {
    bounceSkillBottom(index, height);
  }
  if (skill[1] < 0) {
    bounceSkillTop(index, 0);
  }
  if (skill[0] > width) {
    bounceSkillRight(index, width);
  }
  if (skill[0] < 0) {
    bounceSkillLeft(index, 0);
  }
}

void bounceSkillBottom(int index, int surface) {
  int skill[] = skills.get(index);

  skill[1] = surface-(skill[3]/2);
  skill[5] *= -1;
}

void bounceSkillTop(int index, int surface) {
  int[] skill = skills.get(index);

  skill[1] = surface+(skill[3]/2);
  skill[5] *= -1;
}

void bounceSkillRight(int index, int surface) {
  int[] skill = skills.get(index);

  skill[0] = surface-(skill[2]/2);
  skill[4] *= -1;
}

void bounceSkillLeft(int index, int surface) {
  int[] skill = skills.get(index);

  skill[0] = surface+(skill[2]/2);
  skill[4] *= -1;
}

void destroySkill(int index) {
  int[] skill = skills.get(index);

  if (millis() >= skill[6]) {
    skills.remove(index);
    println("Skill Hilang");
  }
 
  if ((skill[0]+(skill[3]/2) > pongX-(pongWidth/2)) && (skill[0]-(skill[3]/2) < pongX+(pongWidth/2))) {
    if (skill[1]+(skill[4]/2) >= pongY) {
      pongWidth = skill[7];
      skills.remove(index);
    }
  }
 
  if ((skill[0]+(skill[3]/2) > AIpongX-(AIpongWidth/2)) && (skill[0]-(skill[3]/2) < AIpongX+(AIpongWidth/2))) {
    if (skill[1]-(skill[4]/2) <= AIpongY) {
      AIpongWidth = skill[7];
      skills.remove(index);
    }
  }
}

void AIkejarSkill(int index) {
  int[] skill = skills.get(index);

  if (skill[1] < height/2 && skill[1] < ballY) {
    if (!(skill[0]+(skill[3]/2) > AIpongX-(AIpongWidth/2))) {
      AIpongX = AIpongX + (AIpongSpeed * -1);
    } else if (!(skill[0]-(skill[3]/2) < AIpongX+(AIpongWidth/2))) {
      AIpongX = AIpongX + (AIpongSpeed * 1);
    }
  }
}

void pongKejarSkill(int index) {
  int[] skill = skills.get(index);

  if (skill[1] > height/2 && skill[1] > ballY) {
    if (!(skill[0]+(skill[3]/2) > pongX-(pongWidth/2))) {
      pongX = pongX + (pongSpeed * -1);
    } else if (!(skill[0]-(skill[3]/2) < pongX+(pongWidth/2))) {
      pongX = pongX + (pongSpeed * 1);
    }
  }
}


Berikut langkah-langkah memainkannya

a. Run program
b. Klik start pada program
c. Gunakan tombol  A untuk menggeser papan milik player(bawah)  kekiri, dan tombol D untuk menggeser ke Kanan
d. Usahakan bola mengenai papan
e. Jika bola mengenai lantai maka point lawan akan bertambah
f. Usakan juga papan terkena bola bayangan. Bola bayangan dapat memperpanjang dan memperpendek papan kita, jika papan masih kecil maka bola bayangan akan membuat papan menjadi panjang, sebaliknya jika papan panjang maka anda harus menghindari bola bayangan.

Tampilan Game




Selamat mencoba.

Read more...