BAB 2 LANDASAN TEORI 2.1 Teori-Teori Umum 2.1.1 Kecerdasan Buatan (Artificial Intelligence) Definisi kecerdasan buatan menurut Rich dan Knight (2009, p3), kecerdasan buatan merupakan sebuah studi tentang bagaimana membuat komputer melakukan halhal yang pada saat ini dapat dilakukan lebih baik oleh manusia.Menurut Kusumadewi (2003, p1), kecerdasan buatan (Artificial Intelligence) adalah ilmu yang mempelajari cara membuat komputer melakukan sesuatu seperti yang dilakukan manusia. Pada awal diciptakannya, komputer hanya difungsikan sebagai alat hitung saja. Namun seiring perkembangan zaman, maka peran komputer semakin mendominasi kehidupan umat manusia. Komputer tidak lagi hanya digunakan sebagai alat hitung, komputer diharapkan dapat diberdayakan untuk mengerjakan segala sesuatu yang bisa dikerjakan oleh manusia. Agar komputer dapat bertindak seperti dan sebaik manusia, maka komputer harus diberi bekal pengetahuan dan kemampuan untuk menalar. Oleh karena itu, dalam kecerdasan buatan terdapat beberapa metode untuk membekali komputer dengan kedua komponen tersebut agar komputer bisa menjadi mesin yang pintar. Adapun lingkup utama dalam kecerdasan buatan (Kusumadewi, 2003), yaitu: 1. Sistem Pakar (Expert System) 6 7 Sistem pakar adalah program penasihat berbasis komputer yang mencoba meniru proses berpikir dan pengetahuan dari seorang pakar dalam menyelesaikan masalahmasalah spesifik. 2. Pengaturan Bahasa Alami (Natural Language Processing) Natural Language Processing atau biasanya disingkat dengan NLP merupakan teknologi yang memberikan kemampuan kepada komputer untuk memahami bahasa manusia sehingga pengguna komputer dapat berkomunikasi dengan komputer dengan menggunakan bahasa sehari-hari. 3. Pengenalan Ucapan (Speech Recognition) Melalui pengenalan ucapan diharapkan manusia dapat berkomunikasi dengan komputer menggunakan suara. 4. Robotika dan Sistem Sensor (Robotics and Sensory Systems) Sistem sensor, seperti sistem vision, sistem tactile, dan sistem pemrosesan sinyal jika dikombinasikan dengan AIdapat dikategorikan ke dalam suatu sistem yang luas yang disebut sistem robotik. 5. Game Playing 8 Gambar 2.1 Lingkup Utama Kecerdasan Buatan (Valentine, 2010) Rangkuman singkat sejarah perkembangan kecerdasan buatan (Usber, 2012): 1206 Robot humanoid pertama karya Al-Jazari 1796 Boneka penuang teh dari Jepang bernama Karakuri 1941 Komputer elektronik pertama 1949 Komputer dengan program tersimpan pertama 1956 Kelahiran dari Artificial Intelligence pada konferensi Dartmouth 9 1958 Bahasa LISP dibuat 1963 Penelitian intensif departemen pertahanan Amerika 1970 Sisem pakar pertama diperkenalkan secara luas 1972 Bahasa Prolog diciptakan 1986 Perangkat berbasis AI dijual luas mencapai $425 juta 1994 AC berbasis neurofuzzy dijual 2010 Sistem kecerdasan buatan untuk pesawat komersial BOEING 900-ER ramai digunakan 2011 ServiceRobot untuk restoran berhasil dibuat di Indonesia (Budiharto et al., 2011) 2012 Sistem pakar troubleshootingkomputer berbasis fuzzy dan self learning(Bassil,2012) 2012 Sistem imun pada deteksi spam diciptakan (Bhuvaneswari, 2012) Dengan perkembangan teknologi dan penyediaan fasilitas yang semakin baik dewasa ini, maka bukan tidak mungkin AI akan terus meningkat sampai pada akhirnya benar-benar menyamai kemampuan manusia sehingga akan menggantikan pekerjaan manusia. Tinggal nanti bagaimana kita sebagai akademisi dan masyarakat luas menyikapi pemanfaatan AI sebagai asisten manusia sampai batas tertentu agar tidak mengancam keberadaan manusia itu sendiri (Usber, 2012). 2.1.2 Sistem Pakar 2.1.2.1 Definisi Sistem Pakar Menurut Tolle (2008), sistem pakar (expert system)merupakan sebuah program komputer yang dirancang untuk memodelkan kemampuan menyelesaikan masalah- 10 masalah spesifik seperti layaknya seorang pakar (humam expert). Seorang pakar adalah seorang individu yang memiliki kemampuan pemahaman yang superior dari suatu masalah, contohnya seorang dokter, penasihat keuangan, pakar mesin mobil, teknisi komputer, dan sebagainya. Sistem pakar biasa disebut dengan knowledge-based system. Sistem ini bekerja dengan pengetahuan (knowledge) dan metode analisis yang telah didefinisikan terlebih dahulu oleh pakar yang sesuai dengan bidang keahliannya. Sistem ini disebut dengan sistem pakar karena fungsi dan perannya sama seperti seorang ahli yang harus memiliki pengetahuan dan pengalaman dalam memecahkan sebuah permasalahan ataupun persoalan. Gambar 2.2 Perbandingan Human Expert dengan Expert System (Tolle, 2008) Menurut Turban (2005), keahlian dipindahkan dari pakar ke suatu komputer. Pengetahuan ini kemudian disimpan dalam komputer.Pada saat pengguna menjalankan komputer untuk mendapatkan informasi, sistem pakar menanyakan fakta-fakta dan dapat membuat penalaran sampai pada sebuah kesimpulan. 11 Dengan sistem pakar ini, orang awam pun dapat menyelesaikan masalahnya atau hanya sekedar mencari suatu informasi berkualitas yang sebenarnya hanya dapat diperoleh dengan bantuan para ahli di bidangnya.Sistem pakar ini juga dapat membantu aktivitas para pakar sebagai asisten yang mempunyai pengetahuan yang dibutuhkan. 2.1.2.2 Tujuan Sistem Pakar Tujuan dari sistem pakar adalah untuk memindahkan pengetahuan dari seorang ahli atau sumber keahlian lain ke dalam komputer dan kemudian memindahkan dari komputer kepada pengguna yang tidak ahli (bukan pakar) (Tolle, 2008). Aktivitas utama yang dilakukan untuk proses pemindahan kepakaran, yaitu: 1. Akuisi pengetahuan (knowledge acquisition) adalah kegiatan mencari dan mengumpulkan pengetahuan dari para ahli atau sumber keahlian yang lain. 2. Representasi pengetahuan (knowledge representation) adalah kegiatan menyimpan dan mengatur penyimpanan pengetahuan yang diperoleh kedalam komputer. 3. Inferensi pengetahuan (knowledge inferencing) adalah kegiatan melakukan inferensi berdasarkan pengetahuan yang telah disimpan dalam komputer. 4. Pemindahan pengetahuan (knowledge transfering) adalah kegiatan pemindahan pengetahuan dari komputer ke pemakai yang tidak ahli. 2.1.2.3 Ciri-Ciri Sistem Pakar Menurut Kusumadewi (2003, p122), ciri-ciri sistem pakar, yaitu: 1. Mudah dimodifikasi, yaitu dengan menambah atau menghapus pengetahuan dari basis pengetahuannya 2. Memiliki kemampuan untuk beradaptasi suatu 12 3. Terbatas pada bidang spesifik 4. Output tergantung dialog dengan pengguna (user) 5. Knowledge base dan inferensi terpisah. 2.1.2.4 Struktur Dasar Sistem Pakar Struktur dasar sistem pakar terdiri dari knowledge base, working memory, dan inference engine(Tolle, 2008). Berikut merupakan gambar perbandingan antara human expert (Gambar 2.3)dan expert system (Gambar 2.4). Terlihat bahwa sistem pakar mengadopsi cara berpikir human expert sehingga menghasilkan sebuah keputusan atau solusi. Gambar 2.3Human Expert Problem Solving (Tolle, 2008) Gambar 2.4Expert System Problem Solving (Tolle, 2008) 13 - Knowledge Base Knowledge basemerupakan bagian dari sistem pakar yang berisi fakta-fakta masalah yang ditemukan dalam suatu sesi.Berisi pengetahuan yang dibutuhkan untuk memahami, merumuskan, dan menyelesaikan masalah.Knowledge base terdiri dari dua elemen dasar, yaitu: 1. Fakta, situasi masalah dan teori yang terkait 2. Heuristik khusus atau rules, yang langsung menggunakan pengetahuan untuk menyelesaikan masalah khusus. - Working Memory Working memory merupakan bagian dari sistem pakar yang berisi fakta-fakta masalah yang ditemukan dalam suatu sesi. Berisi fakta-fakta tentang suatu masalah yang ditemukan dalam proses konsultasi. - Inference Engine Inference engine merupakan processor pada sistem pakar yang mencocokan fakta-fakta yang ada pada working memory dengan domain pengetahuan yang terdapat pada knowledge base, untuk menarik kesimpulan dari masalah yang dihadapi. Komponen-komponen yang biasanya terdapat dalam sebuah sistem pakar (Dhani, 2009), yaitu: 1. Antarmuka Pengguna (User Interface) 14 Pada komponen ini terjadi interaksi antara program dan pengguna. Sistem menerima input berupa informasi dan instruksi dari pengguna dan sistem memberikan output berupa informasi kepada pengguna. 2. Basis Pengetahuan (Knowledge Base) Knowledge base (basis pengetahuan) merupakan bagian dari sistem pakar yang berisi domain pengetahuan yang dibutuhkan untuk memahami, merumuskan, dan menyelesaikan masalah. Pengetahuan merupakan kemampuan membentuk model mental yang menggambarkan objek dengan tepat dan mempresentasikannya dalam aksi yang dilakukan terhadap objek. Basis pengetahuan yang merupakan inti program sistem pakar adalah representasi pengetahuan dari seorang pakar. 3. Akuisisi Pengetahuan (Knowledge Acqusitition) Akuisisi pengetahuan merupakan transformasi keahlian dalam menyelesaikan masalah dari sumber pengetahuan ke dalam program komputer. 4. Mesin Inferensi Mesin inferensi merupakan otak dari sistem pakar yang mengandung mekanisme fungsi berpikir dan pola-pola penalaran sistem yang digunakan oleh seorang pakar.Mesin inferensi bertindak sebagai penarik kesimpulan dan pengontrol mekanisme dari sistem pakar. 5. Memori Kerja (Working Memory) Working memory merupakan bagian dari sistem pakar yang berisi faktafakta masalah yang ditemukan dalam suatu sesi ataupun dalam proses konsultasi. Mesin inferensi (inference engine) merupakan processor pada 15 sistem pakar yang mencocokan fakta-fakta yang ada pada working memory dengan domainpengetahuan yang terdapat pada knowledge baseuntuk menarik kesimpulan dari masalah yang dihadapi. 6. Subsistem Penjelasan (Explanation Subsystem) Komponen ini merupakan komponen tambahan yang akan meningkatkan kemampuan sistem pakar. Komponen ini menggambarkan penalaran sistem kepada pemakai dengan cara menjawab pertanyaan-pertanyaan. 7. Perbaikan Pengetahuan Pakar memiliki kemampuan untuk menganalisa dan meningkatkan kinerja serta kemampuannya untuk belajar dari kinerjanya. 2.1.2.5 Representasi Pengetahuan Pengetahuan dapat direpresentasikan dalam bentuk sederhana atau kompleks, tergantung dari permasalahannya (Kusrini, 2006). Ada beberapa model representasi yang penting, yaitu logika (logic), jaringan semantik (semantic nets), bingkai (frame), dan kaidah produksi (production rule). a. Logika Logika merupakan suatu pengkajian ilmiah tentang serangkaian penalaran, sistem kaidah, dan prosedur yang membantu proses penalaran. Bentuk logika komputasional ada dua macam, yaitu: • Logika Proposional Logika proposional merupakan suatu pernyataan yang menyatakan benar (TRUE) atau salah (FALSE) yang dihubungkan dengan menggunakan operator 16 logika seperti konjungsi (AND), disjungsi (OR), negasi (NOT), implikasi/kondisional (IF…THEN), equivalensi atau bikondisional (IF AND ONLY IF). Berikut contoh model representasi logika proposional: Jika hujan turun maka saya tidak akan ke pasar dapat ditulis dalam bentuk p→q. • Logika Predikat Logika predikat merupakan suatu logika yang seluruhnya menggunakan konsep dan kaidah proporsional yang sama, disebut juga kalkulus predikat, yang memberi tambahan kemampuan untuk mempresentasikan pengetahuan dengan sangat cermat dan rinci. Contoh model representasi pengetahuan logika predikat: X = Anton Y = Tina dapat ditulis dalam bentuk Suka(X,Y). b. Jaringan Semantik Jaringan semantik merupakan representasi yang menggambarkan grafis dari pengetahuan yang memperlihatkan hubungan hierarkis dari objek-objek yang terdiri atas simpul (node) dan penghubung (link). c. Bingkai (Frame) Bingkai berupa ruang (slots) yang berisi atribut untuk mendeskripsikan pengetahuan berupa kejadian, lokasi, situasi, ataupun elemen-elemen lain. Berikut contoh model representasi pengetahuan bingkai (frame). 17 Tabel 2.1 Representasi Bingkai pada Penyakit Ruang (slots) Isi (fillers) Nama Flu Gejala a. Bersin b. Pusing c. Demam Obat a. Ultraflu b. Mixagrip d. Kaidah atau Aturan Produksi Kaidah produksi menyediakan cara formal untuk mempresentasikan rekomendasi, arahan, atau strategi dalam bentuk jika-maka (IF-THEN) yang menghubungkan anteseden dengan konsekuensi. Contoh model representasi pengetahuan kaidah produksi: JIKA pusing DAN bersin MAKA terserang flu. 2.1.2.6 Pohon Keputusan (Decision Tree) Pohon keputusan digunakan dalam sistem pakar diagnosis sebagai representasi pengetahuannya.Sebuah pohon keputusan adalah sebuah struktur yang dapat digunakan untuk membagi kumpulan data yang besar menjadi himpunan-himpunan record yang lebih kecil dengan menerapkan serangkaian aturan keputusan.Dengan masing-masing 18 rangkaian pembagian, anggota himpunan hasil menjadi mirip dengan yang lain (Berry dan Linoff, 2004). Menurut Han et al. (2012, p330), pohon keputusan (decision tree) merupakan salah satu metode klasifikasi yang menggunakan representasi struktur pohon (tree) yang setiap internalnode (non-leaf node) merepresentasikan atribut, cabangnya merepresentasikan nilai dari atribut, dan daun (leaf node atauterminal node) merepresentasikan kelas.Node yang paling atas dari decision tree disebut sebagai root. Decision tree merupakan metode klasifikasi yang paling populer digunakan.Selain karena pembangunannya relatif cepat, hasil dari model yang dibangun mudah untuk dipahami. Pada decision tree terdapat 3 jenis node (Cahyono, 2010), yaitu : a. Root Node Root node merupakan node paling atas, pada node ini tidak ada input dan bisa tidak mempunyai output atau mempunyai output lebih dari satu. b. Internal Node Internal node merupakan node percabangan, pada node ini hanya terdapat satu input dan mempunyai output minimal dua. c. Leaf Node atau Terminal Node Leaf node atau terminal node merupakan node akhir, pada node ini hanya terdapat satu input dan tidak mempunyai output. 19 Contoh dari pohon keputusan dapat dilihat di gambar 2.5 berikut ini, Gambar 2.5 Model Pohon Keputusan (Hamidah, 2012) 2.1.2.7 Metode Inferensi Menurut Kusrini (2006), secara umum ada dua macam metode inferensi, yaitu: a. Forward Chaining (Pelacakan ke Depan) Forward chaining adalah suatu strategi pengambilan keputusan yang dimulai dari bagian premis (fakta) menuju konklusi (kesimpulan akhir) (Kusrini, 2006). Forward chaining merupakan grup dari multipel inferensi yang melakukan pencarian dari suatu masalah kepada solusinya. Jika klausa premis sesuai dengan situasi (bernilai TRUE), maka proses akan meng-assert konklusi. Pelacakan ke depan mencari fakta yang sesuai dari bagian IF dari aturan IF-THEN. 20 Gambar 2.6Proses Forward Chaining (Kusrini, 2006) b. Backward Chaining (Pelacakan ke Belakang) Backward chaining adalah suatu strategi pengambilan keputusan dimulai dari pencarian solusi dari kesimpulan kemudian menelusuri fakta-fakta yang ada hingga menemukan solusi yang sesuai dengan fakta-fakta yang diberikan pengguna (Kusrini, 2006). Pelacakan ke belakang adalah pendekatan yang dimotori oleh tujuan. Dalam pendekatan ini pelacakan dimulai dari tujuan, selanjutnya dicari aturan yang memiliki tujuan tersebut untuk membuat kesimpulannya. 21 Gambar 2.7Proses Backward Chaining (Kusrini, 2006) 2.1.2.8 Contoh Sistem Pakar Contoh-contoh sistem pakar (Usber, 2012), yaitu: a. Eliza Eliza merupakan program yang dibuat oleh Joseph Weizwenbaum (1967). Program ini dapat melakukan terapi terhadap pasien dengan mengajukan beberapa pertanyaan. b. Parry Parry adalah sistem pakar yang juga paling awal dikembangkan di Stanford University oleh seorang psikiater, Kenneth Colby, yang menstimulasikan seorang paranoid. c. Logic Theorist Logic Theorist diperkenalkan saat konferensi Dartmouth.Program ini dapat membuktikan teorema-teorema matematika. 22 d. NetTalk NetTalk adalah sebuah program yang belajar mengucapkan teks bahasa Inggris yang ditulis dengan menjadi teks yang ditampilkan sebagai masukan dan pencocokan transkripsi fonetik untuk perbandingan. e. Sad Sam Program ini dibuat oleh Robert K. Lindsay. Program ini dapat mengetahui kalimat-kalimat sederhana yang ditulis dalam bahasa Inggris dan mampu memberikan jawaban dari fakta-fakta yang didengar dalam sebuah percakapan. 2.1.3 Entity Relationship Diagram (ERD) Menurut Pressman (2002, p353), Entity Realtionship Diagram (ERD) menggambarkan hubungan antara objek data.ERD adalah notasi yang digunakan untuk melakukan aktivitas pemodelan data.Atribut dari masing-masing objek data yang dituliskan pada ERD dapat digambarkan dengan menggunakan deskripsi objek data. Notasi pada ERD yaitu: 1. Objek Data Representasi dari hamper semua informasi gabungan yang harus dipahami oleh perangkat lunak. 2. Atribut Menentukan property suatu objek data 3. Hubungan Objek data disambungkan satu dengan lainnya dengan berbagai cara. 23 ERD sangat berguna bagi aplikasi di mana data dan hubungan yang mengatur data sangat kompleks. 2.2 Teori Khusus 2.2.1 Android 2.2.1.1 Pengenalan Android Menurut Burnette (2009, p12), Android merupakan toolkit perangkat lunak open source baru untuk perangkat mobile masa depan, Android sendiri diciptakan oleh perusahaan Google yang bekerja sama dengan Open Handset Alliance. 2.2.1.2 Kelebihan dan Kekurangan Android Kelebihan-kelebihan Android dibandingkan dengan mobile platformyang ada dipasaran, yaitu : 1. Merupakan pengembang platform bebas yang berbasis linux dan open source. 2. Sebuah komponen berbasis arsitektur yang terinspirasi oleh mashup internet. Bagian dari satu aplikasi dapat dikembangkan, digantikan, ditingkatkan komponennya sesuai dengan versi yang diinginkan sehingga dapat memunculkan berbagai kreativitas pada mobile application. 3. Memiliki layanan berbasis lokasi menggunakan GPS atau triangulasi menara sel untuk menyesuaikan lokasi Anda berada. 4. Memungkinkan Anda untuk memanfaatkan kekuatan penyimpanan lokal untuk berhubungan dengan komputasi dan sinkronisasi. 5. Android dioptimalkan untuk perangkat daya rendah dan rendah memori, yang ada pada platform sebelumnya tidak terpikirkan. 24 6. Mendukung grafis dan suara berkualitas tinggi dan lebih halus. 7. Memiliki probabilitas diberbagai perangkat keras saat ini dan masa depan. 8. Program yang terisolasi dapat memberikan tingkat stabilitas sistem yang tidak terlihat sebelumnya pada smartphone. 9. Android menawarkan berbagai cara untuk berinteraksi dengan mobile application bersama dengan dasar-dasar teknis untuk membuatnya. 10. Dalam pengembangannya, hanya diperlukan satu komputer yang ter-install SDK Android dan emulator. Adapun kekurangan-kekurangan Android adalah sebagai berikut: 1. Handset Android dibuat oleh banyak vendor dengan ukuran layar yang berbeda, sebagian menggunakan keyboard fisik, sebagian lagi hanya menggunakan touch screen. Versi Android yang terpasang di handset juga berbeda-beda, hal ini menyebabkankan pengalaman pemakai Android tidak seragam, hal ini juga sekaligus menyulitkan programmer dalam membuat program, karena apabila versi sistem operasi tidak sama, program tersebut tidak bisa di-install. 2. Android adalah produk open source dari Google dan Open Handset Alliance, karena itu aplikasi yang ada dalam Android sangat menyatu dengan layanan Google, contohnya email menggunakan Gmail, kalender menggunakan Google Calender, bahkan sampai contact pun disimpan di Gmail Contact. Bagi penggemar Google ini merupakan keunggulan sendiri, namum bagi pengguna yang tidak familiar dengan produk Google, hal in cukup merepotkan karena mereka harus menyesuaikan keadaan. 3. Android cukup aktif dikembangkan, hampir tiap tahun mereka merilis sistem operasi baru, pada tahun 2010 Google merilis Froyo (2.2), Gingerbread (2.3) dan 25 Honeycomb (3.0), pada tahun 2011 merilis Ice Cream Sandwich (4.0). Namun dari sisi vendor atau operator,update ke user membutuhkan waktu berbulan-bulan, sebagai contoh, Froyo dirilis pada Mei 2010, namun pengguna Android kebanyakan baru meng-update setelah September. 2.2.2 Komputer 2.2.2.1 Definisi Komputer Menurut Dipanegara (2011, p1), komputer adalah alat yang dipakai untuk mengolah data menurut prosedur yang telah dirumuskan. Kata komputersemula digunakan untuk menggambarkan orang yang pekerjaannya melakukan perhitungan aritmatika, dengan atau tanpa alat bantu, tetapi arti kata ini kemudian dipindahkan kepada mesin itu sendiri. Secara umum, komputer dapat diartikan sebagai mesin yang mengolah informasi. 2.2.2.2 Bagian-bagian Komputer Komputer terdiri atas dua bagian besar, yaitu perangkat lunak (software) dan perangkat keras (hardware) (Dipanegara, 2011). 2.2.2.2.1 Perangkat Keras Komputer • CPU sebagai unit yang mengolah data • Memory RAM, tempat penyimpanan data sementara • Hard drive, media penyimpanan semi permanen 26 • Perangkat masukan, media yang digunakan untuk memasukkan data untuk diproses oleh UPS, seperti mouse, keyboard dan tablet • Perangkat keluaran, media yang digunakan untuk menampilkan hasil keluaran pemrosesan CPU, seperti monitor dan printer. 2.2.2.2.2 Perangkat Lunak Komputer • Sistem Operasi Program dasar pada komputer yang menghubungkan pengguna dengan hardware komputer. Sistem operasi yang biasa digunakan adalah Linux, Windows, dan Mac OS. Tugas sistem operasi, yaitu mengatur eksekusi program di atasnya, koordinasi input, output, pemrosesan, memori, serta instalasi software. • Program Komputer Program komputer merupakan aplikasi tambahan yang dipasang sesuai dengan sistem operasinya. 2.2.3Troubleshooting Perangkat Keras Komputer Troubleshooting adalah sebuah istilah dalam bahasa Inggris, yang merujuk kepada sebuah bentuk penyelesaian sebuah masalah. Troubleshooting merupakan pencarian sumber masalah secara sistematis sehingga masalah tersebut dapat diselesaikan. Pada umumnya, troubleshooting digunakan dalam berbagai bidang, seperti dalam bidang komputer, administrasi sistem, dan juga bidang elektronika dankelistrikan (Putra, 2011). 27 Komputer adalah sebuah mesin yang dapat mengalami kegagalan dalam menjalankan fungsinya. Komputer tidak “burn out” tetapi “wear out” baik oleh cara penggunaan manusia yang salah ataupun oleh ketahanan komponen yang memang hanya memiliki kemampuan terbatas (Sasongko, 2007). Masalah yang ditimbulkan oleh komputerkadangkala merupakan masalah kecil yang tidakmemerlukan tingkat pengetahuan yang tinggimengenai komputer. Untuk menyelesaikan halitu, mungkin bisa diselesaikan oleh seorang yangmempunyai pengetahuan sangat dasar tentangkomputer. Tetapi kadangkala masalah-masalahtersebut juga membutuhkan tingkat kemampuanyang tinggi tentang komputer dan komponenkomponensehingga memerlukan seorang teknisikhusus untuk perbaikannya. Aplikasi ini akan membantu dalammenyelesaikan masalah-masalah yang berkaitan dengan troubleshooting atau penyelesaianmasalah perangkat keras (hardware) komputersecara cepat. 2.2.4 Java Menurut Hakim dan Sutarto (2009, p1), Java bermuladariproyekpenelitianperusahaan Sun Microsystems dengannamasandi Green padatahun 1991. Terdapatprediksibahwamikroprosesorakandigunakansecaraluaspadaperalatan-peralatan elektronik. Karenaadanyabermacam- macamtipemikroprosesor,makadibutuhkansebuahbahasapemrograman yang dapatberjalan di semuamikroprosesor. Dengandemikian, terciptalahsebuahbahasapemrogramanbaruoleh James Gosling, yaitusalahsatu orang yang berperanbesardalamproyektersebut, yang diberinama Oak. 28 Namun, karenasudahadabahasapemrogramandengannama Oak, makanamanya pun diubahmenjadi Java. Sun Microsystems mengumumkankehadiranbahasa secararesmipada Java tahun 1995.Bahasainimulaidisambuthangatmasyarakatluasseiringdenganmeledaknya era internet. Java merupakansebuahbahasapemrogramanberorientasiobjek yang dapatberjalan di platform yang berbeda, baik di Windows, Linux, serta sistem operasilainnya.Sun Microsystems menyediakanpaketinstalasisesuaidengankebutuhandalammembangunsuatuaplikasi.Berik utsedikitpenjelasanmengenaipaketaplikasi yang tersedia (Hakim dan Sutarto, 2009): a. J2ME (Java Micro Edition) Paketinstalasiinidigunakanuntukmengembangkan berjalanpadaperangkat yang software memilikimemoridansumberdaya yang yang kecil, sepertipadateleponselular, PDA, dan smartcard. b. J2SE (Java 2 Standard Edition) Paketinstalasiinidigunakanuntukmengembangkanaplikasi desktop. c. J2EE (Java 2 Enterprise Edition) Paketinstalasiinidigunakanuntukmengembangkanaplikasipadalingkungan maupunaplikasiskalaenterprise. internet