BAB II LANDASAN TEORI Beberapa dasar teori yang berhubungan dengan pengerjaan Tugas Akhir ini yaitu: II.1 Helpdesk Peran service desk mulai berkembang pada akhir tahun 1970-an ketika perusahaan-perusahaan mulai mengarahkan pengguna teknologi ke satu kontak tunggal untuk meminta bantuan atau dukungan. Dikenal juga dengan istilah helpdesk, fungsi utamanya adalah sebagai penerima panggilan, menentukan jenis panggilan, kemudian mengirimkan vendor atau techical support langsung ke pihak pelanggan (Donna Knapp 3). Helpdesk merupakan antar muka antara perusahaan dengan pelanggan mereka, maka kualitas pelayanan helpdesk sangat menentukan operasional perusahaan dan kepuasan pelanggan. Bagi perusahaan, kualitas helpdesk menentukan efisiensi penggunaan sumber daya untuk melakukan dukungan terhadap keluhan/laporan pelanggan. Sedangkan bagi pelanggan tentu saja mereka menginginkan penanganan yang cepat terhadap keluhan/laporan yang mereka sampaikan. II.2 Android Android merupakan sistem operasi yang dikembangkan untuk mobile devices. Sistem operasi ini berbasis Unix/Linux dan dapat menjalankan lebih dari satu task dalam satu waktu (multi tasking). Sistem operasi Android bersifat open source dan pada saat ini sangat banyak digunakan perusahaan-perusahaan pembuat smartphone di seluruh dunia. Perkembangan jumlah penggunanya juga sangat meningkat sejak pertama kali diperkenalkan pada tahun Oktober 2008.
Berikut ini merupakan daftar versi sistem operasi Android yang telah dikembangkan hingga saat ini. Tabel.Daftar Versi OS Android Code name Version API level (no code name) 1.0 API level 1 (no code name) 1.1 API level 2 Cupcake 1.5 API level 3, NDK 1 Donut 1.6 API level 4, NDK 2 Éclair 2.0 API level 5 Éclair 2.0.1 API level 6 Éclair 2.1 API level 7, NDK 3 Froyo 2.2.x API level 8, NDK 4 Gingerbread 2.3-2.3.2 API level 9, NDK 5 Gingerbread 2.3.3-2.3.7 API level 10 Honeycomb 3.0 API level 11 Honeycomb 3.1 API level 12, NDK 6 Honeycomb 3.2.x API level 13 Ice Cream Sandwich 4.0.1-4.0.2 API level 14, NDK 7 Ice Cream Sandwich 4.0.3-4.0.4 API level 15, NDK 8 Jelly Bean 4.1.x API level 16 Jelly Bean 4.2.x API level 17 Jelly Bean 4.3.x API level 18 KitKat 4.4-4.4.4 API level 19 II.3 Arsitektur Aplikasi Client-Server II.3.1 Aplikasi Server Aplikasi yang menangani pemrosesan data dengan beban kerja yang lebih berat daripada aplikasi client karena menangani banyak request. Pada umumnya aplikasi server menangani request dan mengembalikan halaman dinamis yang diakses melalui browser. Aplikasi server juga dapat
menyediakan servis yang dapat diakses oleh aplikasi lainnya untuk komputasi, sehingga beban kerja aplikasi client menjadi lebih ringan. Komunikasi antara aplikasi server dengan aplikasi lain (client ataupun aplikasi server lainnya) dapat menggunakan API. Contoh aplikasi server adalah aplikasi web yang dapat diakses menggunakan browser. II.3.2 Aplikasi Client Aplikasi client adalah antar muka dengan pengguna aplikasi atau sistem. Aplikasi client bertugas menerima data atau informasi dari server dan menampilkannya pada pengguna. Contoh aplikasi client adalah browser, aplikasi desktop game online, atau aplikasi yang berjalan pada smartphone yang berhubungan dengan server melalui jaringan komunikasi dengan menggunakan protokol tertentu. II.3.3 Application Programming Interface (API) API adalah antar muka antara aplikasi. Sebuah aplikasi berkomunikasi dengan aplikasi lainnya menggunakan data dalam format atau perintah tertentu. Sebuah aplikasi dapat meminta aplikasi lain untuk menjalankan proses tertentu misalnya melakukan perhitungan, mengakses database, dan lain-lain. Format API yang biasa digunakan adalah XML dan Json. Aplikasi client yang menerima respon dari server harus melakukan parsing untuk bisa membaca data yang terdapat pada respon dari aplikasi server. Contoh response dalam format XML: <listpeople> <people> <name>harisen</name> <address>jakarta</address> <age>24</age> </people> <people> <name>andy</name> <address>jakarta</address> <age>24</age>
</people> <people> <name>budi</name> <address>medan</address> <age>22</age> </people> </listpeople> Contoh response dalam format Json: { } "listpeople": [ { "name": "Harisen", "address": "Jakarta", "age": 24 }, { "name": "Andy", "address": "Jakarta", "age": 24 }, { "name": "Budi", "address": "Medan", "age": 22 } ] II.4 PHP dan Framework Codeigniter II.4.1 PHP Hypertext Preprocessor (PHP) PHP merupakan bahasa pemrograman yang melakukan scripting pada serverside, aplikasi server dapat dibuat dengan menggunakan PHP. PHP mendukung paradigma pemrograman baik prosedural maupun object oriented. Beberapa keunggulan PHP adalah sebagai berikut: 1. Akses yang mudah ke database 2. Mendukung banyak jenis databases :Adabas D, Ingres, Oracle (OCI7 and OCI8), dbase, InterBase, Ovrimos, Empress, FrontBase, PostgreSQL, FilePro (read-only), msql, Solid, Hyperwave, Direct MS-SQL, Sybase, IBM DB2, MySQL, Velocis, Informix, ODBC, Unix dbm
3. PHP mendukung ODBC (Open Database Connection standard), sehingga memungkinkan koneksi dengan semua jenis database yang menggunakan standard ini 4. PHP juga mendukung komunikasi dengan servis menggunakan protoko LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (pada Windows). II.4.2 Framework Codeigniter Codeigniter merupakan framework PHP yang bersifat open source dan digunakan untuk pengembangan aplikasi web yang dinamis secara cepat.versi Codeigniter yang pertama dipublikasi pada 28 February 2006 dan versi terakhir yang paling stabil adalah 2.2.0 yang dirilis pada 5 Juni 2014. CodeIgniter dikembangkan dengan mendukung konsep MVC atau Model- View-Controller. Class controller dan class view wajib digunakan pada framework Codeigniter, sedangkan class model yang berfungsi untuk mengakses data source bersifat opsional. Pengaksesan database dapat juga dilakukan langsung oleh class controller. Codeigniter merupakan salah satu framework yang memiliki kinerja yang cepat di antara beberapa framework yang ada. II.5 Google Cloud Messaging Google Cloud Messaging (GCM) adalah layanan gratis yang membantu pengembang aplikasi mengirimkan data dari server ke aplikasi Android. Ini dapat berupa pesan ringan yang memberi tahu aplikasi Android bahwa ada data baru yang harus diambil dari server (misalnya, film yang diunggah oleh teman), atau berupa pesan berisi 4 KB muatan data (agar aplikasi seperti perpesanan instan dapat langsung mengonsumsi pesan). GCM menggantikan versi beta C2DM (Perpesanan Awan ke Perangkat Android). Perlu diketahui bahwa C2DM sekarang tidak berlaku lagi, dan kami tidak
lagi mengizinkan pendaftaran C2DM manual yang baru. Pengembang yang tidak beralih ke GCM dapat terus menggunakan C2DM tanpa ada peningkatan kuota. Service GCM mengatur semua antrian pesan dan pengirimannya ke sebuah aplikasi Android yang berjalan dalam smartphonedevices yang ditargetkan. ServiceGCM dapat digunakan secara gratis. Berikut ini merupakan karakteristik utama Google Cloud Messaging: 1. Membantu aplikasi server pihak ketiga (pengembang aplikasi) untuk mengirimkan pesan ke aplikasi Android mereka, 2. Dengan menggunkan koneksi server GCM, pengembang juga dapat menerima pesan dari perangkat Android pengguna aplikasi mereka, 3. Aplikasi pada Android tidak harus selalu aktif/hidup untuk dapat menerima pesan. Sistem akan menjalankan aplikasi Anda dengan menggunakan Intent Broadcast ketika menerima pesan dari server GCM, dengan persyaratan bahwa aplikasi Anda sudah diatur memiliki broadcast receiver dan permission yang tepat, 4. GCM tidak menyediakan antarmuka kepada pengguna ketika menerima pesan, pesan mentah yang diterima akan diteruskan secara langsung kepada aplikasi Anda untuk ditangani. Misalnya aplikasi Anda menjalankan notifikasi, menampilkan antarmuka, atau melakukan sinkronisasi data tanpa diketahui oleh pengguna, 5. Layanan GCM dapat berjalan pada perangkat yang memiliki sistem operasi Android versi 2.2 ke atas dan Google Play Service, 6. Layanan GCM menggunakan koneksi sama dengan service Google yang berjalan pada perangkat Android. Pada Gambar 1 dapat dilihat bagaimana komunikasi antara aplikasi server pengembang, server GCM dan aplikasi client yang dibuat oleh pengembang aplikasi.
Gambar 1. Komunikasi dengan GCM II.6 Analisis dan Perancangan Berorientasi Objek Pada tahap analisis dan perancangan dalam pengembangan aplikasi, pengembang dapat menggunakan pendekatan secara fungsional/terstruktur atau dengan pendekatan berorientasi objek. Pendekatan secara fungsional merupakan metode analisis tradisional yang berkembang berdasarkan pemrograman prosedural. Dengan semakin berkembangkannya bahasa pemrograman dan mendukung paradigma object-oriented yang lebih dinamis maka metode analisis dan perancangan sistem lebih banyak menggunakan pendekatan berorientasi objek saat ini. Metode analisis dan perancangan berorientasi objek merupakan pendekatan terhadap masalah dari perspektif objek. Sistem dimodelkan dengan sekelompok objek yang saling berinteraksi. Pemodelan sistem yang dilakukan menggunakan UML atau Unified Modelling Language. II.6.1 UML Sampai pada tahun 1995, konsep objek sudah sangat popular tetapi diimplementasikan dalam berbagai cara, berbeda-beda tergantung pada pengembangnya. Setiap pengembang memiliki metodologi dan notasi sendiri (contohnya Booch, Coad,Moses, OMT, OOSE, SOMA).
Kemudian pada tahun 1995, Rational Software mengajak tiga perusahaan terbesardalam industri untuk menciptakan satu pendekatan dalam pengembangan sistem yang berorientasi objek.grady Booch, Ivar Jacobson, and James Rumbaugh bersama-sama menciptakan sebuah standar untuk memodelkan sistem dalam tahap analisis dan desain sistem, standar ini dikenal dengan namaunified Modeling Language (UML).Tujuan UML diciptakan adalah untuk menyediakan kosa kata dan diagram-diagram yang umum yang dapat digunakan untuk memodelkan sistem dari tahap analisis sampai dengan tahap implementasi. UML versi2.0 mendefinisikan 14 jenis diagram yang digunakan untuk memodelkan sistem. Diagram-diagram tersebut dibagi menjadi 2 bagian yaitu pemodelan sistem secara struktural dan pemodelan sistem secara perilaku. Structure diagramsmemungkinkan pengembang untuk merepresentasikan data dan relasi statis di dalam sebuah sistem informasi. Diagram-diagram struktural yaitu class, object, package, deployment, component, dan composite structure diagram. Behavioral diagrams memungkinkan pengembang untuk menggambarkan relasi yang dinamis di antara semua objek yang merepresentasikan bisnis proses di dalam sistem informasi.diagram-diagram ini juga membantu analis memodelkan kebutuhan fungsional yang sebuah sistem informasi. Diagramdiagram behavioral terdiri dari activity, sequence, communication,interaction overview, timing, behavior state machine, protocol state machine,dan use-case diagram. Berbagai diagram dalam UML dapat digunakan pada beberapa fase pengembangan aplikasi, dengan demikian setiap diagram yang digunakan dapat memodelkan sistem secara abstrak dan juga dapat memodelkan sistem dengan sangat rinci (sampai pada pembuatan kode program).
bawah ini Penjelasan mengenai diagram-diagram UML dapat dilihat pada Tabel 2 di Tabel 1. Daftar Diagram UML Nama Diagram Deskripsi Digunakan pada fase Behavioral Diagrams Activity Use Case Sequence Communication Menggambarkan proses bisnis dalam sistem, alur aktivitas dalam setiap use case, ataupun rincian desain sebuah method Menggambarkan kebutuhan sistem yang berkaitan dengan proses bisnis, atau menggambarkan sistem dari sudut pandang pengguna Memodelkan perilaku objek dalam setiap use case, berfokus pada urutan waktu setiap aktivitas Memodelkan perilaku objek dalam setiap use case, berfokus pada komunikasi antara objek-objek Analisis Interaction Overview Menggambarkan alur proses secara keseluruhan
Timing Menggambarkan interaksi antara beberapa objek dan perubahan kondisi objek-objek tersebut pada interval waktu tertentu Behavioral State Machine Menggambarkan perilaku sebuah class Protocol State Machine Menggambarkan dependency antara interface class yang berbeda-beda Structure Diagrams Class Menggambarkan relasi antara semua class di dalam sistem yang dimodelkan Object Package Menggambarkan relasi antara objekobjek di dalam sistem. Digunakan jika instansiasi class lebih tepat untuk memodelkan sistem Mengelompokkan elemen-elemen dalam UML untuk konstruksi pada level yang lebih tinggi, Implementasi Deployment Menggambarkan arsitektur fisik sistem. Desain Fisikal, Implementasi
Component Menggambarkan relasi fisik antara komponen-komponen yang berhubungan dengan perangkat lunak Desain Fisikal, Implementasi Composite Structure Menggambarkan relasi antara bagianbagian di dalam sebuah class