BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI 2.1 Sistem Informasi Sistem informasi adalah sebuah kombinasi teratur apapun dari orang-orang, hardware, software, jaringan komunikasi, dan sumber daya data yang mengumpulkan, mengubah, dan menyebarkan informasi dalam sebuah organisasi. (O’Brien, 2005) Sistem informasi merupakan serangkaian prosedur formal dimana data dikumpulkan, diproses menjadi informasi dan didistribusikan ke para pengguna. (Hall, 2006) Dari definisi-definisi diatas dapat disimpulkan bahwa sistem informasi adalah kombinasi yang teratur apapun dari orang-orang, hardware, software, jaringan komunikasi, dan sumber daya data yang mengumpulkan, memproses, menyimpan, dan menyebarkan informasi ke dalam sebuah organisasi untuk mencapai tujuan tertentu yang berguna untuk memproses data menjadi informasi dan pengetahuan. 2.2 Basis Data Basis Data adalah kumpulan file-file yang mempunyai kaitan antara saru file dengan file yang lainnya sehingga membentuk satu bangunan data untuk mengkonfirmasikan satu perusahaan, instansi dalam batasan tertentu. (Kristanto, 2003) Basis data merupakan kumpulan dari data yang saling berhubungan satu dengan yang lain, tersimpan di perangkat keras komputer dan digunakan perangkat keras komputer dan digunakan perangkat lunak untuk memanipulasinya. (Jogiyanto, 2001) Dalam basis data dikenal pula DBMS (Database Management Sistem) adalah paket perangkat lunak yang komplek yang digunakan untuk memanipulasi database. (Jogiyanto, 2001) 7 Dari pengertian sistem informasi dan basis data di atas, dapat diambil kesimpulan bahwa sistem informasi basis data merupakan sistem ang terdiri atas kumpulan file yang saling berhubungan (dalam sebuah basis data di sebuah sistem komputer) dan sekumpulan program (DBMS) yang memungkinkan beberapa pemakai dan/atau program lain untuk mengakses dan memanipulasi file-file tersebut. (Fathansyah, 2001) 2.3 My Structured Query Language (MySQL) MySQL (My Structured Query Language) adalah relational database management sistem yang cepat dan kuat. Sebuah baris data dapat membuat pengguna untuk menyimpan, mencari, mengurutkan, dan mendapatkan data dengan sangat efisien. Server MySQL mengendalikan akses kedalam data untuk memastikan bahwa para pengguna dapat bekerja dalam waktu yang bersamaan, untuk mendukung akses secara cepat dan memastikan hanya pengguna yang telah terisolasilah yang mendapatkan hak akses. MySQL menggunakan bahasa SQL (Structured Query Language), yaitu bahasa query basis data yang baku bagi seluruh dunia. MySQL kembali diduplikasikan sejak tahun 1996, tetapi sejarah pengembangannya telah dilakukan dari tahun 1979. MySQL tersedia dengan lisensi open source, tetapi lisesnsi komersialpun tersedia apabila diperlukan. (Welling dan Thompson, 2001) 8 2.4 Hypertect Markup Language (HTML) HTML (Hypertext Markup Language) merupakan suatu script dimana kita bisa menampilkan informasi dan daya kreasi kitamelalui internet. HTML sendiri adalah suatu dokumen teks biasa yang mudah untuk dimengerti dibandingkan bahasa pemrograman lainnya, dan karena bentuknyaitu maka HTML dapat dibaca oleh platform yang berlainan seperti windows,unix dan lainnya. (Sampurna, 1996) HTML merupakan bahasa pemrograman fleksibel dimana kita bisa meletakkan script dari bahasa pemrograman lainnya, seperti JAVA, VB, C, dan lainnya. Hypertext dalam HTML berarti bahwa kitadapat menuju ke suatu tempat, misal website atau halaman homepage lain, dengan cara memilih suatu link yang biasanya digaris bawahi atau diwakili oleh suatu gambar. Selain link ke website atau homepage halaman lain, hypertext ini juga mengizinkan kita untuk menuju ke salah satu bagian dalam satu teks itu sendiri. 2.5 PHP Hypertext Preprocessor PHP adalah akronim dari Hypertext Preprocessor, yaitu suatu bahasa pemrograman berbasiskan kode – kode (script) yang digunakan untuk mengelola suatu data dan mengirimkannya kembali ke web browser menjadi kode HTML. (Oktavian, 2010) PHP merupakan bahasa pemrograman untuk membuat web bersifat server side scripting. PHP memungkinkan anda untuk membuat halaman web yang bersifat dinamis. PHP dapat dijalankan pada berbagai macam sistem operasi misalnya: Windows, Linux dan Mac OS. SelainApache, PHP juga mendukung beberapa web server lain, misalnya Microsoft IIS, Caudium, PWS, dan lain – lain. (Ramadhan, 2006) PHP adalah sebuah bahasa pemrograman scripting untuk membuat halaman web yang dinamis. Walaupun dikenal sebagai bahasa untuk membuat halaman web, tapi PHP sebenarnya juga digunakan untuk membuat aplikasi command linedan juga GUI. (Zaki, 2008) Berdasar teori - teori yang didapatkan, dapat disimpulkan bahwa PHP adalah Hypertext Preprocessor, bahasa pemrograman berbasis kode – kode untuk 9 membuat halaman web yang dinamis dan berfungsi pada berbagai macam sistem operasi, dan mendukung beberapa web server. Disamping itu PHP juga dapat digunakan untuk membuat aplikasi command line dan juga GUI. 2.6 Quick Response (QR) Code QR Code adalah suatu jenis kode matriks atau kode batang dua dimensi yang dikembangkan oleh Denso Wave, sebuah divisi Denso Corporation yang merupakan sebuah perusahaan Jepang dan dipublikasikan pada tahun 1994 dengan fungsionalitas utama yaitu dapat dengan mudah dibaca oleh pemindai. QR Code merupakan singkatan dari quick response atau respons cepat, yang sesuai dengan tujuannya adalah untuk menyampaikan informasi dengan cepat dan mendapatkan respons yang cepat pula, berbeda dengan kode batang, yang hanya menyimpan informasi secara horizontal, QR Code mampu menyimpan informasi secara horizontal dan vertikal, oleh karena itu secara otomatis QR Code dapat menampung informasi yang lebih banyak daripada kode batang. 2.7 Android Android merupakan sistem operasi ponsel yang tumbuh di tengan sistem operasi lainnya yang berkembang dewasa ini. Sistem operasi lainnya seperti Windows Mobile, IOS, Symbian, dan masih banyak lagi juga menawarkan kekayaan isi dan keoptimalan berjalan di atas perangkat keras (hardware) yang ada. Akan tetapi, sistem operasi yang ada ini berjalan dengan memprioritaskan aplikasi inti yang dibangun sendiri tanpa melihat potensi yang cukup besar dari aplikasi pihak ketiga. Oleh karena itu, adanya keterbatasan dari aplikasi pihak ketiga untuk mendapatkan data asli ponsel, berkomunikasi antar proses serta keterbatasan distribusi aplikasi pihak ketiga untuk platform mereka. Android menawarkan sebuah lingkungan yang berbeda untuk pengembang. Setiap aplikasi memiliki tingkatan yang sama. Android tidak membedakan antara aplikasi inti dengan aplikasi pihak ketiga. API yang disediakan menawarkan akses ke hardware, maupun data-data ponsel sekalipun, atau data sistem itu sendiri. Bahkan pengguna dapat menghapus aplikasi inti dan menggantikannya dengan aplika si 10 pihak ketiga. Sedangkan Android SDK (Software Development Kit) menyediakan Tools dan API yang diperlukan untuk mengembangkan aplikasi pada platform Android dengan menggunakan bahasa pemrograman Java. 2.8 Framework Codeigniter Framework Codeigniter merupakan salah satu Framework PHP yang menggunakan kaidah MVC atau Model-View-Controller. MVC adalah sebuah software yang memisahkan antara aplikasi logika dan presentasi pada halaman web. Menariknya, skrip PHP, query MySQL, Javascript dan CSS bisa saling terpisah. Sehingga tidak membutuhkan resource besar untuk mengeksekusinya. (Basuki, 2010) Gambar 2. 1 MVC Flowchart MVC merupakan konsep dasar yang harus diketahui sebelum mengenal Codeigniter. MVC sebenarnya adalah sebuah pattern/teknik pemrograman yang memisahkan bisnis logic (alur pikir), data logic (penyimpanan data) dan presentation logic (antarmuka aplikasi) atau secara sederhana adalah memisahkan antara desain, data dan proses. Adapun komponen-komponen MVC antara lain: 11 1. Model Model berhubungan dengan data dan interaksi ke database atau webservice. Model juga mempresentasikan struktur data dari aplikasi yang bisa berupa basis data maupun data lain, misalnya dalam bentuk file teks, file XML maupun webservice. Biasanya di dalam model akan berisi class dan fungsi untuk mengambil, melakukan update dan menghapus data website Sebuah aplikasi web biasanya menggunakan basis data dalam menyimpan data, maka pada bagian Model akan berhubungan dengan perintah-perintah query SQL. 2. View View berhubungan dengan segala sesuatu yang akan ditampilkan ke end-user. Bisa berupa halaman web, rss, javascript dan lain-lain. Kita harus menghindari adanya logika atau pemrosesan data di view. Di Dalam view hanya berisi variabel-variabel yang berisi data yang siap ditampilkan. View dapat dikatakan sebagai halaman website yang dibuat dengan menggunakan HTML dan bantuan CSS atau JavaScript. Di dalam view diharapkan tidak pernah ada kode untuk melakukan koneksi ke basisdata. View hanya dikhususkan untuk menampilkan data-data hasil dari model dan controller. 3. Controller Controller bertindak sebagai penghubung data dan view. Di dalam Controller inilah terdapat class-class dan fungsi-fungsi yang memproses permintaan dari view ke dalam struktur data di dalam Model. Controller juga tidak boleh berisi kode untuk mengakses basis data karena tugas mengakses data telah diserahkan kepada model. Tugas controller adalah menyediakan berbagai variabel yang akan ditampilkann di view, memanggil model untuk melakukan akses ke basis data, menyediakan penanganan kesalahan/error, mengerjakan proses logika dari aplikasi serta melakukan Validasi atau cek terhadap input. Dalam perencanaan pembuatan tugas akhir ini akan diguanakan sebuah Framework Codeigniter. Framework Codeigniter adalah sebuah PHP yang dapat membantu mempercepat developer dalam 12 pengembangan aplikasi web berbasis PHP dibandingkan jika menulis semua kode program dari awal. 2.9 Unified Modelling Language (UML) UML yang merupakan singkatan dari Unified Modelling Language adalah sekumpulan pemodelan konvensi yang digunakan untuk menentukan atau menggambarkan sebuah sistem perangkat lunak dalam kaitannya dengan objek. (Whitten, 2004) Unified Modelling Language (UML) adalah sebuah "bahasa" yang telah menjadi standar dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem piranti lunak. UML menawarkan sebuah standar untuk merancang model sebuah sistem. (Dharwiyanti, 2003). UML menyediakan macam diagram untuk memodelkan aplikasi berorientasi objek, yaitu: 1. Use Case Diagram untuk memodelkan proses bisnis. 2. Activity Diagram untuk memodelkan perilaku user dan objek di dalam 3. Sequence Diagram untuk memodelkan pengiriman pesan (message) antar objek. 4. Class Diagram untuk memodelkan struktur kelas. UML dapat juga diartikan sebuah bahasa grafik standar yang digunakan untuk memodelkan perangkat lunak berbasis objek. UML pertama kali dikembangkan pada pertengahan tahun 1990an dengan kerjasama antara James Rumbaugh, Grady Booch dan Ivar Jacobson, yang masing-masing telah mengembangkan notasi mereka sendiri di awal tahun 1990an. (Lethbridge dan Leganiere, 2002) 2.10 Use Case Diagram Use case adalah pemodelan untuk kelakuan (behavior) sistem informasi yang akan dibuat. Use case mendiskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem informasi yang akan dibuat. Use case digunakan untuk mengetahui fungsi apa saja yang ada di dalam sebuah sistem informasi dan siapa 13 saja yang berhak menggunakan fungsi-fungsi tersebut. (Shalahuddin dan Rosa, 2011). Berikut adalah simbol-simbol yang ada pada diagram use case : 14 Tabel 2. 1 Simbol Use Case Diagram No Nama Keterangan Actor Menspesifikasikan himpuan peran yang pengguna mainkan ketika berinteraksi dengan use case. 2 Dependency Hubungan dimana perubahan yang terjadi pada suatu elemen mandiri (independent) akan mempengaruhi elemen yang bergantung padanya elemen yang tidak mandiri (independent). 3 Generalization Hubungan dimana objek anak (descendent) berbagi perilaku dan struktur data dari objek yang ada di atasnya objek induk (ancestor). 4 Include Menspesifikasikan bahwa use case sumber secara eksplisit. 5 Extend Menspesifikasikan bahwa use case target memperluas perilaku dari use case sumber pada suatu titik yang diberikan. 6 Association Apa yang menghubungkan antara objek satu dengan objek lainnya. 1 7 8 9 Simbol Menspesifikasikan paket yang menampilkan sistem secara terbatas. Sistem Use Case Deskripsi dari urutan aksi-aksi yang ditampilkan sistem yang menghasilkan suatu hasil yang terukur bagi suatu aktor Collaboration Interaksi aturan-aturan dan elemen lain yang bekerja sama untuk menyediakan prilaku yang lebih besar dari jumlah dan elemen-elemennya (sinergi). 15 2.11 Activity Diagram Activity diagram menggambarkan workflow atau aktivitas dari sebuah sistem atau proses bisnis. Activity diagram menggambarkan aktivitas sistem bukan apa yang dilakukan aktor, jadi aktivitas yang dapat dilakukan sistem. Diagram aktivitas juga banyak digunakan untuk mendefinisikan hal-hal berikut : 1. Rancangan proses bisnis dimana setiap urutan aktivitas yang digambarkan merupakan proses bisnis sistem yang didefinisikan. 2. Urutan atau pengelompokan tampilan dari sistem/user interface dimana setiap aktivitas dianggap memiliki sebuah rancangan antarmuka tampilan. 3. Rancangan pengujian dimana setiap aktivitas dianggap memerlukan sebuah pengujian yang perlu didefinisikan kasus ujinya. (Shalahuddin dan Rosa, 2011) Berikut simbol-simbol yang ada pada activity diagram : Tabel 2. 2 Simbol Activity Diagram Simbol Nama Keterangan Initial State Status awal aktivitas sistem, sebuah diagram aktivitas memiliki sebuah status awal Activity Aktivitas sistem yang aktivitas dilakukan biasanya diawali dengan kata kerja Decision Asosiasi percabangan dimana jika ada pilihan aktivitas lebih dari satu Join Asosiasi penggabungan dimana lebih dari satu aktivitas digabungkan menjadi satu Simbol Nama Keterangan 16 Final State Status akhir yang dilakukan sistem, sebuah aktivitas memiliki diagram sebuah status akhir Swimlane Memisahkan organisasi bisnis yang bertanggung jawab terhadap aktivitas yang terjadi 2.12 Sequence Diagram Sequence diagram adalah suatu diagram yang menggambarkan kelakuan objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima objek. (Shalahuddin dan Rosa, 2011) Sequence diagram digunakan untuk menunjukkan interaksi antar objek dalam urutan sekuensial. Sequence diagram sangat berguna untuk mengkomunikasikan bagaimana objek-objek berinteraksi dalam suatu proses bisnis. Analis sistem umumnya menggunakan sequence diagram untuk memperjelas use case. (Bell, 2004) 17 Berikut adalah simbol-simbol yang ada pada diagram sequence diagram : Tabel 2. 3 Simbol Sequence Diagram Simbol Nama Keterangan Actor/Aktor Orang, proses atau sistem lain yang berinteraksi dengan sistem informasi lain di luar sistem informasi itu sendiri; biasanya dinyatakan menggunakan kata benda di awal frase nama aktor. Garis hidup Menyatakan / lifeline objek. Objek Menyatakan kehidupan suatu objek yang berinteraksi pesan. Waktu aktif Menyatakan objek dalam keadaan aktif dan berinteraksi pesan Pesan tipe create Menyatakan suatu objek membuat objek lain, arah panah mengarah pada objek yang dibuat. Pesan tipe Menyatakan suatu objek Call memanggil operasi / metode yang ada pada objek yang dibuat. Pesan tipe Menyatakan bahwa suatu objek Send mengirimkan 18 data masukan/informasi ke objek lainnya, arah panah mengarah ke objek yang dikirim. Keluaran Menyatakan bahwa suatu objek yang telah menjalankan suatu operasi atau metode yang menghasilkan suatu kembalian ke objek tertentu, arah anak panah mengarah pada objek yang menerima kembalian. Pesan tipe Menyatakan akhir hidup suatu Destroy objek. Boundary Pemisah antara sistem dan daerah di luar sistem (lingkungan) Control Metode untuk membuat aplikasi dengan memisahkan data (Model) dari tampilan (View) dan cara bagaimana memprosesnya (Controller) Entity Sebuah objek yang keberadaanya dapat dibedakan terhadap objek lain 2.13 Class Diagram Class diagram adalah suatu kelas yang menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sebuah sistem. (Shalahuddin dan Rosa, 2011) 19 Berikut adalah simbol-simbol yang ada pada diagram class diagram : Tabel 2. 4 Simbol Class Diagram No Simbol Nama Keterangan Hubungan 1 Generalization dimana objek anak (descendent) berbagi perilaku dan struktur data dari objek yang ada di atasnya objek induk (ancestor). 2 Upaya untuk menghindari asosiasi Nary dengan lebih dari 2 objek. Association Himpunan 3 Class dari objek-objek yang berbagi atribut serta operasi yang sama. Deskripsi 4 Collaboration dari yanditampilkan urutan aksi-aksi sistem yang menghasilkan suatu hasil yang terukur bagi suatu aktor Operasi yang benar-benar dilakukan 5 Realization oleh suatu objek. Hubungan dimana perubahan yang terjadi pada suatu elemen mandiri 6 Dependency (independent) elemen akan mempegaruhi yang bergantung padanya elemen yang tidak mandiri Apa yang menghubungkan antara 7 Association objek satu dengan objek lainnya 20