BAB II TEORI PENUNJANG
2.1 Pengertian Sistem Pakar Sistem pakar dapat didefinisikan sebagai sebuah program komputer berbasis pengetahuan yang dapat menarik kesimpulan setingkat pakar dalam bidang tertentu yang hasil pemecahannya mirip dengan pemecahan yang diberikan oleh pakar yang sesungguhnya. Basis pengetahuan diperoleh dari pengalaman seorang pakar maupun teori-teori yang ada pada bidang yang spesifik saja, oleh karena itu sistem pakar memiliki keterbatasan.
2.2 Sejarah Sistem Pakar Sistem pakar mulai dikembangkan pada pertengahan tahun 1960-an oleh perhimpunan
Artificial
Intelligence
Corporation
yang
ditandai
dengan
dikembangkannya GPS (General Purpose Problem Solver) oleh Newell dan Simon dari Logic Theorist, yang merupakan sebuah percobaan untuk menciptakan sebuah mesin cerdas. GPS merupakan sebuah cikal bakal menuju sistem pakar. Perkembangan selanjutnya ditandai dengan terjadinya pergantian dari program yang bersifat serba guna (General Purpose) ke program yang bersifat khusus (Spesial Purpose). Ini ditandai dengan dikembangkannya DENDRAL oleh E. Feigenbaum dari Universitas Stanford, yang kemudian diikuti dengan perkembangan MYCIN.
7
8 Beberapa sistem pakar mulai muncul pada pertengahan tahun 1970. Kemudian tahun 1980, teknologi sistem pakar yang semula dibatasi hanya di lingkungan akademis, mulai muncul sebagai aplikasi komersil, khususnya XCON, XSEL, dan CATS-1. Beberapa contoh sistem pakar dapat dilihat pada Tabel 2.1. Tabel 2.1. Contoh Sistem Pakar dan Kegunaannya Sistem Pakar Kegunaan DENDRAL
Mengidentifikasi struktur molekular campuran yang tak dikenal
MYCIN
Diagnosa Penyakit
XCON & XSEL
Membantu konfigurasi sistem komputer besar
SOPHIE
Analisis sirkuit elektronik
Prospector
Digunakan di dalam geologi untuk membantu mencari dan menemukan deposit
FOLIO
Membantu memberikan keputusan bagi seseorang manager dalam hal stok broker dan investasi
DELTA
Pemeliharaan lokomotif listrik disel
2.3 Pengenalan Sistem Pakar 2.3.1 Konsep Dasar Sistem Pakar Menurut Efraim Turban, konsep dasar sistem pakar mengandung enam hal yaitu keahlian, ahli, pengalihan keahlian, inferensi, aturan dan kemampuan menjelaskan[1]. a. Keahlian Keahlian adalah suatu kelebihan penguasaan pengetahuan di bidang tertentu yang diperoleh dari pelatihan, membaca atau pengalaman.
9 b. Ahli Seorang ahli adalah seseorang yang mampu menjelaskan suatu tanggapan, mempelajari hal-hal baru seputar topik permasalahan, menyusun kembali pengetahuan jika dipandang perlu, memecah aturan-aturan jika dibutuhkan, dan menentukan relevan tidaknya keahlian mereka. c. Pengalihan keahlian Tujuan dari sistem pakar adalah mengalihkan keahlian dari seorang pakar ke komputer dan kemudian ke manusia lain yang bukan ahli. Pengetahuan yang disimpan dalam komputer disebut basis pengetahuan (knowledge base). Pengetahuan ini dibedakan menjadi dua, yaitu fakta dan aturan. d. Inferensi/menarik kesimpulan Keahlian-keahlian yang sudah tersimpan dalam komputer sebagai basis pengetahuan, maka sistem pakar harus diprogram agar dapat menarik kesimpulan. e. Aturan (Rule) Kebanyakan sistem pakar adalah sistem berbasis rule. Pengetahuan disimpan dalam bentuk rule-rule sebagai prosedur pemecahan masalah. f. Kemampuan menjelaskan (Explanation Capability) Keistimewaan lain dari sistem pakar adalah kemampuan menjelaskan darimana asal sebuah solusi/rekomendasi diperoleh.
10 2.3.2 Arsitektur Sistem Pakar Komponen utama yang harus ada dalam sebuah sistem pakar adalah knowledge base (basis pengetahuan), inference engine (mesin penarik kesimpulan), explanation subsystem (subsistem penjelas output) dan user interface[2]. Secara umum arsitektur sistem pakar dapat dilihat pada gambar 2.1
Gambar 2.1. Arsitektur Sistem Pakar
a. Basis Pengetahuan (Knowledge Base) Knowledge base adalah kumpulan informasi atau pengetahuan pakar mengenai suatu bidang yang spesifik. Knowledge base terdiri dari dua bagian yaitu fakta seperti yang terdapat pada buku atau fakta yang diperoleh dari pakar dan aturan (rule) yang digunakan oleh seorang pakar untuk menarik kesimpulan. b. Inference Engine Inference Engine merupakan bagian dari sistem pakar yang bertugas untuk menentukan solusi yang tepat dari sejumlah solusi yang tersedia. Proses yang dilakukan dalam inference engine adalah bagaimana mengambil keputusan terhadap proses yang terjadi dan proses penalaran pada basis pengetahuan yang
11 dimilikinya. Penentuan sistem pendukung keputusan dan metode pelacakan sangat penting dalam rangka menarik kesimpulan. Inference engine merupakan otak dari sistem pakar. Komponen ini pada dasarnya berupa suatu program komputer yang menyediakan suatu metodologi untuk mengolah informasi dalam knowledge base dan merumuskan kesimpulan. Adapun untuk mendapatkan sebuah kesimpulan terdapat dua metode penalaran, yaitu metode backward chaining dan metode forward chaining. c. Explanation Subsystem Explanation
Subsystem
merupakan
kemampuan
untuk
memberikan
penjelasan atas sebuah kesimpulan yang diberikan. d. User Interface User Interface merupakan bagian dari sistem pakar yang berfungsi sebagai pengendali input output. User interface melayani user selama proses konsultasi mulai dari tanya jawab untuk mendapatkan fakta-fakta yang dibutuhkan inference engine sampai menampilkan output yang merupakan kesimpulan/rekomendasi yang dihasilkan oleh inference engine. e. Certainty Factor Certainty Factor merupakan faktor keyakinan atas fakta-fakta yang ada.
12 2.3.3 Kategori Sistem Pakar Banyak sekali bidang yang menggunakan sistem pakar sebagai bantuan sehingga sistem pakar itu sendiri dapat dikelompokkan menjadi[2] : a. Interpretasi Memberikan gambaran tentang sekumpulan data mentah yang biasanya diperoleh melalui sensor. Contoh: pengenalan kata/ucapan, pembuatan peta. b. Prediksi Memberikan dugaan mengenai akibat yang mungkin ditimbulkan dari sejumlah situasi yang diberikan. Contoh: perkiraan cuaca, ramalan panen. c. Diagnosa Menentukan penyebab gagalnya suatu sistem dalam situasi yang kompleks yang didasarkan pada observasi terhadap gejala-gejala yang dapat diamati. Contoh: diagnosa penyakit pada bidang kedokteran. d. Desain Menentukan konfigurasi yang cocok dari komponen-komponen yang ada dalam sebuah sistem sehingga unjuk kerja yang memuaskan dapat diperoleh walaupun di dalamnya terdapat sejumlah keterbatasan. Contoh: penyusunan anggaran belanja, desain arsitektur rumah. e. Perencanaan Mendapatkan urutan tindakan yang harus dilakukan untuk mencapat sasaran yang ditentukan sebelumnya dari suatu kondisi awal tertentu. Contoh:
13 perencanaan strategi manajemen. f. Pengawasan (Monitoring) Membandingkan perilaku yang diamati pada suatu sistem dengan perilaku yang diharapkan untuk mengenali lebih banyak variasi perilaku di dalamnya. Contoh: manajemen pengawasan, pengendalian instalasi nuklir g. Pelacakan dan Perbaikan (Debugging and Repairing) Penentuan dan implementasi perbaikan/pertolongan pada kegagalan suatu sistem. Contoh: uji coba software komputer, reparasi mesin, pelacakan kerusakan hardware komputer. h. Instruksi Mendeteksi dan memperbaiki kekurangan perilaku siswa dalam memahami suatu bidang tertentu. Contoh: program untuk tutorial. i. Klasifikasi Menentukan kategori dari sejumlah kriteria yang diberikan. Contoh: penentuan jabatan seorang pegawai. j. Kontrol Pengaturan perilaku kerja dalam suatu lingkungan yang kompleks, termasuk di dalamnya penafsiran, perkiraan dan perbaikan perilaku kerja sistem tersebut. Contoh: pengawasan jadwal penerbangan.
14 2.3.4 Peranan Manusia Dalam Sistem Pakar Dalam pengembangan sebuah sistem pakar, peranan manusia ikut menentukan keberhasilan dari sistem pakar tersebut. Adapun peranan manusia yang di maksud ialah[3]: 1. Pakar (Domain Expert) Pakar adalah seseorang yang mempunyai pengetahuan khusus, pendapat, keahlian dan metode serta kemampuan untuk menggunakannya. Pakar dapat memberikan nasehat dan memecahkan masalah. Tugasnya menyediakan pengetahuan tentang bagaimana
cara
melaksanakan
tugasnya
untuk
kemudian
diserap
dan
diimplementasikan ke dalam sistem pakar. 2. Perancang (Knowledge Engineer) Knowledge Engineer adalah pihak yang membantu dalam pembuatan sebuah sistem pakar. Knowledge Engineer ini bertugas menyerap pengetahuan yang dimiliki oleh para pakar dan mengimplementasikannya ke dalam software sistem pakar. Tugas ini cukup sulit karena knowledge engineer tidak boleh memasukkan perkiraan atau perasaannya ke dalam pengetahuan yang diperoleh. Selain itu seorang knowledge engineer harus pandai mengorek pengetahuan pakar karena ada kalanya seorang pakar tidak dapat menceritakan atau menjelaskan keahliannya. 3. Pemakai (End User) Merupakan manusia yang menggunakan hasil dari perancangan sistem pakar.
15 2.3.5 Keuntungan-keuntungan Dari Sistem Pakar Beberapa keuntungan yang diperoleh dari penggunaan sistem pakar adalah[1]: 1. Membuat seseorang yang awan dapat bekerja layaknya seorang pakar. 2. Membuat peralatan yang kompleks lebih mudah dioperasikan karena sistem pakar dapat melatih pekerja yang tidak berpengalaman. 3. Menyediakan nasihat yang konsisten dan dapat mengurangi tingkat kesalahan. 4. Membantu memecahkan masalah yang kompleks. 5. Menghemat waktu dalam pengambilan keputusan. 6. Meningkatkan output dan produktivitas. 7. Meningkatkan kualitas.
2.3.6 Faktor Kepastian (Certainty Factor) Dalam kenyataan sehari-hari, para pakar seringkali berurusan dengan datadata yang tidak menentu dan tidak pasti. Ketidakpastian disebabkan oleh 2 faktor, yaitu aturan yang tidak pasti dan jawaban pengguna yang tidak pasti atas suatu pertanyaan yang diajukan oleh sistem[4]. Misalnya jika seseorang mengalami sakit kepala, demam dan bersin-bersin ada kemungkinan orang tersebut terserang penyakit flu, tetapi bukan berarti apabila seseorang mengalami gejala tersebut pasti terserang penyakit flu. Dengan
demikian
sistem
pakar
harus
dapat
menangani
masalah
16 ketidakpastian tersebut. Salah satu teknik yg digunakan adalah dengan penggunaan faktor kepastian. Faktor kepastian menggambarkan tingkat keyakinan terhadap permasalahan yang sedang dihadapi. Angka yang diberikan dalam jangkauan antara 0 (sangat tidak yakin) sampai 1 (sangat yakin). Jangkauan nilai CF dapat dilihat pada Gambar 2.2. Sangat TidakYakin
Tidak Yakin
Tidak Tahu
0
0,2
0,5
Derajat Ketidakpercayaan
CF
Yakin
Sangat Yakin
0,8
1
Derajat Kepercayaan
Gambar 2.2 Jangkauan Nilai CF
Ada 2 macam faktor kepastian yang digunakan, yaitu: 1. Faktor kepastian yang diisikan oleh pakar bersama dengan aturan. 2. Faktor kepastian yang diberikan oleh pengguna. Faktor kepastian yang diisikan oleh pakar menggambarkan kepercayaan pakar terhadap hubungan antara premis dan hipotesis pada aturan kaidah produksi. Sementara itu faktor kepastian dari pengguna menunjukkan besarnya kepercayaan terhadap keberadaan masing-masing elemen dalam premis.
2.3.6.1 Menentukan CF Pararel CF Pararel merupakan CF yang diperoleh dari beberapa premis pada sebuah aturan. Besarnya CF pararel dipengaruhi oleh CFUser masing-masing premis berdasarkan operator yang digunakan.
17 Rumus 2.1 digunakan jika antar premis menggunakan operator AND. Misalnya IF x AND y THEN H. CF (x,y) = Min(CF(x), CF(y))
(2.1)
Rumus 2.2 digunakan jika antar premis menggunakan operator OR. Misalnya IF x OR y THEN H. CF (x,y) = Max(CF(x), CF(y))
(2.2)
Rumus 2.4 digunakan jika premis menggunakan operator NOT. Misalnya IF not x THEN H. CF(Tidak x) = -CF(x)
(2.3)
2.3.6.2 Menentukan CF Sequensial CF sekuensial diperoleh dari hasil perhitungan CF pararel dari semua premis dalam satu aturan dengan CF aturan yang diberikan oleh pakar. Adapun rumus untuk melakukan perhitungan CF Sekuensial ditunjukkan pada Rumus 2.4. CF(Rn) = CF(x,y) * CF(X,Y) CF(Rn) : CF sequensial aturan ke n dari premis x dan y CF(x,y) : CF paralel dari premis x dan y CF(X,Y) : CF pakar dari premis x dan y
(2.4)
18 2.3.6.3 Menentukan CF Gabungan CF Gabungan merupakan penggabungan dari beberapa CF sequential. CF akhir dari suatu aturan dengan aturan yang lain digabungkan untuk mendapatkan nilai CF konklusi. Adapun rumus untuk melakukan perhitungan CF gabungan ditunjukkan pada Rumus 2.5, 2.6, dan 2.7 CF ( H ) = CF ( Rn ) + CF ( Rn +1 ) − (CF ( Rn ) * CF ( y )) CF(Rn) > 0 dan CF(Rn-1) > 0 (2.6) CF ( H ) =
CF ( Rn ) + CF ( Rn −1 ) (1 − ( Min( CF ( Rn ) , CF ( Rn −1 ) )))
CF ( H ) = CF ( Rn ) + (CF ( Rn −1 ) * (1 + CF ( Rn )))
CF(Rn) < 0 atau CF(Rn-1) < 0 (2.7)
CF(Rn) < 0 dan CF(Rn-1) < 0 (2.8)
2.4 Konsep Backward Chaining Berikut akan dijelaskan mengenai konsep penalaran yang terdapat dalam inference engine.
2.4.1 Backward Chaining Dalam konsep backward chaining, proses pencarian dimulai dari kesimpulan yang menjadi solusi permasalahan yang dihadapi. Mesin inferensi mencari aturan-aturan dalam basis pengetahuan yang kesimpulannya merupakan solusi yang ingin dicapai, kemudian dari aturan-aturan yang diperoleh, masingmasing kesimpulan dirunut balik jalur yang mengarah ke kesimpulan tersebut. Jika informasi-informasi atau nilai dari atribut-atribut yang mengarah ke kesimpulan
19 tersebut sesuai dengan data yang diberikan maka kesimpulan tersebut merupakan solusi yang dicari, jika tidak sesuai maka kesimpulan tersebut bukan merupakan solusi yang dicari. Runut balik memulai proses pencarian dengan suatu tujuan sehingga strategi ini disebut juga goal-driven. Dalam menganalisa masalah, maka komputer berusaha memenuhi syarat dari posisi “JIKA” pada rule yang konklusinya merupakan goal atau premise dari rule lain. Sebagai contoh asumsikan listing berikut ini valid, masing-masing variabel dari setiap rule menginginkan nilai benar (true) dan goal-nya adalah variabel G: R1 : JIKA A DAN C MAKA E; R2 : JIKA D DAN C MAKA H; R3 : JIKA B DAN E MAKA F; R4 : JIKA B DAN C; R5 : JIKA F MAKA G; Langkah-langkah dari komputer adalah sebagai berikut : 1. Komputer mencari rule dengan konklusi G dan menemukan rule R5. 2. Pada rule R5, pada posisi JIKA terdapat F. Kemudian komputer mencari nilai F pada memori. Karena tidak menemukan, maka komputer mencari rule dengan konklusi F dan menemukan pada rule R3. 3. Pada rule R3, ada B dan E pada posisi JIKA. Komputer mencari nilai dan rule dengan konklusi B dan tidak dapat menemukannya, kemudia komputer menanyakan nilai B pada user (diasumsikan benar). Setelah itu komputer mencari
20 nilai dari E dan tidak dapat menemukannya. Komputer kemudian menemukan rule dengan konklusi E pada rule R1. 4. Pada rule R1, ada A dan C pada posisi JIKA. Komputer mencari nilai dan rule dengan konklusi A dan tidak dapat menemukannya, kemudian komputer menanyakan nilai A kepada user (diasumsikan jawaban benar). Setelah itu komputer mencari nilai dari C dan tidak dapat menemukannya. Komputer menemukan rule dengan konklusi C paad rule R4. 5. Konklusi C pada rule R4 terpenuhi dan inputkan ke memory karena B pada posisi JIKA terpenuhi dengan nilai yang ada di memori. Kemudian sistem akan kembali pada rule R1 konklusi E di input-kan ke memori karena A dan C terpenuhi semua. Setelah itu sistem akan kembali ke rule R3, dimana pada rule R3, dimana pada rule R3 F akan di input-kan ke memori karena B dan E terpenuhi. Dan akhirnya komputer kembali ke rule R5, konklusi G di input-kan ke memori karena F terpenuhi. Goal dari basis pengetahuan tersebut tercapat dengan adanya nilai G.
2.4.2 Keuntungan metode Backward Chaining Keuntungan dengan menggunakan metode backward chaining ialah: 1. Backward chaining terfokus pada goal yang diberikan. Prosedur ini akan menanyakan hal-hal yang perlu saja dan ini merupakan kenyamanan bagi user. 2. Backward chaining mencoba menyelesaikan masalah dengan mencari basis pengetahuan yang relevan dengan masalah sekarang, sedangkan forward chaining
21 mencoba semua kemungkinan dari informasi yang ada,. 3. Backward chaining merupakan pendekatan yang baik untuk menyelesaikan masalah diagnostik, prekripsi, dan debugging.
2.5 Knowledge Acquisition Knowledge acquisition adalah proses mendapatkan pengetahuan baru seorang pakar dan biasanya ditampilkan oleh pengolah pengetahuan (Knowledge engineer). Pengolah pengetahuan mewawancarai pakar-pakar dan mengumpulkan pengetahuan yang ada dari manusia. Pengetahuan atau data-data yang dikumpulkan disebut sebagai knowledge base.
2.5.1 Tahap-tahap Dalam Knowledge Acquisition Proses knowledge acquisition dibagi menjadi lima tahapan, yaitu [2]: 1. Identifikasi Merupakan tahap mengidentifikasi permasalahan dan karakteristik utamanya. 2. Konseptualisasi Merupakan tahap penentuan konsep, informasi dan relasi yang digunakan serta menentukan bagaimana bentuk representasi yang akan digunakan. 3. Formalisasi Merupakan tahap perancangan struktur. Untuk mengorganisasikan pengetahuan dan merepresentasikannya ke knowledge base.
22 4. Implementasi Merupakan tahap pengkodean pengetahuan yang telah diolah ke dalam komputer. 5. Pengujian Merupakan tahap pengujian kebenaran dari pengetahuan yang telah dibentuk.
2.5.2 Metode Dalam Knowledge Acquisition Terdapat beberapa cara untuk mendapatkan pengetahuan yang nantinya akan diolah ke dalam suatu knowledge base, antara lain: a. Kuisioner Metode kuisioner ini dilakukan dengan cara membagikan kertas pertanyaan di mana jawabannya dikategorikan dan dikelompokkan. b. Observasi Metode observasi yang dilakukan untuk beberapa kasus adalah penelitian terhadap pakar di tempat, dimana pakar itu bekerja. Metode inipun memiliki kesulitankesulitan karena tiap kali pakar melakukan observasi atau penelitian secara berkala dan terus menerus, karena secara tidak langsung akan membuat tersendat kegiatan rutinitas dari pakar sendiri. Sehingga pemikiran dan analisis dari pakar tidak sepenuhnya tercurah dan terkonsentrasi pada observasi atau pada penelitian. c. Analisa Dokumen Pengetahuan yang akan diambil untuk sistem pakar dapat bersumber dari dokumen. Dokumen yang didapatkan oleh knowledge engineer akan dipelajari
23 kemudian dianalisa. d. Wawancara Dalam melakukan wawancara, ada dua bagian penting yang perlu diketahui. Pertama, Walkthrough method dan yang kedua adalah readthrough method. Walkthrough method adalah pakar bertindak sebagai seorang guru dan knowledge engineer bertindak sebagai seorang murid. Readthrough method adalah pakar diminta mengajarkan knowledge engineer membaca dan menerjemahkan dokumen yang ada. Wawancara dibagi menjadi dua bagian yaitu: 1. Wawancara tidak terstruktur Biasanya wawancara bagian ini adalah tidak dilakukan pencatatan sebelumnya. Wawancara ini bersifat langsung dan mulai dari hal-hal yang bersifat umum. 2. Wawancara terstruktur Wawancara bagian ini adalah melakukan pencatatan terlebih dahulu, kemudian menanyakan hal-hal yang bersifat mendetail dan terperinci mengenai suatu permasalahan.
2.6 J2ME Sejak dimulai pengembangannya pada tahun 1995, bahasa pemrograman Java sampai saat ini terus dikembangkan dengan tetap memegang prinsip write once, run anywhere™ yang berarti dapat dijalankan pada berbagai macam platform dan arsitektur komputer yang mendukung Java Virtual Machine[5]. Dengan konsep
24 berbasis objek yang matang, bahasa Java sangat mendukung pengembangan produksi software yang lebih baik. Java dikeluarkan oleh sebuah perusahaan yang bernama Sun Microsystem dalam tiga edisi yaitu: ● Standard Edition (J2SE) : Didesain untuk dijalankan pada personal computer. ● Enterprise Edition (J2EE) : Dengan fitur built in untuk servlet, JSP, dan XML, edisi ini didesain untuk aplikasi berbasis server. ● Micro Edition (J2ME) : Didesain untuk device yang memiliki keterbatasan memori, tampilan dan proses seperti handphone atau PDA (personal digital assistent)
2.6.1 Configuration Configuration adalah spesifikasi yang mendefinisikan software environment pada beberapa varian device yang tergantung dari[6]: ● Tipe dan jumlah memori yang tersedia. ● Tipe processor dan kecepatannya. ● Koneksi network yang didukung. Configuration digunakan sebagai platform minimal untuk suatu device tanpa adanya fitur tambahan. Pada J2ME configuration dibagi menjadi[6] : ● Connected Limited Device Configuration (CLDC) - Memiliki memori 128 kilobytes untuk menjalan Java.
25 - Memiliki memori 32 kilobyte untuk pengalokasian memori pada saat runtime. - Keterbatasan user interface. - Biasanya memakai tenaga baterai. - Memiliki network connectivity yang bersifat wireless, terbatas dan dengan bandwidth kecil. ● Connected Device Configuration (CDC) - Memiliki minimal 128 kilobytes untuk menjalan Java. - Memiliki minimal 256 kilobyte untuk pengalokasian memori pada saat runtime. - Memiliki network connectivity yang bersifat persistent dan dengan bandwidth besar. Sebagai contoh, pada CLDC 1.0 tidak dikenal tipe data float sedangkan pada CLDC 1.1 mulai diperkenalkan tipe data float. Tipe data float akan sangat banyak membantu programmer untuk melakukan perhitungan dengan hasil yang lebih tepat.
2.6.2 Profile Profile menambahkan class tambahan yang mendukung fitur-fitur yang diperlukan pada device tertentu atau pada segmen pasar yang berbeda. Kedua configuration yang ada mempunyai satu atau lebih profile dimana kadang suatu profile digunakan untuk mendukung profile lainnya[6]. Beberapa profile yang ada
26 antara lain : ● Mobile Information Device Profile (MIDP) Profile ini menyediakan kemampuan untuk networking, penyimpan data, dan component user interface. Karena MDIP didefinisikan untuk lingkungan yang serba terbatas maka user interface dan koneksi networking yang didukung sangatlah sederhana. ● PDA profile (PDAP) PDA profile didefinisikan untuk PDA yang memiliki spesifikasi sedikit lebih tinggi dari pada MIDP. Aplication Programming Interface (API) yang disediakan digunakan pada segmen komputer kecil seperti Palm. MIDP versi 1.0 sekalipun cukup membantu dalam membuat software yang bebas platform, ternyata masil kurang memuaskan para pengembang software handphone. Perkembangan teknologi handphone yang begitu pesatnya memacu para pengembang software untuk membuat software yang khusus digunakan untuk suatu merk dan tipe tertentu. MIDP 1.0 awalnya ditujukan untuk mengatasi problematika ini, namun kenyataannya masih belum cukup dapat mendukung penggunaan fiturfitur khusus handphone. Pada pertengahan November 2003, Sun mengeluarkan versi baru yaitu versi 2.0 yang lebih lengkap dibandingkan versi sebelumnya. Di samping
masih
mengandalkan beberapa fitur lama yang cukup stabil, misalnya dalam penanganan user interface dan record management dalam versi yang terbaru, beberapa fitur lama
27 diperbaharui dan diperlengkapi.
2.6.3 GUI Package CLDC yang menyediakan class-class dasar bagi handphone java enabled tidak menyediakan fitur untuk Graphical User Interface (GUI). Class-class untuk user interface yang umum dipakai pada J2ME disediakan oleh Java Community Process (JCP) dan tergabung dalam Mobile Information Device Profile (MIDP). Class-class untuk GUI pada MIDP tidak dibangun dari Abstract Window Toolkit (AWT) yang merupakan class GUI pada J2SE[6]. ● AWT didesain dan dioptimasikan untuk desktop computer ● AWT dapat menangani banyak jenis input-an dari user seperti mouse dan keyboard sedangkan handphone hanya memiliki keypad untuk inputannya. ● Banyak fitur yang disediakan oleh AWT dan semua berbasis pada computer desktop. Contohnya, AWT banyak memiliki kemampuan untuk melakukan penanganan window seperti resize windows yang tidak diperlukan pada handphone. ● Saat user melakukan interaksi pada software yang dibangun dengan menggunakan AWT, objek akan dibuat secara dinamic dan akan tetap ada sampai tidak diperlukan lagi dan akan di proses oleh Garbage Collector yang akan me-release memori. Hal ini tidak dapat dilakukan pada handphone karena keterbatasan memori.
28 2.7 Penyakit Hepatitis[7] Penyakit Hepatitis adalah penyakit yang disebabkan oleh beberapa jenis virus yang menyerang dan menyebabkan peradangan serta merusak sel-sel organ hati manusia. Hepatitis diketegorikan dalam beberapa golongan, diantaranya hepetitis A,B,C,D,E,F dan G. Di Indonesia penderita penyakit Hepatitis umumnya cenderung lebih banyak mengalami golongan hepatitis B dan hepatitis C.
2.7.1 Hepatitis A Hepatitis A adalah golongan penyakit Hepatitis yang ringan dan jarang sekali menyebabkan kematian. Penyebaran virus hepatitis A melalui kotoran/tinja penderita yang penularannya melalui makanan dan minuman yang terkomtaminasi, bukan melalui aktivitas sexual atau melalui darah. Sebagai contoh, ikan atau kerang yang berasal dari kawasan air yang dicemari oleh kotoran manusia penderita. Penyakit Hepatitis A memiliki masa inkubasi 2 sampai 6 minggu sejak penularan terjadi, barulah kemudian penderita menunjukkan beberapa tanda dan gejala terserang penyakit Hepatitis A. Pada minggu pertama, individu yang dijangkiti akan mengalami sakit seperti kuning, keletihan, demam, hilang selera makan, muntah-muntah, pusing dan kencing yang berwarna hitam pekat. Demam yang terjadi adalah demam yang terus menerus, tidak seperti demam yang lainnya yaitu pada demam berdarah, tbc, thypus, dll. Langkah-langkah yang dapat diambil sebagai usaha pencegahan adalah
29 dengan mencuci tangan dengan teliti, dan suntikan imunisasi dianjurkan bagi seseorang yang berada disekitar penderita.
2.7.2 Hepatitis B Hepatitis B merupakan salah satu penyakit menular yang tergolong berbahaya di dunia. Penyakit ini disebabkan oleh virus Hepatitis B yang menyerang hati dan menyebabkan peradangan hati akut dan akhirnya menjadi kanker hati. Proses penularan Hepatitis B yaitu melalui pertukaran cairan tubuh atau kontak dengan darah dari orang yang terinfeksi Hepatitis B. Adapun beberapa hal yang menjadi pola penularan antara lain penularan dari ibu ke bayi saat melahirkan, hubungan seksual, transfusi darah, jarum suntik, maupun penggunaan alat kebersihan diri (sikat gigi, handuk) secara bersama-sama. Hepatitis B dapat menyerang siapa saja, akan tetapi umumnya bagi mereka yang berusia produktif akan lebih beresiko terkena penyakit ini. Secara khusus tanda dan gejala terserangnya hepatitis B yang akut adalah demam, sakit perut dan kuning (terutama pada area mata yang putih/sklera). Namun bagi penderita hepatitis B kronik akan cenderung tidak tampak tanda-tanda tersebut, sehingga penularan kepada orang lain menjadi lebih beresiko. Langkah-langkah pencegahan agar terhindar dari penyakit Hepatitis B adalah pemberian vaksin terutama pada orang-orang yang beresiko tinggi terkena virus
ini,
seperti mereka
yang
berprilaku
sex kurang
baik
(ganti-ganti
30 pasangan/homosexual), pekerja kesehatan (perawat dan dokter) dan mereka yang berada didaerah rentan banyak kasus Hepatitis B.
2.7.3 Hepatitis C Penyakit Hepatitis C sama berbahayanya dengan penyakit Hepatitis B. Proses penularannya melalui kontak darah {transfusi, jarum suntik (terkontaminasi), serangga yang menggiti penderita lalu mengigit orang lain disekitarnya}. Penderita Hepatitis C kadang tidak menampakkan gejala yang jelas, akan tetapi pada penderita Hepatitis C kronik menyebabkan kerusakan/kematian sel-sel hati dan terdeteksi sebagai kanker hati. Sejumlah 85% dari kasus, infeksi Hepatitis C menjadi kronis dan secara perlahan merusak hati bertahun-tahun. Penderita Hepatitis C sering kali orang yang menderita Hepatitis C tidak menunjukkan gejala, walaupun infeksi telah terjadi bertahun-tahun lamanya. Namun beberapa gejala yang samar diantaranya adalah lelah, hilang selera makan, sakit perut, urin menjadi gelap serta kulit dan mata menjadi kuning yang disebut jaundice. Pengobatan penyakit Hepatitis C harus dilakukan sedini mungkin untuk mencegah perkembangan yang memburuk dan stadium akhir penyakit hati. Pengobatan pada penderita Hepatitis C memerlukan waktu yang cukup lama bahkan pada penderita tertentu hal ini tidak dapat menolong, untuk itu harus dilakukan penanganan pada stadium awal.