BAB II LANDASAN TEORI
Beberapa dasar teori yang berhubungan dengan pengerjaan Tugas Akhir ini yaitu: 2.1
Helpdesk
Peran helpdesk mulai berkembang pada akhir tahun 1970-an ketika perusahaanperusahaan 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 technical support langsung ke pihak pelanggan. 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.
2.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.
6 http://digilib.mercubuana.ac.id/
7 Tabel 1.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
Lollipop
5.0
API level 21
Marshmallow
6.0
API level 22
http://digilib.mercubuana.ac.id/
8 2.3
Arsitektur Aplikasi Client-Server 2.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. 2.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. 2.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.
http://digilib.mercubuana.ac.id/
9 Contoh respon dalam format XML: <listdev> <dev>
Purba Jakarta 24 <dev>
Andy Jakarta 24 <dev>
Budi Medan 22
Contoh respon dalam format Json: { "listdev": [ { "name": "Purba", "address": "Jakarta", "role": 1 }, { "name": "Andy", "address": "Jakarta", "role": 2 }, { "name": "Budi", "address": "Medan", "role": 3 } ] }
2.4
PHP dan Framework Laravel 2.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:
http://digilib.mercubuana.ac.id/
10 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 protokol LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (pada Windows). 2.4.2
Framework Laravel
Laravel merupakan framework PHP yang bersifat open source dan digunakan untuk pengembangan aplikasi web yang dinamis secara cepat.Versi Laravel yang pertama dipublikasi pada 9 juni 2011 dan versi terakhir yang paling stabil adalah 5.1 yang dirilis pada 5 Juni 2015. Laravel dikembangkan dengan mendukung konsep MVC atau ModelView-Controller. Class controller dan class view wajib digunakan pada framework Laravel, sedangkan class model yang berfungsi untuk mengakses data source bersifat opsional. Pengaksesan database dapat juga dilakukan langsung oleh class controller. Laravel merupakan salah satu framework yang memiliki kinerja yang cepat di antara beberapa framework yang ada. 2.5
Crontab
Crontab adalah perintah di linux yang sangat berguna untuk menjalankan tugastugas yang terjadwal, sehingga akan mengurangi waktu administrasi. Selain crontab, ada juga perintah lain seperti anacron dan at. Anacron digunakan untuk melakukan penjadwalan suatu perintah pada computer yang tidak selalu menyala terus-menerus. Anacron menggunakan interval waktu harian, mingguan, dan bulanan. Sedangkan perintah at menjalankan suatu tugas sekali pada suatu waktu. Yang paling sering digunakan adalah crontab karena lebih serba guna, dan dapat diatur untuk berjalan
http://digilib.mercubuana.ac.id/
11 pada sembarang interval waktu. Dalam melakukan administrasi sistem, pengaturan cron dilakukan melalui file crontab, yang berisi jadwal waktu dan script yang harus dieksekusi. System Linux memiliki file crontab default, yaitu /etc/crontab, yang akan menjalankan beberapa script pada waktu yang telah ditentukan, misalnya setiap jam, harian, mingguan, dan bulanan. Terdapat dua buah file yang menentukan user mana yang bisa menggunakan crontab: /etc/cron.allow dan /etc/cron.deny. Biasanya, hanya ada file cron.deny pada sistem, dan jika file ini ada, dan terdapat nama user di dalamnya (satu user per baris), maka user tersebut tidak diperbolehkan menggunakan perintah crontab. Jika terdapat file cron.allow, maka hanya user yang namanya terdapat pada file ini yang diperbolehkan menggunakan perintah crontab. Pada file crontab, terdapat enam field untuk setiap entry, dan masingmasing field dipisahkan oleh spasi atau tab. Lima field pertama menentukan kapan perintah akan dijalankan. Field ke-enam adalah perintah yang akan dijalankan. Sebagai contoh script yang digunakan dala crontab adalah sebagai berikut : # min(0-59) hours(0-23) day(1- 31) month(1-12) dow(0-6) command 34 2 * * * sh /root/backup.sh Pada contoh tersebut, perintah “sh /root/backup.sh” akan dijalankan pada jam 2:34 AM setiap hari. Tanda bintang pada contoh tersebut berarti “semua waktu”. Tanda bintang pada kolom “menit” berarti “jalankan setiap menit”. User bisa melakukan banyak kombinasi pengaturan waktu. Ada cara lain untuk pengaturan waktu: “20-27″ menunjukkan range; “3,4,7,8″ artinya hanya interval tersebut untuk suatu pilihan, dan */5 artinya setiap interval ke lima. 2.6
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
http://digilib.mercubuana.ac.id/
12 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.
http://digilib.mercubuana.ac.id/
13
Gambar 1. Komunikasi dengan GCM
2.7
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. 2.7.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
http://digilib.mercubuana.ac.id/
satu
pendekatan
dalam
14 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 nama Unified 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 diagrams memungkinkan 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). Penjelasan mengenai diagram-diagram UML dapat dilihat pada Tabel 2 di bawah ini
http://digilib.mercubuana.ac.id/
15 Tabel 2. Daftar Diagram UML
Nama Diagram
Deskripsi
Digunakan pada fase
Behavioral Diagrams
Menggambarkan proses bisnis dalam sistem, alur aktivitas dalam setiap use
Activity
case, ataupun rincian desain sebuah
Analisis, Desain
method Menggambarkan kebutuhan sistem yang berkaitan dengan proses bisnis, atau
Use Case
menggambarkan sistem dari sudut
Analisis
pandang pengguna Memodelkan perilaku objek dalam Sequence
setiap use case, berfokus pada urutan
Analisis, Desain
waktu setiap aktivitas Memodelkan perilaku objek dalam Communication
setiap use case, berfokus pada
Analisis, Desain
komunikasi antara objek-objek Interaction Overview
Menggambarkan alur proses secara keseluruhan
Analisis, Desain
Menggambarkan interaksi antara Timing
beberapa objek dan perubahan kondisi objek-objek tersebut pada interval
Analisis, Desain
waktu tertentu Behavioral State Machine
Menggambarkan perilaku sebuah class
http://digilib.mercubuana.ac.id/
Analisis, Desain
16 Tabel 3. Lanjutan Daftar Diagram UML
Protocol State Machine
Menggambarkan dependency antara interface class yang berbeda-beda
Analisis, Desain
Structure Diagrams
Menggambarkan relasi antara semua
Class
class di dalam sistem yang dimodelkan
Analisis, Desain
Menggambarkan relasi antara objekobjek di dalam sistem. Digunakan jika
Object
instansiasi class lebih tepat untuk
Analisis, Desain
memodelkan sistem Mengelompokkan elemen-elemen Package
dalam UML untuk konstruksi pada level yang lebih tinggi
Deployment
Menggambarkan arsitektur fisik sistem.
Menggambarkan relasi fisik antara Component
komponen-komponen yang berhubungan dengan perangkat lunak
Composite Structure
Menggambarkan relasi antara bagianbagian di dalam sebuah class
http://digilib.mercubuana.ac.id/
Analisis, Desain, Implementasi Desain Fisikal, Implementasi
Desain Fisikal, Implementasi
Analisis, Desain