BAB 2 LANDASAN TEORI 2.1 Teori-teori Umum Teori – teori umum adalah teori yang mendasari untuk pengembangan aplikasi sistem pakar untuk mendeteksi penyakit tanaman dengan layanan berbasis lokasi seperti kecerdasan buatan, sistem informasi geografis, teori dasar rekayasa perangkat lunak, software development life cycle, bahasa pemrograman yang akan digunakan dalam pengembangan aplikasi seperti HTML, CSS, PHP, JAVA, teori mengenai database, MySQL, serta istilah framework, API dan SDK. 2.1.1 Kecerdasan Buatan Kecerdasan buatan adalah entitas kecerdasan ilmiah yang umumnya dapat melakukan perhitungan seperti mesin tetapi berpikir dan bertindak seperti layaknya manusia sehingga dapat mengambil keputusan, belajar dan memecahkan masalah yang rumit. (Russell & Norvig, 2010, p2) 2.1.1.1 Sejarah Menurut Jones (2008, p3), pada tahun 1950 adalah ide awal untuk kecerdasan buatan (Artificial Intelligence) mulai terbentuk, salah satunya adalah dengan membangun mesin cerdas. Pada saat itu, seorang ilmuwan Alan Turing bertanya apakah mesin bisa berpikir. Alan Turing kemudian memperkenalkan konsep mesin universal abstrak yang sederhana dan bisa memecahkan masalah 9 10 matematika (albiet dengan beberapa kompleksitas). Hasil penelitian ini disebut Tes Turing (Turing Test). Dalam tes Turing, jika mesin bisa mengelampaui manusia dalam berpikir, maka tes kecerdasan dapat dinyatakan lulus. Tes Turing diawali dengan berkomunikasi dengan agen lain melalui keyboard. Pertanyaan diminta dari pengguna lain (pakar ahli) melalui teks tertulis, dan tanggapan yang diberikan melalui terminal. Pengguna lain (pakar ahli) yang cerdas dan berpengetahuan diperlukan untuk memiliki percakapan cerdas, pengguna juga harus mampu mengurai dan memahami bahasa alami sehingga menghasilkan respon berupa bahasa alami pula. Pertanyaan tersebut melibatkan keterampilan penalaran (seperti pemecahan masalah). Program kecerdasan buatan pertama kali ditulis untuk komputer disebut "The Theorist Logic” pada tahun 1956 oleh Allen Newell, Herbert Simon, dan JC Shaw untuk menemukan bukti sebuah persamaan. Hal yang paling unik tentang program ini adalah bahwa ditemukan bukti yang lebih baik daripada yang ada sebelumnya untuk persamaan yang diberikan. Kemudian pada tahun 1957, Herbert Simon dan Allen Newell mengembangkan General Problem Solver (GPS) sebagai lanjutan pengembangan dari penelitian sebelumnya. General Problem Solver (GPS) digunakan sebagai alat analisis untuk memecahkan masalah, tetapi secara umum dibatasi untuk masalah permainan berbentuk matematika kompleks. Pada tahun 1970-an, kecerdasan buatan telah menghasilkan ketertarikan yang cukup luas dan besar kepada komunitas riset. Salah satu sistem pakar pertama yang menunjukkan aturan berbasis arsitektur disebut MYCIN, dan dikembangkan oleh Ted Shortliffe mengikuti disertasinya pada temporary 11 subject di Stanford University pada tahun 1974. MYCIN dioperasikan di bidang diagnosa medis dan menunjukkan representasi pengetahuan dan inferensi. Kemudian dalam dekade ini, disertasi lain yang dibuat oleh Bill VanMelles di Stanford University dibangun pada arsitektur MYCIN dan berfungsi sebagai model untuk kerangka sistem pakar yang masih digunakan sampai sekarang. Tujuan dari sistem di era zaman ini adalah pengembangan sistem pakar untuk menjawab pertanyaan cerdas. Untuk memahami pertanyaan dinyatakan dalam bahasa alami, pertanyaan pertama harus dipecah menjadi bagian fundamentalnya atau yang paling mendasar. 2.1.2 Sistem Informasi Geografis Sistem informasi geografis adalah alat dengan basis komputerisasi yang memungkinkan untuk mengolah data spasial dan non spasial untuk menjadi sebuah informasi yang berkaitan dengan permukaan bumi serta digunakan untuk analisis, manipulasi, pengumpulan, penyimpanan dan menampilkan data yang digunakan untuk referensi pengambilan keputusan. (Heywood, Cornelius, & Carver, 2006, p18) 2.1.2.1 Komponen Menurut Heywood, Cornelius, dan Carver (2006, p19), sistem informasi geografis memiliki beberapa komponen pembangun utama yaitu : 12 1. Sistem Komputer dan Software Sistem informasi geografis dapat berjalan di sistem komputer personal hingga komputer dengan banyak pengguna dan dapat berjalan pada program dengan bahasa pemrograman yang berbeda. Adapun elemen yang dibutuhkan sebuah sistem komputer agar dapat menjalankan sebuah sistem informasi geografis yaitu input atau output devices, layar dengan resolusi tinggi, memori untuk menyimpan data dan processor untuk menjalankan software. 2. Data Spasial Sistem komputer dan software pada sistem informasi geografis pada dasarnya digunakan untuk mengolah data spasial atau data berkenaan dengan informasi geografis. Data spasial meliputi longitude dan latitude, yaitu referensi geografis untuk tata letak sebuah lokasi pada permukaan bumi, informasi detail tentang koneksi permukaan bumi seperti jalan, menara cuaca penghubung data meteorologis dan yang terakhir data non spasial seperti suhu, kecepatan angin dan arah. 3. Manajemen Data dan Prosedur Analisis Manajemen data dibutuhkan untuk proses input data, konversi data lama dengan yang baru, proses pengambilan dan menampilkan data untuk kebutuhan analisis dalam referensi pengambilan keputusan. Semuanya diatur dengan Database Management System (DBMS). 13 2.1.3 Rekayasa Perangkat Lunak 2.1.3.1 Definisi Pendekatan secara sistematis dan penggunaan prinsip rekayasa untuk pengembangan, pengoperasian dan pemeliharaan sebuah perangkat lunak atau software yang efisien dan ekonomis. (Pressman, 2010, p1) 2.1.3.2 Definisi Perangkat Lunak Sebuah instruksi (program komputer) yang ketika dijalankan menyediakan fitur, fungsi, dan kinerja yang diinginkan. Adapun beberapa jenis perangkat lunak atau software menurut Pressman (2010, p7-p9) yaitu: 1. System Software Program yang terdiri dari beberapa subprogram yang dikembangkan untuk melayani program lainnya. System software terdiri dari compiler, editor, dan utilitas manajemen file serta proses yang kompleks tetapi memiliki informasi yang terstruktur dengan baik. 2. Application Software Program untuk memecahkan kebutuhan bisnis yang spesifik seperti memfasilitasi operasi bisnis atau manajemen serta membantu dalam keputusan teknis. 14 3. Engineering / Scientific Software Program yang disusun dari beberapa jumlah algoritma untuk membantu operasi di bidang sains atau teknik seperti computer aided design dan interactive system simulator. 4. Embedded Software Program atau sistem yang digunakan untuk mengontrol fitur dan fungsi sebuah produk atau alat bagi pengguna akhir dan untuk sistem itu sendiri. Program yang tertanam dapat melakukan fungsi terbatas misalnya tombol cancel pada Anjungan Tunai Mandiri (ATM) untuk membatalkan transaksi. 5. Product-line Software Program yang dirancang untuk memberikan kemampuan khusus atau spesifik kepada tiap-tiap penggunanya seperti word processor, spreadsheet, grafik komputer, multimedia, hiburan, manajemen database, dan aplikasi keuangan pribadi dan bisnis. 6. Web Application Program yang terdiri dari satu file hypertext terkait yang menyajikan informasi menggunakan teks dan grafis yang terbatas yang dijalankan dalam jaringan komputer. Pada masa sekarang web application memiliki banyak fungsi seperti keperluan komputasi, menyajikan konten kepada pengguna bahkan terintegrasi dengan database berskala enterprise untuk keperluan bisnis. 15 7. Artificial Intelligence Software Program yang memanfaatkan algoritma untuk memecahkan masalah kompleks. Artificial intelligence software meliputi robotika, sistem pakar, pengenalan pola (gambar dan suara), jaringan saraf tiruan, membuktikan teorema dan games. 2.1.3.3 Proses Rekayasa Perangkat Lunak Menurut Pressman (2010, p14-p15), rekayasa perangkat lunak memiliki beberapa aktifitas utama dalam satu kali proses terjadinya yaitu : 1. Komunikasi Sebelum melakukan semua pekerjaan teknis sangat penting untuk berkomunikasi dan berkolaborasi dengan pelanggan atau pengguna perangkat lunak. Tujuannya adalah untuk memahami tujuan proyek perangkat lunak nantinya dan untuk mengumpulkan persyaratan yang membantu menentukan fitur dan fungsi perangkat lunak. 2. Perencanaan Sebuah perangkat lunak dalam pengembangannya pasti akan melalui proses yang panjang dan rumit. Oleh sebab itu dibutuhkan sebuah perencanaan yang baik seperti pembagian tugas, sumber daya, biaya produksi dan jadwal kerja untuk membantu mengarahkan dalam proses pengerjaan dan pengembangan perangkat lunak. 16 3. Model Pembuatan model perangkat lunak sangat dibutuhkan untuk membuat detail yang lebih jelas dalam upaya untuk lebih memahami masalah dan bagaimana cara mengatasinya. 4. Konstruksi Kegiatan menggabungkan code yang telah dibuat sebelumnya (baik secara manual atau otomatis) dan pengujian yang diperlukan untuk mengungkap kesalahan dalam code. 5. Deployment Kegiatan dimana perangkat lunak yang telah selesai dibangun, dikirimkan dan diimplementasikan kepada pelanggan yang nantinya mengevaluasi produk yang disampaikan oleh pengembang dan memberikan umpan balik berdasarkan hasil evaluasi. 2.1.4 Unified Modeling Language Unified Modeling Language adalah sebuah gambaran berdasarkan objek yang berorientasi pada analisis dan desain menggunakan model untuk membantu dalam pengembangan perangkat lunak, pemahaman yang berkelanjutan, dan memberikan cara komunikasi yang lebih baik dalam merepresentasikan alur maksud dan tujuan. (Whitten & Bentley, 2008, p293) 17 2.1.4.1 Diagram Unified Modeling Language Adapun diagram-diagram yang menggunakan notasi Unified Modelling Language (UML) dalam pengembangan perangkat lunak menurut Whitten dan Bentley (2008, p185-p561) adalah sebagai berikut: 1. Use-Case Diagram Diagram yang mendefinisikan urutan interaksi antara pelaku (objek yang terlibat dalam sebuah sistem) dan sistem itu sendiri. Pelaku/actor digambarkan sebagai objek berupa stick figure pada usecase diagram, sedangkan batasan sistem digambarkan sebagai sebuah kotak. Untuk pelaku yang bertindak sebagai sistem ditambah label <<system>> (Whitten & Bentley, 2008, p185). Gambar 2. 1 Contoh Use-Case Diagram (Whitten & Bentley, 2008) 18 Selain itu terdapat pula pelaku yang bukan merupakan bagian dari sistem utama tetapi bertindak sebagai pengatur waktu. Biasanya pelaku tersebut diberi label “Time”. Tindakan atau kegiatan yang dilakukan atau dikenakan kepada pelaku digambarkan dengan bentuk sebuah ellips. Tindakan atau kegiatan yang dilakukan oleh pelaku tersebut merupakan salah satu bagian rangkaian komponen dalam sistem sehingga dibutuhkan batasan-batasan sistem. Tabel 2. 1 Tabel Simbol pada Use-Case Diagram Indikator Keterangan Actor / Pelaku dalam Sebuah Sistem Actor1 System System Boundaries / batasan-batasan sistem Use Case / Tindakan atau kegiatan yang dilakukan UseCase1 atau dikenakan kepada pelaku Relationship / Hubungan antara objek atau pelaku dalam sistem dengan use case Time / Pengatur Waktu 19 Bentuk yang menghubungkan para pelaku dengan tindakan atau kegiatannya sangat berperan serta dalam mendefinisikan tujuan dari sistem tersebut. 2. Class Diagram Diagram yang mengklasifikasikan objek dalam bentuk sebuah class, kemudian digambarkan dalam objek yang berbentuk kotak, dan dihubungkan dengan sebuah garis yang merepresentasikan sebuah bentuk hubungan yang memiliki tujuan (relationship). Untuk pengembang perangkat lunak, dibutuhkan simbol visibility, untuk membantu proses pemindahan dari diagram ke kode program. (Whitten & Bentley, 2008, p324) Tabel 2.2 Tabel Simbol Visibility pada Class Diagram Simbol # Keterangan Protected Kegunaan Dapat mengakses class dan turunan class dari class tertentu + Public Dapat diakses seluruh sistem - Private Hanya dapat mengakses class itu sendiri ~ Package Dapat mengakses class yang hanya terdapat pada package yang sama 20 Gambar 2. 2 Contoh Class Diagram (Whitten & Bentley, 2008) 21 Adapun 3 bentuk hubungan (relationship) dalam class diagram adalah sebagai berikut : Association yaitu bentuk hubungan statis antara dua atau lebih class. Association memiliki bentuk berupa garis dengan panah hitam kecil untuk menunjukan arah class yang dituju. Pada setiap akhir garis biasanya terdapat label yang menjelaskan banyaknya jumlah association di class yang dituju. Banyaknya jumlah association menentukan berapa banyak instansi dari satu class yang dapat berhubungan dengan instansi dari class lain. Tabel 2. 3 Tabel Indikator Relationship pada Class Diagram Indikator Keterangan 0..1 Zero to One 1 One only 0..* Zero to Many/More 1..* One to Many/More N Only n (Where n < 1) * Many/More 0..n Zero to n (Where n < 1) 1..n One to n (Where n < 1) n..m n to m ((Where both n and m < 1) n..* N to ManyMore (Where n < 1) 22 Composition adalah bentuk hierarki hubungan yang bersifat keseluruhan. Composition diwakili dengan objek berbentuk segi empat dengan warna hitam yang merepresentasikan penuh atau keseluruhan. Aggregation adalah bentuk hierarki hubungan yang bersifat sebagian. Aggregation diwakili dengan objek berbentuk segi empat berongga yang merepresentasikan sebagian. Gambar 2. 3 Contoh penerapan Association pada Aggregation dan Composition (Whitten & Bentley, 2008) Generalization / Specialization adalah hubungan yang bersifat warisan (inheritance). Sebuah Generalization / Specialization digambarkan sebagai panah yang bergabung antara subclass (anak) dengan superclass (induk), dengan panah menyentuh kotak superclass dari subclass. 23 Gambar 2. 4 Contoh Generalization dan Specialization (Whitten & Bentley, 2008) Tiap relationship pada class diagram menghubungkan antar class dengan class lainnya. Dalam pengembangannya, class diagram dapat menghubungkan antara pengembang perangkat lunak dengan pengguna. 3. Sequence Diagram Diagram untuk menggambarkan interaksi antara objek-objek dalam urutan waktu. Sequence diagram adalah diagram dua dimensi di mana objek-objek yang berpartisipasi dalam interaksi tersebut digambarkan secara horizontal dan garis putus-putus pada dimensi vertikal adalah gambaran untuk waktu. (Whitten & Bentley, 2008, p554) 24 Tabel 2. 4 Tabel Simbol pada Sequence Diagram Indikator Object1 Keterangan Object Lifeline / garis waktu hidup sebuah objek atau pelaku yang berperan dalam sebuah sistem Activation / Masa aktif sebuah pelaku dalam sistem Message(call) / Pesan yang dikirim ke aktor atau objek lain Message / Pesan yang dikirim ke aktor atau objek lain secara sinkron Message / Pesan yang dikirim ke aktor atau objek lain secara asinkron Message / Pesan yang dikirim ke aktor yang bersifat respon dari sistem Message1 Self Call / Pesan yang dikirim ke aktor atau objek lain tersebut sendiri 25 Gambar 2. 5 Contoh Sequence Diagram (Whitten & Bentley, 2008) 4. Activity Diagram Diagram yang menggambarkan aliran kontrol dan urutan antar kegiatan. Sebuah activity diagram menunjukkan urutan kegiatan, keputusan, perulangan, dan kegiatan yang dilakukan bersamaan. Activity diagram yang banyak digunakan dalam pemodelan alur kerja , misalnya untuk aplikasi berorientasi layanan. (Whitten & Bentley, 2008, p309) 26 Tabel 2. 5 Tabel Simbol pada Activity Diagram Indikator Keterangan Initial State / Kondisi Awal Final State / Kondisi Akhir Control Flow / Aliran Kegiatan Transition - Join (Menggabungkan 2 control flow menjadi 1 arah) - Fork (Membuat cabang dari 1 control flow menjadi beberapa bagian) State / Kondisi kegiatan Decision / Pilihan Keputusan Parti tion1 Partition (Swimlane)/Pengklasifikasian pelaku yang terlibat dalam sebuah aktifitas atau kegiatan 27 Gambar 2. 6 Contoh Activity Diagram dengan Partition (Whitten & Bentley, 2008) 28 2.1.5 Software Life Cycle 2.1.5.1 Definisi Pendekatan bertahap untuk mengembangkan perangkat lunak dengan kiriman spesifik dan tonggak dalam setiap fase. (Gomaa, 2011, p29) 2.1.5.2 Definisi Software Life Cycle Model Abstraksi dari proses pengembangan perangkat lunak yang digunakan dengan baik untuk tujuan perencanaan. (Gomaa, 2011, p29) Menurut Ragunath et.al (2010), fungsi dari software life cycle model adalah meningkatkan kontrol manajemen atas proyek yang dikerjakan dengan membagi tugas yang kompleks menjadi beberapa bagian untuk dikelola dan menentukan secara deskriptif atau preskriptif bagaimana sebuah perangkat lunak itu harus dikembangkan. 2.1.5.3 Spiral Model Spiral model adalah pendekatan yang dikembangkan oleh Boehm tahun 1988 untuk mengatasi masalah pada waterfall model. Spiral Model ini dimaksudkan untuk mencakup model siklus hidup lainnya, seperti waterfall model, incremental development model, dan throwaway prototyping. (Gomaa, 2011, p34) 29 Model spiral terdiri dari empat kuadran berikut yaitu : a. Tentukan tujuan, alternatif, dan kendala. Perencanaan rinci untuk siklus mengidentifikasi tujuan dan pendekatan alternatif untuk mencapai tujuan pengembangan perangkat lunak. b. Menganalisis risiko. Rinci penilaian risiko proyek saat ini, rencana kegiatan yang akan dilakukan untuk mengurangi risiko tersebut. c. Mengembangkan produk. Bekerja pada pengembangan produk, seperti persyaratan analisis, desain, atau coding. d. Rencanakan siklus berikutnya. Menilai kemajuan yang dibuat pada siklus ini dan mulai merencanakan untuk siklus berikutnya. Setiap siklus model spiral beriterasi pada empat kuadran. Tujuan dari spiral model adalah dihasilkan sebuah analisa risiko untuk menindaklanjuti kemungkinan terjadi kesalahan pada pengembangan software. (Gomaa, 2011) Gambar 2. 7 Spiral Model (Gomaa, 2011) 30 Menurut analisis Ragunath et.al (2010), keuntungan penggunaan spiral model adalah tingginya jumlah analisis risiko sehingga membuat jumlah kesalahan yang akan terjadi dalam pengembangan perangkat lunak dapat diperkecil, sangat baik untuk proyek perangkat lunak berskala besar yang fokus dan kritis pada tujuan pengembangannya, serta perangkat lunak dapat diproduksi pada awal siklus hidup. Adapun kekurangan dari spiral model adalah mahal, membutuhkan keahlian yang sangat spesifik, tingkat keberhasilan proyek sangat tergantung pada tahap analisis resiko dan tidak dapat bekerja dengan baik untuk proyek berskala kecil. 2.1.6 Database Menurut Connolly dan Begg (2010, p65), database adalah sekumpulan dari data bersama yang terkait secara logis dan deskripsinya, yang didesain untuk memenuhi kebutuhan organisasi. Database biasanya memiliki ukuran, baik kecil dengan struktur sederhana hingga besar dengan struktur yang kompleks. Umumnya, database juga berbentuk sebuah file maupun kumpulan dari beberapa file yang berisi sebuah data tentang informasi yang aktual. Dalam database dikenal pula istilah relational database, yaitu sekumpulan dari relasi yang telah dinormalisasi dengan nama relasi yang berbeda. Basis data ini menghubungkan antara satu tabel dengan tabel lain dalam satu basis data. Relational database selalu menggunakan field kunci untuk mendefinisikan relasi antar tabel. Semakin banyak tabel yang ada, 31 semakin banyak relasi yang diperlukan untuk menghubungkan semua tabel. Sebuah tabel tidak harus langsung berhubungan dengan setiap tabel lain, tetapi setiap tabel dalam basis data terhubung satu sama lain (tidak ada tabel yang berdiri sendiri). Jadi tabel dapat berhubungan dengan setiap tabel lain dengan hubungan langsung atau tidak langsung. Berikut adalah objek-objek yang terdapat pada database: 1. Tabel, yaitu objek yang berisi tipe-tipe data. 2. Kolom, yaitu sebuah tabel berisi kolom untuk menampung data. Kolom mempunyai tipe dan nama yang unik. 3. Tipe data, yaitu sebuah kolom mempunyai sebuah tipe data. Tipe data yang dapat dipilih misalnya character, numeric, dan sebagainya. 4. Primary key, yaitu kata kunci utama yang menjamin data agar unik, hingga dapat dibedakan dari data yang lain. 5. Foreign key, merupakan kolom-kolom yang mengacu pada primary key dari tabel yang lain. Dengan kata lain, primary key dan foreign key digunakan untuk menghubungkan sebuah tabel dengan tabel lain . 2.1.6.2 Database Management System (DBMS) Menurut Connolly dan Begg (2010, p66), DBMS adalah suatu sistem perangkat lunak yang memungkinkan pengguna untuk mendefinisikan, menciptakan, memelihara dan mengontrol akses ke database. Secara khusus, DBMS menyediakan fasilitas berikut : a. Memungkinkan pengguna untuk menentukan database, biasanya melalui Data Definition Language (DDL). DDL memungkinkan user untuk 32 menentukan tipe user dan struktur data mendorong data untuk disimpan ke database. b. Memungkinkan pengguna untuk melakukan insert, update, delete dan retrieve dari database, biasanya melalui Data Manipulation Language (DM L) serta menyediakan akses terkontrol pada database. . 2.1.6.3 Peran dan Ruang Lingkup Database Adapun peran dan ruang lingkup database menurut Connolly dan Begg (2010, p71-p73) yaitu: 1. Data dan Database Administrator Orang yang bertanggung jawab atas pengelolaan sumber data termasuk perencanaan, pengembangan dan pemeliharaan dengan standar, kebijakan dan prosedur, serta desain konseptual/logis basis data. Administrator data berkonsultasi dan memberikan saran kepada manajer, untuk memastikan bahwa arah pengembangan database mendukung tujuan perusahaan sepenuhnya. 2. Perancang Database Ada dua macam perancang yaitu perancang basis data logis dan perancangan basis data fisik. Perancangan basis data logik berhubungan dengan identifikasi data, hubungan antara data satu dengan yang lain, serta kendala-kendala di dalam data yang harus disimpan di dalam basis data. Perancang basis data fisik menentukan bagaimana desain basis data logis direalisasikan secara fisik. Perancang basis data fisik harus mampu memilih strategi-strategi penyimpanan yang sesuai dan memperhitungkan penggunaannya. Berbeda dengan perancang 33 konseptual/logis yang berkaitan tentang data apa saja yang diperlukan (what), perancang basis data fisik berkaitan bagaimana metodenya (how). 3. Pengembangan Aplikasi Setelah database diimplementasikan, program aplikasi yang menyediakan fungsi yang diperlukan untuk pengguna harus diimplementasikan. Ini adalah tanggung jawab para pengembang aplikasi. Biasanya, para pengembang aplikasi bekerja dari spesifikasi yang dihasilkan oleh sistem analis. 4. Pengguna Akhir (End User) End-user adalah ‘klien’ untuk basis data, yang telah dirancang dan dilaksanakan, dan sedang dipertahankan untuk melayani kebutuhan informasi mereka. End-user dapat diklasifikasikan menurut cara pengguna menggunakan sistem : a. Naive users: Pengguna mengakses melalui program khusus yang ditulis untuk membuat operasi sesederhana mungkin. b. Sophisticated users: Pengguna yang dapat menggunakan bahasa tingkat tinggi seperti SQL untuk melakukan operasi yang dibutuhkan. 2.1.6.4 Structured Query Language (SQL) Menurut Connolly dan Begg (2010, p184), Structured Query Language (SQL) merupakan bahasa yang dirancang untuk menggunakan relasi untuk mengubah masukan menjadi keluaran yang diharapkan. SQL dimaksudkan untuk memenuhi keputusan berikut: 34 1. Membuat database dan struktur relasi dengan melakukan tugas dasar manajemen data, seperti pemasukan, modifikasi dan penghapusan data dari relasi. 2. Melakukan query sederhana dan kompleks. Standar SQL memiliki dua komponen: 1. Data Definition Language (DDL) untuk menetapkan struktur database dan mengontrol akses ke data. Contoh : CREATE, ALTER. 2. Data Manipulation Language (DML) untuk mendapatkan kembali (retrieve) dan memperbahurui data. Contoh : INSERT, SELECT, UPDATE, DELETE. .2.1.6.5 Fact-finding Techniques Menurut Connolly dan Begg (2010, p341), fact-finding techniques adalah proses formal menggunakan teknik seperti wawancara dan kuisioner untuk mengumpulkan fakta tentang sistem, kebutuhan dan pilihan. Terdapat 5 teknik yang digunakan dalam fact-finding techniques, yaitu: 1. Examining documentation Dengan memeriksa dokumen dan laporan terkait yang berhubungan dengan sistem saat ini. 2. Interviewing Mengumpulkan informasi yang berhubungan dengan sistem yang ada saat ini dengan melakukan wawancara secara langsung ke perusahaan. 35 3. Observing the organization in operation Dengan mengamati secara langsung aktivitas kerja di perusahaan untuk mempelajari mengenai sistem yang ada saat ini. 4. Research Dengan mengumpulkan sumber-sumber penelitian yang berasal dari referensi buku dan artikel-artikel yang berasal dari internet. 5. Questionnaire Dengan membuat pertanyaan-pertanyaan yang berhubungan dengan sistem basis data yang akan dibuat untuk dijawab oleh responden yang ditunjuk untuk mengisi kuisioner tersebut 2.1.7 MySQL Menurut Valade (2010, p12), MySQL adalah aplikasi database yang cepat dan mudah menggunakan RDBMS (Relational Database Management System) yang digunakan pada web application pada umumnya. Namun, meskipun fitur MySQL kurang lengkap dibandingkan dengan pesaing komersial, MySQL memiliki semua fitur yang dibutuhkan oleh mayoritas database pengembang. Selain itu juga lebih mudah untuk diinstal, digunakan, dan selisih harga pun sangat mendukung daripada pesaing komersial. 36 2.1.7.1 Keuntungan Keuntungan dari menggunakan MySQL menurut Valade (2010, p13) antara lain: a. Cepat, murah, aman dan mudah digunakan. b. Bisa dijalankan di berbagai macam platform atau operating system. c. Dukungan teknis yang tersedia secara luas dari komunitas MySQL dari seluruh dunia. d. Mendukung database besar dengan struktur yang kompleks. e. Dapat memodifikasi MySQL sehingga cocok dengan lingkungan pengembangnya. 2.1.8 SQLite Menurut Allen dan Owens (2010, p1), SQLite adalah database yang prosesnya berdiri sendiri dan biasanya tertanam pada sebuah perangkat keras atau mesin yang menjalankan fungsi mengelola data secara mandiri atau Embedded Database. SQLite tidak memerlukan konfigurasi jaringan atau proses administrasi seperti database pada umumnya yang memerlukan host untuk menjalankannya, dalam arti lain, SQLite dapat mengurangi overhead pada perangkat keras dan membuat waktu lebih efisien untuk mengurangi hal-hal teknis seperti konfigurasi jaringan dan proses administrasi. 37 2.1.8.1 Keuntungan Keuntungan dari menggunakan SQLite menurut Allen dan Owens (2010, p8-p10) antara lain: a. Tidak memerlukan konfigurasi yang rumit b. Portable dan kompatibel di beberapa sistem operasi seperti Windows, Mac OS X, Linux, BSD dan sistem komersil berbasis UNIX lainnya c. Ringan dan tidak membutuhkan server database eksternal d. Sederhana dan fleksibel e. Gratis dan bebas royalti dalam pengembangannya. 2.1.9 Hypertext Preprosessor (PHP) PHP singkatan dari Hypertext Preprocessor adalah bahasa pemprograman yang dirancang khusus oleh Rasmus Lerdorf untuk membuat suatu web dan ini merupakan alat untuk membuat halaman web yang dinamis. PHP merupakan software open source yang disebarkan dan dilisensikan secara gratis serta dapat http://www.php.net/. didownload secara Pengembang dapat bebas dari mengubah situs source resminya code dan mendistribusikannya secara bebas diedarkan secara gratis. (Valade, 2010, p15) 38 Menurut Valade (2010, p15), sintaks dari bahasa PHP mirip dengan sintaks bahasa pemrograman C, jadi jika pengembang memiliki pengalaman dengan bahasa pemrograman C, tentu saja akan merasa nyaman ketika mengembangkan perangkat lunak dengan bahasa pemrograman PHP. Bahasa pemrograman PHP sebenarnya lebih sederhana daripada bahasa pemrograman C karena tidak menggunakan beberapa konsep dari bahasa pemrograman bahasa C yang sedikit lebih rumit tetap dirancang khusus untuk bahasa pemgrograman tingkat tinggi. PHP memiliki kemampuan untuk berinteraksi dengan database. 2.1.10 Hypertext Markup Language (HTML) Hypertext Markup Language adalah markup yang dikembangkan pada 1980-an dan awal 1990-an untuk menggambarkan halaman web. HTML kini diabadikan dalam deskripsi standar banyak (spesifikasi) dari World Wide Web Consortium (W3C). Spesifikasi HTML terakhir dilakukan pada tahun 1999. XHTML merupakan versi pengembangan terbaru dari HTML yang didasarkan pada Extensible Markup Language (XML). XHTML menggunakan sintaks yang sangat teratur dan dapat diprediksi yang lebih mudah untuk perangkat lunak yang menanganinya. (Tittel & Noble, 2011, p9) 39 HTML memiliki beberapa komponen pembangun menurut Tittel dan Noble (2011, p16-p18) yaitu : 1. Elemen Mengidentifikasi bagian-bagian yang berbeda dari sebuah halaman HTML dengan menggunakan tag. 2. Atribut Informasi tentang sebuah bagian dari elemen. 3. Entitas Berbentuk teks dalam karakater non ASCII seperti simbol copyright (©) dan huruf beraksen (E). Entitas berasal dari Bahasa Markup Standar Generik (SGML). 2.1.11 Cascading Style Sheet (CSS) Kumpulan modul yang memberikan kontrol untuk format pada halaman web, seperti font, warna untuk latar belakang, warna teks dan lain sebagainya. CSS dapat mengatur tiap aspek pada halaman web, memberikan perubahan secara menyeluruh pada halaman web dan membuat tampilan halaman web terlihat lebih dinamis. (Tittel & Noble, 2011, p129) 40 2.1.12 Web Server Perangkat lunak yang berfungsi membuat sebuah halaman web dapat diakses di seluruh dunia. Cara kerja sebuah web server adalah ketika seseorang mengetik alamat sebuah web melalui browser, alamat tersebut akan dikirimkan melalui sebuah pesan ke web server dan kemudian web server akan mengirimkan file HTML agar dapat dibaca di browser. Web server merespon dengan mengirimkan file sesuai yang diminta. Browser akan membaca file HTML dan menampilkan halaman web. Selain itu, web server memproses file ketika adanya aksi pada form HTML yang terdapat pada halaman web. (Tittel & Noble, 2011, p14) Beberapa komponen standar yang harus dipenuhi alamat sebuah halaman web agar bisa diproses oleh web server menurut Tittel dan Noble (2011, p16) adalah sebagai berikut : 1. Protokol: Menentukan protokol browser berikut untuk meminta file. Contoh http:// 2. Domain: Penunjuk sebuah situs web pada umumnya (contoh : www.sun.com) di mana sebuah halaman web tersebut berada. 3. Path: Urutan nama folder dimana harus dinavigasikan untuk mendapatkan file tertentu. Misalnya, untuk mendapatkan file dalam folder evangcentral yang berada di folder /developer/evangcentral/path. pengembang harus mengakses 41 4. Filename Menentukan mana file dalam jalur direktori yang akan diakses browser. Contoh .php, .html dan lain sebagainya. 2.1.13 Java Bahasa pemrograman dan platform komputasi pertama kali dirilis oleh Sun Microsystems pada tahun 1995. Bahasa pemrograman Java mendukung beberapa teknologi termasuk utilitas, permainan, dan aplikasi bisnis. Bahasa pemrograman Java mendukung kecepatan pengembangan sebuah aplikasi, keamanan, dan handal. Bahasa pemrograman Java merupakan bahasa yang sangat multi-platform, dapat ditemui di laptop, pusat data, konsol game, super computer ilmiah maupun dari ponsel hingga ke web. (Java, 2010). 2.1.13.1 Keuntungan Dikutip dari website resmi Java (2010), bahasa pemrograman java memiliki beberapa keuntungan untuk pengembang yaitu : 1. Mengembangkan perangkat lunak tidak hanya pada satu platform tetapi dapat menjalankannya pada hampir semua platform lain (multiplaftform). 2. Mengembangkan perangkat lunak yang dapat dijalankan pada web browser dan mengakses layanan web yang tersedia. 3. Mengembangkan aplikasi server-side untuk forum online, toko online, chat, HTML form, dan aplikasi bisnis berskala besar. 42 4. Dapat mengkombinasikan aplikasi atau layanan menggunakan bahasa pemrograman Java untuk membuat aplikasi yang sesuai dengan keinginan. 5. Dapat mengembangkan aplikasi yang efektif dan efisien untuk ponsel, dengan spesifikasi hardware yang tidak kompleks sehingga menghasilkan produk yang dapat dijual murah kepada konsumen. 2.1.14 Framework Framework adalah seperangkat pustaka dari sebuah perangkat lunak yang telah terintegrasi (seperti class, objek dan komponen-komponen) yang berkolaborasi untuk menyediakan desain arsitektur dari sebuah aplikasi yang dapat digunakan kembali untuk membangun aplikasi sejenis yang terkait. (Sommerville, 2011, p431) 2.1.14.1 Jenis – Jenis Framework Menurut Sommerville (2011, p32-p33), framework dibedakan menjadi beberapa jenis yaitu : 1. System Infrastructur Framework adalah framework yang mendukung pengembangan infrastruktur sistem seperti komunikasi, user interface, dan compiler. 2. Middleware Integration Framework adalah framework yang terdiri dari satu set standar dan kelas objek terkait yang mendukung komponen komunikasi dan pertukaran informasi. Contoh: Microsoft NET. Framework dan Enterprise Java Beans (EJB). 43 3. Enterprise Application Framework adalah framework yang spesifik pada domain aplikasi seperti telekomunikasi atau sistem keuangan. Framework ini mendukung tujuan End-Development User. 4. Web Application Framework (WAF) adalah jenis framework yang terbaru saat ini. Arsitektur WAF yang biasanya didasarkan pada Model-Views-Controller (MVC) pattern. Web application framework biasanya menyertakan satu atau lebih kerangka kerja khusus yang mendukung fitur aplikasi secara spesifik.(Sommerville, 2011) Web Application Framework memiliki fitur-fitur seperti: - Security Web Application Framework (WAF), kelas untuk membantu menerapkan otentikasi pengguna (login) dan kontrol akses untuk memastikan bahwa pengguna hanya dapat mengakses fungsi yang diizinkan dalam sistem. - Dynamic Web Page, kelas disediakan untuk membantu menentukan template halaman web sistem dan untuk mengisinya ini secara dinamis dengan data spesifik dari sistem database. - Database Support, fitur database yang terpisah, seperti MySQL. Framework dapat memberikan kelas yang menyediakan antarmuka abstrak ke beberapa database yang berbeda. - Session Management, kelas untuk membuat dan mengelola sesi (sejumlah tindakan terhadap sistem oleh pengguna) biasanya bagian dari sebuah WAF. 44 - User Interaction, web application framework sekarang memberikan dukungan AJAX yang memungkinkan halaman web lebih interaktif terhadap pengguna. 2.1.14.2 Model – Views – Controllers pattern Model – Views – Controllers (MVC) pattern awalnya diusulkan pada tahun 1980-an sebagai pendekatan untuk desain GUI yang memungkinkan untuk presentasi beberapa obyek dan gaya yang terpisah antar function dengan tujuan yang spesifik. Hal ini memungkinkan untuk pemisahan aplikasi inti dengan user interface. Sebuah kerangka kerja MVC mendukung presentasi data dengan cara yang berbeda dan memungkinkan interaksi dengan masingmasing function. (Sommerville, 2011, p155) 2.1.14.3 Keuntungan dan Kerugian Keuntungan menggunakan framework adalah dapat menggunakan kembali source code yang telah dibuat sehingga aplikasi yang baru dapat dijamin dan mengurangi beban programming dalam pembuatannya serta framework membantu menciptakan latihan pemrograman yang lebih baik. Kekurangan framework adalah memakan biaya dan waktu serta framework yang dibuat dapat menjadi lebih kompleks. (Sommerville, 2011, p155) 45 2.1.15 CodeIgniter Sebuah open source web application framework yang dibangun dengan bahasa pemrograman PHP. CodeIgniter memiliki fitur dan dokumentasi yang lengkap. CodeIgniter menggunakan Model-Views-Controller (MVC) pattern yang memudahkan dalam pengembangan web application. (Griffiths, 2010, p7) Menurut Griffiths (2010, p7), CodeIgniter memiliki fitur Active Record yang berfungsi ketika pengembang menulis query SQL yang kompleks, tetapi tetap membuat hal tersebut mudah untuk dibaca. Active record juga memungkinkan pengembang aplikasi dengan mudah mengubah database driver. Menurut Griffiths (2010, p7), contohnya adalah memungkinkan pengembang untuk menulis script dengan bahasa pemrograman PHP dan masih menggunakan DBMS seperti MySQL, tetapi memberikan pilihan untuk beralih ke DBMS lain seperti Oracle tanpa harus menulis ulang query dalam aplikasi yang sudah dibuat sebelumnya. CodeIgniter juga dilengkapi dengan sejumlah pustaka yang sangat berguna kumpulan fungsi yang membantu pengembang dalam membangun aplikasi. Hal ini membuat pengembang untuk fokus pada bagian kecil dari aplikasi (bekerja dengan sistem modul). 46 2.1.16 Application Programming Interface Seperangkat dokumentasi dari metode pemrograman yang telah dikembangkan oleh pengembang perangkat lunak sebelumnya yang memungkinkan pengembang perangkat lunak lain untuk mengembangkan program sejenis menggunakan dokumentasi dari metode pemrograman tersebut. (Hemmer, 2008, p324) 2.1.17 Software Development Kit Seperangkat alat pengembangan yang menyediakan fitur tertentu dari sebuah perangkat lunak untuk digunakan kembali dalam program yang akan dikembangkan nantinya. Software Development Kit (SDK) biasanya mencakup Application Programming Interface (API). (Hemmer, 2008, p324) 47 2.2 Teori-teori Khusus 2.2.1 Sistem Pakar Sistem pakar adalah program komputer yang berasal dari Artificial Intelligence (AI) yang dibangun dengan tujuan untuk memahami kecerdasan dengan cara menunjukkan perilaku cerdas itu sendiri. Hal ini berkaitan dengan konsep dan metode inferensi simbolik, atau penalaran, oleh komputer dan bagaimana pengetahuan yang digunakan untuk membuat kesimpulan tersebut direpresentasikan oleh mesin. Terdapat perbedaan antara algoritma perangkat lunak konvensional dan sistem pakar. Algoritma konvensional memiliki hasil yang jelas sedangkan sistem pakar dapat memberikan jawaban dengan tingkat probabilitas tertentu. Sistem pakar biasanya berbasis pengetahuan umum yang dapat didefinisikan sebagai sistem komputer yang menyimpan pengetahuan dalam ruang lingkup solusi masalah. Seorang ahli pada dasarnya mengandalkan pengalaman serta pengetahuannya. Hal ini adalah alasan mengapa masalah perilaku pemecahan tidak dapat dilakukan dengan menggunakan algoritma sederhana. Pengalaman dapat dianggap sebagai semacam pengetahuan khusus diciptakan oleh interaksi yang kompleks peraturan dan keputusan. Sistem pakar (Expert Systems) disebut juga sebagai Knowledge Based Rules. (Hemmer, 2008, p9) Sistem pakar dianggap sebagai perwujudan dalam pengetahuan komputer berdasarkan komponen dari keterampilan pakar yang sedemikian rupa hingga membentuk sebuah sistem yang dapat menawarkan solusi cerdas atau mengambil keputusan tentang fungsi dari pengolahan data yang didapat. 48 Karakteristik tambahan yang akan mempertimbangkan dasar adalah kemampuan dari sistem pakar itu sendiri didapat dari permintaan untuk membenarkan penalaran secara langsung sehingga dapat langsung diterapkan dalam sebuah penyelidikan. (Kendall & Creen, 2007) 2.2.1.1 Model dan Konsep Menurut Hemmer (2008, p10), pendekatan sebuah sistem pakar diibaratkan sebuah model standar dalam ilmu manajemen pengetahuan berupa piramida pengetahuan, yang pada dasarnya menggambarkan hubungan kuantitatif dan logis antara data, informasi, pengetahuan, dan aksi. 1. Data Data merupakan dasar dari piramida pengetahuan dan merupakan hasil dari pengukuran, pengamatan, dan perhitungan yang biasanya tersedia dalam jumlah besar. Pada dasarnya, dibutuhkan data tambahan yang menjelaskan teknik pengukuran, parameter, kondisi, dan atribut, seperti pengenal sampel data tambahan yang menggambarkan konteks biasanya disebut sebagai Metadata. 2. Information Data akan memasuki proses dimana mengubahnya menjadi representasi yang berbeda, dianalis atau ditafsirkan. Dari proses tersebut menghasilkan informasi. Sebagai contoh saja pada grafik data. Dapat dilihat langkah menciptakan grafik dari data yang diukur sebagai pendekatan pertama untuk membuat informasi dari sebuah data. Grafik 49 dapat ditafsirkan jauh lebih efisien daripada hanya berupa titik-titik data mentah saja. 3. Knowledge Konsep pengetahuan adalah sedikit berbeda dari yang sebelumnya. Pengetahuan adalah sesuatu yang dapat hasil dari informasi penafsiran secara berkelanjutan dari informasi menyebabkan probabilitas berhubungan dengan struktur entitas tertentu. 4. Action Langkah terakhir dalam model dan konsep piramida pengetahuan menerapkan pengetahuan untuk membuat keputusan dan akhirnya mengambil tindakan tertentu dari hasil menerapkan pengetahuan tersebut. Gambar 2. 8 Piramida Pengetahuan Sistem Pakar (Hemmer, 2008) 50 2.2.1.2 Struktur dan Elemen Sistem pakar (Expert System) / Knowledge Base Rules memiliki empat komponen utama menurut Hemmer (2008, p10-p29) yaitu knowledge base, working memory, inference engine dan user interface. 1. Knowledge Base Knowledge base / rule base merupakan inti dari sebuah program sistem pakar. Knowledge base / rule base ini merupakan representasi pengetahuan dari seorang pakar. Knowledge base / rule base tersusun atas fakta berupa informasi tentang obyek dan rules yang merupakan informasi tentang cara bagaimana membangkitkan fakta baru dari fakta yang telah diketahui sebelumnya. 2. Working Memory Working memory merupakan seperangkat fakta dalam ruang lingkup. Unsur-unsur mencerminkan keadaan saat ini yang didapat dari hasil jawaban atas pertanyaan yang diberikan oleh sistem pakar kepada pengguna dan berkaitan dengan apa yang dibutuhkan oleh sistem. Dalam sistem pakar, working memory biasanya berisi informasi tentang contoh tertentu masalah yang sedang ditangani. Working memory adalah media penyimpanan dalam sistem berbasis aturan dan membantu sistem fokus pemecahan masalah tersebut. 51 3. Inference Engine Inference engine adalah alat untuk mendapatkan informasi baru tentang masalah tertentu menggunakan aturan atau pola dalam knowledge base dan pengetahuan akan situasi tertentu dalam working memory. Secara umum ada dua teknik utama yang digunakan dalam inference engine untuk menguji aturan, yaitu penalaran maju (forward chaining) dan penalaran mundur (backward chaining). (Sasikumar et al., 2007) a. Forward Chaining Pada dasarnya menggunakan pola data driven, artinya sistem dimulai dengan memberikan inisialisasi awal elemen dalam working memory dan terus menerapkan aturan sampai tidak ada aturan yang dapat diterapkan atau tujuan telah tercapai. Akibatnya, sistem ini bergerak maju dari kondisi saat ini menuju goal state. Tugas-tugas untuk perencanaan, desain dan sintesis pada umumnya paling cocok untuk forward chaining. 52 b. Backward Chaining Backward chaining menggunakan pola goal driven. Backward chaining memecah sebuah masalah menjadi sub-masalah dan pemecahan masing-masing dari tiap masalah tersebut. Artinya, tujuan direduksi menjadi sub-tujuan dan setiap sub-tujuan berkurang jauh, dan seterusnya, sampai mereka dipecahkan secara langsung. 4. User Interface Fungsi dari user interface adalah untuk menyajikan pertanyaan dan informasi kepada operator dan untuk memasok respon operator terhadap inference engine. Setiap nilai pengembangan alat untuk sistem pakar dimasukkan oleh pengguna harus diterima dan diinterpretasikan oleh user interface. User interface menginformasikan pengguna segala bentuk hasil proses dari sistem pakar, merepresentasikannya dan mengkonfirmasikan kepada pengguna bahwa apabila terjadi kesalahan maka harus diperbaiki. Gambar 2. 9 Hubungan Antar Elemen Sistem Pakar (Hemmer, 2008) 53 2.2.2 Logika Fuzzy Logika fuzzy adalah metode untuk penalaran dengan ekspresi logis menggambarkan keanggotaan dalam fuzzy set (himpunan fuzzy). Teori himpunan fuzzy merupakan sarana menentukan seberapa baik sebuah objek memenuhi sebuah deskripsi benar atau salah tetapi tidak sepenuhnya memenuhi nilai atas deskripsi tersebut. Sebagai contoh, perhatikan preposisi "Budi bertubuh tinggi." Apakah benar jika Budi memiliki tinggi tubuh 150 cm? Kebanyakan orang yang ditanyai pertanyaan tersebut, akan ragu-ragu untuk menjawab "Benar" atau "Salah” dan lebih memilih untuk mengatakan "Kurang lebih". Jadi dapat diambil kesimpulan, bahwa logika fuzzy menentukan bahwa nilai deskripsi kebenaran suatu pernyataan dapat bernilai diantara 0 dan 1. (Russell & Norvig, 2010, p240) 2.2.2.1 Fuzzy Control dan Fuzzy Reasoning Ada dua jenis logika fuzzy yaitu fuzzy control dan fuzzy reasoning. Dasar fuzzy control dicirikan dengan mengubah input yang berupa angka diubah menjadi linguistik (fuzzyfikasi). Sedangkan fuzzy reasoning adalah logika fuzzy yang secara penalarannya tidak dapat dideskripsikan secara menyeluruh, dalam artian menalar pemikiran manusia tetapi tanpa ukuran atau skala. (Siller & Buckley, 2005, p5) 54 2.2.2.2 Cara Kerja Secara umum cara kerja logika fuzzy ada empat tahap (Sutojo, Mulyanto, & Suhartono, 2010, p232-p233), yaitu: 1. Fuzzyfikasi Proses untuk mengubah input sistem yang mempunyai nilai tegas menjadi variabel linguistik menggunakan fungsi sistem yang berada di dalam basis pengetahuan fuzzy. 2. Pembentukan basis pengetahuan fuzzy Kumpulan peraturan-peraturan fuzzy dalam bentuk pernyataan. 3. Mesin inferensi Proses untuk mengubah input menjadi output dengan cara mengikuti aturan-aturan (IF-THEN Rules) yang telah ditetapkan pada basis pengetahuan fuzzy. 4. Defuzzyfikasi Proses mengubah output fuzzy yang di peroleh dari mesin inferensi menjadi nilai tegas menggunakan fungsi yang sesuai dengan saat di lakukan fuzzyfikasi. 55 Gambar 2. 10 Diagram Cara Kerja Logika Fuzzy (Sutojo, Mulyanto, & Suhartono, 2010) 2.2.2.3 Decision Tree Decision Tree atau pohon keputusan adalah struktur pohon yang digunakan untuk menggambarkan suatu keadaan secara hierarkis. Pohon keputusan biasanya terdiri dari beberapa node. Node yang terletak pada level paling awal biasanya disebut node “akar”. Sedangkan percabangannya disebut node “perantara”. (Sutojo, Mulyanto, & Suhartono, 2010, p37-38) Gambar 2. 11 Denah Decision Tree atau Pohon Keputusan 56 2.2.3 Layanan Berbasis Lokasi Layanan berbasis lokasi adalah kelas umum dari layanan tingkat program komputer yang di gunakan untuk menyertakan kontrol khusus untuk data lokasi dan waktu sebagai fitur kontrol dalam program komputer. Layanan berbasis lokasi memberikan pengguna sebuah layanan yang berasal dari lokasi geografis pengguna mobile devices. (Schiller & Voilard, 2004, p10) Menurut Schiller dan Voilard (2004), permintaan untuk lokasi bisa berasal dari mobile devices atau entitas lain seperti penyedia aplikasi atau jaringan operator untuk menyediakan nilai tambah bagi pengguna. Hal ini dimungkinkan untuk secara otomatis memicu layanan berbasis lokasi ketika mobile devices berada pada lokasi khusus. 2.2.3.1 Sejarah Menurut Schiller dan Voilard (2004, p11-p13), pada tahun 1970, Departemen Pertahanan AS telah mengoperasikan global positioning system (GPS), infrastruktur satelit yang melayani posisi manusia dan objek. Awalnya, GPS digunakan untuk tujuan militer, tetapi pemerintah AS memutuskan pada tahun 1980 untuk membuat data positioning system dengan layanan bebas tersedia untuk industri lain di seluruh dunia. (Jones, 2008) Sejak itu, banyak industri yang mengambil kesempatan untuk mengakses data posisi melalui GPS dan sekarang menggunakannya untuk meningkatkan produk dan layanan mereka. Misalnya, industri otomotif telah mengintegrasikan sistem navigasi dalam mobil untuk beberapa waktu. Dalam sistem penentuan posisi tradisional, 57 informasi lokasi yang biasanya telah diturunkan oleh perangkat dan dengan bantuan sistem satelit (misalnya, penerima GPS). Namun, minat yang luas dalam layanan berbasis lokasi / Location Based Service (LBS) dan teknologi yang mendasari ketika jenis baru teknologi lokalisasi dan minat pasar baru di layanan data dipicu oleh operator jaringan mobile. Pada sekitar tahun 1997, jaringan seluler yang banyak digunakan di Eropa, Asia, dan Amerika Serikat, dan pendapatan dari layanan telepon telah terbukti menjadi signifikan untuk operator mobile. Namun, meskipun layanan mobile voice terus menjadi generator pendapatan utama bagi Telcos, pertumbuhan telepon seluler terbatas dan harga per menit menurun. Akibatnya, operator mulai mencari-cari cara untuk menstabilkan bottom line mereka dan menemukan daerah baru untuk pertumbuhan di masa depan. Salah satu cara utama untuk meraup keuntungan tambahan dari jaringan mobile selain suara adalah untuk menawarkan layanan data, banyak yang akan menjadi lokasi peningkatan. Sekitar 15% dari pendapatan operator saat ini di Eropa Barat dan 20% di Asia sudah didasarkan pada layanan data. Sebagian besar pendapatan ini berasal dari Short Message Services (SMS). Untuk mengembangkan bisnis data lebih lanjut, operator perlu berinvestasi dalam teknologi baru, terutama di ponsel selain sistem GPS, pesan (misalnya, MMS, IM, email) dan Mobile Internet (Wireless Application Protocol [WAP]), dan mencari cara untuk mengoptimalkan pengalaman pengguna dari domain ini. Layanan berbasis lokasi adalah dimensi penting dalam data berbasiskan layanan terbaru. 58 2.2.3.2 Komponen Menurut Kushwaha (2011) layanan berbasis lokasi memiliki arsitektur yang dibagi menjadi beberapa komponen pembangun yaitu : 1. Location Based Service (LBS) Application terdiri dari komponen yang memiliki sejumlah sensor dan komponen pada server berpotensi yang meliputi aplikasi data secara spesifik seperti informasi penanda lokasi. 2. Location Based Service (LBS) Middleware memiliki fitur utama pada layanan berbasis lokasi (seperti tracking location, GIS provider dan location collection services) untuk menyediakan antarmuka yang konsisten untuk LBS Application. 3. Tracking Location, komponen yang menyimpan jejak lokasi pengguna. Ini merupakan komponen fundamental dalam generasi Location Based Service (LBS) karena mengandung data yang memungkinkan rute pengguna harus ditentukan dan berpotensi diprediksi. Secara khusus, komponen ini biasanya akan memiliki fungsi yaitu menyimpan catatan tentang lokasi pengguna saat ini dan masa lalu, memberitahu komponen lain ketika pengguna tertentu telah pindah dari lokasinya, atau ketika pengguna lain tersebut bergerak masuk atau keluar dari suatu daerah. Ini mendukung pemberitahuan berbasis lokasi yang dikirim ke pengguna, menentukan dimana pengguna berada dalam lokasi yang ditetapkan (geocasting) dan menghasilkan pola gerakan atau perpindahan lokasi dari pengguna. 59 4. GIS Provider, komponen yang menyediakan fungsionalitas berupa data Location Based Service (LBS) geospasial seperti informasi peta, visualisasi peta dan layanan direktori. 5. Location Collection Services, komponen yang melakukan pengumpulan lokasi untuk mendapatkan lintang dan bujur untuk pengguna tertentu. Tergantung pada teknologi, komponen ini dapat diakses melalui LBS Middleware (misalnya, jaringan triangulasi selular melalui penyedia layanan) atau langsung (misalnya, melalui penerima GPS di Smartphone). Gambar 2. 12 Arsitektur dari Komponen Pembangun pada Layanan Berbasis Lokasi (Kushwaha, 2011) 2.2.3.3 Kategori 60 Layanan berbasis lokasi dapat dikategorikan berdasarkan orientasi aplikasinya menurut Schiller dan Voilard (2004, p13) yaitu: 1. Person Oriented Location Based Service (LBS) di mana layanan ini berbasiskan pengguna. Dengan demikian, fokus penggunaan aplikasi adalah untuk posisi seseorang. Biasanya, para pengguna yang terlokasi secara baik dapat mengontrol layanan. 2. Device Oriented Location Based Service (LBS) dimana layanan terdapat pada aplikasi eksternal kepada pengguna. Dalam device oriented location based service, orang atau objek terletak biasanya tidak mengendalikan layanan (misalnya Tracking System). Selain itu layanan berbasis lokasi dapat dikategorikan berdasarkan desain aplikasinya menurut Schiller dan Voilard (2004, p14) yaitu: 1. Push Services. Layanan berbasis lokasi dimana pengguna menerima informasi sebagai akibat dari lokasinya atau keberadaannya tanpa harus aktif memintanya. Informasi dapat dikirim ke pengguna dengan persetujuan terlebih dahulu atau tanpa persetujuan terlebih dahulu. 2. Pull Services. Layanan berbasis lokasi dimana pengguna aktif menggunakan aplikasi dan dalam konteks ini, '' menarik'' informasi dari jaringan. Informasi ini mungkin menjadi lokasi yang disempurnakan. 61 2.2.4 Global Positioning System (GPS) GPS adalah suatu kumpulan satelit yang memungkinkan penerima untuk mendapatkan lokasi dimana penerima berada dalam kurun waktu 24 jam atau sebuah teknik yang relatif baru tentang pengumpulan data lapangan yang telah mendukung penemuan tertentu oleh pengguna sistem informasi geografis dengan menggunakan sistem satelit navigasi. (Heywood, Cornelius, & Carver, 2006, p63) 2.2.4.1 Cara Kerja Menurut Heywood, Cornelius dan Carver (2006, p64), GPS memerlukan dua receiver, yang tetap di lokasi yang dikenal dengan istilah base station dan lainnya di lokasi yang tidak diketahui yaitu roving receiver. Seorang pengguna GPS dapat melihat posisi tepat dimana ia berada pada receiver. Jika kedua receiver ditetapkan secara persis sama dan menggunakan satelit yang sama untuk menghitung lokasi mereka, maka kesalahan posisi akan direkam oleh kedua receiver. Untuk mendapatkan posisi yang sangat akurat, dapat diperoleh untuk penerima keliling dengan mengurangi kesalahan posisi hitung pada base station. Untuk mengurangi hambatan – hambatan seperti konfigurasi yang tidak tersedia dengan baik di daerah kutub dan jarak antara satelit dan receiver yang terhalang oleh bangunan, jalan dan bagian tanah yang curam, maka sinyal GPS akan ditambahkan sinyal geostationer dan groundstation yang didapat dari satelit. Perkembangan terbaru dalam komunikasi portabel dan mobile telah 62 membuka area baru aplikasi GPS untuk konsumen barang elektronik pribadi. Hasil olahan dari data sistem informasi geografis yang ditampilkan oleh GPS pada aplikasi mobile melalui jaringan tanpa kabel dan WAV yaitu berupa layanan berbasis lokasi / location based service. 2.2.5 Android Android adalah platform berupa sistem operasi yang opensource dan komprehensif pertama untuk perangkat mobile, perangkat lunak untuk menjalankan ponsel tetapi tanpa hambatan kepemilikan sehingga meningkatkan inovasi dalam teknologi mobile. (Meier, 2010, p4) 2.2.5.1 Sejarah Android sendiri dirilis oleh Open Handset Alliance pada bulan November tahun 2007. Android sebenarnya dikembangkan menggunakan kernel Linux 2.6 dan beberapa kelebihan pada Android adalah tidak adanya biaya untuk persetujuan lisensi distribusi dan pelepasan, GSM, EDGE 3G untuk telepon, IPC Messaging, Background Process and Application, Shared Process Data, kontrol perangkat keras dan perangkat multimedia yang lengkap dan API untuk layanan berbasis lokasi seperti GPS / Global Positioning System. (Meier, 2010, p9) 2.2.5.2 Struktur Adapun struktur aplikasi dengan sistem operasi berbasis Android menurut Meier (2010, p13-p14) adalah sebagai berikut : 63 1. Application Layer Android memiliki satu set aplikasi inti termasuk email client, program SMS, kalender, peta, browser, kontak, dan lain-lain. Semua aplikasi yang dibangun menggunakan Java. Setiap aplikasi bertujuan untuk melakukan tugas yang spesifik. 2. Application Framework Layer Lapisan berikutnya adalah application framework. Ini termasuk programprogram yang mengelola fungsi dasar telepon seperti alokasi sumber daya, aplikasi telepon dan program yang dapat melacak lokasi fisik telepon. Pengembang aplikasi memiliki akses penuh ke application framework pada Android. Hal-hal ini memungkinkan pengembang untuk mengambil keuntungan dari kemampuan pemrosesan Android dan fitur dukungan ketika membangun sebuah aplikasi Android. Dapat disimpulkan bahwa application framework layer pada Android sebagai alat dasar dimana pengembang dapat membangun alat yang jauh lebih kompleks. 3. Library Layer Lapisan berikutnya berisi pustaka / library pada Android. Pustaka ini semua ditulis dalam bahasa pemrograman C atau C++, dikompilasi untuk arsitektur perangkat keras tertentu yang digunakan oleh ponsel dan dipasang oleh perusahan vendor ponsel. 4. Android Runtime Layer Android Runtime Layer termasuk Dalvik Virtual Machine (DVM) dan satu set pustaka inti bahasa pemrograman java. Dalvik Virtual Machine 64 (DVM) dibuat pada perangkat agar dapat menjalankan mesin virtual secara efisien dan mengeksekusi file dengan ekstensi.dex (Dalvik format executable) dengan penggunaan memori yang kecil. 5. Kernel Linux Lapisan ini mencakup program manajemen memori Android, pengaturan keamanan, perangkat lunak untuk manajemen daya dan beberapa driver yang digunakan untuk mengakses hardware, file sistem, jaringan dan komunikasi antar proses. Gambar 2. 13 Struktur Aplikasi Sistem Operasi Android . (Meier, 2010) 65 2.2.5.3 Keuntungan dalam Mengembangkan Aplikasi Berbasis Android Beberapa fitur unik ditawarkan oleh Android, yang juga merupakan keuntungan dalam mengembangkan aplikasi dengan sistem operasi berbasis Android. Keuntungan menggunakan sistem operasi Android menurut Meier (2010, p11) adalah sebagai berikut: 1. Aplikasi Google Maps Aplikasi Google Maps for Mobile telah sangat populer, dan Android menawarkan Google Maps sebagai kontrol yang dapat digunakan kembali dalam aplikasi yang akan dibuat. Komponen Maps View memungkinkan pengembang menampilkan, memanipulasi, dan menambahkan keterangan pada Google Maps dalam pembuatan aplikasi oleh pengembang. 2. Background Services Background services membiarkan pengembang membuat sebuah aplikasi yang menggunakan model-event sementara aplikasi lain sedang berjalan atau saat ponsel sedang tidak dalam keadaan aktif / idle. Background services memberikan layanan notifikasi apabila aplikasi sudah selesai dijalankan ketika sedang berjalan bersamaan baik berupa lampu LED yang menyala atau berupa nada seperti ringtone. 3. Shared Data dan Interprocess Communication 66 Dengan menggunakan komponen berupa intent dan content provider, Android memungkinkan aplikasi pengembang bertukar pesan, melakukan pengolahan, dan berbagi data. Pengembang juga dapat menggunakan mekanisme untuk memanfaatkan data dan fungsionalitas yang disediakan oleh aplikasi Android asli. Untuk mengurangi resiko dari strategi terbuka, setiap proses aplikasi, penyimpanan data, dan file pribadi kecuali secara eksplisit dibagi dengan aplikasi lain melalui mekanisme izin keamanan. 4. Semua aplikasi diciptakan sama, Android tidak membedakan antara aplikasi asli dan yang dikembangkan oleh pihak ketiga. Hal tersebut memberikan pengembang keleluasaan dalam mengubah tampilan dan nuansa dari perangkat pengembang dengan membiarkan pengembang sepenuhnya menggantikan setiap aplikasi asli dengan alternatif pihak ketiga yang memiliki akses ke data dan hardware yang sama. 2.2.6 Google Maps Google Maps adalah sistem pemetaan online yang dimiliki oleh Google yang memanfaatkan fungsi-fungsi protokol, perintah, fungsi atau yang dikenal dengan istilah Application Programming Interface (API) yang dapat digunakan oleh pengembang saat membangun perangkat lunak untuk aplikasi tertentu. (Svennerberg, 2010, p2) 2.2.6.1 Sejarah Google Maps diperkenalkan dalam sebuah tulisan pada halaman blog Google pada Februari 2005. Google Maps merevolusi peta jalan pada halaman 67 web dengan mengizinkan pengguna mengakses peta untuk navigasi. Penemuan sistem peta terbaru yang digunakan membutuhkan server khusus yang diperuntukan untuk peta dengan tidak mengurangi sisi interaktif dari aplikasi. Google Maps pada awalnya dikembangkan oleh dua orang bersaudara asal Denmark, Lars dan Jens Rasmussen. Lars dan Jens Rasmussen mendirikan “Where 2 Technologies”, sebuah perusahaan yang didirikan untuk menciptakan solusi pemetaan. Perusahaan ini diakuisisi oleh Google pada Oktober 2004. Rasmussen bersaudara kemudian menciptakan Google Maps. Lars dan Jens Rasmussen juga orang-orang di belakang terciptanya teknologi yaitu Google Wave. (Svennerberg, 2010, p2-p3) 2.2.7 Web Service Sebuah sistem perangkat lunak yang dirancang untuk mendukung interupsi antara mesin ke mesin interaksi melalui jaringan. Web service mewakili paradigma arsitektur baru untuk aplikasi. Web service mengimplementasikan kemampuan yang tersedia untuk aplikasi lain (atau bahkan web service lainnya) melalui jaringan standar industri dan antarmuka aplikasi dan protokol. Sebuah aplikasi dapat menggunakan web service hanya dengan menerapkannya ke seluruh jaringan tanpa harus mengintegrasikannya. Dengan demikian, web service merupakan blok pengembangan perangkat lunak yang dapat digunakan kembali dengan mengakses alamat situs yang menyediakan akses web service tersebut. ( Hollar & Murphy, 2006, p7) 2.2.7.1 Standar Umum 68 Berikut adalah standar umum untuk web service menurut Hollar dan Murphy (2006, p7-p10): 1. Extensible Markup Language (XML) Extensible Markup Language (XML) adalah standar untuk data mark up yang didukung oleh World Wide Web Consortium, yang telah ditandai sebagai format universal untuk dokumen terstruktur dan data di web. 2. Simple Object Access Protocol (SOAP) Simple Object Access Protocol adalah standar untuk bertukar pesan-pesan berbasis XML melalui jaringan komputer atau sebuah jalan untuk program yang berjalan pada suatu sistem operasi (OS) untuk berkomunikasi dengan program pada OS yang sama maupun berbeda dengan menggunakan HTTP dan XML sebagai mekanisme untuk pertukaran data. 3. Universal Description, Discovery and Integration (UDDI) Universal Description, Discovery and Integration adalah spesifikasi untuk registri informasi untuk layanan web. UDDI mendefinisikan sarana untuk mempublikasikan dan, lebih penting lagi, menemukan (atau mencari) informasi tentang layanan web, termasuk file WSDL. 4. Web Service Description Language (WSDL) Web Service Description Language mendefinisikan pesanpesan (baik abstrak maupun konkrit) yang dikirim menuju web 69 service, koleksi-koleksi digital dari pesan-pesan (port type, antarmuka), bagaimana port type yang ditentukan dijadikan wire protocol dimana service ditempatkan. Gambar 2. 14 Standar Umum Web Service .(Hollar & Murphy, 2006) 2.2.8 JavaScript Object Notation Format pertukaran data yang ringan, mudah dibaca dan ditulis oleh pengembang, serta mudah diterjemahkan dan dibuat oleh komputer. Format ini dibuat berdasarkan bagian dari bahasa pemrograman Javascript. JavaScript Object Notation (JSON) merupakan format teks yang tidak bergantung pada bahasa pemrograman apapun karena menggunakan gaya bahasa yang umum digunakan oleh programmer keluarga C termasuk C, C++, C#, Java, JavaScript, Perl, Python dan lain-lain. Oleh karena sifat-sifat tersebut, menjadikan JSON ideal sebagai bahasa pertukaran data. (Crockford, 2006) 2.2.8.1 Struktur dan Format Pada dasarnya, semua bahasa pemrograman terbaru mendukung struktur data ini dalam bentuk yang sama maupun berlainan. Hal ini pantas disebut demikian karena format data mudah dipertukarkan dengan bahasa-bahasa 70 pemrograman yang juga berdasarkan pada struktur data ini. Adapun format JSON (JavaScript Object Notation) menurut Crockford (2006): 1. Objek adalah sepasang nama/nilai yang tidak terurutkan. Objek dimulai dengan { (kurung dengan } (kurung kurawal kurawal tutup). buka) Setiap dan diakhiri nama diikuti dengan : (titik dua) dan setiap pasangan nama/nilai dipisahkan oleh , (koma). 2. Larik (array) adalah kumpulan yang terurutkan. Larik (array) dimulai dengan [ (kurung kotak buka) dan diakhiri dengan ] (kurung kotak tutup). Setiap nilai dipisahkan oleh, (koma). 3. Nilai (value) dapat berupa sebuah string dalam tanda kutip ganda, atau angka, atau true atau false atau null, atau sebuah objek atau sebuah larik. Struktur-struktur tersebut dapat disusun bertingkat. 4. String adalah kumpulan dari nol atau lebih dari satu karakter Unicode, yang dibungkus dengan tanda kutip ganda. Di dalam string dapat digunakan backslash escapes "\" untuk membentuk karakter khusus. Sebuah karakter mewakili karakter tunggal pada string. String sangat mirip dengan string C atau Java. 5. Mirip dengan angka di C atau Java, kecuali format oktal dan heksadesimal tidak digunakan. 71 2.2.9 Kopi Jenis tumbuhan kayu cemara dikotil (berbiji dua) yang dimiliki family Rubiaceae. Karena tumbuh di ketinggian yang relatif besar, umumnya tanaman kopi berbentuk pohon. Kopi memiliki banyak varietas jenis yang tersebar diseluruh dunia, tetapi hanya terdapat 2 jenis kopi yang menjadi varietas utama untuk dikembangkan di masa sekarang yaitu Arabika dan Robusta. Coffea arabica, yang dikenal sebagai kopi Arabika, menyumbang 75-80 persen dari produksi dunia. Coffeacanephora, yang dikenal sebagai kopi robusta, menyumbang sekitar 20 persen dan berbeda dari kopi Arabika dari segi rasa. Sementara biji kopi Robusta lebih kuat daripada biji kopi Arabika, dengan kandungan kafein yang lebih tinggi. Baik Robusta dan Arabika tanaman kopi dapat tumbuh hingga ketinggian 10 meter. Namun negara-negara penghasil akan mempertahankan tanaman kopi pada ketinggian yang wajar untuk mempermudah proses panen. (CoffeeResearch.org, 2006) 2.2.9.1 Sejarah Menurut International Coffee Organization (2007), penyebaran global kopi mulai tumbuh di Afrika. Menurut legenda, pohon kopi berasal dari provinsi Ethiopia dari Kaffa. Hal ini dicatat bahwa buah tanaman, yang dikenal sebagai buah kopi, dimakan oleh budak yang diambil dari Sudan dan dibawa ke Yaman serta Saudi melalui pelabuhan besar. Kopi dibudidayakan di Yaman pada abad ke-15. Dalam upaya untuk mencegah budidaya di tempat lain, orang-orang Arab menerapkan larangan ekspor biji kopi subur, tetapi akhirnya larangan ini tidak 72 dipatuhi oleh orang-orang Belanda, yang lebih memilih membawa tanaman kopi ke Belanda untuk ditanam di rumah kaca pada tahun 1616. Pada tahun 1600-an Belanda mencoba menanam kopi di Malabar di India pada tahun 1699 dan mengambil beberapa tanaman untuk dibawa ke Batavia di pulau Jawa, yang sekarang dikenal dengan ibukota provinsi DKI Jakarta yang berada di Negara Indonesia. Kopi merupakan komoditas penting dalam perekonomian dunia. Kopi adalah salah satu produk utama yang paling memiliki nilai jual tinggi kedua dalam perdagangan dunia setelah minyak sebagai sumber devisa bagi negara produsen. Kopi sangat penting dalam bidang ekonomi dan politik di negara-negara berkembang, karena banyak ekspor kopi untuk negaranegara berkembang, menghasilkan lebih dari 50 persen pendapatan devisa dan merupakan komoditas berjangka yang diperdagangkan di bursa komoditas utama. 2.2.9.2 Tanaman Kopi di Indonesia Menurut data statistik International Coffee Organization (2010), pada tahun 2010 tercatat bahwa Indonesia memiliki 2 jenis komoditas utama kopi yang diproduksi yaitu Arabika dan Robusta dengan tingkat produksi mencapai 9.129.000 karung per tahunnya. Tingkat konsumsi kopi di Indonesia juga relatif tinggi yaitu mencapai 0,86 kg per kapita. Data statistik juga menunjukan bahwa jumlah ekspor kopi arabika per tahun yaitu 792.327 per karung/60kg dan jumlah ekspor kopi robusta per tahun yaitu 4.462.620 per karung/60kg sehingga didapat total nilai pendapatan dari total ekspor kopi untuk semua komoditas yaitu 157 juta US dollar per tahunnya. 73 2.2.9.3 Penyakit Penting pada Tanaman Kopi Menurut data Direktorat Jenderal Bina Produksi Perkebunan (2002, p45p49), terdapat beberapa penyakit penting pada tanaman kopi yaitu : 1. Penyakit Karat Daun Kopi / Coffee Leaf Rust Penyakit karat daun kopi disebabkan oleh H. vastatrix yang dapat menyerang di pembibitan sampai tanaman dewasa. Gejala tanaman terserang adalah daun yang sakit timbul bercak kuning kemudian berubah menjadi coklat. Lalu, permukaan bercak pada sisi bawah daun terdapat uredospora seperti tepung berwarna oranye atau jingga. Pada serangan berat pohon tampak kekuningan, daunnya gugur dan akhirnya pohon menjadi gundul. Penyebaran penyakit melalui uredospora yang dapat dibentuk sepanjang tahun. Perkembangan penyakit dipengaruhi oleh kelembaban. Spora yang telah matang dapat disebarkan oleh angin dan untuk perkecambahannya diperlukan tetesan air yang mengandung udara. Pengendalian penyakit dengan memperkuat kebugaran tanaman melalui pemupukan berimbang, pemangkasan dan pengaturan naungan untuk mengurangi kelembaban kebun dan memberikan sinar matahari yang cukup pada tanaman. 74 Gambar 2. 15 Karat Daun pada Tanaman Kopi (Direktorat Jenderal Bina Produksi Perkebunan, 2002) 2. Penyakit Bercak Daun Kopi / Brown Eye Spot of Coffee Penyakit ini disebabkan oleh jamur C. coffeicola yang dapat muncul di pembibitan sampai tanaman dewasa serta menyerang buah kopi. Daun yang sakit timbul bercak berwarna kuning yang tepinya dikelilingi halo (lingkaran) berwarna kuning. Buah yang terserang timbul bercak berwarna coklat, biasanya pada sisi yang lebih banyak menerima cahaya matahari. Bercak ini membusuk dan dapat sampai ke biji sehingga menurunkan kualitas. Penyakit ini umumnya dijumpai di pertanaman yang kurang mendapat pemeliharaan. Penyebaran penyakit dibantu oleh keadaan lingkungan yang lembab dan pola tanam yang kurang baik. Penyebaran penyakit melalui spora yang terbawa angin dan aliran air hujan serta alatalat pertanian. Pengendalian penyakit dengan sanitasi kebun dan 75 membuang bagian-bagian yang sakit, kemudian membenamkannya di dalam tanah. Dapat juga dengan mengurangi kelembaban kebun dengan pemangkasan, pengaturan naungan dan membuat parit drainase. Serta melakukan pemupukan dan menghindari penggunaan bibit yang telah terserang penyakit ini. Gambar 2. 16 Bercak Daun Kopi (Direktorat Jenderal Bina Produksi Perkebunan, 2002) 3. Nematoda Pratylenchus coffeae dan Radopholus similis adalah jenis nematoda endoparasit yang berpindah-pindah. Daur hidup P. coffeae sekitar 45 hari dan R. similis sekitar 1 bulan. Tanaman kopi yang terserang penyakit ini kelihatan kerdil, daun menguning dan gugur. Pertumbuhan cabang-cabang primer terhambat sehingga menghasilkan sedikit bunga, buah prematur dan banyak yang kosong. Bagian akar serabut membusuk dan putus sehingga habis. 76 Pada serangan berat tanaman akhirnya mati. Nematoda parasit dapat menyebar dari satu tempat ke tempat lain melalui aliran air atau tanah yang terbawa pada alat-alat pertanian dan pekerja kebun. Pengendalian dilakukan dengan memberikan pupuk kandang 12 kg/ pohon/tahun atau membongkar pohon kopi yang terserang berat. Untuk mencegah penularannya perlu dibuat parit isolasi disekeliling tanaman sakit (dalam 40 cm dan lebar 30 cm) pada jarak 60 cm dari pangkal akar. Bisa juga dengan menanam jenis kopi yang tahan untuk digunakan sebagai batang bawah, misalnya: kopi ekselsa, kopi robusta klon BP 961. Gambar 2. 17 Nematoda yang Menyerang Akar Tanaman Kopi (Kanan) (Direktorat Jenderal Bina Produksi Perkebunan, 2002) 4. Jamur Upas / Root Fungus Jamur C. salmonicolor dapat menyerang batang, cabang, ranting dan buah kopi. Infeksi jamur ini pertama kali terjadi pada sisi bagian bawah cabang ataupun ranting. Serangan dimulai dengan adanya benang- 77 benang jamur tipis seperti sutera, berbentuk sarang laba-laba. Selanjutnya pada bagian tersebut terjadi nekrosis kemudian membusuk sehingga warnanya menjadi coklat tua atau hitam. Nekrosis pada buah bermula dari pangkal buah disekitar tangkai, kemudian meluas keseluruh permukaan dan mencapai endosperma. Jamur ini menyebar melalui tiupan angin atau percikan air. Keadaan lembab dan kurang sinar matahari sangat membantu perkembangan penyakit ini. Cara pengendalian penyakit ini adalah batang dan cabang yang terkena penyakit dipotong sampai 10 cm di bawah pangkal dari bagian yang sakit lalu potongan-potongan ini dikumpulkan kemudian di bakar atau memetik buah-buah yang sakit, dikumpulkan dan dibakar atau dipendam. Bisa juga dengan pemangkasan pohon pelindung untuk mengurangi kelembaban kebun sehingga sinar matahari dapat masuk ke areal pertanaman kopi. Gambar 2. 18 Jamur Upas yang Menyerang Buah Tanaman Kopi (Direktorat Jenderal Bina Produksi Perkebunan, 2002) 78 5. Jamur Akar Coklat, Hitam dan Putih Ada tiga jenis penyakit jamur akar pada tanaman kopi, yaitu jamur akar coklat, jamur akar hitam dan jamur akar putih. Ketiganya menular melalui kontak akar. Penyakit ini dapat terjadi pada berbagai umur tanaman dan dapat mematikan tanaman. Gejala tanaman terserang warna daun hijau kekuningan, kusam, layu dan menggantung. Seluruh daun menguning kemudian layu secara serempak, akhirnya mengering di cabang. Gejala khas jamur akar coklat adalah akar tunggang tertutup oleh kerak yang terdiri dari butir-butir tanah yang melekat kuat. Diantara butir-butir tanah tampak adanya anyaman benang jamur coklat kehitaman. Lalu, kayu akar yang sakit membusuk, kering dan lunak. Gejala khas jamur akar hitam, pada pangkal batang dan permukaan kayu akar terdapat titik-titik hitam. Gambar 2. 19 Jamur Akar yang Menyerang Tanaman Kopi (Direktorat Jenderal Bina Produksi Perkebunan, 2002) 79 Jamur akar putih pada permukaan akar terdapat benang jamur berwarna putih menjalar sepanjang akar dan pada ujungnya meluas seperti bulu. Penyebaran dan perkembangan penyakit lebih cepat pada tanah berpasir dan lembab. Cara pengendalian penyakit ini adalah dengan membongkar pohon terserang sampai keakarnya, lalu membakar. Lubang bekas bongkaran dibiarkan terbuka selama + 1 tahun. Pohon sehat disekitar pohon sakit dan pohon-pohon sisipan ditaburi Trichoderma 200 gr/pohon dan pupuk kandang/pupuk organik. Diulang setiap 6 bulan sampai areal tersebut bebas dari jamur akar.