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 AI dapat 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 neuro fuzzy dijual 2010 Sistem kecerdasan buatan untuk pesawat komersial BOEING 900-ER ramai digunakan 2011 Service Robot untuk restoran berhasil dibuat di Indonesia (Budiharto et al., 2011) 2012 Sistem pakar troubleshooting komputer 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 ke dalam 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 suatu pengetahuan dari basis pengetahuannya 2. Memiliki kemampuan untuk beradaptasi 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.3 Human Expert Problem Solving (Tolle, 2008) Gambar 2.4 Expert System Problem Solving (Tolle, 2008) 13 - Knowledge Base Knowledge base merupakan 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 domain pengetahuan yang terdapat pada knowledge base untuk 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 internal node (non-leaf node) merepresentasikan atribut, cabangnya merepresentasikan nilai dari atribut, dan daun (leaf node atau terminal 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.6 Proses 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.7 Proses 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 platform yang ada di pasaran, 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 berbulanbulan, 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 komputer semula 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.3 Troubleshooting 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 dan kelistrikan (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 komputer kadangkala merupakan masalah kecil yang tidak memerlukan tingkat pengetahuan yang tinggi mengenai komputer. Untuk menyelesaikan hal itu, mungkin bisa diselesaikan oleh seorang yang mempunyai pengetahuan sangat dasar tentang komputer. Tetapi kadangkala masalah-masalah tersebut juga membutuhkan tingkat kemampuan yang tinggi tentang komputer dan komponen-komponen sehingga memerlukan seorang teknisi khusus untuk perbaikannya. Aplikasi ini akan membantu dalam menyelesaikan masalah-masalah yang berkaitan dengan troubleshooting atau penyelesaian masalah perangkat keras (hardware) komputer secara cepat. 2.2.4 Java Menurut Hakim dan Sutarto (2009, p1), Java bermula dari proyek penelitian perusahaan Sun Microsystems dengan nama sandi Green pada tahun 1991. Terdapat prediksi bahwa mikroprosesor akan digunakan secara luas pada peralatan-peralatan elektronik. Karena adanya bermacam-macam tipe mikroprosesor, maka dibutuhkan sebuah bahasa pemrograman yang dapat berjalan di semua mikroprosesor. Dengan demikian, terciptalah sebuah bahasa pemrograman baru oleh James Gosling, yaitu salah satu orang yang berperan besar dalam proyek tersebut, yang diberi nama Oak. Namun, karena sudah ada bahasa pemrograman dengan nama Oak, maka namanya pun diubah menjadi Java. Sun Microsystems mengumumkan kehadiran bahasa 28 Java secara resmi pada tahun 1995. Bahasa ini mulai disambut hangat masyarakat luas seiring dengan meledaknya era internet. Java merupakan sebuah bahasa pemrograman berorientasi objek yang dapat berjalan di platform yang berbeda, baik di Windows, Linux, serta sistem operasi lainnya. Sun Microsystems menyediakan paket instalasi sesuai dengan kebutuhan dalam membangun suatu aplikasi. Berikut sedikit penjelasan mengenai paket aplikasi yang tersedia (Hakim dan Sutarto, 2009): a. J2ME (Java Micro Edition) Paket instalasi ini digunakan untuk mengembangkan software yang berjalan pada perangkat yang memiliki memori dan sumber daya yang kecil, seperti pada telepon selular, PDA, dan smartcard. b. J2SE (Java 2 Standard Edition) Paket instalasi ini digunakan untuk mengembangkan aplikasi desktop. c. J2EE (Java 2 Enterprise Edition) Paket instalasi ini digunakan untuk mengembangkan aplikasi pada lingkungan internet maupun aplikasi skala enterprise.