BAB II TINJAUAN PUSTAKA 2.1 Tinjauan Mutakhir Beberapa penelitian sebelumnya terkait pemanfaatan metode optimasi dalam pemecahan berbagai masalah adalah sebagai berikut Penelitian yang dilakukan oleh Beni (2014), yang berjudul Rancang Bangun Sistem Informasi Reservasi Sewa Kamar Hotel Berbasis Web. Pada penelitian ini menjelaskan tentang masalah sistem sewa kamar di Hotel Gren Mandarin yang masih dilakukan dengan melakukan pencatatan buku reservasi secara manual. Sehingga dibuatkanlah sistem baru yang terkomputerisasi berbasis web sehingga lebih efisien dalam penggunaannya. Dalam penelitian yang berjudul Aplikasi Pemesanan Makanan Berbasis Mobile Pada Rumah Makan “Lek Nonong”. Pada penelitian menjelaskan tentang rumah makan yang masih menggunakan cara pengerjaan manual dalam pelayanannya. Oleh karena itu dibuat suatu aplikasi mobile yang dapat membatu proses pelayanan maupun proses rekap data untuk laporan transaksi yang dapat digunakan pada rumah makan Lek Nonong (Adi dkk, 2014). Penelitian yang berjudul Membangun Aplikasi Pemesanan dan Pembayaran Sewa Mobil Online Berbasis Web, Penelitian tersebut tentang pembuatan website dengan bahasa pemrograman PHP dan database MySQL yang menjelaskan tentang informasi mobil-mobil yang akan disewakan secara lengkap dan detail serta proses sistem pemesanan sewa mobil secara online (Deffi, 2014). Penelitian yang berjudul Rancang Bangun Sistem Informasi Geografis Pemesanan Taksi Berbasis Android. Penelitiannya menjelaskan tentang suatu sistem yang dapat membantu customer untuk melakukan pemesanan taksi dimana saat pelanggan melakukan pemesanan taksi melalui Android. Sehingga dapat membatu sopir taksi untuk bisa tiba pada tempat yang dituju dalam waktu yang relatif lebih singkat karena bantuan titik koordinat yang terdapat pada Android tersebut (Warma dkk, 2014). Penelitian yang, yang berjudul Aplikasi Pemesanan Tiket Bioskop Berbasis Mobile. Dalam penelitiannya menjelaskan tentang permasalahan dalam pemesanan tiket bioskop via sms karena customer harus menghafal format penulisan tertentu untuk mengirim sms. Sehingga dibuatlah aplikasi berbasis mobile supaya customer dapat lebih cepat memesan dan dapat informasi lengkap secara online (Timotius dkk, 2012). Dari beberapa penelitian tersebut terdapat perbedaan dengan penelitian sebelumnya yaitu pada objek pemesanan dan sistem rancang bangun aplikasi yang digunakan. Penelitian pada skripsi ini membahas tentang pembuatan aplikasi reservasi les private Bahasa Inggris berbasis web dan terintegrasi dengan aplikasi mobile, sehingga memudahkan pengguna untuk melihat informasi jadwal waktu yang kosong dan melakukan reservasi jadwal les private. 2.2 Tinjauan Pustaka 2.2.1 Sistem Informasi Sistem Informasi adalah suatu alat yang membantu dalam menyediakan informasi bagi penerimanya dan untuk membantu dalam pengambilan keputusan bagi manajemen didalam operasi perusahaan sehari-hari dan informasi yang layak untuk pihak luar perusahaan. Definisi Sistem Informasi menurut para Ahli : 1. Menurut Jogiyanto (1999), Sistem informasi adalah suatu sistem di dalam suatu organisasi yang mempertemukan kebutuhan pengolahan transaksi harian, mendukung operasi, bersifat manajerial dan kegiatan strategi dari suatu organisasasi, dan menyediakan pihak luar tertentu dengan laporan laporan yang diperlukan. 2. Sistem informasi merupakan suatu perkumpulan data yang terorganisasi beserta tatacara penggunaanya yang mencangkup lebih jauh dari pada sekedar penyajian. Istilah tersebut menyir atkan suatu maksud yang ingin dicapai dengan jalan memilih dan mengatur data serta menyusun tatacara penggunaanya.Keberhasilan suatu sistem informasi yang diukur berdasarkan maksud pembuatanya tergantung pada tiga faktor utama, yaitu keserasian dan mutu data, pengorganisasian data, dan tatacara penggunaanya, untuk memenuhi permintaan penggunaan tertentu, maka struktur dan cara kerja sistem informasi berbeda-beda tergantung pada macam keperluan atau macam permintaan yang harus dipenuhi. Suatu persamaan yang menonjol ialah suatu sistem informasi menggabungkan berbagai ragam data yang dikumpulkan dari berbagai sumber. Untuk dapat menggabungkan data yang berasal dari berbagai sumber suatu sistem alih rupa (transformation) data sehingga jadi tergabungkan (compatible). Berapa pun ukurannya dan apapun ruang lingkupnya suatu sistem informasi perlu memiliki ketergabungan (compatibility) data yang disimpannya. (Fatta, 2009). Informasi dalam lingkup sistem informasi memiliki beberapa ciri yaitu: 1. Baru, informasi yang didapat sama sekali baru bagi penerima. 2. Tambahan, informasi dapat memperbaharui atau memberikan tambahan pada informasi yang telah ada. 3. Korektif, informasi dapat menjadi suatu koreksi atas informasi yang salah sebelumnya. 4. Penegas, informasi dapat mempertegas informasi yang telah ada. 2.2.2 Metode Pengembangan Perangkat Lunak Pengembangan perangkat lunak dapat diartikan sebagai proses membuat suatu perangkat lunak baru untuk menggantikan perangkat lunak lama secara keseluruhan atau memperbaiki perangkat lunak yang telah ada. Agar lebih cepat dan tepat dalam mendeskripsikan solusi dan mengembangkan perangkat lunak, juga hasilnya mudah dikembangkan dan dipelihara, maka pengembangan perangkat lunak memerlukan suatu metodologi khusus. Metodologi pengembangan perangkat lunak adalah suatu proses pengorganisasian kumpulan metode dan konvensi notasi yang telah didefinisikan untuk mengembangkan perangkat lunak. Batu landasan yang menopang rekayasa perangkat lunak (Pressman, 2002) terlihat pada Gambar 2.1 Tools Metode Proses Focus kualitas Gambar 2.1. Batu landasan Perangkat lunak Metodologi pengembangan perangkat lunak (atau disebut juga model proses proses atau paradigma rekayasa perangkat lunak) adalah suatu strategi pengembangan yang memadukan proses, metode, dan perangkat (tools) . Metodemetode rekayasa perangkat lunak, memberikan teknik untuk membangun perangkat lunak. Berkaitan dengan serangkaian tugas yang luas yang menyangkut analisis kebutuhan, konstruksi program, desain, pengujian, dan pemeliharaan (Pressman, 2002). Untuk menyelesaikan masalah di dalam pengembangan perangkat lunak, tim perekayasa harus menggabungkan strategi pengembangan yang melingkupi lapisan proses, metode, dan alat bantu. Model proses rekayasa perangkat lunak dipilih berdasarkan sifat aplikasi dan proyeknya, metode dan alat-alat bantu yang akan dipakai, dan control serta penyampaian yang dibutuhkan. Metode-Metode Pengembangan Perangkat Lunak (Model Proses Pengembangan Perangkat Lunak) yaitu metode Waterfall, prototype, RAD dan Model Sekuensial (Pressman, 2002), Berikut Penjelasan Metode-metode tersebut : 1. Model Waterfall Model Waterfall merupakan salah satu model klasik bersifat Sisetematis. Pengunaan model ini dalam penerapan kehidupan sehari-hari sangatlah memakan waktu dan sangat sedikit dipakai dalam membuat software. masalah yang terdapat pada model ini adalah sebagai berikut : a. Perubahan sulit dilakukan karena sistemnya baku dan kaku. b. Karena, sifatnya kaku dan baku maka kebutuhan harus dikumpulkan secara lengkap sehingga perubahan bisa ditekan seminimal mungkin. c. Perlu diketahui penerapan model ini hanya untuk rekayasa sistem yang besar. Gambar 2.2 Metode waterfall Penjelasan dari Metode waterfall yang terdapat pada Gambar 2.1 adalah sebagai berikut : 1. Requirement Analysis and Definition Merupakan tahapan penetapan fitur, kendala dan tujuan sistem melalui konsultasi dengan pengguna sistem. Semua hal tersebut akan ditetapkan secara rinci dan berfungsi sebagai spesifikasi sistem. 2. System and Software Design Dalam tahapan ini akan dibentuk suatu arsitektur sistem berdasarkan persyaratan yang telah ditetapkan. Dan juga mengidentifikasi dan menggambarkan abstraksi dasar sistem perangkat lunak dan hubunganhubungannya. 3. Implementation and Unit Testing Dalam tahapan ini, hasil dari desain perangkat lunak akan direalisasikan sebagai satu set program atau unit program. Setiap unit akan diuji apakah sudah memenuhi spesifikasinya. 4. Integration and System Testing Dalam tahapan ini, setiap unit program akan diintegrasikan satu sama lain dan diuji sebagai satu sistem yang utuh untuk memastikan sistem sudah memenuhi persyaratan yang ada. Setelah itu sistem akan dikirim ke pengguna sistem. 5. Operation and Maintenance Dalam tahapan ini, sistem diinstal dan mulai digunakan. Selain itu juga memperbaiki error yang tidak ditemukan pada tahap pembuatan. Dalam tahap ini juga dilakukan pengembangan sistem seperti penambahan fitur dan fungsi baru. 2. Model Prototype Model ini dimulai dengan pengumpulan kebutuhan. Pendekatan prototyping model digunakan jika pemakai hanya mendefenisikan objektif umum dari perangkat lunak tanpa merinci kebutuhan input, pemrosesan dan outputnya, sementara pengembang tidak begitu yakin akan efisiensi algoritma, adaptasi sistem operasi, atau bentuk antarmuka manusia-mesin yang harus diambil, yang terlihat pada Gambar 2.3 Membangun, memperbaiki market Mendengarkan pelanggan Uji pelangganmengendalikan market Gambar 2.3 Prototype paradigma Cakupan aktivitas dari prototyping model terdiri dari : a. Mendefinisikan objektif secara keseluruhan dan mengidentifikasi kebutuhan yang sudah diketahui. b. Melakukan perancangan secara cepat sebagai dasar untuk membuat prototype. c. Menguji coba dan mengevaluasi prototype dan kemudian melakukan penambahan dan perbaikan-perbaikan terhadap prototype yang sudah dibuat. secara ideal prototype berfungsi sebagai sebuah mekanisme untuk mengidentifikasi kebutuhan perangkat lunak. Bila prototype yang sedang bekerja dibangun, pengembang harus menggunakan fragmen-fragmen program yang ada atau mengaplikasikan alat-alat bantu (contoh: window manager, dsb) yang memungkinkan program yang bekerja agar dimunculkan secara cepat. Kelemahan prototyping model adalah sebagai berikut : a. Pelanggan yang melihat working version dari model yang dimintanya tidak menyadari, bahwa mungkin saja prototype dibuat terburu-buru dan rancangan tidak tersusun dengan baik b. Pengembang kadang-kadang membuat implementasi sembarang, karena ingin working version bekerja dengan cepat. 2.2.3 Basis Data Basis Data terdiri atas dua kata yaitu Basis dan Data Basis kurang lebih dapat diartikan sebagai markas atau gudang, tempat bersarang atau berkumpul. Sedangkan Data adalah representasi fakta dunia nyata yang mewakili suatu objek seperti manusia, barang, hewan, peristiwa, konsep, keadaan, dan sebagainya yang direkam dalam bentuk angka, huruf, symbol, teks, Gambar, bunyi, atau kombinasinya. Jadi dapat disimpulkan Basis Data dan lemari arsip sesungguhnya memiliki prinsip kerja dan tujuan yang sama. Prinsip utamanya adalah pengaturan data atau arsip dan tujuan utamanya adalah kemudahan dan kecepatan dalam pengambilan data. Perbedaannya hanya terletak pada media penyimpanan yang digunakan (Fathansyah, 2007). 2.2.3.1 DBMS Menurut Kristanto (2009), DBMS adalah Kumpulan file yang saling berkaitan bersama dengan program untuk pengelolaannya. Satu Database Management System (DBMS) berisi satu koleksi data yang saling berelasi dan satu set program untuk mengakses data tersebut. DBMS terdiri dari database dan set program pengelola untuk menambah data, menghapus data, mengambil dan membaca data. Contoh dari DBMS adalah sebagai berikut. 1. SQLite merupakan sebuah system manajemen basis data relasional yang bersifat ACID-compliant dan memiliki ukuran pustaka kode yang relative kecil, ditulis dalam Bahasa C. SQLite merupakan proyek yang bersifat public domain yang dikerjakan oleh D. Richard Hipp.Tidak seperti paradigma clientserver umumnya, inti SQLite bukanlah sebuah system yang mandiri yang berkomunikasi dengan sebuah program secara keseluruhan. Sehingga protocol komunikasi utama yang digunakan adalah melalui pemanggilan API secara langsung melalui Bahasa pemrograman. Mekanisme seperti ini tentunya membawa keuntungan karena dapat mereduksi overhead, latency times, dan secara keseluruhan lebih sederhana. Seluruh elemen basisdata (definisi data, table, indeks dan data) disimpan sebagai sebuah file. Kesederhanaan dari sisi desain tersebut bisa diraih dengan cara mengunci keseluruhan file basis data pada saat sebuah transaksi dimulai. 2. MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (database management system) atau DBMS yang multithread, multi-user. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis dibawah lisensi GNU General Public License (GPL. MySQL merupakan turunan salah satu konsep utama dalam database yaitu SQL (Structured Query Language). SQL adalah sebuah konsep pengoperasian database, terutama untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomastis. 2.2.3.2 Bahasa Basis Data Sebuah basis data dapat dikelompokkan ke dalam dua bentuk, aitu Data Definition Language (DDL) dan Data Manipulation Language (DML) (Fathansyah, 2007) : a. DDL Struktur atau skema basis data yang menggambarkan desain basis data secara keseluruhan, dispesifikasikan dengan Bahasa yang khusus disebut ddl. Dengan Bahasa ini pengguna dapa membuat table baru, indeks, mengubah table, menentukan struktur tabel . Hasil dari kompilasi perintah DDL adalah kumpulan tabel yang disimpan dalan file khusus yang disebut kamus data. Kamus data merupakan suatu meta data, yaitu data yang mendeskripsikan data sesungguhnya. b. DML Data Manipulation Language adalah Bahasa yang memperbolehkan pemakai untuk akses atau manipulasi data untuk diorganisasikan sebelumnya dalam model data yang tepat 2.2.3.3 Model Basis Data Model data dapat didefinisikan sebagai kumpulan perangkat konseptual untuk menggambarkan data, hubungan data, dan batasan data. Model data yang dipakai dalam perancangan sistem informasi ini adalah model data relasional. Model data relasional menggunakan tabel berdimensi dua dengan masing-masing tabel tersusun atas sejumlah baris dan kolom. Pada model data relasional, kaitan antara dua buah tabel disebut hubungan (relationship) 2.2.3.4 Perancangan Basis Data Merancang database merupakan suatu hal yang sangat penting dan merupakan langkah untuk menentukan basis data, yang diharapkandapat mewakili seluruh kebutuhan pengguna. Proses perancangan basis data dibagi menjadi beberapa tahapan – tahapan yaitu (Fathansyah, 2007) : a. Perancangan Basis Data secara Konseptual Tahapan ini merupakan upaya untuk membuat model yang masih bersifat konseptual. Perancangan basis data secara konseptual terdiri atas tiga langkah, antara lain : penentuan entitas pada basis data, pendefinisian hubungan antar entitas dan penerjemahan hubungan ke dalam entitas. Untuk membuat model tersebut dapat digunakan diagram ER b. Perancangan Basis Data secara Logis Tahapan ini merupakan upaya untuk memetakan model konseptual ke model basis data yang akan dipakai c. Perancangan Basis Data Secara Fisik Tahapan ini merupakan upaya untuk menuangkan perancangan basis data yang bersifat logis menjadi basis data yang bersifat fisik, yang tersimpan pada media penyimpanan eksternal. 2.2.3.5 ERD Entity Relationship diagram (ERD) merupakan teknik yang digunakan untuk memodelkan kebutuhan data dari suatu organisasi, biasanya oleh System Analys dalam tahap analisis persyaratan proyek pengembangan system. Sementara seolah-olah teknik diagram atau alat peraga memberikan dasar untuk desain database relasional yang mendasari sistem informasi yang dikembangkan. ERD bersama-sama dengan detail pendukung merupakan model data yang pada gilirannya digunakan sebagai spesifikasi untuk database (Brady dan Loonam 2010). ERD pertama kali dideskripsikan oleh PETER CHEN yang dibuat sebagi bagian dari perangkat lunak CASE. Notasi yang digunakan dalan ERD antara lain dapat dilihat pada tabel 2.1. Tabel 2.1 Simbol Notasi ERD Entity Identify Relationship Atribut Tabel 2.1 Lanjutan Atribut Primary Key Atribut composite 2.2.4 DFD Data Flow Diagram (DFD) adalah alat pembuatan model yang memungkinkan profesional sistem untuk menggambarkan sistem sebagai suatu jaringan proses fungsional yang dihubungkan satu sama lain dengan alur data, baik secara manual maupun komputerisasi. DFD ini sering disebut juga dengan nama Bubble chart, Bubble diagram, model proses, diagram alur kerja, atau model fungsi. DFD ini adalah salah satu alat pembuatan model yang sering digunakan, khususnya bila fungsi-fungsi sistem merupakan bagian yang lebih penting dan kompleks dari pada data yang dimanipulasi oleh sistem. Dengan kata lain, DFD adalah alat pembuatan model yang memberikan penekanan hanya pada fungsi sistem. DFD ini merupakan alat perancangan sistem yang berorientasi pada alur data dengan konsep dekomposisi dapat digunakan untuk pengGambaran analisa maupun Rancangan sistem yang mudah dikomunikasikan oleh profesional sistem kepada pemakai maupun pembuat program. Simbol DFD yang digunakan dapat dilihat pada tabel 2.2. Tabel 2.2 Simbol DFD Entitas Luar, merupakan kesatuan di lingkungan luar sistem yang bisa berupa orang, organisasi, atau sistem lain Proses, merupakan proses seperti perhitungan aritmatik penulisan suatu formula atau pembuatan laporan Data Store (Simpan Data), dapat berupa suatu file atau database pada sistem computer atau catatan manual Data Flow (Arus Data), arus ini mengalir diantara proses, simpan data dan kesatuan luar. Menurut Jogiyanto (2005), DFD terdapat 3 level, yaitu : a. Diagram Konteks menggambarkan satu lingkaran besar yang dapat mewakili seluruh proses yang terdapat di dalam suatu sistem. Merupakan tingkatan tertinggi dalam DFD dan biasanya diberi nomor 0 (nol). Semua entitas eksternal yang ditunjukkan pada diagram konteks berikut aliranaliran data utama menuju dan dari sistem. Diagram ini sama sekali tidak memuat penyimpanan data dan tampak sederhana untuk diciptakan. b. Diagram Nol (diagram level-1) merupakan satu lingkaran besar yang mewakili lingkaran-lingkaran kecil yang ada di dalamnya. Merupakan pemecahan dari diagram Konteks ke diagram Nol, di dalam diagram ini memuat penyimpanan data. c. Diagram Rinci merupakan diagram yang menguraikan proses apa yang ada pada diagram level 0 2.2.5 PHP Menurut Saputra (2011) PHP atau yang memiliki kepanjangan Hypertext Preprocessor merupakan suatu Bahasa pemrograman yang difungsikan untuk membangun suatu website dinamis. PHP menyatu dengan kode HTML, maksudnya adalah beda kondisi. HTML digunakan sebagai pembangun atau pondasi dari kerangka layout web, sedangkan PHP difungsikan sebagai prosesnya sehingga dengan adanya PHP tersebut, web akan sangat mudah dimaintenance. PHP berjalan pada sisi server sehingga PHP disebut juga sebagai Bahasa Server Side Scripting. Artinya bahwa dalam setiap/untuk menjalankan PHP, wajib adanya web server. PHP ini bersifat open source sehingga dapat dipakai secara cuma-cuma dan mampu lintas platform, yaitu dapat berjalan pada sistem operasi Windows maupun Linux. PHP juga dibangun sebagai modul pada web server apache dan sebagai binary yang dapat berjalan sebagai CGI. Interpreter PHP dalam mengeksekusi kode PHP pada sisi server (disebut server-side), sedangkan tanpa adanya interpreter PHP, maka semua script dan aplikasi PHP yang dibuat tidak dapat dijalankan. Proses eksekusi kode PHP yang dilakukan oleh Apache Web Server dan interpreter secara diagram dapat diGambarkan seperti Gambar 2.4 Gambar 2.4 Struktur pembacaan web server 2.2.5.1 Keunggulan PHP Ada beberapa alasan yang menjadi dasar pertimbangan mengapa menggunakan PHP. 1. Mudah dipelajari, alasan tersebut menjadi salah satu alasan utama untuk menggunakan PHP, Pemula pun akan mampu untuk menjadi web master PHP. 2. Mampu Lintas Platform, artinya PHP dapat / mudah diaplikasikan ke berbagai platform OS(Operating Sytem) dan hampir semua browser juga mendukung PHP. 3. Free, bersifat Open source. 4. PHP memiliki tingkat akses yang cepat. Didukung oleh beberapa macam web server, PHP mendukung beberapa web server, seperti Apache, IIS, Lighttpd, Xitami. 5. Mendukung database, PHP mendukung beberapa database, baik yang gratis maupun yang berbayar, seperti MySQL, PostgreSQL, mSQL, Informix, SQL server, Oracle. 2.2.5.2 Skrip Dasar PHP PHP sebagai alternatif lain memberikan solusi sangat murah (karena gratis digunakan) dan dapat berjalan diberbagai jenis platform. PHP adalah skrip bersifat server-side yang ditambahkan ke dalam HTML. PHP sendiri merupakan singkatan dari Personal Home Page Tools. Skrip ini akan membuat suatu aplikasi dapat diintegrasikan ke dalam HTML sehingga suatu halaman web tidak lagi bersifat statis, namun menjadi bersifat dinamis. Sifat server side berarti pengerjaan skrip dilakukan di server, baru kemudian hasilnya dikirimkan ke browser. Sintaks dasar PHP meliputi bagaimana cara memulai suatu struktur pemrograman PHP. Ada empat cara untuk memulai pemrograman PHP, diantaranya: a. <?php ...... ?> b. <? ...... ?> c. <script language=”php”> ...... </script> d. <% ...... %> dari beberapa sintaks dasar tersebut, yang paling banyak digunakan adalah cara yang pertama dan yang kedua dari atas. Cara penulisan skrip PHP ada dua macam, yaitu Embedded Script dan Non Embedded Script adalah sebagai berikut : a. Embedded Script <html> <head> </head> <body> <?php echo “Hallo Dunia”; ?> </body> </html> b. Non Embedded Script <?php echo “<html>”; echo “<head>”; echo “<title>Mengenal PHP</title>”; echo “<head>”; echo “<body>”; echo “<p>PHP cukup Menyenangkan</p>”; echo “</body>”; echo “</html>”; ?> Dari contoh menjelaskan bahwa skrip PHP dapat berupa embedded script yaitu meletakkan tag PHP diantara tag-tag HTML sedangkan non embedded script yaitu semua tag HTML diletakkan dalam tag PHP. Semua kode PHP menyerupai dengan kode Bahasa C, walaupun tidak sepenuhnya sama. Untuk menampilkan nilai suatu variabel ke layer dapat menggunakan perintah yaitu echo, print maupun printf. Contohnya: a. echo echo “$data”; echo $data; echo “nilai”; echo $data. “Mahasiswa Unud”; b. print print (“$data”); print ($data); print (“nilai”); print ($data. “Mahasiswa Unud”); Sebagai contoh untuk menampilkan kata “Halo” pada halaman web menggunakan PHP, maka sintaksnya sebagai berikut: <?PHP Echo “Halo”; ?> 2.2.6 Framework Codeigniter Menurut Hakim (2010:8) CodeIgniter adalah sebuah framework PHP yang dapat membantu mempercepat developer dalam pengembangan aplikasi web berbasis PHP dibanding jika menulis semua kode program dari awal. CodeIgniter pertama kali dibuat oleh Rick Ellis, CEO Ellislab, Inc. (http://ellislab.com), sebuah perusahaan yang memproduksi CMS (Content 24 Management System) yang cukup handal, yaitu Expression Engine (http://www.expressionengine.com). Saat ini, CodeIgniter dikembangkan dan dimaintain oleh British Colombia Institute of Technology yang disingkat dengan BCIT, salah satu sekolah tinggi teknologi di kanada. Adapun beberapa keuntungan menggunakan CodeIgniter, diantaranya: 1. Gratis CodeIgniter berlisensi dibawah Apache/BSD opensorce. 2 Ditulis Menggunakan PHP 4 Meskipun CodeIgniter dapat berjalan di PHP 5, namun sampai saat ini kode program CodeIgniter masih dibuat dengan menggunakan PHP 4. 3 Berukuran Kecil Ukuran CodeIgniter yang kecil merupakan keunggulan tersendiri. Dibanding dengan framework lain yang berukuran besar. 4 Menggunakan Konsep MVC CodeIgniter menggunakan konsep MVC yang pemisahan layer application-logic dan presentation. memungkinkan 5 URL yang Sederhana Secara default, URL yang dihasilkan CodeIgniter sangat bersih dan Serach Engine Friendly (SEF). 6 Memiliki Paket Library yang Lengkap CodeIgniter mempunyai library yang lengkap untuk mengerjakan operasi-operasi yang umum dibutuhkan oleh sebuah aplikasi berbasis web, misalnya mengakses database, mengirim email, memvalidasi form, menangani session dan sebagainya. 7 Extensible Sistem dapat dikembangkan dengan mudah menggunakan plugin dan helper, atau dengan menggunakan hooks. 8 Tidak Memerlukan Template Engine Meskipun CodeIgniter dilengkapi dengan template parser sederhana yang dapat digunakan, tetapi hal ini tidak mengharuskan kita untuk menggunakannya. 9 Dokumentasi Lengkap dan Jelas Dari sekian banyak framework, CodeIgniter adalah satu-satunya framework dengan dokumentasi yang lengkap dan jelas. 10 Komunitas Komunitas CodeIgniter saat ini berkembang pesat. Salah satu komunitasnya bisa dilihat di (http://codeigniter.com/forum/). Proses aliran data aplikasi pada sistem dapat diilustrasikan seperti terlihat pada Gambar 2.4. Gambar 2.5 Aplication Flowchart Codeigniter 2.2.7 Web Service Web service adalah sebuah entitas komputasi yang dapat diakses melalui jaringan internet dengan standar protocol tertentu dalam platform dan antarmuka Bahasa pemrograman yang independen. Tujuan pengembangannya adalah untuk membuat komunikasi antar program, sehingga aplikasi yang satu dan aplikasi yang lain yang terdapat pada suatu jaringan yang sama atau pada jaringan yang berbeda dapat saling berkomunikasi asalkan menggunakan standar protocol yang ditetapkan oleh web service. Hal ini bisa terjadi, karena standar protocol itu tidaklah terikat pada suatu platform atau Bahasa pemrograman. Arsitektur web service dibagun oleh beberapa layer dan teknologi yang saling berhubungan. Banyak cara untuk memvisualisasikan service, sama banyaknya dengan cara untuk membangun dan menggunakan web service. Web service disusun oleh tiga komponen standar yaitu (Siregar dan Purba, 2012) : 1. Simple Object Access Protocol (SOAP), yaitu protocol yang bertanggung jawab dalam pertukaran informasi dalam lingkungan jaringan terdistriusi. 2. Web Service Definition Language (WSDL), dokumen standar yang dituliskan dalam format XML, dan mendefinisikan kehadiran web service dalam suatu jaringan. 3. Universal Description, Discovery, and integration (UDDI), yaitu suatu lokasi yang berisikan service (layanan) dan bersifat bebas platform (platform independent), dituliskan berbasis XML dan dapat diakses oleh entitas yang berada di dalam dan luar jaringan. 2.2.8 Android Menurut Safaat (2012), Android adalah sistem operasi berbasis Linux bagi telepon seluler seperti telepon pintar dan komputer tablet. Android juga menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka sendiri yang akan digunakan untuk berbagai macam piranti gerak. Awalnya, Google Inc. membeli Android Inc., pendatang baru yang membuat piranti lunak untuk ponsel. kemudian dalam pengembangan Android, dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan piranti keras, piranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia. 2.2.8.1 Fitur Android Adapun beberapa fitur – fitur menurut Safaat (2012), yang tersedia di Android adalah sebagai berikut ini : a. Kerangka aplikasi: memungkinkan penggunaan dan penghapusan komponen yang tersedia. b. Dalvik mesin virtual: mesin virtual dioptimalkan untuk perangkat telepon seluler. c. Grafik: grafik di 2D dan grafis 3D berdasarkan pustaka OpenGL. d. SQLite: untuk penyimpanan data. e. Mendukung media: audio, video, dan berbagai format Gambar (MPEG4, H.264, MP3, f. AAC, AMR, JPG, PNG, GIF) g. GSM, Bluetooth, EDGE, 3G, 4G dan WiFi (tergantung piranti keras) h. Kamera, Global Positioning System (GPS), kompas, NFC dan accelerometer (tergantung piranti keras) 2.2.8.2 Android SDK Menurut Safaat (2012), Android SDK adalah tools API (Application Programming Interface) yang diperlukan untuk mengembangkan aplikasi pada platform Android yang menggunakan Bahasa pemrograman Java. Android merupakan subset perangkat lunak untuk ponsel yang meliputi sistem operasi, middleware dan aplikasi kunci yang di-release oleh Google. Saat ini disediakan Android SDK (Software Development Kit) sebagai alat bantu dan API untuk mengembangkan aplikasi pada platform Android menggunakan Bahasa pemrograman Java. Sebagai platform Android aplikasi – netral, Android memberi Anda kesempatan untuk membuat Aplikasi yang kita butuhkan yang bukan merupakan aplikasi bawaan Handphone/Smartphone 2.2.8.3 ADT (Android Development Tools) Safaat (2012), juga memaparkan bahwa Android Development Tools (ADT) adalah plug-in yang didesain untuk IDE Eclipse yang memberi kita kemudahan dalam mengembangkan aplikasi Android dengan menggunakan IDE Eclipse. Dengan menggunakan ADT untuk Eclipse, ini akan memudahkan kita dalam membuat aplikasi project Android, membuat GUI aplikasi, dan menambahkan komponen – komponen yang lainnya. Selain itu kita juga dapat melakukan running aplikasi menggunakan Android SDK melalui Eclipse. Dengan ADT kita juga dapat melakukan pembuatan package Android (.apk) yang digunakan untuk distribusi aplikasi Android yang kita rancang. 2.2.9 Java Menurut Bambang (2005), OOP (Object Oriented Programming – Pemrogram Berorientasi Objek) merupakan semua aspek yang terdapat di Java adalah Objek . Java merupakan salah satu bahasa pemrograman berbasis oebjek secara murni. Semua tipe data diturunkan dari kelas dasar yang disebut Object. Hal ini sangat memudahkan pemrogram untuk mendesain, membuat, mengembangkan dan mengalokasi kesalahan sebuah program dengan basis Java secara cepat, tepat, mudah dan terorganisir. Kelebihan ini menjadikan Java sebagai salah satu bahasa pemograman termudah, bahkan untuk fungsi fungsi yang advance seperti komunikasi antara komputer sekalipun. Dalam OOP mempunyai ciri-ciri dan beberapa konsep penting, seperti Object, Class, Method, Enkapsulasi, Inheritance, dan Polimorfisme. Berikut penjelasan cirri-ciri OOP tersebut : 1. Object Object adalah elemen dasar dari konsep pemrograman, merupakan sesuatu yang memiliki identitas (nama), pada umumnya juga memiliki data tentang dirinya maupun object lain dan mempunyai kemampuan untuk melakukan sesuatu dan bisa bekerja sama dengan objek lainnya. Pada dasarnya semua benda yang ada di dunia dapat dianggap sebagai sebuah object. Rumah, mobil, sepeda motor, meja, dan komputer merupakan contoh-contoh object yang ada di dunia nyata. Setiap object memiliki dua karakteristik yang utama yaitu, atribut dan behavior. Atribut merupakan status object dan behavior merupakan tingkah laku dari object tersebut. 2. Class Class berbeda dengan object. Class merupakan prototipe, blue print, ataupun template dengan kata lain Class adalah representasi abstrak dari suatu objek, sedangkan objek adalah representasi nyata dari Class ataupun perwujudan (instance) dari suatu class. 3. Method Method adalah fungsi dan prosedur atau behavior dari suatu objek atau juga sebuah tindakan (implementasi) dari sebuah object . Contohnya pada Komputer seperti cara mematikan, cara menghidupkan, cara menyimpan, menghapus data dan lain-lain. 4. Inheritance Pewarisan atau inheritance adalah sebuah kelas mewarisi state dan behavior dari kelas lain. Contohnya kelas komputer laptop akan mewarisi state dan behaviour dari kelas komputer. Demikian juga dengan kelas komputer netbook. Kelas komputerLaptop dan kelas komputerNetbook disebut subkelas, atau kelas anak, dari kelas komputer , yang disebut superkelas,atau kelas Induk. Kegunaan konsep pewarisan antara lain : a. Dapat membuat superkelas yang hanya mendefinisikan behaviour namun tidak memberi implementasi dari metode-metode yang ada. b. Dapat menggunakan kembali kelas-kelas yang kita buat (sebagai superkelas) dan membuat kelas-kelas baru berdasar superkelas tersebut dengan karakteristik yang lebih khusus dari behaviour umum yang dimiliki superkelas. Hal ini berguna jika kita ingin membuat prototype/template kelas. Kelas semacam ini disebut kelas abstraksi, karena behaviour nya masih abstrak dan belum diimplementasikan. Subkelas-subkelas dari kelas semacam ini, yang disebut kelas konkret/nyata, mengimplementasikan behaviour abstrak tersebut sesuai dengan kegunaan masing-masing. 5. Enkapsulasi Enkapsulasi secara definisi adalah mekanisme pembungkusan untuk menyembunyikan atau melindungi suatu proses dari kemungkinan interferensi atau penyalahgunaan dari luar sistem juga sekaligus menyederhanakan penggunaan system itu sendiri. Akses ke internal sistem diatur sedemikian rupa melalui seperangkat saat menyalakan, interface/antarmuka. mematikan, pembacaan Contohnya data, Komputer, pemrosesan data pada maka pemakai/user tidak perlu tahu detail dari bagaimana proses menyalakan dan mematikan, itu dilakukan oleh komputer, cukup tahu bagaimana cara menyalakan/mematikan komputer , keyboard, mouse, tombol power merupakan interface (antar muka) pemakai dengan sistem komputer tersebut. 6. Polymorphism Polymorphism sebuah kata dari bahasa Yunani yang mempunyai arti banyak bentuk., konsep ini dimungkinkan untuk menggunakan suatu interface yang sama agar suatu objek melakukan aksi atau tindakan yang mungkin secara prinsip sama tapi secara proses bisa berbeda-beda. Pada umumnya konsep ini sering kali disebut dalam istilah satu interface banyak aksi. Contoh yang nyata adalah. komputer yang ada dipasaran terdiri atas berbagai tipe dan merk, namun semuanya memiliki interface yang sama, seperti: tombol power, keyboard, mouse, monitor dlsb,. Jika seseorang dapat mengoperasikan komputer satu jenis saja dari merk tertentu, maka orang itu akan dapat mengoperasikan hampir seluruh jenis komputer yang ada, karena semua komputer tersebut menggunakan interface yang sama. Perlu diketahui disini bahwa interface yang sama tidak berarti cara kerjanya juga sama. Misal kecepatan/speed komputer, kapasitas memory penyimpan, jika dibandingkan komputer 1 dan komputer 2 maka kecepatan komputer berbeda 2.2.10 Eclipse Menurut Alfa (2012), Eclipse adalah sebuah IDE (Integrated Development Environment) untuk mengembangkan perangkat lunak dan dapat dijalankan disemua platform (platform-independent). Eclipse memiliki tiga sifat yaitu multi platform yakni eclise memiliki target sistem operasi seperti Microsoft Windows, Linux, Solaris, AIX, HP-UX, dan Mac OS X. Eclpipse juga memiliki sifat multi language dimana eclipse dikembangkan menggunakan Bahasa pemrograman Java, akan tetapi eclipse mendukung pengembangan aplikasi berbasis Bahasa lainnya seperti C/C++, Cobol, Python, Perl, PHP dan lain sebagainya. Sifat eclipse yang terakhir yaitu multi role, selain sebagai IDE untuk pengembangan aplikasi, eclipse juga bisa digunakan untuk aktivitas dalam siklus pengembangan perangkat lunak, seperti dokumentasi, test perangkat lunak, pengembangan web dan lain sebagainya. Dalam pembuatan projek menggunakan eclipse, terdapat banyak folder guna membangun projek tersebut, antara lain : 1. Src Folder yang berisi mainactivity.java yang berada dalam package, terlihat pada Gambar 2.6 Gambar 2.6 Isi folder src 2. Gen Folder yang di-generate secara otomatis oleh ADT, yang berisi ID untuk mengakses resource aplikasi yang ada pada folder res, terlihat pada Gambar 2.7 Gambar 2.7 Isi folder gen 3. Android Version Folder yang menunjukan versi Android yang digunakan, dan termasuk file Android.jar pada versi Android yang dipakai, terlihat pada Gambar 2.8 Gambar 2.8 Versi Android yang digunakan 4. Assets Assets merupakan forder yang secara default isinya kosong. Kita dapat meletakan file aset raw (raw files) yang dapat mendukung jalannya aplikasi. File tersebut dapat berupa bentuk audio, teks, video, atau ketika berhubungan dengan database maka file-file seperti SQLite dapat kita letakan dalam folder ini. 5. Res Folder yang berisi beragam file, seperti string, layout, tampilan, audio, Gambar. Pada folder res terbagi menjadi subfolder yang terstruktur disesuaikan dengan kebutuhan ketika proses coding untuk membangun sebuah aplikasi, terlihat pada Gambar 2.9 Gambar 2.9 Isi folder Res 2.2.11 Pengujian Perangkat Lunak Faktor pengujian software adalah teknik untuk menguji perangkat lunak, mempunyai mekanisme untuk menentukan data uji yang dapat menguji perangkat lunak secara lengkap dan mempunyai kemungkinan tinggi untuk menemukan kesalahan. Perangkat lunak diuji dengan beberapa cara, yaitu : 1. White Box Testing Pengujian White Box ( glass box) adalah pengujian yang didasarkan pada pengecekan terhadap detail perancangan, menggunakan struktur kontrol dari desain program secara prosedural untuk membagi pengujian ke dalam beberapa kasus pengujian. 2. Black Box Testing Menurut Pressman (2002) Pengujian black box berfokus pada penyerahan fungsional perangkat lunak dengan demikian pengujian black box memungkinkan perekayasa perangkat lunak mendapatkan serangkaian kondisi input yang sepenuhnya menggunakan semua persyaratan fungsional untuk satu program. Pengujian Black Box merupakan alternatif dari teknik white box, tetapi merupakan pendekatan komplementer yang kemungkinan besar mampu mengungkap kelas kesalahan daripada metode white box. Pengujian Black Box berusaha menemukan kesalahan dalam ketegori sebagai berikut : a. Fungsi - fungsi yang tidak benar atau hilang. b. Kesalahan Interface dan kinerja. c. Kesalahan dalam struktur data atau akses database ekternal . e. Inisialisasi dan kesalahan terminasi. Pengujian Black Box adalah pengujian aspek fundamental sistem tanpa memperhatikan struktur logika internal perangkat lunak. Metode ini digunakan untuk mengetahui apakah perangkat lunak berfungsi dengan benar. Pengujian Black Box merupakan metode perancangan data uji yang didasarkan pada spesifikasi perangkat lunak. Data uji dibangkitkan, dieksekusi pada perangkat lunak dan kemudian keluaran dari perangkat lunak dicek apakah telah sesuai dengan yang diharapkan.